EM算法简介
EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。EM算法的每次迭代分为两步:E步,求期望;M步,求极大。
概率模型有时既含有观测变量,又含有隐变量或潜在变量,如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计或贝叶斯法估计模型参数。但是当模型含有隐变量时,就不能简单地使用这种估计方法。EM算法就是含有隐变量的概率模型参数的极大似然估计法。
EM算法
观测数据表示为
Y=(Y1,Y2…Yn)T,未观测数据表示为
Z=(Z1,Z2…Zn)T,则观测数据的似然函数为
P(Y∣θ)=Z∑P(Z∣θ)P(Y∣Z,θ)(1)
考虑求模型参数
θ的对数极大似然估计,即
θ^=argθmaxlogP(Y∣θ)(2)
该问题没有解析解,只有通过迭代的方法求解。
EM算法首先选取参数的初值,记作
θ(0),然后通过如下步骤迭代计算参数的估计值,直至收敛。第
i次迭代参数的估计值为
θ(i)。EM算法的第
i+1次迭代如下:
E步: 计算在模型参数
θ(i)下观测数据
yj的概率。
M步: 计算模型参数的新估计值。
一般地,用
Y表示观测随机变量的数据,
Z表示隐随机变量的数据。
Y和
Z连在一起称为完全数据,观测数据
Y又称为不完全数据。假设给定观测数据
Y,其概率分布是
P(Y∣θ),其中
θ是需要估计的模型参数;不完全数据
Y的似然函数为
P(Y∣θ),对数似然函数
L(θ)=logP(Y∣θ);假设
Y和
Z的联合概率分布是
P(Y,Z∣θ),那么完全数据的对数似然函数为
logP(Y,Z∣θ)。
EM算法通过迭代求
L(θ)=logP(Y∣θ)的极大似然估计,每次迭代包含两步:E步,求期望;M步,求极大化。
算法1:(EM算法)
输入:观测变量数据
Y,隐变量数据
Z,联合分布
P(Y,Z∣θ),条件分布
P(Z∣Y,θ);
输出:模型参数
θ
(1)选择参数的初值
θ(0),开始迭代;
(2)E步:记
θ(i)为第
i次迭代参数
θ的估计值,在第
i+1次迭代的E步,计算
Q(θ,θ(i))=EZ[logP(Y,Z∣θ)∣Y,θ(i)]=Z∑(logP(Y,Z∣θ))P(Z∣Y,θ(i))(3)
这里的
P(Z∣Y,θ(i))是在给定观测数据
Y和当前的参数估计
θ(i)下隐变量数据
Z的条件概率分布;
(3)M步:求使
Q(θ,θ(i))极大化的
θ,确定第
i+1次迭代的参数估计值为
θ(i+1)
θ(i+1)=argθmaxQ(θ,θ(i))(4)
(4)重复第(2)步和第(3)步,直至收敛。
定义 Q函数
完全数据的对数似然函数
logP(Y,Z∣θ)关于在给定观测数据
Y和当前参数
θ(i)下对未观测数据
Z的条件概率分布
P(Z∣Y,θ(i))的期望称为
Q函数,即
Q(θ,θ(i))=EZ[logP(Y,Z∣θ)∣Y,θ(i)]
注意:
- 参数的初值是可以任意选择的,但EM算法对初值是敏感的。
-
Q中的第一个变元表示要极大化的参数,第二个变元表示参数的当前估计值。
- 给出停止迭代的条件,一般是对较小的正数
ϵ1,
ϵ2,若满足下述则停止迭代。
∣∣θ(i+1)−θ(i)∣∣<ϵ1 或 ∣∣Q(θ(i+1),θ(i))−Q(θ(i),θ(i))∣∣<ϵ2
EM算法的推导
我们面对一个含有隐变量的概率模型,目标是极大化观测数据(不完全数据)
Y关于参数
θ的对数似然函数,即极大化
L(θ)=logP(Y∣θ)=logZ∑P(Y,Z∣θ)=log(Z∑P(Y∣Z,θ)P(Z∣θ))(5)
这一极大化的主要困难是式(5)中有未观测数据且有包含和(或积分)的对数。
EM算法是通过迭代逐步近似极大化
L(θ)。假设在第
i次迭代后
θ的估计值是
θ(i)。我们希望新估计值
θ能使
L(θ)增加,即
L(θ)>L(θ(i)),并逐步达到极大值。因此我们考虑两者之差:
L(θ)−L(θ(i))=log(Z∑P(Y∣Z,θ)P(Z∣θ))−logP(Y∣θ(i))
根据Jensen不等式得到其下界:(log函数显然为凹函数)
L(θ)−L(θ(i))=log(Z∑P(Z∣Y,θ(i))P(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ))−logP(Y∣θ(i))≥Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ)−logP(Y∣θ(i))=Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ)
令
B(θ,θ(i))=^L(θ(i))+Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ)(6)
则有
L(θ)≥B(θ,θ(i))(7)
即函数
B(θ,θ(i))使
L(θ)的一个下界,而且由式(6)可知
L(θ(i))=B(θ(i),θ(i))(8)
因此,任何可以使
B(θ,θ(i))增大的
θ,也可以使
L(θ)增大,为 了使
L(θ)有尽可能大的增长,选择
θ(i+1)使
B(θ,θ(i))达到极大值,即
θ(i+1)=argθmaxB(θ,θ(i))(9)
现求
θ(i+1)的表达式,省去对
θ极大化而言是常数的项,
θ(i+1)=argθmax(L(θ(i))+Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ))=argθmax(Z∑P(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ))=argθmax(Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ))=argθmaxQ(θ,θ(i))
式(10)等价于EM算法的一次迭代,即求
Q函数及其极大化,EM算不断求解下界的极大化逼近求解对数似然函数极大化的算法。
EM算法的收敛性
定理
设
P(Y∣θ)为观测数据的似然函数,
θ(i)为EM算法得到的参数估计序列,
P(Y∣θ(i))为对应的似然函数序列,则
P(Y∣θ(i))是单调递增的,即
P(Y∣θ(i+1))≥P(Y∣θ(i))(11)
证明:
由于
P(Y∣θ)=P(Z∣Y,θ)P(Y,Z∣θ)
取对数有
logP(Y∣θ)=logP(Z∣Y,θ)P(Y,Z∣θ)=logP(Y,Z∣θ)−logP(Z∣Y,θ)
由
Q函数定义可知
Q(θ,θ(i))=Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ)
记
H(θ,θ(i))=Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ)
所以
logP(Y∣θ)=(Z∑P(Z∣Y,θ(i)))(logP(Y,Z∣θ)−logP(Z∣Y,θ)())=Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ)−Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ))=Q(θ,θ(i))−H(θ,θ(i))(12)
在式(2)中选取
θ和
θ(i)相减得:
logP(Y∣θ)−logP(Y∣θ(i))=(Q(θ,θ(i))−Q(θ(i),θ(i)))−(H(θ,θ(i))−H(θ(i),θ(i)))(13)
在EM算法中,我们要极大化
Q函数,所以式(3)右边得第一项
Q(θ,θ(i))−Q(θ(i))≥0,欲证
log(Y∣θ)≥log(Y∣θ(i)),只需证式(3)右边非负。
H(θ,θ(i))−H(θ(i),θ(i))=Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ)−Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(θ))=Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Z∣Y,θ)≤log(Z∑P(Z∣Y,θ(i))P(Z∣Y,θ(i))P(Z∣Y,θ))=logZ∑P(Z∣Y,θ)=0
所以
logP(Y∣θ)≥logP(Y∣θ(i))
#证毕.