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

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|π,μ,Σ)=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) 表示后验概率集合中的一个值,且对于单个样本 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|π,μ,Σ)]=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

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值