斯坦福大学机器学习——EM算法求解高斯混合模型

原创 2014年11月17日 16:57:14

EM算法(Expection-Maximizationalgorithm,EM)是一种迭代算法,通过E步和M步两大迭代步骤,每次迭代都使极大似然函数增加。但是,由于初始值的不同,可能会使似然函数陷入局部最优。辜丽川老师和其夫人发表的论文:基于分裂EM算法的GMM参数估计(提取码:77c0)改进了这一缺陷。下面来谈谈EM算法以及其在求解高斯混合模型中的作用。

一、   高斯混合模型(Gaussian MixtureModel, GMM)

之前写过高斯判别分析模型,利用参数估计的方法用于解决二分类问题。下面介绍GMM,它是对高斯判别模型的一个推广,也能借此引入EM算法。

假设样本集为并且样本和标签满足联合分布 。这里:服从多项式分布,即 ),且 ;在给定的情况下,服从正态分布,即。这样的模型称为高斯混合模型。

该模型的似然函数为:

如果直接令的各变量偏导为0,试图分别求出各参数,我们会发现根本无法求解。但如果变量是已知的,求解便容易许多,上面的似然函数可以表示为:

利用偏导求解上述式,可分别得到参数的值:



其中,#{ }为指示函数,表示满足括号内条件的数目。

那么,变量无法通过观察直接得到,就称为隐变量,就需要通过EM算法,求解GMM了。下面从Jensen不等式开始,介绍下EM算法:

二、   Jensen不等式(Jensen’s inequality)

引理:如果函数f的定义域为整个实数集,并且对于任意x或存在或函数的Hessian矩阵,那么函数f称为凹函数。或函数的Hessian矩阵H>0,那么函数f严格凹函数。

存在或函数的Hessian矩阵,那么函数f称为凸函数;如果或函数的Hessian矩阵 H<0,那么函数f严格凸函数。)

定理:如果函数f是凹函数,X为随机变量,那么:

不幸的是很多人都会讲Jensen不等式记混,我们可以通过图形的方式帮助记忆。下图中,横纵坐标轴分别为X和f(X),f(x)为一个凹函数,a、b分别为变量X的定义域,E[X]为定义域X的期望。图中清楚的看到各个量的位置和他们间的大小关系。反之,如果函数f是凸函数,X为随机变量,那么:


Jensen不等式等号成立的条件为:,即X为一常数。


三、   EM算法

假设训练集是由m个独立的样本构成。我们的目的是要对概率密度函数进行参数估计。它的似然函数为:


然而仅仅凭借似然函数,无法对参数进行求解。因为这里的随机变量是未知的。

EM算法提供了一种巧妙的方式,可以通过逐步迭代逼近最大似然值。下面就来介绍下EM算法:

假设对于所有i,皆为随机变量的分布函数。即:。那么:


其中第(2)步至第(3)步的推导就使用了Jensen不等式。其中:f(x)=log x,,因此为凸函数;表示随机变量为概率分布函数为的期望。因此有:



这样,对于任意分布,(3)都给出了的一个下界。如果我们现在通过猜测初始化了一个的值,我们希望得到在这个特定的下,更紧密的下界,也就是使等号成立。根据Jensen不等式等号成立的条件,当为一常数时,等号成立。即:

由上式可得,又,因此。再由上式可得:

上述等式最后一步使用了贝叶斯公示。

EM算法有两个步骤:

(1)通过设置初始化值,求出使似然方程最大的值,此步骤称为E-步(E-step)

(2)利用求出的值,更新。此步骤称为M-步(M-step)。过程如下:

