next up previous contents
Next: 3.2.2 バックプロパゲーション Up: 3.2 ニューロンの学習 Previous: 3.2 ニューロンの学習

3.2.1 バックプロパゲーションの学習則

まず、バックプロパゲーションのプロセスを以下に挙げ、それを順に追ってみる。

  1. ニューロンの出力と教師信号から、誤差関数の値を求める。
  2. ニューロンの各パラメータの微小変化に対する誤差関数の変化分を求める。
  3. 誤差関数が減少する方向にニューロンの各パラメータを変化させる。
  4. 以上(1〜3)を、全てのパラメータについて行なう。

初めに第1プロセスとして、誤差関数 tex2html_wrap_inline1338 を式 (3.1) で定義する。 これは、出力層に属する各ニューロンの出力 tex2html_wrap_inline1264 とそれに対する教師信号 tex2html_wrap_inline1342 との 自乗平均である。すなわち、ネットワーク全体としての、現在の能力とそれに対する 目標とのギャップを示す一つの指標となることを意味する。最終的に tex2html_wrap_inline1338 を零に することが理想であるが、実用的には tex2html_wrap_inline1338 がある小さな範囲内に入れば学習が 完了したものとできる。誤差関数 tex2html_wrap_inline1338 は、直接的には tex2html_wrap_inline1264 の関数であるが、 間接的にはネットワーク内の全ニューロンの各パラメータ全ての陰関数となっており、 誤差曲面を作っている。図 3.5 にその例を示す。

  equation170

次に第2プロセスとして、中間層のニューロン j と出力層のニューロン i の間の 結合荷重 tex2html_wrap_inline1274 についてその微小変化に対する誤差関数の変化分を 求めてみるが、その前にあらかじめ出力層のニューロン出力 tex2html_wrap_inline1264 に対する誤差関数の 微分を式 (3.2) で求めておく。

  equation178

すると、結合荷重 tex2html_wrap_inline1274 に対する微分は式 (3.3) の ようになる。

  eqnarray185

最後に第3プロセスとして、誤差関数が減少する方向に変化させるために、 ある定数 tex2html_wrap_inline1312 を掛けて式 (3.4) のように結合荷重 tex2html_wrap_inline1274 を 変化させる。

  equation201

この式を用いると誤差関数の値は常に小さくなり、傾きが最も急な方向へパラメータが 移動していくので、この方法を最急降下法という。ただし、図 3.5 に 示すような誤差曲面のくぼみに収束することは保証されるが、そこが最小値とは限らず 極小値となる場合もある。誤差曲面において、極小値付近は傾きが緩やかなために収束が 非常に遅くなる。したがって、定数 a を大きくしてパラメータが誤差曲面上を 移動する速度を大きくすれば、一般には学習の速度は速くなるが、逆に学習終了に 近づくにつれて極小点を飛び越えてそのまわりを行き来するようになるので、 結果的に収束が遅くなってしまう。これらのことを考え、両者の兼ね合いによって その値を経験的に決定しなければならない。

   figure208
図 3.5: 誤差曲面

より収束が速い方法として 式 (3.5) に示す加速法がよく用いられる。 これは、誤差曲面の傾きをパラメータが移動する速さとしてではなく、移動する速さの 変化分として用いるものである。

  equation217

以上のプロセスがバックプロパゲーションの基本となる学習法である。



Deguchi Toshinori
1998年04月01日 (水) 12時03分23秒 JST