EM算法总结

本文需要对 E M EM EM算法有一定的了解。若对 E M EM EM算法之前没有了解过,不建议看本文。这里给出常用的推导EM算法的案例:高斯混合算法(GMM)与最大期望算法(EM)的推导

假设隐变量为 Z Z Z,可观测变量为 X X X,要求解的未知参数为 θ \theta θ
在EM算法框架中, ( X , Z ) (X,Z) (X,Z)称为完全数据。EM算法其实还是为了求解最大似然解,但是并不是最大似然的解析解,而是近似解。所以我们还是要推导出未知参数 θ \theta θ的最大似然形式。

EM算法推导方式(一)

第一种方式使用 K L KL KL散度推导。最终形式是这样:
l o g p ( X ; θ ) = E L B O + D K L ( q ∣ ∣ p ) logp(X;\theta) = ELBO+D_{KL}(q||p) logp(X;θ)=ELBO+DKL(qp)

完全数据的联合概率分布:
p ( X , Z ; θ ) = p ( X ; θ ) p ( Z ∣ X ; θ ) (1) \tag{1}p(X,Z;\theta) = p(X;\theta)p(Z|X;\theta) p(X,Z;θ)=p(X;θ)p(ZX;θ)(1)
由(1)式可得未知参数 θ \theta θ的似然函数为:
l o g p ( X ; θ ) = l o g p ( X , Z ; θ ) − l o g p ( Z ∣ X ; θ ) = l o g p ( X , Z ; θ ) − l o g q ( Z ) − [ l o g p ( Z ∣ X ; θ ) − l o g q ( Z ) ] = l o g p ( X , Z ; θ ) q ( Z ) − l o g p ( Z ∣ X ; θ ) q ( Z ) (2) \begin{aligned} \tag{2}logp(X;\theta) = & logp(X,Z;\theta)-logp(Z|X;\theta) \\ = & logp(X,Z;\theta)-logq(Z)-[logp(Z|X;\theta)-logq(Z)] \\ = & log{p(X,Z;\theta) \over q(Z)} - log{p(Z|X;\theta) \over q(Z)} \end{aligned} logp(X;θ)===logp(X,Z;θ)logp(ZX;θ)logp(X,Z;θ)logq(Z)[logp(ZX;θ)logq(Z)]logq(Z)p(X,Z;θ)logq(Z)p(ZX;θ)(2)
注意在上式第二行引入了关于 Z 的 一 个 分 布 q ( Z ) Z的一个分布q(Z) Zq(Z)
同时在(2)式两边乘以 q ( Z ) q(Z) q(Z),并对 Z Z Z积分。
左 边 = ∫ Z q ( Z ) l o g p ( X ; θ ) d Z = l o g p ( X ; θ ) 左边=\int_{Z}q(Z)logp(X;\theta)dZ = logp(X;\theta) =Zq(Z)logp(X;θ)dZ=logp(X;θ)
右 边 = ∫ Z q ( Z ) l o g p ( X , Z ; θ ) q ( Z ) − q ( Z ) l o g p ( Z ∣ X ; θ ) q ( Z ) d Z = ∫ Z q ( Z ) l o g p ( X , Z ; θ ) q ( Z ) d Z − ∫ Z q ( Z ) l o g p ( Z ∣ X ; θ ) q ( Z ) d Z \begin{aligned} 右边= & \int_{Z}q(Z)log{p(X,Z;\theta) \over q(Z)}-q(Z) log{p(Z|X;\theta) \over q(Z)}dZ \\ = & \int_{Z}q(Z)log{p(X,Z;\theta) \over q(Z)}dZ -\int_{Z}q(Z) log{p(Z|X;\theta) \over q(Z)}dZ \end{aligned} ==Zq(Z)logq(Z)p(X,Z;θ)q(Z)logq(Z)p(ZX;θ)dZZq(Z)logq(Z)p(X,Z;θ)dZZq(Z)logq(Z)p(ZX;θ)dZ
上式中,第二项连同负号式KL散度的形式,恒大于等于0。第一项常称作ELBO,所以我们可以得到
l o g p ( X ; θ ) = E L B O + D K L [ q ( Z ∣ ∣ p ( Z ∣ X ; θ ) ) ] logp(X;\theta) = ELBO +D_{KL}[q(Z||p(Z|X;\theta))] logp(X;θ)=ELBO+DKL[q(Zp(ZX;θ))]
由于第二项KL散度项恒大于等于0,所以有下式成立:
l o g p ( X ; θ ) > = ∫ Z q ( Z ) l o g p ( X , Z ; θ ) q ( Z ) d Z = E q ( Z ) [ l o g p ( X , Z ; θ ) q ( Z ) ] (3) \tag{3} logp(X;\theta) >= \int_{Z}q(Z)log{p(X,Z;\theta) \over q(Z)}dZ = E_{q(Z)}[log{p(X,Z;\theta) \over q(Z)}] logp(X;θ)>=Zq(Z)logq(Z)p(X,Z;θ)dZ=Eq(Z)[logq(Z)p(X,Z;θ)](3)
当分布 q ( Z ) = p ( Z ∣ X ; θ ) q(Z) = p(Z|X;\theta) q(Z)=p(ZX;θ)的时候取等号。

