机器学习高斯混合模型:聚类原理分析(前篇)
01
—
回顾
近几天,分析了期望最大算法的基本思想,它是用来迭代求解隐式变量的利器,我们举例了两地的苹果好坏分布为例来求解隐式参数,苹果的出处,进而求出烟台或威海的苹果好坏的二项分布的参数:好果的概率。关于二项分布和离散式随机变量的基础理论知识,请参考:
机器学习储备(11):说说离散型随机变量
机器学习储备(12):二项分布的例子解析
注意在求解烟台或威海的好果概率这个分布参数时,我们在每个迭代时步求解了苹果来自于哪里的概率(这是一个隐变量),这个来自于哪里的概率,不就是一个聚类的操作吗,还记得怎么求得这个来自哪里的概率吗?
P_yan= PA/(PA + PB),其中PA是10个苹果的二项分布出现某种分布(比如分布:8好2坏)的概率,PB同理。
P_wei= PB/(PA + PB)
上面中,如果P_yan > P_wei,则可以说这10个苹果中来自于烟台的好果个数多于来自于威海的个数吧。
记住,这个地方对于接下来理解高斯混合模型是非常有用的。接下来,谈谈高斯混合模型的一点理解。
02
—
高斯混合模型的背景
高斯混合模型,顾名思义,多个高斯分布的结合组成的概率分布模型,简称为GMM。关于高斯分布模型的基本理论,请参考公众号的推送,这是理解高斯混合模型的基础。
自然,GMM的归纳偏好为数据服从 Gaussian Distribution ,换句话说,数据可以看作是从数个 Gaussian Distribution 中生成出来的,所以在这个假设前提下,我们再反推已知一堆数据,必须还得知道这些数据有几个部分(类)组成吧,知道这个基本参数,才能正确的进行聚类吧。
另外,小插曲:Mixture Model 本身其实也是可以变得任意复杂的,通过增加 高斯分布的个数,可以任意地逼近任何连续的概率密分布,关于概率分布的理论知识,也可以参考本公众号的推送关于这个理论分析。
下面重点看下,已知高斯混合模型生成的一堆数据和高斯混合模型的个数,如何正确的对它们进行聚类呢,把具有相似特征的数据点聚集到一起。
03
—
GMM给出属于每个类的得分值
现在,货运公司帮我们拉来了一大车苹果,并告知我们这批苹果是从烟台,威海,青岛拉过来的,现在车上的这些都混合到一起了,并且给了我们一张表格,详细的记录每个苹果的质量得分,最好的为1.0,最次的接近0.0,并且大致上,烟台的苹果质量是最好的,威海的其次,青岛的最次。
根据这些信息,检验员想着如何对它们分类,哪些苹果来自于烟台,哪些来自威海,哪些来自青岛呢,这是一个典型的高斯混合模型,那么GMM最终预测的结果是什么? 注意GMM最终预测会得到每个数据(苹果)属于每个类别的概率值,而不是简单的属于谁。GMM会分析得出苹果k来自烟台的概率为0.8,来自威海的概率为0.12,自然来自青岛的概率为0.08,然后根据概率最大的原则确定来自于哪,对于这个苹果k,很确定的说来自于烟台吧。
这种能得出一个概率值是由很大好处的,因为概率值我们可以转化为一个得分值,比单纯的得出一个Bool型的值要好,尤其是在某些特殊场合,GMM的意义会更为凸显。
假如一个检测报告出来的结果:某项体侧正常;另外一家医院给同一个人做同样的检测出来的报告:51%正常。你说谁的预测更全面,当然是后者,因为49%的可能性意味着不正常,有可能是亚健康吧,这时候可以早发现早治疗呀,比第一家只告诉你正常好吧,你还以为自己99%健康的,结果再去胡吃海塞,导致机体。。。
04
—
GMM理论分析
一般地,假设高斯混合模型由 K 个高斯分布组成,每个高斯分布称为一个component,这些 component 线性组合在一起就构成了高斯混合模型的概率密度函数:
上式就是GMM的概率密度函数,可以看到它是K个高斯模型的线性叠加,其中每个高斯分布对GMM整体的概率密度所做的贡献为系数 。
还记得在最大期望讲解时,用到了来自于烟台和威海两处的苹果好坏的二项分布的各自的参数求解过程吧。现在GMM只不过比这个例子多一些子模型,并且那个例子是二项分布,现在这个例子component是连续型随机变量的高斯分布。但是,它们之间是有很多相似的,可以结合起来理解。
05
—
展望
GMM的概率密度函数模型,我们已经确定了,下一步该确定上面的3个参数了吧。已知的条件:一堆数据。一般地,根据数据确定分布参数的利器是最大似然估计吧,GMM这里求解参数也不列外,不过,GMM首先要确定数据样本 x 来自于component k的概率(和威海烟台苹果好坏的EM算法差不多),也可以理解为样本 x 对component k做的贡献,并且component k 又对整体的GMM做贡献,这样间接地样本 x 对整体的GMM做了一些贡献(有点链式的感觉),这样带出了;然后再用最大似然估计确定所有的样本点对component k 的影响进而获得分布参数:均值和方差,一共确定这3个参数吧。
可以看到,确定以上3个参数的过程和EM算法是非常相似的。等我们拿到这3个参数后,我们就能得到结果了:最终会得到 N个样本点,每个样本点属于K个component的概率,(N,K)的二维数组。
预知这3个参数的求解过程,请关注明天的推送! 谢谢您的阅读!
请记住:每天一小步,日积月累一大步!
交流思想,注重分析,更注重通过实例让您通俗易懂。包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战。期待您的到来!