ホップフィールドネットワーク再検討(1)

以前、ホップフィールドネットワークを検討した際には、各ニューロンの値は1か−1であるとしていました。これを通常のニューラルネットワークのように1か0の値を取るとしても、ニューロンの状態更新によってエネルギー E

  • E=-\frac{1}{2}\Bigsum_{i=1}^n\Bigsum_{j=1}^ns_{ij}x_ix_j・・・・(1)

が増加しない、ということ言うことが出来るでしょうか?
ただし、ここで x_kk番目のニューロンの出力であり、s_{ij}i番目のニューロンにおける、 j番目のニューロンの出力を入力とした時の重みです。

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

は成り立つとし、各ニューロンしきい値をゼロとします。つまり、 i番目のニューロンの出力x_i

  • x_i=1(u)・・・・(3)

  • u_i=\Bigsum_{j=1}^ns_{ij}x_j・・・・(4)

となります。ここで1(x)

  • x{\ge}0の時、1(x)=1
  • x<0の時、1(x)=0

となるような関数です。
以下、議論をホップフィールドネットワーク理解に向けての準備体操(5)に沿って進めます。


今、k番目のニューロンの出力x_kを計算して更新したとします。x_kは0か1の値しかとらないので、x_kの変化の仕方は次の4通りです。

  • 0→0・・・・(a)
  • 0→1・・・・(b)
  • 1→0・・・・(c)
  • 1→1・・・・(d)

更新によるxkの変化を\Delta{x}_kで表すことにします。すると

  • の場合は\Delta{x}_k=0・・・・(a)
  • の場合は\Delta{x}_k=1・・・・(b)
  • の場合は\Delta{x}_k=-1・・・・(c)
  • の場合は\Delta{x}_k=0・・・・(d)

となります。次に\Delta{x}を使ってエネルギーEの変化\Delta{E}を表してみます。式(1)でx_kが現れる項を区別して書くと

  • E=-\frac{1}{2}\left[\Bigsum_{i=1,i\neq{k}}^n\Bigsum_{j=1,j\neq{k}}^ns_{ij}x_ix_j+\Bigsum_{i=1}^ns_{ij}x_ix_k+\Bigsum_{j=1}^ns_{kj}x_kx_j\right]・・・・(5)

ここで

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

でしたので式(5)は

  • E=-\frac{1}{2}\left[\Bigsum_{i=1,i\neq{k}}^2\Bigsum_{j=1,j\neq{k}}^ns_{ij}x_ix_j+2\Bigsum_{j=1}^ns_{kj}x_kx_j\right]
  • E=-\frac{1}{2}\left[\Bigsum_{i=1,i\neq{k}}^2\Bigsum_{j=1,j\neq{k}}^ns_{ij}x_ix_j+2x_k\Bigsum_{j=1}^ns_{kj} x_j\right]

よって

  • E=-\frac{1}{2}\left[\Bigsum_{i=1,i\neq{k}}^2\Bigsum_{j=1,j\neq{k}}^ns_{ij}x_ix_j\right]-x_k\Bigsum_{j=1}^ns_{kj} x_j・・・・(6)

となります。ここから

  • \Delta{E}=-\Delta{x}_k\Bigsum_{j=1}^ns_{kj}x_j・・・・(7)

となります。ところで

  • u_i=\Bigsum_{j=1}^ns_{ij}x_j・・・・(4)

でしたので式(7)は

  • \Delta{E}=-\Delta{x}_ku_k・・・・(8)

となります。このu_kニューロンkの更新後の値であることに注意して下さい。よって

  • x_k=1ならばu_k{\ge}0
  • x_k=0ならばu_k<0・・・・(9)

です。以上のことから上の(a)〜(d)の場合の\Delta{E}の正負を調べてみます。

  • (a)と(d)の場合は式(8)から\Delta{E}=0です。
  • (b)の場合、更新後x_k=1になっているので(9)からu_k{\ge}0。また\Delta{x}_k=1。よって式(8)から\Delta{E}{\le}0になります。
  • (c)の場合、更新後x_k=0になっているので(9)からu_k<0。また\Delta{x}_k=-1。よって式(8)から\Delta{E}{\le}0になります。

以上から、どのような場合でも\Delta{E}{\le}0になります。これで、ニューロンの出力値が0または1の場合でもEが増加しないことが分かりました。