EM算法介绍及总结
本文摘自统计学习方法 李航著 清华大学出版社
EM算法介绍及总结
EM算法是一种迭代的算法,1977年由Dempster等人提出,用于含有隐变量(Hidden Variable)的概率模型参数的极大似然估计(不了解的可以参考我的另一篇博客,极大似然估计),或极大后验概率估计。EM算法的每次迭代由两步组成:E步,求期望(expectation);M步,求极大(maximum)。所以这一算法称为期望极大算法(expectation maximum algorithm),简称EM算法。本文介绍EM算法,在下一篇博客中会介绍EM算法在高斯混合模型学习中的应用。
EM算法的引入
概率模型又是即含有观测变量(observe variable),又含有隐变量或潜在变量(latent variable)。如果概率模型的变量都是观测变量,那么给定的数据,可以直接用极大似然估计法,或贝叶斯估计法估计模型参数。但是,当模型含有隐变量时,就不能简单地使用这些估计方法。EM算法就是含有隐变量的概率模型参数的极大似然估计法,或极大后验估计法。我们仅讨论极大似然估计,极大后验概率与其相似。
EM算法
例子:三硬币模型
假设有3枚硬币,分别记做A,B,C。这些硬币正面出现的概率分别是
假设只能观测到掷硬币的结果,不能观察到掷硬币的过程,问如何估计三枚硬币正面出现的概率,即三硬币模型的参数(
解答
三枚硬币的模型可以写作:
这里,随机变量y是观测变量(可以从题目中获得的数据),表示一次试验观测的结果是1或0;随机变量z是隐变量,表示未观测到的掷硬币A的结果;
将观测数据表示为
即
考虑求模型参数
这个问题没有解析解,只有通过迭代的方法求解。EM算法就是可以用于求解这个问题的一种迭代方法。下面给出针对以上问题的EM算法,其推到过程省略。
EM算法首先选取参数的初值,记做
-
E步:计算在模型参数
πi,pi,qi 下观测数据yj 来自掷硬币B的概率μj(i+1)=π(i)(p(i))yi(1−p(i))1−yiπ(i)(p(i))yi(1−p(i))1−yi+(1−π(i))(q(i))yi(1−q(i))1−yi (1) M步:计算模型参数的新估计值:
现在,如果你嫌公式太抽象,咋们来点数字计算
假设模型参数的初值取为
由公式(1)可得,无论
利用迭代公式(2~4),得到
再根据公式(1)计算
继续迭代,得:
于是得到模型参数
计算的结果依赖于初值,如果取初值
一般的,用Y表示观测随机变量的数据,Z表示隐随机变量的数据。Y和Z连在一起成为完全数据(complete-data),观测数据Y又称为不完全数据(incomplete-data)。假设给定观测数据Y,其概率分布是
EM算法通过迭代求
EM算法
输入: 观测变量数据Y,隐变量数据Z,联合分布
输出: 模型参数
(1) 选择参数的初始值
(2) E步:记
注解:其中,
(3)M步:求使
(4)重复第(2)步和第(3)步,直到收敛。
其中,公式(5)是EM算法的核心,称为Q函数(Q function)。
Q函数
完全数据的对数似然函数
关于EM算法的几点说明:
- 步骤(1)参数的初值可以任意选择,但需要注意EM算法对初值是敏感的。
- 步骤(2)E步求
Q(Θ,Θ(i)) 。Q函数式中Z是未观测数据,Y是观测数据。注意,Q(Θ,Θ(i)) 的第一个变元表示要极大化的参数,第二个变元表示参数的当前估计值。每次迭代实际在求Q函数及其极大。 - 步骤(3)M步求
Q(Θ,Θ(i)) 的极大化,得到Θ(i+1) ,完成一次迭代Θ(i)⇒Θ(i+1) 。后面证明每次迭代是似然函数增大达到局部极值。 - 步骤(4)给出停止迭代条件,一般是对较小的正数
Σ1,Σ2 ,若满足∥∥Θ(i+1)−Θ(i)∥∥<Σ1 或者∥∥Q(Θ(i+1),Θ(i))−Q(Θ(i),Θ(i−1))∥∥
则停止迭代。