文章目录
- 一、EM算法的引入
- 1、极大似然估计
- 2、EM入场
- 二、EM算法推导
- 1、Jensen不等式
- 2、EM推导过程
- (1)统计学习方法EM推导
- (2)Andrew NG关于EM算法的推导
- 3、统计学习方法EM算法流程
- 4、EM算法直观解释
- 5、EM算法在非监督学习中的应用
- 三、EM算法的收敛性
- 四、高斯混合模型GMM
- 五、EM算法的推广
EM内容较多,方便阅读,分成2个部分
EM算法是一种迭代算法,1977年由Dempster等人总结提出,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。EM算法的每次迭代由两步组成:E步,求期望(exception);M步,求极大(maximization)。所以这一算法称为期望极大算法,简称EM算法。
一、EM算法的引入
概率模型有时既含有观测变量,又含有隐变量或潜在变量。如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法,或贝叶斯估计法估计模型参数;当模型含有隐变量时,就不能简单地使用这些估计方法,EM算法就是含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计法。下文以讨论极大似然估计为例,极大后验概率估计与其类似。
在朴素贝叶斯算法里面已经讲解过极大似然估计和贝叶斯估计,今天再对极大似然估计做一个详细的介绍,因为实在是太常见了。
1、极大似然估计
总体样本服从分布,现有个样本,估计模型的参数。那么得到的参数应该是使现有的个样本最容易出现的参数,这就是极大似然估计的思想(模型已定,参数未知)。每个样本之间是相互独立的,那么可以得到这个样本的联合概率即极大似然函数,用下式表示:
对数似然函数:
求极大似然函数估计值的一般步骤:
- (1)写出似然函数;
- (2)对似然函数取对数,并整理;
- (3)求导数,令导数为0,得到似然方程;
- (4)解似然方程,得到的参数即为所求;
简单实例说明,实例来自博客。假设现在有两枚硬币1和2,,随机抛掷后正面朝上概率分别为。为了估计这两个概率,做实验,每次取一枚硬币,连掷5下,记录下结果,如下:
可以很容易地估计出和,如下:
上面的计算很简单很理所当然,但上面是用了极大似然估计的。可以见证明,极大似然估计证明先验概率
2、EM入场
还是上面的问题,现在我们抹去每轮投掷时使用的硬币标记,如下:
问题还是要估计两枚硬币随机抛掷后正面朝上概率。
显然,此时我们多了一个隐变量,可以把它认为是一个5维的向量,代表每次投掷时所使用的硬币,比如,就代表第一轮投掷时使用的硬币是1还是2。但是,这个变量不知道,就无法去估计和,所以,我们必须先估计出,然后才能进一步估计和。
但要估计,我们又得知道和,这样我们才能用最大似然概率法则去估计,这不是鸡生蛋和蛋生鸡的问题吗?如何破?
答案就是先随机初始化一个和,用它来估计,然后基于,按照最大似然概率法则去估计新的和。这就是最开始说的E步和M步,如此反复下去,直到收敛到一个不再改变的参数。
二、EM算法推导
1、Jensen不等式
在支持向量机里面介绍过凸函数。今天讲下Jensen不等式。
看到很多博客里面有不同的评论说凹凸函数用混了,这边为了不引起歧义在使用的时候直接带上条件,那么肯定就不会弄混了。
如果是凸函数(),那么有:
当且仅当时上式取等号。
加权形式:
Jensen不等式证明
推得若是凸函数,X是随机变量,有
当且仅当X是常量时,上式取等号。
如果是凹函数(),那么同理有:
考虑到,则有,是的函数。
2、EM推导过程
(1)统计学习方法EM推导
第一部分内容,看看文字描述,能理解EM算法大概是怎么回事,是在解决一个什么问题。但是具体要使用,就需要数学公式推导,证明这个想法确实可行。这一部分内容看课本的时候很难理解。然后找到一篇讲解和带部分公式推导还可以的博客。但是我决定最终用来总结推导的内容还是以参考课本为主。对其中理解起来较困难的地方展开和进一步解释。
一般地,用表示隐随机变量的数据,表示观测随机变量的数据又称为不完全数据,和连在一起称为完全数据。假设给定观测数据,其概率分布是,其中是需要估计的模型参数,那么不完全数据的似然函数是,对数似然;假设和的联合概率分布是,那么完全数据的对数似然函数是。
面对一个含有隐变量的概率模型,目标是极大化观测数据(不完全数据)关于参数的对数似然函数,即极大化
注意这一极大化的主要困难是式(5)中有未观测数据并有包含和的对数。事实上,EM算法是通过迭代逐步近似极大化的。假设在第次迭代后的估值是。我们希望新估计值能使增加,即,并逐步达到极大值。
,为凹函数,是的期望,利用Jensen不等式可得凹函数有,则得到上式下界:
为什么这么凑Jensen不等式?从后面Q函数的意义可以知道为什么。
令
则
即函数是的一个下界,而且式(6)可知
因此,任何可以使增大的,也可以使增大。为了使有尽可能的增大,选择使达到极大,即
现在求的表达式。省去对的极大化而言是常数的项,由式(6)、式(9),有
式(10)等价于EM算法的一次迭代,即求函数及其极大化。EM算法是通过不断求解下界的极大化逼近求解对数似然函数极大化的算法。
(2)Andrew NG关于EM算法的推导
这篇博客里面有介绍Andrew NG关于EM算法的推导,和李航的统计学习方法不一样,可以相互参考着看,异曲同工。不用特意知道为什么那么去凑Jensen不等式。
上面极大化求解过程中含有隐变量参数以及在对数里面有求和操作,求解会非常复杂,所以上式的变形过程中使用了Jensen不等式,满足凹函数的条件,那么只需要上式变形就是成立。另外要使对数似然函数最大,那么需要在上式的变形中取等号,根据Jensen不等式有是常数的时候等号成立。则有
其中为的后验概率,求解过程称为E步,即固定参数,求出使得Jensen变形中取等号的。
所以有
M步:算出也就是有了隐变量的后验概率后,就可以通过极大似然估计进行求解最优的参数作为进行下一轮迭代,直到迭代停止条件。
对比式(10)和式(10.3)可以发现统计学习方法里面的函数实际上是的一个变形,和Andrew NG推导里面的形式几乎是一样的,只是因为统计学习方法在M步求解极大化时把常数项参数省去了。两个推导中的函数意义不一样,只是都用了同一个名字。
按上面方式讲解EM算法一篇非常不错的博客(EM算法)The EM Algorithm。
3、统计学习方法EM算法流程
输入:观测变量数据,隐变量数据,联合分布,条件分布;
输出:模型参数。
(1)选择参数的初值,开始迭代;初值可以任意选择,但需注意EM算法对初值是敏感的。
(2)E步:记为第次迭代参数的估计值,在第次迭代的E步,计算
- 上式的函数是EM算法的核心,称为函数。
- 需要计算,即在给定观测数据和当前的参数估计下隐变量数据的条件概率分布,作为隐变量的现估计值。
- 函数:完全数据的对数似然函数关于在给定观测数据和当前参数下对未观测数据的条件概率分布的期望称为函数。
(3)M步:求使极大化的,确定第次迭代的参数的估计值
(4)重复第(2)步和第(3)步,直到收敛。给出停止迭代的条件,一般是对较小的正数,若满足
4、EM算法直观解释
在下图中给出了EM算法的直观解释。图中上方曲线为,下方曲线为。为对数似然函数的下界。两个函数在点处相等。由式(9)和(10),EM算法找到下一个点使函数极大化,也使函数极大化。这时由于,函数的增加,保证对数似然函数在每次迭代中也是增加的。EM算法在点重新计算函数值,进行下一次迭代。在这个过程中,对数似然函数不断增大。从图中可以推断出EM算法不能保证找到全局最优值。
5、EM算法在非监督学习中的应用
监督学习是由训练数据学习条件概率分布或决策函数作为模型,用于分类、回归、标注等任务。这时训练数据的每个样本点由输入和输出对组成。
有时训练数据只有输入没有对应的输出,从这样的数据学习模型称为非监督学习问题。EM算法可以用于生成模型的非监督学习。生成模型由联合概率分布表示,可以认为非监督学习训练数据是联合概率分布产生的数据。为观测数据,为未观测数据。
三、EM算法的收敛性
EM算法提供一种近似计算含有隐变量概率模型的极大似然估计的方法。EM算法的最大优点是简单性和普适性。对EM算法的两个疑问:
- 1、EM算法得到的估计序列是否收敛?
- 2、如果收敛,是否收敛到全局最大值或者局部最大值?
EM算法定理1:设为观测数据的似然函数,为EM算法得到的参数估计序列,为对应的似然函数序列,则是单调递增的,即
EM算法定理2:设为观测数据的对数似然函数,为EM算法得到的参数估计序列,为对应的对数似然函数序列。
- (1)如果有上界,则收敛到某一值;
- (2)在函数与满足一定条件下,由EM算法得到的参数估计序列的收敛值是的稳定点。
定理1的证明:
由于
取对数有
根据式(11)有函数
令
于是对数似然函数可以写成
在式(16)中分别取为和并相减,有
由于使达到极大,所以有
对于式(17)等式右边第2项
由式(18)和式(19)可以证明。证毕。
定理2证明略,EM算法的收敛性包含关于对数似然序列的收敛性和关于参数估计序列的收敛性两层意思,前者并不蕴涵后者。定理只能保证参数估计序列收敛到对数似然函数序列的稳定点,不能保证收敛到极大值点。所以在应用中,初值的选择变得很重要,常用的办法是选取几个不同的初值进行迭代,然后对得到的各个估计值加以比较,从中选择最好的。
四、高斯混合模型GMM
五、EM算法的推广