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

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

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

は、ニューロンの出力の更新によってエネルギーEが増加しないことを示す式でした。「ホップフィールドネットワーク再検討(1)」では、ニューロンiの入力と出力の関係を

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

としましたが、一般には、しきい値h_iを持つ形

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

です。式(8)からエネルギーEの式を、しきい値がある場合に拡張出来そうなので、試してみます。


式(8)と(10)から

  • \Delta{E}=-\Delta{x}_k\Bigsum_{j=1}^ns_{kj}x_j+\Delta{x}_kh_k
  • \Delta{E}=-\Bigsum_{j=1}^ns_{kj}\Delta{x}_kx_j+\Delta{x}_kh_k
  • \Delta{E}=-\frac{1}{2}\left[\Bigsum_{i=1}^ns_{ik}x_i\Delta{x}_k+\Bigsum_{j=1}^ns_{kj}\Delta{x}_kx_j\right]+\Delta{x}_kh_k・・・・(11)

ここで、エネルギーEは全てのニューロンについて同等な式であることを考えると

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

となることが分かります。実際に式(12)から(11)を導くことが出来ます。


これで、エネルギーEの式を、しきい値がある場合に拡張することが出来ました。では、「ホップフィールドネットワーク理解に向けての準備体操(7)」で行ったように、ある状態\{X_i\}が与えられた時にその状態を安定状態にするようなシナプス係数s_{ij}しきい値h_iをどのように決めればよいでしょうか? x_iが1か−1の値を取る場合は、「ホップフィールドネットワーク理解に向けての準備体操(7)」で見てきたように、しきい値h_i=0とし、シナプス係数は

  • s_{ij}=\left\{\begin{array}X_iX_j&\;&(i\neq{j})\\0&\;&(i=j)\end{array}・・・・(13)

とすればよいでしょう。では、x_iが1か0の値を取る場合はどうでしょうか? これは式(12)を

  • E=-\frac{1}{2}\Bigsum_{i=1}^n\Bigsum_{j=1}^ns_{ij}\left(x_i-\frac{1}{2}\right)\left(x_j-\frac{1}{2}\right)・・・・(14)

の形に書き直して考えればよいと思います。なお、式(14)を展開すると定数項が現れて、式(12)と形が一致しませんが、エネルギー関数は、それがどの状態\{X_i\}の時に極小や最小になるかが重要であって、その絶対値が重要なわけではありません。定数項はどの状態の時にエネルギー関数が極小や最小になるかということに影響を与えないので、定数項の差は無視してかまいません。
式(14)のように変形すると、\left(x_i-\frac{1}{2}\right)\frac{1}{2}-\frac{1}{2}の値をとるので、x_i1-1の値を取っていた「ホップフィールドネットワーク理解に向けての準備体操(7)」と同じように考えることが出来ます(この場合、1とか\frac{1}{2}とかという絶対値が重要なのではなくて、絶対値が同じで符号が異なる2つの状態がある、ということが重要なので)。よって、

  • s_{ij}=\left\{\begin{array}\left(X_i-\frac{1}{2}\right)\left(X_j-\frac{1}{2}\right)&\;&(i\neq{j})\\0&\;&(i=j)\end{array}・・・・(15)

とすればよいことが分かります。では、しきい値のほうは、どのように設定すればよいでしょうか? 式(14)を展開すると

  • E=-\frac{1}{2}\Bigsum_{i=1}^n\Bigsum_{j=1}^ns_{ij}\left(x_ix_j-\frac{1}{2}x_i-\frac{1}{2}x_j+\frac{1}{4}\right)
  • E=-\frac{1}{2}\Bigsum_{i=1}^n\Bigsum_{j=1}^ns_{ij}x_ix_j+\frac{1}{4}\Bigsum_{i=1}^n\Bigsum_{j=1}^ns_{ij}x_i+\frac{1}{4}\Bigsum_{i=1}^n\Bigsum_{j=1}^ns_{ij}x_j-\frac{1}{8}\Bigsum_{i=1}^n\Bigsum_{j=1}^ns_{ij}
  • E=-\frac{1}{2}\Bigsum_{i=1}^n\Bigsum_{j=1}^ns_{ij}x_ix_j+\frac{1}{4}\Bigsum_{i=1}^n\left(\Bigsum_{j=1}^ns_{ij}\right)x_i+\frac{1}{4}\Bigsum_{j=1}^n\left(\Bigsum_{i=1}^ns_{ij}\right)x_j-\frac{1}{8}\Bigsum_{i=1}^n\Bigsum_{j=1}^ns_{ij}

よって

  • E=-\frac{1}{2}\Bigsum_{i=1}^n\Bigsum_{j=1}^ns_{ij}x_ix_j+\frac{1}{2}\Bigsum_{i=1}^n\left(\Bigsum_{j=1}^ns_{ij}\right)x_i-\frac{1}{8}\Bigsum_{i=1}^n\Bigsum_{j=1}^ns_{ij}・・・・(16)

ここで、定数項は無視できるので

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

式(17)と式(12)を見比べると、しきい値

  • h_i=\frac{1}{2}\Bigsum_{j=1}^ns_{ij}・・・・(18)

と設定すればよいことが分かります。