EM(Expectation Maximization)
EM算法是一种极大似然估计算法,当然也可以对EM算法做一定修正后用于最大后验估计,此博文推导EM算法并且修正EM使其用于最大后验估计。
EM
假设观测到的不完整数据集为XX,隐变量表示为ZZ, 估计参数为θθ, 根据极大似然估计
θ^=argmaxθ logp(X|θ)θ^=argmaxθ logp(X|θ)
上式中只涉及到了XX的分布,我们假设ZZ的分布为q(Z|θ)q(Z|θ).
L(θ)=logp(X|θ)=∑Zq(Z|θ)logp(X|θ)L(θ)=logp(X|θ)=∑Zq(Z|θ)logp(X|θ)
利用贝叶斯定理
L(θ)=∑Zq(Z|θ)logp(X|θ)=∑Zq(Z|θ)logp(X,Z|θ)p(Z|X,θ)=∑Zq(Z|θ)log{p(X,Z|θ)q(Z|θ)q(Z|θ)p(Z|X,θ)}=∑Zq(Z|θ)logp(X,Z|θ)q(Z|θ)−∑Zq(Z|θ)logp(Z|X,θ)q(Z|θ)=L(q,θ)+KL(q||p)L(θ)=∑Zq(Z|θ)logp(X|θ)=∑Zq(Z|θ)logp(X,Z|θ)p(Z|X,θ)=∑Zq(Z|θ)log{p(X,Z|θ)q(Z|θ)q(Z|θ)p(Z|X,θ)}=∑Zq(Z|θ)logp(X,Z|θ)q(Z|θ)−∑Zq(Z|θ)logp(Z|X,θ)q(Z|θ)=L(q,θ)+KL(q||p)
即
L(θ)=L(q,θ)+KL(q||p)L(θ)=L(q,θ)+KL(q||p)
其中L(q,θ)L(q,θ) 和 KL(q||p)分别是,
L(q,θ)=∑Zq(Z|θ)logp(X,Z|θ)q(Z|θ)L(q,θ)=∑Zq(Z|θ)logp(X,Z|θ)q(Z|θ)
KL(q||p)=−∑Zq(Z|θ)logp(Z|X,θ)q(Z|θ)KL(q||p)=−∑Zq(Z|θ)logp(Z|X,θ)q(Z|θ)
在这两个式子中,我们首先需要确定隐变量的概率分布q(Z|θ)q(Z|θ),其次我们还需要最大化L(θ)L(θ)。利用KL(q||p)KL(q||p)散度的性质
KL(q||p)≧0KL(q||p)≧0
当且仅当q(Z|θ)=p(Z|X,θ)q(Z|θ)=p(Z|X,θ)时,取到等号。 我们有
L(θ)≧L(q,θ)L(θ)≧L(q,θ)
所以L(q,θ)L(q,θ)是L(θ)L(θ)的下界,我们不直接最大化L(θ)L(θ),相反我们最大化它的下界L(q,θ)L(q,θ),L(q,θ)L(q,θ)是关于q和θθ的函数,我们先关于q(Z|θ)q(Z|θ)最大化L(q,θ)L(q,θ),由于L(θ)=L(q,θ)+KL(q||p)L(θ)=L(q,θ)+KL(q||p)并且L(θ)L(θ)和q(Z|θ)q(Z|θ)无关,所以不管q(Z|θ)q(Z|θ)如何变化,L(θ)L(θ)保持不变,所以,为了使得L(q,θ)L(q,θ)最大,那么则应该使得KL(q||p)KL(q||p)最小,即KL(q||p)=0KL(q||p)=0,所以有
q(Z|θ)=p(Z|X,θ)q(Z|θ)=p(Z|X,θ)
接下来我们还需要关于参数θθ最大化L(q,θ)L(q,θ),假设我们迭代到了第 ii 次,则第 的参数更新
L(q,θ)=∑Zq(Z|θ(i))logp(X,Z|θ)q(Z|θ(i))L(q,θ)=∑Zq(Z|θ(i))logp(X,Z|θ)q(Z|θ(i))
丢掉和θ(i)θ(i)有关的量,有
L(q,θ)=∑Zq(Z|θ(i))logp(X,Z|θ)+CL(q,θ)=∑Zq(Z|θ(i))logp(X,Z|θ)+C
令
Q(θ,θ(i))=∑Zq(Z|θ(i))logp(X,Z|θ)Q(θ,θ(i))=∑Zq(Z|θ(i))logp(X,Z|θ)
所以我们只需要最大化函数Q(θ,θ(i))Q(θ,θ(i))即可
θ(i+1)=argmaxθQ(θ,θ(i))θ(i+1)=argmaxθQ(θ,θ(i))
EM算法流程
- 初始化参数θ(0)θ(0)和设置迭代次数II
- E步
根据第次估计参数,计算隐变量ZZ的分布q(Z|θ(i))q(Z|θ(i))q(Z|θ(i))=p(Z|X,θ(i))q(Z|θ(i))=p(Z|X,θ(i))
计算完全数据集的期望
Q(θ,θ(i))=∑Zq(Z|θ(i))logp(X,Z|θ)Q(θ,θ(i))=∑Zq(Z|θ(i))logp(X,Z|θ) - M步
最大化完全数据集的期望Q(θ,θ(i))Q(θ,θ(i)),
θ(i+1)=argmaxθ Q(θ,θ(i))θ(i+1)=argmaxθ Q(θ,θ(i)) - 如果i<Ii<I,则回到E步继续迭代,否则就结束。
收敛性条件
除了预先设定迭代次数,也可以设定迭代终止条件。因为Q(θ,θ(i))Q(θ,θ(i))会一直增大,如果函数Q(θ,θ(i))Q(θ,θ(i))满足下述条件时,可认为EM算法已经收敛到局部最大值
|Q(θ(i+1),θ(i))−Q(θ(i),θ(i))|≤ϵ|Q(θ(i+1),θ(i))−Q(θ(i),θ(i))|≤ϵ,其中ϵϵ是一个很小的大于零的常数。最大后验估计
根据上边的推导有
logp(X|θ)=L(θ)=L(q,θ)+KL(q||p)logp(X|θ)=L(θ)=L(q,θ)+KL(q||p)
当我们考虑参数θθ有先验概率时,根据贝叶斯定理
p(θ|X)=p(X|θ)p(θ)p(X)p(θ|X)=p(X|θ)p(θ)p(X)
所以有
L(θ)=log(θ|X)=logp(X|θ)+logp(θ)−logp(X)=L(q,θ)+KL(q||p)+logp(θ)−log(X)≧L(q,θ)+logp(θ)−logp(X)L(θ)=log(θ|X)=logp(X|θ)+logp(θ)−logp(X)=L(q,θ)+KL(q||p)+logp(θ)−log(X)≧L(q,θ)+logp(θ)−logp(X)
同样的思路,我们最大化L(θ)L(θ)的下界,当KL(q||p)=0KL(q||p)=0时,有下界最大,此时
q(X|θ)=p(Z|X,θ)q(X|θ)=p(Z|X,θ)
紧接着我们关于参数θθ最大化下界L(q,θ)+logp(θ)−logp(X)L(q,θ)+logp(θ)−logp(X),同样地,我们丢掉和参数θθ无关的项,可得
L(q,θ)+logp(θ)−logp(X)=∑Zp(Z|X,θ(i))logp(X,Z|θ)p(Z|X,θ(i))+logp(θ)+C1=∑Zp(Z|X,θ(i))logp(X,Z|θ)+logp(θ)+C2=Q(θ,θ(i))+C2L(q,θ)+logp(θ)−logp(X)=∑Zp(Z|X,θ(i))logp(X,Z|θ)p(Z|X,θ(i))+logp(θ)+C1=∑Zp(Z|X,θ(i))logp(X,Z|θ)+logp(θ)+C2=Q(θ,θ(i))+C2
所以有
Q(θ,θ(i))=∑Zp(Z|X,θ(i))logp(X,Z|θ)+logp(θ)Q(θ,θ(i))=∑Zp(Z|X,θ(i))logp(X,Z|θ)+logp(θ)
所以,在EM算法中,最大后验估计和最大似然估计在E步中,计算q(X|θ)q(X|θ)没有发生变化,只是Q(θ,θ(i))Q(θ,θ(i))中增加了先验信息logp(θ)logp(θ). - E步