您的位置:首页 > 其它

EM算法

2015-04-17 14:54 134 查看
概率模型有时既含有可观测变量也会隐含变量,当所有变量都是可观测的,则一般的MLE或MAP方法可以估计出模型参数。但是当模型中存在隐含变量时,无法用MLE和MAP直接估计出模型参数,这时就要使用到EM算法。

EM算法:

用Y表示观测随机变量数据(不完全数据),Z表示隐随机变量数据,Y和Z合在一起称为完全数据。

给定观测数据Y,则其概率分布为:

,其中

是需要估计的模型参数,那么

其实就是Y的似然函数。对数似然函数为:

。在这里可以看出如果Y是完全数据,也就是不存在隐数据Z,则可以直接使用MLE估计出

。虽然我们的模型中多了隐数据Z,但是我们的目标还是一样的,即极大化



假设Y和Z的联合概率分布为:

,则完全数据的对数似然函数为:



EM算法通过迭代的方式求

的极大似然估计,每次迭代包含两步:

E步:求期望;

M步:极大化。

输入:观测变量Y,隐变量Z,联合分布

,条件分布





表示对模型的一些假设,即数据Y、Z满足什么样的分布。

输出:模型参数



(1)选择参数的初值



(2)E步:设

为第i次迭代的参数

的估计值,在第i+1次迭代的E步,计算:


(该公式可以通过期望的公式推导)

这个公式被称为Q函数,是EM算法中最重要的一步!

Q函数:完全数据的对数似然函数

关于在给点观测数据Y和当前参数

下对隐数据的条件概率分布

的期望称为Q函数。

(3)M步:求使

极大化的

,确定第i+1次迭代的参数估计值




(其中

是变量,找到可以使

最大的

就是



(4)重复第(2)步和di(3)步,直至收敛。

上述过程就是EM算法的流程。EM算法有效的原因就是通过E步和M步可以保证

,当取等号时收敛,并且EM只能保证可以找到

的局部极大值,而不一定是全局极大值。


至于为什么EM算法有

的性质,需要使用Jensen不等式进行证明!

下面说一个包含隐变量的例子,并且可以使用EM算法解决。

有三枚硬币,分别为A、B、C。这些硬币正面朝上的概率为a、b、c。进行如下抛硬币实验:先抛A,根据结果抛B或C,如果A为正面抛B,如果A为反面抛C。记录B和C的结果。

在上面的实验中,抛B和C的结果是可观测变量(但不知道哪些是B哪些是C);而A的结果是隐变量。

该问题可以用EM算法估计出a、b、c的值。

EM算法对初值是敏感的,即使用不同的初值,最后得到的结果可能是不同的!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: