EM算法

本文深入探讨了EM算法在存在隐含变量时的学习方法,包括理论基础、算法表述及应用实例,如GMM模型参数学习。同时,阐述了EM算法的优缺点,并介绍了其在HMM模型参数学习中的应用。

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=<x1,...,xm>X=<x1,...,xm>代表观测到的变量,ZZ代表未观测到的变量,Y=XZ代表全部数据。
EM算法重复进行以下两个步骤,直至收敛。
估计(E)(E)步骤:使用当前的假设hh和观测数据X来估计YY的概率分布

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

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

hargmaxh Q(h|h)h←argmaxh′⁡ Q(h|h′)

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

将观测数据XX和上一次迭代得到的hh′代入上式, Q  Q 为已知观测 X  X 和当前假设hh′的前提下,关于变量 Z  Z 的对数似然函数的期望,当为离散随机变量时, Q  Q 如式22所示,当为连续随机变量时,只需将式2中求和变为求积分即可。
Q(h|h)=E[lnp(X,Z|h)|X,h]=Zlnp(X,Z|h)p(Z|X,h)(2)(2)Q(h|h′)=E[ln⁡p(X,Z|h)|X,h′]=∑Zln⁡p(X,Z|h)p(Z|X,h′)

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

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

利用Jensen不等式可以得到其下界
L(h)L(h)=lnZp(X|Z,h)p(Z|h)lnp(X|h)=lnZp(X|Z,h)p(X|Z,h)p(Z|h)p(X|Z,h)lnp(X|h)Zp(Z|X,h)lnp(X|Z,h)p(Z|h)p(X|Z,h)lnp(X|h)=Zp(Z|X,h)lnp(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)−ln⁡p(X|h′)(346)=ln∑Zp(X|Z,h′)p(X|Z,h)p(Z|h)p(X|Z,h′)−ln⁡p(X|h′)(347)≥∑Zp(Z|X,h′)ln⁡p(X|Z,h)p(Z|h)p(X|Z,h′)−ln⁡p(X|h′)(348)=∑Zp(Z|X,h′)ln⁡p(X|Z,h)p(Z|h)p(X|Z,h′)p(X|h′)

B(h,h)=L(h)+Zp(Z|X,h)lnp(X|Z,h)p(Z|h)p(X|Z,h)p(X|h)(4)(4)B(h,h′)=L(h′)+∑Zp(Z|X,h′)ln⁡p(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)的下界,且由式44可得B(h,h)=L(h).使L(h)L(h′)不断逼近L(h)L(h)极大值的hh′,也是B(h,h)B(h′,h′)不断逼近B(h,h)B(h,h′)极大值的hh′,所以式33的极大值问题转化为求B(h,h)的极大值问题。
hmax=argmaxh B(h,h)=argmaxh(L(h)+Zp(Z|X,h)lnp(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′)ln⁡p(X|Z,h)p(Z|h)p(X|Z,h′)p(X|h′))

去掉求解BB极大值无关的常数项,得:
(351)hmax=argmaxh(Zp(Z|X,h)lnp(X|Z,h)p(Z|h)p(X|Z,h)p(X|h))(352)=argmaxh Zp(Z|X,h)lnp(X|Z,h)p(Z|h)(353)=argmaxh Zp(Z|X,h)lnp(X,Z|h)(354)=argmaxh Q(h|h)

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

优缺点

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

EM算法应用

学习GMM模型

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

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

其中ϕ(x|θk)=12πσkexp((yμk)22σ2k)ϕ(x|θk)=12πσkexp(−(y−μk)22σk2)Kk=1αk=1∑k=1Kαk=1,模型参数为θ=(α1,...,αK,θ1,...,θK)θ=(α1,...,αK,θ1,...,θK).EM算法用于学习GMM模型中的参数θθ,这些参数构成了算法中的假设hh.可观测变量为X=(x1,...,xN).隐藏变量为Z=(z1,...,zN)TZ=(z1,...,zN)T,其中zn=(zn1,...,znK)(n(1,...,N))zn=(zn1,...,znK)(n∈(1,...,N)). znkznk为0-1指示变量,表示xnxn是否由分布ϕ(x|θk)ϕ(x|θk)产生,znzn中只有一个元素为1,则表示ynyn只能由KK个分布中的一个产生。完全变量为 Y=XZ 。注意体会EM算法中的隐藏变量和未知参数(即假设)的不同。
完全数据的似然函数为:
P(X,Z|θ)=n=1Np(xn,zn|θ)=n=1Np(xn,zn1,...,znk|θ)=n=1N((α1ϕ(yn|θ1))zn1...(αKϕ(yn|θK))znK)=n=1Nk=1K(αkϕ(yn|θk)znk=k=1Kαmkkn=1N(ϕ(yn|θk)znk=k=1Kαmkkn=1N(12πσkexp((yμk)22σ2k))znk(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

其中mk=Nn=1znkmk=∑n=1Nznk ,Kk=1mk=N∑k=1Kmk=N
完全数据的似然函数为:
lnP(X,Z|θ)=k=1Kmklnαk + k=1Kn=1Nznk(ln2πσk (yμk)22σ2k)(17)(17)ln⁡P(X,Z|θ)=∑k=1Kmkln⁡αk + ∑k=1K∑n=1Nznk(−ln⁡2πσk −(y−μk)22σk2)

EE步骤:确定Q函数
Q(θ|θ)=E(lnP(X,Z|θ)|X,θ)=E(k=1Kmklnαk + k=1Kn=1Nznk(ln2πσk (yμk)22σ2k))=k=1Kn=1N(E(znk)lnαk +E(znk)(ln2πσk (yμk)22σ2k))(18)(19)(5)(18)Q(θ|θ′)=E(ln⁡P(X,Z|θ)|X,θ′)(19)=E(∑k=1Kmkln⁡αk + ∑k=1K∑n=1Nznk(−ln⁡2πσk −(y−μk)22σk2))(5)=∑k=1K∑n=1N(E(znk)ln⁡αk +E(znk)(−ln⁡2πσk −(y−μk)22σk2))

其中需要求解隐藏变量的期望E(znk)E(znk)
E(znk)=E(znk|x,θ)=p(znk=1|x,θ)=p(znk=1,xn|θ)k=Kk=1p(znk=1,xn|θ)=p(xn|znk=1,θ)p(znk=1|θ)k=Kk=1p(xn|znk=1,θ)p(znk=1|θ)=αkϕ(xn|θk)k=Kk=1αkϕ(xn|θ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(znk)E(znk)表示xnxn由分布ϕ(x|θk)ϕ(x|θk)产生的概率,也称分模型ϕ(x|θk)ϕ(x|θk)对观测数据xnxn的响应度。将 E(znk)E(znk)代入式55可得Q函数。EE步骤使用上一次迭代生成θ来计算包含θθQQ函数。

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

θmax=argmaxθQ(θ|θ)θmax=argmaxθ⁡Q(θ|θ′)

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

σk=n=1NEznk(ynμ2)n=1NEznk,k=1,...,K(7)(7)σk=∑n=1NEznk(yn−μ)2∑n=1NEznk,k=1,...,K

αk=mkN=n=1NEznkN,k=1,...,K(8)(8)αk=mkN=∑n=1NEznkN,k=1,...,K

迭代终止条件:重复进行EE步骤和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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值