Andrew Ng机器学习课程笔记(十四)之无监督学习之混合高斯模型与EM算法

Preface

Gaussian Mixture Model(GMM,高斯混合模型)
EM Algorithm for GMM

Gaussian Mixture Model

GMM是对高斯判别模型(Gaussian Discriminant Analysis,GDL,前面有一篇博文介绍)的一个推广。同时和K-means聚类算法一样,对于没有标签的数据集 {x(1),x(2),...,x(m)} { x ( 1 ) , x ( 2 ) , . . . , x ( m ) } 进行分类。但是不同于K-means聚类算法,我们隐含类别标签用 z(i) z ( i ) 表示,并认为 z(i) z ( i ) 满足多项式分布,即为 z(i)Multinomial(ϕ),ϕj=p(z(i)=j)(ϕj0,kj=1,ϕj=1) z ( i ) ∼ M u l t i n o m i a l ( ϕ ) , ϕ j = p ( z ( i ) = j ) ( ϕ j ≥ 0 , ∑ k j = 1 , ϕ j = 1 ) ,且 z{1,2,...,k} z ∈ { 1 , 2 , . . . , k } 。同时, {x(i),z(i)} { x ( i ) , z ( i ) } 的联合分布概率为 p(x(i),z(i))=p(x(i)|z(i))p(z(i)) p ( x ( i ) , z ( i ) ) = p ( x ( i ) | z ( i ) ) p ( z ( i ) ) 。最后在 z(i) z ( i ) 给定的情况下, x(i) x ( i ) 的概率服从高斯分布,即为 x(i)|z(i)=jN(μj,Σj) x ( i ) | z ( i ) = j ∼ N ( μ j , Σ j )
整个模型简单描述为对于每个样例 x(i) x ( i ) ,我们先从k 个类别中按多项式分布抽取一个 z(i) z ( i ) , 然后根据 z(i) z ( i ) 所对应的k 个多值高斯分布中的一个生成样例 x(i) x ( i ) ,。整个过程称作混合高斯模型
它的似然函数为:

l(ϕ,μ,Σ)=mi=1logp(x(i);ϕ,μ,Σ)=mi=1logkz(i)=1p(x(i)|z(i);μ,Σ)p(z(i);ϕ) l ( ϕ , μ , Σ ) = ∑ m i = 1 l o g p ( x ( i ) ; ϕ , μ , Σ ) = ∑ m i = 1 l o g ∑ k z ( i ) = 1 p ( x ( i ) | z ( i ) ; μ , Σ ) p ( z ( i ) ; ϕ )

由于 z(i) z ( i ) 未知,上式我们无法使用求偏导,并令其等于0求得 ϕ,μ,Σ ϕ , μ , Σ 参数,故,在这里,我们假设 z(i) z ( i ) 已知,化简 l(ϕ,μ,Σ) l ( ϕ , μ , Σ ) 为:

l(ϕ,μ,Σ)=mi=1logp(x(i)|z(i);μ,Σ)+logp(z(i);ϕ) l ( ϕ , μ , Σ ) = ∑ m i = 1 l o g p ( x ( i ) | z ( i ) ; μ , Σ ) + l o g p ( z ( i ) ; ϕ )

对比高斯判别模型的过程,在这里我们分别对 ϕ,μ,Σ ϕ , μ , Σ 求偏导,并令其等于0,便可以依次求得 ϕ,μ,Σ ϕ , μ , Σ 参数。

ϕj=1mmi=11{z(i)=j} ϕ j = 1 m ∑ m i = 1 1 { z ( i ) = j }

μj=mi=11{z(i)=j}x(i)mi=11{z(i)=j} μ j = ∑ m i = 1 1 { z ( i ) = j } x ( i ) ∑ m i = 1 1 { z ( i ) = j }

Σj=mi=11{z(i)=j}(x(i)μj)(x(i)μj)Tmi=11{z(i)=j} Σ j = ∑ m i = 1 1 { z ( i ) = j } ( x ( i ) − μ j ) ( x ( i ) − μ j ) T ∑ m i = 1 1 { z ( i ) = j }

但是由于 z(i) z ( i ) 未知,我们无法使用高斯判别的方法来解决问题。这需要使用EM算法来解决。

EM Algorithm for GMM

回顾我们在上一篇博文中提到的EM算法

