EM算法

在统计领域,主要有两大类计算问题,一类是极大似然估计的计算,另一类是Bayes计算。这两者是可以合并讨论的。极大似然估计的计算类似于Bayes的后验众数的计算,因此我们后面就从Bayes计算的角度介绍统计计算方法。

Bayes计算方法大体可以分为两大类。一类是直接应用于后验分布以得到后验均值或后验众数的估计,以及这种估计的渐进方差或其近似。另一类算法可称为数据添加算法,它是在观测数据的基础上加上一些“潜在数据”,从而简化计算并完成一系列简单的极大化或模拟,该“潜在数据”可以是“缺失数据(Missing Data)”或未知数据。其原理可表述如下:设我们能观测到的数据是Y\boldsymbol{\theta}关于Y的后验分布p(\boldsymbol{\theta}|Y)很复杂,难以进行各种统计计算,我们假定一些没能观测到的潜在数据Z为已知,则能够得到一个关于\boldsymbol{\theta}的简单的“添加后验分布p(\boldsymbol{\theta}|Y,Z),利用p(\boldsymbol{\theta}|Y,Z)的简单行我们可进行最大化计算。


一、EM算法

1、作用

EM算法是一种迭代方法,主要用来求后验分布的众数(即极大似然估计)其每一次迭代由两步组成:E步(求期望)和M步(极大化)。

2、符号定义

① 符号:

Y:观测数据;

\boldsymbol{\theta}:模型(或概率密度函数)的参数;

Z:未观测到的潜在数据。

② 定义:

p(\boldsymbol{\theta}|Y):    观测后验分布;

p(\boldsymbol{\theta}|Y,Z):添加后验分布;

p(Z|\boldsymbol{\theta},Y):给定\boldsymbol{\theta}Y的条件下Z的条件分布密度函数。

3、EM算法步骤:

\boldsymbol{\theta}^{(i)}为第i+1次迭代开始时后验众数估计值,则第i+1次迭代的两步为:

E步:将\ln{p(\boldsymbol{\theta}|Y,Z)}p(\boldsymbol{\theta}|Y,Z)关于Z的条件分布p(Z|\boldsymbol{\theta},Y)求期望,从而将Z积掉,即

           Q(\boldsymbol{\theta}|\boldsymbol{\theta}^{(i)},Y)=E_Z\left[\ln{p(\boldsymbol{\theta}|Y,Z)}|\boldsymbol{\theta}^{(i)},Y \right ]=\int{\ln{ [p(\boldsymbol{\theta}|Y,Z)]}p(Z|\boldsymbol{\theta}^{(i)}, Y)dZ}

M步:将Q(\boldsymbol{\theta}|\boldsymbol{\theta}^{(i)},Y)极大化,即找一个点\boldsymbol{\theta}^{(i+1)},使

                                                      Q(\boldsymbol{\theta}^{(i+1)}|\boldsymbol{\theta}^{(i)},Y)=\underset{\boldsymbol{\theta}}{max}Q(\boldsymbol{\theta}|\boldsymbol{\theta}^{(i)},Y)

如此形成了一次迭代\boldsymbol{\theta}^{(i)}\rightarrow\boldsymbol{\theta}^{(i+1)}。将上述E步和M步进行迭代直至\left \|\boldsymbol{\theta}^{(i+1)}-\boldsymbol{\theta}^{(i)} \right \|\left \|Q(\boldsymbol{\theta}^{(i+1)}|\boldsymbol{\theta}^{(i)},Y)-Q(\boldsymbol{\theta}^{(i)}|\boldsymbol{\theta}^{(i)},Y) \right \|充分小时为止。

4、下面两个定理的证明过程请见茆诗松、王静龙、濮晓龙三位大神编写的《高等数理统计(第二版)》P430。

       定理1  EM算法在每一次迭代后均提高(观测)后验密度函数值,即

                                                                        p(\boldsymbol{\theta}^{(i+1)}|Y)\geqslant p(\boldsymbol{\theta}^{(i)}|Y)

      定理2(1)如果p(\boldsymbol{\theta}|Y)有上界,则L(\boldsymbol{\theta}^{(i)}|Y)收敛到某个L^*

                (2)如果Q(\boldsymbol{\theta}|\boldsymbol{\varphi })关于\boldsymbol{\theta}\boldsymbol{\varphi}都连续,则在关于L的很一般的条件下,由EM算法得到的估计序列\boldsymbol{\theta}^{(i)}的收敛值\boldsymbol{\theta}^{*}L的稳定点。

