制限ボルツマンマシンのアルゴリズムの導出が難しかったので忘れないようにまとめておいた。今回から数回にわたって
- 可視変数のみのボルツマンマシンの導出(2.4節)
- 隠れ変数ありのボルツマンマシンの導出(2.5節)
- 制限ボルツマンマシンの導出(2.7節)
の順番に書いてみる予定。表記法は下の深層学習に準じた。この本は紙面の都合か教育的配慮かわからないが最終結果しか書いてない。この記事ではなるべく1ステップずつ展開していって無理なく理解できるレベルにまで落とし込みたいと思っている。ボルツマンマシン自体の説明は非常にわかりやすいこの本に譲ってここでは純粋に式展開とポイントだけをまとめる。
深層学習 Deep Learning (監修:人工知能学会)
- 作者: 麻生英樹,安田宗樹,前田新一,岡野原大輔,岡谷貴之,久保陽太郎,ボレガラダヌシカ,人工知能学会,神嶌敏弘
- 出版社/メーカー: 近代科学社
- 発売日: 2015/11/05
- メディア: 単行本
- この商品を含むブログ (1件) を見る
今回は可視変数のみのボルツマンマシンの学習方程式(式2.17・2.18)の導出が目標!
定義
エネルギー関数(energy function)
ボルツマン分布(Boltzmann distribution)
分配関数(partition function)
データ集合
対数尤度関数
尤度関数
データはi.i.d.なので各データの生成確率をすべて掛け算したものがデータ全体を生成する確率になる。
なぜインデックスに を使うんだー入力が面倒だーと愚痴りたくなった。
対数尤度関数
尤度関数のままだとアンダーフローして扱いにくいため対数を取って足し算に変換する。対数をとっても尤度関数を最大化するパラメータは変わらない。
ここは一番最後の展開がポイント。
の自然対数に関する公式を使った。
対数尤度関数のバイアスパラメータに対する勾配(2.14)の導出
先の対数尤度関数をバイアスパラメータ で偏微分する。対数尤度関数は3つの項があった。1項目は
に対応する
しか残らない。2項目は
とは無関係の定数なので消えてしまう。ここで3項目が曲者で
をパラメータに対する定数だと思ってはいけない!
は
を含むので偏微分の対象なのだ。最後の展開は合成関数の微分。
上の式の第2項の偏微分をさらに展開していく。
2式目から3式目は合成関数の微分だが の微分はそのまま
なので消えない。中身のAの微分は
に対応する
以外は残らない。
以上の結果をまとめると
となり、式 (2.14) が導出できた。最後は期待値の定義
による。
対数尤度関数の重みパラメータに対する勾配の導出
こちらもバイアスパラメータのときとほとんど同じように進めればよい。偏微分するパラメータが異なるので残る変数が異なるだけ。
上の式の第2項の偏微分をさらに展開していく。
よって、
となり式 (2.15) が導出できた。
ボルツマンマシンの学習方程式
対数尤度関数の最大点では下の条件を満たす
よって、左辺にこれまでの結果を代入するとボルツマンマシンの学習方程式
が得られる。式 (2.17) と式 (2.18) が導出できた。やったね!
何か誤りを見つけたり、ここの展開は不明だという点があったらぜひ指摘してほしいです。
次回は隠れ変数があるボルツマンマシンを導出していきたい。