基础学习:高斯混合模型GMM

高斯混合模型(Gaussian Mixture Model)

首先看一个图直观理解:

包含三个高斯分量的一个维度的GMM是如何由其高斯分量叠加而成

在这里插入图片描述
基本原理:

在这里插入图片描述
==》混合模型+高斯模型 组成

1.混合模型(MIxture Model)
混合模型是一个可以用来表示在总体分布(distribution)中含有 K 个子分布的概率模型,换句话说,混合模型表示了观测数据在总体中的概率分布,它是一个由 K 个子分布组成的混合分布。混合模型不要求观测数据提供关于子分布的信息,来计算观测数据在总体分布中的概率。

2.高斯模型(Gauss Model)
分为 单高斯模型(样本数据一维;适合两分类)和高斯混合模型(多维;多分类)

-单高斯混合模型
当样本数据 X 是一维数据(Univariate)时,高斯分布遵从下方概率密度函数(Probability Density Function):
在这里插入图片描述
其中μ为数据均值(期望),σ ^2为数据标准差(Standard deviation)
当样本数据 X=(x1,x2,) 是多维数据(Multivariate)时,高斯分布为联合概率密度函数:
在这里插入图片描述
其中, μ为数据均值(期望),σ ^2为数据协方差(Covariance),D 为数据维度。
注意与一维高斯分布不同,其中x是维数为d的样本向量(列向量),表明样本x属于类别的概率大小。

2.高斯混合模型
高斯混合模型可以看作是由 K 个单高斯模型组合而成的模型,这 K 个子模型是混合模型的隐变量(Hidden variable)。一般来说,一个混合模型可以使用任何概率分布,这里使用高斯混合模型是因为高斯分布具备很好的数学性质以及良好的计算性能。
GMM的概率密度函数如下:
K:类别;πk:权重(或第K类被选中的概率);

在这里插入图片描述
在这里插入图片描述

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

二维混合高斯:曲面;三维混合高斯:三维曲面。
通过调整混合高斯分布的系数(π,μ,Σ),可以使得概率密度曲面去拟合任意的三维曲面,从而采样生成所需要的数据样本。

总结:
①均值μ:决定各维变量的中心位置,(0,0)则表示在坐标轴中间。
②对于协方差矩阵,正对角线上的两个元素,即δ11和δ22表征的是x维和y维变量的方差,决定了整个高斯曲面在某一维度上的“跨度”,方差越大,“跨度”越大;
③协方差矩阵的负对角线上面的两个元素,即δ12和δ21(δ12=δ21)表征的是各维变量之间的相关性:δ12>0说明x与y呈正相关(x越大,y越大),其值越大,正相关程度越大;δ12<0呈负相关;否则不相关。等于0说明相互独立。

求解参数:(π,μ,Σ)
1.极大似然估计(Maximum Likehood Estimate, MLE)(最大化对数似然函数)
目的:找到一个合适的高斯分布(也就是确定高斯分布的参数μ , Σ),使得这个高斯分布能产生这组样本的可能性尽可能大。
在这里插入图片描述
怎么找到这个合适的高斯分布呢(在图8中的表示就是1~4哪个分布较为合适)?
这时候就用到 似然函数 了。
似然函数:
样本集Y=y1,y2...假设样本的抽样是独立的,那么同时抽到这N个样本的概率,就是抽到每个样本概率的乘积,也就是样本集Y的联合概率。此联合概率即为似然函数:
在这里插入图片描述
对上式进行求导并令导数为0(即最大化似然函数,一般还会先转化为对数似然函数再最大化),所求出的参数就是最佳的高斯分布对应的参数。(最终可以得到序号1对应的高斯分布模型是最佳的模型。)
最大化似然函数的意义:通过使得样本集的联合概率最大来对参数进行估计,从而选择最佳的分布模型。

但是:
对于GMM,求解其参数(μ,Σ,π),使得由这组参数确定的GMM模型最有可能产生采样的样本。
要利用极大似然估计求解模型最重要的一步就是求出似然函数,即样本集出现的联合概率。而对于混合高斯模型,如何求解某个样本yt 的概率?显然我们得先知道这个样本来源于哪一类高斯模型,然后求这个高斯模型生成这个样本的概率p(yt )。
但是,我们只有样本,不知道样本到底来源于哪一类的高斯模型。

