EM算法

EM算法

本文描述的EM算法(Expectation Maximization Algorithm),是存在隐含变量时常用的一种学习方法。EM算法可用于变量的值从来没被直接观察到,但这些变量所遵循的分布的一般形式已知的情形。EM算法被用于训练贝叶斯网络、径向基函数网络,也是许多非监督聚类算法、学习部分可观察马尔科夫模型的广泛使用的Baum-Welch前向后向算法的基础。
同类的其他优化算法有:梯度下降、线搜索和共轭梯度。它们共同的局限性是可能收敛到局部最小点。

理论

定义
An elegant and powerful method for finding maximum likelihood solutions for models with latent variables is called the expectation-maximization algorithm, or EM algorithm (Dempster et al., 1977; McLachlan and Krishnan, 1997).
EM算法是在隐含变量中寻找最大似然估计的一种方法。
对存在多个极小值的解,对不同的初始条件,可能收敛到不同的局部最小点。可以通过采用不同的初始化值来解决。

EM算法的一般表述
X=<x 1 ,...,x m >  代表观测到的变量, Z  代表未观测到的变量, Y=XZ  代表全部数据。
EM算法重复进行以下两个步骤,直至收敛。
估计 (E)  步骤:使用当前的假设 h  和观测数据 X  来估计 Y  的概率分布

Q(h|h  )E[lnp(Y|h  )|h,X] 

最大化 (M)  步骤:将假设替换为使  Q   函数最大化的假设 h   
hargmax h    Q(h|h  ) 

其中,  Q   函数的表述为式 1 
Q(h|h  )=E[lnp(Y|h)|X,h  ]=E[lnp(X,Z|h)|X,h  ] (1) 

将观测数据 X  和上一次迭代得到的 h    代入上式,  Q   为对数似然函数的期望,变为关于  Z   的随机变量,当为离散随机变量时,  Q   如式 2  所示,当为连续随机变量时,只需将式 2  中求和变为求积分即可。
Q(h|h  )=E[lnp(X,Z|h)|X,h  ]= Z lnp(X,Z|h)p(Z|X,h  ) (2) 

注意 h    用来求隐藏变量 Z  的条件分布。
Why EM算法
优化的目标是使观测数据 X  (不完整数据)的对数似然函数  lnp(X|h)  最大,该方法为极大似然法。但是在含有隐含变量  Z   的模型中,极大似然方法不易实现,如下阐述,需要借助EM算法逐步迭代求得的  h     来使  lnp(X|h  )  不断逼近极大值。
lnp(X|h)=ln Z p(X,Z|h)  lnp(X|h)=ln Z p(X,Z|h)dz (3) 

3  的解析解之所以难求解是因为对数中含有加或积分运算,然而我们可以使用其他方法(如迭代逼近)近似求解式 3  的极大值。以离散型随机变量为例,令 L(h)=lnp(X|h)=ln Z p(X,Z|h)=ln Z p(X|Z,h)p(Z|h)  ,则
L(h)L(h  )=ln Z p(X|Z,h)p(Z|h)lnp(X|h  ) 

利用Jensen不等式可以得到其下界
L(h)L(h  ) =ln Z p(X|Z,h)p(Z|h)lnp(X|h  )=ln Z p(X|Z,h  )p(X|Z,h)p(Z|h)p(X|Z,h  ) lnp(X|h  ) Z p(Z|X,h  )lnp(X|Z,h)p(Z|h)p(X|Z,h  ) lnp(X|h  )= Z p(Z|X,h  )lnp(X|Z,h)p(Z|h)p(X|Z,h  )p(X|h  )   

B(h,h  )=L(h  )+ Z p(Z|X,h  )lnp(X|Z,h)p(Z|h)p(X|Z,h  )p(X|h  )  (4) 
L(h)B(h,h  ) 

B(h,h  )  L(h)  的下界,且由式 4  可得 B(h  ,h  )=L(h  )  .使 L(h  )  不断逼近 L(h)  极大值的 h    ,也是 B(h  ,h  )  不断逼近 B(h,h  )  极大值的 h    ,所以式 3  的极大值问题转化为求 B(h,h  )  的极大值问题。
h max  =argmax h  B(h,h  )=argmax h (L(h  )+ Z p(Z|X,h  )lnp(X|Z,h)p(Z|h)p(X|Z,h  )p(X|h  ) )  

去掉求解 B  极大值无关的常数项,得:
h max  =argmax h ( Z p(Z|X,h  )lnp(X|Z,h)p(Z|h)p(X|Z,h  )p(X|h  ) )=argmax h   Z p(Z|X,h  )lnp(X|Z,h)p(Z|h)=argmax h   Z p(Z|X,h  )lnp(X,Z|h)=argmax h  Q(h|h  )  

至此,推导了由关于观测(不完整)数据 X  极大似然法到关于完整数据 Y  的期望最大EM法的过程。

优缺点

EM算法每次迭代都使得可能概率增加,具有单调性。

EM算法应用

学习GMM模型

