ボルツマンマシン

A graphical representation of an example Boltzmann machine.
ボルツマンのグラフの一例。 各エッジ(線)は接続されたユニット同士の依存を意味する。この例では3つの不可視ユニット(hidden; 青)と4つの可視ユニット(visible; 白)がある。 ちなみにこの例は制約を持つボルツマンマシンではない。

ボルツマン・マシン: 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 ) {\displaystyle p_{\text{i=on}}={\frac {1}{1+\exp(-{\frac {\Delta E_{i}}{T}})}}}

となる。このような関係がボルツマン・マシンにおける確率式らにみられる理論関数の基礎となっている。

問題

ボルツマン・マシンは、理論的にはむしろ一般的な計算媒体である。ボルツマン・マシンは不規則過程より平衡統計を算出し、そこにみられる分布を理論的にモデル化し、そのモデルを使ってある全体像の一部分を完成させることができる。だが、ボルツマン・マシンの実用化においては、マシンの規模がある程度まで拡大されると学習が正確に行えなくなるという深刻な問題がある。これにはいくつかの原因があり、最も重要なものとして下記のものがある:

  • マシンが平衡統計を収集するために作動しなければならない時間は、マシンの大きさにより、また接続の強度により、指数的に永くなる。
  • 接続されたユニットたちの活発化の可能性が0と1の間をとると接続の強さがより変動しやすい。総合的な影響としては、それらが0か1に落ち着くまで、接続の強度はノイズによりバラバラに動いてしまう。

制限ボルツマン・マシン

Graphical representation of an example restricted Boltzmann machine
制限ボルツマンマシン(Restricted Boltzmann Machine; RBM)の一例。 制限ボルツマンマシンでは、可視と不可視ユニット間でのみ接続している(可視ユニット同士、または不可視ユニット同士は接続していない)。

一般的なボルツマン・マシンの学習はnの指数時間かかるため非実用的であるが、同一層間の接続を認めない「制限ボルツマン・マシン(英語版) (RBM)」では効率的な計算ができるコントラスティブ・ダイバージェンス(Contrastive Divergence)法が提案されている。制限ボルツマンマシンでは隠れ変数を定義しているが、可視変数の周辺分布を近似することを目的としているため、意味合いとしてはほとんど変わらない。

RBMを1段分学習させた後、その不可視ユニットの活性(ユニットの値に相当)を,より高階層のRBMの学習データとみなす。このRBMを重ねる学習方法は、多階層になっている不可視ユニットを効率的に学習させることができる.この方法は、深層学習のための一般的な方法の一つとなっている。この方式では一つの新しい階層が加えられることで全体としての生成モデルが改善されていく。また拡張されたボルツマン・マシンの型として、バイナリ値だけでなく実数を使うことのできるRBMがある[1]

RBMの実用例の一つとしては、音声認識ソフトウェアの性能の向上があげられる。

出典

  1. ^ "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
典拠管理データベース: 国立図書館 ウィキデータを編集
  • ドイツ