読者です 読者をやめる 読者になる 読者になる

StatModeling Memorandum

StanとRとPythonでベイズ統計モデリングします. たまに書評.

変分法をごまかさずに変分ベイズの説明をする

StanでADVIが使えるようになったので、変分ベイズの基礎は抑えておきたいなぁと思って最近学んでいました。自分向けのメモとして残します。

対数周辺尤度・変分下限・KL情報量

目的は事後分布の最もよい近似となるを求めることです。にはあとで因子分解可能という条件を入れます。

エンセンの不等式を使って、対数周辺尤度を下から評価すると、

を変分下限と呼びます。任意の関数の関数です。対数周辺尤度はevidenceとも呼ばれるため、変分下限はevidence lower bound、略してELBOとも呼ばれます。対数周辺尤度と変分下限の差は、

となります。これはと事後分布のKL情報量(Kullback-Leiblerdivergence)です。対数周辺尤度がにはよらない、データのみから決まる定数であることを考えると、事後分布の最もよい近似となるを求めることは、変分下限を最大化することに等価になります。そのため、変分下限の最大化を目指します。ただし、は分布で積分すると1になる制約条件があるのでラグランジュの未定乗数法を使って、

 (1)

を最大化すればOKです。以降では表記を簡潔にするためと書きます。

変分法

(1)式に限らず、で値が決まるある関数があって、の最大値を与えるとします。から少しずれた の時のとすると以下が成り立ちます。

これから導かれる必要条件は、

と展開した時、

となることです。この左辺汎関数の変分と呼び、以下で定義します。

次に、

と表せる時を考えます。簡潔さを重視して以下のように表記します。

それでは変分を求めます。

であることを考慮すると、

となるので、

となるためには以下が成り立たなくてはいけません。

   (2)

 

変分ベイズ(2パラメータの場合)

と因子分解できるの中で、(1)式を最大化するを考えます。いま(1)式は以下です。

ここで、

と置くと、

の形になるので(2)式を満たさなくてはいけません。

ここで、に依存しないので、定数とみなすと、

となります。同様に(2)式の残りの式からは、以下が導かれます。

実装においては、の初期分布を決める→を求める→を求める→を求める→…という具合に変分下限がこれ以上上がらないところまで繰り返します。その結果が知りたかったになります。うまく共役な分布を使うことができればの分布の形が決まるので正規化定数を求める手間がなく、簡潔で高速な実装が可能です。しかし、一般には数値積分をして正規化定数を求める必要があると思います。

参考文献

以下の文献はどれもためになるのですが途中からかなり難解です。[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) 変分ベイズ学習