ML基础:高斯混合模型是什么?

高斯混合模型是一种几率模型,它假设全部数据点都是从有限数量的高斯分布的混合参数中生成的。web

1.高斯混合模型概念算法

实际上,能够将混合模型视为对 k-means聚类算法的扩展,它包含了数据的协方差结构以及隐高斯模型中心的信息。该方法使用了高斯分布做为参数模型,并使用了指望最大(Expectation Maximization,简称EM)算法进行训练。机器学习

2.基本原理与相关知识svg

2.1 高斯分布函数

**高斯分布(Gaussian distribution)常常被称为正态分布(normal distribution),是一种在天然界大量存在的、最为常见的分布形式。**下图是一张标准的高斯分布曲线图,两头低,中间高,左右对称因其曲线呈钟形,所以人们又常常称之为钟形曲线:学习

image

高斯分布的几率密度函数公式以下:优化

image

公式中包含两个参数,参数μ表示均值,参数σ表示标准差,均值对应正态分布的中间位置,在本例中咱们能够推测均值在180cm附近。标准差衡量了数据围绕均值分散的程度。orm

注意:在实践中,几率分布要先进行归一化,也就是说曲线下面的面积之和须要为1,这样才能确保返回的几率密度在容许的取值范围内。xml

2. 指望最大化算法(EM)与高斯模型训练blog

模型的EM训练过程:

  1. 观察采样的几率值和模型几率值的接近程度,来判断一个模型是否拟合良好。

​2.调整模型以让新模型更适配采样的几率值。

3.反复迭代这个过程不少次,直到两个几率值很是接近时,咱们中止更新并完成模型训练。

模型生成的数据来决定似然值,即经过模型来计算数据的指望值。经过更新参数μ和σ来让指望值最大化。这个过程能够不断迭代直到两次迭代中生成的参数变化很是小为止。该过程和k-means的算法训练过程很类似(k-means不断更新类中心来让结果最大化),只不过在这里的高斯模型中,须要同时更新两个参数:分布的均值和标准差

3. 高斯混合模型实际案例

虽然GMM常常用于聚类,但咱们能够将得到的聚类与数据集中的实际类别进行比较。咱们用训练集中的类的均值初始化高斯矩阵的均值,以使这种比较有效。

image

image

image

image

image

image

4. k-means和GMM的关系

在特定条件下,k-means和GMM方法能够互相用对方的思想来表达。在k-means中根据距离每一个点最接近的类中心来标记该点的类别,这里存在的假设是每一个类簇的尺度接近且特征的分布不存在不均匀性。这也解释了为何在使用k-means前对数据进行归一会有效果。高斯混合模型则不会受到这个约束,由于它对每一个类簇分别考察特征的协方差模型。

**K-means算法能够被视为高斯混合模型(GMM)的一种特殊形式。**总体上看,高斯混合模型能提供更强的描述能力,由于聚类时数据点的从属关系不只与近邻相关,还会依赖于类簇的形状。n维高斯分布的形状由每一个类簇的协方差来决定。在协方差矩阵上添加特定的约束条件后,可能会经过GMM和k-means获得相同的结果。

实践中若是每一个类簇的协方差矩阵绑定在一块儿(就是说它们彻底相同),而且矩阵对角线上的协方差数值保持相同,其余数值则所有为0,这样可以生成具备相同尺寸且形状为圆形类簇。在此条件下,每一个点都始终属于最近的中间点对应的类。

在k-means方法中使用EM来训练高斯混合模型时对初始值的设置很是敏感。而对比k-means,GMM方法有更多的初始条件要设置。实践中不只初始类中心要指定,并且协方差矩阵和混合权重也要设置。能够运行k-means来生成类中心,并以此做为高斯混合模型的初始条件。因而可知并两个算法有类似的处理过程,主要区别在于模型的复杂度不一样。

**总体来看,全部无监督机器学习算法都遵循一条简单的模式:给定一系列数据,训练出一个能描述这些数据规律的模型(并指望潜在过程能生成数据)。**训练过程一般要反复迭代,直到没法再优化参数得到更贴合数据的模型为止。