ボルツマンマシン

ボルツマンマシン（英: Boltzmann machine）は、1985年にジェフリー・ヒントンとテリー・セジュノスキー（英語版）によって開発された確率的（英語版）回帰結合型ニューラルネットワークの一種である。 ボルツマンマシンは、統計的な変動を用いたホップフィールド・ネットワークの一種と見なすことができる。これらはニューラル ネットワークの内部についてを学ぶことができる最初のニューラル ネットワークの 一つで、（十分な時間を与えられれば） 難しい組合せに関する問題を解くことができる。ただしボルツマン・マシンには後述される事柄を含む数々の問題があり、接続制限をもたないボルツマン・マシンは機械学習や推論のためには実用的であるとは証明されていない。しかしながらボルツマン・マシンは、その局所性とその学習アルゴリズムのヘッブ的性質またその並列処理やその動的力学と単純な物理的プロセスとの類似のため、理論として魅力的である。ボルツマンマシンは確率密度関数自体を計算する。 ボルツマン・マシンは、それらに使用されているサンプリング関数（統計力学においてのボルツマン分布、つまり、ソフトマックス関数）にちなんで名づけられた。 ボルツマン・マシンはホップフィールド・ネットと同様、結び付けられたユニットたちのネットワークでありそのネットワークの持つエネルギーが定義される。それらのユニットもまたホップフィールド・ネット同様1もしくは0（活発もしくは不活発）の出力値をとるが、ホップフィールド・ネットとは違い、不規則過程によってその値は決まる。ネットワーク全体のエネルギー E {\displaystyle E} における意味合いは、ホップフィールド・ネットのものと同様である。グローバルエネルギーの定義はホップフィールド・ネットと同様、以下のようになる： E = − ( ∑ i < j w i j s i s j + ∑ i θ i s i ) {\displaystyle E=-(\sum _{i<j}w_{ij}\,s_{i}\,s_{j}+\sum _{i}\theta _{i}\,s_{i})} w i j {\displaystyle w_{ij}} は i {\displaystyle i} 番目ユニットと j {\displaystyle j} 番目ユニットの間の結合係数 s i {\displaystyle s_{i}} は i {\displaystyle i} 番目ユニットの状態、 s i ∈ { 0 , 1 } {\displaystyle s_{i}\in \{0,1\}} θ i {\displaystyle \theta _{i}} は E {\displaystyle E} における i {\displaystyle i} 番目ユニットのバイアス。( − θ i {\displaystyle -\theta _{i}} は i {\displaystyle i} 番目ユニットの閾値) コネクションについては2つの制約がある： w i i = 0 ∀ i {\displaystyle w_{ii}=0\qquad \forall i} (自分自身とはコネクションがない) w i j = w j i ∀ i , j {\displaystyle w_{ij}=w_{ji}\qquad \forall i,j} (全てのコネクションは対称である) したがって重みは対角成分に0が並ぶ対称行列 W {\displaystyle W} によって与えられる。 一つのユニットが0または1の値をとることによりもたらされるグローバルエネルギーの差 Δ E i {\displaystyle \Delta E_{i}} は： Δ E i = ∑ j w i j s j + θ i {\displaystyle \Delta E_{i}=\sum _{j}w_{ij}\,s_{j}+\theta _{i}} で与えられ、これは二つのエネルギー状態の差： Δ E i = E i=off − E i=on {\displaystyle \Delta E_{i}=E_{\text{i=off}}-E_{\text{i=on}}} である。これにそれぞれのシステムの状態におけるエネルギーとボルツマン因子より得られた相関的な確率を代入すると： Δ E i = − k B T ln ⁡ ( p i=off ) − ( − k B T ln ⁡ ( p i=on ) ) {\displaystyle \Delta E_{i}=-k_{B}\,T\ln(p_{\text{i=off}})-(-k_{B}\,T\ln(p_{\text{i=on}}))} ここでボルツマン因子 k B {\displaystyle k_{B}} は温度に吸収されるとする。各項を移項し、確率の合計が1でなければならないとして： Δ E i T = ln ⁡ ( p i=on ) − ln ⁡ ( p i=off ) {\displaystyle {\frac {\Delta E_{i}}{T}}=\ln(p_{\text{i=on}})-\ln(p_{\text{i=off}})} Δ E i T = ln ⁡ ( p i=on ) − ln ⁡ ( 1 − p i=on ) {\displaystyle {\frac {\Delta E_{i}}{T}}=\ln(p_{\text{i=on}})-\ln(1-p_{\text{i=on}})} Δ E i T = ln ⁡ ( p i=on 1 − p i=on ) {\displaystyle {\frac {\Delta E_{i}}{T}}=\ln \left({\frac {p_{\text{i=on}}}{1-p_{\text{i=on}}}}\right)} − Δ E i T = ln ⁡ ( 1 − p i=on p i=on ) {\displaystyle -{\frac {\Delta E_{i}}{T}}=\ln \left({\frac {1-p_{\text{i=on}}}{p_{\text{i=on}}}}\right)} − Δ E i T = ln ⁡ ( 1 p i=on − 1 ) {\displaystyle -{\frac {\Delta E_{i}}{T}}=\ln \left({\frac {1}{p_{\text{i=on}}}}-1\right)} exp ⁡ ( − Δ E i T ) = 1 p i=on − 1 {\displaystyle \exp \left(-{\frac {\Delta E_{i}}{T}}\right)={\frac {1}{p_{\text{i=on}}}}-1} となる。定数 T {\displaystyle T} は各システムの温度であるとし、 i {\displaystyle i} 番目ユニットが1である確率 p i=on {\displaystyle p_{\text{i=on}}} は： p i=on = 1 1 + exp ⁡ ( − Δ E i T ) = ς 1 ( Δ E i T ) {\displaystyle p_{\text{i=on}}={\frac {1}{1+\exp(-{\frac {\Delta E_{i}}{T}})}}=\varsigma _{1}\left({\frac {\Delta E_{i}}{T}}\right)} となる。 ς 1 {\displaystyle \varsigma _{1}} は標準シグモイド関数。このような関係がボルツマン・マシンにおける確率式らにみられる理論関数の基礎となっている。 ボルツマン・マシンは、理論的にはむしろ一般的な計算媒体である。ボルツマン・マシンは不規則過程より平衡統計を算出し、そこにみられる分布を理論的にモデル化し、そのモデルを使ってある全体像の一部分を完成させることができる。だが、ボルツマン・マシンの実用化においては、マシンの規模がある程度まで拡大されると学習が正確に行えなくなるという深刻な問題がある。これにはいくつかの原因があり、最も重要なものとして下記のものがある： マシンが平衡統計を収集するために作動しなければならない時間は、マシンの大きさにより、また接続の強度により、指数的に永くなる。 接続されたユニットたちの活発化の可能性が０と１の間をとると接続の強さがより変動しやすい。総合的な影響としては、それらが0か1に落ち着くまで、接続の強度はノイズによりバラバラに動いてしまう。 一般的なボルツマン・マシンの学習はnの指数時間かかるため非実用的であるが、同一層間の接続を認めない「制限ボルツマン・マシン（英語版） (RBM)」では効率的な計算ができるコントラスティブ・ダイバージェンス（Contrastive Divergence）法が提案されている。制限ボルツマンマシンでは隠れ変数を定義しているが、可視変数の周辺分布を近似することを目的としているため、意味合いとしてはほとんど変わらない。 RBMを1段分学習させた後、その不可視ユニットの活性（ユニットの値に相当）を，より高階層のRBMの学習データとみなす。このRBMを重ねる学習方法は、多階層になっている不可視ユニットを効率的に学習させることができる．この方法は、深層学習のための一般的な方法の一つとなっている。この方式では一つの新しい階層が加えられることで全体としての生成モデルが改善されていく。また拡張されたボルツマン・マシンの型として、バイナリ値だけでなく実数を使うことのできるRBMがある。 RBMの実用例の一つとしては、音声認識ソフトウェアの性能の向上があげられる。 ^ "A Learning Algorithm for Boltzmann Machines" Archived 2011年7月18日, at the Wayback Machine., Ackley, David H.; Hinton, Geoffrey E.; Sejnowski, Terrence J. (1985). 人工知能 強化学習 機械学習 ニューロコンピュータ コネクショニズム 認知科学 脳科学 計算論的神経科学 ヘッブの法則 フレーム問題 認知アーキテクチャ 階層構造 創発 コネクトーム 複素ニューラルネットワーク 統計力学 Scholarpedia article by Hinton about Boltzmann machines