この記事では、https://kexue.fm のJianlinによるKLダイバージェンスを使用した期待値最大化に関する代替的な見解を紹介します。ジェンセンの不等式を使用したEMの一般的な見解とは異なり、KLダイバージェンスを使用したEMの導出は短く、より直感的です。
Jianlinの投稿 (written in Chinese)
私たちの前の投稿から、EMの目的はトレーニングデータセットの期待対数尤度を最大化することであることがわかっています。ここでは、その最適化がより一般的な形の最適化の特別なケースであることを示すために概念を拡張したいと思います:KLダイバージェンスの最小化。二つの確率分布 $p(x)$ と $q(x)$ が与えられたとき、KLは $q(x)$ が $p(x)$ にどれだけ近いかを測定します。
\begin{align} {KL} (p(x) \parallel q(x)) &= \sum_x p(x) \log \frac{p(x)}{q(x)} \tag{KLダイバージェンス} \end{align}
KLダイバージェンスの概念を用いてEMを導出するために、$p_{\theta}(x)$を使用してトレーニングデータセットの基礎となる分布$p_{true}(x)$を近似したいとします。$p_{true}(x)$が定数として知られている場合、KLダイバージェンスを最小化することはトレーニングデータセットの期待対数尤度を最大化することと等価です。
\begin{align} \theta_{best} &= \operatorname*{argmin}_{\theta} {KL} (p_{true}(x) \parallel p_{\theta}(x)) \\ &= \operatorname*{argmin}_{\theta} \sum_x p_{true}(x) \log \frac{p_{true}(x)}{p_{\theta}(x)} \\ &= \operatorname*{argmin}_{\theta} \sum_x p_{true}(x) \log p_{true}(x) - \sum_x p_{true}(x) \log p_{\theta}(x) \tag{最初の項は定数} \\ &= \operatorname*{argmin}_{\theta} - \sum_x p_{true}(x) \log p_{\theta}(x) \tag{クロスエントロピー} \\ &= \operatorname*{argmax}_{\theta} \mathbb{E}_x (\log p_{\theta}(x)) \tag{0} \end{align}
ここで (0) は一般的な EM アルゴリズムの目的です。
隠れ変数Zを取り入れることで、Xを説明するために、XとZの共通確率を用いて目的を再構築することができます
\begin{align} & {KL} (p_{true}(x, z) \parallel p_{\theta}(x, z)) \\ &= \sum_{x, z} p_{true}(x, z) \log \frac{p_{true}(x, z)}{p_{\theta}(x, z)} \\ &= \sum_{x} p_{true}(x) \sum_{z} p_{true}(z | x) \log \frac{p_{true}(z|x)p_{true}(x)}{p_{\theta}(z|x)p_{\theta}(x)} \\ &= \mathbb{E}_x \Big[ \sum_{z} p_{true}(z | x) \log \frac{p_{true}(z|x)p_{true}(x)}{p_{\theta}(z|x)p_{\theta}(x)} \Big] \\ &= \mathbb{E}_x \Big[ \sum_{z} p_{true}(z | x) \log \frac{p_{true}(z|x)}{p_{\theta}(z|x)p_{\theta}(x)} + \sum_{z} p_{true}(z | x) \log p_{true}(x) \Big] \\ &= \mathbb{E}_x \Big[ \sum_{z} p_{true}(z | x) \log \frac{p_{true}(z|x)}{p_{\theta}(z|x)p_{\theta}(x)} \Big] + \mathbb{E} \Big[ \log p_{true}(x) \Big] \\ &= \mathbb{E}_x \Big[ \sum_{z} p_{true}(z | x) \log \frac{p_{true}(z|x)}{p_{\theta}(z|x)p_{\theta}(x)} \Big] + C \tag{1} \end{align}
(1)を最小化するために、調整できる2つの項があります:$p_{true}(z | x)$ と $p_{\theta}(z|x)p_{\theta}(x)$。EMと同様に、一方の部分を最適化し、他方が定数であると仮定することができ、これを相互に行うことができます。したがって、$p_{\theta}(z|x)p_{\theta}(x)$ が既知であると仮定すると、$p_{true}(z | x)$ を調整して(1)を最小化することができます。
\begin{align} p_{true}(z | x) &= \operatorname*{argmin}_{p_{true}(z | x)} \mathbb{E}_x \Big[ \sum_{z} p_{true}(z | x) \log \frac{p_{true}(z|x)}{p_{\theta}(z|x)p_{\theta}(x)} \Big] \\ &= \operatorname*{argmin}_{p_{true}(z | x)} \mathbb{E}_x \Big[ \sum_{z} p_{true}(z | x) \log \frac{p_{true}(z|x)}{p_{\theta}(z|x)} - \sum_{z} p_{true}(z | x) \log p_{\theta}(x) \Big] \\ &= \operatorname*{argmin}_{p_{true}(z | x)} \mathbb{E}_x \Big[ {KL} (p_{true}(z | x) \parallel p_{\theta}(z | x)) - C \Big] \\ &= \operatorname*{argmin}_{p_{true}(z | x)} \mathbb{E}_x \Big[ {KL} (p_{true}(z | x) \parallel p_{\theta}(z | x)) \Big] \tag{2} \\ &= p_{\theta}(z | x) \tag{E-step} \end{align}
(2)から(E-step)にかけて、${KL}(p_{\theta}(z \vert x) \parallel p_{\theta}(z \vert x)) = 0$であることを利用する必要があります。Mステップでは、$p_{true}(z \vert x)$が定数であり、$p_{\theta}(z \vert x)$に等しいと仮定します。
\begin{align} \theta_{new} &= \operatorname*{argmin}_{\theta} \mathbb{E}_x \Big[ \sum_{z} p_{true}(z | x) \log \frac{p_{true}(z|x)}{p_{\theta}(z|x)p_{\theta}(x)} \Big] \\ &= \operatorname*{argmin}_{\theta} \mathbb{E}_x \Big[\sum_{z} p_{true}(z | x) \log p_{true}(z | x) - \sum_{z} p_{true}(z | x) \log {p_{\theta}(z|x)p_{\theta}(x)} \Big] \\ &= \operatorname*{argmax}_{\theta} \mathbb{E}_x \Big[\sum_{z} p_{true}(z | x) \log {p_{\theta}(z|x)p_{\theta}(x)} \Big] \\ &= \operatorname*{argmax}_{\theta} \mathbb{E}_x \Big[\sum_{z} p_{\theta}(z | x) \log p_{\theta}(x, z) \Big] \tag{Mステップ} \end{align}
上記の結果は、EMアルゴリズムの定義と同一です。