事後確率の近似を求めたり,事前確率のパラメータ(ハイパーパラメータ)を求めたりする時に使う変分ベイズを勉強してみた. とりあえず,混合ユニグラムモデルの事後確率の導出に使うので,事後確率の近似を求めよう,というモチベーションで書いてみる. 基本的には,「対数尤度を最大化したい」という立場は変わらない. 入力変数が潜在変数やパラメータに依存しているため,対数尤度というのをこれらの依存関係を考慮して表現しなければならないため,こういう考えにいたったんだと思っている.

i.i.d.データが与えられているとする. とし,パラメータの事後確率の計算を試みる. ここで,データはパラメータに依存しているため,対数尤度を表現するには,

と書かなければならない.前述の依存関係の考慮というのはこういうことを指します. もはや対数尤度がすんなり書けないのです. ちなみにこれはパラメータで対数尤度を周辺化したので,周辺対数尤度,あるいは単に周辺尤度と呼ばれるみたいです.

さて,対数尤度の下界は,潜在変数を導入して,以下のように導出できる.

この下界は変分自由エネルギー (Variational free energy)と呼ばれるらしい. このに関して最大化することで,対数尤度の近似を得ることができるが, 今回は,対数尤度とこの下界の差に注目してみる. 対数尤度とこの下界の差は,以下のように書くことができる.

ただし,KLはカルバックライブラー情報量である. つまり,対数尤度の近似を求めることは,を,で近似することに相当する.従って,対数尤度の下界を最大化するが,計算したかった事後確率の良い近似になっていることが期待できる.これがからくり.

では,実際にを求めてみる. しかし,は関数の関数という,いわゆる汎関数で,この最大化は汎関数の極値問題で少しややこしい. 求め方だけ勉強してみたので,それを書いてみる.

とすると,

と書ける.このは被積分関数と呼ばれているらしい,積分される関数だから当たり前なのだけれど…. 上記の形をした汎関数の極値は,以下で定義されるオイラーの方程式を満たす.

今考えているも出てこないので,上記の条件は,

となる.この条件を使うと,

となり,まず,を求めることができた.

次に,を求める.これが本題.

とすると,

となる.同様に,には,が出てこないので,最適解は以下のように導出できる.

まとめると,

となり,これを交互に計算するアルゴリズムは,変分ベイズEMアルゴリズム (Variational Bayes EM Algorithm)と呼ばれる.

次回やる混合ユニグラムモデルのベイズ推定では,上の式を使う予定.