高斯混合模型(GMM)和EM算法详解

小白一枚,接触到GMM和EM,现将学习到的整理出来,如有错误,欢迎指正,文中涉及到公式的推导比较繁琐,故先在纸上推导出来再拍照发出来。希望大家多多交流,共同进步。接下来将按照思路一步一步进行介绍。

1. 单高斯模型GSM(一维)
单高斯模型很简单,大家也很清楚,这里不做过多的解释,如不明白可自行百度。如图
图一
概率密度函数为:
在这里插入图片描述
在这里插入图片描述

2.单高斯模型(多维,以二维为例)
在这里插入图片描述
二维高斯分布图像如下
在这里插入图片描述
关于二维高斯分布的参数设定对为高斯曲面的影响,可以参考这篇文章(二维高斯分布的参数分析

(以上两条是基础,为了下面做铺垫,接下来我将通过例子引出高斯混合模型。)

3.高斯混合模型(GMM)
为什么会有高斯混合模型呢??
首先通过一个例子引出高斯混合模型。这个例子的数据集被称为“老忠实间歇喷泉”数据集,由美国黄石国家公园的老忠实间歇喷泉的272次喷发的测量数据组成。每条测量记录包括喷发持续了几分钟(横轴)和距离下次喷发间隔了几分钟(纵轴)。我们看到数据集主要聚集在两大堆中,一个简单的高斯分布不能描述这种结构,而两个高斯分布的线性叠加可以更好地描述这个数据集的特征。
在这里插入图片描述
我们看上图就是“老忠实间歇喷泉”的数据集,左图,我们用一个高斯模型对样本来做分析,显然,一个高斯分布是不合适的。一般来说越靠近椭圆中心样本出现的概率越大,这是由概率密度函数决定的,但是这个高斯分布的椭圆中心的样本量却极少。显然样本服从单高斯分布的假设并不合理。单高斯模型无法产生这样的样本。基于此,我们引入了高斯混合模型,我们发现用两个高斯模型通过一定的权重形成的混合高斯模型可以产生这样的样本,如右上面右图。

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

更一般话的描述为:假设混合高斯模型有K个高斯模型组成(即数据包含K个类),则GMM的概率密度函数如下:
在这里插入图片描述
在这里插入图片描述
4.EM算法
4.1 为什么要有EM算法(或者EM算法是用来干什么的)
为了引出EM算法,首先我们先解决单高斯模型求参数的问题。
在这里插入图片描述
如图所示是我画的一些样本,样本满足高斯分布,我们的目的就是根据已知的样本求出该高斯分布的参数μ,Σ(换句话说,我们已知这些样本,我们要找到一个合适的高斯分布(也就是确定高斯分布的参数μ,Σ),使的这个高斯分布能产生这组样本的可能性尽可能的大)。

那么如何找到这个合适的高斯分布(也就是如何确认高斯分布的参数μ,Σ呢?),这时候我们就可以用到似然函数来求解。
在这里插入图片描述
如上图求解,我们可以得到想求的参数。所以最大化似然函数的意义就是:通过使得样本集的联合概率最大来对参数进行估计,从而选择最佳的分布模型。(也可以说,利用已知样本结果,反推最有可能(最大概率)导致这样结果的参数值)

若对于高斯混合模型求参数,我们应该如何来解决呢?
在这里插入图片描述
如上图所示,我们给出了一个混合高斯模型。我们想求此高斯混合模型的参数θ={μ,Σα},其中α为单高斯混合模型的权重。如果我们按照前面单高斯模型求解参数,则我们要用似然函数来求解,此混合模型的对数似然函数为:
在这里插入图片描述
用MLE求参数θ为:
在这里插入图片描述
根据上图,我们可以看到,如果我们用MLE来求解高斯混合模型的话,我们很难求得,因为上式中log后面有一个求和并且高斯分布也是多维的,这样我们是无法通过求导得到参数。

此时,我们就可以引入EM算法来解决。

EM算法解决的就是具有隐变量的混合模型的参数估计问题(隐变量的存在实际上就是数据缺失问题,缺失了各个样本来源于哪一类的记录)

4.2EM算法的公式
此部分涉及到太多的公式和公式推导,我会在纸上推导出来然后贴出照片。
在这里插入图片描述
关于验证 函数H,我们会用到一个知识点Jensen不等式

--------------------------关于Jensen不等式:------------------------------------
设f是定义域为实数的函数,如果对于所有的实数x。如果对于所有的实数x,f(x)的二次导数大于等于0,那么f是凸函数。当x是向量时,如果其hessian矩阵H是半正定的,那么f是凸函数。如果只大于0,不等于0,那么称f是严格凸函数。
Jensen不等式表述如下:

如果f是凸函数,X是随机变量,那么:E[f(X)]>=f(E[X])

特别地,如果f是严格凸函数,当且仅当X是常量时,上式取等号。
如图所示:
在这里插入图片描述
图中,实线f是凸函数,X是随机变量,有0.5的概率是a,有0.5的概率是b。(就像掷硬币一样)。X的期望值就是a和b的中值了,图中可以看到E[f(X)]>=f(E[X])成立。

当f是(严格)凹函数当且仅当-f是(严格)凸函数。

Jensen不等式应用于凹函数时,不等号方向反向。

------------------------------分割线----------------------------------------------------
继续证明:
在这里插入图片描述
4.3用EM算法解决GMM
尝试用EM算法来解决GMM问题,推导过程为先在纸上推导然后拍照。
在这里插入图片描述
在这里插入图片描述
4.4EM算法总结
此文章中的EM算法是一种狭义上的EM 算法,是针对GMM来讲解的。EM算法是一种迭代算法,对于GMM不能像单高斯模型那样利用MLE来直接给出结果,而是只能通过不断的求期望和最大化,一步一步的逼近最终的结果。

期望最大算法是一种从不完全数据或有数据丢失的数据集(存在隐含变量)中求解概率模型参数的最大似然估计方法。

EM算法的流程:
1.初始化分布参数θ;
2.E步骤:根据参数初始值或上一次迭代的模型参数来计算出隐性变量的后验概率,其实就是隐性变量的期望。作为隐藏变量的现估计值:
在这里插入图片描述
M步骤:将似然函数最大化以获得新的参数值:
在这里插入图片描述
这个不断的迭代,就可以得到使似然函数L(θ)最大化的参数θ了

5.参考文献
https://blog.csdn.net/zk_ken/article/details/82350325
https://blog.csdn.net/lin_limin/article/details/81048411

发布了2 篇原创文章 · 获赞 2 · 访问量 128

猜你喜欢

转载自blog.csdn.net/zeronose/article/details/104737115
今日推荐