next up previous contents
Next: 結論 Up: 実験 Previous: ランダムパターンの学習

記憶容量

前節で, 素子数49の場合, 相関値に関係なく学習がうまくいかなかった. 連想記憶においては, パターンをネットワーク全体の中に 分散し多重化して貯えるので, ある程度以上多数のパターンを覚えようとすると, パターン同士の相互干渉が起こり, 記憶が崩壊するからと考えられる. いくつまでの事項パターンを平衡状態として記憶させることができるかどうかを 調べ, その最大数Kを記憶容量とよぶ[10].

そこで, 素子数 nのネットワークで, いくつまでのパターンを 記憶させることが出来るかを調べ, その最大数つまり, 記憶容量を調べた. 今回, 記憶容量を調べるため各パターンの成分の 1か-1の割合を半数になるように 割り当てられたものを使用した.

その結果が図5.11から 図5.15のようになった. 結果を見ると, 素子数50の場合は, 40パターンは記憶できている. それ以上のパターン数は覚えることが出来ずに記憶が崩壊してしまっている. また, 素子数100個の場合は, 80パターンは記憶出来ていることが分かる. つまり, 素子数が50から100程度での記憶容量Kは実験結果より, 素子数の7〜8割程度になることがわかる.

しかし, 素子数200では, 記憶したパターン数が約90程度 , 素子数の半分も覚えられないことになる. 素子数300の場合も, 90パターンしか覚えることが出来ておらず, 素子数400では, 素子数300の結果よりも悪くパターンが覚えられず, 記憶が崩壊してしまっている.

本実験において, ニューラルネットワークに素子数の総数が多くなるにつれて 学習出来るパターンも比例して増えていくと考えるのが普通である. しかし今回の実験結果では, 素子数を増やしても学習出来るパターンの数が 純粋に増えていっていない. よって, なにか原因があると考えられる.

そこで, 学習回数が足りないために, 一つのパターンを覚え切らないまま, 次のパターンに切り替わっているのではないかと考え, 学習回数を 増やした結果, 学習はそれほど変わらなかった. よって学習回数は適正値だと考えられる.

次に, 記憶は重みによって行なわれているので, 結合荷重の値を今までより, より細かくとり, 結合荷重の値に幅を持たせて 実験を行なってみる. そこで, 今まで結合荷重の変化量を半分( tex2html_wrap_inline1197 )し, 結合荷重の値が今までより細かな値までとれるようにして, 学習を行なった. その結果が, 図5.16から 図5.19となっている. この結果を見ると, 先の学習結果, つまり tex2html_wrap_inline1433 が0.05での学習よりも 学習がうまくいっていることが分かる. tex2html_wrap_inline1521 の学習結果では, 素子数が200において120パターンが想起出来なかったのに対し, tex2html_wrap_inline1433 を0.025にしたら120パターンが学習できた. また, tex2html_wrap_inline1433 が0.05の学習での素子数300では120パターンすら想起できなかったのに対し, tex2html_wrap_inline1433 が0.025での学習では, 180パターンでも学習がうまくいっている. よって, ある程度の素子数に達すると結合荷重の変化量を細かく 結合荷重の値に幅を持たせなければ, 多くのパターンを学習できないということがわかった.

   figure445
図 5.11: 素子数50の記憶容量

   figure453
図 5.12: 素子数100の記憶容量

   figure461
図 5.13: 素子数200の記憶容量

   figure469
図 5.14: 素子数300の記憶容量

   figure477
図 5.15: 素子数400の記憶容量

   figure485
図 5.16: tex2html_wrap_inline1197 , 素子数100の記憶容量

   figure493
図 5.17: tex2html_wrap_inline1197 , 素子数200の記憶容量

   figure501
図 5.18: tex2html_wrap_inline1197 , 素子数300の記憶容量

   figure509
図 5.19: tex2html_wrap_inline1197 , 素子数400の記憶容量



Toshinori DEGUCHI
2004年 2月22日 日曜日 14時38分28秒 JST