当f(x)函数是凹函数的时候,Jensen不等式的不等号就要反向了,E[f(x)]<=f(Ex)。
EM算法主要用在具有隐含变量而且直接用最大似然估计(MLE)或者最大后验概率(MAP),这么说可能没有一个具体的认识,我们可以举一个例子:
假设我们有一个训练样本集,我们希望得到包含了隐含变量z的模型
中的参数
,这就是我们经常遇到的参数估计的问题,我们能够观测到的变量是
,它可以是一切我们可以直接得到的变量(例如文档中的词),往往模型中还有一个甚至多个我们观察不到的隐含变量
(例如文档的主题),我们可以记为
,一般的做法就是找到最大似然函数,取对数,求导,令等式等于0,求得的参数对应着似然函数的极大值或者极小值。对于上面的例子我们写出它的似然函数:
对于这个似然函数的写法,我有点不明白的是看边肇祺的《模式识别》p48页把这个似然函数写为p((观测变量)|(待估参数)),而这里确是p(观测变量;待估参数),细想下觉得是一样的,都是认为已经给定了待估参数。(如果理解不正确还请大牛答疑!),然后按照上面的MLE步骤来,你会发现log函数中还有累加,如果直接求解会非常困难,既然不能直接最大化似然函数,我们就尝试不断地建立
的下界(E步),然后优化下界(M步),下图中就是一个不断迭代的过程,不断建立下界来逼近似然函数的极值。
下面给出求解过程:
上面就是引入一个概率分布,利用分子分母同乘它,将概率乘积转换为期望。然后利用上面的Jensen不等式得到下式等式的取得必须是
为常数。这样我们就得到了似然函数的一个下界函数,那么
怎么样才能在
处是常数呢,只能是分子分母成比例,分式才能是一个常数,前面已经假定了
是一个概率分布,所以必须满足
,再看看分子,
只能是
,分式在
处为
,显然是一个常数。将
带入不等式得到:
再作进一步推导如下:
倒数第三步是因为与
θ
无关。这就是M步。E步其实就是利用M步得到的θ来计算
,之前看了一次EM算法,被那些玄乎的推导,搞的一头雾水,现在再来看一边,感觉好多了。
有了上面的知识,我们可以把EM算法高度概括如下:
(1)E步骤:求隐含变量Given当前估计的参数条件下的后验概率即
(2)M步骤:最大化Complete data对数似然函数的期望,此时我们使用E步骤里计算的隐含变量的后验概率,得到新的参数值。
两步迭代进行直到收敛。
先解释一下什么是Incomplete data和complete data。Zhai老师在一篇经典的EM算法Notes中讲到,当原始数据的似然函数很复杂时,我们通过增加一些隐含变量来增强我们的数据,得到“complete data”,而“complete data”的似然函数更加简单,方便求极大值。于是,原始的数据就成了“incomplete data”。我们将会看到,我们可以通过最大化“complete data”似然函数的期望来最大化"incomplete data"的似然函数,以便得到求似然函数最大值更为简单的计算途径
上面所有参考如下:
http://blog.youkuaiyun.com/yangliuy/article/details/8330640
http://blog.tomtung.com/2011/10/em-algorithm/
http://www.cnblogs.com/rocketfan/archive/2011/07/03/2096953.html