EM(Expectation Maximization)
EM算法是一种极大似然估计算法,当然也可以对EM算法做一定修正后用于最大后验估计,此博文推导EM算法并且修正EM使其用于最大后验估计。
EM
假设观测到的不完整数据集为
X
X
,隐变量表示为
Z
Z
, 估计参数为
θ
θ
, 根据极大似然估计
上式中只涉及到了 X X 的分布,我们假设 Z Z 的分布为 q(Z|θ) q ( Z | θ ) .
利用贝叶斯定理
即
其中 L(q,θ) L ( q , θ ) 和 KL(q||p)分别是,
在这两个式子中,我们首先需要确定隐变量的概率分布 q(Z|θ) q ( Z | θ ) ,其次我们还需要最大化 L(θ) L ( θ ) 。利用 KL(q||p) K L ( q | | p ) 散度的性质
我们有
所以 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 , θ ) + K L ( q | | p ) 并且 L(θ) L ( θ ) 和 q(Z|θ) q ( Z | θ ) 无关,所以不管 q(Z|θ) q ( Z | θ ) 如何变化, L(θ) L ( θ ) 保持不变,所以,为了使得 L(q,θ) L ( q , θ ) 最大,那么则应该使得 KL(q||p) K L ( q | | p ) 最小,即 KL(q||p)=0 K L ( q | | p ) = 0 ,所以有
接下来我们还需要关于参数 θ θ 最大化 L(q,θ) L ( q , θ ) ,假设我们迭代到了第 i i 次,则第 的参数更新
丢掉和 θ(i) θ ( i ) 有关的量,有
令
所以我们只需要最大化函数 Q(θ,θ(i)) Q ( θ , θ ( i ) ) 即可
EM算法流程
- 初始化参数
θ(0)
θ
(
0
)
和设置迭代次数
I
I
- E步
根据第次估计参数,计算隐变量 Z Z 的分布 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 ) ) = ∑ Z q ( Z | θ ( i ) ) log p ( X , Z | θ ) -
- M步
最大化完全数据集的期望 Q(θ,θ(i)) Q ( θ , θ ( i ) ) ,
θ(i+1)=argmaxθ Q(θ,θ(i)) θ ( i + 1 ) = arg max θ Q ( θ , θ ( i ) ) - 如果 i<I i < I ,则回到E步继续迭代,否则就结束。
- M步
收敛性条件
除了预先设定迭代次数,也可以设定迭代终止条件。因为 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) log p ( X | θ ) = L ( θ ) = L ( q , θ ) + K L ( 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 ) = log p ( X | θ ) + log p ( θ ) − log p ( X ) = L ( q , θ ) + K L ( q | | p ) + log p ( θ ) − log ( X ) ≧ L ( q , θ ) + log p ( θ ) − log p ( X )
同样的思路,我们最大化 L(θ) L ( θ ) 的下界,当 KL(q||p)=0 K L ( q | | p ) = 0 时,有下界最大,此时
q(X|θ)=p(Z|X,θ) q ( X | θ ) = p ( Z | X , θ )
紧接着我们关于参数 θ θ 最大化下界 L(q,θ)+logp(θ)−logp(X) L ( q , θ ) + log p ( θ ) − log p ( 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))+C2 L ( q , θ ) + log p ( θ ) − log p ( X ) = ∑ Z p ( Z | X , θ ( i ) ) log p ( X , Z | θ ) p ( Z | X , θ ( i ) ) + log p ( θ ) + C 1 = ∑ Z p ( Z | X , θ ( i ) ) log p ( X , Z | θ ) + log p ( θ ) + C 2 = Q ( θ , θ ( i ) ) + C 2
所以有
Q(θ,θ(i))=∑Zp(Z|X,θ(i))logp(X,Z|θ)+logp(θ) Q ( θ , θ ( i ) ) = ∑ Z p ( Z | X , θ ( i ) ) log p ( X , Z | θ ) + log p ( θ )
所以,在EM算法中,最大后验估计和最大似然估计在E步中,计算 q(X|θ) q ( X | θ ) 没有发生变化,只是 Q(θ,θ(i)) Q ( θ , θ ( i ) ) 中增加了先验信息 logp(θ) log p ( θ ) . - E步