‘壹’ 单高斯模型SGM & 高斯混合模型GMM
在了解高斯混合模型之前,我们先来看看什么是高斯分布,高斯分布大家应该都比较熟悉了,就是我们平时所说的正态分布,也叫高斯分布。正态分布是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力。
正态分布的特点
集中性:正态曲线的高峰位于正中央,即均数所在的位置。
对称性:正态曲线以均数为中心,左右对称,曲线两端永远不与横轴相交。
均匀变动性:正态曲线由均数所在处开始,分别向左右两侧逐渐均匀下降。
若随机变量 服从一个数学期望为 、方差为 的正态分布,记为 。其中期望值 决定了其位置,标准差 决定了分布的幅度。当 = 0, = 1时,正态分布是标准正态分布。
正态分布有极其广泛的实际背景, 生产与科学实验中很多随机变量的概率分布都可以近似地用正态分布来描述 。例如,在生产条件不变的情况下,产品的强力、抗压强度、口径、长度等指标;同一种生物体的身长、体重等指标;同一种种子的重量;测量同一物体的误差;弹着点沿某一方向的偏差;某个地区的年降水量;以及理想气体分子的速度分量,等等。一般来说,如果一个量是由许多微小的独立随机因素影响的结果,那么就可以认为这个量具有正态分布(见中心极限定理)。从理论上看,正态分布具有很多良好的性质 ,许多概率分布可以用它来近似;还有一些常用的概率分布是由它直接导出的,例如对数正态分布、t分布、F分布等。
高斯模型有单高斯模型(SGM)和混合高斯模型(GMM)两种。
概率密度函数服从上面的正态分布的模型叫做单高斯模型,具体形式如下:
当样本数据 是一维数据(Univariate)时,高斯模型的概率密度函数为:
其中: 为数据的均值, 为数据的标准差。
当样本数据 是多维数据(Univariate)时,高斯模型的概率密度函数为:
其中: 为数据的均值, 为协方差,d为数据维度。
高斯混合模型(GMM)是单高斯概率密度函数的延伸,就是用多个高斯概率密度函数(正态分布曲线)精确地量化变量分布,是将变量分布分解为若干基于高斯概率密度函数(正态分布曲线)分布的统计模型。
用通俗一点的语言解释就是, 个单高斯模型混合在一起,生成的模型,就是高斯混合模型。这 个子模型是混合模型的隐变量(Hidden variable)。一般来说,一个混合模型可以使用任何概率分布,这里使用高斯混合模型是因为高斯分布具备很好的数学性质以及良好的计算性能。
GMM是工业界使用最多的一种聚类算法。它本身是一种概率式的聚类方法,假定所有的样本数据X由K个混合多元高斯分布组合成的混合分布生成。
高斯混合模型的概率密度函数可以表示为:
其中:
是观察数据属于第 个子模型的概率, ;
是第 个的单高斯子模型的概率密度函数, 或
,具体函数见上方单高斯模型的概率密度函数。
参数估计有多种方法,有矩估计、极大似然法、一致最小方差无偏估计、最小风险估计、同变估计、最小二乘法、贝叶斯估计、极大验后法、最小风险法和极小化极大熵法等。最基本的方法是最小二乘法和极大似然法。
极大似然估计的思想是 :随机试验有多个可能的结果,但在一次试验中,有且只有一个结果会出现,如果在某次试验中,结果w出现了,则认为该结果发生的概率最大。
1)写出似然函数:
假设单个样本的概率函数为 ,对每个样本的概率函数连乘,就可以得到样本的似然函数
2)对似然函数取对数:
目的是为了让乘积变成加法,方便后续运算
3)求导数,令导数为0,得到似然方程:
和 在同一点取到最大值,所以可以通过对 求导,令导数为零,实现同个目的
4)解似然方程,得到的参数即为所求
对于单高斯模型,可以使用极大似然估计(MLE)来求解出参数的值。
单高斯模型的对数似然函数为:
上式分别对 和 求偏导数,然后令其等于0,可以得到对应的参数估计值:
如果依然按照上面的极大似然估计方法求参数
GMM的对数似然函数为:
对上式求各个参数的偏导数,然后令其等于0,并且还需要附件一个条件: 。
我们会发现,直接求导无法计算出参数。所以我们需要用其它方式去解决参数估计问题,一般情况下我们使用的是迭代的方法,用期望最大算法(Expectation Maximization,EM)进行估计。
EM算法的具体原理以及示例见我的另外一篇文章。
‘贰’ EM算法求混合高斯分布的参数时,图中的T是什么意思
这里的T是表示一个函数的表达式,也就是是说T(U,S,X,Y,Z......) 实际上是t的函数,其中,t是函数(也就是因变量),U,S,X,Y,Z......都是函数t的自变量。T是函数关系。 y=f(x) =kx+b y就是x的函数,f表示的一种函数关系,只是这里的函数关系比较抽象,并不是具体的,而若是给出具体的函数关系就是kx+b这样的表达式了。 只是一个是抽象的关系, 一个是具体的关系而已 而楼主给的函数是个多元函数,也就是说,U,S,X,Y,Z......等共同作用影响函数t的变化。 这个函数关系的描述就是U-宇宙;S空间,XYZ,......事件,顺序等多个因素共同一种方式T来影响时间t的变化。估计这个是相对论或者霍金的时间理论那的东西。
‘叁’ 极大似然估计和EM算法初步
本文来自我的个人博客 https://www.zhangshenghai.com/posts/1422/
极大似然估计是在知道结果的情况下,寻求使该结果出现可能性极大的条件,以此作为估计值。在维基网络中,极大似然估计的定义是这样的:
首先从一个例子入手,假设我们需要调查某个地区的人群身高分布,那么先假设这个地区人群身高服从正态分布 。注意,极大似然估计的前提是要假设数据总体的分布, 不知道数据分布是无法使用极大似然估计的 。假设的正态分布的均值和方差未知,这个问题中极大似然估计的目的就是要估计这两个参数。
根据概率统计的思想,可以依据样本估算总体,假设我们随机抽到了1000个人,根据这1000个人的身高来估计均值 和方差 。
将其翻译成数学语言:为了统计该地区的人群身高分布,我们独立地按照概率密度 抽取了1000个样本组成样本集 ,我们想通过样本集 来估计总体的未知参数 。这里概率密度 服从高斯分布 ,其中的未知参数是 。
那么怎样估算 呢?
这里每个样本都是独立地从 中抽取的,也就是说这1000个人之间是相互独立的。若抽到 的概率是 ,抽到 的概率是 ,那么同时抽到它们的概率就是 。同理,同时抽到这1000个人的概率就是他们各自概率的乘积,即为他们的联合概率,这个联合概率就等于这个问题的似然函数:
对 L 取对数,将其变成连加的,称为对数似然函数,如下式:
对似然函数求所有参数的偏导数,然后让这些偏导数为0,假设有n个参数,就可以得到n个方程组成的方程组,方程组的解就是似然函数的极值点了,在似然函数极大的情况下得到的参数值 即为我们所求的值:
极大似然估计是建立在这样的思想上:已知某个参数能使这个样本出现的概率极大,我们当然不会再去选择其他小概率的样本,所以干脆就把这个参数作为估计的真实值。
和极大似然估计一样,EM算法的前提也是要假设数据总体的分布, 不知道数据分布是无法使用EM算法的 。
概率模型有时既含有观测变量,又含有隐变量。如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法,或贝叶斯估计法估计模型参数。但是,当模型含有隐变量时,就不能简单地使用这些估计方法。EM算法就是含有隐变量的概率模型参数的极大似然估计法,或极大后验概率估计法。
函数:完全数据的对数似然函数 关于在给定观测数据 和当前参数 下对未观测数据 的条件概率分布 的期望
含有隐变量 的概率模型,目标是极大化观测变量 关于参数 的对数似然函数,即
输入:观测随机变量数据 ,隐随机变量数据 ,联合分布 ,条件分布 ;
输出:模型参数
‘肆’ GMM模型是什么
就是用高斯概率密度函数(正态分布曲线)精确地量化事物,将一个事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。GMMs已经在数值逼近、语音识别、图像分类、图像去噪、图像重构、故障诊断、视频分析、邮件过滤、密度估计、目标识别与跟踪等领域取得了良好的效果。
对图像背景建立高斯模型的原理及过程:图像灰度直方图反映的是图像中某个灰度值出现的频次,也可以认为是图像灰度概率密度的估计。如果图像所包含的目标区域和背景区域相比比较大,且背景区域和目标区域在灰度上有一定的差异,那么该图像的灰度直方图呈现双峰-谷形状。
主要步骤
1、为图像的每个像素点指定一个初始的均值、标准差以及权重。
2、收集N(一般取200以上,否则很难得到像样的结果)帧图像利用在线EM算法得到每个像素点的均值、标准差以及权重)。
3、从N+1帧开始检测,检测的方法:
对每个像素点:
1)将所有的高斯核按照ω/σ降序排序
2)选择满足公式的前M个高斯核:M= arg min(ω/σ>T)
3)如果当前像素点的像素值在中有一个满足:就可以认为其为背景点。
‘伍’ 05 EM算法 - 高斯混合模型 - GMM
04 EM算法 - EM算法收敛证明
GMM (Gaussian Mixture Model, 高斯混合模型)是指该算法由多个高斯模型线性叠加混合而成。每个高斯模型称之为component。
GMM算法 描述的是数据的本身存在的一种分布,即样本特征属性的分布,和预测值Y无关。显然GMM算法是无监督的算法,常用于聚类应用中,component的个数就可以认为是类别的数量。
回到昨天说的例子:随机选择1000名用户,测量用户的身高;若样本中存在男性和女性,身高分别服从高斯分布N(μ1,σ1)和N(μ2,σ2)的分布,试估计参数:μ1,σ1,μ2,σ2;
1、如果明确的知道样本的情况(即男性和女性数据是分开的),那么我们使用极大似然估计来估计这个参数值。
2、如果样本是混合而成的,不能明确的区分开,那么就没法直接使用极大似然估计来进行参数的估计。
我们可以认为当前的1000条数据组成的集X,是由两个高斯分布叠加而成的(男性的分布和女性的分布)。
如果能找到一种办法把每一个高斯分布对应的参数π、 μ、σ求出来,那么对应的模型就求解出来了。
如果模型求解出来后,如何对数据进行聚类?
这个公式求出来的分别是男性和女性身高分布的概率密度,如果把π、 μ、σ都求出来,以后我们可以构建出一个 能够根据样本特征 计算出样本属于男性或女性的可能性。
实际做样本分类的时候,我们把样本X的特征x1~xn分别代入两个公式中,求出来的两个结果分别是:样本X的性别是男、是女的可能性。如果是男的可能性大于是女的可能性,我们就把样本X归入男性的分类。
假定 GMM 由k个Gaussian分布线性叠加而成,那么概率密度函数如下:
分析第1个等式:
p(x): 概率密度函数,k个Gaussian分布线性叠加而成的概率密度函数。
∑p(k)p(x|k): k个某种模型叠加的概率密度函数。
p(k): 每个模型占的权重,即上面提到的π。
p(x|k): 给定类别k后,对应的x的概率密度函数。
分析第2个等式: 目标 - 将公式写成高斯分布的样子。
π k : 即p(k)
p(x;μ k ,∑ k ): 多元高斯(正态)分布。有了观测数据x后,在 给定了条件 下的高斯分布。这个 条件 是 1、第k个分类的均值μ k ; 2、第k个分类的方差∑ k ;
深入分析p(x;μ k ,∑ k )的参数:
如果样本有n个特征,所有的特征x1~xn一起服从一个多元的高斯分布(正态分布),所有特征的均值应该是一个向量 (μ 1 ~μ n );
μ k : 第k个分类的情况下(第k个高斯分布的情况下对应的每一列的均值);μ k = (μ k1 ~μ kn )
∑ k : 协方差矩阵(对称阵)。现在有n个特征,协方差矩阵是一个n×n的矩阵。现在我们要算的是:
cov(x1,x1),cov(x1,x2),...,cov(x1,xn)
cov(x2,x1),cov(x2,x2),...,cov(x2,xn)
....
cov(xn,x1),cov(x1,x2),...,cov(xn,xn)
其中, 对角线 cov(x1,x1)、cov(x2,x2), ... ,cov(xn,xn)中,x1和x1的协方差 = x1的方差;即cov(x1,x1) = var(x1);所以 对角线上两个特征的协方差 = 对应的特征的方差。
协方差 (Covariance)在 概率论 和 统计学 中用于衡量两个变量的总体 误差 。而 方差 是协方差的一种特殊情况,即当两个变量是相同的情况。
协方差表示的是两个变量的总体的 误差 ,这与只表示一个变量误差的 方差 不同。 如果两个 变量 的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值。 如果两个变量的变化趋势相反,即其中一个大于自身的期望值,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。
理解了公式后,再来看看公式在图像上是如何体现的:
如果样本X只有一个特征x1,在二维的坐标系上的表示出来。特征x1是由n个单变量样本的高斯分布叠加而成的。向量x1 k = ∑ k (x1 (1) ,x1 (2) ,~,x1 (n) ),如k=(男、女),累加男性分类下的特征高斯分布和女性分类下的高斯分布;
图中 红色曲线 表示原有数据的分布情况,我认为这个原有数据是由多个比较的高斯分布叠加而成的, 蓝色曲线 表示单个单个高斯分布的分布情况。向量x1 = (x1 (1) ,x1 (2) ,~,x1 (n) );
PS: 蓝1+蓝2=红 体现的就是公式 p(x) = ∑πp(x;μ,∑k);
在得知数据的特征 x=(x1~xn) 后,如果我们想把数据合理得聚类到一个分类中,我们该如何去计算呢?
既然我已经得到了k个高斯分布对应的概率密度函数(现在设k=3,共3个分类),将当前特征的x=(x1~xn)代入我们的概率密度函数: p(x) = ∑πp(x;μ,∑k);
我们分别计算p(蓝1)、p(蓝2)、p(蓝3),蓝色三条线各对应k分类中的一个,哪个数大,我认为当前的样本该分到哪一类。
GMM算法的两个前提:
1、数据服从高斯分布;
2、我们人为定义了分类个数k。
问:我们人为假定了高斯分布的分类个数k,就类似于我们聚簇时分的聚簇中心个数一样。参数π、μ、σ该如何求出来?
答:和K-Means算法一样,我们可以用 EM算法 来求解这个问题。 GMM也满足EM算法的聚类思想,首先人为得定义了聚类的个数k,从数据特征X中发掘潜在关系的一种模型。而且我还默认数据是服从多个高斯分布的。
GMM算法中的隐含条件是:第k个模型占的权重 - 、 第k个高斯分布的情况下对应的每一列的均值 - 、协方差矩阵 cov(xi,xj) - ;因为本质上我们是知道数据原有的分类状况的,只是无法观测到隐含在数据中的这些特性,使用EM的思想可以迭代得求解出这些隐含变量。
对联合概率密度函数求对数似然函数:
对联合概率密度函数求对数后,原本 连乘 的最大似然估计变成了 连加 的函数状态。
EM算法求解 - E步:
套用公式后,我们可以假定隐含变量z的分布:Q(z (i) = j);
我们认为分布wj (i) = 第i个观测值对应的隐含分类第z (i) 类; = 以(看不见的参数π、μ、∑)为参数的情况下,输入第i观测值的特征x后得到的分类z (i) 类;
EM算法求解 - M步:
M步第1行就是上一章通过化简找到 下界 的那个函数:
1、对均值求偏导:
2、对方差求偏导:
3、对概率使用拉格朗日乘子法求解:
06 EM算法 - 案例一 - EM分类初识及GMM算法实现
‘陆’ 数据挖掘的十大经典算法,总算是讲清楚了,想提升自己的赶快收藏
一个优秀的数据分析师,除了要掌握基本的统计学、数据分析思维、数据分析工具之外,还需要掌握基本的数据挖掘思想,帮助我们挖掘出有价值的数据,这也是数据分析专家和一般数据分析师的差距所在。
国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART.
不仅仅是选中的十大算法,其实参加评选的18种算法,实际上随便拿出一种来都可以称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响。今天主要分享其中10种经典算法,内容较干,建议收藏备用学习。
1. C4.5
C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法. C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:
1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;
2) 在树构造过程中进行剪枝;
3) 能够完成对连续属性的离散化处理;
4) 能够对不完整数据进行处理。
C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效(相对的CART算法只需要扫描两次数据集,以下仅为决策树优缺点)。
2. The k-means algorithm 即K-Means算法
k-means algorithm算法是一个聚类算法,把n的对象根据他们的属性分为k个分割,k < n。它与处理混合正态分布的最大期望算法很相似,因为他们都试图找到数据中自然聚类的中心。它假设对象属性来自于空间向量,并且目标是使各个群组内部的均 方误差总和最小。
3. Support vector machines
支持向量机,英文为Support Vector Machine,简称SV机(论文中一般简称SVM)。它是一种监督式学习的方法,它广泛的应用于统计分类以及回归分析中。支持向量机将向量映射到一个更 高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面。分隔超平面使两个平行超平面的距离最大化。假定平行超平面间的距离或差距越大,分类器的总误差越小。一个极好的指南是C.J.C Burges的《模式识别支持向量机指南》。van der Walt 和 Barnard 将支持向量机和其他分类器进行了比较。
4. The Apriori algorithm
Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。
5. 最大期望(EM)算法
在统计计算中,最大期望(EM,Expectation–Maximization)算法是在概率(probabilistic)模型中寻找参数最大似然 估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variabl)。最大期望经常用在机器学习和计算机视觉的数据集聚(Data Clustering)领域。
6. PageRank
PageRank是Google算法的重要内容。2001年9月被授予美国专利,专利人是Google创始人之一拉里·佩奇(Larry Page)。因此,PageRank里的page不是指网页,而是指佩奇,即这个等级方法是以佩奇来命名的。
PageRank根据网站的外部链接和内部链接的数量和质量俩衡量网站的价值。PageRank背后的概念是,每个到页面的链接都是对该页面的一次投票, 被链接的越多,就意味着被其他网站投票越多。这个就是所谓的“链接流行度”——衡量多少人愿意将他们的网站和你的网站挂钩。PageRank这个概念引自 学术中一篇论文的被引述的频度——即被别人引述的次数越多,一般判断这篇论文的权威性就越高。
7. AdaBoost
Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器 (强分类器)。其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权 值。将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。
8. kNN: k-nearest neighbor classification
K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
9. Naive Bayes
在众多的分类模型中,应用最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBC)。 朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。
同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论上,NBC模型与其他分类方法相比具有最小的误差率。 但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,这给NBC模型的正确分类带来了一定影响。在属 性个数比较多或者属性之间相关性较大时,NBC模型的分类效率比不上决策树模型。而在属性相关性较小时,NBC模型的性能最为良好。
10. CART: 分类与回归树
CART, Classification and Regression Trees。 在分类树下面有两个关键的思想。第一个是关于递归地划分自变量空间的想法(二元切分法);第二个想法是用验证数据进行剪枝(预剪枝、后剪枝)。在回归树的基础上的模型树构建难度可能增加了,但同时其分类效果也有提升。
参考书籍:《机器学习实战》
‘柒’ 高斯混合模型(GMM)及EM算法的初步理解
高斯混合模型(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同的分布的情况(或者是同一类分布但参数不一样,或者是不同类型的分布,比如正态分布和伯努利分布)。
如图1,图中的点在我们看来明显分成两个聚类。这两个聚类中的点分别通过两个不同的正态分布随机生成而来。但是如果没有GMM,那么只能用一个的二维高斯分布来描述图1中的数据。图1中的椭圆即为二倍标准差的正态分布椭圆。这显然不太合理,毕竟肉眼一看就觉得应该把它们分成两类。
这时候就可以使用GMM了!如图2,数据在平面上的空间分布和图1一样,这时使用两个二维高斯分布来描述图2中的数据,分别记为N(μ1,Σ1)和N(μ2,Σ2) 。图中的两个椭圆分别是这两个高斯分布的二倍标准差椭圆。可以看到使用两个二维高斯分布来描述图中的数据显然更合理。实际上图中的两个聚类的中的点是通过两个不同的正态分布随机生成而来。如果将两个二维高斯分布N(μ1,Σ1)和N(μ2,Σ2) 合成一个二维的分布,那么就可以用合成后的分布来描述图2中的所有点。最直观的方法就是对这两个二维高斯分布做线性组合,用线性组合后的分布来描述整个集合中的数据。这就是高斯混合模型(GMM)。
高斯混合模型(GMM)的数学表示:
期望极大(Expectation Maximization)算法,也称EM算法,是一种迭代算法,由Dempster et. al 在1977年提出,用于含有隐变量的概率参数模型的极大似然估计。
EM算法作为一种数据添加算法,在近几十年得到迅速的发展,主要源于当前科学研究以及各方面实际应用中数据量越来越大的情况下,经常存在数据缺失或者不可用的的问题,这时候直接处理数据比较困难,而数据添加办法有很多种,常用的有神经网络拟合、添补法、卡尔曼滤波法等,但是EM算法之所以能迅速普及主要源于它算法简单,稳定上升的步骤能相对可靠地找到“最优的收敛值”。
(个人的理解就是用含有隐变量的含参表达式不断拟合,最终能收敛并拟合出不含隐变量的含参表达式)
模型的EM训练过程,直观的来讲是这样:我们通过观察采样的概率值和模型概率值的接近程度,来判断一个模型是否拟合良好。然后我们通过调整模型以让新模型更适配采样的概率值。反复迭代这个过程很多次,直到两个概率值非常接近时,我们停止更新并完成模型训练。现在我们要将这个过程用算法来实现,所使用的方法是模型生成的数据来决定似然值,即通过模型来计算数据的期望值。通过更新参数μ和σ来让期望值最大化。这个过程可以不断迭代直到两次迭代中生成的参数变化非常小为止。该过程和k-means的算法训练过程很相似(k-means不断更新类中心来让结果最大化),只不过在这里的高斯模型中,我们需要同时更新两个参数:分布的均值和标准差.[3]
GMM常用于聚类。如果要从 GMM 的分布中随机地取一个点的话,实际上可以分为两步:首先随机地在这 K 个 Component 之中选一个,每个 Component 被选中的概率实际上就是它的系数Πk ,选中 Component 之后,再单独地考虑从这个 Component 的分布中选取一个点就可以了──这里已经回到了普通的 Gaussian 分布,转化为已知的问题。
根据数据来推算概率密度通常被称作 density estimation 。特别地,当我已知(或假定)概率密度函数的形式,而要估计其中的参数的过程被称作‘参数估计’。
(推导和迭代收敛过程这里省略,可参考资料1)
一个实际的例子:用GMM对iris数据集进行聚类,并通过make_ellipses表示出来
make_ellipses方法概念上很简单,它将gmm对象(训练模型)、坐标轴、以及x和y坐标索引作为参数,运行后基于指定的坐标轴绘制出相应的椭圆图形。
在特定条件下,k-means和GMM方法可以互相用对方的思想来表达。在k-means中根据距离每个点最接近的类中心来标记该点的类别,这里存在的假设是每个类簇的尺度接近且特征的分布不存在不均匀性。 这也解释了为什么在使用k-means前对数据进行归一会有效果。高斯混合模型则不会受到这个约束 ,因为它对每个类簇分别考察特征的协方差模型。
K-means算法可以被视为高斯混合模型(GMM)的一种特殊形式。 整体上看,高斯混合模型能提供更强的描述能力,因为聚类时数据点的从属关系不仅与近邻相关,还会依赖于类簇的形状。n维高斯分布的形状由每个类簇的协方差来决定。在协方差矩阵上添加特定的约束条件后,可能会通过GMM和k-means得到相同的结果。
在k-means方法中使用EM来训练高斯混合模型时对初始值的设置非常敏感。而对比k-means,GMM方法有更多的初始条件要设置。实践中不仅初始类中心要指定,而且协方差矩阵和混合权重也要设置。可以运行k-means来生成类中心,并以此作为高斯混合模型的初始条件。由此可见并两个算法有相似的处理过程,主要区别在于模型的复杂度不同。
高斯混合模型的基本假设是 已知类别的比例 和 类别的个数 ,但是不知道每个样例的具体标签,据此用EM的模式为每个样本进行最优的标注。也就是说它适合的是 无标签学习的分类问题 ,并且需要已知基本假设。
整体来看,所有无监督机器学习算法都遵循一条简单的模式:给定一系列数据,训练出一个能描述这些数据规律的模型(并期望潜在过程能生成数据)。 训练过程通常要反复迭代,直到无法再优化参数获得更贴合数据的模型为止。
【1】https://blog.csdn.net/jinping_shi/article/details/59613054 高斯混合模型(GMM)及其EM算法的理解
【2】https://cloud.tencent.com/developer/news/231599 机器学习中的数学(4)-EM算法与高斯混合模型(GMM)
【3】https://zhuanlan.hu.com/p/31103654 一文详解高斯混合模型原理