いくつかの中間層を持つ階層型ニューラルネットワークを考える。
このネットワークについて中間層に対する学習式を導こうとしたとき、式(3.9)の の値はすぐに求めることはできない。
この微分値を出力層より逆向きに順々に計算していく、つまり出力の誤差を前の層へ前の層へと伝えていく。
すなわち、ある素子 j の
の計算は、次の層の素子 k の
を用いて
と展開することができる。 式(3.3)より
となる。 これがバックプロパゲーションのアルゴリズムである。
これは誤差があたかも逆方向に進んでいくように見えることから誤差逆伝搬法ともいわれている。
バックプロパゲーションでは、いかなる結合荷重の初期値からでも誤差が極小となる(最小ではない)ことが保証されるわけだが、一般に誤差曲面は極小値の近くでは非常に緩やかな谷底を持つため学習は非常に遅くなる。
しかし、式(3.2)の を大きくすると学習は振動してしまう。
振動させずに学習を早めるためいくつかの方法が提案されているが、その一つに誤差曲面の傾きを結合荷重空間の位置でなく速度の変化に用いる、
という形の加速法が良く使われている。 ここで t は学習回数を表す。
また、結合荷重が最初全てゼロであると、中間層の素子に個性が現れず中間層を用いる意味がなくなってしまう。 この対称性を破るためには、各結合荷重に小さなランダム値を与えておけば良い。
注意すべきこととして、多層な階層型ネットワークにおいて式(3.1)で表される誤差曲面には複数の極小値が存在しうるということである。このため、誤差は必ずしも最小になるとは限らない。
バックプロパゲーションの特徴は、出力すべき出力を得られるように入力の特徴により中間層の結合荷重が構成されていくことである。
また、ある素子の学習に使われている情報は後の素子から得られる情報のみであり、学習の局所性が保たれていることになる。
ただし、実際の生体の神経回路においては、 といった値が神経軸索を通って逆向きに伝わるはずもなく、バックプロパゲーションは実際の脳の学習則の生理的モデルにはなりえないことになる。
実際の脳にどのような学習則が用いられているかはまだ分かっていない。
実用上においてもバックプロパゲーションにはいくつかの問題点がある。
例えば、学習に用いる係数 ,
の値を学習が振動しない程度に大きく選ぶためには、実際にいくつか試してみるしか方法はない。
同様に、中間層のニューロンの数についても、学習させようとする問題により必要とされる数が異なるため、試行錯誤で決めるしかない。