您的位置:首页 > 其它

EM算法结合GMM混合高斯模型

2015-03-27 19:46 274 查看
这里主要将EM算法和混合高斯模型结合起来

首先复习一下EM算法的关键步骤以及GMM的基础

一 EM复习

通过求对树操作和Jeson不等式之后:





这个就是最后的似然函数处理了,首先是参数

对样本x
出现的似然函数,概率乘积后取对数,然后加入样本的类别参数z 形成了式子(1),为了利用Jeson不等式(就是对凹函数的公式: f(E[X]>=E[f(X)])引入了让

表示该样例隐含变量z的某种分布
。然后形成不等式(3),简写为似然函数L(θ)>=J(z,Q)



这里的目标就是使似然函数的式子(2)得到最大的值,先调整Q(Z)确定L的下限值,然后调整

可以最大化下限值。(至于为什么一定会收敛这里不回忆了)。让等式成立就是随机变量为常数





c为常数,不依赖于

。对此式子做进一步推导





至此,我们推出了在固定其他参数

后,

的计算公式就是后验概率,解决了

如何选择的问题。这一步就是E步,建立

的下界。接下来的M步,就是在给定

后,调整

,去极大化

的下界(在固定

后,下界还可以调整的更大)。那么一般的EM算法的步骤如下:
循环重复直到收敛 {
(E步)对于每一个i,计算



(M步)计算




这里和下面的GMM不同,GMM中一个样本可能由k个类别由不同的概率组合而成,这里一般一个样本就属于一个类别。

这里理解E中的Q函数:是利用期望最大化算法,就是首先根据参数的初值估计隐藏变量Q的分布,然后根据隐藏变量的分布来计算观察变量的似然函数,估计参数的值(这里比较早期的简单的方法就是一来在E中就根据参数确定了类型,然后M中更新参数,再迭代的过程)

http://wenku.baidu.com/view/ff588b5af01dc281e53af088.html

二 高斯模型简介:
http://www.cnblogs.com/zhangchaoyang/articles/2624882.html

http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006924.html

单高斯模型:

多维变量X服从高斯分布时,它的概率密度函数PDF为:



x是维度为d的列向量,u是模型期望,Σ是模型方差。在实际应用中u通常用样本均值来代替,Σ通常用样本方差来代替。很容易判断一个样x本是否属于类别C。因为每个类别都有自己的u和Σ,把x代入(1)式,当概率大于一定阈值时我们就认为x属于C类。

从几何上讲,单高斯分布模型在二维空间应该近似于椭圆,在三维空间上近似于椭球。遗憾的是在很多分类问题中,属于同一类别的样本点并不满足“椭圆”分布的特性。这就引入了高斯混合模型。


高斯混合模型GMM

GMM认为数据是从几个GSM中生成出来的,即



K是混合高斯中包含的单高斯模型的数量。πk是权值因子。其中的任意一个高斯分布N(x;uk,Σk)叫作这个模型的一个component。这里有个问题,为什么我们要假设数据是由若干个高斯分布组合而成的,而不假设是其他分布呢?实际上不管是什么分布,只K取得足够大,这个XX Mixture
Model就会变得足够复杂,就可以用来逼近任意连续的概率密度分布。只是因为高斯函数具有良好的计算性能,所GMM被广泛地应用。

GMM是一种聚类算法,每个component就是一个聚类中心。即在只有样本点,不知道样本分类(含有隐含变量)的情况下,计算出模型参数(π,u和Σ)----这显然可以用EM算法来求解。再用训练好的模型去差别样本所属的分类,当每个样本所属分类已知时,GMM的参数非常好确定,直接利用Maximum
Likelihood。设样本容量为N,属于K个分类的样本数量分别是N1,N2,...,Nk,属于第k个分类的样本集合是L(k)。


样本分类未知情况下的GMM

有N个数据点,服从某种分布Pr(x;θ),我们想找到一组参数θ,使得生成这些数据点的概率最大。通常单个点的概率很小,连乘之后数据会更小,容易造成浮点数下溢,所以一般取其对数,变成



称为log-likelihood function。

GMM的log-likelihood function就是:



这里每个样本xi所属的类别zk是不知道的。Z是隐含变量。我们就是要找到最佳的模型参数,使得(6)式所示的期望最大,“期望最大化算法”名字由此而来。


EM法求解

EM要求解的问题一般形式是


Y是隐含变量。

我们已经知道如果数据点的分类标签Y是已知的,那么求解模型参数直接利用Maximum Likelihood就可以了。EM算法的基本思路是:随机初始化一组参数θ(0),根据后验概率Pr(Y|X;θ)来更新Y的期望E(Y),然后用E(Y)代替Y求出新的模型参数θ(1)。如此迭代直到θ趋于稳定。

E-Step E就是Expectation的意思,就是假设模型参数已知的情况下求隐含变量Z分别取z1,z2,...的期望,亦即Z分别取z1,z2,...的概率。在GMM中就是求数据点由各个 component生成的概率。



注意到我们在Z的后验概率前面乘以了一个权值因子αk,它表示在训练集中数据点属于类别zk的频率,在GMM中它就是πk。(一个样本点i属于类别k的概率就是类别k构建x的概率,除以所有类别构建出来x的概率)


(这个式子套用(1)中的式子就是当前样本属于样本k的概率)

M-Step M就是Maximization的意思,就是用最大似然的方法求出模型参数。现在我们认为上一步求出的r(i,k)就是“数据点xi由component k生成的概率”。根据公式(3),(4),(5)可以推出:









对比K-means可以发现,这里使用了“软”指定,为每个样例分配的类别

是有一定的概率的,同时计算量也变大了,每个样例i都要计算属于每一个类别j的概率。与K-means相同的是,结果仍然是局部最优解。对其他参数取不同的初始值进行多次计算不失为一种好方法。

帮助理解:

这里一直不是很明白E步骤中的这个式子的意思,在EM中类别是一个隐含变量,通过中间转换,第一步是猜测隐含类别变量z,第二步是更新其他参数,以获得最大的最大似然估计。

一般E步骤表示固定其他参数后求得一个类别的最大后验概率,这里对于每一个样本i 都计算 其 属于类别k的概率,因为一个样本并不是通过一个高斯模型构建的,而是可以通过多个,所以这里得到的每一个样本点属于的类型都是一个概率。(这里需要注意的是第一步并不是需要最大化似然函数,第二步才是,所以第二步的推导公式都是对似然函数取导获得的,第一步只是猜测样本的类别)。

在E中根据现有参数计算出当前样本i属于各个类别的概率。在M中根据K类别中所有样本对应其的概率进行更新参数,然后返回E步骤,重新计算各个概率。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: