EM(Expectation Maximization) 算法推导(二)

EM算法公式推导

最近一直在B站上看一个UP主的机器学习白板推导,感觉很有益处,因为之前看过的各种博客似乎都一直强调对EM算法的感性认识,缺少了很多的推导过程。我想,要完全理性地了解这个算法,还是要一步一步地通过推导。

主要参考资料:白板推导视频

公式导出:ELBO+KL divergence

在上一讲EM算法公式推导(一)我们说到了EM算法有 θ \theta θ的迭代公式
θ ( t + 1 ) = arg max ⁡ θ ∫ z log ⁡ P ( x , z ∣ θ ) ⋅ P ( z ∣ x , θ ( t ) ) d z \theta^{(t+1)}=\argmax _{\theta} \int_{z} \log P(x, z | \theta) \cdot P\left(z | x, \theta^{(t)}\right) d z θ(t+1)=θargmaxzlogP(x,zθ)P(zx,θ(t))dz

= arg max ⁡ θ E z ∣ x , θ ( t ) [ log ⁡ P ( x , z ∣ θ ) ] =\argmax_{\theta}E_{z|x,\theta^{(t)}}[\log P(x, z| \theta)] =θargmaxEzx,θ(t)[logP(x,zθ)]

对这个迭代公式怎么来的并没有详细的说明,这节将要推出这个公式。

