机器学习——期望最大(EM)

机器学习——期望最大(EM)


期望最大算法的目的是解决具有隐变量的混合模型的参数估计(极大似然估计)。MLE对 p ( x ∣ θ ) p(x|\theta) p(xθ)参数的估计记为: θ M L E = a r g m a x θ l o g p ( x ∣ θ ) \theta_{MLE}=argmax_{\theta}logp(x|\theta) θMLE=argmaxθlogp(xθ)。EM算法对这个问题的解决方法是采用迭代的方法:
θ t + 1 = a r g m a x θ ∫ z log ⁡ [ p ( x , z ∣ θ ) ] p ( z ∣ x , θ t ) d z = E z ∣ x , θ t [ log ⁡ p ( x , z ∣ θ ) ] \theta^{t+1}=\mathop{argmax}\limits_{\theta}\int_z\log [p(x,z|\theta)]p(z|x,\theta^t)dz=\mathbb{E}_{z|x,\theta^t}[\log p(x,z|\theta)] θt+1=θargmaxzlog[p(x,zθ)]p(zx,θt)dz=Ezx,θt[logp(x,zθ)]
这个公式包含了迭代的两步:

  • E step: 计算 l o g p ( x , z ∣ θ ) logp(x,z|\theta) logp(x,zθ)在概率分布 p ( z ∣ x , θ t ) p(z|x, \theta^t) p(zx,θt)下的期望
  • M step: 计算使这个期望最大化的参数得到下一个EM步骤的输入
    求证: log ⁡ p ( x ∣ θ t ) ≤ log ⁡ p ( x ∣ θ t + 1 ) \log p(x|\theta^t)\le\log p(x|\theta^{t+1}) logp(xθt)logp(xθt+1)
    证明: log ⁡ p ( x ∣ θ ) = log ⁡ p ( z , x ∣ θ ) − log ⁡ p ( z ∣ x , θ ) \log p(x|\theta)=\log p(z,x|\theta)-\log p(z|x,\theta) logp(xθ)=logp(z,xθ)logp(zx,θ),对左右两边求积分:
    L e f t : ∫ z p ( z ∣ x , θ t ) log ⁡ p ( x ∣ θ ) d z = log ⁡ p ( x ∣ θ ) Left:\int_zp(z|x,\theta^t)\log p(x|\theta)dz=\log p(x|\theta) Left:zp(zx,θt)logp(xθ)dz=logp(xθ)
    R i g h t : ∫ z p ( z ∣ x , θ t ) log ⁡ p ( x , z ∣ θ ) d z − ∫ z p ( z ∣ x , θ t ) log ⁡ p ( z ∣ x , θ ) d z = Q ( θ , θ t ) − H ( θ , θ t ) Right:\int_zp(z|x,\theta^t)\log p(x,z|\theta)dz-\int_zp(z|x,\theta^t)\log p(z|x,\theta)dz=Q(\theta,\theta^t)-H(\theta,\theta^t) Right:zp(zx,θt)logp(x,zθ)dzzp(zx,θt)logp(zx,θ)dz=Q(θ,θt)H(θ,θt)
    所以:
    log ⁡ p ( x ∣ θ ) = Q ( θ , θ t ) − H ( θ , θ t ) \log p(x|\theta)=Q(\theta,\theta^t)-H(\theta,\theta^t) logp(xθ)=Q(θ,θt)H(θ,θt)
    由于 Q ( θ , θ t ) = ∫ z p ( z ∣ x , θ t ) log ⁡ p ( x , z ∣ θ ) d z Q(\theta,\theta^t)=\int_zp(z|x,\theta^t)\log p(x,z|\theta)dz Q(θ,θt)=zp(zx,θt)logp(x,zθ)dz,而 θ t + 1 = a r g m a x θ ∫ z log ⁡ [ p ( x , z ∣ θ ) ] p ( z ∣ x , θ t ) d z \theta^{t+1}=\mathop{argmax}\limits_{\theta}\int_z\log [p(x,z|\theta)]p(z|x,\theta^t)dz θt+1=θargmaxzlog[p(x,zθ)]p(zx,θt)dz,所以 Q ( θ t + 1 , θ t ) ≥ Q ( θ t , θ t ) Q(\theta^{t+1},\theta^t)\ge Q(\theta^t,\theta^t) Q(θt+1,θt)Q(θt,θt)。要证 log ⁡ p ( x ∣ θ t ) ≤ log ⁡ p ( x ∣ θ t + 1 ) \log p(x|\theta^t)\le\log p(x|\theta^{t+1}) logp(xθt)logp(xθt+1),需证: H ( θ t , θ t ) ≥ H ( θ t + 1 , θ t ) H(\theta^t,\theta^t)\ge H(\theta^{t+1},\theta^t) H(θt,θt)H(θt+1,θt)
    H ( θ t + 1 , θ t ) − H ( θ t , θ t ) = ∫ z p ( z ∣ x , θ t ) log ⁡ p ( z ∣ x , θ t + 1 ) d z − ∫ z p ( z ∣ x , θ t ) log ⁡ p ( z ∣ x , θ t ) = ∫ z p ( z ∣ x , θ t ) log ⁡ p ( z ∣ x , θ t + 1 ) p ( z ∣ x , θ t ) = − K L ( p ( z ∣ x , θ t ) , p ( z ∣ x , θ t + 1 ) ) ≤ 0 H(\theta^{t+1},\theta^t)-H(\theta^{t},\theta^t)=\int_zp(z|x,\theta^{t})\log p(z|x,\theta^{t+1})dz-\int_zp(z|x,\theta^t)\log p(z|x,\theta^{t})\\ =\int_zp(z|x,\theta^t)\log\frac{p(z|x,\theta^{t+1})}{p(z|x,\theta^t)}=-KL(p(z|x,\theta^t),p(z|x,\theta^{t+1}))\le0 H(θt+1,θt)H(θt,θt)=zp(zx,θt)logp(zx,θt+1)dzzp(zx,θt)logp(zx,θt)=zp(zx,θt)logp(zx,θt)p(zx,θt+1)=KL(p(zx,θt),p(zx,θt+1))0
    综上上面的结果:
    log ⁡ p ( x ∣ θ t ) ≤ log ⁡ p ( x ∣ θ t + 1 ) \log p(x|\theta^t)\le\log p(x|\theta^{t+1}) logp(xθt)logp(xθt+1)
    根据上面的证明,我们看到,似然函数在每一步都会增大。进一步的,我们看EM迭代过程中的式子是怎么来的:
    log ⁡ p ( x ∣ θ ) = log ⁡ p ( z , x ∣ θ ) − log ⁡ p ( z ∣ x , θ ) = log ⁡ p ( z , x ∣ θ ) q ( z ) − log ⁡ p ( z ∣ x , θ ) q ( z ) \log p(x|\theta)=\log p(z,x|\theta)-\log p(z|x,\theta)=\log \frac{p(z,x|\theta)}{q(z)}-\log \frac{p(z|x,\theta)}{q(z)} logp(xθ)=logp(z,xθ)logp(zx,θ)=logq(z)p(z,xθ)logq(z)p(zx,θ)
    分别对两边求期望 E q ( z ) \mathbb{E}_{q(z)} Eq(z)
    L e f t : ∫ z q ( z ) log ⁡ p ( x ∣ θ ) d z = log ⁡ p ( x ∣ θ ) R i g h t : ∫ z q ( z ) log ⁡ p ( z , x ∣ θ ) q ( z ) d z − ∫ z q ( z ) log ⁡ p ( z ∣ x , θ ) q ( z ) d z = E L B O + K L ( q ( z ) , p ( z ∣ x , θ ) ) Left:\int_zq(z)\log p(x|\theta)dz=\log p(x|\theta)\\ Right:\int_zq(z)\log \frac{p(z,x|\theta)}{q(z)}dz-\int_zq(z)\log \frac{p(z|x,\theta)}{q(z)}dz=ELBO+KL(q(z),p(z|x,\theta)) Left:zq(z)logp(xθ)dz=logp(xθ)Right:zq(z)logq(z)p(z,xθ)dzzq(z)logq(z)p(zx,θ)dz=ELBO+KL(q(z),p(zx,θ))
    上式中,Evidence Lower Bound(ELBO),是一个下界,所以 l o g p ( x ∣ θ ) ≥ E L B O logp(x|\theta)\ge{ELBO} logp(xθ)ELBO,等于号取在KL散度为0是,即: q ( z ) = p ( z ∣ x , θ ) q(z)=p(z|x,\theta) q(z)=p(zx,θ),EM算法的目的是将ELBO最大化,根据上面的证明过程,在每一步EM后,求得了最大的ELBO,并根据这个使ELBO最大的参数代入下一步中:
    θ ^ = a r g m a x θ E L B O = a r g m a x θ ∫ z q ( z ) log ⁡ p ( x , z ∣ θ ) q ( z ) d z \hat{\theta}=\mathop{argmax}_{\theta}ELBO=\mathop{argmax}_\theta\int_zq(z)\log\frac{p(x,z|\theta)}{q(z)}dz θ^=argmaxθELBO=argmaxθzq(z)logq(z)p(x,zθ)dz
    由于$ q(z)=p(z|x,\theta^t)$的时候,这一步的最大值才能取等号,所以:
    θ ^ = a r g m a x θ E L B O = a r g m a x θ ∫ z q ( z ) log ⁡ p ( x , z ∣ θ ) q ( z ) d z = a r g m a x θ ∫ z p ( z ∣ x , θ t ) log ⁡ p ( x , z ∣ θ ) p ( z ∣ x , θ t ) d z = a r g m a x θ ∫ z p ( z ∣ x , θ t ) log ⁡ p ( x , z ∣ θ ) \hat{\theta}=\mathop{argmax}_{\theta}ELBO=\mathop{argmax}_\theta\int_zq(z)\log\frac{p(x,z|\theta)}{q(z)}dz=\mathop{argmax}_\theta\int_zp(z|x,\theta^t)\log\frac{p(x,z|\theta)}{p(z|x,\theta^t)}d z\\ =\mathop{argmax}_\theta\int_z p(z|x,\theta^t)\log p(x,z|\theta) θ^=argmaxθELBO=argmaxθzq(z)logq(z)p(x,zθ)dz=argmaxθzp(zx,θt)logp(zx,θt)p(x,zθ)dz=argmaxθzp(zx,θt)logp(x,zθ)
    这个式子就是上面EM迭代过程中的式子。
    从Jensen不等式出发,也可以导出这个式子:
    log ⁡ p ( x ∣ θ ) = log ⁡ ∫ z p ( x , z ∣ θ ) d z = log ⁡ ∫ z p ( x , z ∣ θ ) q ( z ) q ( z ) d z = log ⁡ E q ( z ) [ p ( x , z ∣ θ ) q ( z ) ] ≥ E q ( z ) [ log ⁡ p ( x , z ∣ θ ) q ( z ) ] \log p(x|\theta)=\log\int_zp(x,z|\theta)dz=\log\int_z\frac{p(x,z|\theta)q(z)}{q(z)}dz\\ =\log \mathbb{E}_{q(z)}[\frac{p(x,z|\theta)}{q(z)}]\ge \mathbb{E}_{q(z)}[\log\frac{p(x,z|\theta)}{q(z)}] logp(xθ)=logzp(x,zθ)dz=logzq(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|\theta)=Cq(z)$时成立。于是:
    ∫ z q ( z ) d z = 1 C ∫ z p ( x , z ∣ θ ) d z = 1 C p ( x ∣ θ ) = 1 ⇒ q ( z ) = 1 p ( x ∣ θ ) p ( x , z ∣ θ ) = p ( z ∣ x , θ ) \int_zq(z)dz=\frac{1}{C}\int_zp(x,z|\theta)dz=\frac{1}{C}p(x|\theta)=1\\ \Rightarrow q(z)=\frac{1}{p(x|\theta)}p(x,z|\theta)=p(z|x,\theta) zq(z)dz=C1zp(x,zθ)dz=C1p(xθ)=1q(z)=p(xθ)1p(x,zθ)=p(zx,θ)
    我们发现,这个过程就是上面的最大值取等号的条件。

