ボルツマンマシンについて勉強した その1
はじめに
ボルツマンマシンについて勉強したからメモ.きっかけは離散変数をつかったVAEの論文を掘っていったら出会ったから.教科書としては以下の2冊を使った(ボルツマンマシンに関して内容はモロ被りなので好み).
- 作者: 岡谷貴之
- 出版社/メーカー: 講談社
- 発売日: 2015/04/08
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (13件) を見る
機械学習スタートアップシリーズ これならわかる深層学習入門 (KS情報科学専門書)
- 作者: 瀧雅人
- 出版社/メーカー: 講談社
- 発売日: 2017/10/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
ここでは隠れ変数無し,あり2種類のボルツマンマシンの学習方程式の導出まで.
ボルツマンマシン(隠れ変数無し)
ボルツマンマシンは生成モデルの一つであり,無向グラフに対応した確率モデル.各ノードが確率変数を持っており,エッジは重みを持つ.ただし,無向グラフなためが成り立ち,自分自身とのコネクションは無し().
ボルツマンマシンの表現には様々なものがあるが,まずは隠れ変数が無く確率変数が2値()のボルツマンマシンを考える.ボルツマンマシンのモデルパラメータをとすると以下のように記述される.
はエネルギー関数と呼ばれるもので以下の形を取る.
はエッジの集合.2行目の式は内積を用いて書き直したもので,第2項は重み行列が対称行列であり変数の順序は考えない()ことと,対角成分が0であることを利用した.ただし,転置記号にを用いて,ベクトルを小文字のボールド体,行列を大文字のボールド体で記述してる. また,ベクトルは基本的に列ベクトルを考え,行ベクトルは列ベクトルの転置としている.
は規格化定数でのに対する和を1にしている.そのため,の右辺にある和は全てのに関する話になるので陽に書き下すと以下のようになる.
上記式から分かるように,は要素の和から成り立つ.
ボルツマンマシン(隠れ変数あり)
次に隠れ変数がある場合について.観測された変数を持つノードだけでなく,隠れ変数を持つノードが存在するグラフを考える.隠れ変数は内部状態を表すものなので観測データには関係がない.ここで観測データに対応した変数を可視変数とし,隠れ変数をとする. ここでこの二つの変数を一つにまとめたを導入すると,隠れ変数があるボルツマンマシンのエネルギー関数は隠れ変数が無い場合と同様に記述可能.
を使わず陽に書き表すと,
となる.ただし,可視変数と隠れ変数に対し別々にモデルパラメータを定義した.また最後の項にがかかっていないのはであるため. エネルギー関数が定義できたのでモデル分布は
となる.
ここで,隠れ変数を積分消去した周辺分布について考える.周辺分布は
となる.ここで式の見通しをよくするため,この周辺分布に対するエネルギー関数を以下の形で表現する.
すると周辺分布は
と表現でき見通しがよくなる.
学習について(隠れ変数無し)
最尤推定による学習について考える.対数尤度関数をとする.ただし,はサンプル数.最尤推定は尤度の最大化なのでを解くことになる. よってパラメータに関する微分に関する方程式の解を求めれば良い.バイアスに関する微分を計算すると,
正規化定数はサンプルに依存しないためがサンプル数倍としてかける. ここで両辺をサンプル数で割ると,
と書き直すことができ,それにより第1項はサンプル平均,第2項はモデル分布に対する期待値として表現できる. そこで第1項を,第2項をとして,と表す.
同様に重みに関する微分も計算するとに関する微分についてしか違いがないため,バイアルに関する微分の係数のみが変わって,
となる.以上から隠れ変数のないボルツマンマシンの学習方程式は
となり,サンプルとボルツマンマシンの各統計量が一致すればいいことが分かる.ちなみに隠れ変数のないボルツマンマシンの対数尤度は凸なため,大域的最適解に収束する.
学習について(隠れ変数あり)
次に隠れ変数を持つボルツマンマシンの学習方程式を導出する.基本的には隠れ変数なしと同様でを解くだけだが,隠れ変数は観測できない値なため周辺化した対数尤度について最尤推定を行う. ここでは隠れ変数と可視変数をまとめたを導入して,バイアスに関する微分を求める.
ここでのに関する微分は,隠れ変数と可視変数をまとめた変数を導入すれば
となる.これを元の式に代入すると,
ここで今後のために経験分布を導入する.ただし,はデルタ関数でとが一致するときに1を返す関数.
全体をで割ると最終的に対数尤度のバイアスに関する微分は
となる.ただし,第2項目がサンプルと無関係なためを独立に計算できることととなる関係を使った. 計算結果を見ると第1項目はという分布の期待値になっており,第2項目はとなっていることから,
となる.
バイアスと同様に重みに関する微分を計算すると,隠れ変数のないボルツマンマシンと同様の関係が成り立つことから,
と求まり,隠れ変数を持つボルツマンマシンの学習方程式は
となる.
計算コストについて
隠れ変数あるなしのボルツマンマシンの学習方程式が求まり後は方程式を満たすを実際に計算するだけだが,一つ大きな問題がある.両ボルツマンマシンの学習方程式の右辺はモデル分布に対する期待値になっている. これを計算するには変数に関する和を計算する必要があるが,それには個の要素の和を計算しなければならない.これを計算することは(変数の次元にもよるが)ほぼ不可能なため,一般的にはサンプリングを用いて近似的に求める.
ということで次の記事ではサンプリングにより近似的に求める方法から.