期望最大化(Expectation Maximization)算法介绍

一. 前言

期望最大化(Expectation Maximization)算法(EM算法)在实际的应用中受到的关注不是特别的重,但是在学术中EM算法是其它很多算法的基础,如隐马尔科夫算法(HMM),LDA主题模型的变分推断等等。所以,理解EM算法对其它算法的学习还是很重要的。本文是对期望最大化算法(EM算法)做一个总结。

概率模型有时既含有观测变量,又含有隐变量。如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法或贝叶斯估计法估计参数模型。但是,当模型含有隐变量或者含有缺失值的时候,就不能简单地使用这些方法估计了。EM算法就是一个在数据集中有缺失值或者含有隐变量的时候能有效的计算最大似然估计的迭代过程。

EM算法包含两个步骤,E步和M步。E步也就是我们求期望的步骤,M步将E步所求的期望最大化,重复E步和M步直到收敛,也就是我们估计的模型参数不再发生变化或者变化幅度很小。这就是EM算法的基本概括,下面我们来详细的介绍EM算法。

二. EM算法描述

输入:观测数据期望最大化(Expectation Maximization)算法介绍,联合分布期望最大化(Expectation Maximization)算法介绍,条件分布期望最大化(Expectation Maximization)算法介绍,其中y是隐变量;

输出:模型参数期望最大化(Expectation Maximization)算法介绍

(1)随机初始化参数的初值期望最大化(Expectation Maximization)算法介绍

(2)重复(a)和(b)直到模型参数期望最大化(Expectation Maximization)算法介绍收敛:

(a)E步:记期望最大化(Expectation Maximization)算法介绍为第期望最大化(Expectation Maximization)算法介绍次迭代参数期望最大化(Expectation Maximization)算法介绍的估计值,在第期望最大化(Expectation Maximization)算法介绍次迭代的E步,计算: 

                              期望最大化(Expectation Maximization)算法介绍

                      期望:期望最大化(Expectation Maximization)算法介绍

(b)M步:最大化期望期望最大化(Expectation Maximization)算法介绍,得到期望最大化(Expectation Maximization)算法介绍

                               期望最大化(Expectation Maximization)算法介绍

以上就是EM算法的算法流程,接下来我们详细的推到EM算法。

三. EM算法分析

首先要明确我们的目标是给定观测数据期望最大化(Expectation Maximization)算法介绍,我们求观测概率最大的时的模型参数期望最大化(Expectation Maximization)算法介绍,所以我们可以用最大似然估计法,极大化模型分布的对数似然函数,如下:

                            期望最大化(Expectation Maximization)算法介绍

我们取期望最大化(Expectation Maximization)算法介绍如下,并引入隐变量y:

                          期望最大化(Expectation Maximization)算法介绍

                                 期望最大化(Expectation Maximization)算法介绍

由于上式并没有一个很好的闭合解,所以上式根本就不好优化,没有办法求出我们的目标期望最大化(Expectation Maximization)算法介绍,所以我们使用了一些技巧,在介绍技巧之前我们向介绍一下Jensen不等式。

Jensen不等式:如果期望最大化(Expectation Maximization)算法介绍是定义在区间期望最大化(Expectation Maximization)算法介绍上的凸函数,如果期望最大化(Expectation Maximization)算法介绍期望最大化(Expectation Maximization)算法介绍期望最大化(Expectation Maximization)算法介绍时,则:

                          期望最大化(Expectation Maximization)算法介绍

证明如下:

                         期望最大化(Expectation Maximization)算法介绍

                                             期望最大化(Expectation Maximization)算法介绍

                                             期望最大化(Expectation Maximization)算法介绍    期望最大化(Expectation Maximization)算法介绍

                                             期望最大化(Expectation Maximization)算法介绍

                                             期望最大化(Expectation Maximization)算法介绍       期望最大化(Expectation Maximization)算法介绍

                                             期望最大化(Expectation Maximization)算法介绍             

                                             期望最大化(Expectation Maximization)算法介绍

所以期望最大化(Expectation Maximization)算法介绍,即期望最大化(Expectation Maximization)算法介绍

其中(1)和(2)用到了凸函数的定义:期望最大化(Expectation Maximization)算法介绍

介绍完了jensen不等式,接下来我们继续介绍EM算法。我们谈到求期望最大化(Expectation Maximization)算法介绍时用到了一些技巧,如下:

                                         期望最大化(Expectation Maximization)算法介绍

                                                期望最大化(Expectation Maximization)算法介绍

                                                期望最大化(Expectation Maximization)算法介绍期望最大化(Expectation Maximization)算法介绍

                                                期望最大化(Expectation Maximization)算法介绍

其中,由jensen不等式可知,对任意期望最大化(Expectation Maximization)算法介绍期望最大化(Expectation Maximization)算法介绍都有:期望最大化(Expectation Maximization)算法介绍 且 期望最大化(Expectation Maximization)算法介绍

期望最大化(Expectation Maximization)算法介绍中,期望最大化(Expectation Maximization)算法介绍是上一次迭代的参数,所以期望最大化(Expectation Maximization)算法介绍是一个定值,从而期望最大化(Expectation Maximization)算法介绍在观测样本给定时是一个常数,我们的目标是最大化期望最大化(Expectation Maximization)算法介绍时的参数取多少并不在意最大值取多少,所以我们可以简化期望最大化(Expectation Maximization)算法介绍期望最大化(Expectation Maximization)算法介绍,而期望最大化(Expectation Maximization)算法介绍可以理解为期望最大化(Expectation Maximization)算法介绍基于条件概率分布期望最大化(Expectation Maximization)算法介绍的期望。

