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)(ϕj≥0,∑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)=j∼N(μ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
)
,。整个过程称作混合高斯模型。
它的似然函数为:
由于
z(i)
z
(
i
)
未知,上式我们无法使用求偏导,并令其等于0求得
ϕ,μ,Σ
ϕ
,
μ
,
Σ
参数,故,在这里,我们假设
z(i)
z
(
i
)
已知,化简
l(ϕ,μ,Σ)
l
(
ϕ
,
μ
,
Σ
)
为:
对比高斯判别模型的过程,在这里我们分别对
ϕ,μ,Σ
ϕ
,
μ
,
Σ
求偏导,并令其等于0,便可以依次求得
ϕ,μ,Σ
ϕ
,
μ
,
Σ
参数。
但是由于 z(i) z ( i ) 未知,我们无法使用高斯判别的方法来解决问题。这需要使用EM算法来解决。
EM Algorithm for GMM
回顾我们在上一篇博文中提到的EM算法
Repeat until convergence{
- (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 ) ; θ ) - (M-step) set
θ:=argmaxθ∑i∑z(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 w j ( i ) 的含义十每个样例 i i 的隐含类别为 j j 的概率。同时,上式中的步骤(2)到步骤(3)可由贝叶斯公式直接得到。根据GMM,我们可以知道和 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
我们得到的是:
基于参数μ的函数最大化
对参数 μ μ 的每个分量求偏导:
令上式等于0,可以得到:
基于参数ϕ的函数最大化
因为与参数 ϕ ϕ 相关的变量仅有,所以我们可以将函数最大化问题优化为求下式的最大化问题:
同时,由于 ∑kj=1ϕj=1 ∑ j = 1 k ϕ j = 1 ,所以我们使用拉格朗日乘数法可以得到目标函数:
对参数 ϕ ϕ 求偏导:
令上式等于0,可以得到:
因为 ∑kj=1ϕj=1 ∑ j = 1 k ϕ j = 1 ,所以:
所以:
基于参数Σ的函数最大化
对参数 Σ Σ 求偏导:
令上式等于0,可以得到:
EM Algorithm for GMM
所以EM Algorithm for GMM的E-step与M-step为:
Repeat until convergence{
- (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 ) ) - (M-step) set
}