简介
高斯混合模型(Gaussian Mixture Model, GMM) 是一种应用广泛的聚类算法。该方法通过对多个高斯模型做线性组合,对样本数据的概率密度分布进行估计,以达到聚类的目的。
高斯混合模型的主要思想是使用高斯分布作为参数模型,并使用期望最大化(EM)算法进行参数估计。其中,每个高斯分布代表一个类。我们将样本数据分别在几个高斯分布上投影, 就得到数据在各个类别上的概率值最大的类作为估计结果。
从中心极限定理的角度来看,把混合模型假设为高斯模型是较为合理的。当然,也可以根据实际数据假设为任何分布类型的混合模型,不过假设为高斯模型较容易计算和推导。另外,理论上,我们也可以通过增加模型的个数,使高斯混合模型近似任何类型的概率分布。
高斯混合模型的应用领域
(1)数据集分类;
(2)图像分割及特征提取,如医学图像中将直方图的多峰特征看作多个高斯分布的叠加,以解决图像的分割问题;
(3)语音分割及特征提取,如从噪声中提取某个人的声音、 从音乐中提取背景音乐等;
(4)视频分析及特征提取,如智能监控系统中对运动目标检测的检测提取。
高斯混合模型算法流程
高斯混合模型算法具体步骤
(1)构建高斯混合模型;
首先,需要对高斯混合模型的形式进行改写,以便于使用 EM 算法估计模型参数。高斯混合模型的原始形式如下:
其中,K 表示高斯分布模型的个数,K 个模型就对应 K 个聚类。πk为第 k 个模型的权重,也可以看成第 k 类被选中的概率, 引入一个新的 K 维随机变量 z,zk只能取 0 或 1 两个值。zk=1 表示第 k 类被选中的情况,即 p(zk=1)=πk;zk=0 表示第 k 类未被选中的情况。zk 满足以下两个条件:
假设 zk 之间是独立同分布的,可以写出 z 的联合概率分布形式:
每一类中的数据都服从高斯分布, 用条件概率的形式表示如下:
进而可以写出如下的形式:
根据条件概率公式, 可以求出 p(x)的形式:
式(6)为改进后的高斯混合模型,可以看出该式与原始模型有一样的形式。式(6)中引入了新的变量 z,但 zk=0 的项为 1,省略。变量 z 通常称为隐变量。“隐变量” 的意思是:随机选择一个数据点,但是不知道该数据点属于哪一类,数据点的归属观察不到,因此引入隐变量 z 来描述这一现象。
在贝叶斯的思想下,能够求得后验概率 p(z|x):
(2)EM 算法估计模型参数:
假设样本数据X={x1,x2,...,xN},高斯混合模型有3个参数需要估计,分别是πk、μk 和Σk。为了估计折3个参数,需要分别求解出这3个参数的最大似然函数。
①初始化模型数目K,对每个模型k设置πk、μk和Ck的初始值。
方案1:将协方差矩阵Ck设置为单位矩阵,每个模型的权重πk=1/K,均值μk设为随机数;
方案2:用K-Means聚类算法对样本进行聚类,得到K值,然后利用各类的均值作为μk,并计算协方差矩阵Σk,πk 取各类样本占样本总数的比例。
②估计步骤(E-Step),计算后验概率γ (znk):
根据当前的πk、μk 和Σk,计算后验概率γ(znk)
③最大化步骤(M-Step), 更新参数:
根据E-Step中计算的γ(znk)再计算新的πk、μk 和Σk
N表示样本数量的量,γ(znk)表示数据n属于聚类k的后验概率。Nk表示属于第k个聚类的数据的量。μknew表示第k类数据的加权平均,每个样本数据的权值式γ(znk),跟第 k 个聚类有关。
④收敛条件
计算模型的对数似然函数:
检查参数是否收敛或对数似然函数是否收敛,收敛则推出迭代,否则返回第②步。
算法的改进与优化
因提出时间较早,随着其他技术的不断更新和完善,高斯混合模型的诸多不足之处也逐渐显露,因此许多高斯混合模型的改进算法也应运而生。高斯混合模型是用高斯概率密度函数精确地量化事物,它是一个将事物分解为若干基于高斯概率密度函数形式的模型。在这个过程中,容易出现K值固定导致估计参数不具有最优性的问题。针对以上算法的不足之处,算法的改进主要为自适应调整K的值。
高斯混合模型保持固定不变的高斯混合模型的个数K,会造成系统运算资源的浪费。一种改进方法式利用最大似然估计提出高斯混合模型个数的选择方法,引入了负的先验概率,当权值小于阈值时,减少高斯混合模型的个数。另一种改进方法是消除混合分量,在此判断 K 的最优值,从而使高斯混合模型对数据集进行最佳拟合。如果两个混合分量有相同的参数,在混合分量中采用竞争原则,将不必要的分量消除。