EM 算法之二—————高斯混合模型与 EM

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个高斯分布的权值进行更新,直到符合一定的收敛条件。这样一来,虽然算法复杂度没有降低,但每轮只需要更新两个参数,大大降低了每轮迭代的计算量。

时间: 2024-08-02 16:45:55

EM 算法之二—————高斯混合模型与 EM的相关文章

EM算法是炼金术吗?

人工智能很火,人工智能大神很火.大神们的神器是什么?有人说找到了,就是EM算法. 请看这篇: EM算法的九层境界:Hinton和Jordan理解的EM算法 但是最近网上引人关注的另一传闻是,一位人工智能论文获奖者在获奖感言中说深度学习方法是炼金术,从而引起大神家族成员反驳.报道见:NIPS机器学习炼金术之争 看到上面两篇,使我想到:EM算法是炼金术吗? 我近两年碰巧在研究用以改进EM算法的新算法:http://survivor99.com/lcg/CM/Recent.html,对EM算法存在的问

EM算法的九层境界:​Hinton和Jordan理解的EM算法

前言 为什么说EM算法是他们强强发力的领域呢? 这里我们讨论Hinton和统计大神Jordan的强强发力的领域.当Bayes网络发展到高级阶段, 概率图模型使得计算成为问题,由此开启了Variational Bayes领域.在"变の贝叶斯"里面, 我们解释了研究Variational Bayes,有3拨人. 第一拨人, 把物理的能量搬到了机器学习(参考 "给能力以自由吧!"). 第二拨人, 就是Hinton,他将VB和EM算法联系了起来,奠定了现在我们看到的VB的基

EM算法之一 ———— EM算法描述与推论,应用

      机器学习十大算法之一:EM算法.能评得上十大之一,让人听起来觉得挺NB的.什么是NB啊,我们一般说某个人很NB,是因为他能解决一些别人解决不了的问题.神为什么是神,因为神能做很多人做不了的事.那么EM算法能解决什么问题呢?或者说EM算法是因为什么而来到这个世界上,还吸引了那么多世人的目光.        我希望自己能通俗地把它理解或者说明白,但是,EM这个问题感觉真的不太好用通俗的语言去说明白,因为它很简单,又很复杂.简单在于它的思想,简单在于其仅包含了两个步骤就能完成强大的功能,复

机器学习之从极大似然估计到最大熵原理以及EM算法详解

一.极大似然估计 极大似然估计是建立在极大似然原理的基础上的一个统计方法,极大似然原理的直观想法是,一个随机试验如有若干个可能的结果A,B,C,- ,若在一次试验中,结果A出现了,那么可以认为实验条件对A的出现有利,也即出现的概率P(A)较大.极大似然原理的直观想法我们用下面例子说明.设甲箱中有99个白球,1个黑球:乙箱中有1个白球.99个黑球.现随机取出一箱,再从抽取的一箱中随机取出一球,结果是黑球,这一黑球从乙箱抽取的概率比从甲箱抽取的概率大得多,这时我们自然更多地相信这个黑球是取自乙箱的.

一文详解高斯混合模型(GMM)在图像处理中的应用(附代码)

  一. 概述 高斯混合模型(GMM)在图像分割.对象识别.视频分析等方面均有应用,对于任意给定的数据样本集合,根据其分布概率, 可以计算每个样本数据向量的概率分布,从而根据概率分布对其进行分类,但是这些概率分布是混合在一起的,要从中分离出单个样本的概率分布就实现了样本数据聚类,而概率分布描述我们可以使用高斯函数实现,这个就是高斯混合模型-GMM. 这种方法也称为D-EM即基于距离的期望最大化.   二. 算法步骤     1. 初始化变量定义-指定的聚类数目K与数据维度D     2. 初始化

高斯混合模型GMM的C++实现

单高斯分布模型SGM 高斯密度函数估计是一种参数化模型.有单高斯模型(Single Gaussian Model, SGM)和高斯混合模型(Gaussian mixture model,GMM)两类.类似于聚类,根据高斯概率密度函数(PDF,见公式1)参数的不同,每一个高斯模型可以看作一种类别,输入一个样本x,即可通过PDF计算其值,然后通过一个阈值来判断该样本是否属于高斯模型.很明显,SGM适合于仅有两类别问题的划分,而GMM由于具有多个模型,划分更为精细,适用于多类别的划分,可以应用于复杂对

matlab omp-OMP算法重构二维信号中遇到的运行问题

问题描述 OMP算法重构二维信号中遇到的运行问题 Cannot find an exact (case-sensitive) match for 'DWT' The closest match is: dwt in C:Program FilesMATLABR2012btoolboxwaveletwaveletdwt.m Error in OMP (line 6) ww=DWT(a);

hog-HOG算法计算二值化图像的特征

问题描述 HOG算法计算二值化图像的特征 HOG算法能不能计算二值化图像的特征? 若用HOG算法计算二值化图像的特征,是不是就不需要灰度化及Gamma校正? 解决方案 可以的吧,我用opencv的HoG计算特征可以直接输入图像的,什么预处理都不做也是可以的 解决方案二: 可以的吧,我用opencv的HoG计算特征可以直接输入图像的,什么预处理都不做也是可以的

基于图的机器算法 (二)

基于图的机器算法 (二) 编者按:基于图的机器算法学习是一个强大的工具.结合运用模块特性,能够在集合检测中发挥更大作用.本文是基于图的机器算法系列文的第二篇(前情回顾:基于图的机器算法 (一)). 在上一篇文章中,我们进行了使用模块化优化方式来进行集合检测的探索.然而它有个不足,你的图需要适应内存.当你的节点数超过数十亿,边数将变成万亿,这很快就会出现问题. 幸运的是,我们可以利用分布式计算系统来解除这个限制.为此,我们首先需要定义节点的状态,使其包含计算期间所需的所有信息;这将构成在分布式集群