EM算法(Expectation Maximization Algorithm)详解

EM算法(Expectation Maximization Algorithm)详解

  • 主要内容
    • EM算法简介
    • 预备知识
      • 极大似然估计
      • Jensen不等式
    • EM算法详解
      • 问题描述
      • EM算法推导
      • EM算法流程
    • EM算法优缺点以及应用

一、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 = x 1 , x 2 , , x N ,其中 N = 100 p ( x i | θ ) 为几率密度函数,表示抽到男生 x i (的身高)的几率。因为100个样本之间独立同分布,因此我同时抽到这100个男生的几率就是他们各自几率的乘积,也就是样本集 X 中各个样本的联合几率,用下式表示:
这里写图片描述

  这个几率反映了,在几率密度函数的参数是 θ 时,获得 X 这组样本的几率。 咱们须要找到一个参数 θ ,使得抽到 X 这组样本的几率最大,也就是说须要其对应的似然函数 L ( θ ) 最大。知足条件的 θ 叫作 θ 的最大似然估计量,记为
θ ^ = a r g m a x L ( θ )

(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 ] ) 就能够。
这里写图片描述
图2

三、EM算法详解
3.1 问题描述
  咱们目前有100个男生和100个女生的身高,共200个数据,可是咱们不知道这200个数据中哪一个是男生的身高,哪一个是女生的身高。假设男生、女生的身高分别服从正态分布,则每一个样本是从哪一个分布抽取的,咱们目前是不知道的。这个时候,对于每个样本,就有两个方面须要猜想或者估计: 这个身高数据是来自于男生仍是来自于女生?男生、女生身高的正态分布的参数分别是多少?EM算法要解决的问题正是这两个问题。如图3:
算法

这里写图片描述
图3

3.2 EM算法推导
  样本集 X = { x 1 , , x m } ,包含 m 个独立的样本;每一个样本 x i 对应的类别 z i 是未知的(即上文中每一个样本属于哪一个分布是未知的);咱们须要估计几率模型 p ( x , z ) 的参数 θ ,即须要找到适合的 θ z L ( θ ) 最大。根据上文 2.1 极大似然估计中的似然函数取对数所得 l o g L ( θ ) ,能够获得以下式:
这里写图片描述

其中,(1)式是根据 x i 的边缘几率计算得来,(2)式是由(1)式分子分母同乘一个数获得,(3)式是由(2)式根据Jensen不等式获得。
  这里简单介绍一下(2)式到(3)式的转换过程:因为 Q i ( z ( i ) ) [ p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ] p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) 的指望,且 l o g ( x ) 为凹函数,根据Jensen不等式(当 f 是凸函数时, E [ f ( X ) ] f ( E [ X ] ) 成立;当 f 是凹函数时, E [ f ( X ) ] f ( E [ X ] ) 成立)可由(2)式获得(3)式。此处若想更加详细了解,能够参考博客 the EM algorithm
  上述过程能够看做是对 l o g L ( θ ) (即 L ( θ ) )求了下界。对于 Q i ( z ( i ) ) 的选择,有多种可能,那么哪一种更好呢?假设 θ 已经给定,那么 l o g L ( θ ) 的值就取决于 Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ) ] 了。咱们能够经过调整这两个几率使下界不断上升,以逼近 l o g L ( θ ) 的真实值,那么何时算是调整好了呢?当不等式变成等式时,说明咱们调整后的几率可以等价于 l o g L ( θ ) 了。按照这个思路,咱们要找到等式成立的条件。根据Jensen不等式,要想让等式成立,须要让随机变量变成常数值,这里获得:
p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) = c
c 为常数,不依赖于 z ( i ) 。对此式作进一步推导:因为 z ( i ) Q i ( z ( i ) ) = 1 ,则有 z ( i ) p ( x ( i ) , z ( i ) ; θ ) = c (多个等式分子分母相加不变,则认为每一个样例的两个几率比值都是 c ),所以获得下式:
这里写图片描述

  至此,咱们推出了在固定其余参数 θ 后, Q i ( z ( i ) ) 的计算公式就是后验几率,解决了 Q i ( z ( i ) ) 如何选择的问题。这一步就是E步,创建 l o g L ( θ ) 的下界。接下来的M步,就是在给定 Q i ( z ( i ) ) 后,调整 θ ,去极大化 l o g L ( θ ) 的下界(在固定 Q i ( z ( i ) ) 后,下界还能够调整的更大)。这里读者能够参考文章 EM算法
3.3 EM算法流程
  初始化分布参数 θ ; 重复E、M步骤直到收敛:
  E步骤:根据参数 θ 初始值或上一次迭代所得参数值来计算出隐性变量的后验几率(即隐性变量的指望),做为隐性变量的现估计值:
这里写图片描述

  M步骤:将似然函数最大化以得到新的参数值:
这里写图片描述

四、EM算法优缺点以及应用
  优势:简介中已有介绍,这里再也不赘述。
  缺点:对初始值敏感:EM算法须要初始化参数 θ ,而参数 θ 的选择直接影响收敛效率以及可否获得全局最优解。
  EM算法的应用:k-means算法是EM算法思想的体现,E步骤为聚类过程,M步骤为更新类簇中心。GMM(高斯混合模型)也是EM算法的一个应用,感兴趣的小伙伴能够查阅相关资料。网络