変分近似の概要

概要

EM アルゴリズム

概要

EM アルゴリズムの目的は、潜在変数を持つモデルについて最尤解を見出すことである。

全ての観測データの集合を \(\mathbf X\) 、全ての潜在変数の集合を \(\mathbf Z\) 、全てのモデルパラメータの集合を \(\boldsymbol\theta\) で表す。

最尤解 \(\hat{\boldsymbol\theta}\) は次式で表される。

\[\hat{\boldsymbol\theta}=\arg\max_{\boldsymbol\theta}p(\mathbf X\mid\boldsymbol\theta)=\arg\max_{\boldsymbol\theta}\sum_{\mathbf Z}p(\mathbf X,\mathbf Z\mid\boldsymbol\theta)\]

対数尤度関数は以下のように書ける。

\[\ln p(\mathbf X\mid\boldsymbol\theta) = \ln\left\{ \sum_{\mathbf Z} p(\mathbf X,\mathbf Z\mid\boldsymbol\theta) \right\}\]

このように、潜在変数に関する総和が対数の中にあり、同時分布 \(p(\mathbf X,\mathbf Z\mid\boldsymbol\theta)\) が指数型分布族に属する場合でも、周辺分布 \(p(\mathbf X\mid\boldsymbol\theta)\) は指数型分布族にならない。

\(\{\mathbf X,\mathbf Z\}\) という組を完全データ集合と呼び、実際の観測データ \(\mathbf X\)不完全と呼ぶことにする。完全データ集合に関する対数尤度関数 \(\ln p(\mathbf X,\mathbf Z\mid\boldsymbol\theta)\) の最大化は簡単にできると仮定する。

実際には、完全データ集合 \(\{\mathbf X,\mathbf Z\}\) は与えられず、不完全データ \(\mathbf X\) だけが与えられる。潜在変数 \(\mathbf Z\) についての知識は事後確率分布 \(p(\mathbf Z\mid\mathbf X,\boldsymbol\theta)\) によるものだけである。

\(\!\) 数式
目的 (指数型分布族ではない) \(\arg\max_{\boldsymbol\theta}p(\mathbf X\mid\boldsymbol\theta)\)
簡単 (指数型分布族である) \(\arg\max_{\boldsymbol\theta}p(\mathbf X,\mathbf Z\mid\boldsymbol\theta)\)
既知 \(p(\mathbf Z\mid\mathbf X,\boldsymbol\theta),\ p(\mathbf X,\mathbf Z\mid\boldsymbol\theta)\)

EMアルゴリズムでは、次の2ステップを踏む。

Eステップ

\[ \begin{split} \mathcal Q(\boldsymbol\theta,\boldsymbol\theta^{\text{old}}) &=\mathbb E_{\mathbf Z\mid\mathbf X,\boldsymbol\theta^{\text{old}}}\left[\ln p(\mathbf X,\mathbf Z\mid\boldsymbol\theta)\right] \\ &= \sum_{\mathbf Z} p(\mathbf Z\mid\mathbf X,\boldsymbol\theta^{\text{old}})\ln p(\mathbf X,\mathbf Z\mid\boldsymbol\theta) \end{split} \]

Mステップ

\[ \boldsymbol\theta^{\text{new}}=\arg\max_{\boldsymbol\theta}\mathcal Q(\boldsymbol\theta,\boldsymbol\theta^{\text{old}}) \]

\(p(\boldsymbol\theta)\) が既知の場合

パラメータの事前分布 \(p(\boldsymbol\theta)\) が既知の場合、MAP 解を計算できる。

\(\!\) 数式
目的 (指数型分布族ではない) \(\arg\max_{\boldsymbol\theta}p(\boldsymbol\theta\mid\mathbf X)\)
簡単 (指数型分布族である) \(\arg\max_{\boldsymbol\theta}p(\mathbf X,\mathbf Z\mid\boldsymbol\theta)\)
既知 \(p(\mathbf Z\mid\mathbf X,\boldsymbol\theta),\ p(\mathbf X,\mathbf Z\mid\boldsymbol\theta),\ p(\boldsymbol\theta)\)

