EM参数求解
我们将GMM带入
θ(g+1)
中
θ(g+1)=argmaxθ∫zln{P(X,z|θ)P(z|X,θ(g))}dz(6.1)
其中
P(Z|X,θ(g))=∏i=1NP(zi|xi,θ(g))=P(xi|zi)P(zi)∑kiP(xi|zi)P(zi)=N(xi|μzi,Σzi)πzi∑klN(xi|μl,Σl)πl(6.2)
P(X,z|θ)=∏i=1NP(xi,zi|θ)=∏i=1NP(xi|zi,θ)P(zi|θ)=∏i=1NπiN(μzi,Σzi)(6.3)
将6.2和6.3带入6.1
E-step:
确定Q函数,求函数的期望
∑z1=1k∑z2=1k...∑zN=1k∑(i=1)N[lnπzi+ln(N(xi|μzi,Σzi))]∏i=1NP(zi|xi,θ(g))(6.4)
令
fi(zi)=lnπzi+ln(N(xi|μzi,Σzi)(6.5)
P(Z)=∏iNP(zi|xi,θ(g))(6.6)
那么式子6.4可以化解为:
∑z1=1k∑z2=1k...∑zN=1k(f1(z1)+f2(z2)+...+fN(zN))P(z1,z2,...zN)=∑z1=1kf1(z1)∑z2=1k...∑zN=1kP(z1,z2,...,zN)+...=∑z1=1kf1(z1)∑z2=1k...∑zN=1kP(z1)P(z2,...,zN)+...=∑z1=1kf1(z1)P(z1)+....=∑i=1N∑z1=1k(lnπi+ln(N(xi|μi,Σi)))P(zi|xi,θ(g))(6.7)
M-step
迭代的M步是求函数
Q(θ,θ(i))
对
θ
求极大值。
(6.7)=∑i=1N∑l=1k(lnπl+ln(N(xl|μl,Σl)))P(l|xi,θ(g))//zi−>l=∑i=1N∑l=1kln(πl)P(l|xi,θ(g))+∑i=1N∑l=1kln(N(xi|μl,Σl)P(l|xi,θ(g)))(6.8)
第一部分求解
那我们分别对(6.8)中的两个部分求最大化。
argmax∑i=1N∑l=1kln(πl)P(l|xi,θ(g))(6.9)s.t∑iπi=1
这边的话,我们拉格朗日的方法求解参数
LM(π1,π2,....,πk,λ)=∑l=1kln(πi)P(l|xi,θ(g))+λ(∑l=1kπi−1)(6.10)
最后求解得:
πl=1N∑i=1NP(l|xi,θ(g))(6.11)
那这个表达式其实就是对(6.2)的值求平均值,就是求某个 xi 属于第 zi 个高斯的权值除以该值属于所有 ∑k1zi 个高斯的权值,然后对k个z求和再求平均值。
第二部分求解
Q(θ,θ(g))=S(μl,Σ−l1)=∑l=1k∑i=1Nln(N(xi|μl,Σl))P(l|xi,θ(g))=∑iN−12ln(|Σl|)−12(xi−μi)TΣ−1(x−μl)P(l|xi,θ(g))(6.12)==>S(μl,Σ)=−Tr(Σ−1l2∑i=1N(xi−μl)(x−μl)TP(l|xi,θ(g)))+constant==>∂S(μl,Σ)∂μl=2Σ−1−diag(Σ−1)2∑i=1N2(xi−μl)P(l|xi,θ(g))=0==>∑i=1NxiP(l|xi,θ(g))=μl∑i=1NP(l|xi,θ(g))==>μl=∑Ni=1P(l|xi,θ(g)∑Ni=1xiP(l|xi,θ(g(6.13)S(μl,Σ−1l)=∑i=1N(−12ln(|Σl|)−12(xi−μl)TΣ−1(x−μl))P(l|xi,θ(g))(6.14)
我们用 Σ 代替 Σ−1 因为在对 ln(X) 求导后,结果为 X−1
(6.14)=(∑i=1Nln(|Σ−1l|P(l|xi,θ(g))−12tr(Σ−1∑i=1N(xi−μl)(x−μl)TP(l|xi,θ(g))))
令
Ml=∑Ni=1(xi−μl)(x−μl)TP(l|xi,θ(g))
==>∂S(μl,Σ)∂Σ−1l=2∑Ni=1ΣlP(l|xi,θ(g))−∑Ni=1diag(Σ)P(l|xi,θ(g))2−2Ml−diag(Ml)2=0==>2(∑i=1NΣP(l|xi,θ(g))−Ml)−∑i=1Ndiag(ΣP(l|xi,θ(g))−Ml)=0==>∑i=1NΣP(l|xi,θ(g))−Ml=0==>Σ=∑Ni=1Ml∑Ni=1P(l|xi,θ(g))=∑Ni=1(xi−μl)(x−μl)TP(l|xi,θ(g))∑Ni=1P(l|xi,θ(g))
我们最大化
μ
,
Σ
意味着更新
θ(g)
->
θ(g+1)
:
π(g+1)l=1N∑i=1NP(l|xi,θ(g))μ(g+1)l=∑Ni=1xiP(l|xi,θ(g))∑Ni=1P(l|xi,θ(g))Σ(g+1)l=∑Ni=1[xi−μi+1l][xi−μi+1l]TP(l|xi,θ(g))∑Ni=1P(l|xi,θ(g))
那么我们要计算的是:
P(l|xi,θg)=N(xi|μl,Σl)∑ks=1N(xi|μs,Σs)