バックプロパゲーションに向けて(1)

これからパーセプトロンについての考察をもとにバックプロパゲーション(誤差伝播法)の理解に向けて自分なりのメモを展開していこうと思います。私がバックプロパゲーションについて理解したところによると、まず、ネットワークの出力と教師信号の間の誤差Eを定義する。次に誤差Eはネットワークを構成する各ニューロンシナプス係数(ここにはしきい値も含む)sと入力パターン\vec{x}の関数であるからEs微分して、その勾配を求め、勾配の下りの方向を見つけてそちらに向かうようにsを変化させる、というものです。そしてE微分可能にするために、マカロック・ピッツのモデルで使用している階段関数1(x)ではx=0微分不可能なので、その代わりにシグモイド関数

  • f(x)=\frac{1}{1+e^{-x}}・・・・(1)

を使用するというものです。まずは、これを1ニューロンパーセプトロン

に適用してその内容を確かめてみます。


入力パターン\vec{x}のi番目の成分をx_iとします。出力をyとします。以下の議論では、常にx_0=1としs_0=-hとすることでしきい値hシナプス係数として扱うことにします。マカロック・ピッツのモデルでは

  • y=1\left(\Bigsum_{i=0}^ns_ix_i\right)・・・・(2)

でした。ここで

  • u=\Bigsum_{i=0}^ns_ix_i・・・・(3)

と定義します。すると式(2)から

  • y=1(u)・・・・(4)

と書くことが出来ます。


次に出力yと教師信号rの誤差を考えます。ここでは誤差E

  • E=(r-y)^2・・・・(5)

で定義することにします。誤差の定義としては

  • E=|r-y|・・・・(6)

も考えられますが、のちに微分を行う時の扱いやすさから式(5)で定義します。


次にEs_i微分して勾配

  • \frac{\partial{E}}{\partial{s_i}}

を求めます。s_iを変化させた時に出力yは変化しますが、教師信号rは(その定義からして)変化しませんので

  • \frac{\partial{E}}{\partial{s_i}}=\frac{\partial{E}}{\partial{y}}\frac{\partial{y}}{\partial{s_i}}

よって

  • \frac{\partial{E}}{\partial{s_i}}=-2(r-y)\frac{\partial{y}}{\partial{s_i}}=-2(r-y)\frac{\partial{1(u)}}{\partial{s_i}}
    • =-2(r-y)\frac{d1(u)}{du}\frac{\partial{u}}{\partial{s_i}}

よって

  • \frac{\partial{E}}{\partial{s_i}}=-2(r-y)\frac{d1(u)}{du}\frac{\partial{u}}{\partial{s_i}}・・・・(7)

ここで式(3)から

  • \frac{\partial{u}}{\partial{s_i}}=x_i・・・・(8)

なので、式(7)(8)から

  • \frac{\partial{E}}{\partial{s_i}}=-2(r-y)x_i\frac{d1(u)}{du}・・・・(9)

ただ、ここで

  • \frac{d1(u)}{du}

が問題になります。これはu=0微分出来ません。さらにu\neq{0}では

  • \frac{d1(u)}{du}=0

になるので傾きが0になり、s_iをどう変化させたらよいかの情報を得ることが出来ません。