码迷,mamicode.com
首页 > 编程语言 > 详细

EM算法

时间:2014-12-13 12:19:51      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:机器学习   em   

上一次刚写了LSA模型,本来这次想写PLSA模型,但是由于PLSA模型是需要用到EM算法的,所以这里我想先解释下EM算法,我所见过用到EM算法中,一般都是用来解决求解最大似然估计的参数的,当最大似然估计:

bubuko.com,布布扣

不好求解时,可以采用EM的方法,EM方法的大致思想是,如果无法直接求解一个表达式的最大值,那么我先求出这个式子的下界的表达式(E步),然后求出下界表达式的最大值(M步),如此交替循环,直到收敛。假如我求解上面这个式子的最大值,可以按照如下步骤:

bubuko.com,布布扣

bubuko.com,布布扣             z是一个随机潜在变量

bubuko.com,布布扣这里Qi(z)表示xi属于潜在变量z的概率

根据jensen不等式,当f(x)为凹函数时,有f(Ex)>=Ef(x),而且f(x)=logx为凹函数,我们把Qi(z)当做概率分布,即可得到:

bubuko.com,布布扣,当X为常数时,jensen不等式取等号,此时下界就是原来函数表达式,这样优化效果最好,我们取

bubuko.com,布布扣 ,c为常数,然后分子分母都按照z取sigma,结果还是c,得到

bubuko.com,布布扣   此时分母等于1,c等于分子代入上一个式子,得到

bubuko.com,布布扣

至此我们得到E步的迭代表达式。

对于一般的EM算法,他们过程是这样的:

E步:任取theta,或者根据上一次M步求出的theta(此时theta当做已知变量)按照E步的表达式求出潜在变量z的分布是关于Xi的后验分布。

M步:根据上一步求出的Qi(z)(此时z的分布已知),通过最大似然估计求出theta,这步只是一个参数估计问题。

这两步交替执行,直到收敛。

至于收敛性,证明应该比较复杂,这里就不写了。

EM算法

标签:机器学习   em   

原文地址:http://blog.csdn.net/u012303532/article/details/41907609

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!