高斯混合模型

来源:互联网 发布:2017年10月份宏观数据 编辑:程序博客网 时间:2024/05/17 07:02

所谓高斯混合模型就是一组高斯分布的和,可以表示如下:

P(y|θ)=k=1Kαkϕ(y|θk)

αk是第k个高斯分布的系数,大于0且kk=1αk=1ϕ(y|αk)是第k个高斯分布:

ϕ(y|αk)=1(2π)σkexp((yμk)22σ2k)

从上面的定义可以看出,高斯混合模型的参数包括αk和每个高斯分布的均值和方差μk,σk

在高斯混合模型中,观测变量就是yj,j=1,2...N,隐含变量就是这个样本来自于哪个高斯模型,我们把这个变量记做γjk,表示第j个变量是否来自第k个高斯模型:

γjk={1 jk0,j=1,2,...,N,k=1,2,...,K

所以完全数据是(yj,γj1,γj2,...,γjK),j=1,2,..,N

完全数据的对数似然函数是:

P(y,γ|θ)=j=1NP(yj,γj1,γj2,...,γjK|θ)=j=1Nk=1K[αkϕ(yj|θk)]γjk=k=1Kj=1N[αkϕ(yj|θk)]γjk=k=1KαNj=1γjkkj=1N[ϕ(yj|θk)]γjk=k=1Kαnkkj=1N1(2π)σkexp((yjμk)22σ2k)γjk

其中,

nk=j=1Nγjk,k=1Knk=N

显然,nk表示来自第k个高斯分布的样本数量。
对上式取对数即得到完全数据的对数似然函数
logP(y,γ|θ)=i=1Knklogαk+j=1Nγjklog(1(2π)logσk(yjμk)22σ2k

下面求Q函数。
Q函数是完全数据的对数似然函数关于在给定观测数据和当前参数的条件下隐含变量的条件概率分布的期望,即

Q(θ,θi)=E[logP(y,γ|θ)P|y,θi)]=Ei=1Knklogαk+j=1Nγjklog1(2π)logσk(yjμk)22σ2k=i=1Kj=1NEγjklogαk+j=1NEγjklog1(2π)logσk(yjμk)22σ2k

上面这个式子里面我们需要计算的是E(γjk),将该值记为γ^jk

γ^jk=E(γjk|y,θ)=P(γjk=1|y,θ)=P(γjk=1,yj|θ)Kk=1P(γjk=1,yj|θ)=P(yj|γjk=1,θ)P(γjk=1|θ)Kk=1P(yj|γjk=1,θ)P(γjk=1|θ)=αkϕ(yj|θk)Kk=1αkϕ(yj|θk)j=1,2,...,N,k=1,2,..,K

第二步的推导使用了贝叶斯公式。

γ^jk是在当前参数下第j个样本来自第k个模型的概率。
γ^jk=Eγjknk=Nj=1Eγjk代码Q函数得到:

Q(θ,θi)=i=1Knklogαk+j=1Nγ^jklog1(2π)logσk(yjμk)22σ2k

至此,我们得到了Q函数的表达式了,
下面就是M步了,即最大化Q函数。

参数有μk,σkαk
首先求μk

求Q函数关于μk的导数

Q(θ,θi)μk=j=1Nγjk^yjμkσ2k

令偏导为0,可以得到μk的表达式
μk=Nj=1γ^jkyjNj=1γ^jk

求Q函数对σ2k的偏导

Q(θ,θi)σ2k=j=1Nγ^jk12σ2k+(yjμk)22(σ2k)2

令偏导为0

σ2k=Nj=1γ^jk(yjμk)2Nj=1γ^jk

由于αk满足Kk=1αk=1,所以求解αk需要使用拉格朗日函数。

L=Q(θ,θi)+λ(k=1Kαk1)

求L关于αk的偏导
Lαk=nkαk+λk=1,2,...,K

令偏导等于0

nk+λαk=0k=1,2,...,K

K个等式相加,有
k=1Knk+λ=0λ=k=1Knk=Nαk=nkλ=nkN=j=1Nγ^jkN

至此,高斯混合模型的EM推导就完成了。

0 0