一、EM算法简介 EM算法是一种迭代优化策略,因为它的计算方法中每一次迭代都分两步,其中一个为指望步(E步),另外一个为极大步(M步),因此算法被称为EM算法(Expectation Maximization Algorithm)。EM算法受到缺失思想影响,最初是为了解决数据缺失状况下的参数估计问题,其算法基础和收敛有效性等问题在Dempster,Laird和Rubin三人于1977年所作的文章Maximum likelihood from incomplete data via the EM algorithm中给出了详细的阐述。其基本思想是:首先根据己经给出的观测数据,估计出模型参数的值;而后再依据上一步估计出的参数值估计缺失数据的值,再根据估计出的缺失数据加上以前己经观测到的数据从新再对参数值进行估计,而后反复迭代,直至最后收敛,迭代结束。 EM算法做为一种数据添加算法,在近几十年获得迅速的发展,主要源于当前科学研究以及各方面实际应用中数据量愈来愈大的状况下,常常存在数据缺失或者不可用的的问题,这时候直接处理数据比较困难,而数据添加办法有不少种,经常使用的有神经网络拟合、添补法、卡尔曼滤波法等等,可是EM算法之因此能迅速普及主要源于它算法简单,稳定上升的步骤能很是可靠地找到“最优的收敛值”。随着理论的发展,EM算法己经不仅仅用在处理缺失数据的问题,运用这种思想,它所能处理的问题更加普遍。有时候缺失数据并不是是真的缺乏了,而是为了简化问题而采起的策略,这时EM算法被称为数据添加技术,所添加的数据一般被称为“潜在数据”,复杂的问题经过引入恰当的潜在数据,可以有效地解决咱们的问题。html
二、预备知识 介绍EM算法以前,咱们须要介绍极大似然估计以及Jensen不等式。 2.1 极大似然估计 (1)举例说明:经典问题——学生身高问题 咱们须要调查咱们学校的男生和女生的身高分布。 假设你在校园里随便找了100个男生和100个女生。他们共200我的。将他们按照性别划分为两组,而后先统计抽样获得的100个男生的身高。假设他们的身高是服从正态分布的。可是这个分布的均值μ和方差σ2咱们不知道,这两个参数就是咱们要估计的。记做θ=[μ,σ]T。 问题:咱们知道样本所服从的几率分布的模型和一些样本,须要求解该模型的参数。如图1 web
图1
咱们已知的有两个:样本服从的分布模型、随机抽取的样本;咱们未知的有一个:模型的参数。根据已知条件,经过极大似然估计,求出未知参数。总的来讲:极大似然估计就是用来估计模型参数的统计学方法。
(2)如何估计
问题数学化:设样本集
X=x1,x2,…,xN
,其中
N=100
,
p(xi|θ)
为几率密度函数,表示抽到男生
xi
(的身高)的几率。因为100个样本之间独立同分布,因此我同时抽到这100个男生的几率就是他们各自几率的乘积,也就是样本集
X
中各个样本的联合几率,用下式表示:
这个几率反映了,在几率密度函数的参数是
θ
时,获得
X
这组样本的几率。 咱们须要找到一个参数
θ
,使得抽到
X
这组样本的几率最大,也就是说须要其对应的似然函数
L(θ)
最大。知足条件的
θ
叫作
θ
的最大似然估计量,记为
θ^=argmaxL(θ)
(3)求最大似然函数估计值的通常步骤
首先,写出似然函数:
而后,对似然函数取对数:
接着,对上式求导,令导数为0,获得似然方程;
最后,求解似然方程,获得的参数
θ
即为所求。
2.2 Jensen不等式 设
f
是定义域为实数的函数,若是对于全部的实数
x
,
f(x)
的二次导数大于等于0,那么
f
是凸函数。
Jensen不等式表述以下:若是
f
是凸函数,
X
是随机变量,那么:
E[f(X)]≥f(E[X])
。当且仅当
X
是常量时,上式取等号。其中,
E[x]
表示
x
的数学指望。
例如,图2中,实线
f
是凸函数,
X
是随机变量,有0.5的几率是
a
,有0.5的几率是
b
。
X
的指望值就是
a
和
b
的中值了,图中能够看到
E[f(X)]≥f(E[X])
成立。
注: 一、Jensen不等式应用于凹函数时,不等号方向反向。当且仅当
X
是常量时,Jensen不等式等号成立。
二、关于凸函数,百度百科中是这样解释的——“对于实数集上的凸函数,通常的判别方法是求它的二阶导数,若是其二阶导数在区间上非负,就称为凸函数(向下凸)”。关于函数的凹凸性,百度百科中是这样解释的——“中国数学界关于函数凹凸性定义和国外不少定义是反的。国内教材中的凹凸,是指曲线,而不是指函数,图像的凹凸与直观感觉一致,却与函数的凹凸性相反。只要记住“函数的凹凸性与曲线的凹凸性相反”就不会把概念搞乱了”。关于凹凸性这里,确实解释不统一,博主暂时以函数的二阶导数大于零定义凸函数,此处不会过多影响EM算法的理解,只要可以肯定什么时候
E[f(X)]≥f(E[X])
或者
E[f(X)]≤f(E[X])
就能够。