機械学習基礎理論独習

誤りがあればご指摘いただけると幸いです。数式が整うまで少し時間かかります。リンクフリーです。

勉強ログです。リンクフリーです
目次へ戻る

変分推論

変分推論とは

変分推論は確率分布の近似手法です。
ある確率分布p(z_1,z_2,z_3)を、より簡単な近似分布 q(z_1,z_2,z_3)で表現できないか考えます。
 {\rm KL}(q||p)は分布の距離のようなものなので、これが小さくなるようにします。
単純にq=pとするのではなく、qにある制限を設けます。
 p(z_1,z_2,z_3)\approx q(z_1)q(z_2)q(z_3)のように各確率変数に独立の仮定をおきます。
変分推論においてこうした分解された形を用いることは、物理学で平均場近似と呼ばれる近似法に対応しています。

変分推論の基礎となる近似式の導出

すでにq(z_2) q(z_3)が与えられているとします。
このときのq(z_1)を求めてみましょう。
期待値はブラケットによる表記法(\langle x\rangle_{p(x)}\stackrel{\mathrm{def}}{\equiv}{\mathbb E}_{p(x)}[x])を用いることにします。


\begin{eqnarray}
&&{\rm KL}[q(z_1)q(z_2)q(z_3)||p(z_1,z_2,z_3)]\\
&=&-\left\langle\ln\frac{p(z_1,z_2,z_3)}{q(z_1)q(z_2)q(z_3)}\right\rangle_{q(z_1)q(z_2)q(z_3)} \tag{1}\\
&=&-\left\langle\left\langle\ln\frac{p(z_1,z_2,z_3)}{q(z_1)q(z_2)q(z_3)}\right\rangle_{q(z_2)q(z_3)}\right\rangle_{q(z_1)} \tag{2}\\
&=&-\left\langle
\left\langle\ln p(z_1,z_2,z_3)\right\rangle_{q(z_2)q(z_3)}-\left\langle\ln q(z_1)\right\rangle_{q(z_2)q(z_3)}-\left\langle\ln q(z_2)\right\rangle_{q(z_2)q(z_3)}-\left\langle\ln q(z_3)\right\rangle_{q(z_2)q(z_3)}
\right\rangle_{q(z_1)} \tag{3}\\
&=&-\left\langle
\left\langle\ln p(z_1,z_2,z_3)\right\rangle_{q(z_2)q(z_3)}-\left\langle\ln q(z_1)\right\rangle_{q(z_2)q(z_3)}
\right\rangle_{q(z_1)}+{\rm const.} \tag{4}\\
&=&-\left\langle
\left\langle\ln p(z_1,z_2,z_3)\right\rangle_{q(z_2)q(z_3)}-\ln q(z_1)
\right\rangle_{q(z_1)}+{\rm const.} \tag{5}\\
&=&-\left\langle
\ln\exp\left\{\left\langle\ln p(z_1,z_2,z_3)\right\rangle_{q(z_2)q(z_3)}\right\}-\ln q(z_1)
\right\rangle_{q(z_1)}+{\rm const.} \tag{6}\\
&=&-\left\langle
\ln\frac{\exp\left\{\left\langle\ln p(z_1,z_2,z_3)\right\rangle_{q(z_2)q(z_3)}\right\}}{q(z_1)}
\right\rangle_{q(z_1)}+{\rm const.} \tag{7}\\
&=&{\rm KL}[q(z_1)||\exp\{\left\langle\ln p(z_1,z_2,z_3)\right\rangle_{q(z_2)q(z_3)}\}]+{\rm const.}\tag{8}\\
\end{eqnarray}
(5)ではz_1に関係ないものを{\rm const.}としてまとめております。
(6)の式変形ですが\ln\exp x=x を使った変形をしております。

(8)を最小値は次の式で得ることができます。

\begin{eqnarray}
q(z_1)=\frac{\exp{\langle\ln p(z_1,z_2,z_3)\rangle_{q(z_1)q(z_2)}}}{\int \exp{\langle\ln p(z_1,z_2,z_3)\rangle_{q(z_1)q(z_2)}}{\rm dz_1}}\tag{9}\\
\end{eqnarray}
(9)式に対数を取ってみましょう。
\begin{eqnarray}
\ln q(z_1)=\langle\ln p(z_1,z_2,z_3)\rangle_{q(z_1)q(z_2)}+{\rm const.}\tag{10}\\
\end{eqnarray}
(10)の{\rm const.}は(9)の正規化項\int \exp{\langle\ln p(z_1,z_2,z_3)\rangle_{q(z_1)q(z_2)}}{\rm dz_1}です。
同様に、q(z_2)q(z_3)に対する最適化も全く同じ議論になり、それぞれの近似分布に対する更新を繰り返すことにより、KLダイバージェンスが徐々に最小化されていきます。

ここで、現実的な想定として、観測データ{\mathcal D}が与えられた一般的な確率モデルp({\mathcal D},{\bf Z})の事後分布p({\bf Z}|{\mathcal D})に対する近似公式を求めてみます。
{\bf Z}は潜在変数やパラメータであるとします。
(8)式より((8)式は一般的なケースは示していません。いづれ書くのでお待ちください。)

\begin{eqnarray}
\ln q(z_i)=\langle\ln p({\bf Z}|{\mathcal D})\rangle_{q({\bf Z}_{\backslash i})}+{\rm const.}\tag{11}\\
\end{eqnarray}
また確率の乗法定理より
\begin{eqnarray}
p({\bf Z}|{\mathcal D})=\frac{p({\mathcal D},{\bf Z})}{p({\mathcal D})}\tag{12}
\end{eqnarray}
と書けるので(11)は
\begin{eqnarray}
\ln q(z_i)=\langle\ln p({\mathcal D},{\bf Z})\rangle_{q({\bf Z}_{\backslash i})}+{\rm const.}\tag{13}\\
\end{eqnarray}
とも書けます。
(12)の{\rm const.}-\ln p({\mathcal D})も入れています。

最後に

今回の記事で示したかったのは(11)と(13)です。
次回の記事ではこれらを駆使して、混合ガウス分布に変分推論を適用していきます。
計算が中々むつかしいですが、一緒に頑張っていきましょう。

偉人の名言

f:id:olj611:20210218192210p:plain
勝者と敗者の違いはたいていの場合、、、やめないことである。

Walt Disney

参考文献

ベイズ推論による機械学習入門

動画

目次へ戻る