GMM(高斯混合模型)
GMM(Gaussian mixture model),高斯混合模型,也可以简写成MOG.高斯模型就是用高斯概率密度函数(正态分布曲线)精确地量化事物,将一个事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。GMM已经在数值逼近、语音识别、图像分类、图像去噪、图像重构、故障诊断、视频分析、邮件过滤、密度估计、目标识别与跟踪等领域取得了良好的效果。实际上,GMM的目的就是找到一个合适的高斯分布(也就是确定高斯分布的参数μ,Σ),使得这个高斯分布能产生这组样本的可能性尽可能大(即:拟合样本数据)。高斯混合模型也被视为一种聚类方法,是机器学习中对“无标签数据”进行训练得到的分类结果。其分类结果由概率表示,概率大者,则认为属于这一类。
1、算法适合的情形:
数据内部有多个类别,每个类别的数据呈现不同的分布,这时我们就可以使用GMM算法,尤其是有隐变量,隐变量有不同的分布。
2、公式推导
一般化的描述为:假设混合高斯模型由K个高斯模型组成(即数据包含K个类),则GMM的概率密度函数如下:
概率密度知道后,我们看一下最大化对数似然函数的意义:
首先直观化地解释一下最大化对数似然函数要解决的是什么问题。
假设我们采样得到一组样本yt ,而且知道变量Y服从高斯分布(本文只提及高斯分布,其他变量分布模型类似),数学形式表示为Y∼N(μ,Σ)。采样的样本如下图所示,我们的目的就是找到一个合适的高斯分布(也就是确定高斯分布的参数μ,Σ),使得这个高斯分布能产生这组样本的可能性尽可能大。那怎么找到这个合适的高斯分布呢(在如下图中的表示就是1~4哪个分布较为合适)?这时候似然函数就闪亮登场了。
对上式进行求导并令导数为0(即最大化似然函数,一般还会先转化为对数函数再最大化),所求出的参数就是最佳的高斯分布对应的参数。所以最大化似然函数的意义就是:通过使得样本集的联合概率最大来对参数进行估计,从而选择最佳的分布模型。
我们尝试使用最大化对数似然函数来解决GMM模型
然后求导,令导数为0,就可以得到模型参数(μ,Σ,π) ,然而仔细观察可以发现,对数似然函数里面,对数里面还有求和。实际上没有办法通过求导的方法来求这个对数似然函数的最大值。此时,就需要借助EM算法来解决此问题了
接下来我们使用EM算法求解GMM模型
EM算法可以用于解决数据缺失的参数估计问题(隐变量的存在实际上就是数据缺失问题,缺失了各个样本来源于哪一类的记录)。
引入隐变量,它的取值只能是1或者0。
取值为1:第j个观测变量来自第k个高斯分量
取值为0:第j个观测变量不是来自第k个高斯分量
那么对于每一个观测数据yi都会对应于一个向量变量
,那么有:
其中,K为GMM高斯分量的个数, 为第k个高斯分量的权值。因为观测数据来自GMM的各个高斯分量相互独立,而 刚好可以看做是观测数据来自第k个高斯分量的概率,因此可以直接通过连乘得到整个隐变量的先验分布概率。
得到完全数据的似然函数
对于观测数据,当已知其是哪个高斯分量生成的之后,其服从的概率分布为:
由于观测数据从哪个高斯分量生成这个事件之间的相互独立的,因此可以写成:
这样我们就得到了已知
的情况下单个测试数据的后验概率分布。结合之前得到的
的先验分布,则我们可以写出单个完全观测数据的似然函数为:
取对数,得到对数似然函数为:
得到各个高斯分量的参数计算公式,
首先,我们将上式的根据单高斯的向量形式的概率密度函数的表达形式展开:
假设我们已经知道隐变量的取值,对上面得到的似然函数分别对
求偏导并且偏导结果为零,可以得到:
现在参数空间中剩下一个还没有求。这时一个约束满足问题,因为必须满足约束
我们使用拉格朗日乘数法结合似然函数和约束条件对求偏导,可以得到:
将上式的左右两边分别对k=1,2,…,K求和,可以得到:
,
将带入,最终得到:
至此,我们在隐变量已知的情况下得到了GMM的三种类型参数的求解公式。
得到隐变量的估计公式
根据EM算法,现在我们需要通过当前参数的取值得到隐变量的估计公式也就是说隐变量的期望的表现形式。即如何求解
- 点赞
- 收藏
- 关注作者
评论(0)