机器学习笔记(十七)——EM算法的推导

一、Jensen 不等式

    在EM算法的推导过程中,用到了数学上的Jensen不等式,这里先来介绍一下。
若Ω是有限集合 {x1,x2,,xn} { x 1 , x 2 , … , x n } ,而μ是Ω上的正规计数测度,则不等式的一般形式可以简单地用和式表示:

φ(i=1ng(xi)λi)i=1nφ(g(xi))λi171(1) (1) φ ( ∑ i = 1 n g ( x i ) λ i ) ≤ ∑ i = 1 n φ ( g ( x i ) ) λ i , ( 17 − 1 )

  其中 λ1+λ2++λn=1,λi0 λ 1 + λ 2 + ⋯ + λ n = 1 , λ i ≥ 0

  若φ是凹函数,只需把不等式符号调转。主要参考文献【1】
  

二、EM算法推导

    面对一个含有隐含变量的概率模型,目标是极大化观测数据 Y Y 关于参数θ的对数似然函数,即极大化:

L(θ)=logP(Y;θ)=logzP(Y,Z;θ)=logzP(Y|Z;θ)P(Z;θ)(184) (184) L ( θ ) = l o g P ( Y ; θ ) = l o g ∑ z P ( Y , Z ; θ ) = l o g ∑ z P ( Y | Z ; θ ) P ( Z ; θ )

    事实上,EM算法是通过迭代逐步极大化 L(θ) L ( θ ) 的。假设在第 i i 次迭代后 θ θ 的估计值是 θ(i) θ ( i ) 。我们希望新的估计值 θ θ 能使 L(θ) L ( θ ) 增加,即 L(θ)>L(θ(i)) L ( θ ) > L ( θ ( i ) ) ,并逐步达到极大值。为此考虑两者的差:
L(θ)L(θ(i))=log(zP(Y|Z;θ)P(Z;θ))logP(Y;θ(i))=log(zP(Z|Y;θ(i))P(Y|Z;θ)P(Z;θ)P(Z|Y;θ(i)))logP(Y;θ(i))zP(Z|Y;θ(i))logP(Y|Z;θ)P(Z;θ)P(Z|Y;θ(i))logP(Y;θ(i))=zP(Z|Y;θ(i))logP(Y|Z;θ)P(Z;θ)P(Z|Y;θ(i))P(Y;θ(i))(185) (185) L ( θ ) − L ( θ ( i ) ) = l o g ( ∑ z P ( Y | Z ; θ ) P ( Z ; θ ) ) − l o g P ( Y ; θ ( i ) ) = l o g ( ∑ z P ( Z | Y ; θ ( i ) ) P ( Y | Z ; θ ) P ( Z ; θ ) P ( Z | Y ; θ ( i ) ) ) − l o g P ( Y ; θ ( i ) ) ≥ ∑ z P ( Z | Y ; θ ( i ) ) l o g P ( Y | Z ; θ ) P ( Z ; θ ) P ( Z | Y ; θ ( i ) ) − l o g P ( Y ; θ ( i ) ) = ∑ z P ( Z | Y ; θ ( i ) ) l o g P ( Y | Z ; θ ) P ( Z ; θ ) P ( Z | Y ; θ ( i ) ) P ( Y ; θ ( i ) )

上式利用了Jensen不等式,在17-1式中, 令 φ φ log l o g , 且 zP(Z|Y;θ(i))=1 ∑ z P ( Z | Y ; θ ( i ) ) = 1 ,则可得上述推导。注意 log l o g 为凹函数,不等号要改变方向


B(θ,θ(i))=L(θ(i))+zP(Y|Z;θ(i))logP(Y|Z;θ)P(Z;θ)P(Y|Z;θ(i))P(Y;θ(i))172(186) (186) B ( θ , θ ( i ) ) = L ( θ ( i ) ) + ∑ z P ( Y | Z ; θ ( i ) ) l o g P ( Y | Z ; θ ) P ( Z ; θ ) P ( Y | Z ; θ ( i ) ) P ( Y ; θ ( i ) ) , ( 17 − 2 )

则:
L(θ)B(θ,θ(i))(187) (187) L ( θ ) ≥ B ( θ , θ ( i ) )

那么, B(θ,θ(i)) B ( θ , θ ( i ) ) L(θ) L ( θ ) 的一个下界,由17-2知道:
L(θ(i))=B(θ(i),θ(i))(188) (188) L ( θ ( i ) ) = B ( θ ( i ) , θ ( i ) )

因此,任何可以使 B(θ,θ(i)) B ( θ , θ ( i ) ) 增大的 θ θ ,都可使 L(θ) L ( θ ) 增大,选择 θ(i+1) θ ( i + 1 ) 使 B(θ,θ(i)) B ( θ , θ ( i ) ) 达到极大,即:
θ(i+1)=argmaxθB(θ,θ(i))(189) (189) θ ( i + 1 ) = a r g max θ B ( θ , θ ( i ) )

现在求 θ(i+1) θ ( i + 1 ) 的表达式,省去对于 θ θ 而言都是常数的项:
θ(i+1)=argmaxθ(L(θ(i))+zP(Y|Z;θ(i))logP(Y|Z;θ)P(Z;θ)P(Y|Z;θ(i))P(Y;θ(i)))=argmaxθ(zP(Y|Z;θ(i))logP(Y|Z;θ)P(Z;θ))=argmaxθ(zP(Y|Z;θ(i))logP(Y,Z;θ))=argmaxθQ(θ,θ(i))(190) (190) θ ( i + 1 ) = a r g max θ ( L ( θ ( i ) ) + ∑ z P ( Y | Z ; θ ( i ) ) l o g P ( Y | Z ; θ ) P ( Z ; θ ) P ( Y | Z ; θ ( i ) ) P ( Y ; θ ( i ) ) ) = a r g max θ ( ∑ z P ( Y | Z ; θ ( i ) ) l o g P ( Y | Z ; θ ) P ( Z ; θ ) ) = a r g max θ ( ∑ z P ( Y | Z ; θ ( i ) ) l o g P ( Y , Z ; θ ) ) = a r g max θ Q ( θ , θ ( i ) )

EM算法并不能保证全局最优值,直观解释如图所示。
这里写图片描述

参考文献

http://wiki.mbalib.com/wiki/%E8%A9%B9%E6%A3%AE%E4%B8%8D%E7%AD%89%E5%BC%8F

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值