StanでADVIが使えるようになったので、変分ベイズの基礎は抑えておきたいなぁと思って最近学んでいました。自分向けのメモとして残します。
対数周辺尤度・変分下限・KL情報量
目的は事後分布の最もよい近似となるを求めることです。にはあとで因子分解可能という条件を入れます。
イエンセンの不等式を使って、対数周辺尤度を下から評価すると、
を変分下限と呼びます。任意の関数の関数です。対数周辺尤度はevidenceとも呼ばれるため、変分下限はevidence lower bound、略してELBOとも呼ばれます。対数周辺尤度と変分下限の差は、
となります。これはと事後分布のKL情報量(Kullback-Leiblerdivergence)です。対数周辺尤度がにはよらない、データのみから決まる定数であることを考えると、事後分布の最もよい近似となるを求めることは、変分下限を最大化することに等価になります。そのため、変分下限の最大化を目指します。ただし、は分布で積分すると1になる制約条件があるのでラグランジュの未定乗数法を使って、
(1)
を最大化すればOKです。以降では表記を簡潔にするためと書きます。
変分法
(1)式に限らず、で値が決まるある関数があって、がの最大値を与えるとします。から少しずれた の時のをとすると以下が成り立ちます。
これから導かれる必要条件は、
と展開した時、
となることです。この左辺を汎関数の変分と呼び、以下で定義します。
次に、
と表せる時を考えます。簡潔さを重視して以下のように表記します。
それでは変分を求めます。
であることを考慮すると、
となるので、
となるためには以下が成り立たなくてはいけません。
(2)
変分ベイズ(2パラメータの場合)
と因子分解できるの中で、(1)式を最大化するを考えます。いま(1)式は以下です。
ここで、
と置くと、
の形になるので(2)式を満たさなくてはいけません。
ここで、はに依存しないので、定数とみなすと、
となります。同様に(2)式の残りの式からは、以下が導かれます。
実装においては、の初期分布を決める→を求める→を求める→を求める→…という具合に変分下限がこれ以上上がらないところまで繰り返します。その結果が知りたかったになります。うまく共役な分布を使うことができればやの分布の形が決まるので正規化定数を求める手間がなく、簡潔で高速な実装が可能です。しかし、一般には数値積分をして正規化定数を求める必要があると思います。
2018.4.1追記
上記の式に従ってSymPyで簡単な例題を扱う記事を書きました。 statmodeling.hatenablog.com
参考文献
以下の文献はどれもためになるのですが途中からかなり難解です。[4],[5]では変分法の部分は「変数とみて微分すればよい」という、はしょった書き方になっていてよく分かりませんでした。
2016/4月に発行される予定である、[6]には期待しています。「こんなモデルの場合だとうまくいかない」「データに対してこういう変換を前もってすれば、近似がよくなる」などのノウハウがあるといいなぁと思っています。
- [1] Ormerod, J.T. and Wand, M.P. (2010) Explaining variational approximations. The American Statistician, 64, 140-153 [pdf]
- [2] David M. Blei, Alp Kucukelbir, Jon D. McAuliffe (2016) Variational Inference: A Review for Statisticians. arXiv:1601.00670 [stat.CO] [URL]
- [3] C.M. ビショップ (2012) パターン認識と機械学習 下
- [4] 佐藤一誠 (2015) トピックモデルによる統計的潜在意味解析
- [5] 岩田具治 (2015) トピックモデル
- [6] 中島伸一 (2016) 変分ベイズ学習
- 作者:C.M. ビショップ
- 発売日: 2012/02/29
- メディア: 単行本
トピックモデルによる統計的潜在意味解析 (自然言語処理シリーズ)
- 作者:佐藤一誠
- 発売日: 2015/03/13
- メディア: 単行本(ソフトカバー)
- 作者:岩田 具治
- 発売日: 2015/04/08
- メディア: 単行本