Gaussian Mixture Model and Expectation-Maximization Algorithm
Zhao Zhao

一、 高斯混合模型(Gaussian Mixture models, GMM)

高斯模型

当样本数据 X 是一维数据(Univariate)时,高斯分布遵从下方概率密度函数(Probability Density Function): 其中 为数据均值(期望), 为数据标准差(Standard deviation)。

当样本数据 是多维数据(Multivariate)时,高斯分布遵从下方概率密度函数: 其中 为数据均值(期望, 为数据标准差(Standard deviation), 为数据维度。服从二维高斯分布的数据主要集中在一个椭圆内部,服从三维的数据集中在一个椭球内部。

(1)均值表征的是各维变量的中心,其对二维高斯曲面的影响较好理解,它使得整个二维高斯曲面在xoy平面上移动; (2)对于协方差矩阵,对角线上的两个元素,即表征的是x维和y维变量的方差,决定了整个高斯曲面在某一维度上的“跨度”,方差越大,“跨度”越大; (3)协方差矩阵的斜对角线上面的两个元素,即=)表征的是各维变量之间的相关性:说明x与y呈正相关(x越大,y越大),其值越大,正相关程度越大;呈负相关;否则不相关。

GMM

高斯混合模型可以看作是由 K 个单高斯模型组合而成的模型,这 K 个子模型是混合模型的隐变量(Hidden variable)。一般来说,一个混合模型可以使用任何概率分布,这里使用高斯混合模型是因为高斯分布具备很好的数学性质以及良好的计算性能。GMM的概率密度函数如下: 其中,是第个高斯模型的概率密度函数,可以看成选定第个模型后,该模型产生的概率; 是第个高斯模型的权重,称作选择第个模型的先验概率,且满足.

高斯混合模型的本质就是融合几个单高斯模型,来使得模型更加复杂,从而产生更复杂的样本。理论上,如果某个混合高斯模型融合的高斯模型个数足够多,它们之间的权重设定得足够合理,这个混合模型可以拟合任意分布的样本。

GMM的贝叶斯理解

在介绍GMM参数估计之前,先改写GMM的形式,改写之后的GMM模型可以方便地使用EM估计参数。GMM的原始形式如下: 前面提到 可以看成是第类被选中的概率。我们引入一个新的维随机变量. 只能取0或1两个值;表示表示第类被选中的概率,即:; 如果表示第类没有被选中的概率。更数学化一点,要满足以下两个条件: 的维数是2, 如果从第一类中取出一个点,则; 如果从第二类中取出一个点,则.

的概率就是, 假设之间是独立同分布的(iid),我们可以写出的联合概率分布形式,就是连乘: 因为只能取0或1, 且中只能有一个全为1而其他全为0,所以上式是成立的。(若选中了的概率为, 则其他没中的概率一定为1)。 若选中了,则此时的条件概率服从第个正态分布为: 即第类中的数据服从正态分布。进而上式有可以写成如下形式: 根据条件概率公式,可以求出的形式为:

上式第二个等号,对求和,实际上就是。又因为对某个,只要,有,所以的项为1,可省略,最终得到第三个等号.

是先验概率,是似然概率,很自然我们会想到求出后验概率: 该项具有重要的物理意义,它为给定样本点 x后隐变量 的后验概率,可直观理解某个高斯分量对产生该样本点所负有的“责任”(resposibility);GMM 聚类就是利用 的值来做软分配的。

二、EM算法估计GMM参数

EM算法(Expectation-Maximization algorithm)分两步,第一步先求出要估计参数的粗略值,第二步使用第一步的值最大化似然函数。因此要先求出GMM的似然函数

给定数据, 其中为样本维数,矩阵来表示各个样本对应的隐变量。GMM模型中有三个参数需要估计,分别为, 将(4)式稍微改写一下:

有的文章中会用这个表示,有的文章会用

为了估计这三个参数,需要分别求解出这三个参数的最大似然函数。(11)式所有样本连乘得到最大似然函数,对(11)式取对数得到对数似然函数为: 首先令式 (12) 关于的偏导为 0 可得以下方程: 其对导数为: 因此,我们有 (15)式中,表示点的数量, 表示点()属于聚类的后验概率,我们可以将解释为被分配给类别的有效样本数量,而 即为所有样本点的加权算术平均值,每个样本点的权重等于第 个高斯分量对产生该样本点所负有的“责任”。

同理求的最大似然函数,可以得到: 最后剩下的最大似然函数。注意到有限制条件, 因此我们需要加入拉格朗日算子: 求上式关于的最大似然函数,得到: 式两边同时对求和 我们先指定的初始值, 带入(10)计算,然后代入(15),(16),(19)求得,接着用求得的再带入(10)得到新的,然后将新的代入(15),(16),(19)。

EM算法:

  1. 定义分量数目, 对每个分量设置, 然后计算(12)式的对数似然函数;

  2. E step

    根据当前的计算后验概率:

  3. M step

    根据E step中计算的再计算新的

  4. 计算(12)式的对数似然函数:

  5. 检查参数是否收敛或对数似然函数是否收敛,若不收敛,则返回第2步

https://blog.csdn.net/lin_limin/article/details/81048411

https://zhuanlan.zhihu.com/p/30483076

https://www.cnblogs.com/huangyc/p/10125117.html

https://blog.csdn.net/jinping_shi/article/details/59613054