一. 前言
期望最大化(Expectation Maximization)算法(EM算法)在实际的应用中受到的关注不是特别的重,但是在学术中EM算法是其它很多算法的基础,如隐马尔科夫算法(HMM),LDA主题模型的变分推断等等。所以,理解EM算法对其它算法的学习还是很重要的。本文是对期望最大化算法(EM算法)做一个总结。
概率模型有时既含有观测变量,又含有隐变量。如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法或贝叶斯估计法估计参数模型。但是,当模型含有隐变量或者含有缺失值的时候,就不能简单地使用这些方法估计了。EM算法就是一个在数据集中有缺失值或者含有隐变量的时候能有效的计算最大似然估计的迭代过程。
EM算法包含两个步骤,E步和M步。E步也就是我们求期望的步骤,M步将E步所求的期望最大化,重复E步和M步直到收敛,也就是我们估计的模型参数不再发生变化或者变化幅度很小。这就是EM算法的基本概括,下面我们来详细的介绍EM算法。
二. EM算法描述
输入:观测数据,联合分布
,条件分布
,其中y是隐变量;
输出:模型参数;
(1)随机初始化参数的初值;
(2)重复(a)和(b)直到模型参数收敛:
(a)E步:记为第
次迭代参数
的估计值,在第
次迭代的E步,计算:
期望:
(b)M步:最大化期望,得到
:
以上就是EM算法的算法流程,接下来我们详细的推到EM算法。
三. EM算法分析
首先要明确我们的目标是给定观测数据,我们求观测概率最大的时的模型参数
,所以我们可以用最大似然估计法,极大化模型分布的对数似然函数,如下:
我们取如下,并引入隐变量y:
由于上式并没有一个很好的闭合解,所以上式根本就不好优化,没有办法求出我们的目标,所以我们使用了一些技巧,在介绍技巧之前我们向介绍一下Jensen不等式。
Jensen不等式:如果是定义在区间
上的凸函数,如果
,
且