EM(Expectation Maximization) 算法

本文详细介绍了EM算法的工作原理及其在极大似然估计与最大后验估计中的应用,通过数学推导展示了EM算法的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EM(Expectation Maximization)

EM算法是一种极大似然估计算法,当然也可以对EM算法做一定修正后用于最大后验估计,此博文推导EM算法并且修正EM使其用于最大后验估计。

EM

假设观测到的不完整数据集为XX,隐变量表示为ZZ, 估计参数为θθ, 根据极大似然估计

θ^=argmaxθ logp(X|θ)θ^=arg⁡maxθ⁡ log⁡p(X|θ)

上式中只涉及到了XX的分布,我们假设ZZ的分布为q(Z|θ)q(Z|θ).
L(θ)=logp(X|θ)=Zq(Z|θ)logp(X|θ)L(θ)=log⁡p(X|θ)=∑Zq(Z|θ)log⁡p(X|θ)

利用贝叶斯定理
L(θ)=Zq(Z|θ)logp(X|θ)=Zq(Z|θ)logp(X,Z|θ)p(Z|X,θ)=Zq(Z|θ)log{p(X,Z|θ)q(Z|θ)q(Z|θ)p(Z|X,θ)}=Zq(Z|θ)logp(X,Z|θ)q(Z|θ)Zq(Z|θ)logp(Z|X,θ)q(Z|θ)=L(q,θ)+KL(q||p)L(θ)=∑Zq(Z|θ)log⁡p(X|θ)=∑Zq(Z|θ)log⁡p(X,Z|θ)p(Z|X,θ)=∑Zq(Z|θ)log⁡{p(X,Z|θ)q(Z|θ)q(Z|θ)p(Z|X,θ)}=∑Zq(Z|θ)log⁡p(X,Z|θ)q(Z|θ)−∑Zq(Z|θ)log⁡p(Z|X,θ)q(Z|θ)=L(q,θ)+KL(q||p)


L(θ)=L(q,θ)+KL(q||p)L(θ)=L(q,θ)+KL(q||p)

其中L(q,θ)L(q,θ) 和 KL(q||p)分别是,
L(q,θ)=Zq(Z|θ)logp(X,Z|θ)q(Z|θ)L(q,θ)=∑Zq(Z|θ)log⁡p(X,Z|θ)q(Z|θ)

KL(q||p)=Zq(Z|θ)logp(Z|X,θ)q(Z|θ)KL(q||p)=−∑Zq(Z|θ)log⁡p(Z|X,θ)q(Z|θ)

在这两个式子中,我们首先需要确定隐变量的概率分布q(Z|θ)q(Z|θ),其次我们还需要最大化L(θ)L(θ)。利用KL(q||p)KL(q||p)散度的性质
KL(q||p)0KL(q||p)≧0
当且仅当q(Z|θ)=p(Z|X,θ)q(Z|θ)=p(Z|X,θ)时,取到等号。
我们有
L(θ)L(q,θ)L(θ)≧L(q,θ)

所以L(q,θ)L(q,θ)L(θ)L(θ)的下界,我们不直接最大化L(θ)L(θ),相反我们最大化它的下界L(q,θ)L(q,θ)L(q,θ)L(q,θ)是关于q和θθ的函数,我们先关于q(Z|θ)q(Z|θ)最大化L(q,θ)L(q,θ),由于L(θ)=L(q,θ)+KL(q||p)L(θ)=L(q,θ)+KL(q||p)并且L(θ)L(θ)q(Z|θ)q(Z|θ)无关,所以不管q(Z|θ)q(Z|θ)如何变化,L(θ)L(θ)保持不变,所以,为了使得L(q,θ)L(q,θ)最大,那么则应该使得KL(q||p)KL(q||p)最小,即KL(q||p)=0KL(q||p)=0,所以有
q(Z|θ)=p(Z|X,θ)q(Z|θ)=p(Z|X,θ)

接下来我们还需要关于参数θθ最大化L(q,θ)L(q,θ),假设我们迭代到了第 ii 次,则第 i+1 的参数更新
L(q,θ)=Zq(Z|θ(i))logp(X,Z|θ)q(Z|θ(i))L(q,θ)=∑Zq(Z|θ(i))log⁡p(X,Z|θ)q(Z|θ(i))

丢掉和θ(i)θ(i)有关的量,有
L(q,θ)=Zq(Z|θ(i))logp(X,Z|θ)+CL(q,θ)=∑Zq(Z|θ(i))log⁡p(X,Z|θ)+C


Q(θ,θ(i))=Zq(Z|θ(i))logp(X,Z|θ)Q(θ,θ(i))=∑Zq(Z|θ(i))log⁡p(X,Z|θ)

所以我们只需要最大化函数Q(θ,θ(i))Q(θ,θ(i))即可
θ(i+1)=argmaxθQ(θ,θ(i))θ(i+1)=arg⁡maxθ⁡Q(θ,θ(i))

EM算法流程

  • 初始化参数θ(0)θ(0)和设置迭代次数II
    • E步
      根据第i次估计参数,计算隐变量ZZ的分布q(Z|θ(i))q(Z|θ(i))
      q(Z|θ(i))=p(Z|X,θ(i))q(Z|θ(i))=p(Z|X,θ(i))

      计算完全数据集的期望
      Q(θ,θ(i))=Zq(Z|θ(i))logp(X,Z|θ)Q(θ,θ(i))=∑Zq(Z|θ(i))log⁡p(X,Z|θ)
    • M步
      最大化完全数据集的期望Q(θ,θ(i))Q(θ,θ(i)),
      θ(i+1)=argmaxθ Q(θ,θ(i))θ(i+1)=arg⁡maxθ⁡ Q(θ,θ(i))
      • 如果i<Ii<I,则回到E步继续迭代,否则就结束。

    收敛性条件

    除了预先设定迭代次数,也可以设定迭代终止条件。因为Q(θ,θ(i))Q(θ,θ(i))会一直增大,如果函数Q(θ,θ(i))Q(θ,θ(i))满足下述条件时,可认为EM算法已经收敛到局部最大值

    |Q(θ(i+1),θ(i))Q(θ(i),θ(i))|ϵ|Q(θ(i+1),θ(i))−Q(θ(i),θ(i))|≤ϵ
    ,其中ϵϵ是一个很小的大于零的常数。

    最大后验估计

    根据上边的推导有

    logp(X|θ)=L(θ)=L(q,θ)+KL(q||p)log⁡p(X|θ)=L(θ)=L(q,θ)+KL(q||p)

    当我们考虑参数θθ有先验概率时,根据贝叶斯定理
    p(θ|X)=p(X|θ)p(θ)p(X)p(θ|X)=p(X|θ)p(θ)p(X)

    所以有
    L(θ)=log(θ|X)=logp(X|θ)+logp(θ)logp(X)=L(q,θ)+KL(q||p)+logp(θ)log(X)L(q,θ)+logp(θ)logp(X)L(θ)=log⁡(θ|X)=log⁡p(X|θ)+log⁡p(θ)−log⁡p(X)=L(q,θ)+KL(q||p)+log⁡p(θ)−log⁡(X)≧L(q,θ)+log⁡p(θ)−log⁡p(X)

    同样的思路,我们最大化L(θ)L(θ)的下界,当KL(q||p)=0KL(q||p)=0时,有下界最大,此时
    q(X|θ)=p(Z|X,θ)q(X|θ)=p(Z|X,θ)

    紧接着我们关于参数θθ最大化下界L(q,θ)+logp(θ)logp(X)L(q,θ)+log⁡p(θ)−log⁡p(X),同样地,我们丢掉和参数θθ无关的项,可得
    L(q,θ)+logp(θ)logp(X)=Zp(Z|X,θ(i))logp(X,Z|θ)p(Z|X,θ(i))+logp(θ)+C1=Zp(Z|X,θ(i))logp(X,Z|θ)+logp(θ)+C2=Q(θ,θ(i))+C2L(q,θ)+log⁡p(θ)−log⁡p(X)=∑Zp(Z|X,θ(i))log⁡p(X,Z|θ)p(Z|X,θ(i))+log⁡p(θ)+C1=∑Zp(Z|X,θ(i))log⁡p(X,Z|θ)+log⁡p(θ)+C2=Q(θ,θ(i))+C2

    所以有
    Q(θ,θ(i))=Zp(Z|X,θ(i))logp(X,Z|θ)+logp(θ)Q(θ,θ(i))=∑Zp(Z|X,θ(i))log⁡p(X,Z|θ)+log⁡p(θ)

    所以,在EM算法中,最大后验估计和最大似然估计在E步中,计算q(X|θ)q(X|θ)没有发生变化,只是Q(θ,θ(i))Q(θ,θ(i))中增加了先验信息logp(θ)log⁡p(θ).
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值