广义EM

EM模型解决了概率生成模型的参数估计的问题,通过引入隐变量z,来学习 θ \theta θ,具体的模型对z有不同的假设。对学习任务 p ( x ∣ θ ) p(x|\theta) p(xθ),就是学习任务 p ( x , z ∣ θ ) p ( z ∣ x , θ ) \frac{p(x,z|\theta)}{p(z|x,\theta)} p(zx,θ)p(x,zθ)。在这个式子中,我们假定了在E步骤中, q ( z ) = p ( z ∣ x , θ ) q(z)=p(z|x,\theta) q(z)=p(zx,θ),但是这个p(z|x,\theta)如果无法求解,那么必须使用采样(MCMC)或者变分推断等方法来近似推断这个后验。我们观察KL散度的表达式,为了最大化ELBO,在固定的 θ \theta θ时,我们需要最大化KL散度,于是:
q ^ ( z ) = a r g m i n q K L ( p , q ) = a r g m a x q E L B O \hat{q}(z)=\mathop{argmin}_qKL(p,q)=\mathop{argmax}_qELBO q^(z)=argminqKL(p,q)=argmaxqELBO
这就是广义EM的基本思路:

  • E step:
    q ^ t + 1 ( z ) = a r g m a x q ∫ z q t ( z ) log ⁡ p ( x , z ∣ θ ) q t ( z ) d z , f i x e d   θ \hat{q}^{t+1}(z)=\mathop{argmax}_q\int_zq^t(z)\log\frac{p(x,z|\theta)}{q^t(z)}dz,fixed\ \theta q^t+1(z)=argmaxqzqt(z)logqt(z)p(x,zθ)dz,fixed θ
  • M step:
    θ ^ = a r g m a x θ ∫ z q t + 1 ( z ) log ⁡ p ( x , z ∣ θ ) q t + 1 ( z ) d z , f i x e d   q ^ \hat{\theta}=\mathop{argmax}_\theta \int_zq^{t+1}(z)\log\frac{p(x,z|\theta)}{q^{t+1}(z)}dz,fixed\ \hat{q} θ^=argmaxθzqt+1(z)logqt+1(z)p(x,zθ)dz,fixed q^
    对于上面的积分:
    E L B O = ∫ z q ( z ) log ⁡ p ( x , z ∣ θ ) q ( z ) d z = E q ( z ) [ p ( x , z ∣ θ ) ] + E n t r o p y ( q ( z ) ) ELBO=\int_zq(z)\log\frac{p(x,z|\theta)}{q(z)}dz=\mathbb{E}_{q(z)}[p(x,z|\theta)]+Entropy(q(z)) 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

总结

EM算法是迭代求解最大值的算法,同时算法在每一次迭代时分为两步,E步和M步。一轮轮迭代更新隐含数据和模型分布参数,直至收敛,即得我们需要的模型参数。
一个最直观了解EM算法思路的是K-means算法。在K-Means聚类时,每个聚类簇的质心是隐含数据。我们会假设K个初始化质心,即EM算法的E步;然后计算得到每个样本最近的质心,并把样本聚类到最近的这个质心,即EM算法的M步。重复这个E步和M步,直到质心不再变化为止,这样就完成了K-Means聚类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值