[关闭]
@haoqiang 2018-01-12T05:07:44.000000Z 字数 3735 阅读 64

EM算法

机器学习


我们经常会从样本观察数据中,找出样本的模型参数。 最常用的方法就是极大化模型分布的对数似然函数。但是在一些情况下,观察数据中有未观察到的隐含数据,因而无法直接用极大化对数似然函数得到模型分布的参数。EM算法也称期望最大化算法(Expectation-Maximum, EM)。


1. 何时使用EM

(1) 观测数据条件下的似然函数难以求得 L(θ|X)=P(X|θ)
(2) 完全数据条件下的似然函数容易求得 L(θ|Y)=P(Y|θ)
(3) 观测数据条件下的隐变量容易求得 P(Z|X,θ)


2. EM算法

(1) 初始化θ(0)
(2) E步:记θ(i)为第i次迭代参数θ的估计值,在第i+1次迭代E步,计算

Q(θ,θ(i))=EZ(logP(X,Z|θ)|X,θ(i))=zP(Z|X,θ(i))logP(X,Z|θ)

(3) M步:求使Q(θ,θ(i))极大化的θ,确定第i+1次迭代的参数的估计值θ(i+1)

θ(i+1)=argmaxθ(Q(θ,θ(i)))

(4) 重复第(2)(3)步,直到收敛。


3. EM算法的推导

目标是极大化观测数据X关于参数θ的对数似然,即最大化

L(θ|X)=logP(X|θ)=logzP(X,Z|θ)=log(zP(X|Z,θ)P(Z|θ))

EM算法通过迭代逐步近似极大化L(θ)。假设我们在第i次迭代后θ的估计值是θ(i),我们希望下一次的估计值能够使得L(θ)增加,即L(θ)>L(θ(i))。考虑两者作差:

L(θ)L(θ(i))=log(ZP(X|Z,θ)P(Z|θ))logP(X|θ(i))=log[zP(Z|X,θ(i))P(X|Z,θ)P(Z|θ)P(Z|X,θ(i))]logP(X|θ(i))zP(Z|X,θ(i))logP(X|Z,θ)P(Z|θ)P(Z|X,θ(i))logP(X|θ(i))=zP(Z|X,θ(i))logP(X|Z,θ)P(Z|θ)P(Z|X,θ(i))zP(Z|X,θ(i))logP(X|θ(i))=zP(Z|X,θ(i))logP(X|Z,θ)P(Z|θ)P(Z|X,θ(i))P(X|θ(i))

中间一步用到了Jenson不等式:对于一个凸函数,有

iλif(xi)f(iλixi)λi0,iλi=1

换一种写法,就是

E(f(x))f(E(x))

由于L(θ)L(θ(i))是凹函数,所以f(E(x))E(f(x))


B(θ,θ(i))=L(θ(i))+zP(Z|X,θ(i))logP(X|Z,θ)P(Z|θ)P(Z|X,θ(i))P(X|θ(i))

所以

L(θ)B(θ,θ(i))

B(θ,θ(i))L(θ)的一个下界。因此能使B(θ,θ(i))增大的θ也可以使L(θ)增大。选择θ(i+1)使B(θ,θ(i))达到极大:

θ(i+1)  =argmaxθB(θ,θ(i))=argmaxθ[L(θ(i))+zP(Z|X,θ(i))logP(X|Z,θ)P(Z|θ)P(Z|X,θ(i))P(X|θ(i))]=argmaxθ[zP(Z|X,θ(i))log(P(X|Z,θ)P(Z|θ))]=argmaxθ[zP(Z|X,θ(i))logP(X,Z|θ)]=argmaxθ[EZ(logP(X,Z|θ)|X,θ(i))]=argmaxθ(Q(θ,θ(i)))

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注