EM算法

EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域算法的基础,比如隐式马尔科夫算法(HMM), LDA主题模型的变分推断等等。

1. EM算法要解决的问题

EM算法解决这个的思路是使用启发式的迭代方法,既然我们无法直接求出模型分布参数,那么我们可以先猜想隐含数据(EM算法的E步),接着基于观察数据和猜测的隐含数据一起来极大化对数似然,求解我们的模型参数(EM算法的M步)。由于我们之前的隐藏数据是猜测的,所以此时得到的模型参数一般还不是我们想要的结果。不过没关系,我们基于当前得到的模型参数,继续猜测隐含数据(EM算法的E步),然后继续极大化对数似然,求解我们的模型参数(EM算法的M步)。以此类推,不断的迭代下去,直到模型分布参数基本无变化,算法收敛,找到合适的模型参数。

    从上面的描述可以看出,EM算法是迭代求解最大值的算法,同时算法在每一次迭代时分为两步,E步和M步。一轮轮迭代更新隐含数据和模型分布参数,直到收敛,即得到我们需要的模型参数。

    一个最直观了解EM算法思路的是K-Means算法,见之前写的K-Means聚类算法原理。在K-Means聚类时,每个聚类簇的质心是隐含数据。我们会假设KK个初始化质心,即EM算法的E步;然后计算得到每个样本最近的质心,并把样本聚类到最近的这个质心,即EM算法的M步。重复这个E步和M步,直到质心不再变化为止,这样就完成了K-Means聚类。

    当然,K-Means算法是比较简单的,实际中的问题往往没有这么简单。上面对EM算法的描述还很粗糙,我们需要用数学的语言精准描述。

2. EM算法流程

    现在我们总结下EM算法的流程。

               

    

3. EM算法的收敛性思考

    EM算法的流程并不复杂,但是还有两个问题需要我们思考:

    1) EM算法能保证收敛吗?

    2) EM算法如果收敛,那么能保证收敛到全局最大值吗?  

    首先我们来看第一个问题, EM算法的收敛性。要证明EM算法收敛,则我们需要证明我们的对数似然函数的值在迭代的过程中一直在增大。即:

∑i=1mlogP(x(i);θj+1)≥∑i=1mlogP(x(i);θj)∑i=1mlogP(x(i);θj+1)≥∑i=1mlogP(x(i);θj)

    由于

L(θ,θj)=∑i=1m∑z(i)P(z(i)|x(i);θj))logP(x(i),z(i);θ)L(θ,θj)=∑i=1m∑z(i)P(z(i)|x(i);θj))logP(x(i),z(i);θ)

    令:

H(θ,θj)=∑i=1m∑z(i)P(z(i)|x(i);θj))logP(z(i)|x(i);θ)H(θ,θj)=∑i=1m∑z(i)P(z(i)|x(i);θj))logP(z(i)|x(i);θ)

    上两式相减得到:

∑i=1mlogP(x(i);θ)=L(θ,θj)−H(θ,θj)∑i=1mlogP(x(i);θ)=L(θ,θj)−H(θ,θj)

    在上式中分别取θθ为θjθj和θj+1θj+1,并相减得到:

∑i=1mlogP(x(i);θj+1)−∑i=1mlogP(x(i);θj)=[L(θj+1,θj)−L(θj,θj)]−[H(θj+1,θj)−H(θj,θj)]∑i=1mlogP(x(i);θj+1)−∑i=1mlogP(x(i);θj)=[L(θj+1,θj)−L(θj,θj)]−[H(θj+1,θj)−H(θj,θj)]

    要证明EM算法的收敛性,我们只需要证明上式的右边是非负的即可。

    由于θj+1θj+1使得L(θ,θj)L(θ,θj)极大,因此有:

L(θj+1,θj)−L(θj,θj)≥0L(θj+1,θj)−L(θj,θj)≥0

    而对于第二部分,我们有:

H(θj+1,θj)−H(θj,θj)=∑i=1m∑z(i)P(z(i)|x(i);θj)logP(z(i)|x(i);θj+1)P(z(i)|x(i);θj)≤∑i=1mlog(∑z(i)P(z(i)|x(i);θj)P(z(i)|x(i);θj+1)P(z(i)|x(i);θj))=∑i=1mlog(∑z(i)P(z(i)|x(i);θj+1))=0(3)(4)(5)(3)H(θj+1,θj)−H(θj,θj)=∑i=1m∑z(i)P(z(i)|x(i);θj)logP(z(i)|x(i);θj+1)P(z(i)|x(i);θj)(4)≤∑i=1mlog(∑z(i)P(z(i)|x(i);θj)P(z(i)|x(i);θj+1)P(z(i)|x(i);θj))(5)=∑i=1mlog(∑z(i)P(z(i)|x(i);θj+1))=0

    其中第(4)式用到了Jensen不等式,只不过和第二节的使用相反而已,第(5)式用到了概率分布累积为1的性质。

    至此,我们得到了:∑i=1mlogP(x(i);θj+1)−∑i=1mlogP(x(i);θj)≥0∑i=1mlogP(x(i);θj+1)−∑i=1mlogP(x(i);θj)≥0, 证明了EM算法的收敛性。

    从上面的推导可以看出,EM算法可以保证收敛到一个稳定点,但是却不能保证收敛到全局的极大值点,因此它是局部最优的算法,当然,如果我们的优化目标L(θ,θj)L(θ,θj)是凸的,则EM算法可以保证收敛到全局最大值,这点和梯度下降法这样的迭代算法相同。至此我们也回答了上面提到的第二个问题。

 5. EM算法的一些思考

    如果我们从算法思想的角度来思考EM算法,我们可以发现我们的算法里已知的是观察数据,未知的是隐含数据和模型参数,在E步,我们所做的事情是固定模型参数的值,优化隐含数据的分布,而在M步,我们所做的事情是固定隐含数据分布,优化模型参数的值。比较下其他的机器学习算法,其实很多算法都有类似的思想。比如SMO算法(支持向量机原理(四)SMO算法原理),坐标轴下降法(Lasso回归算法: 坐标轴下降法与最小角回归法小结), 都使用了类似的思想来求解问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值