您的位置:首页 > 其它

EM算法

2015-04-06 22:39 141 查看
在人工智能,数理统计,机器学习,模式识别中有许多的应用都要进行模型的参数估计,也就是要进行极大似然估计或极大后验似然估计。当模型中的变量均为可以直接观察的变量时,极大似然或极大后验似然是显然的。但是当某些变量是隐藏的,进行极大似然估计就比较复杂,此时似然函数将很复杂,求导后很难计算。在存在潜在变量的情况下,对模型参数进行估计的方法有很多种,一种非常流行的极大似然估计方法是Expectation一Maximization算法,通常简称为期望最大算法,即EM算法。

基本思想

EM算法是基于模型的聚类方法,是一种从不完全数据中求参数极大似然估计的迭代算法,通过求解似然函数基于隐含变量期望的极值以获得模型的参数向量。算法在概率模型中寻找参数最大似然估计,其中概率模型依赖于无法观测的隐藏变量。E步估计隐含变量,M步估计其他参数,交替将极值推向最大。

EM算法是一种存在缺失数据情况下参数估计的特别算法。其基本思想是首先在给出缺失数据初值的条件下,估计出模型参数的值:然后再根据参数值估计出缺失数据的值。根据估计出的缺失数据的值再对参数值进行更新,如此反复迭代,直至收敛,迭代结束。

该算法的每一次迭代由两步组成:第一步是求对数似然函数的条件期望(E步),第二步是最大化步计算所得的条件期望(M步)。该算法利用数据扩张,将比较复杂的似然函数最优化问题化成一系列比较简单的函数的优化问题。

算法是把一个难以处理的似然函数最大化问题用一个易于最大化的序列取代,而其极限就是原始问题的解。

缺失数据如何解释

一种情况是由于问题本身的原因或观察条件的限制导致观察数据存在缺失变量。

另一种情况得到的数据是完全数据,缺失变量本身并不存在,但是由于似然函数方程过于复杂,难以用传统的极大似然估计方法进行处理,如果添加额外的变量(或称为缺失变量)后的完全数据似然估计则比较简单,于是定义原来数据加上额外数据组成完全数据,而原来观察的原始数据就成为不完整数据,这样就使得相当一部分参数估计问题能够用算法来处理。

根据这种思想可以把许多统计模型纳入到EM算法的框架中来.比如说,混合模型(Mixture model),对数线性模型(log linear model),以及潜变量结构(latent variables structure)等,在这些情况下利用EM算法可以使得复杂的极大似然估计变得简单.EM算法可以运用到几乎所有的统计问题或那些统计技术可以运用到的领域。

算法流程

己知X是观测数据,Y是潜在数据,X、Y一起组成完全数据Z。算法迭代是为了寻求关于θ最大化似然函数L(θ|x)。设θk表示在第k次迭代时估计得到的最大值点,k=0,1,...。定义Q(θ|θk)为观测数据X={x1,x2,...,xn}条件下完全数据的联合对数似然函数的期望,即



一旦我们给定样本点X={x1,x2,...,xn},则Y就是Z的唯一随机部分,通过对Y求条件期望,就又把Y给积掉了,使得Q(θ|θk)完全是一个θ的函数,这样就可以求使得Q(θ|θk)最大的θ,并记为θk+1供下一次迭代使用。EM算法从θ0开始,然后在两步之间交替:E表示期望,M表示最大化。
该算法步骤可概括如下:

(1)E步:在给定的观测数据和己经知道的参数条件下,求“缺失数据”的条件期望,即计算上面提到的对数似然函数的条件期望Q(θ|θk)。

(2)M步:就像不存在缺失数据—样(填充缺失数据后),针对完全数据下的对数似然函数的期望进行极大化估计,即求关于Q(θ|θk)的似然函数的最大化。设θk+1等于Q的最大值点,更新θk。

(3)返回E步,直到满足某停止规则为止。一般是θk变化小于某一个阈值。

EM算法比K-means算法计算复杂,收敛也较慢,不适于大规模数据集和高维数据,但比K-means算法计算结果稳定、准确。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: