极大似然 与 EM算法

来源:互联网 发布:美联储 8月cpi数据 编辑:程序博客网 时间:2024/06/08 08:30

引言:

EM 算法与基于模型的聚类

     在统计计算中,最大期望 (EM,Expectation–Maximization)算法是在概率(probabilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variabl)。最大期望经常用在机器学习和计算机视觉的数据集聚(Data Clustering)领域。

    通常来说,聚类是一种无指导的机器学习问题,如此问题描述:给你一堆数据点,让你将它们最靠谱地分成一堆一堆的。聚类算法很多,不同的算法适应于不同的问题,这里仅介绍一个基于模型的聚类,该聚类算法对数据点的假设是,这些数据点分别是围绕 K 个核心的 K 个正态分布源所随机生成的,使用 Han JiaWei 的《Data Ming: Concepts and Techniques》中的图:

i4

    图中有两个正态分布核心,生成了大致两堆点。我们的聚类算法就是需要根据给出来的那些点,算出这两个正态分布的核心在什么位置,以及分布的参数是多少。这很明显又是一个贝叶斯问题,但这次不同的是,答案是连续的且有无穷多种可能性,更糟的是,只有当我们知道了哪些点属于同一个正态分布圈的时候才能够对这个分布的参数作出靠谱的预测,现在两堆点混在一块我们又不知道哪些点属于第一个正态分布,哪些属于第二个。反过来,只有当我们对分布的参数作出了靠谱的预测时候,才能知道到底哪些点属于第一个分布,那些点属于第二个分布。这就成了一个先有鸡还是先有蛋的问题了。为了解决这个循环依赖,总有一方要先打破僵局,说,不管了,我先随便整一个值出来,看你怎么变,然后我再根据你的变化调整我的变化,然后如此迭代着不断互相推导,最终收敛到一个解。这就是 EM 算法。

    EM 的意思是“Expectation-Maximazation”,在这个聚类问题里面,我们是先随便猜一下这两个正态分布的参数:如核心在什么地方,方差是多少。然后计算出每个数据点更可能属于第一个还是第二个正态分布圈,这个是属于 Expectation 一步。有了每个数据点的归属,我们就可以根据属于第一个分布的数据点来重新评估第一个分布的参数(从蛋再回到鸡),这个是 Maximazation 。如此往复,直到参数基本不再发生变化为止。这个迭代收敛过程中的贝叶斯方法在第二步,根据数据点求分布的参数上面。

0: 极大似然和EM的区别:

给定一系列数据点,这些数据点由一个高斯模型生成,那么我们就可以用极大似然来求这个高斯模型的参数,列出极大似然的公式(L(sita)=&*&*&...),极大似然的思想就是这些参数能够使生成这些数据的概率最大,所以我们要求极大似然公式的最大值。如何求最大值,当然是对这个公式求导,对参数进行求导,看参数取得什么值的时候极大似然公式能够取得最大值。这样就求得了拟合这些数据的模型的参数。


上面讲述的是极大似然,下面我们改变一下这些数据的生成方式。如果这些数据是由两个高斯模型生成的,那么该如何去求解这两个高斯分布的参数呢。如果知道这些数据点的归属性(即是属于第一个高斯还是属于第二个高斯),那么我们就能求得两个高斯的参数,相反,如果我们知道两个高斯模型的参数,我们就能知道数据最可能属于哪个高斯。这是一个鸡生蛋和蛋生鸡的问题,为了打破这个僵局,我们需要先假定这个模型的参数。所以,EM算法就是干这个事情。EM算法的两个步骤在鸡生蛋和蛋生鸡的问题中不断迭代优化,最终求得以最大概率拟合这些数据模型的参数。


用本博客中《贝叶斯分类器》中的一段节选引出“EM”算法。



1 极大似然估计

    假设有如图1的X所示的抽取的n个学生某门课程的成绩,又知学生的成绩符合高斯分布f(x|μ,σ2),求学生的成绩最符合哪种高斯分布,即μ和σ2最优值是什么?

image图1 学生成绩的分布

    欲求在抽样X时,最优的μ和σ2参数估计,虽然模型的原型已知,但不同的参数对应着不同的学生成绩分布,其中一种最简单有效的参数估计方法就是估计的参数在目前抽样的数据上表现最好,即使得f(X|μ,σ2)的联合概率最大,这就是极大似然估计,常用L(μ,σ2|X)表示,满足公式(1)所示的关系。在实际计算中,对数函数是一个严格递增的函数,对似然函数取代数后,计算要简单很多,而且直接的似然函数计算中涉及大量浮点概率的乘法,容易导致计算机浮点计算精不够而出现机器0值,从而常用公式(2)的l(μ,σ2|X)来求极大似然估计,更普遍的如公式(3)所示。image     余下的问题,就是求l(μ,σ2|X)的极大值的过程,即参数的一阶偏导为0的极值点,在此不详述了,可参看下图。image

 

    非常庆幸,对于正态分布来说,μ和σ2都能解析地直接求解,从而得到学生成绩满足何种正态分布。但实际情况是,许多应用模型中求解μ和σ2都十分困难。

