バックプロパゲーション(3)

バックプロパゲーション(2)」では勾配法によって1ニューロンパーセプトロンの標準デルタ則を導くことが出来ました。しかし、このことが「勾配法を用いれば学習が完了する」ということを意味しているわけではないと私は思います。以下、私が現在抱いている疑問点を述べていきます。


簡単化のために今後の考察も「バックプロパゲーション(2)」で考察した1ニューロンに限定します。まずバックプロパゲーションでは誤差E

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

(「バックプロパゲーションに向けて(1)」の式(5)参照)で定義していますが、本来ニューロンには複数のパターン\vec{x}(k)を与え、それによって対応する複数の出力y(k)r(k)が存在するはずです。そして学習が完了するというのは、全てのkについて

  • y(k)=r(k)・・・・(32)

になることですから、最小化すべき誤差は(パターンが全部でm個あったとすると)式(31)のEではなく

  • E=\Bigsum_{k=1}^m\left[r(k)-y(k)\right]^2・・・・(33)

でなければなりません。よって

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

(「バックプロパゲーションに向けて(1)」の式(20)参照)に代入されるべきEは式(33)のEであるべきです。これならばs_i\Delta{s_i}変化させることでEがだんだん小さくなっていくことは理解出来ます。


しかし、それでもまだ心配があります。勾配法では明らかに、極小値には向かうが、最小値に向かうとは限らない、という性質があります。もし極小値に収束することを避けるなんらかの方策をとることが出来たとすれば、Eは式(33)により最小値がゼロなので、いつかはE=0になることが予想出来ます。E=0になれば式(33)から明らかに全てのkについて式(32)が成り立ち、学習が完了することが分かります。


上記のように極小値を避ける方策を行なったとしてもまだ心配はあります。それは、式(31)では1個の入力パターンしか考慮していない、ということです。ここで取り上げている入力に対してその出力を得て\Delta{s_i}を計算し、s_iを修正すれば、この入力パターンについては誤差が少なくなるでしょう。しかし、他の入力パターンについては誤差が大きくなるかもしれません。次に別のパターンを入力するとまたそれに応じた\Delta{s_i}が計算され、s_iの値は変更されますが、それによって最初の入力パターンについての誤差が変わらないとかより小さくなるとかいう保証はありません。ひょっとすると、より大きくなるかもしれません。そう考えると式(31)の誤差を用いて学習が完了するかどうかは私には疑問に思えるのです。


その他に私は「バックプロパゲーションに向けて(3)」に書いたようにシグモイド関数を用いた誤差では、本来uの値が大きく外れていた場合でも誤差が小さく出るので学習が完了するのに時間がかかると予想される点も疑問に思えます。


私がバックプロパゲーションの手法に抱く疑問点をまとめると以下の3点になります。

  • 1)1つのパターンについてのみの誤差を用いていて本当に学習が収束するか?
  • 2)誤差がゼロにならず極小値に留まってしまう可能性があるのではないか?
  • 3)学習が完了するのに標準デルタ則より時間がかかるのではないか?


このうち2)については「6.4節 誤差逆伝播法の問題点:第6章 誤差逆伝播法について:ニューラルネットワーク:村上研究室」にそのような問題が記述されていました。また3)については、バックプロパゲーション:Wikipedia日本語版」に

バックプロパゲーションによる学習での収斂は非常に遅い。

と書かれていました。


バックプロパゲーションへの疑問点ばかりを書いてしまいましたが、バックプロパゲーションパーセプトロンでは解決出来なかった3層以上のニューラルネットワークの学習方法を確立したものとして重要らしいです。歴史的には、これによってふたたびニューラルネットワークの2番目のブームが始まったのでした。それは1980年代のことです。(最初のブームは1960年代で、これはローゼンブラットのパーセプトロンによって引き起こされたもの。その後、1969年のミンスキーとパパートの著作『パーセプトロン』の公刊によってブームが去ったのでした。)