Gaussian Mixture Model.
高斯混合模型(Gaussian Mixture Model,GMM)是一类概率生成模型,表示为KK个高斯分布的加权平均。其隐变量(latent variable)是服从多项分布的离散型随机变量,表示属于每个高斯分布的概率,记作zz,表示如下:
P(z=k)=pk,k=1,2,...,K.K∑k=1pk=1P(z=k)=pk,k=1,2,...,K.K∑k=1pk=1记观测变量(observable variable)为xx,则高斯混合模型可表示为:
P(x)=∑zP(x,z)=∑zP(z)P(x|z)=K∑k=1P(z=k)P(x|z=k)=K∑k=1pkN(x;μk,σk)P(x)=∑zP(x,z)=∑zP(z)P(x|z)=K∑k=1P(z=k)P(x|z=k)=K∑k=1pkN(x;μk,σk)假设观测数据为{x1,x2,...,xn}{x1,x2,...,xn},高斯混合模型的模型参数为θ={p1,p2,...,pK,μ1,μ2,...,μK,σ1,σ2,...,σK}θ={p1,p2,...,pK,μ1,μ2,...,μK,σ1,σ2,...,σK}。
尝试直接用极大似然估计方法求解该问题。求解如下:
ˆθ=argmaxθlogp(x;θ)=argmaxθlogn∏i=1P(xi;θ)=argmaxθn∑i=1logP(xi;θ)argmaxθn∑i=1logK∑k=1PkN(xi;μk,σk)^θ=argmaxθlogp(x;θ)=argmaxθlogn∏i=1P(xi;θ)=argmaxθn∑i=1logP(xi;θ)argmaxθn∑i=1logK∑k=1PkN(xi;μk,σk)上式在对数函数中存在求和项,直接求解是intractable的。采用期望最大算法求解该问题。
E-step
EM算法的E-step计算如下:
E-step:P(z|x;θ(t))→EP(z|x;θ(t))[logP(x,z;θ)]E-step:P(z|x;θ(t))→EP(z|x;θ(t))[logP(x,z;θ)]期望计算如下:
EP(z|x;θ(t))[logP(x,z;θ)]=∫zP(z|x;θ(t))logP(x,z;θ)dz=∑z1...∑znP(z|x;θ(t))logP(x,z;θ)=∑z1...∑znn∏i=1P(zi|xi;θ(t))logn∏j=1P(xj,zj;θ)=∑z1...∑znn∏i=1P(zi|xi;θ(t))n∑j=1logP(xj,zj;θ)=∑z1...∑znn∏i=1P(zi|xi;θ(t))logP(x1,z1;θ)+...+∑z1...∑znn∏i=1P(zi|xi;θ(t))logP(xn,zn;θ)=∑z1P(z1|x1;θ(t))logP(x1,z1;θ)n∏j=2∑zjP(zj|xj;θ(t))+...+∑znP(zn|xn;θ(t))logP(xn,zn;θ)n−1∏j=1∑zjP(zj|xj;θ(t))(由于∑zjP(zj|xj;θ(t))=1)=n∑i=1∑ziP(zi|xi;θ(t))logP(xi,zi;θ)=n∑i=1K∑k=1P(zi=k|xi;θ(t))logP(xi,zi=k;θ)EP(z|x;θ(t))[logP(x,z;θ)]=∫zP(z|x;θ(t))logP(x,z;θ)dz=∑z1...∑znP(z|x;θ(t))logP(x,z;θ)=∑z1...∑znn∏i=1P(zi|xi;θ(t))logn∏j=1P(xj,zj;θ)=∑z1...∑znn∏i=1P(zi|xi;θ(t))n∑j=1logP(xj,zj;θ)=∑z1...∑znn∏i=1P(zi|xi;θ(t))logP(x1,z1;θ)+...+∑z1...∑znn∏i=1P(zi|xi;θ(t))logP(xn,zn;θ)=∑z1P(z1|x1;θ(t))logP(x1,z1;θ)n∏j=2∑zjP(zj|xj;θ(t))+...+∑znP(zn|xn;θ(t))logP(xn,zn;θ)n−1∏j=1∑zjP(zj|xj;θ(t))(由于∑zjP(zj|xj;θ(t))=1)=n∑i=1∑ziP(zi|xi;θ(t))logP(xi,zi;θ)=n∑i=1K∑k=1P(zi=k|xi;θ(t))logP(xi,zi=k;θ)联合概率P(x,z)P(x,z)计算如下:
P(x,z)=P(z)P(x|z)=P(z)N(x;μz,σz)P(x,z)=P(z)P(x|z)=P(z)N(x;μz,σz)条件概率P(z|x)P(z|x)计算如下:
P(z|x)=P(x,z)P(x)=P(z)N(x;μz,σz)∑Kk=1pkN(x;μk,σk)P(z|x)=P(x,z)P(x)=P(z)N(x;μz,σz)∑Kk=1pkN(x;μk,σk)记在当前模型参数θ(t)θ(t)下第ii个观测数据来自第kk个分高斯模型的概率为γikγik,称为分模型kk对观测数据xixi的响应度。即:
γik=P(zi=k|xi;θ(t))=pkN(xi;μk,σk)∑Kk=1pkN(xi;μk,σk)γik=P(zi=k|xi;θ(t))=pkN(xi;μk,σk)∑Kk=1pkN(xi;μk,σk)则原期望计算公式可以表示为:
n∑i=1K∑k=1P(zi=k|xi;θ(t))logP(xi,zi=k;θ)=n∑i=1K∑k=1γiklogP(zi=k)P(xi|zi=k)=n∑i=1K∑k=1γiklogpkN(xi;μk,σk)=n∑i=1K∑k=1γik[logpk+logN(xi;μk,σk)]n∑i=1K∑k=1P(zi=k|xi;θ(t))logP(xi,zi=k;θ)=n∑i=1K∑k=1γiklogP(zi=k)P(xi|zi=k)=n∑i=1K∑k=1γiklogpkN(xi;μk,σk)=n∑i=1K∑k=1γik[logpk+logN(xi;μk,σk)]M-step
EM算法的M-step计算如下:
M-step:θ(t+1)=argmaxθEP(z|x;θ(t))[logP(x,z;θ)]M-step:θ(t+1)=argmaxθEP(z|x;θ(t))[logP(x,z;θ)]计算pk(t+1)pk(t+1)
pk(t+1)=argmaxpkn∑i=1K∑k=1γik[logpk+logN(xi;μk,σk)]s.t. K∑k=1pk=1pk(t+1)=argmaxpkn∑i=1K∑k=1γik[logpk+logN(xi;μk,σk)]s.t. K∑k=1pk=1采用拉格朗日乘子法解决上述约束最优化问题。建立拉格朗日函数:
L(pk,λ)=n∑i=1K∑k=1γik[logpk+logN(xi;μk,σk)]+λ(K∑k=1pk−1)L(pk,λ)=n∑i=1K∑k=1γik[logpk+logN(xi;μk,σk)]+λ(K∑k=1pk−1)令拉格朗日函数关于参数pk的导数为零:
∂L(pk,λ)∂pk=n∑i=1γik⋅1pk+λ=0解得pk=−∑ni=1γikλ。又由∑Kk=1pk=1,可得λ=∑ni=1∑Kk=1γik=n,因此参数pk的估计值为:
pk(t+1)=∑ni=1γikn计算μk(t+1)
μk(t+1)=argmaxμkn∑i=1K∑k=1γik[logpk+logN(xi;μk,σk)]=argmaxμkn∑i=1K∑k=1γiklogN(xi;μk,σk)=argmaxμkn∑i=1K∑k=1γiklog1√2πσkexp{−(xi−μk)22(σk)2}=argmaxμkn∑i=1K∑k=1γik[log1√2π−logσk−(xi−μk)22(σk)2]令上述表达式关于参数μk的导数为零:
∂∂μkn∑i=1K∑k=1−γik(xi−μk)22(σk)2=n∑i=1γik2(xi−μk)2(σk)2=0解得:
μk(t+1)=∑ni=1γikxi∑ni=1γik计算σk(t+1)
σk(t+1)=argmaxσkn∑i=1K∑k=1γik[log1√2π−logσk−(xi−μk)22(σk)2]令上述表达式关于参数σk的导数为零:
∂∂σkn∑i=1K∑k=1γik[−logσk−(xi−μk)22(σk)2]=n∑i=1γik[−1σk+⋅(xi−μk)2(σk)3]=0解得:
(σk(t+1))2=∑ni=1γik(xi−μk(t+1))2∑ni=1γik算法总结
数据样本集为{x1,x2,...,xn},建立高斯混合模型:
P(x)=K∑k=1pkN(x;μk,σk)待求模型参数为θ={p1,p2,...,pK,μ1,μ2,...,μK,σ1,σ2,...,σK},随机取参数的初始值开始迭代。
根据当前模型参数,计算分模型k对观测数据xi的响应度:
γik=P(zi=k|xi;θ(t))=pkN(xi;μk,σk)∑Kk=1pkN(xi;μk,σk)计算新一轮迭代的模型参数:
pk(t+1)=∑ni=1γikn μk(t+1)=∑ni=1γikxi∑ni=1γik (σk(t+1))2=∑ni=1γik(xi−μk(t+1))2∑ni=1γik重复迭代直至收敛。
Related Issues not found
Please contact @0809zheng to initialize the comment