高斯混合模型(Gaussian mixture model,GMM)是单一高斯概率密度函数的延伸。GMM能够平滑地近似任意形状的密度分布。
欲了解高斯混合模型,那就先从基础的单一高斯概率密度函数讲起。(数学公式字体太难看了!!!!!!!)
注意:这一一篇致力于详细阐述过程的文章,如果你懂,可以快速跳过。
假设我们有一组在高维空间(维度为 d)的点 xi , i=1,…,n,若这些点的分布近似椭球状,则我们可用高斯密度函数来描述产生这些点的概率密度函数(统计学记为PDF),记住这个关键公式:
其中μ代表此密度函数的中心点,Σ则代表此密度函数的协方差矩阵(Covariance Matrix),这些参数决定了此密度函数的特性,如函数形状的中心点、宽窄及走向等。在《程序员的数学2》这本书中给大家一个简单的记法。这东西就是:
那么什么叫协方差矩阵呢?矩阵中的第(i,j)个元素是 Xi,Xj 的协方差。
Wikipedia是这么详细定义的:
假设X是以n个随机变数(其中的每个随机变数是也是一个向量,当然是一个行向量)组成的列向量,
欲求得最佳的参数来描述所观察到的资料点,可由最大似然估计法的来求得。再次之前我们必须要明确我们要求什么参数?在GSM模型中μ与Σ是两个模型参数,x是输入。
1. 在单高斯密度函数的假设下,当 x=xi 时,其密度密度为 g(xi;μ,Σ)
2. 若我们假设 xi ,i=1 ~ n 之间为互相独立的事件,则发生 X=x1,x2,...,xn 的概率密度为:
如果我们的数据集在d维空间中的分布不是椭球状,中心点不唯一。那么就不适合以一个单一的高斯密度函数。下面是混合了三个单模型的混合高斯模型:
p(x)=α1g(x1;μ1,Σ1)+α2g(x2;μ2,Σ2)+α3g(x3;μ3,Σ3)
此概率密度函数的参数为
(α1,α2,α3,μ1,μ2,μ3,Σ1,Σ2,Σ3) ,而且要满足 α1+α2+α3=1
α是各模型的系数,这其实是一个加权单位化的思想。下面是n=2的混合高斯模型,我们发现有两个中心点。由于模型增多造成的模型参数增多,确定参数成为首要问题。(看这个图,强迫症的人肯定想聚类一下)
为了简化,通常将上面的协方差矩阵转化为我们常用的方式
Σi=σ2iI,i=1,2,3,...
其中,I为单位矩阵。其实求参数可以也用极大似然估计法,然后,你就慢慢玩吧。。。。。看我这态度就知道基本没人用极大似然估计单个搞的话就太乱。于是EM算法被请出来了,虽然核心也在用极大似然估计。
下面主要摘自李航《统计学习方法》,以及自己的笔记。周志华的《机器学习》书中没有详细介绍。
那么什么是EM算法。说白了,就是每次迭代由两步组成:先E一下,再M一下。E步,求期望(Expectation);M步,求极大值(Maximization)。
为什么这么搞?关键全在一个能收敛的Q函数。E步就是求这个Q函数的期望。M步就是极大化参数。不断地EMEMEMEM...操作逐步近似极大化参数这就是EM算法。
关于EM算法的正确性,喜欢了解的就看下书《统计学习方法》9.1.2。下面仅仅说怎么使用。
while()\\不接受误差就循环
{
Expectation();
Maximization();
}
假设观测数据为 x1,x2,...,xN 由高斯混合模型生成。
插入知识点:Q函数与EM
Q函数:完全数据的对数似然函数 logP(Y,Z|θ) 关于在给定观测数据Y和当前参数 θ(i) 下对未观测数据Z的条件概率分布 P(Z|Y,θ(i)) 的期望称为Q函数。即:
这样的Q函数可以作递推,上面公式中,Z是未观测数据,Y是观测数据,Q函数中第一个变元代表极大化参数,第二个表示参数当前估计值。
在EM算法的E步中,每次迭代是在求Q函数及其极大。EM算法中的这种Q函数有严格的收敛性证明。李航《统计学习方法》9.2
这里的Q函数为:
个人认为:高斯混合模型GMM对于多中心点集合的建模。这种点集合最好是一堆一堆聚集在一起的,逼强迫症数据分析师想求聚类的。如下图。(数据集特性与k-means差不多,数据集别散得太厉害)。都属于原型聚类。
K-means的第一步开始是明确要聚几类(即K等于几),GMM第一步开始的明确是混合几个高斯模型(即N等于几)。
我翻阅很多论文,发现高斯混合隐马尔科夫链模型(GMM-HMM)在工业预测方面有很大的应用,后面讲述GMM-HMM。