chwang@microsoft.com
注意:这是一个非正式的简介,所以没有列出相关的参考文献,以后我会陆续完善。写EM简介的文章很多,我这里希望能对初学者有所帮助。水平有限,如有错误,敬请指正。
Expectation-Maximization (EM) 算法是一个在含有隐含变量的模型中常用的算法,最常见的是用于高斯混合模型 (Mixtures of Gaussians), 但EM算法的应用决不仅仅限于此 。
假设我们要估计联合概率密度ሺ࢞,࢟|ࢶሻ,其中࢞为可以观测的变量,࢟为隐含变量,为参数。令计(Maximum Likelihood),也就是最大化下面式子: 写的更一般一些,可以为:
ሼࢄ,ࢅሽൌሼሺ࢞ଵ,࢟ଵሻ,…,ሺ࢞ே,࢟ேሻሽ。ሺ࢞,࢟ሻ,݅אሼ1,2,…,ܰሽ是相互独立的。给定ࢄ,考虑的最大似然估ࣦሺ|ࢄሻൌlog∏ሺ࢞|ሻൌ∑logሺ࢞|ሻൌ∑݈݃∑࢟ሺ࢞,࢟|ሻ .
ࣦሺ|ࢄሻൌlogሺࢄ|ሻൌlog∑ࢅሺࢄ,ࢅ|ሻ 。如果ࢅ是连续变量,ࣦሺ|ࢄሻൌlogሺࢄ,ࢅ|ሻ݀ࢅ
基本的EM算法:
假设ࢅ可观测,那么ࣦሺࢶ|ࢄ,ࢅሻൌlogሺࢄ,ࢅ|ሻ, 通常来说比较容易求解,特别是如果ሺࢄ,ࢅ|ሻ是指数族的情况下。
定义ܳ函数: ܳሺ,ௗሻൌܧሺࢅ|ࢄ,ሻሾࣦሺࢶ|ࢄ,ࢅሻሿ E-step:Compute ሺࢅ|ࢄ,ௗሻ M-step: ୬ୣ୵ൌargmaxܳሺ,ௗሻ
上述的EM算法虽然描述简单,但不是很直观,下面从另外一个角度来导出EM算法。 从优化的角度导出的EM算法: 首先介绍Jensen不等式:
假设݂ሺ࢞ሻ为凸函数函数(对于凹函数,不等号方向相反),(对于二阶可导的情况,可以考虑证明
ᇱ
Hessian矩阵是非负定的,一维情况݂ᇱሺݔሻ0), 对于随机变量ࢄ,有
可以证明每次EM都可以使得ࣦሺ|ࢄሻ增加,保证收敛到局部极大值。
恒成立,等号成立当且仅当ࢄൌܧࢄ, 以概率1成立(ࢄ是常数)。如图1所示。
ܧሾ݂ሺࢄሻሿ݂ሺܧࢄሻ
本页已使用福昕阅读器进行编辑。福昕软件(C)2005-2007,版权所有,仅供试用。
图1. 凸函数
很容易验证log ሺݔሻ是凹函数。由于直接优化ࣦሺ|ࢄሻൌlogሺࢄ|ሻൌlog∑ࢅሺࢄ,ࢅ|ሻ很难,考虑ࣦሺ|ࢄሻ的下界,假设ݍሺࢅሻ为任意概率密度:
ࢅ
ࣦሺ|ࢄሻൌlogሺࢄ,ࢅ|ሻൌlogݍሺࢅሻ
ࢅ
ሺࢄ,ࢅ|ሻሺࢄ,ࢅ|ሻൌlogܧሺࢅሻ൨
ݍሺࢅሻݍሺࢅሻ由Jensen不等式:
等号成立当且仅当
ሺࢄ,ࢅ|ሻሺࢅሻ这就是在基本EM算法中的E-step。 而M-step则变为:
୬ୣ୵
ൌܧሺࢅሻቂ
logܧሺࢅሻ
ሺࢄ,ࢅ|ሻሺࢅሻሺࢄ,ࢅ|ሻሺࢄ,ࢅ|ሻ൨ܧሺࢅሻlog൨
ݍሺࢅሻݍሺࢅሻቃൌ ሺࢄ|ሻൌܿ݊ݏݐܽ݊ݐ, 所以有ݍሺࢅሻൌ ሺࢅ|ࢄ,ሻ。可见,
总结,考虑最大化ࣦሺ|ࢄሻ下界ܧሺࢅሻቂlog并且 ݍሺࢅሻൌ ሺࢅ|ࢄ,ሻ有:
ା
ሺࢄ,ࢅ|כሻሺࢄ,ࢅ|כሻൌargmaxכlogܧሺࢅሻቈൌargmaxכܧሺࢅሻlog൨
ݍሺࢅሻݍሺࢅሻሺࢄ,ࢅ|ሻሺࢅሻࣦሺ|ࢄሻ的问题。利用Jensen也很容易证明ࣦሺ|ࢄሻ是递增的。假设,ାଵ为迭代第݊,݊1的值,ࣦሺ
ሺࢄ,ࢅ|ାሻ|ࢄሻൌlogܧሺࢅሻቈ
ݍሺࢅሻቃൌ∑ࢅݍሺࢅሻlog
ሺࢄ,ࢅ|ሻሺࢅሻ的问题,从而解决了最大化
ሺࢄ,ࢅ|ାሻܧሺࢅሻቈlog
ݍሺࢅሻሺࢄ,ࢅ|ሻܧሺࢅሻlog൨
ݍሺࢅሻൌࣦሺ|ࢄሻ
上式中第一个不等式是由于Jensen不等式,第二个是由于M-step求最大的性质。
有些时候,ݍሺࢅሻൌ ሺࢅ|ࢄ,ሻ也不是能够显示的计算出来的,这个时候最大化ࣦሺ|ࢄሻ就显得相当困难。这个时候,可以考虑不一定保证Jensen不等式一定取等号。如果给定ݍሺࢅሻ某种形式,就得到Variational EM算法。 To be continued …
因篇幅问题不能全部显示,请点此查看更多更全内容