Repeat until convergence{

  1. (E-step) for each i, set
    w(i)j:=Qi(z(i)=j):=p(z(i)=j|x(i);θ) w j ( i ) := Q i ( z ( i ) = j ) := p ( z ( i ) = j | x ( i ) ; θ )
  2. (M-step) set
    θ:=argmaxθiz(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i)) θ := arg max θ ∑ i ∑ z ( i ) Q i ( z ( i ) ) l o g p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) )

使用GMM中的 ϕ,μ,Σ ϕ , μ , Σ 参数替换一般化EM算法中的 θ θ 参数,然后在依次解决 w(i)j w j ( i ) ϕ,μ,Σ ϕ , μ , Σ 参数的更新问题就好。

E-Step

w(i)j=Qi(z(i)=j)=p(z(i)=j|x(i);θ)=P(x(i)|z(i)=j)P(z(i)=j)k(P(x(i)|z(i)=k)P(z(i)=k))(1)(2)(3) w j ( i ) = Q i ( z ( i ) = j ) ( 1 ) = p ( z ( i ) = j | x ( i ) ; θ ) ( 2 ) = P ( x ( i ) | z ( i ) = j ) P ( z ( i ) = j ) ∑ k ( P ( x ( i ) | z ( i ) = k ) P ( z ( i ) = k ) ) ( 3 )

w(i)j w j ( i ) 的含义十每个样例 i i 的隐含类别z(i) j j 的概率。同时,上式中的步骤(2)到步骤(3)可由贝叶斯公式直接得到。根据GMM,我们可以知道x(i)|z(i)=jN(μj,Σj) z(i)Multinomial(ϕ),ϕj=p(z(i)=j) z ( i ) ∼ M u l t i n o m i a l ( ϕ ) , ϕ j = p ( z ( i ) = j ) 。这样一来我们就可以计算 w(i)j w j ( i ) 了。

M-Step

我们得到的是:

argmaxϕ,μ,Σ==mi=1z(i)Qi(z(i))logp(x(i),z(i);ϕ,μ,Σ)Qi(z(i))argmaxϕ,μ,Σmi=1kj=1Qi(z(i))logp(x(i)|z(i)=j;μ,Σ)p(z(i)=j;ϕ)Qi(z(i))argmaxϕ,μ,Σmi=1kj=1ω(i)jlog1(2π)n2|Σj|12exp(12(x(i)μj)TΣ1j(x(i)μj))ϕjω(i)j arg max ϕ , μ , Σ ∑ m i = 1 ∑ z ( i ) Q i ( z ( i ) ) l o g p ( x ( i ) , z ( i ) ; ϕ , μ , Σ ) Q i ( z ( i ) ) = arg max ϕ , μ , Σ ∑ m i = 1 ∑ k j = 1 Q i ( z ( i ) ) l o g p ( x ( i ) | z ( i ) = j ; μ , Σ ) p ( z ( i ) = j ; ϕ ) Q i ( z ( i ) ) = arg max ϕ , μ , Σ ∑ m i = 1 ∑ k j = 1 ω j ( i ) l o g 1 ( 2 π ) n 2 | Σ j | 1 2 e x p ( − 1 2 ( x ( i ) − μ j ) T Σ j − 1 ( x ( i ) − μ j ) ) ⋅ ϕ j ω j ( i )

基于参数μ的函数最大化

对参数 μ μ 的每个分量μl求偏导:

===μlmi=1kj=1ω(i)jlog1(2π)n2|Σj|12exp(12(x(i)μj)TΣ1j(x(i)μj))ϕjω(i)jμlmi=1kj=1ω(i)j12(x(i)μj)TΣ1j(x(i)μj)12mi=1ω(i)lΔμl(2μTlΣ1lx(i)μTlΣ1lμl)mi=1ω(i)lΣ1l(x(i)μl) ▽ μ l ∑ m i = 1 ∑ k j = 1 ω j ( i ) l o g 1 ( 2 π ) n 2 | Σ j | 1 2 e x p ( − 1 2 ( x ( i ) − μ j ) T Σ j − 1 ( x ( i ) − μ j ) ) ⋅ ϕ j ω j ( i ) = − ▽ μ l ∑ m i = 1 ∑ k j = 1 ω j ( i ) 1 2 ( x ( i ) − μ j ) T Σ j − 1 ( x ( i ) − μ j ) = 1 2 ∑ m i = 1 ω l ( i ) Δ μ l ( 2 μ l T Σ l − 1 x ( i ) − μ l T Σ l − 1 μ l ) = ∑ m i = 1 ω l ( i ) Σ l − 1 ( x ( i ) − μ l )

