EM算法

EM算法

1. EM算法的基本思想和主要步骤

有一些优化问题、参数估计问题,往往是没有解析解的,为了得到一个近似的最优解,只能通过交替求解的方式,一步步的迭代得到近似的最优值。主要内容参考《统计学习方法》,仅作为自己学习笔记。

EM算法的主要步骤

  1. 选择模型的初值,开始迭代;
  2. E步:记《EM算法》为第《EM算法》次迭代参数《EM算法》的估计值,求出Q函数的期望值《EM算法》;
  3. M步:求使得《EM算法》取得最大值的《EM算法》,令《EM算法》作为第《EM算法》次迭代中求Q函数的输入参数。
  4. 重复第2步和第3步,直到收敛。
    说明:这里Q函数暂且可以当作一个迭代的媒介,它是EM算法的核心。Q函数是什么东西?具体是如何推导?请看接下来的内容。

2. EM算法的导出

问题模型描述

有些参数估计问题中,往往存在显变量《EM算法》、隐变量《EM算法》以及模型的参数《EM算法》《EM算法》表示可观测的数据,《EM算法》表示未观测的数据,《EM算法》《EM算法》在一起称为完全数据,《EM算法》被称为不完全数据。那么可以得出完全数据和不完全数据的似然函数、对数似然函数:
完全数据的似然函数:《EM算法》
完全数据的对数似然函数:《EM算法》
不完全数据的似然函数:《EM算法》
不完全数据的对数似然函数:《EM算法》

由最大似然估计导出EM算法

简单来想,我们是怎么来估计出模型的参数呢?那就是根据可观测变量来进行分析,为啥呢?因为不可观测变量是我们不知道的啊!那么具体怎么利用可观测变量来进行估计呢?答案就是从他的最大似然函数入手!
假设可观测变量《EM算法》的最大似然函数:
《EM算法》
根据贝叶斯全概率公式《EM算法》可继续推导:
《EM算法》
似然函数是连乘的形式不好计算,因此我们定义对数似然函数:
《EM算法》
为了方便推导,简写为:
《EM算法》

有了对数似然函数以后,就可以按照套路来估计参数《EM算法》。什么意思呢?意思就是我们通过似然函数计算出一个《EM算法》,使得《EM算法》取得最大值。即:
《EM算法》
对于这个问题是求不出解析解的,所以需要迭代求解的方法。而EM算法就是用于求解这种问题的一个迭代求解方法。

EM算法的推导

EM算法怎么就可以迭代求解得出最优值呢?其关键之处就在于两个重要的步骤:(1)E步,求期望;(2)M步,最大化。

E步:

有一个迭代的前提条件,如果最大似然函数《EM算法》,那么就可以继续迭代求出更优的《EM算法》。否则就找到了局部或全局的最优解。
那么满足前提条件《EM算法》的时候怎么进行E步的求期望呢?求的是什么期望呢?怎么就需要求这个期望呢?
这些问题乍一看很让人头大,实际上还需要从数学的角度去考虑,“期望”是什么?概率论里的期望不就《EM算法》吗?
那么EM算法里的期望是什么呢?它指的是一个下边界函数Q的期望。Q函数怎么来的呢?请看推导:
我们为了得到增量,需要计算:
《EM算法》
上面的式子中,《EM算法》是变量,《EM算法》是常量,即第n次迭代中的《EM算法》值。因此我们可以根据贝叶斯全概率公式将其简化的得到:
《EM算法》
对于上式中的两项,我们需要通过一些数学技巧来凑到一起,当然这些奇怪的想法是那些牛批的大佬想出来的,打死我也想不出这么巧妙的推导。
第一项:
《EM算法》
注意到这是一个关于《EM算法》的函数,因此我们根据凸函数的詹森不等式:《EM算法》可以把函数log丢进去,继续推导:
《EM算法》
这样我们就得到了第一项,第二项还是第二项,没有变,把上面的式子整理下来:
《EM算法》
《EM算法》移到不等号右边,令
《EM算法》
得到了下边界函数《EM算法》,它具有如下两个性质:
性质1. 《EM算法》
性质2. 《EM算法》
性质1说明当《EM算法》时,《EM算法》与下边界函数《EM算法》有一个交点;
性质2说明《EM算法》总是小于《EM算法》
因此,根据性质2,当我们找到一个《EM算法》,能使《EM算法》增大时,《EM算法》也会增大。为了使得《EM算法》尽可能增大,我们就要最大化《EM算法》,并找出能使其最大化的《EM算法》。这就引出了M步。
TIPS:上面为什么要让《EM算法》尽可能增大呢?原因是当《EM算法》取得极大值时,《EM算法》时,迭代就可以结束了,就可以得到最优值了。

M步:

上面得出M步需要最大化《EM算法》,并得出《EM算法》,即:
《EM算法》

导出Q函数

实际上,对于《EM算法》可以作一下简化,去掉与《EM算法》无关的常数项:
《EM算法》
这个Q函数实际上就是在最大化过程,简化下边界函数《EM算法》得到的结果。通过上式的最大化,我们就导出了《EM算法》,这相当于一次迭代。
《EM算法》可以求《EM算法》,并通过《EM算法》导出《EM算法》
《EM算法》《EM算法》,并通过《EM算法》导出《EM算法》
………..
最后达到收敛条件,停止迭代,此时求到的《EM算法》就是我们最终用EM算法估计出来的模型参数。
完毕!

    原文作者:吴金君
    原文地址: https://www.jianshu.com/p/2bc61225db0b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