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

来源:互联网 发布:windows http服务器 编辑:程序博客网 时间:2024/06/06 05:14

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,...,Kz的概率分布可表示为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|π,μ,Σ)=nznp(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)表示后验概率集合中的一个值,且对于单个样本xnkγ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|π,μ,Σ)]=nkγnkln[πkN(xn|μk,Σk)]=nkγnk[lnπk+lnN(xn|μk,Σk)]

利用μk,Σk分别对Q(θ,θold)求导:
Qμk=μk(nkγnk[lnπk+lnN(xn|μk,Σk)])=μk(nkγnk(xnμk)TΣ1k(xnμk))=2nγnkΣ1k(xnμk)=0
2nγnkΣkΣ1k(xnμk)=Σk0
μk=nγnkxnnγnk

QΣk=Σk(nkγnk[lnπk+lnN(xn|μk,Σk)])=Σk(nkγnk(xnμk)TΣ1k(xnμk))=0
Σk=nγnk(xnμk)(xnμk)Tnγnk
对于 πk 则需要考虑有限制条件kπk=1,引入拉格朗日乘数法,最大化量为Q(θ,θold)+λ(kπk1)

πk[Q(θ,θold)+λ(kπk1)]=πk[nkγnk(xnμk)TΣ1k(xnμk)+λ(kπk1)]=nγnk1πk+λ=0
两边同时乘以πk,并对等式求和k

nkγnk+λkπk=0
kγnk=1,kπk=1
λ=N

πk=nγnkN

Nk=nγnk,则有

μk=1Nknγnkxn
Σk=1Nknγ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

0 0
原创粉丝点击