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

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

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

では1(u)微分出来なくて立ち往生したのでした。そこで「バックプロパゲーションに向けて(1)」の式(4)

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

の代わりに「バックプロパゲーションに向けて(2)」に登場したシグモイド関数f(u)

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

を用いて

  • y=f(u)・・・・(16)

とすれば、式(9)の代わりに

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

を得ます。「バックプロパゲーションに向けて(2)」の式(15)

  • \frac{df(u)}{du}=f(u)(1-f(u))・・・・(15)

を式(17)に代入して

  • \frac{\partial{E}}{\partial{s_i}}=-2(r-y)x_if(u)(1-f(u))・・・・(18)

式(18)と(16)から

  • \frac{\partial{E}}{\partial{s_i}}=-2(r-y)y(1-y)x_i・・・・(19)

となります。s_iは勾配の低いほうに変化させるべきですから、s_iの変化分を\Delta{s_i}とすると

  • \Delta{s_i}=-\eta\frac{\partial{E}}{\partial{s_i}}・・・・(20)

となります。ただし\etaは任意の正の定数です。式(20)に式(19)を代入して

  • \Delta{s_i}=2\eta(r-y)y(1-y)x_i・・・・(21)

となります。これがバックプロパゲーションの考え方を1ニューロンに適用した時の学習則になります。


一方、1ニューロンパーセプトロンの学習則は「1個のニューロンの学習(5)」の式(3)(ここでは数字を振り直して式(22))

  • s_i{\leftar}s_i+a(r-y)x_i・・・・(22)

ですから、式(21)と同じような書き方をすれば

  • \Delta{s_i}=a(r-y)x_i・・・・(23)

となります。式(21)と(23)は似てはいますが、y(1-y)があるかないかが異なっています。私が特に気になるのは、式(21)の学習則ではy(1-y)があるので、yが0に近かったり1に近かったりするとy(1-y)の値が小さくなり、その結果\Delta{s_i}も小さくなる、ということです。そしてシグモイド関数のグラフ

  • グラフ1

を見れば分かるように、u=0付近以外はyは0に近かったり1に近かったりするのです。つまり、uがゼロから大きく離れていればいるほど\Delta{s_i}は小さくなるわけです。もし、本来uが正でなければならないのに現状では0よりマイナス方向に大きくズレていたり、逆に本来uが負でなければならないのに現状では0よりプラス方向に大きくズレている場合は、uの値を変更するために\Delta{s_i}を大きくする必要があるのに、式(21)の学習則では逆に小さくなってしまいます。これでは本当に学習が収束するのか疑問です。また、収束したとしても標準デルタ則(式(23))よりも収束に時間がかかるのではないか、と心配になります。


この疑問はこのままにしておき、とにかく先に進むことにします。今度は図

  • 図2

のような、入力層を共通とする複数個のニューロンによる層からなるニューラルネットワークを考察します。