混合高斯模型 Gaussian Mixture Model

聚类系列:

--------------------------------

 

 

    聚类的方法有很多种,k-means要数最简单的一种聚类方法了,其大致思想就是把数据分为多个堆,每个堆就是一类。每个堆都有一个聚类中心(学习的结果就是获得这k个聚类中心),这个中心就是这个类中所有数据的均值,而这个堆中所有的点到该类的聚类中心都小于到其他类的聚类中心(分类的过程就是将未知数据对这k个聚类中心进行比较的过程,离谁近就是谁)。其实k-means算的上最直观、最方便理解的一种聚类方式了,原则就是把最像的数据分在一起,而“像”这个定义由我们来完成,比如说欧式距离的最小,等等。想对k-means的具体算法过程了解的话,请看这里。而在这篇博文里,我要介绍的是另外一种比较流行的聚类方法----GMM(Gaussian Mixture Model)。

    GMM和k-means其实是十分相似的,区别仅仅在于对GMM来说,我们引入了概率。说到这里,我想先补充一点东西。统计学习的模型有两种,一种是概率模型,一种是非概率模型。所谓概率模型,就是指我们要学习的模型的形式是P(Y|X),这样在分类的过程中,我们通过未知数据X可以获得Y取值的一个概率分布,也就是训练后模型得到的输出不是一个具体的值,而是一系列值的概率(对应于分类问题来说,就是对应于各个不同的类的概率),然后我们可以选取概率最大的那个类作为判决对象(算软分类soft assignment)。而非概率模型,就是指我们学习的模型是一个决策函数Y=f(X),输入数据X是多少就可以投影得到唯一的一个Y,就是判决结果(算硬分类hard assignment)。回到GMM,学习的过程就是训练出几个概率分布,所谓混合高斯模型就是指对样本的概率密度分布进行估计,而估计的模型是几个高斯模型加权之和(具体是几个要在模型训练前建立好)。每个高斯模型就代表了一个类(一个Cluster)。对样本中的数据分别在几个高斯模型上投影,就会分别得到在各个类上的概率。然后我们可以选取概率最大的类所为判决结果。

    得到概率有什么好处呢?我们知道人很聪明,就是在于我们会用各种不同的模型对观察到的事物和现象做判决和分析。当你在路上发现一条狗的时候,你可能光看外形好像邻居家的狗,又更像一点点女朋友家的狗,你很难判断,所以从外形上看,用软分类的方法,是女朋友家的狗概率51%,是邻居家的狗的概率是49%,属于一个易混淆的区域内,这时你可以再用其它办法进行区分到底是谁家的狗。而如果是硬分类的话,你所判断的就是女朋友家的狗,没有“多像”这个概念,所以不方便多模型的融合。

    从中心极限定理的角度上看,把混合模型假设为高斯的是比较合理的,当然也可以根据实际数据定义成任何分布的Mixture Model,不过定义为高斯的在计算上有一些方便之处,另外,理论上可以通过增加Model的个数,用GMM近似任何概率分布。

    混合高斯模型的定义为:

   

    其中K为模型的个数,πk为第k个高斯的权重,则为第k个高斯的概率密度函数,其均值为μk,方差为σk。我们对此概率密度的估计就是要求πk、μk和σk各个变量。当求出的表达式后,求和式的各项的结果就分别代表样本x属于各个类的概率。

    在做参数估计的时候,常采用的方法是最大似然。最大似然法就是使样本点在估计的概率密度函数上的概率值最大。由于概率值一般都很小,N很大的时候这个连乘的结果非常小,容易造成浮点数下溢。所以我们通常取log,将目标改写成:

  

    也就是最大化log-likelyhood function,完整形式则为:

    一般用来做参数估计的时候,我们都是通过对待求变量进行求导来求极值,在上式中,log函数中又有求和,你想用求导的方法算的话方程组将会非常复杂,所以我们不好考虑用该方法求解(没有闭合解)。可以采用的求解方法是EM算法——将求解分为两步:第一步是假设我们知道各个高斯模型的参数(可以初始化一个,或者基于上一步迭代结果),去估计每个高斯模型的权值;第二步是基于估计的权值,回过头再去确定高斯模型的参数。重复这两个步骤,直到波动很小,近似达到极值(注意这里是个极值不是最值,EM算法会陷入局部最优)。具体表达如下:

  

    1、对于第i个样本xi来说,它由第k个model生成的概率为:

   

    在这一步,我们假设高斯模型的参数和是已知的(由上一步迭代而来或由初始值决定)。

   (E step)


   

    (M step)


    3、重复上述两步骤直到算法收敛(这个算法一定是收敛的,至于具体的证明请回溯到EM算法中去,而我也没有具体关注,以后补上)。


 

    最后总结一下,用GMM的优点是投影后样本点不是得到一个确定的分类标记,而是得到每个类的概率,这是一个重要信息。GMM每一步迭代的计算量比较大,大于k-means。GMM的求解办法基于EM算法,因此有可能陷入局部极值,这和初始值的选取十分相关了。GMM不仅可以用在聚类上,也可以用在概率密度估计上。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 高斯混合模型 (Gaussian Mixture Model) 是一种生成模型,假设数据是由多个高斯分布生成的,并使用最大似然估计或EM算法来估计模型参数。它通常用于聚类分析,并在许多领域中都得到了广泛应用,如图像分析、信号处理、生物信息学等。 ### 回答2: 高斯混合模型是一种概率模型,用于对数据进行建模和聚类。它由多个高斯分布混合而成,每个高斯分布代表一个聚类。高斯混合模型适用于具有复杂数据分布的场景,能够对数据的形状、密度和方差等进行建模。 在高斯混合模型中,每个高斯分布都有自己的均值和协方差矩阵。通过选择适当的混合模型参数,可以使得模型能够更好地拟合数据。模型的参数估计可以使用最大似然估计或其他优化算法进行求解。 高斯混合模型可以用于聚类分析,在聚类过程中,模型根据数据分布的不同,将数据点归属于不同的聚类。基于高斯混合模型的聚类方法可以灵活地适应不同形状的数据分布,能够发现非球形和重叠的聚类。 此外,高斯混合模型也可以用于生成新的数据样本。根据已经学得的模型参数,可以从高斯分布中随机采样,生成与原始数据相似的新数据样本。 总之,高斯混合模型是一种常用的概率模型,可以用于数据的建模、聚类和生成。它具有灵活性和准确性,适用于各种不同类型的数据分析问题。 ### 回答3: 高斯混合模型Gaussian Mixture Model,GMM)是一种用于对数据进行建模和聚类的统计模型。GMM可以看作是多个高斯分布的线性组合,每个高斯分布表示一个聚类。 GMM的基本思想是假设数据是由多个高斯分布组成的混合体。通过估计每个高斯分布的均值和方差,以及混合系数(表示每个分布的权重),可以得到对数据进行建模的 GMM。这样,可以通过计算每个数据点对于每个高斯分布的概率来进行聚类。具体而言,对于给定数据点,计算其属于每个高斯分布的概率,然后根据概率大小将其归为相应的聚类。 GMM的参数估计可以使用最大似然估计(Maximum Likelihood Estimation,MLE)方法。通过迭代优化,可以找到一个局部最优解,使得 GMM 最大化观测数据的似然函数。 GMM有以下几个特点:首先,GMM允许数据点属于多个聚类。每个聚类的权重是小于等于1的概率。其次,GMM对数据的分布形态没有假设,而是通过调整高斯分布的均值和方差来适应数据。最后,GMM可以解决由于观测噪声、缺失数据或异常值引起的数据不完全性和不准确性的问题。 GMM在模式识别、数据挖掘和图像处理等领域广泛应用,例如人脸识别、语音识别和文本分类等。它可以根据数据的分布情况自动进行聚类分析,并可以用于特征提取、数据压缩和异常检测等任务。然而,GMM也存在一些缺点,比如对于大规模数据集的计算复杂度较高,并且对初始参数敏感,需要进行适当选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值