期望最大算法的目的是解决具有隐变量的混合模型的参数估计(极大似然估计)。MLE 对
- E step:计算
$\log p(x,z|\theta)$ 在概率分布$p(z|x,\theta^t)$ 下的期望 - M step:计算使这个期望最大化的参数得到下一个 EM 步骤的输入
求证:$\log p(x|\theta^t)\le\log p(x|\theta^{t+1})$
证明:$\log p(x|\theta)=\log p(z,x|\theta)-\log p(z|x,\theta)$,对左右两边求积分: $$ Left:\int_zp(z|x,\theta^t)\log p(x|\theta)dz=\log p(x|\theta) $$
$$ Right:\int_zp(z|x,\theta^t)\log p(x,z|\theta)dz-\int_zp(z|x,\theta^t)\log p(z|x,\theta)dz=Q(\theta,\theta^t)-H(\theta,\theta^t) $$ 所以: $$ \log p(x|\theta)=Q(\theta,\theta^t)-H(\theta,\theta^t) $$ 由于
$Q(\theta,\theta^t)=\int_zp(z|x,\theta^t)\log p(x,z|\theta)dz$ ,而$\theta^{t+1}=\mathop{argmax}\limits_{\theta}\int_z\log [p(x,z|\theta)]p(z|x,\theta^t)dz$ ,所以$Q(\theta^{t+1},\theta^t)\ge Q(\theta^t,\theta^t)$ 。要证$\log p(x|\theta^t)\le\log p(x|\theta^{t+1})$ ,需证:$H(\theta^t,\theta^t)\ge H(\theta^{t+1},\theta^t)$: $$ \begin{align}H(\theta^{t+1},\theta^t)-H(\theta^{t},\theta^t)&=\int_zp(z|x,\theta^{t})\log p(z|x,\theta^{t+1})dz-\int_zp(z|x,\theta^t)\log p(z|x,\theta^{t})dz\nonumber\ &=\int_zp(z|x,\theta^t)\log\frac{p(z|x,\theta^{t+1})}{p(z|x,\theta^t)}=-KL(p(z|x,\theta^t),p(z|x,\theta^{t+1}))\le0 \end{align} $$ 综合上面的结果: $$ \log p(x|\theta^t)\le\log p(x|\theta^{t+1}) $$
根据上面的证明,我们看到,似然函数在每一步都会增大。进一步的,我们看 EM 迭代过程中的式子是怎么来的: $$ \log p(x|\theta)=\log p(z,x|\theta)-\log p(z|x,\theta)=\log \frac{p(z,x|\theta)}{q(z)}-\log \frac{p(z|x,\theta)}{q(z)} $$ 分别对两边求期望 $\mathbb{E}{q(z)}$: $$ \begin{align} &Left:\int_zq(z)\log p(x|\theta)dz=\log p(x|\theta)\ &Right:\int_zq(z)\log \frac{p(z,x|\theta)}{q(z)}dz-\int_zq(z)\log \frac{p(z|x,\theta)}{q(z)}dz=ELBO+KL(q(z),p(z|x,\theta)) \end{align} $$ 上式中,Evidence Lower Bound(ELBO),是一个下界,所以 $\log p(x|\theta)\ge ELBO$,等于号取在 KL 散度为0是,即:$q(z)=p(z|x,\theta)$,EM 算法的目的是将 ELBO 最大化,根据上面的证明过程,在每一步 EM 后,求得了最大的ELBO,并根据这个使 ELBO 最大的参数代入下一步中: $$ \hat{\theta}=\mathop{argmax}{\theta}ELBO=\mathop{argmax}\theta\int_zq(z)\log\frac{p(x,z|\theta)}{q(z)}dz $$ 由于 $ q(z)=p(z|x,\theta^t)$ 的时候,这一步的最大值才能取等号,所以: $$ \hat{\theta}=\mathop{argmax}{\theta}ELBO=\mathop{argmax}\theta\int_zq(z)\log\frac{p(x,z|\theta)}{q(z)}dz=\mathop{argmax}\theta\int_zp(z|x,\theta^t)\log\frac{p(x,z|\theta)}{p(z|x,\theta^t)}d z\ =\mathop{argmax}_\theta\int_z p(z|x,\theta^t)\log p(x,z|\theta) $$ 这个式子就是上面 EM 迭代过程中的式子。
从 Jensen 不等式出发,也可以导出这个式子:
$$
\log p(x|\theta)=\log\int_zp(x,z|\theta)dz=\log\int_z\frac{p(x,z|\theta)q(z)}{q(z)}dz\
=\log \mathbb{E}{q(z)}[\frac{p(x,z|\theta)}{q(z)}]\ge \mathbb{E}{q(z)}[\log\frac{p(x,z|\theta)}{q(z)}]
$$
其中,右边的式子就是 ELBO,等号在
EM 模型解决了概率生成模型的参数估计的问题,通过引入隐变量
-
E step: $$ \hat{q}^{t+1}(z)=\mathop{argmax}_q\int_zq^t(z)\log\frac{p(x,z|\theta)}{q^t(z)}dz,fixed\ \theta $$
-
M step: $$ \hat{\theta}=\mathop{argmax}_\theta \int_zq^{t+1}(z)\log\frac{p(x,z|\theta)}{q^{t+1}(z)}dz,fixed\ \hat{q} $$
对于上面的积分: $$ ELBO=\int_zq(z)\log\frac{p(x,z|\theta)}{q(z)}dz=\mathbb{E}_{q(z)}[p(x,z|\theta)]+Entropy(q(z)) $$ 因此,我们看到,广义 EM 相当于在原来的式子中加入熵这一项。
EM 算法类似于坐标上升法,固定部分坐标,优化其他坐标,再一遍一遍的迭代。如果在 EM 框架中,无法求解
- 基于平均场的变分推断,VBEM/VEM
- 基于蒙特卡洛的EM,MCEM