\[ \begin{split} \boldsymbol\theta^{\text{new}} &=\arg\max_{\boldsymbol\theta}\left(\mathcal Q(\boldsymbol\theta,\boldsymbol\theta^{\text{old}})+\ln p(\boldsymbol\theta)\right) \\ &= \arg\max_{\boldsymbol\theta}\mathbb E_{\mathbf Z\mid\mathbf X,\boldsymbol\theta^{\text{old}}}\left[\ln p(\mathbf X,\mathbf Z,\boldsymbol\theta)\right] \\ &= \arg\max_{\boldsymbol\theta}\mathbb E_{\mathbf Z\mid\mathbf X,\boldsymbol\theta^{\text{old}}}\left[\ln p(\boldsymbol\theta\mid\mathbf X,\mathbf Z)\right] \end{split} \]

一般のEMアルゴリズム

潜在変数についての分布 \(q(\mathbf Z)\) を導入する。 \(q(\mathbf Z)\) の設定の仕方に関わらず、次の分解が成り立つ。

\[\ln p(\mathbf X\mid\boldsymbol\theta)=\mathcal L(q,\boldsymbol\theta)+\mathrm{KL}(q\|p)\tag{1}\]

ただし、

\[\mathcal L(q,\boldsymbol\theta)=\sum_{\mathbf Z}q(\mathbf Z)\ln\left\{ \frac{p(\mathbf X,\mathbf Z\mid\boldsymbol\theta)}{q(\mathbf Z)} \right\}\] \[\mathrm{KL}(q\|p)=-\sum_{\mathbf Z}q(\mathbf Z)\ln\left\{ \frac{p(\mathbf Z\mid\mathbf X,\boldsymbol\theta)}{q(\mathbf Z)} \right\}\]

\[ \begin{split} \because\ln p(\mathbf X\mid\boldsymbol\theta) &=\mathcal L(q,\boldsymbol\theta)+\mathrm{KL}(q\|p) \\ &= \sum_{\mathbf Z}q(\mathbf Z)\left(\ln\left\{ \frac{p(\mathbf X,\mathbf Z\mid\boldsymbol\theta)}{q(\mathbf Z)} \right\}-\ln\left\{ \frac{p(\mathbf Z\mid\mathbf X,\boldsymbol\theta)}{q(\mathbf Z)} \right\}\right) \\ &= \sum_{\mathbf Z}q(\mathbf Z)\left(\ln\left\{ \frac{p(\mathbf Z\mid\mathbf X,\boldsymbol\theta)p(\mathbf X\mid\boldsymbol\theta)}{q(\mathbf Z)} \right\}-\ln\left\{ \frac{p(\mathbf Z\mid\mathbf X,\boldsymbol\theta)}{q(\mathbf Z)} \right\}\right) \\ &= \sum_{\mathbf Z}q(\mathbf Z)\ln p(\mathbf X\mid\boldsymbol\theta) \end{split} \]

\(\mathcal L(q,\boldsymbol\theta)\) は分布 \(q(\mathbf Z)\) の汎関数であり、かつパラメータ \(\boldsymbol\theta\) の関数である。

\(\mathrm{KL}(q\|p)\ge 0\) 、等号は \(q(\mathbf Z)=p(\mathbf Z\mid\mathbf X,\boldsymbol\theta)\) のときのみ成立する。よって \((1)\) より、 \[\mathcal L(q,\boldsymbol\theta)\le\ln p(\mathbf X\mid\boldsymbol\theta)\] が成り立つ。つまり、 \(\mathcal L(q,\boldsymbol\theta)\)\(q\)\(\boldsymbol\theta\) によらず常に \(\ln p(\mathbf X\mid\boldsymbol\theta)\) の下界をなす。

局所的変分推論法

次の積分を計算したいとする。

\[ I=\int\sigma(a)p(a)da \]

積分をそのまま求めるのは不可能なため、変分下界 \(\sigma(a)\ge f(a,\xi)\) の形で用いる。ここで、 \(\xi\) は変分パラメータである。

\[ I\ge\int f(a,\xi)p(a)da=\mathcal L(\xi) \]

\(\mathcal L(\xi)\) は単に \(\xi\) をパラメータとする関数である。 \(\mathcal L(\xi)\) を最大化する値 \(\xi^*\) を求める。

ただし、最適化したこの下界は一般に正確ではない。なぜなら \(\sigma(a)\ge f(a,\xi)\) は厳密に最適化できるが、選んだ \(\xi\)\(a\) の値に依存しており、下界が正しいのはある \(a\) の値についてだけだからである。

\(\mathcal L(\xi)\) は全ての \(a\) の値について積分して得られるから、 \(\xi^*\) の値は分布 \(p(a)\) による重みで平均化してしまった値を表している。