令上式等于0,可以得到:

μl:=mi=1ω(i)lx(i)mi=1ω(i)l μ l := ∑ i = 1 m ω l ( i ) x ( i ) ∑ i = 1 m ω l ( i )

基于参数ϕ的函数最大化

因为与参数 ϕ ϕ 相关的变量仅有ωj(i),所以我们可以将函数最大化问题优化为求下式的最大化问题:

argmaxϕmi=1kj=1ω(i)jlogϕj arg max ϕ ∑ m i = 1 ∑ k j = 1 ω j ( i ) l o g ϕ j

同时,由于 kj=1ϕj=1 ∑ j = 1 k ϕ j = 1 ,所以我们使用拉格朗日乘数法可以得到目标函数:

L(ϕ)=mi=1kj=1ω(i)jlogϕj+β(kj=1ϕj1) L ( ϕ ) = ∑ m i = 1 ∑ k j = 1 ω j ( i ) l o g ϕ j + β ( ∑ k j = 1 ϕ j − 1 )

对参数 ϕ ϕ 求偏导:

ϕjL(ϕ)=mi=1ωj(i)ϕj+1

令上式等于0,可以得到:

ϕj=mi=1ω(i)jβ ϕ j = ∑ i = 1 m ω j ( i ) − β

因为 kj=1ϕj=1 ∑ j = 1 k ϕ j = 1 ,所以:

kj=1ϕj1βββ=kj=1mi=1ω(i)jβ=kj=1mi=1ω(i)jβ=mi=1kj=1ω(i)j=mi=11=m ∑ j = 1 k ϕ j = ∑ j = 1 k ∑ i = 1 m ω j ( i ) − β 1 = ∑ j = 1 k ∑ i = 1 m ω j ( i ) − β − β = ∑ i = 1 m ∑ j = 1 k ω j ( i ) − β = ∑ i = 1 m 1 − β = m

所以:

ϕj:=mi=1ω(i)jm ϕ j := ∑ i = 1 m ω j ( i ) m

基于参数Σ的函数最大化

对参数 Σ Σ 求偏导:

Σjmi=1kj=1ωj(i)log1(2π)n2|Σj|12exp(12(x(i)μj)TΣj1(x(i)μj))ϕjωj(i)=Σjmi=1kj=1ωj(i)[n2log2π12log|Σj|12(x(i)μj)TΣj1(x(i)μj)+logϕjlogωj(i)]=mi=1mj=1ωj(i)12ΣjT+12(x(i)μj)TΣ2(x(i)μj)

令上式等于0,可以得到:

Σj:=mi=1ω(i)j(x(i)μj)(x(i)μj)Tmi=1ω(i)j Σ j := ∑ i = 1 m ω j ( i ) ( x ( i ) − μ j ) ( x ( i ) − μ j ) T ∑ i = 1 m ω j ( i )

EM Algorithm for GMM

所以EM Algorithm for GMM的E-step与M-step为:

Repeat until convergence{

  1. (E-step) for each i, set
    w(i)j=P(x(i)|z(i)=j)P(z(i)=j)k(P(x(i)|z(i)=k)P(z(i)=k)) w j ( i ) = P ( x ( i ) | z ( i ) = j ) P ( z ( i ) = j ) ∑ k ( P ( x ( i ) | z ( i ) = k ) P ( z ( i ) = k ) )
  2. (M-step) set

μl:=mi=1ω(i)lx(i)mi=1ω(i)l μ l := ∑ i = 1 m ω l ( i ) x ( i ) ∑ i = 1 m ω l ( i )

ϕj:=mi=1ω(i)jm ϕ j := ∑ i = 1 m ω j ( i ) m

Σj:=mi=1ω(i)j(x(i)μj)(x(i)μj)Tmi=1ω(i)j Σ j := ∑ i = 1 m ω j ( i ) ( x ( i ) − μ j ) ( x ( i ) − μ j ) T ∑ i = 1 m ω j ( i )

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值