ESL-chapter8-EM算法2

这节介绍的EM算法和ESL略有不同,我觉得ESL在这节讲的并不好,因此采用pattern recognition and machine learning9.3节的介绍过程。EM算法的目标是找到带有隐变量模型的最大似然解。令观测到的数据集为X,隐变量为Z。(和ESL上的定义不同),模型参数为theta。则模型的对数似然函数为


当Z为连续隐变量时,上面的累加和变为积分。由于这个累加和(或积分)在ln中,导致难以计算边际分布p(X|theta)的对数似然。现在称{X,Z}为完全数据,则X为不完全数据。我们假定当隐变量的取值已知时,对数似然函数P(X,Z|theta)可解。但是现在我们并不知道Z的取值。手上现有的条件是当X,theta已知时的Z的后验分布P(Z|X,theta)。

下面是EM算法的关键:由于我们并不知道完全数据,那么我们就采用完全数据的期望值。而这个期望值是基于Z的后验分布P(Z|X,theta)计算出来的。这就是EM算法中的E步,在M步,再估值theta使这个期望最大化。这个theta再代入E步,依次循环,直到收敛。E步期望的计算方式如下:

注意看等号的右边,累加和的里面有两项,一项是P(Z|X,theta(old)),另一项是ln(p(X,Z|theta))。P(Z|X,theta(old))是依据上一轮的theta计算Z的后验分布,而ln(p(X,Z|theta))中的theta是一个参数值(这很关键,千万不要把theta(old)代入这个似然函数中)。前一项是Z的概率,后一项是完全数据(X,Z)的对数似然函数。两者相乘的累加和就是完全数据(X,Z)的对数似然函数的期望值。准确的说是一个期望函数(因为里面有一个未知的参数theta)。

M步的计算如下:

更新theta(old)的值。

一般性EM算法的流程这里并不贴出来了,大家可以在很多书上找到。

一般性EM算法很多书上有介绍,但是很少有例子说明它怎么用。很多都拿混合高斯的例子来引出一般性EM算法的介绍。但我觉得这不能够反映一般性EM的精髓所在。下面再贴出一个EM算法处理缺失值的例子,大家可以对比上篇博客混合高斯的例子来理解EM。(这个例子来自于duda的模式分类)

     假定有一个服从二维分布的数据集:


其中第四个数据的第一维是缺失的。令Db表示缺失值X41,Dg表示观测到的数据(不完全数据){X1,X2,X3,X42}。b表示为bad.g表示good。

theta代表的是要估算的数据集D分布函数的参数。现在给theta赋一个初始值。theta=(0,0,1,1),第一轮迭代的计算方式如下:



仔细研究一下这个计算。第一行就是求完全数据的期望,没什么好说的。第二行就是把这个期望展开,分成两个部分。一部分是求X41的概率(方括号后一部分)。另一个部分是求不完全数据(观测数据)的对数似然函数(前一部分)。

第三行就是把第二行展开计算。前面三个数据和X41没关系,所以直接提出去。剩下的对X41的取值范围进行积分。由于X4服从高斯分布,把高斯密度函数代进去。


这样就把E步计算完了。 注意(mu1,mu2,sigma1,sigma2)构成了theta。然后取theta使得Q最大。计算结果为


依次类推。可计算出最后的结果。 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值