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=X⋃Z 代表全部数据。
EM算法重复进行以下两个步骤,直至收敛。
估计 (E) 步骤:使用当前的假设 h 和观测数据 X 来估计 Y 的概率分布
Q(h|h ′ )←E[lnp(Y|h ′ )|h,X]
最大化 (M) 步骤:将假设替换为使
Q 函数最大化的假设
h ′
h←argmax 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=X⋃Z 。注意体会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