repeat until convergence{

   (E-step) for each i, set

      (M-step) set


那么,如何保证EM算法是收敛的呢?下面给予证明:

假设是EM算法第t次和第t+1次迭代所得到的参数的值,如果有,即每次迭代后似然方程的值都会增大,通过逐步迭代,最终达到最大值。以下是证明:

不等式(4)是由不等式(3)得到,对于任意值都成立;得到不等式(5)是因为我们需要选择特定的使得方程处的值大于在处的值;等式(6)是找到特定的的值,使得等号成立。

最后我们通过图形的方式再更加深入细致的理解EM算法的特点:

由上文我们知道有这样的关系:,EM算法就是不断最大化这个下界,逐步得到似然函数的最大值。如下图所示:

首先,初始化,调整使得相等,然后求出使得到最大值的;固定,调整,使得相等,然后求出使得到最大值的;……;如此循环,使得的值不断上升,直到k次循环后,求出了的最大值



四、   EM算法应用于混合高斯模型(GMM)

再回到GMM:上文提到由于隐变量的存在,无法直接求解参数,但可以通过EM算法进行求解:

E-Step:

 
M-Step:
 

(1)参数
对期望的每个分量求偏导:


令上式为0,得:

(2)参数 

观察M-Step,可以看到,跟相关的变量仅仅有。因此,我们仅仅需要最大化下面的目标函数:


又由于,为约束条件。因此,可以构造拉格朗日算子求目标函数:


求偏导:

得:


带入上式得:


最后将带入得:


(3)参数

令上式为零,解得:


五、   总结

EM算法利用不完全的数据,进行极大似然估计。通过两步迭代,逐渐逼近最大似然值。而GMM可以利用EM算法进行参数估计。

最后提下辜老师论文的思路:EM模型容易收敛到局部最大值,并且严重依赖初试值。传统的方法即上文中使用的方法是每次迭代过程中,同时更新高斯分布中所有参数,而辜老师的方法是把K个高斯分布中的一个分量,利用奇异值分解的方法将其分裂为两个高斯分布,并保持其他分量不变的情况下,对共这K+1个高斯分布的权值进行更新,直到符合一定的收敛条件。这样一来,虽然算法复杂度没有降低,但每轮只需要更新两个参数,大大降低了每轮迭代的计算量。


高斯混合模型(GMM)及其EM算法的理解

一个例子高斯混合模型(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同的分布的情况(或者是同一...

【EM算法】在高斯混合模型中的应用及python示例

一、EM算法 EM算法是一种迭代算法,用于含有隐含变量的概率模型参数的极大似然估计。设Y为观测随机变量的数据,Z为隐藏的随机变量数据,Y和Z一起称为完全数据。 观测数据的似然函数为: 模...

用EM算法求解高斯混合模型

本文从高斯混合模型出发,引出EM算法,最后回归到利用EM算法求解高斯混合模型。理论部分力求详尽不留证明疑点,所以略显冗长。实验部分给出了生成高斯混合分布样本和利用EM算法求解高斯混合模型的matlab...

EM算法与GMM的训练应用

注:本文主要参考Andrew Ng的Lecture notes 8,并结合自己的理解和扩展完成。本文有的数学推导过程并不是那么的严密,主要原因是本文的目的在于理解原理,若数学推导过于严密则文章会过于冗...
  • he___
  • he___
  • 2015年05月09日 11:38
  • 2380

GMM的EM算法实现

在 聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut一文中我们给出了GMM算法的基本模型与似然函数,在EM算法原理中对EM算法的实现与收敛性证...

GMM高斯混合模型学习笔记(EM算法求解)

提出混合模型主要是为了能更好地近似一些较复杂的样本分布,通过不断增加component个数,可以任意地逼近任何连续的概率分布,所以我们认为任何样本分布都可以用混合模型来建模。因为高斯函数具有一些很实用...

GMM及EM算法

GMM及EM算法标签(空格分隔): 机器学习 前言: * EM(Exception Maximizition) – 期望最大化算法,用于含有隐变量的概率模型参数的极大似然估计; * ...

GMM的EM算法推导

1、EM算法推导 对于一组样本X={xt,t=1,2,...,T},xt符合i.i.d(独立同分布),于是就有:        --------------------1        取对数(连乘的...

机器学习 - 高斯混合模型参数估计的EM算法

看理论之前先来【举个例子】: 对于一个未知参数的模型,我们观测他的输出,得到下图这样的直方图: 我们先假设它是由两个高斯分布混合叠加而成的,那么我们该怎么去得到这两个高斯分布的参数呢? ...

EM算法之高斯混合模型详细推导过程

高斯混合模型 如果有c个高斯分布,并且这k个个高斯分布的选择都符合多项式分布,那么有下面的公式 那么样本x 是一个服从多元高斯分布的随机试验中产生的抽样 那么...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:斯坦福大学机器学习——EM算法求解高斯混合模型
举报原因:
原因补充:

(最多只允许输入30个字)