期望最大化(Expectation Maximization)算法介绍有一个有趣的性质如下:

                                      期望最大化(Expectation Maximization)算法介绍

                                                          期望最大化(Expectation Maximization)算法介绍

                                                          期望最大化(Expectation Maximization)算法介绍

所以,由上面可得到,期望最大化(Expectation Maximization)算法介绍期望最大化(Expectation Maximization)算法介绍的下界,我们只要不断的使期望最大化(Expectation Maximization)算法介绍的最大值增大,就可以使期望最大化(Expectation Maximization)算法介绍不断的增大。所以此时我们的目标就是最大化期望最大化(Expectation Maximization)算法介绍,找到一个参数期望最大化(Expectation Maximization)算法介绍使得:

                                     期望最大化(Expectation Maximization)算法介绍

又由于期望最大化(Expectation Maximization)算法介绍期望最大化(Expectation Maximization)算法介绍的下界,所以:

                                     期望最大化(Expectation Maximization)算法介绍

所以由上面的式子可以看出期望最大化(Expectation Maximization)算法介绍确实是一个比期望最大化(Expectation Maximization)算法介绍好的参数,接下来通过一步一步的迭代就可以使期望最大化(Expectation Maximization)算法介绍到达最大值点,从而使期望最大化(Expectation Maximization)算法介绍到达局部最大值点。

四. EM算法图形解释

EM算法用图形来解释如下图:                     

期望最大化(Expectation Maximization)算法介绍

由上图可知期望最大化(Expectation Maximization)算法介绍,当期望最大化(Expectation Maximization)算法介绍时,期望最大化(Expectation Maximization)算法介绍。EM算法目标是找到期望最大化(Expectation Maximization)算法介绍使得函数期望最大化(Expectation Maximization)算法介绍最大化,这时由于期望最大化(Expectation Maximization)算法介绍,函数期望最大化(Expectation Maximization)算法介绍的增加,保证对数似然函数期望最大化(Expectation Maximization)算法介绍在每次迭代中也是增加的。EM算法在点期望最大化(Expectation Maximization)算法介绍会重新计算函数期望最大化(Expectation Maximization)算法介绍,进行下一次迭代。在这个过程中,对数似然函数期望最大化(Expectation Maximization)算法介绍不断增大,从而到达局部最大值,但EM算法不能保证找到全局最大值。

五. EM算法的收敛性

EM算法提供一种近似计算含有隐变量概率模型的极大似然估计的方法。EM算法的流程并不复杂,但是关于EM算法我们不得不思考一下EM算法能够保证收敛吗?

接下来我们就来讨论一下关于EM算法的收敛性。

要证明EM算法能收敛到极大值,即证明期望最大化(Expectation Maximization)算法介绍单调递增且有上界,由于我们的样本为有限个样本,所以期望最大化(Expectation Maximization)算法介绍一定使有上界的。此时我们证明期望最大化(Expectation Maximization)算法介绍单调递增即可,即证明下式成立:

                        期望最大化(Expectation Maximization)算法介绍

即证明:

                       期望最大化(Expectation Maximization)算法介绍

为了证明方便,上式用向量形式表示,如下:

                       期望最大化(Expectation Maximization)算法介绍期望最大化(Expectation Maximization)算法介绍

证明上式如下:

由于

                       期望最大化(Expectation Maximization)算法介绍

 对上式两边取对数有:

                       期望最大化(Expectation Maximization)算法介绍

由前面的讨论可知:

                       期望最大化(Expectation Maximization)算法介绍

令:

                       期望最大化(Expectation Maximization)算法介绍

于是对数似然函数可以写成:

                       期望最大化(Expectation Maximization)算法介绍

                                           期望最大化(Expectation Maximization)算法介绍

将上式中期望最大化(Expectation Maximization)算法介绍分别取期望最大化(Expectation Maximization)算法介绍期望最大化(Expectation Maximization)算法介绍,然后相减得:

                     期望最大化(Expectation Maximization)算法介绍

要证明期望最大化(Expectation Maximization)算法介绍,只需证明上式右边大于等于0即可;

由于前面已经证明期望最大化(Expectation Maximization)算法介绍使期望最大化(Expectation Maximization)算法介绍达到极大,所以有:

                    期望最大化(Expectation Maximization)算法介绍

对于右边第二项:

                    期望最大化(Expectation Maximization)算法介绍

                                                      期望最大化(Expectation Maximization)算法介绍   (jensen不等式)

                                                      期望最大化(Expectation Maximization)算法介绍

所以,期望最大化(Expectation Maximization)算法介绍成立,从而期望最大化(Expectation Maximization)算法介绍,即可证EM算法的收敛性。

从上面的讨论可以看出,EM算法可以保证收敛到一个极大值点,但却不不能保证收敛到全局的最大值点,因此EM算法是一个局部最优算法。所以在应用中,EM算法的初值的选择变得非常的重要,常用的办法是选取几个不同的初值进行迭代,然后对得到的各个估计值加以比较,从中选择最好的。

以上就是对EM算法的总结。

六. 参考文献

(1)《统计学习方法》第9章

(2)The EM Algorithm

(3)The Expectation Maximization Algorithm: A short tutorial