EM算法

EM算法



本文中,若无特殊说明,使用 Y,y 表示观测变量,使用 Z,z 表示隐藏变量, θ 表示模型参数。

EM算法

为什么使用EM?

  概率模型有时既包含观测变量,也包含隐变量(或潜在变量)。
  如果模型只包含观测变量,则我们可以通过最大化对数似然 l(θ) 来得到 θ

l(θ)=log P(Y|θ)(1)

  如果模型包含隐变量,则(1)式变化为:

l(θ)=log P(Y|θ)=log [ZP(Y,Z|θ)](2)

  这里,因为极大似然概率是隐变量和观测变量联合概率求和的对数,很难求解,那怎么办?
  下面就是EM的解决方案,EM不是直接求解,而是使用一个迭代过程来不断的逼近 l(θ) 的局部最大值(EM算法的解和初值选择是有关系的),从而得到 θ 的近似解。


两个事实

  在说EM算法之前,我们需要知道以下两个事实

  1. 对于 P(Y,Z|θ) ,如果观测变量 Y 和隐变量Z已知,即只有一个未知变量 θ ,那么我们可以通过极大似然概率的最大化来得到 θ 的解。
  2. 对于 P(Z|Y,θ) ,如果观测变量 Y 和模型参数θ已知,那么这个概率值也是可以计算出来的,即我们会得到 p(z1),p(z2),...,p(zn),(ziZ)

EM算法过程

  下面是EM算法迭代求解 θ 的过程

  1. 选择模型参数的初值 θ(0) ,开始迭代。
  2. E步:记 θ(i) 为第 i 次迭代参数θ的估计值,则第 i+1 次迭代的E步(求解期望值),计算:
    Q(θ,θ(i))=EZ[log P(Y,Z|θ)|Y,θ(i)](3)
      上式是在已知观测变量 Y 和模型的估计参数θ(i)条件下求解 log P(Y,Z|θ) 的期望,我们根据事实2可以得到隐变量 Z 的概率分布,所以(3)式可以进一步转化为:
    Q(θ,θ(i))=EZ[log P(Y,Z|θ)P(Z|Y,θ(i))](4)
      细心的读者发现了,这个式子不就是一个加权平均吗?我们再将(4)式的含义屡一下:首先在第 i 次求得观测变量Y和模型参数 θ(i) 的条件下,我们得到了隐变量 Z 的概率分布,现在我们可以当做Z是已知的了,这个表达式现在只有一个未知变量 θ ,然后我们是不是可以根据事实1来得到 θ 的解?
  3. M步:在算法第2步中,我们可以使用事实1来得到 θ 的解,这个解就是第 i+1 次的模型参数 θ(i+1) 的估计值:
    θ(i+1)=argmaxθQ(θ,θ(i))(5)
    我们将这个过程重新屡一下:我们利用第 i 次迭代的模型参数估计值得到了第i+1次模型参数的估计值。
  4. 接下来就是不断重复算法的第2步和第3步,直到 θ 的估计值收敛。

三个问题

  到现在,我们可能都会有三个问题

  1. 为什么我们求解的是(2)式,我们却用(3)式进行迭代?(3)式是经过一系列的数学推导得到的,即这个迭代是有效的,具体请见本文EM算法的导出部分
  2. 我们怎么能够保证在迭代的过程中 θ 会不断接近真实解?我们怎么能够保证迭代的过程收敛?我们也是通过一系列的数学推导得到的,具体请见本文EM算法收敛性证明部分
  3. EM算法怎么使用?一些概率我们写着可以得到,但是具体是怎么得到的?为了加深熟练EM算法,可以笔者的其他文章如EM算法在高斯混合模型中的应用隐马尔科夫链等。


EM算法的导出

  对包含隐变量的概率模型,我们的目标是极大化观测变量 Y 对模型参数θ的极大似然估计:

l(θ)=log P(Y|θ)=log [ZP(Y,Z|θ)]=log [ZP(Y|Z,θ)P(Z|θ)](6)

  由于EM算法是通过迭代逐步近似极大化 l(θ) 的,假设第 i 次迭代后θ的估计值是 θ(i) ,我们希望新估计值 θ 能使的 l(θ) 增加,即 l(θ)>l(θ(i)) ,所以我们考虑两者的差:
l(θ)l(θ(i))=log [ZP(Y|Z,θ)P(Z|θ)]log P(Y|θ(i))(7)
=log [ZP(Z|Y,θ(i))P(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i))P(Y|θ(i))](8)
ZP(Z|Y,θ(i))logP(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i))P(Y|θ(i))(9)

  (8)式到(9)式使用Jensen不等式得到。

Jensen不等式

logjλjyjjλjlog yj
其中 λj0,jλj=1.

  令:

B(θ,θ(i))=l(θ(i))+ZP(Z|Y,θ(i))logP(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i))P(Y|θ(i))(10)

  则:

l(θ)B(θ,θ(i))(11)

  即 B(θ,θ(i)) l(θ) 的一个下界,由式(10)可以得到:
l(θ(i))=B(θ(i),θ(i))(12)

  因此,任何使 B(θ,θ(i)) 增大的 θ ,也可以使 l(θ) 增大。为了使 l(θ) 有尽可能大的增长,选择 θ(i+1) 使 B(θ,θ(i)) 达到最大,即:
θ(i+1)=argmaxθB(θ,θ(i))(13)

  现在求 θ(i+1) 的表达式,省略对 θ 的极大化而言是常数的项:
θ(i+1)=argmaxθ[l(θ(i))+ZP(Z|Y,θ(i))logP(Y|Z,θ)P(Z|θ)P(Z|Y,θ(i))P(Y|θ(i))]
=argmaxθZP(Z|Y,θ(i))logP(Y|Z,θ)P(Z|θ)
=argmaxθZP(Z|Y,θ(i))logP(Y|Z,θ)

   现在是不是得到了E步中的迭代表达式?即:
θ(i+1)=argmaxθQ(θ,θ(i))

  到此我们的推导已经结束。


EM算法收敛性证明

  定理1:设 P(Y|θ) 为观测数据的似然函数, θ(i)(i=1,2,...) 为EM算法得到的参数估计序列, P(Y|θ(i))(i=1,2,...) 为对数似然函数序列,则 P(Y|θ(i)) 是单调递增的,即:

P(Y|θ(i+1))P(Y|θ(i))
  证明略。。(可以参考文献1,p160-p162)


参考

[1]: 李航 《统计学习方法》
[2]: Kevin P. Murphy 《Machine Learning: A Probabilistic Perspective》

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值