EM算法追根溯源

EM算法通俗解释

  大名鼎鼎的EM算法,用处如此广泛,以至于必须要看懂它,弄明白它,才不枉学习数据挖掘算法一番。
  何为EM算法,就是对含有隐变量的概率模型参数的极大似然估计方法。如果没有隐变量,就是极大似然估计法。极大似然估计法,简单地说就是在已知结果的情况下,找到使得该结果出现的可能性最大时对应的参数。我们就知道了,EM算法是种参数估计的方法,跟极大似然法有些相近,比它多了中间变量-隐变量。
  举个形象点的例子吧,抛硬币的例子大家都熟悉。
  先举个适合于用极大似然估计的抛硬币例子。  
  例子1:抛一枚硬币,抛了好多次,比如100次,其正面朝上记作1,反面朝上记作0,则得到一组结果{0,1,1,1,0,1,0,1,0,0,0,1,…}。问题,估计硬币正面朝上的概率 p
  再举个适合于EM算法的抛硬币的例子。
  例子2:抛三枚硬币A,B,C,怎么抛呢,先抛A,若A正面朝上,则抛B;若A反面朝上,则抛C。最后得到一组结果{0,1,1,0,1,0,0,1,1,0,0,…}。问题,估计硬币A,B,C各自正面朝上的概率p1, p2 , p3
  上面两个例子中,例2比例1,明显多了中间变量A,由于A的变化,导致下面的操作也不同,并且A的情况是观察不到的,这就是隐变量。
  例1求解: P(y|θ)=Ni=1Pi(y)
  例2求解: P(y|θ)=zP(y,z|θ)P(z|θ)
  例1是在已知结果的情况下,找到参数 θ 使得当前结果出现的可能性最大。例2是在已知结果,不知隐变量 z 的情况下,找到参数θ使得当前结果出现的可能性最大。
  那么对于例2,如何找到最佳的参数 θ 呢,这就需要EM算法来搞定了。对于此类问题,目标是极大化观测数据Y关于参数 θ 的对数似然函数(对数的引入,一方面化积为和,一方面利于后面推导),即极大化下面目标函数
   L(θ)=logP(Y|θ)=logP(Y,Z|θ)=log[zP(Y|Z,θ)P(Z|θ)]

EM迭代过程推导

  (不是常见推导方式,而是给出为什么这样推导,其背后的原因也表示出来,便于理解)
  EM是通过迭代逐步近似极大 L(θ) 值的,假设第 i 次迭代后的θ的估计值是 θ(i) 关键:我们希望更新 θ ,使得 L(θ) L(θi) 大,以此逐渐迭代到极大 L(θ) 值。为此,考虑两者的差 L(θ)L(θ(i)) ,只要两者差大于等于0也就 L(θ) 逐步增加。
   L(θ)L(θ(i))
   =log[zP(Y|Z,θ)P(Z|θ)]logP(Y|θ(i)) 里面乘以1
   =log[zP(Z|Y,θ(i))P(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i))]logP(Y|θ(i)) - - 1
  利用Jensen不等式 logjλjyjjλjlogyj ,其中, λj0,jλj=1 ,变换上式,得到两者差的下界:
   z[P(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))
   =D(θ,θ(i))
  综合 L(θ)L(θ(i))D(θ,θ(i)) 得到 L(θ) 的下界
   L(θ)L(θ(i))+D(θ,θ(i)) - - 2
   D(θ,θ(i)) 是大于等于0的,可以证明(后面)。当 θ=θ(i) 时,两边相等。
  任何使得2式右侧(下界)增大的 θ 都会使得 L(θ) 增加。当右侧最大时, L(θ) 增加最大,选择 θ(i+1) 满足
   θ(i+1)=argmaxθ[L(θ(i))+D(θ,θ(i))]
  现在,稍微对相减公式变形,得到 θ 方便更新的公式。
   L(θ(i)) 是常数,略去则得到:
   θ(i+1)=argmaxθ[D(θ,θ(i))]
   θ(i+1)=argmaxθz[P(Z|Y,θ(i))logP(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i))P(Y|θ(i))]
  分母上的常数 P(Y|θ(i)) 也略去。
   θ(i+1)=argmaxθz[P(Z|Y,θ(i))logP(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i))]
  令 Q(Z)=P(Z|Y,θ(i))
   θ(i+1)=argmaxθz[Q(Z)logP(Y,Z|θ)Q(Z)]
  可以看到,上式就是 logP(Y,Z|θ)Q(Z) 的期望的最大化。(迭代的过程也清晰了,先求 Q(Z) ,再求解 logP(Y,Z|θ)Q(Z) 的期望,然后求其最大化对应的 θ ,更新后,重复此操作。同时,也就有了 E 步和M步。)不断提高下限,也就使得目标函数不断增加,但会陷于局部解。
  

EM算法步骤

  通过上面的推导,我们可以整理出EM算法的一般步骤


1. 参数初始化theta
2. 求解Q(Z),并且求解log{ P(Y, Z| theta)/Q(Z) }的期望E。
3. 求解满足argmax{E}的参数theta。
4. 更新theta
5. 重复步骤2到4,直到终止条件abs{theta(i+1) - theta(i)} 

EM收敛性的证明

  先证明 L(θ(i+1))L(θi)=D(θ(i+1),θi) 是大于等于0的。
   L(θ(i+1))L(θi)
   =zP(Z|Y,θ(i))logP(Y|Z,θ(i+1))P(Z|θ(i+1))P(Z|Y,θ(i))P(Y|θ(i))
   =z[P(Z|Y,θ(i))logP(Y|Z,θ(i+1))P(Z|θ(i+1))P(Z|Y,θ(i))]z[P(Z|Y,θ(i))logP(Y|θ(i))]
   =A(θ(i+1),θ(i))B(θ(i+1),θ(i))
  由于 θ(i+1)=argmaxθz[Q(Z)logP(Y,Z|θ)Q(Z)] ,因此对于 A(θ(i+1),θ(i)) 来说,其值大于等于0.
  对于 B(θ(i+1),θ(i)) ,利用jensen不等式。
   =z[P(Z|Y,θ(i))logP(Y|θ(i))]
   logzP(Z|Y,θ(i))P(Y|θ(i))=logzP(Z,Y|θ(i))0 概率小于1,对数小于0。
  故 L(θ(i+1))L(θi)=A(θ(i+1),θ(i))B(θ(i+1),θ(i))0
  再证明, L(θ) 收敛于某一个值 L
  因为L(θ)的单调性,以及 P(Y|θ) 的有界性,得到结论: L(θ) 收敛于某一个值。
  最后证明, θ 收敛于稳定值
  暂时未看。

EM算法总结

  对于隐含变量的概率模型,在对数情况下,通过其单调性,不断迭代增加下界值(简化运算),来找到局部最优解。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值