GMM模型的概率分布由 K  个服从 ϕ(x|θ k )(k(1,...,K))  分布的模型按权重 a k   线性叠加构成,即:

P(x|θ)= k=1 K α k ϕ(x|θ k ) 

其中 ϕ(x|θ k )=12π   σ k  exp((yμ k ) 2 2σ 2 k  )   K k=1 α k =1  ,模型参数为 θ=(α 1 ,...,α K ,θ 1 ,...,θ K )  .EM算法用于学习GMM模型中的参数 θ  ,这些参数构成了算法中的假设 h  .可观测变量为 X=(x 1 ,...,x N )  .隐藏变量为 Z=(z 1 ,...,z N ) T   ,其中 z n =(z n1 ,...,z nK )(n(1,...,N))  . z nk   为0-1指示变量,表示 x n   是否由分布 ϕ(x|θ k )  产生, z n   中只有一个元素为1,则表示 y n   只能由 K  个分布中的一个产生。完全变量为  Y=XZ   。注意体会EM算法中的隐藏变量和未知参数(即假设)的不同。
完全数据的似然函数为:
P(X,Z|θ) = n=1 N p(x n ,z n |θ)= n=1 N p(x n ,z n1 ,...,z nk |θ)= n=1 N ((α 1 ϕ(y n |θ 1 )) z n1  ...(α K ϕ(y n |θ K )) z nK  )= n=1 N  k=1 K (α k ϕ(y n |θ k ) z nk  = k=1 K α m k  k  n=1 N (ϕ(y n |θ k ) z nk  = k=1 K α m k  k  n=1 N (12π − −   σ k  exp((yμ k ) 2 2σ 2 k  )) z nk    

其中 m k = N n=1 z nk   ,  K k=1 m k =N 
完全数据的似然函数为:
lnP(X,Z|θ) = k=1 K m k lnα k  +  k=1 K  n=1 N z nk (ln2π − −   σ k  (yμ k ) 2 2σ 2 k  )  

E  步骤:确定 Q  函数
Q(θ|θ  ) =E(lnP(X,Z|θ)|X,θ  )=E( k=1 K m k lnα k  +  k=1 K  n=1 N z nk (ln2π − −   σ k  (yμ k ) 2 2σ 2 k  ))= k=1 K  n=1 N (E(z nk )lnα k  +E(z nk )(ln2π − −   σ k  (yμ k ) 2 2σ 2 k  )) (5) 

其中需要求解隐藏变量的期望 E(z nk ) 
E(z nk ) =E(z nk |x,θ  )=p(z nk =1|x,θ  )=p(z nk =1,x n |θ  ) k=K k=1 p(z nk =1,x n |θ  ) =p(x n |z nk =1,θ  )p(z nk =1|θ  ) k=K k=1 p(x n |z nk =1,θ  )p(z nk =1|θ  ) =α  k ϕ(x n |θ  k ) k=K k=1 α  k ϕ(x n |θ  k )   

E(z nk )  表示 x n   由分布 ϕ(x|θ k )  产生的概率,也称分模型 ϕ(x|θ k )  对观测数据 x n   的响应度。将 E(z nk )  代入式 5  可得 Q  函数。 E  步骤使用上一次迭代生成 θ    来计算包含 θ  Q  函数。

M  步骤:求解 Q(θ|θ  )  取得极大值的 θ 

θ max =argmax θ Q(θ|θ  ) 

θ={α k ,μ k ,σ k |k[1,..,K]}  ,故求解 Q(θ|θ  )  极大值点的 θ  ,即将式 5  分别对 α k ,μ k ,σ k   求偏导,并令这些偏导数等于 0  ,便可得到:
μ k = n=1 N Ez nk x n  n=1 N Ez nk  ,k=1,...,K (6) 

σ k = n=1 N Ez nk (y n μ 2 )  n=1 N Ez nk  ,k=1,...,K (7) 

α k =m k N = n=1 N Ez nk N ,k=1,...,K (8) 

迭代终止条件:重复进行 E  步骤和 M  步骤,直到参数或似然函数不再变化或变化足够小。

EM算法变种

GEM
推⼴EM算法(generalized EM algorithm,GEM)。⼀种使⽤GEM的⽅法是在M步骤中使⽤某种⾮线性最优化策略,例如共轭梯度算法。另⼀种形式的GEM算法,被称为期望条件最⼤化算法(expectation conditional maximization algorithm),或者简称ECM算法,涉及到在每个M步骤中进⾏若⼲了具有限制条件的最优化(Meng and Rubin, 1993)。

相关算法

极大后验(Maximum A Posteriori,MAP)、极大似然(Maximum Likelihood,ML)、MM(Maximum-Maximum)
变分推断的⽅法,可以得到⼀个优雅的贝叶斯处理⽅
式。与EM相⽐,这种⽅法⼏乎不需要额外的计算量,并且它解决了最⼤似然⽅法中的主要困
难,也使得混合模型的分量的数量可以⾃动从数据中推断。

参考文献

1.Tom M.Mitchell《机器学习》中文版
2.李航 《统计学习方法》2012

你可能感兴趣的:(算法)