MLPと誤差逆伝搬法(Backpropagation)
machinelearningMLP(多層パーセプトロン)は入力層と出力層の間に隠れ層を重ねることによって、 ロジスティック回帰(単純パーセプトロン)ではできなかった非線形分離をできるようにしたニューラルネットワークモデル。
ロジスティック回帰の尤度と交差エントロピー誤差と勾配降下法 - sambaiz-net
入出力がx
、y
、層の数がLでl層目での重みとバイアスをW^(l)
, b^(l)
、活性化関数をf^(l)
、活性化関数適用前後をu^(l)
とh^(l)
とし、入力層を0層目とすると各層での演算は以下の式で表される。
活性化関数は非線形で微分可能な関数で、計算速度や勾配消失の面でReLUが最有力。
ニューラルネットワークと活性化関数 - sambaiz-net
各層の最適なWとbを探すのにロジスティック回帰と同様に勾配降下法を使うことができる。 誤差関数は分類の場合は交差エントロピーが、回帰の場合は平均二乗誤差(MSE, Mean Squared Error) または外れ値に引っ張られづらくしたHuber損失などが使われる。
隠れ層の勾配はそれより後ろの層での演算が影響するので、入力から出力への順伝搬に対して 出力から入力への逆伝播で誤差の情報を前の層に伝播させていく。これを誤差逆伝播法(Backpropagation)という。
出力から遠くなればなるほど連鎖律が長くなっていくが、途中までは後ろの層と共通になっている。 ということで順伝搬時のhを保存しておき一つ後ろの層のWと誤差δを渡してやれば必要最小限の演算で済み、実行時間を短くすることができる。