期望最大
狭义 EM
期望最大算法的目的是解决具有隐变量的混合模型的参数估计(极大似然估计)。MLE 对 p(x∣θ) 参数的估计记为:θMLE=θargmaxlogp(x∣θ)。EM 算法对这个问题的解决方法是采用迭代的方法:
θt+1=θargmax∫zlog[p(x,z∣θ)]p(z∣x,θt)dz=Ez∣x,θt[logp(x,z∣θ)]
这个公式包含了迭代的两步:
- E step:计算 logp(x,z∣θ) 在概率分布 p(z∣x,θt) 下的期望
- M step:计算使这个期望最大化的参数得到下一个 EM 步骤的输入
求证:logp(x∣θt)≤logp(x∣θt+1)
证明:logp(x∣θ)=logp(z,x∣θ)−logp(z∣x,θ)。左右两边同时求在概率分布 p(z∣x,θt) 下的期望:
Left:∫zp(z∣x,θt)logp(x∣θ)dz=logp(x∣θ)
Right:∫zp(z∣x,θt)logp(x,z∣θ)dz−∫zp(z∣x,θt)logp(z∣x,θ)dz=Q(θ,θt)−H(θ,θt)
所以:
logp(x∣θ)=Q(θ,θt)−H(θ,θt)
由于 Q(θ,θt)=∫zp(z∣x,θt)logp(x,z∣θ)dz,而 θt+1=θargmax∫zlog[p(x,z∣θ)]p(z∣x,θt)dz,所以 Q(θt+1,θt)≥Q(θt,θt)。要证 logp(x∣θt)≤logp(x∣θt+1),需证:H(θt,θt)≥H(θt+1,θt):
H(θt+1,θt)−H(θt,θt)=∫zp(z∣x,θt)logp(z∣x,θt+1)dz−∫zp(z∣x,θt)logp(z∣x,θt)dz=∫zp(z∣x,θt)logp(z∣x,θt)p(z∣x,θt+1)=−KL(p(z∣x,θt),p(z∣x,θt+1))≤0
综合上面的结果:
logp(x∣θt)≤logp(x∣θt+1)
根据上面的证明,我们看到,似然函数在每一步都会增大。进一步的,我们看 EM 迭代过程中的式子是怎么来的:
logp(x∣θ)=logp(z,x∣θ)−logp(z∣x,θ)=logq(z)p(z,x∣θ)−logq(z)p(z∣x,θ)
分别对两边求期望 Eq(z):
Left:∫zq(z)logp(x∣θ)dz=logp(x∣θ)Right:∫zq(z)logq(z)p(z,x∣θ)dz−∫zq(z)logq(z)p(z∣x,θ)dz=ELBO+KL(q(z),p(z∣x,θ))
上式中,Evidence Lower Bound(ELBO),是一个下界,所以 logp(x∣θ)≥ELBO,等于号取在 KL 散度为0时,即:q(z)=p(z∣x,θ),EM 算法的目的是将 ELBO 最大化,根据上面的证明过程,在每一步 EM 后,求得了最大的ELBO,并根据这个使 ELBO 最大的参数代入下一步中:
θ^=θargmaxELBO=θargmax∫zq(z)logq(z)p(x,z∣θ)dz
由于 q(z)=p(z∣x,θt) 的时候,这一步的最大值才能取等号,所以:
θ^=θargmaxELBO=θargmax∫zq(z)logq(z)p(x,z∣θ)dz=θargmax∫zp(z∣x,θt)logp(z∣x,θt)p(x,z∣θ)dz=θargmax∫zp(z∣x,θt)logp(x,z∣θ)
这个式子就是上面 EM 迭代过程中的式子。
从 Jensen 不等式出发,也可以导出这个式子:
logp(x∣θ)=log∫zp(x,z∣θ)dz=log∫zq(z)p(x,z∣θ)q(z)dz=logEq(z)[q(z)p(x,z∣θ)]≥Eq(z)[logq(z)p(x,z∣θ)]
其中,右边的式子就是 ELBO,等号在 p(x,z∣θ)=Cq(z) 时成立。于是:
∫zq(z)dz=C1∫zp(x,z∣θ)dz=C1p(x∣θ)=1⇒q(z)=p(x∣θ)1p(x,z∣θ)=p(z∣x,θ)
我们发现,这个过程就是上面的最大值取等号的条件。
广义 EM
EM 模型解决了概率生成模型的参数估计的问题,通过引入隐变量 z,来学习 θ,具体的模型对 z 有不同的假设。对学习任务 p(x∣θ),就是学习任务 p(z∣x,θ)p(x,z∣θ)。在这个式子中,我们假定了在 E 步骤中,q(z)=p(z∣x,θ),但是这个 p(z∣x,θ) 如果无法求解,那么必须使用采样(MCMC)或者变分推断等方法来近似推断这个后验。我们观察 KL 散度的表达式,为了最大化 ELBO,在固定的 θ 时,我们需要最小化 KL 散度,于是:
q^(z)=qargminKL(p,q)=qargmaxELBO
这就是广义 EM 的基本思路:
-
E step:
q^t+1(z)=qargmax∫zqt(z)logqt(z)p(x,z∣θ)dz,fixed θ
-
M step:
θ^=θargmax∫zqt+1(z)logqt+1(z)p(x,z∣θ)dz,fixed q^
对于上面的积分:
ELBO=∫zq(z)logq(z)p(x,z∣θ)dz=Eq(z)[p(x,z∣θ)]+Entropy(q(z))
因此,我们看到,广义 EM 相当于在原来的式子中加入熵这一项。
EM 的推广
EM 算法类似于坐标上升法,固定部分坐标,优化其他坐标,再一遍一遍的迭代。如果在 EM 框架中,无法求解 z 后验概率,那么需要采用一些变种的 EM 来估算这个后验。
- 基于平均场的变分推断,VBEM/VEM
- 基于蒙特卡洛的EM,MCEM