版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37334135/article/details/85493330
1、高斯混合模型GMM
是指具有以下概率分布的模型:
P(y∣θ)=k=1∑Kαkϕ(y∣θk)
可以看做是
K个单高斯模型的线性组合,其中
αk是第
k个单高斯模型的
ϕ(y∣θk)=2π
σk1exp(−2σk2(x−μk)2)(模型参数
θk=(μk,σk))的系数,可以认作是权重,满足
k=1∑Kαk=1。
2、EM算法应用于GMM
首先介绍EM算法步骤:
具体内容参考EM算法比较
假设观测序列
y1,y2,...,yn 产自以上混合高斯模型,对于某个观测值
yi可以认为是依概率
αk选择了第
k个分模型
ϕ(y∣θk)。我们做以下标记:
如果
yi来自第
k个模型,那么
γik=1,否则
γik=0。
这个
γik也就是隐变量了,因为我们只知道
yi而不知道它来自哪个模型。
补充:或者这样理解
p(zj=k∣yj;θk),同样是给出了样本
yj由第
k个分模型产生的后验概率。等价于
P(γjk=1∣yj,θk)。所以对前者求期望和对后者求期望是一样的,接下来使用的是后者(或许前者更容易理解)。
根据EM算法的E步:假设模型参数已知的情况下求隐含变量Z分别取z1,z2,…的期望,亦即Z分别取z1,z2,…的概率
wjk=E(γjk∣yj,θk)=P(γjk=1∣yj,θk)=k=1∑KP(yj∣γjk=1,θk)P(γjk=1∣θk)P(γjk=1,yj∣θk)=k=1∑KP(yj∣γjk=1,θk)P(γjk=1∣θk)P(yj∣γjk=1,θk)P(γjk=1∣θk)=k=1∑Kαkϕ(yj∣θk)αkϕ(yj∣θk)
wjk表示在当前模型下,
yj来自模型第
k个模型的概率,如果
j=1−>4,
k=1−>3那么就得计算12次,对于每个
j,分别求
wj1,wj2,wj3,所以很容易得到
E(γjk∣yj,θk)=P(γjk=1∣yj,θk)⋅1+P(γjk=1∣yj,θk)⋅0。对于第四个等号是贝叶斯公式。对于第六个等号则是在介绍这章最开始介绍的对于取
yi的假设,即:对于某个观测值
yi可以认为是依概率
αk选择了第
k个分模型
ϕ(y∣θk)。
E步计算完毕,那么进行M步,使用
Q函数进行极大似然估计,求出模型参数
θk=(αk,μk,σk),下面开始推导
说明:下面的
pθ()和p(;θ)是一样的,只是写法不同,都只是表示模型参数是
θ而已。
Q(θ∣θn)=i=1∑nz∑P(z∣yi;θj)logP(yi,z∣θ)=i=1∑nk=1∑KwiklogP(yi∣γik=1;θ)P(γik=1∣θ)=i=1∑nk=1∑Kwiklogαkϕ(yj∣θk)=i=1∑nk=1∑Kwiklogαk2π
σk1exp(−2σk2(yi−μk)2)=i=1∑nk=1∑Kwik{logαk−log2π
σk−2σk2(yi−μk)2}
∂μk∂Q=σk2i=1∑nwik(yi−μk)=0
=>μk=i=1∑nwiki=1∑nwikyi,k=1,2,...,K
注意:因为是对某个
k′,所以关于
k的求和符号最后只剩关于这个
k′的项。
∂σk∂Q=i=1∑nwik{−σk1−2(yi−μk)2⋅σk3−2}=0
=>σk3i=1∑nwik(yi−μk)2=σki=1∑nwik
σk2=i=1∑nwiki=1∑nwik(yi−μk)2
关于
αk的推导就不要去直接求导然后令导数为0了,因为还有个限制条件
k=1∑Kαk=1,所以得用拉格朗日函数。
L(αk,β)=i=1∑nk=1∑Kwik{logαk−log2π
σk−2σk2(yi−μk)2}+β(1−k=1∑Kαk)
∂αk∂L=i=1∑nαkwik+β=0
=>−βi=1∑nwik=αk(1)
∂β∂L=1−k=1∑Kαk=0
=>k=1∑Kαk=1 (2)
对(1)两边对
αk 进行求和
−βk=1∑Ki=1∑nwik=k=1∑Kαk=1
=>β=−k=1∑Ki=1∑nwik,带入到(1)得到:
=>k=1∑Ki=1∑nwiki=1∑nwik=αk (3)
由于
wik=k=1∑Kαkϕ(yi∣θk)αkϕ(yi∣θk)
显然
k=1∑Kwik=1
(3)式的分母是满足交换律,将
wik带入得到(3)最终得到:
αk=ni=1∑nwik
将求得的三个参数当做下一次EM算法E步的参数继续下去直到收敛。