您的位置:首页 > 其它

EM算法(期望最大化)——应用:GMM

2017-04-24 22:20 204 查看

GMM模型简介

GMM(Gaussian Mixture Model)也叫高斯混合模型。我们(1)可以把它看做是高斯分量的简单线性叠加,其目标是提供一种比单独的高斯分布(GSM,Gaussian Single Model)更为强大的概率模型;(2)也可以利用离散隐变量来描述GMM,并从EM算法层面给出GMM模型的一种优雅解法。

首先,给出高斯混合模型的概率公式(考虑单样本):

p(x|π,μ,Σ)=∑kπkN(x|μk,Σk)

在第(1)种理解中,我们认为πk是各单独高斯分布N(x|μk,Σk)所占权重。这里,我们将其作为一个隐变量z的先验分布的概率值。对于该离散隐变量z的先验分布,有如下描述:

离散变量z是一个K维的二值随机变量,即z=(z1,z2,...,zK),其中zk={0,1}且∑kzk=1,k=1,...,K,z的概率分布可表示为p(zk=1|π)=πk其中,π=(π1,π2,...,πK),∑kπk=1。

而原先被认为是单独高斯分布的N(x|μk,Σk)则被认为是基于先验分布下的条件高斯分布p(x|zk=1,μk,Σk)=N(x|μk,Σk)。

GMM与EM算法的联系

借鉴贝努利分布和狄里克雷分布中表示方法(1-of-K表示法),我们换一种方式对上述分布进行重新表示:

(1)先验分布:p(z|π)=∏kp(zk=1)zk=∏kπkzk

(2)条件高斯分布:p(x|z,μ,Σ)=∏k[p(x|zk=1)]zk=∏k[N(x|μk,Σk)]zk

所以,高斯混合模型GMM(单样本)可表示为:

p(x|π,μ,Σ)=∑kπkN(x|μk,Σk)=∑k(∏kπkzk)(∏kN(x|μk,Σk)zk)=∑zp(z|π)p(x|z,μ,Σ)=∑zp(x,z|π,μ,Σ)

假设,我们有样本集{xn,n=1,..,N},则边缘概率p(X|π,μ,Σ)=∏np(xn|π,μ,Σ)=∏n∑znp(zn|π)p(xn|zn,μ,Σ)。概率模型中存在隐变量{zn},n=1,...,N,其中zn=(zn1,zn2,...,znK)。也就是说,对于每一个样本xn,都存在一组隐变量zn。在GMM中,我们的目标同样是argmax(π,μ,Σ)p(X|π,μ,Σ),但因为lnp(X|π,μ,Σ)=∑nln[∑znp(zn|π)p(xn|zn,μ,Σ)],求和符号在内部,对其求导比较困难。

GMM利用EM算法求解

这与EM算法需要解决的问题完全契合,所以,我们自然而然地想到利用EM算法求解GMM问题。

(1)E步骤:固定参数θold={π,μ,Σ},计算条件概率分布q(Z)=p(Z|X,θold),从而获取联合概率分布的对数期望Q(θ,θold)=E[p(X,Z|θold)];值得注意的是:在GMM中,对于每一个样本点xn都有相应的隐变量zn=(zn1,zn2,...,znK),所以我们没法给出统一的p(Z|X,θold)表达式,但我们可以用概率集合{p(znk=1|xn,π,μ,Σ)}来间接表达。

(2)M步骤:固定q(Z)=p(Z|X,θold),argmaxθQ(θ,θold),其中θ={π,μ,Σ}。

具体做法为:

(1)E步骤:求解p(Z|X,θold)={p(znk=1|xn,πold,μold,Σold)}:

给定样本{xn,n=1,...,N}且样本之间相互独立,p(znk=1|xn,π,μ,Σ)=p(znk=1,xn|π,μ,Σ)p(xn|π,μ,Σ)=p(znk=1|π)p(xn|znk=1,μk,Σk)p(xn|π,μ,Σ)=p(znk=1|π)p(xn|znk=1,μk,Σk)∑jp(znj=1|π)p(xn|znj=1,μj,Σj)

令γnk=p(znk=1|xn,π,μ,Σ)=πkN(xn|μk,Σk)∑jπjN(xn|μj,Σj)表示后验概率集合中的一个值,且对于单个样本xn有∑kγnk=1。

(2)M步骤:argmaxθQ(θ,θold),其中θ={π,μ,Σ}:

Q(θ,θold)=∑Zp(Z|X,θold)ln[p(X,Z|θ)]=∑znkp(znk=1|xn,πold,μold,Σold)ln[p(xn,znk=1|π,μ,Σ)]=∑n∑kγnkln[πkN(xn|μk,Σk)]=∑n∑kγnk[lnπk+lnN(xn|μk,Σk)]

利用μk,Σk分别对Q(θ,θold)求导:

∂Q∂μk=∂∂μk(∑n∑kγnk[lnπk+lnN(xn|μk,Σk)])=∂∂μk(∑n∑kγnk(xn−μk)TΣ−1k(xn−μk))=2∑nγnkΣ−1k(xn−μk)=0

⇒2∑nγnkΣkΣ−1k(xn−μk)=Σk⋅0

⇒μk=∑nγnk⋅xn∑nγnk

∂Q∂Σk=∂∂Σk(∑n∑kγnk[lnπk+lnN(xn|μk,Σk)])=∂∂Σk(∑n∑kγnk(xn−μk)TΣ−1k(xn−μk))=0

⇒Σk=∑nγnk(xn−μk)(xn−μk)T∑nγnk

对于 πk 则需要考虑有限制条件∑kπk=1,引入拉格朗日乘数法,最大化量为Q(θ,θold)+λ(∑kπk−1)

⇒∂∂πk[Q(θ,θold)+λ(∑kπk−1)]=∂∂πk[∑n∑kγnk(xn−μk)TΣ−1k(xn−μk)+λ(∑kπk−1)]=∑nγnk1πk+λ=0

两边同时乘以πk,并对等式求和∑k:

∑n∑kγnk+λ∑kπk=0

∵∑kγnk=1,∑kπk=1

∴λ=−N

⇒πk=∑nγnkN

令Nk=∑nγnk,则有

μk=1Nk∑nγnk⋅xn

Σk=1Nk∑nγnk(xn−μk)(xn−μk)T

πk=NkN

相关文章:

EM算法(期望最大化)——理论部分http://blog.csdn.net/tingyue_/article/details/70474042

EM算法(期望最大化)——从EM算法角度理解K-Means与GMM的区别http://blog.csdn.net/tingyue_/article/details/70739671
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: