バックプロパゲーションに向けて(5)
今度は、いよいよバックプロパゲーションに近くなってきます。ここでは上の図のように、2層のニューラルネットワークだが出力の層にはニューロンが1個しかないネットワークを考えます。誤差を
- ・・・・(5)
で定義します。中間層のニューロンは個あり、番目のニューロンをで表します。出力層のニューロンはで表します。ニューロンの入力に対応するシナプス係数をで表すことにします。は常にであるとします。ニューロンの入力と出力の関係は
- ・・・・(33)
- ・・・・(34)
で表されます。ここにはシグモイド関数で
- ・・・・(10)
で定義されます。次にニューロンの入力に対応するシナプス係数をで表すことにします。は常にであるとします。ニューロンの入力と出力の関係は
- ・・・・(35)
- ・・・・(36)
で表されます。
一般にを1回の学習で変化させる変化分をで表すことにします。バックプロパゲーションの考え方では
- ・・・・(37)
でを決定することになります。ただしは正の定数です。
まず、を求めるために
を計算します。
- ・・・・(38)
ここで式(5)から
また
また、式(34)から
なので式(38)は
- ・・・・(39)
となります。式(37)と(39)から
- ・・・・(40)
となります。これでを決定することが出来ました。
次に、を求めていきます。上と同じようにのによる偏微分を計算します。
- ・・・・(41)
ここで
ですが、シナプス係数はニューロンのシナプス係数であるため、影響を与えるのはであっての他の成分には影響を与えないので
- ・・・・(42)
ここで式(4)から
- ・・・・(43)
また
- ・・・・(44)
ここで式(35)から
- ・・・・(45)
また式(36)から
- ・・・・(46)
式(44)(45)(46)から
- ・・・・(47)
式(42)(43)(47)から
- ・・・・(48)
式(41)(48)から
- ・・・・(49)
となります。式(37)(49)から
- ・・・・(50)
となります。これでを決定することが出来ました。
さて、このバックプロパゲーションという方法の名前は「誤差を後へ伝播する」という意味ですが、式(50)を見ると誤差がその右辺に出ています。出力層(ここでは1ニューロンしかありませんが)で検出された誤差を中間層のニューロンに重みをつけて伝えるという意味ではないか、と思いました。さらに式(40)と(50)を比較するとの部分が共通になっています。そこで
- ・・・・(51)
とおくと式(40)は
- ・・・・(52)
となり、式(50)は
- ・・・・(53)
となります。これを見ると後ろに(つまり中間層に)伝えているのは単なる誤差ではなく出力層での計算結果の一部であるであるようです。