EM算法之高斯混合模型(二)

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)πziklN(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=1kz2=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=1kz2=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=1Nz1=1k(lnπi+ln(N(xi|μi,Σi)))P(zi|xi,θ(g))(6.7)

M-step
迭代的M步是求函数 Q(θ,θ(i)) θ 求极大值。

(6.7)=i=1Nl=1k(lnπl+ln(N(xl|μl,Σl)))P(l|xi,θ(g))//zi>l=i=1Nl=1kln(πl)P(l|xi,θ(g))+i=1Nl=1kln(N(xi|μl,Σl)P(l|xi,θ(g)))(6.8)

第一部分求解

那我们分别对(6.8)中的两个部分求最大化。

argmaxi=1Nl=1kln(πl)P(l|xi,θ(g))(6.9)s.tiπi=1

这边的话,我们拉格朗日的方法求解参数
LM(π1,π2,....,πk,λ)=l=1kln(πi)P(l|xi,θ(g))+λ(l=1kπi1)(6.10)

最后求解得:
πl=1Ni=1NP(l|xi,θ(g))(6.11)

那这个表达式其实就是对(6.2)的值求平均值,就是求某个 xi 属于第 zi 个高斯的权值除以该值属于所有 k1zi 个高斯的权值,然后对k个z求和再求平均值。

第二部分求解

Q(θ,θ(g))=S(μl,Σl1)=l=1ki=1Nln(N(xi|μl,Σl))P(l|xi,θ(g))=iN12ln(|Σl|)12(xiμi)TΣ1(xμl)P(l|xi,θ(g))(6.12)==>S(μl,Σ)=Tr(Σ1l2i=1N(xiμl)(xμl)TP(l|xi,θ(g)))+constant==>S(μl,Σ)μl=2Σ1diag(Σ1)2i=1N2(xiμl)P(l|xi,θ(g))=0==>i=1NxiP(l|xi,θ(g))=μli=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) 求导后,结果为 X1
(6.14)=(i=1Nln(|Σ1l|P(l|xi,θ(g))12tr(Σ1i=1N(xiμl)(xμl)TP(l|xi,θ(g))))


Ml=Ni=1(xiμl)(xμl)TP(l|xi,θ(g))
==>S(μl,Σ)Σ1l=2Ni=1ΣlP(l|xi,θ(g))Ni=1diag(Σ)P(l|xi,θ(g))22Mldiag(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=1MlNi=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=1Ni=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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值