ホップフィールドネットワーク

概要

ホップフィールドネットワークは、ニューラルネットワークの火付け役となった、記憶や想起が可能なネットワークである.想起をするときはエネルギ関数を使用して複数回処理を行い、ネットワークが安定したと判定されたときに出力する.
Facebookシェア Twitterツイート LINEで送る このエントリーをはてなブックマークに追加
この章を学ぶ前に必要な知識
0
条件
  • 学習したい固定サイズのデータ
効果
  • ネットワークに欠陥のあるデータを渡しても想起できる
  • ネットワークがデータを記憶している
ポイント
  • 学習は幾らかあり、「逐次的」「局所的」の二つを守っていればよい
  • 最も有名な学習はヘブ則によるもの
  • 与えられた不十分なデータから正解を思い出す想起では、エネルギー関数が変化しなくなって安定するまで更新を繰り返す.
  • 更新作業では更新則に則ってニューロンの値が変化していく

解 説

ホップフィールドネットワークとは、データを学習、想起させることのできるニューラルネットワーク.連想記憶のモデル. ネットワークの概要 ホップフィールドネットワークの学習と想起(繰り返し更新)の段階がある. ホップフィールドでは各ニューロンが全ニューロン間で相互に繋がっていてその重みを学習する.
ホップフィールドネットワークとは

1.ホップフィールドネットワークの学習

学習の方法は幾らかある.学習は、少なくとも、局所的な学習ができ、また逐次的な学習ができればよい.逐次的というのは常に以前の学習データも含めて学習を行えること. ここでは有名な「ヘブ則による更新」を紹介する. n個のデータを含むデータ群xがあるときに二つのニューロンi番目とj番目の重み\(w_{ij} \)を学習するときは以下のようにして重みを計算する. $$w_{ij} = \frac{1}{n}\sum_{\mu =1}^n x_{\mu}^i x_{\mu}^j $$ 重みの学習は以上で終わりである.\(\mu\)番目のiとjを掛け合わせてそれをデータに渡って足し平均を取るだけである. 新しくデータを加えるときは、\(w_{ij}\)を\(n\)倍して\(x_{new}\)のijを足し合わせて\(n+1\)で割ればよいので、逐次的な学習ができることは明らか.
ホップフィールドネットワークの学習

2.ホップフィールドネットワークの想起

ホップフィールドネットワークにおける想起では、入力データをネットワークに入力したら更新を繰り返しネットワークの状態が変化しなくなった時点で出力を得ます. 更新のときにはエネルギー関数を最小化するように更新が行われていきますが、このエネルギーの更新は常に単調減少することが保障されているため、必ず終了します. しかし、エネルギーが大域極小値になるとは限らない エネルギー関数: \(s_n\)はn番目のニューロン $$E=-\frac{1}{2}\sum_{i\neq j}w_{ij}s_is_j + \sum_i \theta_i s_i $$
ホップフィールドネットワークにおける想起
更新に際しては以下のようにして行っていく. 更新の方法には大きく ・非同期型 : ランダムまたは予め決められた順にニューロンを一つ選び更新. ・同期型 : すべてのニューロンを一斉に更新. がある i番めのニューロンの更新では以下のルールに則る. $$\begin{eqnarray} s_i = \begin{cases} 1 & ( if \sum_j w_{ij}s_i \geqq \theta_i ) \\ -1 & ( otherwise ) \end{cases} \end{eqnarray} $$ 上記を繰り返し行い、ネットワークの更新が行われなくなったら想起を終了. 各\(s_i\)の値を出力とする.
ホップフォールドネットワークの更新手順
この章を学んで新たに学べる
Comments

Reasons
>>隠す