始终不变的是:我们要求的是 log ⁡ P ( X ∣ θ ) \log P(X|\theta) logP(Xθ)
log ⁡ P ( x ∣ θ ) = log ⁡ P ( x , z ∣ θ ) − log ⁡ P ( z ∣ x , θ ) = log ⁡ P ( x , z ∣ θ ) ) Q ( z ) − log ⁡ P ( z ∣ x , θ Q ( z ) \begin{aligned} \log P(x|\theta)=&\log P(x,z|\theta)-\log P(z|x,\theta) \\ =&\log \frac{P(x,z|\theta))}{Q(z)}-\log \frac{P(z|x,\theta}{Q(z)} \end{aligned} logP(xθ)==logP(x,zθ)logP(zx,θ)logQ(z)P(x,zθ))logQ(z)P(zx,θ
其中 Q ( z ) Q(z) Q(z)是一个满足 Q ( z ) ≠ 0 Q(z)\neq 0 Q(z)=0的分布。
两边同时在 Q ( z ) Q(z) Q(z)上对z求期望。左边与 z z z无关,所以不变。于是得到
log ⁡ P ( x ∣ θ ) = ∫ z Q ( z ) log ⁡ P ( x , z ∣ θ ) Q ( z ) d z − ∫ z Q ( z ) log ⁡ P ( z ∣ x , θ ) Q ( z ) d z \begin{aligned}\log P(x|\theta)=&\int_zQ(z)\log \frac{P(x,z|\theta)}{Q(z)}dz \\ -&\int_z Q(z)\log \frac{P(z|x,\theta)}{Q(z)}dz \end{aligned} logP(xθ)=zQ(z)logQ(z)P(x,zθ)dzzQ(z)logQ(z)P(zx,θ)dz

定义ELBO(Evidence Lower Bound) = ∫ z Q ( z ) log ⁡ P ( x , z ∣ θ ) Q ( z ) d z =\int_zQ(z)\log \frac{P(x,z|\theta)}{Q(z)}dz =zQ(z)logQ(z)P(x,zθ)dz
K L ( P ( z ∣ x , θ ) ∣ ∣ Q ( z ) ) = − ∫ z Q ( z ) log ⁡ P ( z ∣ x , θ ) Q ( z ) d z KL(P(z|x,\theta)||Q(z))=-\int_z Q(z)\log \frac{P(z|x,\theta)}{Q(z)}dz KL(P(zx,θ)Q(z))=zQ(z)logQ(z)P(zx,θ)dz

故可以得到:
log ⁡ P ( x ∣ θ ) = E L B O + K L ( P ( z ∣ x , θ ) ∣ ∣ Q ( z ) ) \log P(x|\theta)=ELBO+KL(P(z|x,\theta)||Q(z)) logP(xθ)=ELBO+KL(P(zx,θ)Q(z))

KL divergence是恒大于等于0的,其中等于0的条件是
P ( z ∣ x , θ ) ≡ Q ( z ) P(z|x,\theta)\equiv Q(z) P(zx,θ)Q(z)
ELBO给出了左边式子的一个下界(这也是它名字的由来)。

我们在用EM算法进行迭代的过程中,实际上是在不断增加它的下界ELBO
在这个过程中要减小KL divergence,所以有
Q ( z ) = P ( z ∣ x , θ ( t ) ) Q(z)=P(z|x,\theta^{(t)}) Q(z)=P(zx,θ(t))
综上
θ ( t + 1 ) = arg max ⁡ θ E L B O = arg max ⁡ θ ∫ z Q ( z ) log ⁡ P ( z , x ∣ θ ) Q ( z ) d z = arg max ⁡ θ ∫ z P ( z ∣ x , θ ( t ) ) log ⁡ P ( z , x ∣ θ ) P ( z ∣ x , θ ( t ) ) d z = arg max ⁡ θ ∫ z P ( z ∣ x , θ ( t ) ) log ⁡ P ( x , z ∣ θ ) d z = arg max ⁡ θ E z ∣ x , θ ( t ) [ log ⁡ P ( x , z ∣ θ ) ] \begin{aligned}\theta^{(t+1)}=&\argmax_{\theta} ELBO \\ =&\argmax_{\theta}\int_zQ(z)\log \frac{P(z,x|\theta)}{Q(z)}dz \\ =&\argmax_{\theta}\int_zP(z|x,\theta^{(t)})\log \frac{P(z,x|\theta)}{P(z|x,\theta^{(t)})}dz \\ =&\argmax_{\theta}\int_zP(z|x,\theta^{(t)})\log P(x,z|\theta)dz \\ =&\argmax_{\theta}E_{z|x,\theta^{(t)}}[\log P(x, z| \theta)] \end{aligned} θ(t+1)=====θargmaxELBOθargmaxzQ(z)logQ(z)P(z,xθ)dzθargmaxzP(zx,θ(t))logP(zx,θ(t))P(z,xθ)dzθargmaxzP(zx,θ(t))logP(x,zθ)dzθargmaxEzx,θ(t)[logP(x,zθ)]

到此,就得到了文章一开头的公式。

公式导出:ELBO+ Jensen Inequality

现在利用Jensen不等式来进行数学推导,导出ELBO之前的公式都不变

综上
θ ( t + 1 ) = arg max ⁡ θ E L B O = arg max ⁡ θ E q [ log ⁡ P ( z , x ∣ θ ) Q ( z ) ] \begin{aligned}\theta^{(t+1)}=&\argmax_{\theta} ELBO \\ =&\argmax_{\theta}E_q[\log \frac{P(z,x|\theta)}{Q(z)}] \end{aligned} θ(t+1)==θargmaxELBOθargmaxEq[logQ(z)P(z,xθ)]

注意到对数函数是一个上凸函数,所以根据Jensen Inequality 有:
E ( log ⁡ x ) ≤ log ⁡ E ( x ) E(\log x)\leq \log E(x) E(logx)logE(x)


E q [ log ⁡ P ( z , x ∣ θ ) Q ( z ) ] ≤ log ⁡ E q ( P ( z , x ∣ θ ) Q ( z ) ) E_q[\log \frac{P(z,x|\theta)}{Q(z)}] \leq \log E_q(\frac{P(z,x|\theta)}{Q(z)}) Eq[logQ(z)P(z,xθ)]logEq(Q(z)P(z,xθ))

取等的条件是 P ( z , x ∣ θ ) Q ( z ) = C o n s t \frac{P(z,x|\theta)}{Q(z)}=Const Q(z)P(z,xθ)=Const
C o n s t Const Const表示一个常数,设为 C C C

P ( x , z ∣ θ ) = C ⋅ Q ( z ) ∫ z P ( x , z ∣ θ ) d z = C ∫ z Q ( z ) d z = C P ( x ∣ θ ) = C \begin{aligned} P(x,z|\theta)&=C\cdot Q(z) \\ \int_zP(x,z|\theta)dz&=C\int_zQ(z)dz=C \\ P(x|\theta)&=C \end{aligned} P(x,zθ)zP(x,zθ)dzP(xθ)=CQ(z)=CzQ(z)dz=C=C

故有
Q ( z ) = P ( z , x ∣ θ ) C = P ( z , x ∣ θ ) P ( x ∣ θ ) = P ( z ∣ x , θ ) Q(z)=\frac{P(z,x|\theta)}{C}=\frac{P(z,x|\theta)}{P(x|\theta)}=P(z|x,\theta) Q(z)=CP(z,xθ)=P(xθ)P(z,xθ)=P(zx,θ)

所以可以将 Q ( z ) = P ( z ∣ x , θ ) Q(z)=P(z|x,\theta) Q(z)=P(zx,θ)代回到一开始的式子中得到:

θ ( t + 1 ) = arg max ⁡ θ E L B O = arg max ⁡ θ ∫ z Q ( z ) log ⁡ P ( z , x ∣ θ ) Q ( z ) d z = arg max ⁡ θ ∫ z P ( z ∣ x , θ ( t ) ) log ⁡ P ( z , x ∣ θ ) P ( z ∣ x , θ ( t ) ) d z = arg max ⁡ θ ∫ z P ( z ∣ x , θ ( t ) ) log ⁡ P ( x , z ∣ θ ) d z = arg max ⁡ θ E z ∣ x , θ ( t ) [ log ⁡ P ( x , z ∣ θ ) ] \begin{aligned}\theta^{(t+1)}=&\argmax_{\theta} ELBO \\ =&\argmax_{\theta}\int_zQ(z)\log \frac{P(z,x|\theta)}{Q(z)}dz \\ =&\argmax_{\theta}\int_zP(z|x,\theta^{(t)})\log \frac{P(z,x|\theta)}{P(z|x,\theta^{(t)})}dz \\ =&\argmax_{\theta}\int_zP(z|x,\theta^{(t)})\log P(x,z|\theta)dz \\ =&\argmax_{\theta}E_{z|x,\theta^{(t)}}[\log P(x, z| \theta)] \end{aligned} θ(t+1)=====θargmaxELBOθargmaxzQ(z)logQ(z)P(z,xθ)dzθargmaxzP(zx,θ(t))logP(zx,θ(t))P(z,xθ)dzθargmaxzP(zx,θ(t))logP(x,zθ)dzθargmaxEzx,θ(t)[logP(x,zθ)]

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值