【机器学习系列】EM算法
2014-02-26 09:54
459 查看
EM算法
作者:罗维
初稿:2011年1月15日
修正:2012年1月14日
很碰巧,时隔一年了。面对经典的EM算法,我有了新的认识。经常有人谈到它就是"鸡生蛋,蛋生鸡"的解法,这个很通俗,但是只了解到这一层,是远不够的……
EM算法的全名是Expectation Maximization,中文名叫期望最大化算法。它是一个在含有隐变量的模型中常用的算法,在最大似然估计(MLE)和最大后验估计(MAP)中常用。在GMM、HMM、PCFG、IBM 5个对齐模型以及K-Means聚类方法中均有它的影子。下面会以MLE估计来介绍它,随后给出其两种证明方法,最后以实际模型中的应用为例,以期达到融会贯通的目的。
1. EM因什么而存在?
定义:观测变量X,针对X所获得的n个观测样本为(
![](http://img5.ph.126.net/nv-FcI_ifyHkZDH6iyCP7A==/1123085157092715985.jpg)
) (数学上为了计算方便,一般认为它们之间满足独立同分布(independent and identically distributed, i.i.d)分布),随机变量Z,是与观测变量对应的隐含变量,在所取n个样本中对应的取值为(
![](http://img8.ph.126.net/DbXGUKIPx2F1aaVDMqukVQ==/624874448314851848.jpg)
)
(同样认为它们满足i.i.d分布)。参数变量
![](http://img1.ph.126.net/Mznim0zTmWILaBHp10zqyw==/2595480760266155021.jpg)
为模型的一系列参数(注意,k的大小与n的大小没有关系)。因为我们在MLE估计中来讨论EM算法,所以这里,
![](http://img6.ph.126.net/sffiAcwfun4EEbVvpXFCpw==/624874448314851856.jpg)
不是随机变量,而是普通的变量。
依照最大似然估计(Maximum Likelihood Estimation, MLE),形式化定义为:
![](http://img2.ph.126.net/4rSFsNbIiVptqzChw2Kdbw==/1583578218991349712.jpg)
![](http://img6.ph.126.net/c_ojdW4uGUlAjTyuLupfxQ==/1583578218991349726.jpg)
(1)
在某些问题中由于存在隐含的随机变量Z,故由边缘分布的概念知道有:
![](http://img0.ph.126.net/U_LMuDIr2mp7IpRj9D72Zg==/624874448314851880.jpg)
(2)
(2)式在很多时候是intractable(可以回顾HMM和PCFG中的情形)。这时需要另辟蹊径,而EM正是解决这类问题的有力武器。
*** 为什么会有隐含变量?
存在隐含变量,是EM不同于一般的MLE问题的本质。隐含变量,可能是模型中真正存在的(如HMM,PCFG中的参数求解),也可能是为了求解方便而引入的。
2. EM收敛到最大似然的2种证明
以最大似然为目标函数,EM能收敛吗?下面我们将给出两种证明。第一种证明是通过不断提高下界的思路来证,更能表达EM的本质;而第二种证明却是我们常在实际中应用EM的思路。
先做一些基础的推导:
(1) 拆分
![](http://img1.ph.126.net/Drk1VYRyRoqiGXRw1cRFLA==/1583578218991349731.jpg)
:
![](http://img0.ph.126.net/NMfU621DkFqewPCzwBwRHQ==/624874448314851890.jpg)
(2) 等式两边同乘以q(Z),并对Z求和:
![](http://img5.ph.126.net/IZT_A6Oh-YLZzqV0PIJFdg==/2842334314841397725.jpg)
(3) 由于Z与
![](http://img1.ph.126.net/esI-PIyDgsKYitjX6fCbzw==/2761269521548737461.jpg)
独立,且
![](http://img8.ph.126.net/bBdIUPwlvuvyJTurY8aVmw==/624874448314851898.jpg)
,于是,
![](http://img7.ph.126.net/ebh9EJl7j2fPSiUxe1y98Q==/2552415088829428607.jpg)
(4) 引入两个函数:
![](http://img7.ph.126.net/0BzZuGZUqeL7yjMNfvFGCw==/2761269521548737467.jpg)
![](http://img0.ph.126.net/2LQB2NWLQuw4Dq65R3wvnQ==/2552415088829428620.jpg)
这时,
![](http://img1.ph.126.net/Drk1VYRyRoqiGXRw1cRFLA==/1583578218991349731.jpg)
可以简化为:
![](http://img6.ph.126.net/ZdXbGEk3qQgTUcyJg-HJ9g==/1583578218991349776.jpg)
注意,
![](http://img0.ph.126.net/Ird6GcNX7Qe1K-nT9hWHIA==/2842334314841397760.jpg)
,等号在p=q时成立。所以
![](http://img5.ph.126.net/C_wnEr-UuxgMWEl3bK1SEw==/2595762235242865595.jpg)
是
![](http://img1.ph.126.net/Drk1VYRyRoqiGXRw1cRFLA==/1583578218991349731.jpg)
的下界。而EM算法的思路就是靠不断的提高下界
![](http://img5.ph.126.net/C_wnEr-UuxgMWEl3bK1SEw==/2595762235242865595.jpg)
,来找到
![](http://img1.ph.126.net/Drk1VYRyRoqiGXRw1cRFLA==/1583578218991349731.jpg)
的最大值。再回顾一下,直接计算
![](http://img1.ph.126.net/Drk1VYRyRoqiGXRw1cRFLA==/1583578218991349731.jpg)
有时候是件困难/复杂的事情。不过计算
![](http://img5.ph.126.net/C_wnEr-UuxgMWEl3bK1SEw==/2595762235242865595.jpg)
是比较容易的。那么如何提高下界呢?EM算法的E步和M步正是来实现这个目标的。
E步:假设当前的参数为
![](http://img3.ph.126.net/D7ID7jWEeZxHUvimrxE6wA==/641762946917489583.jpg)
,固定
![](http://img3.ph.126.net/D7ID7jWEeZxHUvimrxE6wA==/641762946917489583.jpg)
,找一个分布q(Z),使得
![](http://img5.ph.126.net/C_wnEr-UuxgMWEl3bK1SEw==/2595762235242865595.jpg)
最大。但是注意到
![](http://img0.ph.126.net/nYGVjYjCh9vOoAUH50EMmQ==/1583578218991349800.jpg)
与Z无关,所以使
![](http://img5.ph.126.net/C_wnEr-UuxgMWEl3bK1SEw==/2595762235242865595.jpg)
最大,等价于使
![](http://img5.ph.126.net/0Uzj1IiQTuX7TlNE3HY76Q==/1583578218991349805.jpg)
最小(=0),也就是说
![](http://img9.ph.126.net/c7D5Cd7kJ2EtH_W3DeboMQ==/641762946917489609.jpg)
。
M步:固定q(Z),找新参数
![](http://img1.ph.126.net/ztyrDGc9HZMeaAOA2WxlKQ==/641762946917489611.jpg)
,使得
![](http://img9.ph.126.net/3yPK38cun4637yEcPwApmw==/641762946917489619.jpg)
最大。当然,
![](http://img1.ph.126.net/Drk1VYRyRoqiGXRw1cRFLA==/1583578218991349731.jpg)
的增大可能来自于两部分:
![](http://img9.ph.126.net/3yPK38cun4637yEcPwApmw==/641762946917489619.jpg)
和
![](http://img5.ph.126.net/0Uzj1IiQTuX7TlNE3HY76Q==/1583578218991349805.jpg)
,毕竟此时
![](http://img8.ph.126.net/knFEce55GBy6kbX5goS5bg==/2595762235242865648.jpg)
和
![](http://img9.ph.126.net/c7D5Cd7kJ2EtH_W3DeboMQ==/641762946917489609.jpg)
一般是不同的,所以
![](http://img0.ph.126.net/Ird6GcNX7Qe1K-nT9hWHIA==/2842334314841397760.jpg)
。
同样我们先做一些基础的推导:
回到
![](http://img4.ph.126.net/Ku5_xQ-7gVdQvDHi9Jbubg==/1325465665347676394.jpg)
,我们知道
![](http://img7.ph.126.net/wlie1InxGrtfWuoQbs8d2g==/2595762235242865667.jpg)
那么等式两边去对数,得到
![](http://img9.ph.126.net/uARVCqMqkpx_boWX626lOg==/2595762235242865669.jpg)
等式两边都加上对关于Z的条件概率分布
![](http://img0.ph.126.net/y6xcAJ1l7oSlb5pZYDiUVw==/2595762235242865670.jpg)
的积分,我们得到:
![](http://img4.ph.126.net/Y__znuJvjiAR1CuJ3V0DhQ==/112308515724750814.jpg)
(注意:对比前一个证法,这里是与那有相似之处的。那里是引入了q(Z),而这里是直接将
![](http://img1.ph.126.net/ipS5aALXkpwmhpzvQF904A==/2595762235242865671.jpg)
,同时这边少了可以消掉的lnq(Z)项)
引入两个函数来分别表示上式右边的两项:
![](http://img6.ph.126.net/8FDpuF9dqGQ6qNTAWVFc4Q==/2523141691251522946.jpg)
(4)
![](http://img2.ph.126.net/pBuMTG-D9NJw_hW3swdS7g==/641762946917489662.jpg)
(5)
这样,
![](http://img6.ph.126.net/7aa7jEQF5AYTgXnwC_rPpw==/2523141691251522956.jpg)
就可以表示为:
![](http://img1.ph.126.net/PC6UOcKDwQ1Q1JrBXfdGNQ==/1179943102388271431.jpg)
(6)
(注意:(4)(5)(6)式都是关于
![](http://img6.ph.126.net/sffiAcwfun4EEbVvpXFCpw==/624874448314851856.jpg)
的函数)
好,如果对
![](http://img6.ph.126.net/7aa7jEQF5AYTgXnwC_rPpw==/2523141691251522956.jpg)
,在迭代求解中有
![](http://img4.ph.126.net/oinagVaARR7WNzzpUXdxjw==/1349109563391374714.jpg)
,那么就有理由说EM收敛是可能的。那如何从
![](http://img1.ph.126.net/CJ51iKxRLd4b0rJLwRWwRw==/2523141691251522981.jpg)
构造
![](http://img1.ph.126.net/I4i4o0gQly5cCGxVIa16zw==/2523141691251522991.jpg)
,才能使得
![](http://img4.ph.126.net/oinagVaARR7WNzzpUXdxjw==/1349109563391374714.jpg)
成立?
接下来,我们寻找一种办法来构造
![](http://img6.ph.126.net/sffiAcwfun4EEbVvpXFCpw==/624874448314851856.jpg)
:
对
![](http://img4.ph.126.net/oinagVaARR7WNzzpUXdxjw==/1349109563391374714.jpg)
,应用(6)有:
![](http://img0.ph.126.net/zAbmUMgw-W-l569zxj03TA==/1349109563391374750.jpg)
在这,我们首先尝试去证明
![](http://img7.ph.126.net/S-ATXEIcuDs0pk6Ij63f3Q==/609111849619061757.jpg)
,然后尝试去最大化
![](http://img5.ph.126.net/mc9C8wO_XNLKJRUW30BPWQ==/609111849619061765.jpg)
。
首先证明
![](http://img7.ph.126.net/S-ATXEIcuDs0pk6Ij63f3Q==/609111849619061757.jpg)
。
![](http://img2.ph.126.net/pBuMTG-D9NJw_hW3swdS7g==/641762946917489662.jpg)
是关于
![](http://img6.ph.126.net/sffiAcwfun4EEbVvpXFCpw==/624874448314851856.jpg)
的函数,且在
![](http://img1.ph.126.net/CJ51iKxRLd4b0rJLwRWwRw==/2523141691251522981.jpg)
处取得函数的最大值,即当
![](http://img6.ph.126.net/R2KfDcHeRrU2eMpE1bLaAA==/1099159784072310246.jpg)
时,
![](http://img6.ph.126.net/imlaX5AneSmQonx09FwduQ==/609111849619061786.jpg)
。
而实际上
![](http://img6.ph.126.net/bODN8w_lezrt_wXjn55b8A==/1349109563391374776.jpg)
(中间对上凸函数
![](http://img2.ph.126.net/wLJ-du2n5N7pk66t3KJ7Qg==/1349109563391374782.jpg)
应用了Jensen不等式)
证毕。
所以只要我们保证
![](http://img5.ph.126.net/mc9C8wO_XNLKJRUW30BPWQ==/609111849619061765.jpg)
成立,那么就能保证
![](http://img4.ph.126.net/oinagVaARR7WNzzpUXdxjw==/1349109563391374714.jpg)
成立。当然这点很容易保证,即我们选择
![](http://img1.ph.126.net/I4i4o0gQly5cCGxVIa16zw==/2523141691251522991.jpg)
为使
![](http://img8.ph.126.net/Y49FsuNwA6i954nQOn9B9Q==/1179943102388271458.jpg)
取最大值的
![](http://img6.ph.126.net/sffiAcwfun4EEbVvpXFCpw==/624874448314851856.jpg)
,即
![](http://img1.ph.126.net/AaN8KgSW2lw1F5zhupsiBw==/646829496498282591.jpg)
。
======================================
以上面的思路就已经证明了可以选出一个
![](http://img1.ph.126.net/I4i4o0gQly5cCGxVIa16zw==/2523141691251522991.jpg)
,它使得
![](http://img4.ph.126.net/oinagVaARR7WNzzpUXdxjw==/1349109563391374714.jpg)
,也就是我们已经找到一个迭代求解的方法(这种方法就叫EM)使得
![](http://img6.ph.126.net/7aa7jEQF5AYTgXnwC_rPpw==/2523141691251522956.jpg)
收敛。总结EM算法如下:
=================================
E步:计算关于
![](http://img6.ph.126.net/sffiAcwfun4EEbVvpXFCpw==/624874448314851856.jpg)
的函数(其形式本质上是期望)
![](http://img6.ph.126.net/8FDpuF9dqGQ6qNTAWVFc4Q==/2523141691251522946.jpg)
M步:
![](http://img1.ph.126.net/AaN8KgSW2lw1F5zhupsiBw==/646829496498282591.jpg)
(循环做E步和M步)
=================================
总结来说,EM算法就是通过迭代地最大化完整数据的对数似然函数的期望,来最大化不完整数据的对数似然函数。
关于两种证法在最大化目标的解释,第一种方法是在最大化
![](http://img7.ph.126.net/0BzZuGZUqeL7yjMNfvFGCw==/2761269521548737467.jpg)
,当然在E步得出
![](http://img9.ph.126.net/c7D5Cd7kJ2EtH_W3DeboMQ==/641762946917489609.jpg)
。
第二种方法是在最大化
![](http://img6.ph.126.net/8FDpuF9dqGQ6qNTAWVFc4Q==/2523141691251522946.jpg)
。
其实两个是等价的,把
![](http://img9.ph.126.net/c7D5Cd7kJ2EtH_W3DeboMQ==/641762946917489609.jpg)
代入
![](http://img5.ph.126.net/C_wnEr-UuxgMWEl3bK1SEw==/2595762235242865595.jpg)
得到:
![](http://img3.ph.126.net/XX3vuBiEn-c1BNRwaPYv7w==/112308515724750873.jpg)
注意到,第一种方法,M步是固定
![](http://img9.ph.126.net/c7D5Cd7kJ2EtH_W3DeboMQ==/641762946917489609.jpg)
寻找
![](http://img1.ph.126.net/ztyrDGc9HZMeaAOA2WxlKQ==/641762946917489611.jpg)
,因此上式的后一项
![](http://img0.ph.126.net/4YhSrA5HJIMplJ0zfx6Z5w==/2765773121176107760.jpg)
是常数。所以最大化
![](http://img7.ph.126.net/0BzZuGZUqeL7yjMNfvFGCw==/2761269521548737467.jpg)
,等价于在最大化上式的前一项
![](http://img4.ph.126.net/3J5-cT0iHrf5mhYlpg-lbg==/2765773121176107764.jpg)
,从形式上看,就是
![](http://img6.ph.126.net/8FDpuF9dqGQ6qNTAWVFc4Q==/2523141691251522946.jpg)
。所以两种证法是等价的。
3. EM应用场景
(1) 隐变量确实是对齐吗?
答:是的,确实是词与词之间的对齐。
(2) EM是算似然概率的(指
![](http://img4.ph.126.net/Ku5_xQ-7gVdQvDHi9Jbubg==/1325465665347676394.jpg)
,
![](http://img3.ph.126.net/8vItCLatGU8xYaYUw--vUA==/1001487967153720133.jpg)
),那么在IBM模型中哪里体现了似然概率?
答:分别在P(F|E), P(F,A|E)中。参数
![](http://img6.ph.126.net/sffiAcwfun4EEbVvpXFCpw==/624874448314851856.jpg)
是融于公式中的词汇翻译概率、位置扭曲概率以及繁殖概率等等。
(3) E步在算谁?
答:以Model 1为例,E步算的就是:
![](http://img3.ph.126.net/xXuhmjwzz7HRa5ufBSliyA==/2765773121176107783.jpg)
![](http://img1.ph.126.net/v_4CT3G5_Apt2uv-ESypXw==/2765773121176107791.jpg)
形式上仍是log-likelihood在关于隐藏变量的某种概率分布下的期望。
(对比
![](http://img2.ph.126.net/0iOoC35wsYgIO1cAKUq0nA==/1001487967153720152.jpg)
)
对于它们以及词语对齐模型,隐变量都是辅助描述模型的某种"结构",如对于HMM,隐变量是状态转移序列这种结构,参数是状态转移概率和发射概率;对于GMM,隐变量是样本点所属的类别这种结构,参数是这些高斯分布的相关参数;对于PCFG,隐变量是指句法分析树这种结构,参数是规则概率。
有些时候,
![](http://img9.ph.126.net/c7D5Cd7kJ2EtH_W3DeboMQ==/641762946917489609.jpg)
是不能显式的计算出来,这个时候最大化
![](http://img5.ph.126.net/C_wnEr-UuxgMWEl3bK1SEw==/2595762235242865595.jpg)
就显得相当困难。这个时候,可以考虑不一定保证Jensen不等式一定要取等号,如果给定
![](http://img7.ph.126.net/PTVSkLSztoEDkcF0065YSA==/2652620180538420097.jpg)
某种形式,就得到variational
EM算法。
上面讲的是针对MLE估计的EM算法,其实也有针对MAP估计的EM算法。
上面讲的是EM可以归于batch EM一类,还有文献介绍关于online EM的论述。可以在文献[2]中阅读到有关online EM的内容。
EM算法就是通过迭代地最大化完整数据的对数似然函数的期望,来最大化不完整数据的对数似然函数。当然,针对各种EM的变形,它们又有各自的应用场景。
[2] Neal, R.M. and Hinton, G.E. A view of the EM algorithm that justifies incremental, sparse, and other variants.
转载请注明出处:http://luowei828.blog.163.com/
附:
相关网址:
http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html jerrylead博客中EM的介绍
http://www.cnblogs.com/mindpuzzle/archive/2013/04/05/2998746.html EM算法介绍
作者:罗维
初稿:2011年1月15日
修正:2012年1月14日
很碰巧,时隔一年了。面对经典的EM算法,我有了新的认识。经常有人谈到它就是"鸡生蛋,蛋生鸡"的解法,这个很通俗,但是只了解到这一层,是远不够的……
EM算法的全名是Expectation Maximization,中文名叫期望最大化算法。它是一个在含有隐变量的模型中常用的算法,在最大似然估计(MLE)和最大后验估计(MAP)中常用。在GMM、HMM、PCFG、IBM 5个对齐模型以及K-Means聚类方法中均有它的影子。下面会以MLE估计来介绍它,随后给出其两种证明方法,最后以实际模型中的应用为例,以期达到融会贯通的目的。
1. EM因什么而存在?
定义:观测变量X,针对X所获得的n个观测样本为(
![](http://img5.ph.126.net/nv-FcI_ifyHkZDH6iyCP7A==/1123085157092715985.jpg)
) (数学上为了计算方便,一般认为它们之间满足独立同分布(independent and identically distributed, i.i.d)分布),随机变量Z,是与观测变量对应的隐含变量,在所取n个样本中对应的取值为(
![](http://img8.ph.126.net/DbXGUKIPx2F1aaVDMqukVQ==/624874448314851848.jpg)
)
(同样认为它们满足i.i.d分布)。参数变量
![](http://img1.ph.126.net/Mznim0zTmWILaBHp10zqyw==/2595480760266155021.jpg)
为模型的一系列参数(注意,k的大小与n的大小没有关系)。因为我们在MLE估计中来讨论EM算法,所以这里,
![](http://img6.ph.126.net/sffiAcwfun4EEbVvpXFCpw==/624874448314851856.jpg)
不是随机变量,而是普通的变量。
依照最大似然估计(Maximum Likelihood Estimation, MLE),形式化定义为:
![](http://img2.ph.126.net/4rSFsNbIiVptqzChw2Kdbw==/1583578218991349712.jpg)
![](http://img6.ph.126.net/c_ojdW4uGUlAjTyuLupfxQ==/1583578218991349726.jpg)
(1)
在某些问题中由于存在隐含的随机变量Z,故由边缘分布的概念知道有:
![](http://img0.ph.126.net/U_LMuDIr2mp7IpRj9D72Zg==/624874448314851880.jpg)
(2)
(2)式在很多时候是intractable(可以回顾HMM和PCFG中的情形)。这时需要另辟蹊径,而EM正是解决这类问题的有力武器。
1.1问题诠释
*** 为什么会有隐含变量?存在隐含变量,是EM不同于一般的MLE问题的本质。隐含变量,可能是模型中真正存在的(如HMM,PCFG中的参数求解),也可能是为了求解方便而引入的。
2. EM收敛到最大似然的2种证明
以最大似然为目标函数,EM能收敛吗?下面我们将给出两种证明。第一种证明是通过不断提高下界的思路来证,更能表达EM的本质;而第二种证明却是我们常在实际中应用EM的思路。
2.1 优化下界的证法
先做一些基础的推导:(1) 拆分
![](http://img1.ph.126.net/Drk1VYRyRoqiGXRw1cRFLA==/1583578218991349731.jpg)
:
![](http://img0.ph.126.net/NMfU621DkFqewPCzwBwRHQ==/624874448314851890.jpg)
(2) 等式两边同乘以q(Z),并对Z求和:
![](http://img5.ph.126.net/IZT_A6Oh-YLZzqV0PIJFdg==/2842334314841397725.jpg)
(3) 由于Z与
![](http://img1.ph.126.net/esI-PIyDgsKYitjX6fCbzw==/2761269521548737461.jpg)
独立,且
![](http://img8.ph.126.net/bBdIUPwlvuvyJTurY8aVmw==/624874448314851898.jpg)
,于是,
![](http://img7.ph.126.net/ebh9EJl7j2fPSiUxe1y98Q==/2552415088829428607.jpg)
(4) 引入两个函数:
![](http://img7.ph.126.net/0BzZuGZUqeL7yjMNfvFGCw==/2761269521548737467.jpg)
![](http://img0.ph.126.net/2LQB2NWLQuw4Dq65R3wvnQ==/2552415088829428620.jpg)
这时,
![](http://img1.ph.126.net/Drk1VYRyRoqiGXRw1cRFLA==/1583578218991349731.jpg)
可以简化为:
![](http://img6.ph.126.net/ZdXbGEk3qQgTUcyJg-HJ9g==/1583578218991349776.jpg)
注意,
![](http://img0.ph.126.net/Ird6GcNX7Qe1K-nT9hWHIA==/2842334314841397760.jpg)
,等号在p=q时成立。所以
![](http://img5.ph.126.net/C_wnEr-UuxgMWEl3bK1SEw==/2595762235242865595.jpg)
是
![](http://img1.ph.126.net/Drk1VYRyRoqiGXRw1cRFLA==/1583578218991349731.jpg)
的下界。而EM算法的思路就是靠不断的提高下界
![](http://img5.ph.126.net/C_wnEr-UuxgMWEl3bK1SEw==/2595762235242865595.jpg)
,来找到
![](http://img1.ph.126.net/Drk1VYRyRoqiGXRw1cRFLA==/1583578218991349731.jpg)
的最大值。再回顾一下,直接计算
![](http://img1.ph.126.net/Drk1VYRyRoqiGXRw1cRFLA==/1583578218991349731.jpg)
有时候是件困难/复杂的事情。不过计算
![](http://img5.ph.126.net/C_wnEr-UuxgMWEl3bK1SEw==/2595762235242865595.jpg)
是比较容易的。那么如何提高下界呢?EM算法的E步和M步正是来实现这个目标的。
E步:假设当前的参数为
![](http://img3.ph.126.net/D7ID7jWEeZxHUvimrxE6wA==/641762946917489583.jpg)
,固定
![](http://img3.ph.126.net/D7ID7jWEeZxHUvimrxE6wA==/641762946917489583.jpg)
,找一个分布q(Z),使得
![](http://img5.ph.126.net/C_wnEr-UuxgMWEl3bK1SEw==/2595762235242865595.jpg)
最大。但是注意到
![](http://img0.ph.126.net/nYGVjYjCh9vOoAUH50EMmQ==/1583578218991349800.jpg)
与Z无关,所以使
![](http://img5.ph.126.net/C_wnEr-UuxgMWEl3bK1SEw==/2595762235242865595.jpg)
最大,等价于使
![](http://img5.ph.126.net/0Uzj1IiQTuX7TlNE3HY76Q==/1583578218991349805.jpg)
最小(=0),也就是说
![](http://img9.ph.126.net/c7D5Cd7kJ2EtH_W3DeboMQ==/641762946917489609.jpg)
。
M步:固定q(Z),找新参数
![](http://img1.ph.126.net/ztyrDGc9HZMeaAOA2WxlKQ==/641762946917489611.jpg)
,使得
![](http://img9.ph.126.net/3yPK38cun4637yEcPwApmw==/641762946917489619.jpg)
最大。当然,
![](http://img1.ph.126.net/Drk1VYRyRoqiGXRw1cRFLA==/1583578218991349731.jpg)
的增大可能来自于两部分:
![](http://img9.ph.126.net/3yPK38cun4637yEcPwApmw==/641762946917489619.jpg)
和
![](http://img5.ph.126.net/0Uzj1IiQTuX7TlNE3HY76Q==/1583578218991349805.jpg)
,毕竟此时
![](http://img8.ph.126.net/knFEce55GBy6kbX5goS5bg==/2595762235242865648.jpg)
和
![](http://img9.ph.126.net/c7D5Cd7kJ2EtH_W3DeboMQ==/641762946917489609.jpg)
一般是不同的,所以
![](http://img0.ph.126.net/Ird6GcNX7Qe1K-nT9hWHIA==/2842334314841397760.jpg)
。
2.2 常规思路的证法
同样我们先做一些基础的推导:回到
![](http://img4.ph.126.net/Ku5_xQ-7gVdQvDHi9Jbubg==/1325465665347676394.jpg)
,我们知道
![](http://img7.ph.126.net/wlie1InxGrtfWuoQbs8d2g==/2595762235242865667.jpg)
那么等式两边去对数,得到
![](http://img9.ph.126.net/uARVCqMqkpx_boWX626lOg==/2595762235242865669.jpg)
等式两边都加上对关于Z的条件概率分布
![](http://img0.ph.126.net/y6xcAJ1l7oSlb5pZYDiUVw==/2595762235242865670.jpg)
的积分,我们得到:
![](http://img4.ph.126.net/Y__znuJvjiAR1CuJ3V0DhQ==/112308515724750814.jpg)
(注意:对比前一个证法,这里是与那有相似之处的。那里是引入了q(Z),而这里是直接将
![](http://img1.ph.126.net/ipS5aALXkpwmhpzvQF904A==/2595762235242865671.jpg)
,同时这边少了可以消掉的lnq(Z)项)
引入两个函数来分别表示上式右边的两项:
![](http://img6.ph.126.net/8FDpuF9dqGQ6qNTAWVFc4Q==/2523141691251522946.jpg)
(4)
![](http://img2.ph.126.net/pBuMTG-D9NJw_hW3swdS7g==/641762946917489662.jpg)
(5)
这样,
![](http://img6.ph.126.net/7aa7jEQF5AYTgXnwC_rPpw==/2523141691251522956.jpg)
就可以表示为:
![](http://img1.ph.126.net/PC6UOcKDwQ1Q1JrBXfdGNQ==/1179943102388271431.jpg)
(6)
(注意:(4)(5)(6)式都是关于
![](http://img6.ph.126.net/sffiAcwfun4EEbVvpXFCpw==/624874448314851856.jpg)
的函数)
好,如果对
![](http://img6.ph.126.net/7aa7jEQF5AYTgXnwC_rPpw==/2523141691251522956.jpg)
,在迭代求解中有
![](http://img4.ph.126.net/oinagVaARR7WNzzpUXdxjw==/1349109563391374714.jpg)
,那么就有理由说EM收敛是可能的。那如何从
![](http://img1.ph.126.net/CJ51iKxRLd4b0rJLwRWwRw==/2523141691251522981.jpg)
构造
![](http://img1.ph.126.net/I4i4o0gQly5cCGxVIa16zw==/2523141691251522991.jpg)
,才能使得
![](http://img4.ph.126.net/oinagVaARR7WNzzpUXdxjw==/1349109563391374714.jpg)
成立?
接下来,我们寻找一种办法来构造
![](http://img6.ph.126.net/sffiAcwfun4EEbVvpXFCpw==/624874448314851856.jpg)
:
对
![](http://img4.ph.126.net/oinagVaARR7WNzzpUXdxjw==/1349109563391374714.jpg)
,应用(6)有:
![](http://img0.ph.126.net/zAbmUMgw-W-l569zxj03TA==/1349109563391374750.jpg)
在这,我们首先尝试去证明
![](http://img7.ph.126.net/S-ATXEIcuDs0pk6Ij63f3Q==/609111849619061757.jpg)
,然后尝试去最大化
![](http://img5.ph.126.net/mc9C8wO_XNLKJRUW30BPWQ==/609111849619061765.jpg)
。
首先证明
![](http://img7.ph.126.net/S-ATXEIcuDs0pk6Ij63f3Q==/609111849619061757.jpg)
。
![](http://img2.ph.126.net/pBuMTG-D9NJw_hW3swdS7g==/641762946917489662.jpg)
是关于
![](http://img6.ph.126.net/sffiAcwfun4EEbVvpXFCpw==/624874448314851856.jpg)
的函数,且在
![](http://img1.ph.126.net/CJ51iKxRLd4b0rJLwRWwRw==/2523141691251522981.jpg)
处取得函数的最大值,即当
![](http://img6.ph.126.net/R2KfDcHeRrU2eMpE1bLaAA==/1099159784072310246.jpg)
时,
![](http://img6.ph.126.net/imlaX5AneSmQonx09FwduQ==/609111849619061786.jpg)
。
而实际上
![](http://img6.ph.126.net/bODN8w_lezrt_wXjn55b8A==/1349109563391374776.jpg)
(中间对上凸函数
![](http://img2.ph.126.net/wLJ-du2n5N7pk66t3KJ7Qg==/1349109563391374782.jpg)
应用了Jensen不等式)
证毕。
所以只要我们保证
![](http://img5.ph.126.net/mc9C8wO_XNLKJRUW30BPWQ==/609111849619061765.jpg)
成立,那么就能保证
![](http://img4.ph.126.net/oinagVaARR7WNzzpUXdxjw==/1349109563391374714.jpg)
成立。当然这点很容易保证,即我们选择
![](http://img1.ph.126.net/I4i4o0gQly5cCGxVIa16zw==/2523141691251522991.jpg)
为使
![](http://img8.ph.126.net/Y49FsuNwA6i954nQOn9B9Q==/1179943102388271458.jpg)
取最大值的
![](http://img6.ph.126.net/sffiAcwfun4EEbVvpXFCpw==/624874448314851856.jpg)
,即
![](http://img1.ph.126.net/AaN8KgSW2lw1F5zhupsiBw==/646829496498282591.jpg)
。
======================================
以上面的思路就已经证明了可以选出一个
![](http://img1.ph.126.net/I4i4o0gQly5cCGxVIa16zw==/2523141691251522991.jpg)
,它使得
![](http://img4.ph.126.net/oinagVaARR7WNzzpUXdxjw==/1349109563391374714.jpg)
,也就是我们已经找到一个迭代求解的方法(这种方法就叫EM)使得
![](http://img6.ph.126.net/7aa7jEQF5AYTgXnwC_rPpw==/2523141691251522956.jpg)
收敛。总结EM算法如下:
=================================
E步:计算关于
![](http://img6.ph.126.net/sffiAcwfun4EEbVvpXFCpw==/624874448314851856.jpg)
的函数(其形式本质上是期望)
![](http://img6.ph.126.net/8FDpuF9dqGQ6qNTAWVFc4Q==/2523141691251522946.jpg)
M步:
![](http://img1.ph.126.net/AaN8KgSW2lw1F5zhupsiBw==/646829496498282591.jpg)
(循环做E步和M步)
=================================
总结来说,EM算法就是通过迭代地最大化完整数据的对数似然函数的期望,来最大化不完整数据的对数似然函数。
2.3 两种证法的等价性
关于两种证法在最大化目标的解释,第一种方法是在最大化![](http://img7.ph.126.net/0BzZuGZUqeL7yjMNfvFGCw==/2761269521548737467.jpg)
,当然在E步得出
![](http://img9.ph.126.net/c7D5Cd7kJ2EtH_W3DeboMQ==/641762946917489609.jpg)
。
第二种方法是在最大化
![](http://img6.ph.126.net/8FDpuF9dqGQ6qNTAWVFc4Q==/2523141691251522946.jpg)
。
其实两个是等价的,把
![](http://img9.ph.126.net/c7D5Cd7kJ2EtH_W3DeboMQ==/641762946917489609.jpg)
代入
![](http://img5.ph.126.net/C_wnEr-UuxgMWEl3bK1SEw==/2595762235242865595.jpg)
得到:
![](http://img3.ph.126.net/XX3vuBiEn-c1BNRwaPYv7w==/112308515724750873.jpg)
注意到,第一种方法,M步是固定
![](http://img9.ph.126.net/c7D5Cd7kJ2EtH_W3DeboMQ==/641762946917489609.jpg)
寻找
![](http://img1.ph.126.net/ztyrDGc9HZMeaAOA2WxlKQ==/641762946917489611.jpg)
,因此上式的后一项
![](http://img0.ph.126.net/4YhSrA5HJIMplJ0zfx6Z5w==/2765773121176107760.jpg)
是常数。所以最大化
![](http://img7.ph.126.net/0BzZuGZUqeL7yjMNfvFGCw==/2761269521548737467.jpg)
,等价于在最大化上式的前一项
![](http://img4.ph.126.net/3J5-cT0iHrf5mhYlpg-lbg==/2765773121176107764.jpg)
,从形式上看,就是
![](http://img6.ph.126.net/8FDpuF9dqGQ6qNTAWVFc4Q==/2523141691251522946.jpg)
。所以两种证法是等价的。
3. EM应用场景
3.1 IBM Model
(1) 隐变量确实是对齐吗?答:是的,确实是词与词之间的对齐。
(2) EM是算似然概率的(指
![](http://img4.ph.126.net/Ku5_xQ-7gVdQvDHi9Jbubg==/1325465665347676394.jpg)
,
![](http://img3.ph.126.net/8vItCLatGU8xYaYUw--vUA==/1001487967153720133.jpg)
),那么在IBM模型中哪里体现了似然概率?
答:分别在P(F|E), P(F,A|E)中。参数
![](http://img6.ph.126.net/sffiAcwfun4EEbVvpXFCpw==/624874448314851856.jpg)
是融于公式中的词汇翻译概率、位置扭曲概率以及繁殖概率等等。
(3) E步在算谁?
答:以Model 1为例,E步算的就是:
![](http://img3.ph.126.net/xXuhmjwzz7HRa5ufBSliyA==/2765773121176107783.jpg)
![](http://img1.ph.126.net/v_4CT3G5_Apt2uv-ESypXw==/2765773121176107791.jpg)
形式上仍是log-likelihood在关于隐藏变量的某种概率分布下的期望。
(对比
![](http://img2.ph.126.net/0iOoC35wsYgIO1cAKUq0nA==/1001487967153720152.jpg)
)
3.2 GMM、HMM、PCFG
对于它们以及词语对齐模型,隐变量都是辅助描述模型的某种"结构",如对于HMM,隐变量是状态转移序列这种结构,参数是状态转移概率和发射概率;对于GMM,隐变量是样本点所属的类别这种结构,参数是这些高斯分布的相关参数;对于PCFG,隐变量是指句法分析树这种结构,参数是规则概率。
4. EM变种
4.1 Variational EM
有些时候,![](http://img9.ph.126.net/c7D5Cd7kJ2EtH_W3DeboMQ==/641762946917489609.jpg)
是不能显式的计算出来,这个时候最大化
![](http://img5.ph.126.net/C_wnEr-UuxgMWEl3bK1SEw==/2595762235242865595.jpg)
就显得相当困难。这个时候,可以考虑不一定保证Jensen不等式一定要取等号,如果给定
![](http://img7.ph.126.net/PTVSkLSztoEDkcF0065YSA==/2652620180538420097.jpg)
某种形式,就得到variational
EM算法。
4.2 EM for MAP
上面讲的是针对MLE估计的EM算法,其实也有针对MAP估计的EM算法。
4.2 Online EM
上面讲的是EM可以归于batch EM一类,还有文献介绍关于online EM的论述。可以在文献[2]中阅读到有关online EM的内容。
5. 总结
EM算法就是通过迭代地最大化完整数据的对数似然函数的期望,来最大化不完整数据的对数似然函数。当然,针对各种EM的变形,它们又有各自的应用场景。
参考文献
[1] Bishop, C.M. Pattern Recognition and Machine Learning.
[2] Neal, R.M. and Hinton, G.E. A view of the EM algorithm that justifies incremental, sparse, and other variants.转载请注明出处:http://luowei828.blog.163.com/
附:
相关网址:
http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html jerrylead博客中EM的介绍
http://www.cnblogs.com/mindpuzzle/archive/2013/04/05/2998746.html EM算法介绍
相关文章推荐
- 关于maven的pom文件配置问题
- 重启服务器后网站访问不了,防火墙在作怪
- 一个简单的又好看的验证码
- IOS - rangeOfString、NSNotFound
- 程序员找工作渠道
- oracle 常用命令
- onclick事件分析
- Java动态(后期)绑定和overloading 向上转型
- Jrebel 的配置及使用
- ASP.NET AJAX安装(VS2005下安装)
- Remove Element -- LeetCode
- 未能加载文件或程序集“SQLDAL”或它的某一个依赖项。系统找不到指定的文件
- ecshop添加模板与库文件
- 二维数组作为函数的参数传递
- win7 flash缓存在哪里如何确定其位置
- lunix 查找80端口被占的命令
- 嵌入式测试:IAR单元测试示例
- 女程共勉:必须证明自己是真正的优秀
- C语言实现二分查找
- 嵌入式测试:IAR单元测试示例