算法用途
在统计计算中,最大期望(EM)算法是在 概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variable)。
如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法或者贝叶斯估计法来估计模型参数。当概率模型含有隐藏变量时,就不能简单地使用这些估计方法。EM算法就是含有隐变量的概率模型参数的极大似然估计法。
符号定义
- Y:观测的随机变量数据,
- Z:隐藏的随机变量数据
- 完全数据(complete data):Y和Z
- 不完全数据(incomplete data):Y
问题描述
- 输入:观测数据 Y
- 求解:模型参数
θ - 方法:最大化观测数据的似然函数
θ∗=argθmaxL(θ;Y)
其中,似然函数定义为:
- 困难:上式往往包含对未观测数据及和或者积分的对数,无解析解,不可直接求。
我们的解决方案是:通过迭代,不断优化似然函数 L(θ;Y) 的下界,来逐步近似极大化 L(θ;Y) 。这一下界,就是著名的Q函数。
Q函数
Q函数的物理意义为:
完全数据 Y,Z 的 对数似然函数 logP(Y,Z | θ),关于未观测数据 Z 的 在给定 观测数据
Y 和 当前参数估计 θi 的情况下的 后验概率分布 P(Z | Y,θi) 的条件期望。
EM算法的核心就在于Q函数的最大化。
极大似然估计的求解方法是,最大化观测变量关于模型参数的似然函数;而在EM方法的试用场景中含有隐藏变量,无法直接最大化观测变量的似然函数,因此我们转而通过迭代来不断优化观测变量似然函数的下界,即包括观测变量和隐藏变量在内的所有变量的似然函数的条件期望。
推导思路一
假设第 i 轮迭代后,
我们希望在新的一轮迭代中(即第 i+1 轮),对 θ 的新的估计能够使得 Y 的似然函数值增加,即
于是,我们考虑这二者的差:
我们注意到:
观测数据的似然函数为:
L(θ;Y)=logP(Y|θ)完全数据的似然函数为:
LC(θ;Y,Z)=logP(Y,Z|θ)=logP(Y|θ)⋅P(Z|Y;θ)=logP(Y|θ)+logP(Z|Y;θ)=L(θ;Y)+logP(Z|Y;θ)也就是说:
L(θ;Y)=LC(θ;Y,Z)−logP(Z|Y;θ)
所以有
对该式左右两边取关于Z的期望(Y,θ,i 已给定)。左式两项与Z无关,所以结果不变;右式三项均与Z相关。结果如下:
不等号成立的原因是右式第三项实质上是两个概率分布 P(Z|Y;θ) 和 P(Z|Y;θi) 的KL-divergence,不为负。
上式又可转化为
此时,我们得到了 L(θ) 的下界,即右式所示。我们将该下界记为函数 B(θ,θi)。任何可以使 B(θ,θi) 增大的 θ,也可以使 L(θ) 增大。为了使 L(θ) 尽可能地变大,我们选择可以最大化函数 B(θ,θi) 的 θ 作为对第 i+1 轮的估计,即:
我们注意到:右式第一项和第三项均为常数,因此,上述问题等价于:
这一下界就是EM算法中的Q函数:
推导思路二
同样,假设第 i 轮迭代后,
我们希望在新的一轮迭代中(即第 i+1 轮),对 θ 的新的估计能够使得 Y 的似然函数值增加,即
于是,我们考虑这二者的差:
上式不等号是利用了Jensen不等式:
对于凸函数 f(x):
f(∑λixi)≥∑λif(xi)其中 λi≥0,∑λi=1.
而对数函数 log(⋅) (以 e 为底)为凹函数。
将上式的形式进一步转换可以得到:
此时,我们得到了 L(θ) 的下界,和第一种推导思路一致。
EM算法框架
至此,我们可以给出EM算法框架如下:
输入:观测数据 Y
设定:模型及其参数 θ,以及P(Y | Z) 和 P(Z | θ)
求解:模型参数 θ(1) 初始化:选择参数初值 θ0,开始迭代
(2) E-step:记 θi 为第 i 次迭代的参数值,则在第
i+1 次迭代的E-step,计算Q函数,即完全数据在当前参数下的条件期望:
Q(θ,θi)=EZ[logP(Y,Z | θ) | Y,θi]=∑ZP(Z | Y,θi)⋅logP(Y,Z | θ)其中Q函数的计算涉及两项概率分布:
- 完全数据 Y,Z 的 对数似然函数 logP(Y,Z | θ):
logP(Y,Z | θ)=logP(Y | Z) P(Z | θ)- 未观测数据 Z 的 后验概率分布
P(Z | Y,θi) :
P(Z | Y,θi)=P(Y,Z |θi)P(Y | θi)=P(Y,Z |θi)∑Z′P(Y,Z′ | θi)=P(Y | Z) P(Z |θi)∑Z′P(Y | Z′) P(Z′ | θi)(3) M-step:求使得上述期望最大的 θ,确定第 i+1 次迭代的参数估计值 θi+1:
θi+1=argθmaxQ(θ,θi)(4) 重复第2、3步,直到收敛。