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

このエントリーは勉強であれこれ考えたことをメモしているだけですから、個人的なものです。ネットに公開しながら矛盾していますが、ごく私的なメモです。すみません。いつかはちゃんと人に説明出来るようになりたい。とにかく書いていきます。


さっそくですが昨日

英語版Wikipedia制限ボルツマンマシンのページに登場した

  • P(v,h)=\frac{1}{Z}e^{-E(v,h)}

の式を見た時に、おお、まさしく統計力学の式だ、と感じました。


ボルツマンマシンの勉強中

で書いたことに疑問を持ち始めています。この式には温度Tが入っていない点が統計力学で登場する式と異なるのではないか? ボルツマンマシンでは温度が(物理的な温度とは別の抽象的な温度であったにしても)重要な役割をはたすのであるから、上の式で温度が登場しないのはおかしいのではないか? と思うようになりました。きちんと統計力学に即して書くならば

  • P(v,h)=\frac{1}{Z}e^{-\frac{E(v,h)}{k_BT}}

になるのではないか、と思っております。ここでk_Bボルツマン定数です。ここでの温度は物理的な温度とは異なる縮尺を持っていると仮定して、k_BTを新たな温度T'と定義し、改めてこれをTと書き表すことにすれば

  • P(v,h)=\frac{1}{Z}e^{-\frac{E(v,h)}{T}}

です。


さて、いきなり制限ボルツマンマシンについて考察するのではなく、通常のボルツマンマシンについて考察します。ボルツマンマシンを構成する各ニューロンの出力は+1か-1のいずれかであるとします。i番目のニューロンの出力をx_iで表すことにします。そしてそれらを全て並べた(x_1,x_2,...)をこのボルツマンマシンの状態ベクトルとみなし、これをxで表すことにします。このボルツマンマシンのエネルギーEを状態xの関数と考えE(x)と書くことにします。すると、温度がTの時に、このボルツマンマシンの状態がxである確率P(x)は、統計力学との類推から

  • P(x)=\frac{1}{Z}\exp\left(-\frac{E(x)}{T}\right)・・・・(1)

で与えられるとします。i番目のニューロン以外の全てのニューロンの出力x_j(ただしj\neq{i})が決定しているとして、この状態でi番目のニューロンの出力x_iが+1になる確率、-1になる確率を求めてみます。x_i=1である時のこのボルツマンマシン全体のエネルギーをE_i^+x_i=-1である時のこのボルツマンマシン全体のエネルギーをE_i^-で表すことにします。E_i^+E_i^-の値はx_iだけで決まるのではなく、全てのニューロンの出力から決まることに注意して下さい。i番目のニューロンと他のニューロンの間のシナプス係数や他のニューロンの出力によってはE_i^+>E_i^-の場合もあり得ますし[tex:E_i^+

  • x_j=a_j・・・・(2)

のように決まっているとします。a_jは+1か-1の値をとるとします。他のニューロンの出力が式(2)のように定まっていてx_i=1であるような状態ベクトルx_i^+、他のニューロンの出力が式(2)のように定まっていて_i=-1であるような状態ベクトルx_i^-、で表すことにします。すると式(1)から

  • P(x_i^+)=\frac{1}{Z}\exp\left(-\frac{E_i^+}{T}\right)・・・・(3)
  • P(x_i^-)=\frac{1}{Z}\exp\left(-\frac{E_i^-}{T}\right)・・・・(4)

となります。x_iの値が任意であるとして他のニューロンの出力が式(2)のようになる確率をP(a)で表すと

  • P(a)=P(x_i^+)+P(x_i^-)・・・・(5)

となります。他のニューロンの出力が式(2)のようになっている前提でx_i=1である確率がP(x_i=1)、同じ前提でx_i=-1である確率がP(x_i=-1)でした。よって

  • P(x_i=1)=\frac{P(x_i^+)}{P(a)}・・・・(6)
  • P(x_i=-1)= \frac{P(x_i^-)}{P(a)}・・・・(7)

となります。式(6)に式(5)を代入すると

  • P(x_i=1)=\frac{P(x_i^+)}{P(x_i^+)+P(x_i^-)}
  • P(x_i=1)=\frac{1}{1+\frac{P(x_i^-)}{P(x_i^+)}}・・・・(8)

式(8)に式(3)(4)を代入すると

  • P(x_i=1)=\frac{1}{1+\frac{\frac{1}{Z}\exp\left(-\frac{E_i^-}{T}\right)}{\frac{1}{Z}\exp\left(-\frac{E_i^+}{T}\right)}}
  • P(x_i=1)=\frac{1}{1+\exp\left(-\frac{E_i^--E_i^+}{T}\right)}・・・・(9)

となります。ここで

  • \Delta{E}_i=E_i^--E_i^+・・・・(10)

と置くと式(9)は

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

となります。これで、i番目のニューロンの出力x_iが+1になる確率P(x_i=1)を求めることが出来ました。


ところで、さらに

  • y=\frac{\Delta{E_i}}{T}・・・・(12)

と置くと式(11)は

  • P(x_i=1)=\frac{1}{1+\exp(-y)}・・・・(13)

となります。式(13)の右辺はシグモイド関数になっています。