バックプロパゲーションに向けて(1)
これからパーセプトロンについての考察をもとにバックプロパゲーション(誤差伝播法)の理解に向けて自分なりのメモを展開していこうと思います。私がバックプロパゲーションについて理解したところによると、まず、ネットワークの出力と教師信号の間の誤差を定義する。次に誤差はネットワークを構成する各ニューロンのシナプス係数(ここにはしきい値も含む)と入力パターンの関数であるからをで微分して、その勾配を求め、勾配の下りの方向を見つけてそちらに向かうようにを変化させる、というものです。そしてを微分可能にするために、マカロック・ピッツのモデルで使用している階段関数ではで微分不可能なので、その代わりにシグモイド関数
- ・・・・(1)
を使用するというものです。まずは、これを1ニューロンのパーセプトロン
に適用してその内容を確かめてみます。
入力パターンのi番目の成分をとします。出力をとします。以下の議論では、常にとしとすることでしきい値をシナプス係数として扱うことにします。マカロック・ピッツのモデルでは
- ・・・・(2)
でした。ここで
- ・・・・(3)
と定義します。すると式(2)から
- ・・・・(4)
と書くことが出来ます。
次に出力と教師信号の誤差を考えます。ここでは誤差を
- ・・・・(5)
で定義することにします。誤差の定義としては
- ・・・・(6)
も考えられますが、のちに微分を行う時の扱いやすさから式(5)で定義します。
次にをで微分して勾配
を求めます。を変化させた時に出力は変化しますが、教師信号は(その定義からして)変化しませんので
よって
よって
- ・・・・(7)
ここで式(3)から
- ・・・・(8)
なので、式(7)(8)から
- ・・・・(9)
ただ、ここで
が問題になります。これはで微分出来ません。さらにでは
になるので傾きが0になり、をどう変化させたらよいかの情報を得ることが出来ません。