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
相关文章推荐
- EM算法(期望最大化)——从EM算法角度理解K-Means与GMM的区别
- EM算法(期望最大化)——理论部分
- 高斯混合模型(GMM)及其求解(期望最大化(EM)算法)
- EM算法与GMM的训练应用
- 期望最大化(EM)算法与高斯混合模型(GMM)证明
- GMM的EM算法实现
- 【jquery仿dataList】应用之——模仿igoogle【定制化、拖动排序,最大化、分屏】
- EM算法及其应用(代码)
- GMM与EM算法(二)
- GMM的EM算法实现
- 10个技巧能够使新手机应用在发布前提升质量,最大化发掘该应用的潜力,从而最小化用户差评和低下载量这种不良结果。
- 期望最大化(EM)算法(讲的很好)
- 云环境中的应用交付:中断最小化,控制最大化
- maximum likelihood estimation( 极大似然估计 ) - 无完整数据的参数估计 --- Expectation Maximization ( 期望最大化 ) 算法
- GMM与EM算法(一)
- 如何利用AdMob让移动应用流量价值最大化
- GMM的EM算法实现
- EM算法训练GMM的Matlab实现过程(总结)
- mfc应用窗口最大化显示
- EM算法训练GMM的Matlab实现过程(总结)