バックプロパゲーション(2)
バックプロパゲーションを導く時に最初に用いたのは、誤差を小さくするために誤差をシナプス係数で微分して得た傾きを元にシナプスの変化分を決定しようとする考え方でした。これを勾配法と言います。1ニューロンのパーセプトロンの時に用いた標準デルタ則(「バックプロパゲーションに向けて(3)」の式(23)参照。ここでは番号を振り直して式(26)とする)
- ・・・・(26)
を勾配法で基礎づけることが出来ないか試みてみます。
私が特に気になるのは、式(21)の学習則ではがあるので、が0に近かったり1に近かったりするとの値が小さくなり、その結果も小さくなる、ということです。そしてシグモイド関数のグラフ
を見れば分かるように、付近以外はは0に近かったり1に近かったりするのです。つまり、がゼロから大きく離れていればいるほどは小さくなるわけです。もし、本来が正でなければならないのに現状では0よりマイナス方向に大きくズレていたり、逆に本来が負でなければならないのに現状では0よりプラス方向に大きくズレている場合は、の値を変更するためにを大きくする必要があるのに、式(21)の学習則では逆に小さくなってしまいます。これでは本当に学習が収束するのか疑問です。また、収束したとしても標準デルタ則(式(23))よりも収束に時間がかかるのではないか、と心配になります。
と述べたようにシグモイド関数を用いた誤差では、本来の値が大きく外れていた場合でも誤差が小さく出る、という点が問題です。そこで誤差にそのものを登場させることを考えます。しかし、例えばの時はならばいくら大きくてもなので(今はを使うことを考えます)そのものを誤差に用いることは出来ません。逆にの場合はならばの絶対値は不問になります。このように考えて誤差を
- ・・・・(27)
とおいてみます。このようにを定義するとの場合は誤差はゼロになりますし、の場合、もし、ならばでとなります。逆にもし、ならばでとなりますので、全ての場合にとなります。問題はでの時はとなるので誤差があってしかるべきなのにもかかわらず式(27)によればになってしまう点です。そこでの場合を除外して考察します。の場合、あるいはの場合はは1か0ですがいずれの場合もの変化に影響されないと考えることが出来ます。よって式(27)を(に対応するシナプス係数)で微分すると
よって
- ・・・・(28)
となります。の変化分をで示すと
- ・・・・(29)
なので
- ・・・・(30)
ここでとおけば、式(30)は標準デルタ則の式(26)に一致します。これで標準デルタ則を勾配法から導くことが出来ました。