打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
什么是EM算法 - 讶究'Blog - 欢迎光临 讶究'Blog O(∩_∩)O~~

什么是EM算法

admin , 2010/03/20 08:04 , Matlab , 评论(0) , 阅读(488) , Via 本站原创
| |

  EM算法是机器学习中一个很重要的算法,即期望最大化算法,主要包括以下两个步骤:

  E步骤:estimate the expected values
  M步骤:re-estimate parameters

  迭代使用EM步骤,直至收敛。

  我觉得可以有一些比较形象的比喻说法把这个算法讲清楚。比如说食堂的大师傅炒了一份菜,要等分成两份给两个人吃,显然没有必要拿来天平一点一点的精确的去称分量,最简单的办法是先随意的把菜分到两个碗中,然后观察是否一样多,把比较多的那一份取出一点放到另一个碗中,这个过程一直迭代地执行下去,直到大家看不出两个碗所容纳的菜有什么分量上的不同为止。EM算法就是这样,假设我们估计知道A和B两个参数,在开始状态下二者都是未知的,并且知道了A的信息就可以得到B的信息,反过来知道了B也就得到了A。可以考虑首先赋予A某种初值,以此得到B的估计值,然后从B的当前值出发,重新估计A的取值,这个过程一直持续到收敛为止。

  EM 算法是 Dempster,Laind,Rubin 于 1977 年提出的求参数极大似然估计的一种方法,它可以从非完整数据集中对参数进行 MLE 估计,是一种非常简单实用的学习算法。这种方法可以广泛地应用于处理缺损数据,截尾数据,带有讨厌数据等所谓的不完全数据(incomplete data)。

  假定集合Z = (X,Y)由观测数据 X 和未观测数据Y 组成,Z = (X,Y)和 X 分别称为完整数据和不完整数据。假设Z的联合概率密度被参数化地定义为P(X,Y|Θ),其中Θ 表示要被估计的参数。Θ 的最大似然估计是求不完整数据的对数似然函数L(X;Θ)的最大值而得到的:
  L(Θ; X )= log p(X |Θ) = ∫log p(X ,Y |Θ)dY ;

  EM算法包括两个步骤:由E步和M步组成,它是通过迭代地最大化完整数据的对数似然函数Lc( X;Θ )的期望来最大化不完整数据的对数似然函数,其中:
  Lc(X;Θ) =log p(X,Y |Θ) ;
  假设在算法第t次迭代后Θ 获得的估计记为Θ(t ) ,则在(t+1)次迭代时,
  E-步:计算完整数据的对数似然函数的期望,记为:
  Q(Θ |Θ (t) ) = E{Lc(Θ;Z)|X;Θ(t) };
  M-步:通过最大化Q(Θ |Θ(t) ) 来获得新的Θ 。

  通过交替使用这两个步骤,EM算法逐步改进模型的参数,使参数和训练样本的似然概率逐渐增大,最后终止于一个极大点。直观地理解EM算法,它也可被看作为一个逐次逼近算法:事先并不知道模型的参数,可以随机的选择一套参数或者事先粗略地给定某个初始参数λ0 ,确定出对应于这组参数的最可能的状态,计算每个训练样本的可能结果的概率,在当前的状态下再由样本对参数修正,重新估计参数λ ,并在新的参数下重新确定模型的状态,这样,通过多次的迭代,循环直至某个收敛条件满足为止,就可以使得模型的参数逐渐逼近真实参数。
  EM算法的主要目的是提供一个简单的迭代算法计算后验密度函数,它的最大优点是简单和稳定,但容易陷入局部最优

  下面给出一个很经典的EM算法的应用

  

  

    机器翻译中要计算未对齐句对的翻译概率,我们可以采用EM算法获取
    P(f|e) =Sigma(P(a, f|e)),一共有如下3种对齐方式

  

    

  初始化设定 t(x|b)=t(x|c)=t(y|b)=t(y|c)=1/2
  对齐1:p(a,f|e)=1/2*1/2=1/4
  对齐2:p(a,f|e)=1/2*1/2=1/4
  对齐3:p(a,f|e)=1/2
  继续计算
  对齐1:p(a|e,f)=(1/4)/(1/4+1/4)=1/2
  对齐2:p(a|e,f)=(1/4)/(1/4+1/4)=1/2
  对齐3:p(a|e,f)=(1/2)/(1/2)=1
  tc(x|b)=1/2
  tc(x|c)=1/2
  tc(y|b)=1+1/2=3/2
  tc(y|c)=1/2
  完成E步骤,利用E步骤获取的信息重新估计参数
  t(x|b)=(1/2)/(1/2+3/2)=1/4
  t(x|c)=(1/2)/(1/2+1/2)=1/2
  t(y|b)=(3/2)/(1/2+3/2)=3/4
  t(y|c)=(1/2)/(1/2+1/2)=1/2
  完成M步骤,重复上面的EM步骤,直至收敛
  以上只是简单的EM算法的使用,在机器翻译,语言识别等领域应用比较广泛,多用于训练。

作者:admin@讶究'Blog
地址:http://www.iobeta.com/read.php/227.htm
版权所有。转载请以链接形式注明作者和原始出处及本声明!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
从最大似然到EM算法浅解
极大似然估计、贝叶斯估计、EM算法
EM算法
详解EM算法与混合高斯模型(Gaussian mixture model, GMM)
《R语言数据挖掘》第八章 R的一般聚类:揭示数据内在结构
机器学习系列之EM算法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服