E L B O = ∫ Z q ( Z ) l o g p ( X , Z ; θ ) q ( Z ) d Z ELBO= \int_{Z}q(Z)log{p(X,Z;\theta) \over q(Z)}dZ ELBO=Zq(Z)logq(Z)p(X,Z;θ)dZ E L B O ELBO ELBO函数是最大似然 l o g p ( X ; θ ) logp(X; \theta) logp(X;θ)的紧下界,最大化 l o g p ( X ; θ ) logp(X; \theta) logp(X;θ),只需要最大化 E L B O ELBO ELBO函数即可。
θ ^ = a r g m a x θ E B L O = a r g m a x θ ∫ Z q ( Z ) l o g p ( X , Z ; θ ) q ( Z ) d Z = a r g m a x θ ∫ Z p ( Z ∣ X ; θ o l d ) l o g p ( X , Z ; θ ) p ( Z ∣ X ; θ o l d ) d Z = a r g m a x θ ∫ Z p ( Z ∣ X ; θ o l d ) l o g p ( X , Z ; θ ) d Z − ∫ Z p ( Z ∣ X ; θ o l d ) l o g p ( Z ∣ X ; θ o l d ) d Z = a r g m a x θ ∫ Z p ( Z ∣ X ; θ o l d ) l o g p ( X , Z ; θ ) d Z (4) \begin{aligned} \tag{4} \hat{\theta} = & argmax_{\theta}EBLO \\ = & argmax_{\theta}\int_{Z}q(Z)log{p(X,Z;\theta) \over q(Z)}dZ \\ = & argmax_{\theta} \int_{Z}p(Z|X;\theta^{old})log{p(X,Z;\theta) \over p(Z|X;\theta^{old})}dZ \\ = & argmax_{\theta} \int_{Z}p(Z|X;\theta^{old})log{p(X,Z;\theta)} dZ -\int_{Z}p(Z|X;\theta^{old})logp(Z|X;\theta^{old})dZ \\ = & argmax_{\theta}\int_{Z}p(Z|X;\theta^{old})log{p(X,Z;\theta)} dZ \end{aligned} θ^=====argmaxθEBLOargmaxθZq(Z)logq(Z)p(X,Z;θ)dZargmaxθZp(ZX;θold)logp(ZX;θold)p(X,Z;θ)dZargmaxθZp(ZX;θold)logp(X,Z;θ)dZZp(ZX;θold)logp(ZX;θold)dZargmaxθZp(ZX;θold)logp(X,Z;θ)dZ(4)
在(4)式中第3行引入了 Z Z Z的后验分布,因为 q ( Z ) = p ( Z ∣ X ; θ ) q(Z)=p(Z|X;\theta) q(Z)=p(ZX;θ)时(3)式取等号。倒数第二行的第二项是与 θ \theta θ无关的, 所以在argmax操作中可以省去。

最终,求解(4)式得到的 θ ^ \hat{\theta} θ^就是使 l o g p ( X ; θ ) logp(X;\theta) logp(X;θ)最大的 θ \theta θ。(4)式最后的积分部分也可以记为 E p ( Z ∣ X ; θ o l d ) [ l o g p ( X , Z ; θ ) ] E_{p(Z|X;\theta^{old})}[logp(X,Z;\theta)] Ep(ZX;θold)[logp(X,Z;θ)]

仔细观察(4)式,我们引入了 Z Z Z的后验分布 p ( Z ∣ X ; θ o l d ) p(Z|X;\theta^{old}) p(ZX;θold),所以我们要先计算出 p ( Z ∣ X ; θ o l d ) p(Z|X;\theta^{old}) p(ZX;θold)。通常 Z Z Z的后验的计算是通过贝叶斯公式来完成的。也就是:
p ( Z ∣ X ; θ o l d ) = p ( Z , X ; θ o l d ) p ( X ; θ o l d ) p(Z|X;\theta^{old}) = {p(Z,X;\theta^{old}) \over p(X;\theta^{old})} p(ZX;θold)=p(X;θold)p(Z,X;θold)
在首次进行计算时, θ o l d \theta^{old} θold是随机初始化的。

