高斯混合模型是什么?用几个正态分布叠加来描述数据
高斯混合模型(Gaussian Mixture Model,GMM)是一种用多个正态分布(也叫高斯分布)的加权组合,来描述复杂数据分布的概率模型。它的基本思想是:现实中的很多数据,虽然整体的分布形状很复杂,但可以看作是由几个简单的钟形分布叠加而成的。
一个直观的例子
假设统计了一个班级所有学生的身高,画出分布图后发现,它不是一个简单的单峰钟形,而是有两个峰:一个在 160 厘米附近,一个在 175 厘米附近。原因很可能是班上既有女生也有男生,女生的身高大致服从一个以 160 厘米为中心的正态分布,男生的身高大致服从一个以 175 厘米为中心的正态分布,两者混在一起就形成了双峰的分布。高斯混合模型正是这样描述数据的:整体分布等于若干个正态分布按一定的比例加权相加,每个正态分布叫作一个分量,有自己的中心(均值)、分散程度(方差,多维时为协方差矩阵)和所占的比例(权重)。在这个例子中,如果男女生各占一半,两个分量的权重就各是 0.5。
理论上,只要分量足够多,高斯混合模型可以以任意的精度逼近任何光滑的概率分布,因此它是一种非常灵活的密度估计工具。
怎么估计模型的参数
估计高斯混合模型参数的难点在于,我们通常并不知道每个数据点来自哪一个分量,比如只有身高数据,没有记录性别。这个未知的“来自哪个分量”就是一个隐变量。解决这类问题的标准方法是期望最大化(EM)算法,它交替地进行两步:E 步,根据当前估计的参数,计算每个数据点属于各个分量的概率,比如身高 170 厘米的学生,可能有 30% 的概率来自女生的分量、70% 的概率来自男生的分量;M 步,把这些概率作为权重,重新估计每个分量的均值、协方差和权重。反复迭代,直到参数稳定下来。EM 算法保证每次迭代都不会让似然变差,但可能收敛到局部最优,结果受初始值的影响,常用 K 均值的结果作为初始值,或者多次运行取最好的结果。分量的个数通常需要事先指定,可以用贝叶斯信息准则(BIC)等指标来帮助选择。
与 K 均值聚类的关系
高斯混合模型常被用于聚类:每个分量对应一个簇。它与 K 均值聚类有密切的关系,但更加灵活。K 均值把每个数据点硬性地分配给一个簇,而高斯混合模型给出的是每个点属于各个簇的概率,这叫软聚类,对于处在两个簇交界处的点,它能表达出“不太确定”。K 均值隐含地假设每个簇都是大小相近的圆球形,而高斯混合模型的每个分量有自己的协方差矩阵,可以描述椭圆形的、大小和方向各不相同的簇。实际上,K 均值可以看作高斯混合模型在所有分量的协方差都相同、都是同样大小的圆球、并且使用硬分配时的一个特殊情况。
应用
语音识别:在深度学习兴起之前,高斯混合模型与隐马尔可夫模型结合的 GMM-HMM 是语音识别的主流技术,用高斯混合模型来描述每个语音单元的声学特征的分布,2012 年前后逐渐被深度神经网络取代。说话人识别:用高斯混合模型来刻画每个人声音的特征。异常检测:学会了正常数据的分布之后,那些在这个分布下概率很低的数据点就很可能是异常。图像分割:比如把图像中的像素按颜色分成前景和背景。此外,它还被用于背景建模、数据生成,以及作为更复杂模型的组成部分。