Mixtures of Gaussian
这一讲,我们讨论利用EM (Expectation-Maximization)做概率密度的估计。假设我们有一组训练样本 x(1),x(2),...x(m) ,因为是unsupervised的学习问题,所以我们没有任何y的信息。
我们希望利用一个联合分布
p(x(i),z(i))=p(x(i)|z(i))p(z(i))
来拟合这些数据, 其中
z(i)∼Multinomial(ϕ)
(
ϕj⩾0
,
∑kj=1ϕj=1
,参数
ϕj
给出了概率
p(z(i)=j)
),并且
x(i)|z(i)=j∼N(μj,Σj)
,我们让k表示
z(i)
可能值的个数,因此在这个模型中,每一个训练样本
x(i)
是由随机取某一个值的变量
z(i)
生成的,所以
x(i)
是从k个的高斯分布中的一个(由
z(i)
指示)提取出来的。这个称为高斯混合模型,我们也要注意到
z(i)
是隐含的随机变量,高斯混合模型涉及的参数是
ϕ,μ,Σ
,为了估计这些变量,我们可以建立如下的表达式:
我们发现,通过求偏导数求极值的方法,无法得到这些参数的解,从上面的表达式可以看出,随机变量
z(i)
告诉了我们
x(i)
是从k个高斯分布中的其中一个生成的,如果我们知道是哪一个高斯分布,或者说如果知道
z(i)
的值,那我们可以利用最大似然估计的方法估计参数
ϕ,μ,Σ
,如果
z(i)
已知,那么上式可以写成:
利用最大似然估计,可以求得这些参数为:
从上面的表达式可以看出,如果 z(i) 的值已知,那么参数 ϕ,μ,Σ 的估计与之前介绍的Gaussian discriminant analysis 模型对参数的估计是一样的,这里的 z(i) 就像Gaussian discriminant analysis 模型中的输出y一样。
但是遗憾的是,我们不知道 z(i) 的值,所以这里我们要介绍另外一种unsupervised的学习方法,称为EM算法,EM算法主要分为两步,在E-step,我们主要对 z(i) 的值做猜测,在M-step,我们在E-step假设的基础上,利用最大似然估计求参数 ϕ,μ,Σ ,算法主要流程如下:
Repeat until convergence {
E-step: 对于每一个i,j,设置:
M-step: 跟新如下参数:
}
在E-step,我们可以通过给定的
x(i)
和当前估计的参数计算
z(i)
的后验概率,利用贝叶斯估计,我们可以得到:
这里,
p(x(i)|z(i)=j;μ,Σ)
通过计算一个均值为
μj
,协方差为
Σj
的高斯分布在
x(i)
处的概率密度得到,
p(z(i)=j,ϕ)
是由
ϕj
给出,在E-step计算的
w(i)j
的值,表示我们对
z(i)
的一种弱估计。
同样,我们也可以将M-step的参数跟新与知道 z(i) 确切值的参数估计的表达式进行对比,可以看出两者是一致的,只不过前面的表达式 1{z(i)=j} 指出了我们利用哪个高斯分布,而现在换成了 w(i)j 。
EM 算法同样会让人联想起k均值算法,k均值是硬聚类,将样本聚到某一类里,而EM算法是弱聚类,样本所属的高斯分布由 w(i)j 估计。
参考来源:
Andrew Ng, “Machine Learning”, Stanford University.