変分近似の概要
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)\) による重みで平均化してしまった値を表している。