今度はいくつかの中間層を持つ階層型のネットワークを考える。 同じ層の素子間に結合はなく、 どの素子も1つ前の層からのみ入力を受け、 次の層へのみ出力を送るものとする。 このようなネットワークの中間層に対して学習則を導くとき、 式(3.7)の (学習信号)の値は すぐには求めることが出来ない。 そのため、この学習信号を出力層から逆向きに順々に計算していく。 すなわち出力の誤差を前の層へ、前の層へと伝えていく。 これがバックプロパゲーションの考え方である。 よって、 ある層の素子 j の の計算は、 次の層の素子 k の を用いて
と展開することができる。 式(3.1)より
となる。そして、これと式(3.6)を 代入すれば式(3.10)は
となる。 これがバックプロパゲーションのアルゴリズムである。
バックプロパゲーションは、いかなる重みの初期値からでも誤差が極小となる (最小ではない)ことが保証されるわけだが、一般に誤差曲面は 極小値の近くでは非常に緩やかな谷底をもつため、学習は非常に遅くなる。 しかし、式(3.3)の を大きくすると、学習は振動してしまう。 振動させずに学習を早めるため幾つかの方法が提案されているが、例えば、 誤差曲面の傾きを結合荷重空間の位置でなく速度の変化に用いる。 即ち、
という形の加速法がよく使われる。 ここで は安定化定数であり、tは学習の回数を表わす。 また、重みが最初、すべて0であると、中間層の素子に個性が現れず、 中間層を用いる意味がなくなってしまう。 この対称性を破るために、重みに小さなランダム値を与えることが必要である。
図3.1 に バックプロパゲーション法のネットワーク図を示す。 バックプロパゲーションの特徴としては、
ということが挙げられる。 すなわち、ある素子の学習に使われている情報は、 後の素子から得られる情報のみであり、学習の局所性が保たれていることになる。 この学習の局所性は、人工的な神経回路型計算機をハードウェア化する時の 学習則に要求される性質で、実際の生体における神経回路においては、 といった学習信号が神経軸索を通って逆向きに伝わることはなく、 バックプロパゲーションは実際の脳の学習則の生理学的モデルにはなりえないことになる。 実際の脳の多層神経回路において、どのような学習則が用いられているのかは 今だ解明されていない。