ボルツマンマシンの勉強中(4)

シグモイド関数

  • \sigma(x)=\frac{1}{1+\exp(-x)}・・・・(24)

は以下のような曲線になります。


このシグモイド関数の表記\sigma(x)を用いると式(11)

  • P(x_i=1)=\frac{1}{1+\exp\left(-\frac{\Delta{E_i}}{T}\right)}・・・・(11)

  • P(x_i=1)=\sigma\left(\frac{\Delta{E_i}}{T}\right)・・・・(25)

と表すことが出来ます。さらに式(23)

  • \Delta{E}_i=2\Bigsum_{j=1}^ns_{ij} x_j・・・・(23)

を(25)に代入すれば

  • P(x_i=1)=\sigma\left(\frac{2}{T}\Bigsum_{j=1 }^ns_{ij} x_j\right)・・・・(26)

になります。ここまでのボルツマンマシンの元になったホップフィールド・ネットワークのエネルギー関数の形は(ホップフィールドネットワーク(2)

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

で、この時のホップフィールド・ネットワークにおけるニューロンiの出力x_iの式は

  • x_i=1\left(\Bigsum_{j=1}^ns_{ij}x_j\right)・・・・(27)

です(ホップフィールドネットワーク理解に向けての準備体操(1)参照)。ただし1(\cdot)

  • x{\ge}0ならば1(x)=1
  • x<0ならば1(x)=-1・・・・(28)

という関数です。なお、ホップフィールドネットワーク理解に向けての準備体操(1)では最初

  •  x_i=1\left(\Bigsum_{j=1}^ns_{ij}x_j-h_i\right)・・・・(29)

という形を考えておりましたが(ここでh_iニューロンiしきい値)、その後すぐに、しきい値はゼロ、と仮定しました。もし、h_iの項を残しておくならば、エネルギー関数の形も

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

ではなく

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

になります。ここではh_i=0と仮定して話を進めます。
式(26)はボルツマンマシンにおけるニューロンiの出力x_iを決める式です。一方、式(27)はホップフィールド・ネットワークにおけるx_iを決める式です。ここがホップフィールド・ネットワークとボルツマンマシンの差になります。つまりホップフィールド・ネットワークの出力を決める式で1(\cdot)\sigma(\cdot)で置き換え、その計算結果を出力の値ではなく、x_i=1になる確率とみなすことでボルツマンマシンになります。逆にホップフィールド・ネットワークは、ボルツマンマシンで温度Tをゼロに限りなく近づけた場合と考えることが出来ます。T\rightar{0}にすると

  •  \Bigsum_{j=1 }^ns_{ij} x_j>0

の時

  •  \frac{2}{T}\Bigsum_{j=1 }^ns_{ij} x_j\rightar\infty

となり、

  •  \sigma\left(\frac{2}{T}\Bigsum_{j=1 }^ns_{ij} x_j\right)\rightar{1}

となり、

  • P(x_i=1)\rightar{1}

よって確定的に

  • x_i=1

となります。一方

  •  \Bigsum_{j=1 }^ns_{ij} x_j<0

の時

  •  \frac{2}{T}\Bigsum_{j=1 }^ns_{ij} x_j\rightar-\infty

となり、

  •  \sigma\left(\frac{2}{T}\Bigsum_{j=1 }^ns_{ij} x_j\right)\rightar{0}

となり、

  • P(x_i=1)\rightar{0}

よって確定的に

  • x_i=-1

となります。

  •  \Bigsum_{j=1 }^ns_{ij} x_j=0

の時は、0/0で計算出来ませんから除外します。この場合を除いて、x_iの値がホップフィールド・ネットワークと一致していることが分かります。