总结:
如果我们已经清楚了某个变量服从的高斯分布,而且通过采样得到了这个变量的样本数据,想求高斯分布的参数,这时候极大似然估计可以胜任这个任务;而如果我们要求解的是一个混合模型,只知道混合模型中各个类的分布模型(譬如都是高斯分布)和对应的采样数据,而不知道这些采样数据分别来源于哪一类(隐变量),那这时候就可以借鉴EM算法。EM算法可以用于解决数据缺失的参数估计问题(隐变量的存在实际上就是数据缺失问题,缺失了各个样本来源于哪一类的记录)。

2.EM算法
是一种迭代算法,1977 年由 Dempster 等人总结提出,用于含有隐变量(Hidden variable)的概率模型参数的最大似然估计。
每次迭代包含两个步骤:

E-step:求期望
M-step:求极大,计算新一轮迭代的模型参数
在这里插入图片描述

EM算法

最大期望算法(Expectation-maximization algorithm,又译为期望最大化算法)。

在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐性变量。最大期望算法经过两个步骤交替进行计算,
(1)计算期望 E,利用对隐藏变量的现有估计值,计算其最大似然估计值;
(2)最大化 M,最大化在E步上求得的最大似然值来计算参数的值。M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。

它与极大似然估计MLE算法的区别:

比如两枚硬币A和B,5轮循环每轮循环10次,共计50次投币:

  • 如果知道每次抛的是A还是B,那可以直接估计,即图a (MLE算法)。
  • 如果不知道抛的是A还是B(这就所谓的隐变量),只观测到5轮循环每轮循环10次,共计50次投币的结果,这时用MLE没法直接估计A和B的正面概率,考虑用EM算法。
    在这里插入图片描述
    E+M:
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 高斯混合模型GMM)聚类是一种机器学习方法,它是将数据集分成多个高斯分布的集合的过程。MATLAB中有一个专门用于GMM聚类的函数gmdistribution,可以用来确定数据集中存在的高斯分布的数量。通过使用该函数,可以将数据集分成不同的聚类。当然,可以使用其他聚类方法,例如K均值聚类,但GMM聚类具有以下优点: 1. 在确定聚类的数量时更加灵活,因为可以使用概率模型来估计每个聚类的权重。 2. 可以处理非球形簇,这是K均值聚类无法处理的。 3. 可以估计聚类的不确定性。 为了使用gmdistribution函数进行聚类,需要将待聚类的数据集作为参数传递给函数。还必须指定每个高斯分布的数量。最后,gmdistribution函数需要一个初始值矩阵来初始化每个高斯分布。可以选择从数据集中选取初始值,也可以使用一组随机值来初始化。在运行gmdistribution函数后,将返回一个包含数据点所属聚类的向量。可以使用这些向量来进一步分析和可视化数据。 总之,GMM聚类是一种有用的机器学习技术,可用于将数据集分成不同的聚类。MATLAB中的gmdistribution函数可帮助用户确定聚类的数量和每个高斯分布的初始值,聚类之后可以进一步分析和可视化数据点。 ### 回答2: 高斯混合模型GMM)是一种基于概率分布建立的聚类方法。它假设每个聚类都可以用多个高斯分布来拟合,而这些高斯分布的加权和就形成了整个数据集的概率密度函数。Matlab提供了GMM聚类算法的实现,可以方便地进行聚类操作。 在Matlab中,通过调用gmdistribution函数可以建立一个GMM模型,并用数据集进行初始化。该函数的参数包括聚类数目、协方差类型、初始化方式等。在得到GMM模型后,可以使用fit函数对数据集进行拟合。fit函数会返回每个数据点属于每个聚类的概率值。 在对数据进行聚类后,可以使用gmdistribution对象的其他函数进行分析和可视化,如pdf函数可以计算某个点属于每个聚类的概率密度值,cluster函数可以给出数据集中每个点所属的聚类,plot函数可以绘制聚类的概率密度函数。此外,Matlab还提供了一些有关GMM的其他函数,如gmdistribution.fit和gmdistribution.random,可以用来生成满足GMM模型的数据集和对新数据进行预测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值