ホップフィールドネットワーク理解に向けての準備体操(2)

  • 図2

今度は図2のようにs_{21}の値を「−1」にしてみます。するとこのネットワークはどう動作するでしょうか? このネットワークは、まずニューロン1の出力を計算して更新し、次にニューロン2の出力を計算して更新し、それを繰り返す、というふうに動作するとします。まずニューロン1の出力を考えます。

  • 図3

説明の都合で

  • u_i=\Bigsum_{j=1}^2s_{ij}x_j・・・・(5)

とします。ニューロン1への入力は1で、対応するシナプス係数が1なのでu_1=1になります。よってx_1=1(赤色)になります。


次にニューロン2の出力を考えます。

  • 図4

ニューロン2への入力は1で、対応するシナプス係数が−1なのでu_2=-1になります。よってx_2=-1(青色)になります。


再びニューロン1の出力を考えます。

  • 図5

ニューロン1への入力は−1で、対応するシナプス係数が1なのでu_1=-1になります。よってx_1=-1(青色)になります。


再びニューロン2の出力を考えます。

  • 図6

ニューロン2への入力は−1で、対応するシナプス係数が−1なのでu_2=1になります。よってx_2=1(赤色)になります。


以下、この繰り返しになります。ここから分かるようにこのネットワークの状態は安定しておらず振動しています。これはこれでおもしろい現象なのですが、ホップフィールドネットワークの関心事は別にあります。ホップフィールドネットワークでは状態が最終的には安定になるようなネットワークしか扱いません。今回、状態が振動した原因は、s_{12}\neq{s}_{21}であったことにありそうなことは上の様子から推測がつきます。ホップフィールドネットワークでは

  • s_{ij}=s_{ji}・・・・(6)

でなければならない、としています。なぜこの条件が必要なのかはのちに説明します。


では、今度は式(6)を満たすように

  • 図7

シナプス係数の設定を考えてみます。まずニューロン1の出力を考えます。

  • 図8

ニューロン1への入力は1で、対応するシナプス係数が−1なのでu_1=-1になります。よってx_1=-1(青色)になります。


次にニューロン2の出力を考えます。

  • 図9

ニューロン2への入力は−1で、対応するシナプス係数が−1なのでu_2=1になります。よってx_2=1(赤色)になります。


再びニューロン1の出力を考えます。すると図8と同じことが分かります。つまり、このネットワークは(x_1,x_2)=(-1,1)の状態で安定しています。


ところで、図9を見てみるとシナプス係数の設定は対称なのでニューロン1と2を入れ替えても安定した状態になることが分かります。つまりs_12=s_21=-1のネットワークには

  • 図10
  • (x_1,x_2)=(-1,1)

  • 図11
  • (x_1,x_2)=(1,-1)

の2つの安定な状態があるということが分かります。