変分推論(variational inference)は、ベイズ手法で解析的に事後分布を求めることができない場合に、非常によく利用される近似アルゴリズムです。変分推論は文脈によっては、変分ベイズと呼ばれたりしています。
変分推論は、ベイズ推論におけるMCMC等のサンプリングアルゴリズムと並んで利用されており、研究論文などでも登場する非常に重要な理論です。
今回はこの変分推論をできるだけわかりやすく解説し、さらに変分推論の文脈で登場するELBOや自由エネルギーなどの概念について解説してきます。
- 変分推論について理解する
- 変分推論に登場するELBOについて理解する
変分推論の考え方
まず変分推論の概要について理解していく前に、簡単にベイズ推論の枠組みについて復習しましょう。
今、考えているモデルのパラメータの集合を$\bm{Z}$、観測値として、$\bm{X} = { \bm{x}_1, \bm{x}_2, \cdots, \bm{x}_N }$がある時、ベイズの定理より、次の等式が成り立ちます。
\begin{equation} \begin{split} p(\bm{Z} | \bm{X}) = \frac{p(\bm{X | \bm{Z}}) p(\bm{\bm{Z}}) }{p(\bm{X})} \end{split} \end{equation}
一般的にベイズ推論の主たる目的は、(1)式で表現されるパラメータ$\bm{Z}$の事後分布$p(\bm{Z} | \bm{X})$を求めることです。
事後分布$p(\bm{Z} | \bm{X})$を求めることができると、確率分布の周辺化を行うことで、未知の値$\bm{x}$の予測分布も次のように求めることができます。
\begin{equation} \begin{split} p(\bm{\hat{x}} | \bm{X}) &= \int p(\bm{\hat{x}} | \bm{Z}) p(\bm{Z} | \bm{X}) d\bm{\theta} \end{split} \end{equation}
では、(1)で表現される事後分布$p(\bm{Z} | \bm{X})$をどのように求めるか、ということですが、一般的に(1)式の分母は周辺分布といい、解析的に求めることが大変難しいです。(パラメータの数だけ重積分する必要性があり、一般的に解析的に求めることが難しい)
そこで、(1)式を何かしら近似的に求めようとするのが、変分推論のまず最初の出発点になります。
変分推論では、$p(\bm{Z} | \bm{X})$と近似する、別の関数$q(\bm{Z})$で近似する手法になっています。ここで、$p$や$q$などのいろいろな関数が出てきて混乱してしまうかもしれませんが、これらは全く別の関数であることを表現しているだけなので、そこまで構えなくても大丈夫です。
全体的な理解としては、事後分布$p(\bm{Z} | \bm{X})$を求めたいけど、解析的に求めるのが難しいので、それと似た関数$q(\bm{Z})$で近似しようというのが、考え方です。
変分推論の定式化
では、変分推論とはどのようなものなのか、ここから深掘っていきます。
先ほども書いたように、変分推論は、求めたい事後分布 $p(\bm{Z} | \bm{X})$を、別の関数$q(\bm{Z})$で近似して考えようとする発想からきています。この考え方を、変分近似といったりします。
今、$q(\bm{Z})$の関数系を決めるパラメータを明示的に$\bm{\alpha}$と表現し、先ほど提示した 別の関数を$q(\bm{Z}; \bm{\alpha})$とします。
変分推論では、事後分布と$q(\bm{Z}; \bm{\alpha})$が出来るだけ等しくなるようにと考えるので、KL情報量(カルバックライブラー情報量)を考え、この2つの関数のKL情報量が最小となるような$\bm{\alpha}_{opt}$を求める問題に帰着させます。
つまり定式化すると、次のような最適化問題に帰着します。
\begin{equation} \bm{\alpha}_{opt}= \underset{\bm{\alpha}}{\operatorname{argmin}} \operatorname{KL}(q(\bm{Z};\bm{\alpha})||p(\bm{Z}|\mathbf{X})) \end{equation}
(3)を満たす、$\bm{\alpha}_{opt}$を見つけることが、変分推論の目的となっています。
そこで、(3)の目的関数である、次のカルバックライブラー情報量について考えてみます。
KL[q(\bm{Z}) ||p(\bm{Z}|\mathbf{X})]
ここで、$q(\bm{Z};\bm{\alpha})$は明示的に$\bm{\alpha}$がパラメータであることを書いてきましたが、簡単のため、事後分布を近似する関数を$q(\bm{Z})$のように書きました。
このカルバックライブラー情報量は、定義により次のように変形できます。
\begin{equation} \begin{split} KL[q(\bm{Z}) || p(\bm{Z}|\mathbf{X})] &= \int q(\bm{Z}) ln \frac{q(\bm{Z})}{p(\bm{Z}|\mathbf{X})} d\bm{Z} \\ &= \int q(\bm{Z}) ln \frac{ q(\bm{Z}) p(\bm{X}) }{ p(\bm{Z}|\mathbf{X}) p(\bm{X})} d\bm{Z} \\ &= \int q(\bm{Z}) ln \frac{ q(\bm{Z}) p(\bm{X}) }{ p(\bm{Z}, \mathbf{X}) } d\bm{Z} \\ &= \int q(\bm{Z}) ln p(\bm{X} )d\bm{Z} + \int q(\bm{Z}) ln \frac{ q(\bm{Z}) }{ p(\bm{Z}, \mathbf{X}) }d\bm{Z} \\ &= ln p(\bm{X}) - \int q(\bm{Z}) ln \frac{ p(\bm{Z}, \mathbf{X}) }{ q(\bm{Z}) }d\bm{Z} \\ &= ln p(\bm{X}) - F(\bm{X}, \bm{Z}) \end{split} \end{equation}
(4)の式変形がが怪しい人は、KL情報量について復習するようにしてください。
また(4)の最後に式変形で登場する、$ln p(\bm{X})$は、周辺対数尤度と呼ばれる値で、データ$\bm{X}$が決まれば定数として定まる量です。
今回、(3)式で求めたい事後分布を近似する関数を$q(\bm{Z})$とおき、そのカルバックライブラー量(KL情報量)を定義しました。
KL情報量は、2つの確率密度関数の類似度を表現する指標と言えるので、このKL情報量を最小化するような、$関数q(\bm{Z})$を求めることができれば良いわけです。
ここで、(4)式の右辺第二項を次のように置き換きます。
\begin{equation} F(\bm{X}, \bm{Z}) = \int q(\bm{Z}) ln \frac{ p(\bm{Z}, \mathbf{X}) }{ q(\bm{Z}) }d\bm{Z} \end{equation}
この$F(\bm{X}, \bm{Z})$は、統計量として広く知られており、ELBO(Evidence Lower Bound)や自由エネルギー(Free Energy)と呼ばれております。
ELBOや自由エネルギーとか仰々しい名前はついていますが、そこまで構える必要性がありません。単純に(5)式の値をこの方に読んでいるだけです。
ここで、(4)式の、KL情報量を、(5)式を用いて、対数執念尤度と自由エネルギーを用いて表現すると次のようになります。
\begin{equation} \begin{split} KL[q(\bm{Z}) || p(\bm{Z}|\mathbf{X})] &= ln p(\bm{X}) - F(\bm{X}, \bm{Z}) \end{split} \end{equation}
(6)式を見ると、左辺のKL情報量を最大化するためには、右辺のELBO(自由エネルギー)$F(\bm{X}, \bm{Z})$を最大化すれば良いことわかります。
変分推論(変分ベイズ)ではELBOを最大化する
ここまでで、事後分布を近似する関数$q(\bm{Z})$を求めるには、KL情報量を最小化すればよく、そのためにはELBOを最大化すれば良いことがわかりました。
ELBOは先ほど導出した次の値です。
\begin{equation} ELBO = F(\bm{X}, \bm{Z}) = \int q(\bm{Z}) ln \frac{ p(\bm{Z}, \mathbf{X}) }{ q(\bm{Z}) }d\bm{Z} \end{equation}
このELBOを最小化するという話ですが、どのように最小化スレは良いでしょうか?
1つの手法として平均場近似(mean field approximation)が利用されています。
平均場近似とは、関数$q(\bm{Z})$を次のように表現できると近似する手法です。
\begin{equation} q(\bm{Z}) = q(z_1)q(z_2)q(z_3) \cdots q(z_K) \end{equation}
(8)の表現は、本来は確率変数に依存関係があるような場合でも、それがないと仮定していることに相当します。つまり、$q(\bm{Z})$を構成する各確率変数$\{ z_1, z_2, \cdots, \z_K \}$が、全て独立であるという仮定をおいています。
この過程により、(7)式のELBOを次にように式変形することで、近似的な最大値を求めることができます。つまり、(8)式とおくことで、各確率変数が独立であるといえるので、各確率変数に対して1つ1つ勾配降下法のアルゴリズムを用いて、ELBOを最大化できるというわけです。