下面总结EM算法框架:

  1. 随机初始化未知参数,初始化值记为 θ o l d \theta^{old} θold
  2. E-STEP:
    • 求隐变量 Z Z Z的后验: p ( Z ∣ X ; θ o l d ) p(Z|X;\theta^{old}) p(ZX;θold)
    • 求完全数据 ( X , Z ) (X,Z) (X,Z)的对数似然关于 Z Z Z的后验的期望: E p ( Z ∣ X ; θ o l d ) [ l o g p ( X , Z ; θ ) ] E_{p(Z|X;\theta^{old})}[logp(X,Z;\theta)] Ep(ZX;θold)[logp(X,Z;θ)]
  3. M-STEP:
    最大化期望: E p ( Z ∣ X ; θ o l d ) [ l o g p ( X , Z ; θ ) ] E_{p(Z|X;\theta^{old})}[logp(X,Z;\theta)] Ep(ZX;θold)[logp(X,Z;θ)],也就是 θ ^ = a r g m a x θ E p ( Z ∣ X ; θ o l d ) [ l o g p ( X , Z ; θ ) ] \hat{\theta}=argmax_{\theta} E_{p(Z|X;\theta^{old})}[logp(X,Z;\theta)] θ^=argmaxθEp(ZX;θold)[logp(X,Z;θ)]
    θ o l d = θ ^ \theta^{old} = \hat{\theta} θold=θ^,并开启下一轮迭代。

重复上面的2,3步,直到满足收敛条件。这样就求得了最后的参数 θ \theta θ。最后还要提醒一下,这样求得的 θ \theta θ其实还是根据最大似然的方法得到的近似解。另外EM算法不能保证得到全局最优解,能保证得到局部最优。

EM算法推导(二)

第二种方法使用 J e n s e n Jensen Jensen不等式来推导。
l o g p ( X ; θ ) = l o g ∫ Z p ( X , Z ; θ ) d Z = l o g ∫ z p ( X , Z ; θ ) q ( Z ) q ( Z ) d Z = l o g E q ( Z ) [ p ( X , Z ; θ ) q ( Z ) ] ≥ E q ( Z ) [ l o g p ( X , Z ; θ ) q ( Z ) ] (5) \begin{aligned} \tag{5} logp(X;\theta) = & log\int_Z p(X,Z;\theta)dZ \\ = & log \int_z {p(X,Z;\theta)q(Z) \over q(Z)}dZ \\ = & log E_{q(Z)}[{p(X,Z;\theta) \over q(Z)}] \\ \ge & E_{q(Z)}[log{p(X,Z;\theta) \over q(Z)}] \\ \end{aligned} logp(X;θ)===logZp(X,Z;θ)dZlogzq(Z)p(X,Z;θ)q(Z)dZlogEq(Z)[q(Z)p(X,Z;θ)]Eq(Z)[logq(Z)p(X,Z;θ)](5)

这样我们就直接推导出了ELBO,那么 q ( Z ) q(Z) q(Z)等于什么呢?
(5)式中用到了 J e n s e n Jensen Jensen不等式,取等式的条件是 p ( X , Z ; θ ) q ( Z ) = C , C 是 一 个 常 数 {p(X,Z;\theta) \over q(Z)}=C,C是一个常数 q(Z)p(X,Z;θ)=CC
那么有 q ( Z ) = 1 C p ( X , Z ; θ ) (6) \tag{6}q(Z)={1 \over C}p(X,Z;\theta) q(Z)=C1p(X,Z;θ)(6)
两边同时对 Z Z Z积分得到 1 = 1 C p ( X ; θ ) 1 = {1 \over C}p(X;\theta) 1=C1p(X;θ)
也就是 C = p ( X ; θ ) C=p(X;\theta) C=p(X;θ),带入(6)式得:
q ( Z ) = p ( X , Z ; θ ) p ( X ; θ ) = p ( Z ∣ X ; θ ) q(Z) = {p(X,Z;\theta) \over p(X;\theta)} = p(Z|X;\theta) q(Z)=p(X;θ)p(X,Z;θ)=p(ZX;θ)
所以(5)取等号的条件和(3)式取等号的条件一样。其他部分和第一种推导方式一样,这里不再赘述。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值