介绍
高斯混合模型(Gaussian Mixture Model,GMM)是关于多个高斯分布的加权和,看图比较直观一点(图片来源于徐亦达老师的学习笔记)
当样本数据服从左边图所示的分布时,单独只用一个高斯分布去拟合效果不好,需要使用高斯混合模型去估计其分布情况,右图即为使用含有三个高斯分布的高斯混合模型拟合的结果。拟合实际上就是根据样本去进行概率密度估计,也就是参数估计。
图模型表示
再从上图出发,任意取一个样本数据,即上图中的任意一个点,这个样本点属于哪个高斯分布呢?答案是它属于三个高斯分布都有可能,引入一个服从多项分布的隐变量来表示样本服从那个分布。
1 | 2 | ...... | K | |
...... |
表示样本点是由第k个高斯分布生成的概率,并且满足。假设是一维随机变量,在给定的条件下,条件分布为高斯分布,
当是维随机向量时,给定的情况下,条件分布为元正态分布,
其中,为多元正态分布的均值向量,为多元正态分布的协方差矩阵,表示为的行列式。
GMM的图模型表示为
在参数估计完成后,从GMM里生成一个样本的步骤为:
1.先从多项式分布里采样,确定该样本服从第几个高斯分布。
2.假设取到第个高斯分布,再从这个高斯分布中采样得到样本值。
参数估计
笔者曾于上一篇文章EM算法及公式推导中提到了含隐变量的概率图模型的参数估计问题,通过直接最大化边际似然很难得出解析解,需要通过EM算法来得到近似解。
给定N个样本,希望能够学习到其中的参数。对于每个样本,其对数边际分布为
对于数据集,其对数边际似然为
由于在GMM里,可以求出,因此,采用狭义EM算法来进行参数估计,也因此,E步直接另,而M步公式可以写为(均为向量,偷懒没有加粗)
记,GMM中隐变量为一维离散变量,故
先用与相乘,可得
同样将这种计算方式应用于,可得
之后将GMM中的概率密度函数代入,可得
求,先求
由于与无关,故可简化为
此为含约束条件的极值问题,采用拉格朗日乘数法,
因此可得
接着求
取
令其偏导数为0,可得
因此
最后求
取
令其偏导数为0,可得
因此
最后,均已估计完毕。
参考资料
白板推导系列之GMMhttps://www.bilibili.com/video/BV1aE411o7qd?p=66&vd_source=ae87fac745d78042d477bc11e9bf41b0神经网络与深度学习https://nndl.github.io/