EM算法的引入
我们面对一个含有隐变量的概率模型,目标是极大化观测数据
Y关于参数
θ的对数似然函数,即极大化
L(θ)=log(P(Y∣θ))=logZ∑P(Y,Z∣θ)=log(Z∑P(Y∣Z,θ)P(Z∣θ))这一极大化问题的主要困难是包含了未观测数据
Z并有包含和的对数。假设在第
i次迭代后
θ的估计值是
θi,考虑
L(θ)−L(θi)=log(Z∑P(Y∣Z,θ)P(Z∣θ))−logP(Y∣θi)利用Jensen不等式求其下界:
L(θ)−L(θi)≥Z∑P(Z∣Y,θi)logP(Z∣Y,θi)P(Y∣θi)P(Y∣Z,θ)P(Z∣θ)令
B(θ,θi)=L(θi)+Z∑P(Z∣Y,θi)logP(Z∣Y,θi)P(Y∣θi)P(Y∣Z,θ)P(Z∣θ)则
L(θ)≥B(θ,θi)即函数
B(θ,θi)是
L(θ)的一个下界。因此任何可以使
B(θ,θi)增大的
θ,也可以使
L(θ)增大。为了使
L(θ)有尽可能大的增长,选择
θi+1使
B(θ,θi)达到极大,即
θi+1=argθmaxB(θ,θi)有
θi+1=argθmaxZ∑P(Z∣Y,θi)logP(Y,Z∣θ)令
Q(θ,θi)=Z∑P(Z∣Y,θi)logP(Y,Z∣θ)得
θi+1=argθmaxQ(θ,θi)上式等价于EM算法的一次迭代,即求Q函数及其极大化。EM算法时通过不断求解下界的极大化逼近求解对数似然函数极大化的算法。具体地,其算法可表述如下:
(1)选择参数的初值
θ0,开始迭代;
(2)E步:计算
Q(θ,θi)=Z∑P(Z∣Y,θi)logP(Y,Z∣θ),这里
P(Z∣Y,θi)是在给定观测数据Y和当前的参数估计
θi下隐变量数据Z的条件概率分布。
(3)M步:求使
Q(θ,θi)极大化的
θi+1
(4)重复第(2)步和第(3)步,直到收敛。
EM算法不仅能用于监督学习,还可用于非监督学习。
高斯混合模型参数估计的EM算法
高斯混合模型是指具有如下形式的概率分布模型:
P(y∣θ)=k=1∑Kαkϕ(y∣θk)其中,
αk是系数,
αk≥0,
k=1∑Kαk=1。
ϕ(y∣θk)是高斯分布密度,
θk=(μk,σk)
ϕ(y∣θk)=2π
σk1exp(−2σk2(y−μk)2)(1)明确隐变量,写出完全数据的对数似然函数
可以设想观测数据是这样产生的:首先依概率
αk选择第k个高斯分布模型
ϕ(y∣θk),然后依第k个高斯分布模型
ϕ(y∣θk)的概率分布生成观测数据
yj。这时反映观测数据
yj来自第k个分模型的数据是未知的,以隐变量表示如下
γjk=1,第j个观测值来自第k个分模型
γjk=0,否则
于是对数似然函数为
logP(y,γ∣θ)=k=1∑K{nklogαk+j=1∑Nγjk[log2π
1−logσk−2σk21(yj−μk)2]}
(2)EM算法的E步:确定Q函数
Q(θ,θi)=E[logP(y,γ∣θ)∣y,θi]=k=1∑K{j=1∑N(Eγjk)logαk+j=1∑N(Eγjk)[log2π
1−logσk−2σk21(yj−μk)2]}经一系列变形后
Q(θ,θi)=k=1∑K{nklogαk+j=1∑Nγ^jk[log2π
1−logσk−2σk21(yj−μk)2]}其中,
γ^jk=Eγjk=k=1∑Kαkϕ(yj∣θk)αkϕ(yj∣θk),
γ^jk表示当前模型参数下第j个观测数据来自第k个分模型的概率,称为分模型k对观测数据
yj的响应度;
nk=j=1∑NEγjk。
(3)确定EM算法的M步
迭代的M步是求函数
Q(θ,θi)对
θ的极大值,即求新一轮迭代的模型参数。具体操作,可求参数偏导数并令其为零,结果如下:
μ^k=j=1∑Nγ^jkj=1∑Nγ^jkyj
σ^k2=j=1∑Nγ^jkj=1∑Nγ^jk(yj−μk)2
α^k=Nnk=Nj=1∑Nγ^jk重复以上计算,知道对数似然函数值不再有明显变化。注意到M步中只跟
γ^jk有关,因此在E步中,只需计算
γ^jk即可。