您的位置:首页 > 其它

EM算法小结(对于GMM和pLSA)

2016-02-29 21:47 176 查看
EM算法,全称为Expectation-maximization algorithm,为期望最大算法,其基本思想是:首先随机选取一个值去初始化待估计的值

,然后不断迭代寻找更优的

使得其似然函数likelihood

比原来的

要大。换言之,假定现在得到了

,想求

,使得



EM的关键便是要找到

的一个下界

(注:

,其中,X表示已经观察到的随机变量),然后不断最大化这个下界,通过不断求解下界

的极大化,从而逼近要求解的似然函数



所以EM算法的一般步骤为:

1. 随机选取或者根据先验知识初始化


2. 不断迭代下述两步

①给出当前的参数估计

,计算似然函数

的下界


②重新估计参数θ,即求

,使得


3. 上述第二步后,如果

收敛(即

收敛)则退出算法,否则继续回到第二步。

上述过程好比在二维平面上,有两条不相交的曲线,一条曲线在上(简称上曲线

),一条曲线在下(简称下曲线

),下曲线为上曲线的下界。现在对上曲线未知,只已知下曲线,为了求解上曲线的最高点,我们试着不断增大下曲线,使得下曲线不断逼近上曲线,下曲线在某一个点达到局部最大值并与上曲线在这点的值相等,记录下这个值,然后继续增大下曲线,寻找下曲线上与上曲线上相等的值,迭代到

收敛(即

收敛)停止,从而利用当前下曲线上的局部最大值当作上曲线的全局最大值(换言之,EM算法不保证一定能找到全局最优值)。如下图所示:



以下是详细介绍。

假定有训练集

,包含m个独立样本,希望从中找到该组数据的模型p(x,z)的参数。

然后通过极大似然估计建立目标函数--对数似然函数:



这里,z是隐随机变量,直接找到参数的估计是很困难的。我们的策略是建立

的下界,并且求该下界的最大值;重复这个过程,直到收敛到局部最大值。

令Qi是z的某一个分布,Qi≥0,且结合Jensen不等式,有:



为了寻找尽量紧的下界,我们可以让使上述等号成立,而若要让等号成立的条件则是:



换言之,有以下式子成立:

,且由于有:


所以可得:



最终得到EM算法的整体框架如下:



评论:所以说,那个Qi(zi),实际上就是z的分布(z在给定x和theta的分布),说白了就是z的比例(比如对于xi=1.90这个样本,男的比例为0.9,女的比例为0.1) 也就是E步

M步,说是找最大化下界的theta,其实在GMM里面,就是根据极大似然估计(这个的确是最大化概率求参数的思想啊!)的思想,求theta值,作为更新。

在pLSA中:

由于



未知,所以我们用EM算法去估计

这个参数的值。
而后,用

表示词项

出现在主题

中的概率,即

,用

表示主题

出现在文档

中的概率,即

,从而把

转换成了“主题-词项”矩阵Φ(主题生成词),把

转换成了“文档-主题”矩阵Θ(文档生成主题)。
最终求解出



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: