EM 算法解决具有隐变量的混合模型参数估计,通过迭代最大化期望对数似然,每步似然单调递增。
问题设定
$$\theta_{MLE}=\mathop{argmax}_\theta\log p(x|\theta)$$
迭代公式:
$$\theta^{t+1}=\mathop{argmax}\theta\mathbb{E}{z|x,\theta^t}[\log p(x,z|\theta)]$$
两步迭代
| 步骤 | 操作 |
|---|---|
| E-step | 计算 $\log p(x,z |
| M-step | 最大化期望得到新参数 |
收敛性证明
$$\log p(x|\theta)=Q(\theta,\theta^t)-H(\theta,\theta^t)$$
由于 $Q(\theta^{t+1},\theta^t)\ge Q(\theta^t,\theta^t)$ 且 $H(\theta^{t+1},\theta^t)\le H(\theta^t,\theta^t)$,有:
$$\log p(x|\theta^t)\le\log p(x|\theta^{t+1})$$
ELBO 推导
$$\log p(x|\theta)=ELBO+KL(q(z),p(z|x,\theta))$$
$$ELBO=\int_zq(z)\log\frac{p(x,z|\theta)}{q(z)}dz$$
EM 算法最大化 ELBO,当 $q(z)=p(z|x,\theta)$ 时取等号。
广义 EM
当后验 $p(z|x,\theta)$ 无法解析求解时:
E-step: $\hat{q}^{t+1}(z)=\mathop{argmax}_q ELBO$(固定 $\theta$)
M-step: $\hat{\theta}=\mathop{argmax}_\theta ELBO$(固定 $q$)
$$ELBO=\mathbb{E}_{q(z)}[p(x,z|\theta)]+Entropy(q(z))$$
EM 推广
| 方法 | 适用场景 |
|---|---|
| VBEM | 基于平均场的变分推断 |
| MCEM | 基于蒙特卡洛的 EM |
张芷铭的个人博客
Comments