第5章 慣性項の効果


5.1 実験概要

 慣性項によって、ノーマルなバックプロパゲーションと比べてどのように収束性が変化するかを調べるわけだが、題材には論理演算を用いる。論理演算はニューラルネットワークのシミュレーションでは一般的なモデルである。今回もプログラミングにはJavaを使用した。

 実験では、まず、ノーマルなバックプロパゲーションを用いて論理演算(AND、OR、XOR)を学習させる。次に慣性項つきのバックプロパゲーションで学習させ、両者の収束性を比較する。学習の際には学習率を変化させてみる。その結果をExcelによってグラフ化する。

 すべてにおいて、何度か同じ実験をし、その中で最も典型的と思われる例を示すことにする。ニューラルネットワークは毎回同じ振舞いをすることはなく、ほぼ同じ条件のもとでも全く違う結果になることがあるからである。

5.2 論理演算アプレット

 実験に入る前に、論理演算アプレットについて触れる。

 このネットワークは、入力層、中間層、出力層の3層構造で、それぞれニューロンの数が2,2,1と最小限の構成である。2入力1出力であるため、学習の結果を3次元グラフで表すことが可能である。

 アプレットは、ネットワークの状態を表示させる部分と操作する部分に大きく分けられる。表示部分では各ニューロンからの出力や各結合荷重、閾値が一目瞭然となる。学習中にそれぞれがどう変化するかも目でわかるので、本研究のポリシーである視覚的表現という点からも納得のいくものだと自負している。

 操作の手順としては、まず、一番左のドロップダウンリストからAND、OR、XORの何を学習させるか選ぶ。その後、Initializeボタンを押しLearnボタンを押す。すると学習が始まり、学習回数を誤差が表示される。学習回数は4パターンすべてを学習して1回とする。誤差は4パターン分の総誤差である。学習を一時停止したい場合はStopを押す。再開させる場合は再びLearnを押す。Stopを押した後にInitializeを押せば、始めから学習をやり直すことができる。Onceは1回ずつ学習させるためのものである。学習が収束したら、A、Bボタンで入力層へのパターンを決め、Operateを押す。結果は一番右のテキストボックスに表示される。

 先に3つの演算の学習の結果を3次元グラフに表した。XY平面の座標がネットワークへの入力パターンとなり、Z座標が各パターンに対応するネットワークの出力となる。1がTRUE、0がFALSEに対応している。このネットワークは各演算について正しく学習しているのが分かる。

5.3 AND

5.3.1 学習率1.0

  学習10回目から120回目くらいにかけて慣性項BPの収束性が良い。しかしそれ以降は両者に差はなく、ほぼ同じ曲線を描いている。最終的には、ほんのわずかの差だが、ノーマルBPのほうが早く収束した。何度か繰り返したが、ほとんどこれと同じ結果である。

5.3.2 学習率5.0

 学習2回目から30回目にかけて慣性項BPの収束性が良い。それ以降は逆にノーマルBPが勝っている。この場合も、最終的にはノーマルBPのほうがわずかに早く収束している。学習率1.0のときに比べると、両者とも早く収束している。

5.3.3 学習率20.0

 慣性項BPは、8回目にわずかに振動したが、20数回で収束している。この実験のANDの中で最も優れた収束性である。ノーマルBPは最初から振動が始まり、40回くらいまで激しく振動している。その後、誤差0.45付近を細かく振動し、時々大きく揺れる。最終的には収束したが、学習率5.0のときと比較するとかなり時間がかかった。

5.4 OR

5.4.1 学習率1.0

 学習8回目から120回目くらいにかけて慣性項BPの収束性が良い。それ以降は両者ほぼ同じである。最終的にはノーマルBPがわずかに早く収束した。この振舞いは学習率1.0のANDに似ている。

5.4.2 学習率5.0

 2回目から38回目くらいにかけて慣性項BPの収束性がよい。最終的には、わずかに慣性項BPが勝ったが、ほぼ同時に収束した。学習率1.0のときと比べると、両者とも収束性が向上している。

5.4.3 学習率20.0

 慣性項BPは20回で収束した。ANDの場合と同じように、学習率20.0の慣性項BPが最も優れた収束性を示した。ノーマルBPは、10回目くらいまでわずかな振動があり、その後は周期的な振動を見せ、100数回目で収束した。学習率5.0のときと比べて遅くなった。これもANDの場合と似ている。

5.5 XOR

5.5.1 学習率1.0

 ノーマルBPは、最初誤差が上昇したが、その後は誤差が減少し1000回程度で収束した。慣性項BPは600回くらいまでほとんど変化がなく、その後緩やかに収束した。最終的には、ノーマルBPのほうが早く収束している。

5.5.2 学習率5.0

 ノーマルBPは60回くらいまで誤差が上昇し、150回くらいまで変化がなく、その後急激に誤差が減少したが、誤差0.4付近で停滞したままであった。これは局所解に陥ったものと思われる。何度か繰り返したが、この結果が多かった。慣性項BPは、35回くらいまで誤差が上昇した。その後、130数回で収束した。

5.5.3 学習率20.0

 ノーマルBPは、始めから小さい振動と大きい振動を交互に見せ、収束する様子は見られなかった。慣性項BPは、30回くらいまで振動したが、その後急激に誤差が減少し60回に満たないで収束した。AND、ORの場合と同様、学習率20.0の慣性項BPの収束性が最も優れていた。

5.6 結果

 学習率が小さい場合は、ノーマルBP、慣性項BPの差はほとんどなく、むしろノーマルBPのほうが早く収束している。学習率をしだいに大きくすると、ノーマルBPは振動し、慣性項BPはすばやく収束する。最も早く収束したのは、AND、OR、XORのいずれの場合も、学習率20.0の慣性項BPであった。

 学習率を20.0からさらに大きくすると、両者とも振動し、収束には至らない場合がほとんどであった。

5.7 手書き文字認識による実験

  私は、学習率が小さい場合、両者に差が出なかったのは、このネットワークのシンプルで最小限の構成が理由ではないかと考えた。より大きなネットワークでの慣性項の効果を検証するために、先に挙げた手書き文字認識を、中間層を2層にして実験に用いた。

 学習率は1.2と小さいが、両者の差は論理演算に比べはるかに大きかった。慣性項BPはほとんど振動することなく誤差が減少し、70数回で収束した。ノーマルBPは、45回くらいまで大きく振動しながら誤差が減少し、その後はほとんど変化しなかった。1000回を超えても収束する様子が見られなかったため打ちきった。

5.8 考察

 論理演算による実験では、学習率が小さい場合には差がでなかったが、学習率が大きい場合、慣性項は有効に作用することが明らかになった。ノーマルBPでは、学習率が一定なため、あまり大きくすると極小値付近で結合荷重の細かい調整ができなくなるため、振動しそのまま収束しなくなる。慣性項BPは、前回の結合荷重の変更量が考慮されるため、最初は変更量を大きくし、徐々に小さくできるため、極小値付近で振動することなくすばやく収束できる。バックプロパゲーションによる学習では、ある程度大きい学習率と慣性項の組み合わせは、収束性を向上させる。

 論理演算で、学習率が小さい場合に慣性項BPとノーマルBPに差が出なかったのは、手書き文字認識による実験の結果も考慮すると、ネットワーク構成が小さかったためだと思われる。

 ネットワーク構成が小さい場合でも、慣性項がマイナス要因となることはなく、実用されているニューラルネットワークのほとんどが大規模なことを考えると、慣性項はバックプロパゲーションの性能向上において十分有効である。