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

ホップフィールドネットワークにエネルギーE

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

が定義されました。これが増加しない理由を探っていきます。


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

  • -1\rightar{-1}・・・・(a)
  • -1\rightar{1}・・・・(b)
  • 1\rightar{-1}・・・・(c)
  • 1\rightar{1}・・・・(d)

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

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

となります。次に\Delta{x}_iを使ってエネルギーEの変化\Delta{E}を表してみます。式(7)で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}s_{ik}x_ix_k+\Bigsum_{j=1}s_{kj}x_kx_j\right]・・・・(8)

ここで

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

でした(「ホップフィールドネットワーク理解に向けての準備体操(2)」参照)ので式(8)は

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

よって

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

となります。ここから

  • \Delta{E}=-\Delta{x}_k\Bigsum_{j=1}s_{kj}x_j・・・・(10)

となります。ところで

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

(「ホップフィールドネットワーク理解に向けての準備体操(2)」参照)でしたので式(10)は

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

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

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

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

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

以上から、どのような場合でも\Delta{E}{\le}0になります。つまり、Eが増加することはありません。