本文介绍EM算法的相关推导过程,同时会介绍混合高斯模型。
1.EM算法
1.1 EM算法的推导
观测数据(不完全数据)X关于参数
θ
的对数似然函数为:
L(θ)=logP(x|θ)=log∑zP(x,z|θ)=log∑z[q(z)P(x,z|θ)q(z)]≥∑zq(z)logP(x,z|θ)q(z)=∑zq(z)logP(x,z|θ)+∑zq(z)logq(z)
另一方面:
L(θ)=logP(x|θ)=∑zq(z)logP(x|θ)=∑zq(z)logP(x,z|θ)P(z|x,θ)=∑zq(z)logP(x,z|θ)q(z)p(z|x,θ)q(z)=∑zq(z)logP(x,z|θ)+∑zlogq(z)p(z|x,θ)+∑zq(z)logq(z)=∑zq(z)logP(x,z|θ)+KL(q(z)||p(z|x,θ))+∑zq(z)logq(z)
令:
B(θ,q(z))=∑zq(z)logP(x,z|θ)+∑zq(z)logq(z)
根据(公式1):
L(θ)−B(θ,q(z))=KL(q(z)||p(z|x,θ))
由上式可知, B(θ,q(z)) 是 L(θ) 的一个下界。二者的差值即为概率分布 q(z) 与 p(z|x,θ) 的KL距离。
当 θ 固定时, L(θ) 的值确定。但是随着 q(z) 的变化, B(θ,q(z)) 的值会不断变化。接下来要做的是调整 q(z) 的分布,使 B(θ,q(z)) 的值尽可能的靠近 L(θ) 的值,即尽可能的提高 L(θ) 的下界。
根据KL距离的定义,当
q(z)=p(z|x,θ)
时,
KL(q(z)||p(z|x,θ))=0
,有下式成立:
L(θ)=B(θ)
EM算法:
E步:
在时刻t的参数 θt 固定的情况下,求能使 B(θt,q(z);x) 达到最大的下界的期望值:
qt(z)=argmaxq(z)B(θt,q(z);x)=p(z|x,θt)
M步:
在 qt(z) 固定的情况下,求使 B(θt,q(z);x) 取得极大值的新的 θt+1 ,由于 B(θt,q(z);x) 的第二项与 θ 无关,因此只需要求使第一项达到最大值的 θt+1 即可。
θt+1=argmaxθEqt(z)P(x,z|θ)=argmaxθ∑zqt(z)logP(x,z|θ)
1.2 EM算法的收敛性
假定
θt
和
θt+1
是第t次和t+1次迭代后的结果,求证:
L(θt+1)≥L(θt)
证明:
(1)在选定 θt 后,由E步 qt(z)=p(z,x|θt) ,则:
L(θt)=Eqt(z)P(x,z|θt)+H(qt(z))=∑zqt(z)logP(x,z|θt)+∑zqt(z)logqt(z)
(2)在经过M步的推导得到 θt+1 后:
L(θt+1)≥∑zqt(z)logP(x,z|θt+1)+∑zqt(z)logqt(z)
(3)根据M步的定义,将 θt 调整到 θt+1 后,使下界最大化:
Eqt(z)P(x,z|θt+1)≥Eqt(z)P(x,z|θt)
(4)综合上述三个公式可得:
L(θt+1)≥L(θt)
也就是说,经过一次次的迭代,EM算法总会收敛到一个局部最大值(但不一定能收敛到全局最大值)。
2.混合高斯模型(GMM)
假设数据{
x1,x2,……,xn
}由混合高斯模型生成:
P(x,θ)=∑k=1Kθzϕ(x|θx)=∑k=1KπkN(μk,σk)
其中\theta_z由两部分组成:
θz={π1,π2,……,πk}
θx={μ1,μ2,……,μk;σ1,σ2,……,σk}
定义:
Z=⎡⎣⎢⎢⎢⎢z1z2…zn⎤⎦⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢10…001…000…0…………00…1⎤⎦⎥⎥⎥⎥
其中:
Znk={10第n个观察值来自第k个模型否则
有了观测数据
xn
及未观测数据
znk
,那么完全数据是:
(xn,zn1,zn2,…,znk),n=1,2,3,…N
所以,完全数据的似然函数为:
p(x,z|θ)=P(x1,x2,…,xn,z1,z2,…,zn|θ)=∏n=1NP(xn,zn1,zn2,…,znk|θ)=∏n=1NP(zn|θz)∏n=1NP(xn|zn,θx)=∏n=1N∏k=1KN(μk,σk)Znk∏n=1N∏k=1KπZnkk
对数似然函数为:
L(θ)=logP(x,z|θ)=∑n=1N∑k=1KZnk[logN(μk,σk)+logπk]