next up previous contents
Next: 4.4.2 気温予測 Up: 4.4 実験結果 Previous: 4.4 実験結果

4.4.1 気温の学習

学習に必要なパラメータは、学習定数のBと加速項の定数Aがある。 誤差は、実行してみないと分からないのでこの2つの定数を思考錯誤によって見つけなくてはならない。 入力層2、中間層100、出力層2の3層のネットワーク(Atype)に1993年と1994年の名古屋の最高気温と最低気温を3万回学習させたものと入力を14にしたネットワーク(Btype)の誤差の変化を図 4.5に示す。 これらは、それぞれ学習定数をいくつも試した中で3万回の学習のあとに、もっとも誤差の小さかった学習定数のものである。

3万回の学習を繰り返した結果Atypeの誤差で一番小さくなったものの最終値は、2.68になり、この時の学習定数はBが0.000005、Aが0.05であった。 また、Btypeについては、誤差の最終値は0.93になり、この時の学習定数はBが0.00005、Aが0.005であった。

   figure438
図 4.5: 誤差の変化

学習回数が多くなっていくほど誤差が小さくなっていっており学習がされていることが分かり、またそれぞれがある値に収束していることが分かる。 また、Btypeの方が誤差が小さくなっている。 これは、BtypeにはAtypeよりも多くの入力があるため入力により多くの情報が与えられるためだと思われる。 そして、BtypeのネットワークよりもAtypeのネットワークの方が学習が遅くなっているのはBtypeのほうがニューロンの数が多いためにある程度の誤差にするのに必要な学習回数が多くなるためだと考えられる。

次に、誤差をもっと小さくするために学習定数の与え方を変えてみた。 学習の途中で学習定数を変化させることにより誤差を小さくするというものである。 Bの値が大きいとパラメータの変化が大きくなるために誤差は振動しながら減衰していく。この値が小さいと振動はしないが収束するのに学習回数が多くかかる。 ここで、最初に大きな値を与えておきBに大きな値を与えておきニューロンの特徴を早く与えておき学習定数を小さいものにすることで特徴付けられたニューロンを素早く学習させる。 実際実験してみたのは、最初にBは0.0005、Aは0.005にしておき5000回の学習の後に、Bは0.000005、Aは0.0にする。 この時の誤差の変化を 4.6 に表す。

   figure447
図 4.6: 学習定数による違い

Bが大きいものはパラメータの変化が激しいため振動しながら徐々に減少している。 Bの小さいものは誤差の収束はとても滑らかに変化している。 途中で変化させたものは、変化させたすぐに急激に誤差が小さくなっており、定数を変化させなかったものを3万回学習させた誤差よりも小さくなることが分かった。 この方法を用いることによって学習回数を少なくすることが出来る。

次に、パラメータの変化を見る。 パラメータは、中間層のある一つのニューロンについて注目した。 各パラメータの初期値は、同じになっている。 Bの値が大きいものはやはり変化が大きくなっており学習がはやく行なわれているように見えるが、誤差のグラフを見ると誤差が小さくなるのには、多くの学習回数が必要になる。しかし、学習定数の小さいものはほとんどパラメータが変化してないが誤差はすぐに小さくなっているのでパラメータの変化は、とても微妙なものだということが分かる。

  figure455
図 4.7: カオスニューロンのパラメータkmの変化

  figure462
図 4.8: カオスニューロンのパラメータkrの変化

  figure469
図 4.9: カオスニューロンのパラメータ tex2html_wrap_inline1193 の変化

  figure476
図 4.10: カオスニューロンのパラメータwの変化



Deguchi Toshinori
Thu Mar 4 14:22:36 JST 1999