ディープラーニングの概要と学習の仕組みについて。
目次
AI・ディープラーニングの全体像
- 人工知能
- 機械学習
- ディープラーニングの基本・応用
- ディープラーニングの研究
- AIプロジェクト
- AI社会実装に伴う法律・倫理
ニューラルネットワークの技術的課題と対策①
ニューラルネットワークの技術的課題
- 単純パーセプトロンでは線形分離可能な問題しか学習できず、非線形問題を解くためには多層化する必要がある
- 多層化した場合、モデルの最適化問題が複雑になり、技術的課題が生じる
- ニューラルネットワークをディープにするためには課題を乗り越える必要がある
勾配消失問題 | ネットワークが深くなるにつれ、重みの更新に必要な情報がうまく伝播できなくなる問題 (誤差逆伝播の仕組みに起因) |
---|---|
局所最適化問題 | 勾配降下法を用いた最適化において、局所最適解に陥ってしまう問題 |
勾配消失問題
概要
- ニューラルネットワークの学習においては、損失関数が小さくなる方向を目指して重みを更新する
- 損失関数の勾配の情報を、ネットワーク内で正しく伝播させることが重要
- 勾配消失問題→「ネットワークの途中で勾配の値が消失し、伝播できなくなり、学習が進まなくなる問題」
- 誤差逆伝播法の性質上、ネットワークを深くすると、入力層に近い層では誤差を正しく反映されなくなり、最適化がうまくいかなくなる
- 逆伝播していくうちに、勾配(重み値の更新に使われる誤差情報)がどんどん小さくなっていく
- 勾配消失問題の主な原因→「活性化関数」にあり
- 「活性化関数」として採用されてきた「シグモイド関数」などを、「ReLU関数」に切り替えることで軽減されていった
活性化関数 | シグモイド関数 (Sigmoid関数) | データのスケールを、一定範囲内に収めるように備える |
---|---|---|
Tanh関数 (ハイパボリックタンジェント関数;双曲線関数) | ||
ReLU関数 (Rectified Linear Unit関数;正規化線形関数) | 重要な特徴を際立たせ、ノイズを落とす |
シグモイド関数
- 入力値が小さいほど出力値が0に漸近し、入力値が大きいほど出力値が1に漸近するという性質
- 入力値が比較的大きい場合・小さい場合、シグモイド関数は平らになってしまう(=関数の勾配が0に近づく)→勾配消失の原因となる
Tanh関数
- シグモイド関数を線形変換した関数
- 漸近する形状、データ値を一定範囲の中に収まるように変換している
- Tanh関数の場合、入力が大きい場合は1に漸近し、入力が小さい場合は-1に漸近する
ReLU関数
- ReLU関数は、入力値が負の場合は0、入力値が正の場合は入力値そのものを返す
- 入力値が正であれば、微分は必ず1になり、学習を妨げない
- 非常に深く複雑なネットワークでは、ReLU関数が十分に効力が発揮できず、依然として勾配消失問題が起きるケースもあり
- 画像データの特徴量を形成する画素値には負の値がないため、ReLU関数との相性がよい
- 負の値があり、それらをなしにすると情報損失が発生するようなデータ→
シグモイド関数やTanh関数を採用したほうがよい
Leaky ReLU関数
- ReLU関数の派生版
- 入力値が負の領域でもわずかな傾きを持ち、全領域で微分がゼロになることはない
- 入力値Xが負の場合の傾きが通常0.01に固定されている
- 「Parametric ReLU関数」→f(x)=axとし、aをパラメータとして決定する場合
※Leaky ReLU関数を一般化したものと解釈できる