BP(誤差逆伝播法)
概要
- 勾配法を使うためにNNの目的関数の偏微分を計算するためのアルゴリズム
- 手順
- 順伝播: 各層のユニット入出力u,zを正順に計算する
- 出力層でのデルタδを求める
- 通常はδj(L)=zj−dj
- 逆伝播: 中間層でのデルタを逆順に計算していく
- δj(l)=∑kδk(l+1)(wkj(l+1)f′(uj(l)))
- 各層のパラメータwに関する微分を計算する
- wji(l)=δj(l)zj(l−1)
勾配消失発散問題 (degradation)
- 順伝播は非線形計算,逆伝播は線形計算
- デルタの計算は出力層から入力層へ向かって全体が線形
- デルタの式は積和
- 各層の重みが大きいとデルタは急速に大きくなり発散する(exploding)
- 各層の重みが小さいとデルタは急速に小さくなり0になる(vanishing)
- 隠れ層を増やすほどに学習は難しくなるのは,このせい
事前学習
Residual Network (ResNet)
- 勾配消失対策(勾配爆発は防げない)
- wの絶対値が小さいと勾配消失が起きる
- f(l+)(h)=f(l)(h)+hという関数を構成要素として考える
- この関数の微分係数は1に近い値になり,誤差が伝播されやすくなる

参考文献