『誤差逆伝播法』(バックプロパゲーション) はDLの学習アルゴリズムの心臓部。数式の細部は試験では問われませんが、仕組みの理解は必須です。
ニューラルネットって、どうやって学習するの?
中核が誤差逆伝播法(バックプロパゲーション, Backpropagation) よ。
出力の誤差を出力層から入力層へ逆方向に伝播させて、各層の重みを更新するの。
1986年にルメルハート、ヒントン、ウィリアムスが発表したのよ。
この手法があったからこそ、多層ニューラルネットの学習が可能になったの。
なんで逆方向なんですかぁ?
連鎖律(微分の連鎖ルール) を使うからよ。
出力層の誤差から、各層の重みが誤差にどう影響するかを連鎖的に計算するの。
具体的には損失関数Lに対して、各重みwの偏微分 ∂L/∂w を計算し、これを使って w ← w - η(∂L/∂w) と更新する。
ηは学習率ね。
学習率って何?
更新ステップの大きさのことね。
大きすぎると発散しちゃうし、小さすぎると学習が遅くなる。
適切な値に調整する必要があるのよ。
補足すると、誤差逆伝播には弱点もあって、深い層で勾配消失(勾配消失問題) が起きやすいの。
これが長らく深層学習の障害になっていたのよ。
勾配が消えちゃうんですかぁ…
シグモイド関数の微分値が最大0.25で、層を重ねると0.25^n と指数的に小さくなる。
だから深い層の重みがほとんど更新されなくなるの。
それを解決したのがReLUってやつ?
その通り。
詳しくは後の記事で扱うけど、ReLUの導入が深層学習の実現に大きく貢献したのよ。
G検定では『誤差逆伝播 (1986, ルメルハート等)』『連鎖律』『勾配消失問題』を押さえて!
確認クイズ
多層ニューラルネットの学習で、出力層の誤差を入力層方向に伝播させながら重みを更新するアルゴリズムはどれか。
- k-means
- 誤差逆伝播法 (バックプロパゲーション)
- 主成分分析
- 遺伝的アルゴリズム
こたえを見る
正解: 2. 誤差逆伝播法 (バックプロパゲーション)
誤差逆伝播法 (バックプロパゲーション)は、出力層の誤差を連鎖律を用いて逆方向に伝播し重みを更新するアルゴリズムです。1986年にルメルハート、ヒントン、ウィリアムスが提案しました。