GMM (Gaussian Mixture Model)
Table of Contents
1. GMM(高斯混合模型)简介
Gaussian Mixture Model 是指多个高斯分布函数的线性组合。
先简单地回顾一下多元高斯分布的定义。对于
则称
我们可定义 高斯混合分布:
该分布由
1.1. GMM 用作聚类算法
GMM 用作聚类算法的思想很简单:假设样本数据服从混合高斯分布,根据样本数据集推出混合高斯分布的各个参数,以及各个样本最可能属于哪个高斯分布,这样,GMM 的
假设
2. 使用 EM 算法求解 GMM 中的参数
下面介绍如何通过样本数据求出混合高斯分布的各个参数。
对于高斯混合模型:
假设样本的生成过程由高斯混合分布给出。高斯混合分布的抽样过程如下:首先,随机地在
若样本集
问题在于,对于这个数据集
关于 EM 算法可以参考:http://aandds.com/blog/expectation-maximization.html
2.1. E step
我们引入一个
给定样本点
注 1:由于“每一类中的样本数据都服从正态分布”,所以有
注 2:在
注 3:由于
注 4:我们还可以用其它隐含变量来描述“样本点是由哪个高斯混合成分生成”这个未知事情,比如 1 维随机变量
2.2. M step
EM 算法是一种迭代算法,在“E step”中求得
下面介绍求参数
前面说过,我们不知道每个样本点是由哪个高斯混合成分生成,从而无法使用极大似然估计来求解参数。但现在情况不同了,我们在“E step”中求得了样本点
令
上式中的分式部分和前面推导的
上式的含义是各混合成分的均值可通过样本加权平均来估计,样本权重是每个样本属于该成分的后验概率。
类似地,令
对于混合系数
上式中
求解上面方程组,得(还可得
上式的含义是每个高斯分成的混合系数由样本属于该成分的平均后验概率确定。
3. GMM 聚类算法
3.1. GMM 聚类算法总结
前面已经完整地介绍过了 GMM 聚类算法。这里总结如图 1 所示。
Figure 1: 高斯混合聚类算法
算法第 1 行对高斯混合分布的模型参数进行初始化。然后,在第 2-12 行基于 EM 算法对模型参数进行迭代更新。若 EM 算法满足停止条件,则在第 14-17 行根据高斯混合分布确定簇划分,在第 18 行返回最终结果。
图 2 是使用 EM 算法更新 GMM 参数(
Figure 2: 使用 EM 算法更新 GMM 参数的 gif 动画演示,摘自https://brilliant.org/wiki/gaussian-mixture-model/
3.2. GMM 应用实例
3.3. GMM vs. K-means 算法
GMM 和 K-means 算法都是迭代算法,迭代策略类似:先对参数赋初值,然后交替执行两个步骤,一个步骤是对数据的估计(K-means 是每个点所属簇,GMM 是隐含变量的期望);另一个步骤是用上一步算出的估计值重新计算参数值,更新待估计参数(K-means 是簇心位置,GMM 是混合系数和各个高斯分布的中心位置和协方差矩阵)。
和 K-means 聚类算法不同(它直接给出样本点的类别),GMM 还可以给出某个样本点属于某个类别的概率,这种方式提供的信息量显然更多。
4. 参考
本文主要摘自:《机器学习,周志华,2016》,9.4.3,高斯混合聚类
Christopher M. Bishop etc., Pattern Recognition and Machine Learning, Chapter 9 Mixture Models and EM