制限ボルツマンマシン (RBM) の導出 (1)
ボルツマンマシン(隠れ変数あり)の導出(2016/3/12)のつづき。Deep Learningの基礎モデルとして有名な制限ボルツマンマシン(Restricted Boltzmann Machine: RBM)を導出したい。深層学習の2.7節に当たる。前回と同様に表記法はこの本に準拠する。
深層学習 Deep Learning (監修:人工知能学会)
- 作者: 麻生英樹,安田宗樹,前田新一,岡野原大輔,岡谷貴之,久保陽太郎,ボレガラダヌシカ,人工知能学会,神嶌敏弘
- 出版社/メーカー: 近代科学社
- 発売日: 2015/11/05
- メディア: 単行本
- この商品を含むブログ (1件) を見る
- 可視変数のみのボルツマンマシンの導出(2.4節)
- 隠れ変数ありのボルツマンマシンの導出(2.5節)
- 制限ボルツマンマシンの導出(2.7節)
この本の説明も十分わかりやすいが制限ボルツマンマシンのよい解説をいくつか見つけたので参考にしたサイトを上げておく。
- 制限付きボルツマンマシンの初心者向けガイド
- RBMから考えるDeep Learning ~黒魔術を添えて~
- Restricted Boltzmann Machine の導出に至る自分用まとめ (PDF)
- Theano 入門
- Theano で Deep Learning <6>: 制約付きボルツマンマシン <前編>
- RBMのtheanoコード解説
- コンストラスティブ・ダイバージェンス法を用いた制限ボルツマンマシン(RBM)の実装
- scikit-learnのRBM
- An Introduction to Restricted Boltzmann Machines (PDF)
- Learning Deep Architecture for AI Chapter 5 Energy-Based Models and Boltzmann Machines (PDF)
- A Practical Guide to Training Restricted Boltzmann Machines (PDF)
ほとんどの資料は最終的な式しか書かれておらずどうやって導出したのかぱっと見ではわからなかった。この記事ではその導出過程をまとめておきたい。
定義
エネルギー関数
可視層と隠れ層のバイアス項を分けている。
ボルツマン分布
分配関数
可視層を固定した上での隠れ層の条件付き分布 (2.42) の導出
RBMの特殊なグラフ構造で成り立つ下の式 (2.42) を導出する。
この式は可視層のユニットを固定すると隠れ軸のユニット間で条件付き独立性が成り立つことを意味している。実際は、RBMを無向グラフィカルモデルとみなすと二つの隠れユニット間の経路を可視層が遮断するので条件付き独立が成り立つことは数式がなくてもグラフ構造を見るだけですぐにわかる。
さっそく導出しよう。
まず分子から展開する。
この段階では何でこんな展開が必要なのか意味不明だがあとできいてくる。
次に分母を展開。分子とほとんど同じだが周辺化のための がついてまわる。
この式の後半部分をさらに細かく展開する。
ここで隠れユニットの数はm個でバイナリユニット(0または1の値を取る)と仮定している。この展開では2式目から3式目への変換に気付けるかがキモな気がする。下のように同じ構造でもっと簡単な式で確認すると納得できる。
これまでの分母の展開をまとめると結局
となる。さらに分子と分母の結果をまとめると
分子と分母の前半部分はまったく同じなのでばっさり消える。ここで
と置く。2つめの式はシグモイド信念(sigmoid belief)と呼ばれる式とのこと。この本以外ではお目にかかったことないけど。最終的に
となり、式 (2.42) が得られた。証明終了!
この本には載っていないが、ついでに隠れ層のj番目のユニットが1を取る確率も導出しておこう。この式はユニットから値をサンプリングするときに重要になる。
隠れ層を固定した上での可視層の条件付き分布 (2.43) の導出
次に式 (2.43) を導出する。これが最終目標。
先ほどは可視層を固定したときの隠れ層の分布だったが、今回は逆で隠れ層を固定したときの可視層の分布だ。こちらはhとvが逆なだけでほとんど同じだけど導出しておこう。途中は少しはしょる。
分子は
分母は
分子と分母から
ここで
と置くと
となり、式 (2.43) が導出できた!
ついでに可視層のi番目のユニットが1を取る確率も導出しておこう。
長くなったのでいったんここで切る。次はRBMの対数尤度関数とパラメータでの偏微分の式を導出したい。