2 隐含状态的极大似然估计

    如第1节中所述,学生的单科成绩满足高斯分布f(x|μ,σ2),假设抽取的X是学生的语文和数学成绩,显然这样的成绩应该符合分布g(x|λ12121222),如公式(3)所示,两个混合的高斯分布,λ12分别表示f(x|μ112)和f(x|μ222)的在模型中的比率。

image    对于公式(5)所示的极大似然估计求解中,偏导的方程组,由于和的对数的数据,方程组的求解已经是神鬼难助了。

    如果知道Xm={x1,x2,…,xm}属于语文成绩,Xelse={x1+m,x2+m,…,xn}属于数学成绩,g(x|θ)将变得极其简单,完全可以由第1节方法求解;如果知道μ121222,求Xm和Xelse也很容易——鸡蛋困境?

    接下来详述的EM(Expectation Maximization, EM)算法解决的就是这个鸡蛋困境,不管是先有鸡还是先有蛋,最终命运都会被享用。

3 EM算法

    在此先将问题抽象,已知模型为p(x|θ),X=(x1,x2,…,xn),求θ。引入隐含变量Z=(z1,z2,…,zn),使得模型满足公式(6)或公式(7)的关系。由第1节的极大似然估计有,l(θ)满足公式(8)。

image    和很多求极值的算法一样(NN的BP算法),EM算法也是通过迭代计算l(θ) 的极值的。假设第n轮迭代计算出的

θ为θn,在新的迭代中,最简单的想法就是新的θ要优于θn即可,有l(θ)-l(θn)如下所示。如公式(9)描述,计算的的难度主要在于log函数中的求和,为解决这个问题和找到l(θ)-l(θn)的下界值,引入Jensen不等式。

image

函数的凹凸性与Jensen不等式:     

    如果f(x)为凸函数,f(x)满足公式(10)的关系,具体证明不述,紧述的函数图就明了地描绘了这种关系。更一般地说,f(x)满足公式(11)中的关系,证明可由公式(10)导出,称为Jensen不等式。

image image     至于什么是凸函数,f(x)的二阶偏导恒大于(或等于)0,如果x为高维向量,hessian矩阵必须(半)正定,凹函数属性相对。

     而f(x)=log(x), f’’=-1/x2<0 就为一个典型的凹函数,满足关系(11)。

image

    公式(9)中的l(θ)-l(θn)满足如下关系:

image     进而有:

image

image图2 l(θ)和φ(θn,θ)关系图

     可见l(θ)的下界为φ(θn,θ),φ(θn,θ)值越大, l(θ)的下界也将越大(其中的θn为已知变量),具体l(θ)和φ(θn,θ)的关系可从图2可看出:φ(θn,θ)增长的方向也是l(θ)增长的方向,也就是任意增长φ(θn,θ)值的θ,都将使l(θ)下界增大,从而迭代使l(θ)逼近理想值。当然,在此最好的φ(θn,θ)值的θ便是,max(φ(θn,θ))处的θ,计算如下:

image      这样,迭代求θ的方法就显而易见了:

随机初始化θ0

1、求条件期望F(θ,θn),如上公共所示;

2、求F(θ,θn)的极值处θn+1

3、反复迭代1,2计算,直到θn收敛,即|θn+1n|<α(收敛条件)。

     这样,EM算法就完全解决了鸡和蛋的问题了,至于初始化条件可以是鸡(θ0),也可以是蛋(z0)。

     PS:EM算法的敛散性,由计算中的下界迭代,可很清晰的看到,EM算法收敛,但可能收敛于局部最优解,证明不述。   

4 缺失数据问题

    可以说EM算法天生就是用来解决缺失数据的问题的,将第3节的隐变量z看成是数据中缺失的数据即可。

    在完全数据X(无缺失数据)下,知模型为f(x|θ),求数据满足何种模型?这可以由第1节的极大似然估计求解;如果采样数据存在部分未知Z,预测这些含未知的数据的数据符何什么模型?这就可借用第3节的EM算法了,先随机假设θ0,迭代求解,最后求知f(x|θ),当然也就可出了z。

5 高斯混合模型

     暂不述,直接为EM算法的应用。

 

参考资料:

1、Sean Borman. The Expectation Maximization Algorithm;

2、李航. 统计学习方法;

3、虞台文. EM Algorithm.

对于同仁们的布道授业,一并感谢。

----



0 0
原创粉丝点击