EM(Expectation Maximization) 算法

EM(Expectation Maximization)

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

EM

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

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

上式中只涉及到了 X X 的分布,我们假设 Z Z 的分布为 q(Z|θ) q ( Z | θ ) .
L(θ)=logp(X|θ)=Zq(Z|θ)logp(X|θ) L ( θ ) = log ⁡ p ( X | θ ) = ∑ Z q ( 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 ( θ ) = ∑ Z q ( Z | θ ) log ⁡ p ( X | θ ) = ∑ Z q ( Z | θ ) log ⁡ p ( X , Z | θ ) p ( Z | X , θ ) = ∑ Z q ( Z | θ ) log ⁡ { p ( X , Z | θ ) q ( Z | θ ) q ( Z | θ ) p ( Z | X , θ ) } = ∑ Z q ( Z | θ ) log ⁡ p ( X , Z | θ ) q ( Z | θ ) − ∑ Z q ( Z | θ ) log ⁡ p ( Z | X , θ ) q ( Z | θ ) = L ( q , θ ) + K L ( q | | p )


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

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

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

在这两个式子中,我们首先需要确定隐变量的概率分布 q(Z|θ) q ( Z | θ ) ,其次我们还需要最大化 L(θ) L ( θ ) 。利用 KL(q||p) K L ( q | | p ) 散度的性质
KL(q||p)0 K L ( 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 , θ ) + K L ( q | | p ) 并且 L(θ) L ( θ ) q(Z|θ) q ( Z | θ ) 无关,所以不管 q(Z|θ) q ( Z | θ ) 如何变化, L(θ) L ( θ ) 保持不变,所以,为了使得 L(q,θ) L ( q , θ ) 最大,那么则应该使得 KL(q||p) K L ( q | | p ) 最小,即 KL(q||p)=0 K L ( q | | p ) = 0 ,所以有
q(Z|θ)=p(Z|X,θ) q ( Z | θ ) = p ( Z | X , θ )

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

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


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

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

EM算法流程

  • 初始化参数 θ(0) θ ( 0 ) 和设置迭代次数 I I
    • E步
      根据第i次估计参数,计算隐变量 Z Z 的分布 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 ) ) = ∑ Z q ( Z | θ ( i ) ) log ⁡ p ( X , Z | θ )
      • M步
        最大化完全数据集的期望 Q(θ,θ(i)) Q ( θ , θ ( i ) ) ,
        θ(i+1)=argmaxθ Q(θ,θ(i)) θ ( i + 1 ) = arg ⁡ max θ ⁡   Q ( θ , θ ( i ) )
      • 如果 i<I i < 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 , θ ) + K L ( 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 , θ ) + K L ( q | | p ) + log ⁡ p ( θ ) − log ⁡ ( X ) ≧ L ( q , θ ) + log ⁡ p ( θ ) − log ⁡ p ( X )

    同样的思路,我们最大化 L(θ) L ( θ ) 的下界,当 KL(q||p)=0 K L ( 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))+C2 L ( q , θ ) + log ⁡ p ( θ ) − log ⁡ p ( X ) = ∑ Z p ( Z | X , θ ( i ) ) log ⁡ p ( X , Z | θ ) p ( Z | X , θ ( i ) ) + log ⁡ p ( θ ) + C 1 = ∑ Z p ( Z | X , θ ( i ) ) log ⁡ p ( X , Z | θ ) + log ⁡ p ( θ ) + C 2 = Q ( θ , θ ( i ) ) + C 2

    所以有
    Q(θ,θ(i))=Zp(Z|X,θ(i))logp(X,Z|θ)+logp(θ) Q ( θ , θ ( i ) ) = ∑ Z p ( 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、付费专栏及课程。

余额充值