5のノード番号が隠れ変数に対応するなら、Xは次のように表現できる。H_5\}$$無論、ノードの個数が5個であるとは限らない。Xに対応するボルツマンマシンはVとHの同時分布に他ならない。H;\theta))$$となる。ここで、vはVの実現値で、hはHの実現値となる。これもまたボルツマンマシンの一種であるため、以下の式と変わりは無い。\frac{1}{Z(\theta)}exp(-\Phi(x;\theta))$$「隠れ変数あり」のボルツマンマシンの学習もまた「隠れ変数なし」の場合と同様に最尤推定法で実施される。観測したデータ点に対応していない隠れ変数があるため、「隠れ変数なし」の場合とは異なるアルゴリズムが必要になる。「隠れ変数あり」の場合は、以下のように、隠れ変数において周辺化した可視変数のみの分布を利用する。\theta)$$この周辺分布の変数は観測データ点全てに対応している。したがって「隠れ変数なし」の場合と同様に対数尤度関数を記述することが可能になる。\ln{P(v^{(μ)}|\theta)}$$「隠れ変数なし」においても、この関数を最大化するパラメタθの値が最尤推定量となる。divergence)」を導入することで、情報量の視点から再記述することができる。KLダイバージェンスは確率変数Xに対する二つの異なる確率分布$$P_0(X)$$と$$P_1(X)$$の間にある「差異」、言い換えれば「非類似性」を表現する量を意味する。distribution)を定義する。観測データ点の集合Dの経験分布は次のようになる。\end{equation}$$この経験分布を利用すると、上述したボルツマンマシンの対数尤度関数は次のように変換できる。p(v|\theta)$$この最尤推定法はKLダイバージェンスを最小化することと等価となる。\sum_{v}^{}q_D(v)\ln\frac{q_D(v)}{p(v|\theta)}$$対数尤度関数のbとwのそれぞれに対する勾配は、次のようになる。H|\theta)}[X_iX_j]$$勾配を0とする条件により、「隠れ変数あり」の場合のボルツマンマシンの学習方程式は、以下のようになる。\end{equation}$$すなわち、ノードiが可視変数か隠れ変数かによって確率変数Xの変換過程が左右されている。h|\theta)}{p(v|\theta)}$$となる。「隠れ変数あり」のボルツマンマシンの学習では、「隠れ変数なし」のボルツマンマシンに比して「組み合わせ爆発」の問題が派生し易い。「隠れ変数なし」、つまり「可視変数のみ」のボルツマンマシンの学習方程式観測データ点では単純における標本平均とボルツマンマシンの期待値を如何に近付けるのかが問われた。これに対して、上述した「隠れ変数あり」のボルツマンマシンの学習方程式では、右辺がボルツマンマシンの期待値であることに変わりは無いが、左辺は複合化している。「隠れ変数あり」のボルツマンマシンの学習方程式の左辺は、次のような形式になっている。\theta)$$となる。\theta)$$は可視変数の値をμ番目の観測データ点で固定した場合に得られる隠れ変数の条件付き分布を意味する。したがってこの形式は「隠れ変数のみ」で構成されている別様のボルツマンマシンであると言える。上述した「隠れ変数あり」のボルツマンマシンの学習方程式を計算するには、まず各観測データ点における隠れ変数の条件付き分布を計算することで、それに対応する期待値を算出しておく必要がある。この観測データ点ごとの算出結果の平均として計算した結果が、「隠れ変数あり」のボルツマンマシンの学習方程式における左辺であるということになる。したがって「隠れ変数あり」のボルツマンマシンの場合は、左辺でも右辺でも「組み合わせ爆発」の問題が派生し得るということになる。隠れ変数の存在はボルツマンマシンの学習を至難の極みにしてしまう。隠れ変数の有無とは関係無しに、ボルツマンマシン学習は「組み合わせ爆発」問題を解消する「近似」の方法を要求している。問題解決策:マルコフ連鎖モンテカルロ法のギブスサンプラーボルツマンマシンは、「可視変数のみ」であれ「隠れ変数あり」であれ、組み合わせ爆発問題を派生させる。組み合わせ爆発問題を回避するには、ボルツマンマシンの期待値を近似的に計算する必要がある。sampler)」がある。MCMC法は、マルコフ性を背景としたモンテカルロ法だ。MCMC法はベイズ統計学をはじめとした様々な統計学の分野で利用されている。この方法は、とりわけ期待値計算に応用される傾向にある。chain)」と呼ばれる確率過程の収束に関する性質だ。時点tにおける確率変数を$$x^{(t)}$$と表す。...)$$を仮定する。...)$$の集合をXと表す。i)$$を満たす場合、この確率過程はマルコフ連鎖の関係にある。1の時点における条件付き確率分布が時点tよりも前の過去の状態には依存しない確率過程である。言い換えれば、マルコフ連鎖の確率過程では、各状態は直前の状態にしか依存しない。この性質を特に「マルコフ性」と呼ぶ。マルコフ連鎖モンテカルロ法は、このマルコフ性を前提としたモンテカルロ法を意味する。それは言い換えれば、データxが与えられた時に事後分布P(θ|x)からパラメタθをサンプリングする方法となる。sampler)」はボルツマンマシンで積極的に活用されている。ギブスサンプリングはマルコフ性を応用することにより、エネルギー関数の同時分布に従って確率変数に対応するサンプルを多数発生させることを可能にする。ボルツマンマシンはあるノードの状態が周囲のノードによる影響のみによって確率的に変化するという点で局所的なマルコフ性を有している。y)から開始して、以下の計算を反復する。xの新しい値を条件付き分布p(x|y)から選択する。yの新しい値を条件付き分布p(y|x)から選択する。ギブスサンプリングでは、xとyを交互に固定した上で、そこから条件付き分布を求めてデータ点を抽出していく。言い換えれば、ギブスサンプリングは条件付き分布に従って変数の値を確率論的に逐次更新していく方法を意味する。ギブスサンプラーのベクトル表現あるパラメタθが与えられた時にモデル分布p(x|θ)に従うxをアトランダムに生成させることを想定しよう。\theta)$$を計算していく。\theta)}$$となる。ε}^{}w_{ij}x_ix_j\right)$$ここでもZ(θ)は規格化定数となる。N_i}^{}w_{ij}x_j\right)}$$となる。ここでNはi番目のノードと結合する全てのノードの集合となる。i番目以外の全てのノードの状態を指定した条件付き分布は、Nのノードのみを状態として指定した条件付き分布から導き出すことが可能だ。各変数の条件付き分布の計算はこれにより一律に効率化できるようになる。ギブスサンプラーは、こうして各変数xのサンプリングを逐次的に反復していくことで元々の同時分布p(x|θ)に従うxの値を抽出していく。問題解決策:コントラスティブ・ダイバージェンス法よく指摘されるように、ギブスサンプラーは計算コストが高い。そのため、コストパフォーマンスに見合うか否かは問題視される場合が多い。高い計算コストを支払うだけの価値があるか否かは、アルゴリズム設計において切迫した問題となる。ジェフェリー・ヒントンも述べているように、ギブスサンプリングは一般に大きな分散を有する。この分散は局地を形成する。勾配がゼロになろうとも、高い分散の領域からパラメタを斥けてしまう。この事態は、サンプリング結果がモデルのパラメタに依存しているために、不確定要因として伴い得る。「平衡分布に由来するサンプルは一般的に非常に高い分散を有する。したサンプルはモデルの分布から所嫌わず得られているからだ。引用はp1774より。ヒントンはこの問題設定において、次のような砂と板の比喩でわかり易く解説している。「この微妙な影響を理解するために、水平のブリキ板を想定してみよう。その板は、一方が強く垂直に振動していて、他方が微動だにしていないといった具合に、共振状態にある。時間平均的に勾配がいずれにせよゼロになるとしても、その板の上で散在している砂は、動きの無い領域に集積されていくだろう。引用はp1774より。CD」を提案している。この方法は正確で効率的に近似することが可能なパラメタの導関数に関わる。CDの方法は単純極まりない。v_n$$としてセットする。その上でギブスサンプラー同様に隠れ変数と可視変数のサンプリングをk回反復していく。経験的にkは1で良いとされる。ボルツマンマシンでは、こうして抽出されたvとhを利用することで、期待値の近似に役立てる。RBM)」は、組み合わせ爆発問題の回避策として有効に機能する。制限ボルツマンマシンは「隠れ変数あり」のボルツマンマシンの一種だ。ボルツマンマシン同様、隠れ変数の複合性が高まれば、それだけモデルの表現能力も高まる。graph)として構成されている。制限ボルツマンマシンの各ノードは二層構造を形成している。layer)」となる。可視層の全てのノードは隠れ層の全てのノードとリンクを結んでいる。各ノードの結合は双方向の無向エッジである。可視層のノード同士のリンクや隠れ層のノード同士のリンクは一切形成されずに制限される。可視変数の個数をn、隠れ変数の個数をmとするなら、制限ボルツマンマシンはn個の諸要素を有した観測データ点の集合を参照することで学習していくモデルとなる。可視変数と隠れ変数のそれぞれをVとHで表し、可視変数のバイアスをb、隠れ変数のバイアスをcと表すなら、制限ボルツマンマシンのエネルギー関数は次のようになる。\sum_{i}^{}b_iv_i-\sum_{j}^{}c_jh_j-\sum_i^{}\sum_j^{}w_{ij}v_ih_j$$ボルツマンマシンのエネルギー関数同様、次のように変換して表現することもできる。Independence)」を有している。\prod{i=1}^{n}p(X_i|Y)$$のように、積の形式で表現できる場合、XやYの下で条件付き独立である。制限ボルツマンマシンの場合、可視層と隠れ層の関係が条件付き独立性を形成する。可視層が固定された場合には隠れ層が、隠れ層が固定された場合には可視層が、それぞれ条件付き独立により積の形式で計算可能になる。\sum_{i}^{}w_{ij}v_i$$この可視層と隠れ層の条件付き独立性の背景にあるのは、可視層のノード同士のリンクや隠れ層のノード同士のリンクが一切形成されないという、制限ボルツマンマシンの「制限」たる所以だ。この条件付き独立により、事実上可視変数を固定した上での隠れ変数のサンプリングと、隠れ変数を固定した上での可視変数のサンプリングを交互に反復することで、ギブスサンプリングが可能になる。制限ボルツマンマシンは「隠れ変数あり」のボルツマンマシンの一種であるため、学習方程式もこれに準拠している。基本的には、まず隠れ変数を周辺化することで可視変数のみの分布を求めた上で、そこから隠れ変数の分布を求めていくという手順を踏む。制限ボルツマンマシンの場合は完全二部グラフを採用しているために、計算処理が単純化される。隠れ変数Hについて周辺化した可視変数Vの分布は次のようになる。この集合と上記の可視変数の周辺分布を使用して、対数尤度関数のパラメタθに関する勾配を求めるなら、以下のようになる。\sum_{i}^{}w_{ij}v_i^{(μ)}$$これらの勾配を0にする前提で、制限ボルツマンマシンの学習方程式は次のように導出できる。E_{p(V,H|\theta)}[V_iH_j]$$通常の「隠れ変数あり」のボルツマンマシンの学習方程式に比して、少なからず観測データ点の標本平均に対応する左辺の計算は簡易化されている。右辺の期待値計算では依然として組み合わせ爆発問題の可能性を孕んでいる。そのため、制限ボルツマンマシンであっても、やはり近似計算は必要とする。その近似方法にはギブスサンプラーのみならずCD法も採用される。ここで用いられるCD法は制限ボルツマンマシンの条件付き独立性を利用した近似学習方法となる。機能的拡張案:深層信念ネットワーク確率論的な深層学習は、この制限ボルツマンマシンを何層にも積み上げた構成として設計される。DBN)」を再設計したアルゴリズムとしても位置付けられている。そのため、まずは深層信念ネットワークを確認しておいた方が良いだろう。深層信念ネットワークも、ボルツマンマシン同様にノードを層状に配置する。無向エッジなのは最上位層のみで、その他のノードは有向エッジとしてリンクされる。情報は上位層から階層へと一方通行の形式で伝播される。それにより、最下層の可視層の状態が決定される。制限ボルツマンマシンに比して、隠れ層が多数追加されているために、複合的な生成モデルにも対応できるようになっている。R個の隠れ層を持つ深層信念ネットワークは次のような確率モデルで表現される。1)})\right)$$ここで、r=0は可視層を表す。H^{(R)}}^{}w_{ij}^{(R)}h_i^{(R-1)}h_j^{(R)}\right)$$となる。深層信念ネットワークの学習は、初めにネットワーク全体の学習を実行するのではなく、2層ごとに逐次学習していくという「事前学習(pre-learning)」の形式を採る。事前学習では、まず可視層と第一層目の隠れ層にのみ着目して、その他の層は度外視することになる。その上で学習方程式により計算を実行する。次に、第一層目の隠れ層と第二層目の隠れ層の組み合わせに着目することで、今度はこれらの隠れ層のみの学習方程式を計算していく。この時、第一層目の隠れ層は疑似的な観測データ点と見做される。point)」と呼ばれることもある。全体がR層で構成された深層信念ネットワークの場合、r=0からr=R-2までの層は隣接する上位層と有向エッジでリンクしている。その間の条件付き分布は次のようになる。1)}\right)$$最上位層は制限ボルツマンマシンと同様の構造となるため、r=R-1とr=Rの層の同時分布は制限ボルツマンマシンの分布関数と等価となる。深層信念ネットワークには隠れ変数間にリンクがあると共に、層数も多い。そのため、隠れ変数の条件付き分布は制限ボルツマンマシンほど容易には計算できない。そこで、制限ボルツマンマシン同様に、隣接する層間の条件付き分布は次のように近似される。\sum_{i}^{}w_{ij}^{(r-1)}h_i^{(r-1)}\right)$$機能的拡張案:深層ボルツマンマシン深層ボルツマンマシンは、制限ボルツマンマシンを何層にも積み上げた構造を有している。その事前学習の形式は深層信念ネットワークの拡張として捉えることができる。深層ボルツマンマシンの事前学習における基本的な手続きは、深層信念ネットワークのそれと大差は無い。上図のように、深層ボルツマンマシンの場合はグラフの構造に若干の修正が加えられる。可視層である最下層と最上層のグラフの場合、事前学習は深層信念ネットワークと同様の形式で進められる。それ以外の隠れ層同士のリンクでは、条件付き分布の計算が変更される。\sum_{j}^{}w_{ij}^{(r)}h_j^{(1)}\right)$$となる。深層信念ネットワークと変わりは無い。\sum_{j}^{}w_{ij}^{(r)}h_i^{(r-1)}\right)$$となる。可視変数のバイアスはbと表し、隠れ変数のバイアスはcと表している。1の層とr-1の層の双方から入力を受け取ることを反映している。深層ボルツマンマシンは、こうして計算されたパラメタを初期値として設定する。プロトタイプの開発:制限ボルツマンマシンと深層ボルツマンマシンのフレームワークGitHubのaccel-brain-code/Deep-Learning-by-means-of-Design-Patternに配置しているライブラリ:『pydbm』では、制限ボルツマンマシンや深層ボルツマンマシンをはじめとする様々な構造のアルゴリズム、モデル、アーキテクチャを提供している。このライブラリの主要な機能の一つは、先述したライブラリ:『pyqlearning』と接続させることにより、関数近似器の様々な機能的等価物を提供することにある。枠組みにおいて関数近似として機能し得るのは、畳み込みニューラルネットワークだけではない。『pydbm』と『pyqlearning』は、この関数近似器の設計に伴う偶発性を明確化すると同時に、様々な関数近似器の精度や速度に関する機能的な比較を可能にする。