廿TT

譬如水怙牛過窓櫺 頭角四蹄都過了 因甚麼尾巴過不得

変分法を使わずに変分ベイズの導出をする

今日の川柳

変分下限

2つのパラメータ \theta_1\theta_2 を持つ確率モデル p(Y|\theta_1,\theta_2)を考える。

いま事後分布 p(\theta_1,\theta_2|Y) をうまく近似する q(\theta_1,\theta_2) を求めたい。

\displaystyle \log p(Y) = \log \int p(Y, \theta_1,\theta_2)\,d\theta_1d\theta_2

を対数周辺尤度と呼ぶ。

対数周辺尤度を以下のように変形する。

 \displaystyle \log p(Y) = \log \int q(\theta_1,\theta_2) \frac{p(Y, \theta_1,\theta_2)}{q(\theta_1,\theta_2)}\,d\theta_1d\theta_2

エンセンの不等式により、対数周辺尤度に対して以下が成り立つ。

\displaystyle \log p(Y) \ge \int \int q(\theta_1,\theta_2) \log \frac{p(Y, \theta_1,\theta_2)}{q(\theta_1,\theta_2)}\,d\theta_1d\theta_2

右辺を変分下限と呼ぶ。変分下限は evidence lower bound (ELBO) とも呼ばれる。

変分下限は
 \displaystyle \int \int q(\theta_1,\theta_2) \log \frac{p( \theta_1,\theta_2|Y)p(Y)}{q(\theta_1,\theta_2)}\,d\theta_1d\theta_2\\
\displaystyle = \log p(Y) - \int \int q(\theta_1,\theta_2) \log \frac{q(\theta_1,\theta_2)}{p( \theta_1,\theta_2|Y)}\,d\theta_1d\theta_2
と変形できる。

第2項は事後分布とq(\theta_1, \theta_2) のKL(カルバック・ライブラ)情報量である。KL情報量の小さい事後分布の近似を求めることは、変分下限を最大化することと等価である。

変分ベイズ

q(\theta_1, \theta_2) は以下のように分解可能であるとする。

\displaystyle q(\theta_1, \theta_2)=q(\theta_1)q(\theta_2)

変分下限を最大化するのと、負の変分下限を最小化するのは同じである。

負の変分下限は、

 \displaystyle -\int \int q(\theta_1,\theta_2) \log \frac{p(Y, \theta_1,\theta_2)}{q(\theta_1,\theta_2)}\,d\theta_1d\theta_2 \\
= \displaystyle \int \int q(\theta_1,\theta_2) \log \frac{q(\theta_1,\theta_2)}{p(Y, \theta_1,\theta_2)}\,d\theta_1d\theta_2 \\
= \displaystyle \int \int q(\theta_1,\theta_2)\{  \log q(\theta_1,\theta_2) -\log p(Y, \theta_1,\theta_2)\}\,d\theta_1d\theta_2\\
= \displaystyle \int \int q(\theta_1)q(\theta_2)\{  \log q(\theta_1)+\log q(\theta_2) -\log p(Y, \theta_1,\theta_2)\}\,d\theta_1d\theta_2

この式は、q(\theta_1) が与えられたとき、

\displaystyle \int q(\theta_2) \log\frac{q(\theta_2)}{\exp( E_{q(\theta_1)} \log p(Y, \theta_1,\theta_2))} \, d\theta_2  +\mathrm{Const.}

となる。第1項は q(\theta_2) \exp( E_{q(\theta_1)} \log p(Y, \theta_1,\theta_2)) のKL情報量であり、 q(\theta_2) = \exp( E_{q(\theta_1)} \log p(Y, \theta_1,\theta_2)) のとき最小となる。

q(\theta_2) が与えられたときも同様なので、結果 q(\theta_1)q(\theta_2) を求めるには、

\displaystyle q(\theta_2) \propto \exp( E_{q(\theta_1)} \log p(Y, \theta_1,\theta_2))
\displaystyle q(\theta_1) \propto \exp( E_{q(\theta_2)} \log p(Y, \theta_1,\theta_2))

の期待値計算を繰り返せばよい。

パラメータが増えても同様である。

これが変分ベイズアルゴリズムである。

参考にしたもの

変分ベイズ学習 (機械学習プロフェッショナルシリーズ)

変分ベイズ学習 (機械学習プロフェッショナルシリーズ)

statmodeling.hatenablog.com