EM-2.0

PS:http://www.cnblogs.com/zhangchaoyang/articles/2623364.html

EM算法

本文试图用最简单的例子、最浅显的方式说明EM(Expectation Maximization)算法的应用场景和使用方法,而略去公式的推导和收敛性的证明。

以下内容翻译自《Data-Intensive Text Processing with MapReduce》。

Maximum Likelihood Estimation

Maximum Likelihood Estimation(MLE)是要选择一个最佳参数θ*,使得从训练集中观察到和情况出现的概率最大。即模型:

举例来说明。如下图

一个小黑球沿着一个三角形的木桩滚入杯子a或b中,可建立一个概率模型,由于是二值的,设服从Bernoulli分布,概率密度函数为:

p是k=0的概率,也是我们要使用MLE方法要确定的参数。

在上面的滚球实验中,我们令Y是待确定的参数,X是观察到的结果。连续10次实验,观察到的结果是X=(b,b,b,a,b,b,b,b,b,a)。小球进入a杯的概率为p,则满足10次实验的联合概率为:

为了使X发生的概率最大,令上式一阶求导函数为0,得p=0.2。

含有隐含变量的弹球实验

如上图,现在又多了两块三角形木桩,分别标记序号为0,1,2。并且实验中我们只知道小球最终进入了哪个杯子,中间的路线轨迹无从得知。

X取值于{a,b,c}表示小球进入哪个杯子。Y取值于{0,1,2,3}表示小球进入杯子前最后一步走的是哪条线路。小球在3个木桩处走右边侧的概率分别是p=(p0,p1,p2)。跟上例中一样,X表示训练集观测到的值,p是模型参数,而这里的Y就是"隐含变量"。

假如我们做了N次实验,小球经过路径0,1,2,3的次数依次是N0,N1,N2,N3,则:

带隐含变量的MLE

现在我们来考虑这个概率模型:Pr(X,Y;θ)。只有X是可观察的,Y和θ都是未知的。

经过一组实验,我们观察到X的一组取值x=(x1,x2,...,xl),则联合概率为:

MLE就是要求出最佳的参数θ*,使得:

这个时候要求θ*,”令一阶求函数等于0“的方法已经行不通了,因为有隐含变量Y的存在。实现上上式很难找到一种解析求法,不过一种迭代的爬山算法可求解该问题。

Expectation Maximization

EM是一种迭代算法,它试图找到一系列的估计参数θ(0)(1)(2),....使得训练数据的marginal likelihood是不断增加的,即:

算法刚开始的时候θ(0)赋予随机的值,每次迭代经历一个E-Step和一个M-Step,迭代终止条件是θ(i+1)与θ(i)相等或十分相近。

E-Step是在θ(i)已知的情况下计算X=x时Y=y的后验概率:

f(x|X)是一个权值,它表示观测值x在所有观察结果X中出现的频率。

M-Step:

其中在E-Step已经求出来了。这时候可以用“令一阶导数等于0”的方法求出θ'。

EM算法收敛性的证明需要用到Jensen不等式,这里略去不讲。

举例计算

就拿上文那个3个木桩的滚球实验来说,做了N次实验,滚进3个杯子的次数依次是Na,Nb,Nc。

先给赋予一个随机的值。

E-Step:

同时我们注意到

其它情况下Y的后验概率都为0。

M-Step:

我们只需要计算非0项就可以了

上面的每行第3列和第4列相乘,最后再按行相加,就得到关于θ(i+1)的函数,分别对p0,p1,p2求偏导,令导数为0,可求出p'0,p'1,p'2。

这里补充一个求导公式:

我们这个例子非常简单,计算θ(1)已经是最终的解了,当然你要计算出θ(2)才下此结论。

结束语

对于一般的模型,EM算法需要经过若干次迭代才能收敛,因为在M-Step依然是采用求导函数的方法,所以它找到的是极值点,即局部最优解,而非全局最优解。也正是因为EM算法具有局部性,所以它找到的最终解跟初始值θ(0)的选取有很大关系。

在求解HMM的学习问题、确立高斯混合模型参数用的都是EM算法。

 

EM及高斯混合模型

本文就高斯混合模型(GMM,Gaussian Mixture Model)参数如何确立这个问题,详细讲解期望最大化(EM,Expectation Maximization)算法的实施过程。

单高斯分布模型GSM

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

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

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

高斯混合模型GMM

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

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

GMM是一种聚类算法,每个component就是一个聚类中心。即在只有样本点,不知道样本分类(含有隐含变量)的情况下,计算出模型参数(π,u和Σ)----这显然可以用EM算法来求解。再用训练好的模型去差别样本所属的分类,方法是:step1随机选择K个component中的一个(被选中的概率是πk);step2把样本代入刚选好的component,判断是否属于这个类别,如果不属于则回到step1。

样本分类已知情况下的GMM

当每个样本所属分类已知时,GMM的参数非常好确定,直接利用Maximum Likelihood。设样本容量为N,属于K个分类的样本数量分别是N1,N2,...,Nk,属于第k个分类的样本集合是L(k)。

样本分类未知情况下的GMM

有N个数据点,服从某种分布Pr(x;θ),我们想找到一组参数θ,使得生成这些数据点的概率最大,这个概率就是

称为似然函数(Lilelihood Function)。通常单个点的概率很小,连乘之后数据会更小,容易造成浮点数下溢,所以一般取其对数,变成

称为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

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

与K-means比较

相同点:都是可用于聚类的算法;都需要指定K值。

不同点:GMM可以给出一个样本属于某类的概率是多少。

posted on 2015-04-22 10:38  会敲键盘的猩猩  阅读(142)  评论(0编辑  收藏  举报