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 > X=<x1,...,xm> 代表观测到的变量,Z Z 代表未观测到的变量,Y = X ⋃ Z Y = X ⋃ Z 代表全部数据。
EM算法重复进行以下两个步骤,直至收敛。
估计( E ) (E) 步骤 :使用当前的假设h h 和观测数据X X 来估计Y Y 的概率分布
Q ( h | h ′ ) ← E [ ln p ( Y | h ′ ) | h , X ] Q ( h | h ′ ) ← E [ ln p ( Y | h ′ ) | h , X ]
最大化( M ) (M) 步骤 :将假设替换为使
Q Q 函数最大化的假设
h ′ h′
h ← a r g m a x h ′ Q ( h | h ′ ) h←argmaxh′ Q(h|h′)
其中,
Q Q 函数的表述为式
1 1
Q ( h | h ′ ) = E [ ln p ( Y | h ) | X , h ′ ] = E [ ln p ( X , Z | h ) | X , h ′ ] (1) (1)Q(h|h′)=E[lnp(Y|h)|X,h′]=E[lnp(X,Z|h)|X,h′]
将观测数据
X X 和上一次迭代得到的
h ′ h′ 代入上式,
Q Q 为已知观测
X X 和当前假设
h ′ h′ 的前提下,关于变量
Z Z 的对数似然函数的期望,当为离散随机变量时,
Q Q 如式
2 2 所示,当为连续随机变量时,只需将式
2 2 中求和变为求积分即可。
Q ( h | h ′ ) = E [ ln p ( X , Z | h ) | X , h ′ ] = ∑ Z ln p ( X , Z | h ) p ( Z | X , h ′ ) (2) (2)Q(h|h′)=E[lnp(X,Z|h)|X,h′]=∑Zlnp(X,Z|h)p(Z|X,h′)
注意
h ′ h′ 用来求隐藏变量
Z Z 的条件分布。
Why EM算法
优化的目标是使观测数据
X X (不完整数据)的对数似然函数
ln p ( X | h ) lnp(X|h) 最大,该方法为极大似然法。但是在含有隐含变量
Z Z 的模型中,直接使用极大似然方法的解析解不易求出,如下阐述,需要借助EM算法逐步迭代求得的
h ′ h′ 来使
ln p ( X | h ′ ) lnp(X|h′) 不断逼近极大值。
ln p ( X | h ) = ln ∑ Z p ( X , Z | h ) 或 ln p ( X | h ) = ln ∫ Z p ( X , Z | h ) d z (3) (3)lnp(X|h)=ln∑Zp(X,Z|h) 或 lnp(X|h)=ln∫Zp(X,Z|h)dz
式
3 3 的解析解之所以难求解是因为对数中含有加或积分运算,然而我们可以使用其他方法(如迭代逼近)近似求解式
3 3 的极大值。以离散型随机变量为例,令
L ( h ) = ln p ( X | h ) = ln ∑ Z p ( X , Z | h ) = ln ∑ Z p ( X | Z , h ) p ( Z | h ) L(h)=lnp(X|h)=ln∑Zp(X,Z|h)=ln∑Zp(X|Z,h)p(Z|h) ,则
L ( h ) − L ( h ′ ) = ln ∑ Z p ( X | Z , h ) p ( Z | h ) − ln p ( X | h ′ ) L(h)−L(h′)=ln∑Zp(X|Z,h)p(Z|h)−lnp(X|h′)
利用Jensen不等式可以得到其下界
L ( h ) − L ( h ′ ) = ln ∑ Z p ( X | Z , h ) p ( Z | h ) − ln p ( X | h ′ ) = ln ∑ Z p ( X | Z , h ′ ) p ( X | Z , h ) p ( Z | h ) p ( X | Z , h ′ ) − ln p ( X | h ′ ) ≥ ∑ Z p ( Z | X , h ′ ) ln p ( X | Z , h ) p ( Z | h ) p ( X | Z , h ′ ) − ln p ( X | h ′ ) = ∑ Z p ( Z | X , h ′ ) ln p ( X | Z , h ) p ( Z | h ) p ( X | Z , h ′ ) p ( X | h ′ ) (345) (346) (347) (348) (345)L(h)−L(h′)=ln∑Zp(X|Z,h)p(Z|h)−lnp(X|h′)(346)=ln∑Zp(X|Z,h′)p(X|Z,h)p(Z|h)p(X|Z,h′)−lnp(X|h′)(347)≥∑Zp(Z|X,h′)lnp(X|Z,h)p(Z|h)p(X|Z,h′)−lnp(X|h′)(348)=∑Zp(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 ′ ) ln p ( X | Z , h ) p ( Z | h ) p ( X | Z , h ′ ) p ( X | h ′ ) (4) (4)B(h,h′)=L(h′)+∑Zp(Z|X,h′)lnp(X|Z,h)p(Z|h)p(X|Z,h′)p(X|h′) 则
L ( h ) ≥ B ( h , h ′ ) L(h)≥B(h,h′)
B ( h , h ′ ) B(h,h′) 是
L ( h ) L(h) 的下界,且由式
4 4 可得
B ( h ′ , h ′ ) = L ( h ′ ) B ( h ′ , h ′ ) = L ( h ′ ) .使
L ( h ′ ) L(h′) 不断逼近
L ( h ) L(h) 极大值的
h ′ h′ ,也是
B ( h ′ , h ′ ) B(h′,h′) 不断逼近
B ( h , h ′ ) B(h,h′) 极大值的
h ′ h′ ,所以式
3 3 的极大值问题转化为求
B ( h , h ′ ) B ( h , h ′ ) 的极大值问题。
h m a x = a r g m a x h B ( h , h ′ ) = a r g m a x h ( L ( h ′ ) + ∑ Z p ( Z | X , h ′ ) ln p ( X | Z , h ) p ( Z | h ) p ( X | Z , h ′ ) p ( X | h ′ ) ) (349) (350) (349)hmax=argmaxh B(h,h′)(350)=argmaxh(L(h′)+∑Zp(Z|X,h′)lnp(X|Z,h)p(Z|h)p(X|Z,h′)p(X|h′))
去掉求解
B B 极大值无关的常数项,得:
h m a x = a r g m a x h ( ∑ Z p ( Z | X , h ′ ) ln p ( X | Z , h ) p ( Z | h ) p ( X | Z , h ′ ) p ( X | h ′ ) ) = a r g m a x h ∑ Z p ( Z | X , h ′ ) ln p ( X | Z , h ) p ( Z | h ) = a r g m a x h ∑ Z p ( Z | X , h ′ ) ln p ( X , Z | h ) = a r g m a x h Q ( h | h ′ ) (351) (352) (353) (354) (351) h m a x = a r g m a x h ( ∑ Z p ( Z | X , h ′ ) ln p ( X | Z , h ) p ( Z | h ) p ( X | Z , h ′ ) p ( X | h ′ ) ) (352) = a r g m a x h ∑ Z p ( Z | X , h ′ ) ln p ( X | Z , h ) p ( Z | h ) (353) = a r g m a x h ∑ Z p ( Z | X , h ′ ) ln p ( X , Z | h ) (354) = a r g m a x h Q ( h | h ′ )
至此,推导了由关于观测(不完整)数据
X X 极大似然法到关于完整数据
Y Y 的期望最大EM法的过程。
优缺点
EM算法每次迭代都使得可能概率增加,具有单调性。
EM算法应用
学习GMM模型
GMM模型 的概率分布由K K 个服从ϕ ( x | θ k ) ( k ∈ ( 1 , . . . , K ) ) ϕ ( x | θ k ) ( k ∈ ( 1 , . . . , K ) ) 分布的模型按权重a k ak 线性叠加构成,即:
P ( x | θ ) = ∑ k = 1 K α k ϕ ( x | θ k ) P(x|θ)=∑k=1Kαkϕ(x|θk)
其中
ϕ ( x | θ k ) = 1 2 π √ σ k e x p ( − ( y − μ k ) 2 2 σ 2 k ) ϕ(x|θk)=12πσkexp(−(y−μk)22σk2) ,
∑ K k = 1 α k = 1 ∑k=1Kαk=1 ,模型参数为
θ = ( α 1 , . . . , α K , θ 1 , . . . , θ K ) θ=(α1,...,αK,θ1,...,θK) .EM算法用于学习GMM模型中的参数
θ θ ,这些参数构成了算法中的假设
h h .可观测变量为
X = ( x 1 , . . . , x N ) X = ( x 1 , . . . , x N ) .隐藏变量为
Z = ( z 1 , . . . , z N ) T Z=(z1,...,zN)T ,其中
z n = ( z n 1 , . . . , z n K ) ( n ∈ ( 1 , . . . , N ) ) zn=(zn1,...,znK)(n∈(1,...,N)) .
z n k znk 为0-1指示变量,表示
x n xn 是否由分布
ϕ ( x | θ k ) ϕ(x|θk) 产生,
z n zn 中只有一个元素为1,则表示
y n yn 只能由
K K 个分布中的一个产生。完全变量为
Y = X ⋃ Z Y = X ⋃ Z 。注意体会EM算法中的隐藏变量和未知参数(即假设)的不同。
完全数据的似然函数为:
P ( X , Z | θ ) = ∏ n = 1 N p ( x n , z n | θ ) = ∏ n = 1 N p ( x n , z n 1 , . . . , z n k | θ ) = ∏ n = 1 N ( ( α 1 ϕ ( y n | θ 1 ) ) z n 1 ∗ . . . ∗ ( α K ϕ ( y n | θ K ) ) z n K ) = ∏ n = 1 N ∏ k = 1 K ( α k ϕ ( y n | θ k ) z n k = ∏ k = 1 K α m k k ∏ n = 1 N ( ϕ ( y n | θ k ) z n k = ∏ k = 1 K α m k k ∏ n = 1 N ( 1 2 π ‾ ‾ ‾ √ σ k e x p ( − ( y − μ k ) 2 2 σ 2 k ) ) z n k (11) (12) (13) (14) (15) (16) (11)P(X,Z|θ)=∏n=1Np(xn,zn|θ)(12)=∏n=1Np(xn,zn1,...,znk|θ)(13)=∏n=1N((α1ϕ(yn|θ1))zn1∗...∗(αKϕ(yn|θK))znK)(14)=∏n=1N∏k=1K(αkϕ(yn|θk)znk(15)=∏k=1Kαkmk∏n=1N(ϕ(yn|θk)znk(16)=∏k=1Kαkmk∏n=1N(12πσkexp(−(y−μk)22σk2))znk
其中
m k = ∑ N n = 1 z n k mk=∑n=1Nznk ,
∑ K k = 1 m k = N ∑k=1Kmk=N
完全数据的似然函数为:
ln P ( X , Z | θ ) = ∑ k = 1 K m k ln α k + ∑ k = 1 K ∑ n = 1 N z n k ( − ln 2 π ‾ ‾ ‾ √ σ k − ( y − μ k ) 2 2 σ 2 k ) (17) (17)lnP(X,Z|θ)=∑k=1Kmklnαk + ∑k=1K∑n=1Nznk(−ln2πσk −(y−μk)22σk2)
E E 步骤:确定
Q Q 函数
Q ( θ | θ ′ ) = E ( ln P ( X , Z | θ ) | X , θ ′ ) = E ( ∑ k = 1 K m k ln α k + ∑ k = 1 K ∑ n = 1 N z n k ( − ln 2 π ‾ ‾ ‾ √ σ k − ( y − μ k ) 2 2 σ 2 k ) ) = ∑ k = 1 K ∑ n = 1 N ( E ( z n k ) ln α k + E ( z n k ) ( − ln 2 π ‾ ‾ ‾ √ σ k − ( y − μ k ) 2 2 σ 2 k ) ) (18) (19) (5) (18)Q(θ|θ′)=E(lnP(X,Z|θ)|X,θ′)(19)=E(∑k=1Kmklnαk + ∑k=1K∑n=1Nznk(−ln2πσk −(y−μk)22σk2))(5)=∑k=1K∑n=1N(E(znk)lnαk +E(znk)(−ln2πσk −(y−μk)22σk2))
其中需要求解隐藏变量的期望
E ( z n k ) E(znk)
E ( z n k ) = E ( z n k | x , θ ′ ) = p ( z n k = 1 | x , θ ′ ) = p ( z n k = 1 , x n | θ ′ ) ∑ k = K k = 1 p ( z n k = 1 , x n | θ ′ ) = p ( x n | z n k = 1 , θ ′ ) p ( z n k = 1 | θ ′ ) ∑ k = K k = 1 p ( x n | z n k = 1 , θ ′ ) p ( z n k = 1 | θ ′ ) = α ′ k ϕ ( x n | θ ′ k ) ∑ k = K k = 1 α ′ k ϕ ( x n | θ ′ k ) (20) (21) (22) (23) (24) (20)E(znk)=E(znk|x,θ′)(21)=p(znk=1|x,θ′)(22)=p(znk=1,xn|θ′)∑k=1k=Kp(znk=1,xn|θ′)(23)=p(xn|znk=1,θ′)p(znk=1|θ′)∑k=1k=Kp(xn|znk=1,θ′)p(znk=1|θ′)(24)=αk′ϕ(xn|θk′)∑k=1k=Kαk′ϕ(xn|θk′)
E ( z n k ) E(znk) 表示
x n xn 由分布
ϕ ( x | θ k ) ϕ(x|θk) 产生的概率,也称分模型
ϕ ( x | θ k ) ϕ(x|θk) 对观测数据
x n xn 的响应度。将
E ( z n k ) E(znk) 代入式
5 5 可得
Q Q 函数。
E E 步骤使用上一次迭代生成
θ ′ θ ′ 来计算包含
θ θ 的
Q Q 函数。
M M 步骤 :求解Q ( θ | θ ′ ) Q(θ|θ′) 取得极大值的θ θ
θ m a x = a r g m a x θ Q ( θ | θ ′ ) θmax=argmaxθQ(θ|θ′)
θ = { α k , μ k , σ k | k ∈ [ 1 , . . , K ] } θ={αk,μk,σk|k∈[1,..,K]} ,故求解
Q ( θ | θ ′ ) Q(θ|θ′) 极大值点的
θ θ ,即将式
5 5 分别对
α k , μ k , σ k α k , μ k , σ k 求偏导,并令这些偏导数等于
0 0 ,便可得到:
μ k = ∑ n = 1 N E z n k x n ∑ n = 1 N E z n k , k = 1 , . . . , K (6) (6) μ k = ∑ n = 1 N E z n k x n ∑ n = 1 N E z n k , k = 1 , . . . , K
σ k = ∑ n = 1 N E z n k ( y n − μ 2 ) ∑ n = 1 N E z n k , k = 1 , . . . , K (7) (7)σk=∑n=1NEznk(yn−μ)2∑n=1NEznk,k=1,...,K
α k = m k N = ∑ n = 1 N E z n k N , k = 1 , . . . , K (8) (8)αk=mkN=∑n=1NEznkN,k=1,...,K
迭代终止条件 :重复进行
E E 步骤和
M M 步骤,直到参数或似然函数不再变化或变化足够小。
EM算法还用于HMM模型参数的非监督学习中,即仅知模型的观测序列O,隐含变量序列I未知,学习模型参数。
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