5.3 誤差逆伝播
本節での目標:フィードフォワードニューラルネットワークについて誤差関数の勾配を効率よく評価するテクニック(誤差逆伝播)を見つけること。
ほとんどの訓練アルゴリズムでは誤差関数を最小化するための反復手続きがある。次の2つの手続きを繰り返す
逆伝播テクニック:微分の評価において計算論的に効率な方法を提供。多層パーセプトロンだけでなく、ほかの種類のネットワーク、二乗和誤差以外の誤差関数にも応用可能。ヤコビ行列やヘッセ行列のようなほかの微分の評価にも用いることができる。
微分を用いて重みを調整する最も単純なテクニックは勾配降下法が関係している。単純な勾配降下法よりも強力な最適化のスキームが存在し、使用することができる。
5.3.1 誤差関数微分の評価
次の条件のネットワークについての逆伝播アルゴリズムを導出する。
導出
誤差関数を訓練集合の各データに対応する誤差関数の項の和(5.44)として表すことができるものが対象。また、出力ユニットは正準連結関数を活性化関数に用いているとする。
一般のフィードフォワードネットワークについて考える。あるユニットへの入力側と繋がっているユニットを。すると、は(5.48)となる。また、出力側と繋がっているユニットをとする。図5.7を参照。
の重みに関する微分の評価を考える。からネットワークへの出力へはを通してのみなので偏微分の連鎖法則により(5.50)となる。また、(5.48)より(5.52)なのでのに関する微分は(5.53)とかける。
を求める。
ユニットが出力ユニットの場合:正準連結関数を活性化関数に用いているので(5.54)となる。
隠れユニットの場合:からネットワークへの出力は出力側の接続を通してなので(5.55)となる。
ここで、
$$
\frac{\partial E_{n}}{\partial a_{k}}=\delta_{k}\\
\frac{\partial a_{k}}{\partial a_{j}}=\frac{\partial \sum_{i}w_{ki}z_{i}}{\partial z_{j}}\frac{\partial z_{j}}{\partial a_{j}}=w_{kj}\frac{\partial h(a_{j})}{\partial a_{j}}=w_{kj}h'(a_{j})
$$
より(5.56)。
出力側のがわかればを求めることができる。(5.54)より出力ユニットのを求めることが出きるため、出力ユニットから入力側に向かって計算していく(逆伝播)。