二、GEM算法

EM算法得到广泛应用的一个重要原因是在M步中,求极大化的方法与完全数据下求极大化的方法完全一样。但有时求使Q(\boldsymbol{\theta}|\boldsymbol{\theta}^{(i)},Y)达到最大的\boldsymbol{\theta}比较困难,一个较简单的方法是找一个\boldsymbol{\theta}^{(i+1)},使得 Q(\boldsymbol{\theta}^{(i+1)}|\boldsymbol{\theta}^{(i)},Y)>Q(\boldsymbol{\theta}^{(i)}|\boldsymbol{\theta}^{(i)},Y)。该方法称为广义EM算法GEM算法)。

由定理1的证明可以看出,GEM算法也保证p(\boldsymbol{\theta}^{(i+1)}|Y)>p(\boldsymbol{\theta}^{(i)}|Y)。进一步改变一下条件,定理2也成立。

\boldsymbol{\theta}是一维参数时,Q(\boldsymbol{\theta}|\boldsymbol{\theta}^{(i)},Y)的最大化方法比较多,没有必要考虑GEM算法。对多维参数\boldsymbol{\theta}=(\theta_1,\theta_2,...,\theta_k),Meng和Rubin提出了一种特殊的GEM算法,它们称之为ECM(Exception/Conditional maximization)算法,该算法保留了EM算法的简单性和稳定性,它将原先EM算法中的M步(极大化)分解为如下k次条件极大化:在第i+1次迭代中,记\boldsymbol{\theta}^{(i)}=(\theta_1^{(i)},\theta_2^{(i)},...,\theta_k^{(i)}),在得到Q(\boldsymbol{\theta}|\boldsymbol{\theta}^{(i)},Y)后,首先在\theta_2^{(i)},...,\theta_k^{(i)}保持不变的条件下求使Q(\boldsymbol{\theta}|\boldsymbol{\theta}^{(i)},Y)达到最大的\theta_1^{(i+1)},然后在\theta_1=\theta_1^{(i+1)},\theta_j=\theta_j^{(i)},j=3,...,k的条件下求使Q(\boldsymbol{\theta}|\boldsymbol{\theta}^{(i)},Y)达到最大的\theta_2^{(i+1)},如此继续,经过k次条件极大化,我们得到了一个\boldsymbol{\theta}^{(i+1)},完成了一次迭代。该ECM算法简单,是一种GEM算法,满足GEM算法的所有性质,例如收敛。

三、Monte Carlo EM算法

EM算法由求期望(E步)和求极值(M步)两部分组成,M步由于等同于完全数据的处理,通常比较简单,而在E步中,有时要获得期望的显示表示是不可能的,即使近似计算也很困难,这时可用Monte Carlo方法来完成,即Monte Carlo EM(MCEM)方法,它将E步改为:

(E1)由p(Z|\boldsymbol{\theta}^{(i)},Y)随机地抽取m个随机数z_1,...,z_m;

(E2)计算\hat{Q}(\boldsymbol{\theta}|\boldsymbol{\theta}^{(i)},Y)=\frac{1}{m}\sum^m_{j=1}\ln{p(\boldsymbol{\theta}|z_j,Y)}

由大数定律,只要m足够大,\hat{Q}(\boldsymbol{\theta}|\boldsymbol{\theta}^{(i)},Y)Q(\boldsymbol{\theta}|\boldsymbol{\theta}^{(i)},Y)就很接近,从而我们可以在M步中对\hat{Q}(\boldsymbol{\theta}|\boldsymbol{\theta}^{(i)},Y)求极大化。

在MCEM算法中有两点需要考虑。一是m大小的确定,从精度的角度来讲,m自然越大越好,但过大的m使得计算的效率太低,一般在开始时m不需要很大。另一点是收敛性的判断,因为E步中是采用的Monte Carlo方法,若要求这样得到的\boldsymbol{\theta}^{(i)}收敛到一点显然不现实。在MCEM中,收敛性的判别往往可借助图形来进行。若经过若干次迭代后,迭代值围绕直线\boldsymbol{\theta}=\boldsymbol{\theta}^*小幅波动,则可以认为算法收敛了。此时,为增加估计精度,可增加m的值再运行一段时间即可停止。

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值