高斯混合模型
2021-8-14

 

高斯混合模型

模型定义

(1)PM(x)=i=1kαiϕ(x|μi,σi2)

其中,各符号解释如下:

  1. x为观测变量。
  2. 该模型共由k个高斯模型混合组成,ϕ(x|μi,σi2)=12πσie(xμi)22σi2为高斯模型的概率密度函数。
  3. αi为对应的“混合系数”,随件变量x由哪个高斯模型生成的先验分布,满足的约束为αi>0,i=0kαi=1

生成过程

注意:此过程为我们假设的数据生成过程,基于一定的假设,便于后续的推导。

假设样本的生成过程由高斯混合模型生成:

  1. 根据定义的先验分布α1,α2,...,αk选择高斯混合成分(即某个高斯混合模型),其中,对任意一个随机变量xαi为选择第i个混合成分的概率。
  2. 根据被选择的高斯分布的概率密度函数进行采样,从而生成相应的样本。
  3. 重复上述步骤,生成训练集D={x1,x2,...,xm}

 

总结:该过程生成了若干数据,数据来源于多个高斯模型,但是,我们不知道高斯模型的参数,也不知道每个数据来自于哪个高斯模型。而我们要做的,便是解决上述两个”不知道“。

求后验分布

该步的目标是解决第二个“不知道”:数据来自于哪个高斯模型。

假设目前已经给定``数据集D={x1,x2,...,xm},令随机变量zj{1,2,...,k}表示样本xj由哪个高斯模型生成,其取值未知。基于假设zj的先验概率为:

(2)P(zj=i)=αii{1,2,...,k}

根据贝叶斯定理,zj的后验分布为:

(3)PM(zj=i|xj)=P(zj=i)PM(xj|zj=i)PM(xj)=αiϕ(xj|μi,σi2)l=1kαlϕ(xj|μl,σl2)

换言之,PM(zj=i|xj)给出了样本xj由第i个高斯模型生成的后验概率分布,简记为γji(i=1,2,...,k)

 

由全概率公式可得:

(4)i=1kPM(zj=i|xj)=i=1kγji=1

 

聚类

当高斯混合模型(公式一)已知时,高斯混合聚类将把样本集D划分为k个簇C={C1,C2,...,Ck}。每个样本由一个高斯分布生成,来自于同一个高斯分布的样本被认为一类,每个样本xj的簇标记λj如下确定:

(5)argmaxi{1,2,...,k}γji

因此,从原型聚类的角度来看,高斯混合聚类时采用概率模型(高斯分布)对原型进行刻画,簇划分则由原型对应的后验概率确定。

 

参数求解

极大似然估计

给定样本集D,样本个数为m,可使用极大似然法对模型参数{(αi,μi,σi2)|1ik}进行估计。对数似然函数为:

(6)LL(D)=ln(j=1mPM(xj))=j=1mln(PM(xj))=j=1mln(l=1kαlϕ(xj|μl,σl2))=j=1mln(l=1kαl12πσle(xjμl)22σl2)

μi

LL(D)μi=0,则:

(7)LL(D)μi=j=1mln(l=1kαl12πσle(xjμl)22σl2)μi=j=1mαi12πσi2(xjμi)e(xjμi)22σi2l=1kαlϕ(xj|μl,σl)=j=1mαi2(xjμi)ϕ(xj|μi,σi)l=1kαlϕ(xj|μl,σl)=2j=1mγji(xjμi)=2j=1mγjixj2j=1mγjiμi=0

求解可得:

(8)μi=j=1mγjixjj=1mγji

σi

LL(D)σi=0,则:

(9)LL(D)σi=j=1mln(l=1kαl12πσle(xjμl)22σl2)σi=j=1mαi12π[11σi2e(xjμi)22σi2+1σi(xjμi)21σi3e(xjμi)22σi2]l=1kαlϕ(xj|μl,σl)=j=1mαi12πe(xjμi)22σi2[1σi2+1σi4(xjμi)2]l=1kαlϕ(xj|μl,σl)=j=1mαi12πγji(xjμi)2σi2σi4=0

求解可得:

(10)σi2=j=1mγji(xjμi)2j=1mγji

αi

对于混合系数αi,除了要最大化LL(D),还需要满足αi>0i=0kαi=1,构造如下拉格朗日函数:

(11)L=LL(D)+λ(l=1kαl1)λ

αi求导可得:

(12)Lαi={j=1mln(l=1kαl12πσle(xjμl)22σl2)+λ(l=1kαl1)}αi=j=1m12πσie(xjμi)22σi2l=1kαlϕ(xj|μl,σl2)+λ=j=1mϕ(xj|ui,σi2)l=1kαlϕ(xj|μl,σl2)+λ=0

两边同乘以αi可得:

(13)j=1mαiϕ(xj|ui,σi2)l=1kαlϕ(xj|μl,σl2)+αiλ=0j=1mγji+αiλ=0l=1kj=1mγji+l=1kαiλ=0j=1ml=1kγji+λ=0m+λ=0λ=m

λ带入可得:j=1mγjiαim=0

求解可得:

(14)αi=1mj=1mγji

迭代过程

  1. 先根据当前参数计算每个样本属于每个高斯模型的后验概率γji
  2. 根据参数公式对参数进行更新

EM算法

完全数据的对数似然函数

首先需要明确隐变量,写出完全数据的对数似然函数。

定义隐变量如下:

(15)γjk={1, 第 j 个观测来自第 k 个分模型 0, 否则 

那么,完全数据为:(xj,γj1,γj2,...,γjk),j=1,2,...,m

θ=(μ,σ2),则完全数据的似然函数为:

(16)P(x,γα,θ)=j=1mP(xj,γj1,γj2,,γjkα,θ)=j=1ml=1k[αlϕ(xjθl)]γjl=l=1kj=1m[αlϕ(xjθl)]γjl=l=1kαlj=1mγjlj=1m[ϕ(xjθl)]γjl=l=1kαlj=1mγjlj=1m[12πσlexp((xjμl)22σl2)]γjl

上述公式解释:

  1. P(xj,γj1,γj2,,γjkα,θ)

    表示在参数θ下选择某个高斯模型(假设第s个)生成数据xj的概率,则根据先验知识,该过程分为两个步骤:

    • 依概率αs选择第s个高斯模型
    • 通过ϕ(x|θs)生成xj

    所以,综合来看,如果不知道xj由哪个模型生成,则该概率为:

    (17)P(xj,γj1,γj2,,γjkα,θ)=l=1k[αlϕ(xj|θ)]γjl

    由哪个模型生成,则对应的λ为1。

     

  2. P(xj,γj1,γj2,,γjkα,θ)P(xj)的区别

    P(xj)=i=1kαiϕ(xj|μi,σi2)需要考虑xj可能来源于k个高斯模型中的任何一个,而P(xj,γj1,γj2,,γjkα,θ)则限定了xj只会来源于某一个高斯模型。

  3. l=1kj=1mγjl=1

 

完全数据的对数似然函数为

(18)lnP(x,γα,θ)=ln{l=1kαlj=1mγjlj=1m[12πσlexp((xjμl)22σl2)]γjl}=l=1k{j=1mγjllnαl+j=1mγjl[ln12πlnσl(xjμl)22σl2]}

此似然函数中包含隐变量γjl,因此,不能够直接最大化似然函数。反之,如果知道了γjl,则最大化似然函数水到渠成。

怎么办呢?基于当前的模型参数(α,θ),先对隐变量γjl进行当下的估计。

初始化的时候可以随机给定(α(0),θ(0)),也就是当前知道了每个高斯分布的参数,而隐变量γ则是指明数据由哪个高斯模型产生,有了每个高斯模型的参数,自然就能够计算数据最可能来自哪个高斯模型,也就知道了隐变量γ。将上述步骤迭代进行之,则是EM算法。

E步:确定Q函数

(19)Q(θ,α(i),θ(i))=E[logP(x,γα,θ)x,α(i),θ(i)]=E{l=1k{(j=1mγjl|xj,α(i),θ(i))lnαl+(j=1mγjl|xj,α(i),θ(i))[ln12πlnσl(xjμl)22σl2]}}=l=1k{(j=1mE(γjlxj,α(i),θ(i)))lnαl+(j=1mE(γjlxj,α(i),θ(i)))[ln(12π)logσl12σl2(xjμl)2]}

其中,E(γjlxj,α(i),θ(i))则是基于当前参数对隐变量γjl的估计:

(20)E(γjlxj,α(i),θ(i))=P(γjl=1xj,α(i),θ(i))=P(γjl=1,xjα(i),θ(i))t=1kP(γjt=1,xjα(i),θ(i))=P(γjl=1α(i),θ(i))P(xjγjl=1,α(i),θ(i))t=1kP(xjγjt=1,α(i),θ(i))P(γjt=1α(i),θ(i))=αl(i)ϕ(xjθl(i))t=1kαt(i)ϕ(xjθt(i))=γ^jl(i),j=1,2,,m;l=1,2,,k

E(γjlxj,α(i),θ(i))带回Q函数可得:

(21)Q(θ,α(i),θ(i))=l=1k{(j=1mγ^jl(i))lnαl+(j=1mγ^jl(i))[ln(12π)logσl12σl2(xjμl)2]}

M步:Q函数最大化

有了Q函数,就可以对Q函数进行最大化,得到下一次迭代的模型参数了,即:

(22)α(i+1),θ(i+1)=argmaxθQ(θ,α(i),θ(i))

采用求导及拉格朗日乘子法,可得第i+1轮参数为:

(23)μ^l=j=1mγ^jl(i)xjj=1mγ^jl(i)σ^l2=j=1mγ^jl(i)(xjμl(i))2j=1Nγ^jl(i)α^l=j=1mγ^jl(i)ml=1,2,,k

例子

见《西瓜书》P210页。

 

参考文档

  1. (48条消息) 详解EM算法与混合高斯模型(Gaussian mixture model, GMM)林立民爱洗澡-CSDN博客混合高斯模型
  2. 《西瓜书》 P206