EM算法在高斯混合模型中的应用

高斯混合模型GMM



注:该文章与《统计学习方法》by 李航 中的章节大致相同。
回顾EM算法的可以参考EM算法

高斯混合模型定义

  高斯混合模型是指具有如下形式的概率分布模型:

P(y|θ)=k=1KαkΦ(y|θk)(1)
  其中, αk 是系数, αk0,Kk=1αk=1 Φ(y|θk) 高斯分布密度 θk=(μk,σ2k)
Φ(y|θk)=12πσkexp[(yμk)22σ2k](2)
  称为第k个模型。

一般可以用任意概率分布密度代替式(2)中的高斯分布。


GMM参数估计的EM算法

  假设观测数据 y1,y2,...,yN 由高斯混合模型生成,

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

  其中, θ=(α1,α2,...,αK;θ1,θ2,...,θK) 。我们使用 EM算法估计高斯混合模型的参数 θ


1. 明确隐变量,写完全数据对数似然函数

  观测数据 yj,j=1,2,...,N 的是这样产生的:首先依概率 αk 选择第k个高斯分布模型 Φ(y|θk) ;然后依得到的高斯分布产生观测数据 yj 。此时,观测数据 yj,j=1,2,...,N 已知,但是我们根据观测数据 yj 并不能判断出来它来自于哪个高斯分布,我们以隐变量 γjk 表示观测观测数据 yj 来自于第k个高斯分布,如果 yj 来自第k个高斯分布模型,则 γjk=1 ,否则 γjk=0
  此时我们的完全数据(观测变量+隐变量)是:

(yj,γj1,γj2,...,γjK), j=1,2,...,N

  我们可以写出 完全数据的似然函数
P(y,γ|θ)=j=1NP(yj,γj1,γj2,...,γjK|θ)
=k=1Kj=1N[αkΦ(yj|θk)]γjk
=k=1Kαnkkj=1N[Φ(yj|θk)]γjk
=k=1Kαnkkj=1N[12πσkexp[(yμk)22σ2k]]γjk
  其中 nk=Nj=1γjk, Kk=1nk=N
  那么 完全数据的对数似然概率为:
log P(y,γ|θ)=k=1K[nklogαk+j=1Nγjk[log(12π)logσk12σ2k(yjμk)2]]

   准备工作算是做完了,然后开始使用EM算法进行求解参数 θ


2. EM算法的E步

  确定Q函数

Q(θ,θ(i))=E[logP(y,γ|θ)|y,θ(i)]
=E[k=1K[nklogαk+j=1Nγjk[log(12π)logσk12σ2k(yjμk)2]]|y,θ(i)]
=k=1K[j=1N(Eγjk)logαk+j=1N(Eγjk)[log(12π)logσk12σ2k(yjμk)2]]

   注意:这里的 Eγjk=E(γjk|y,θ(i))

  记 γ^jk=Eγjk ,则 γ^jk 的求解过程如下:
γ^jk=E(γjk|y,θ(i))=P(γjk=1|y,θ(i))
=P(γjk,yi|θ(i))Kk=1P(γjk,yi|θ(i))
=P(yj|γjk=1,θ(i))P(γjk=1|θ(i))Kk=1P(yj|γjk=1,θ(i))P(γjk=1|θ(i))
=αkΦ(yj|θ(i)k)Kk=1αkΦ(yj|θ(i)k)(1)

   γ^jk 是当前模型参数 θ(i) 下观测数据 yj 来自第k个高斯分布模型的概率,其中 j=1,2,...,N;  k=1,2,...,K

  将 γ^jk=Eγjk 以及 nk=Nj=1γjk 代入(1)式得:

Q(θ,θ(i))=k=1K[nklogαk+j=1N(γ^jk)[log(12π)logσk12σ2k(yjμk)2]](2)

  现在我们可以看到,(2)式未知变量中只有 μk,σk 。下面就需要对该表达式进行极大化。


3. EM算法的M步

  在M步,我们只需要求解函数 Q(θ,θ(i)) θ 的极大值,即求解 θ(i+1)

θ(i+1)=argmaxθQ(θ,θ(i))
   θ(i+1)=(μ^k,σ^2k,α^k), k=1,2,...,K ,对各变量求偏导求极值可以求解得到变量值 μ^k,σ^2k ,在 Kk=1αk=1 条件下可以求偏导求极值得到变量 α^k 。结果如下:
μ^k=Nj=1γ^jkyjNj=1γ^jk, k=1,2,...,K
σ^2k=Nj=1γ^jk(yjμk)2Nj=1γ^jk, k=1,2,...,K
α^k=nkN=Nj=1γ^jkN, k=1,2,...,K

  重复上述计算,直到对数似然函数值不再收敛为止。


参考

  李航 《统计学习方法》


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值