EM算法

EM算法

主要解决含有隐变量(latent variable)的参数估计问题。
一般求解参数我们会使用极大似然估计(MLE),即对于条件概率
P ( x ∣ θ ) P(x| \theta) P(xθ),通过 θ M L E = arg max ⁡ θ log ⁡ P ( x ∣ θ ) \theta_{MLE} = \argmax_{\theta}\log P(x|\theta) θMLE=θargmaxlogP(xθ),来求解参数。但对于高斯混合模型这种带有隐变量的复杂的模型,无法直接通过MLE进行参数求解,需要通过EM算法进行迭代的更新,进而得到最优的 θ \theta θ

EM算法主要公式:
θ t + 1 = arg max ⁡ θ ∫ z log ⁡ P ( x , z ∣ θ ) ⋅ P ( z ∣ θ t , x ) d z \theta^{t+1}=\argmax_\theta\int_z\log P(x,z|\theta)\cdot P(z|\theta^{t},x)dz θt+1=θargmaxzlogP(x,zθ)P(zθt,x)dz

其中 z z z为隐变量, P ( z ∣ θ t , x ) P(z|\theta^{t},x) P(zθt,x)为其后验分布。上式右端亦可写作对期望 E z ∣ θ t , x ( log ⁡ P ( x , z ∣ θ ) ) \mathbb{E}_{z|\theta^t,x}(\log P(x,z|\theta)) Ezθt,x(logP(x,zθ))进行最大化。

EM算法收敛性证明

要证明EM算法的收敛性,需证明每次迭代后 P ( x ∣ θ ) P(x|\theta) P(xθ)均变大,即 log ⁡ P ( x ∣ θ t + 1 ) ⩾ log ⁡ P ( x ∣ θ t ) \log P(x|\theta^{t+1})\geqslant \log P(x|\theta^t) logP(xθt+1)logP(xθt)。两边同时对变量 ( z ∣ x , θ t ) (z|x,\theta^t) (zx,θt)积分,其中右端为:
∫ z log ⁡ P ( x ∣ θ t ) P ( z ∣ x , θ t ) d z = log ⁡ P ( x ∣ θ t ) \int_z\log P(x|\theta^t)P(z|x,\theta^t)dz=\log P(x|\theta^t) zlogP(xθt)P(zx,θt)dz=logP(xθt)

左端为:
∫ z log ⁡ P ( x ∣ θ t + 1 ) P ( z ∣ x , θ t ) d z = ∫ z log ⁡ P ( x , z ∣ θ t + 1 ) P ( z ∣ x , θ t ) − log ⁡ P ( z ∣ x , θ t + 1 ) P ( z ∣ x , θ t ) d z \begin{aligned} \int_z\log P(x|\theta^{t+1})P(z|x,\theta^t)dz&=\int_z\log P(x,z|\theta^{t+1})P(z|x,\theta^t)-\log P(z|x,\theta^{t+1})P(z|x,\theta^t)dz & \end{aligned} zlogP(xθt+1)P(zx,θt)dz=zlogP(x,zθt+1)P(zx,θt)logP(zx,θt+1)P(zx,θt)dz
对于第一项,由EM算法公式显然有 ∫ z log ⁡ P ( x , z ∣ θ t + 1 ) P ( z ∣ x , θ t ) d z ≥ ∫ z log ⁡ P ( x , z ∣ θ t ) P ( z ∣ x , θ t ) d z \int_z\log P(x,z|\theta^{t+1})P(z|x,\theta^t)dz\ge\int_z\log P(x,z|\theta^{t})P(z|x,\theta^t)dz zlogP(x,zθt+1)P(zx,θt)dzzlogP(x,zθt)P(zx,θt)dz
而对于第二项,我们希望证得 ∫ z log ⁡ P ( z ∣ x , θ t + 1 ) P ( z ∣ x , θ t ) d z ≤ ∫ z log ⁡ P ( z ∣ x , θ t ) P ( z ∣ x , θ t ) \int_z\log P(z|x,\theta^{t+1})P(z|x,\theta^t)dz\le\int_z\log P(z|x,\theta^{t})P(z|x,\theta^t) zlogP(zx,θt+1)P(zx,θt)dzzlogP(zx,θt)P(zx,θt)
左减右得
∫ z P ( z ∣ x , θ t ) log ⁡ P ( z ∣ x , θ t + 1 ) P ( z ∣ x , θ t ) = − KL   ( P ( z ∣ x , θ t ) ∣ ∣ P ( z ∣ x , θ t + 1 ) ) ≤ 0 \int_zP(z|x,\theta^t)\log\frac{P(z|x,\theta^{t+1})}{P(z|x,\theta^t)}=-\textbf{KL }(P(z|x,\theta^t)||P(z|x,\theta^{t+1}))\le0 zP(zx,θt)logP(zx,θt)P(zx,θt+1)=KL (P(zx,θt)P(zx,θt+1))0

至此,收敛性得证。

公式导出

EM算法主要有两步:
E-step: P ( z ∣ x , θ t ) → P(z|x,\theta^t)\rightarrow P(zx,θt) E z ∣ θ t , x ( log ⁡ P ( x , z ∣ θ ) ) \mathbb{E}_{z|\theta^t,x}(\log P(x,z|\theta)) Ezθt,x(logP(x,zθ))
即根据更新得到的 θ t \theta^t θt重新计算期望。
M-step: θ t + 1 = arg max ⁡ θ ∫ z log ⁡ P ( x , z ∣ θ ) ⋅ P ( z ∣ θ t , x ) d z \theta^{t+1}=\argmax_\theta\int_z\log P(x,z|\theta)\cdot P(z|\theta^{t},x)dz θt+1=θargmaxzlogP(x,zθ)P(zθt,x)dz

我们需要最大化 log ⁡ P ( x ∣ θ ) \log P(x|\theta) logP(xθ),即
log ⁡ P ( x ∣ θ ) = log ⁡ P ( x , z ∣ θ ) q ( z ) − log ⁡ P ( z ∣ x , θ ) q ( z ) \log P(x|\theta) =\log\frac{P(x,z|\theta)}{q(z)}-\log\frac{P(z|x,\theta)}{q(z)} logP(xθ)=logq(z)P(x,zθ)logq(z)P(zx,θ)
两端同时对 q ( z ) q(z) q(z)积分,即
∫ z q ( z ) log ⁡ P ( x ∣ θ ) d z = ∫ z ( q ( z ) log ⁡ P ( x , z ∣ θ ) q ( z ) − q ( z ) log ⁡ P ( z ∣ x , θ ) q ( z ) ) d z = ELBO + KL ( q ( z ) ∣ ∣ P ( z ∣ x , θ ) ) ≥ ELBO \begin{aligned} \int_z q(z)\log P(x|\theta)dz&=\int_z \left(q(z)\log\frac{P(x,z|\theta)}{q(z)}-q(z)\log\frac{P(z|x,\theta)}{q(z)}\right)dz \\ &=\textbf{ELBO}+\textbf{KL}(q(z)||P(z|x,\theta)) \\ &\ge \textbf{ELBO} \end{aligned} zq(z)logP(xθ)dz=z(q(z)logq(z)P(x,zθ)q(z)logq(z)P(zx,θ))dz=ELBO+KL(q(z)P(zx,θ))ELBO

因此我们需要最大化 ELBO \textbf{ELBO} ELBO,上式取等条件为 q ( z ) = P ( z ∣ x , θ t ) q(z)=P(z|x,\theta^t) q(z)=P(zx,θt),(此处先固定 θ \theta θ为上一次迭代的结果 θ t \theta^t θt。则此时
EBLO = ∫ z P ( z ∣ x , θ t ) log ⁡ P ( x , z ∣ θ ) P ( z ∣ x , θ t ) d z \textbf{EBLO}=\int_zP(z|x,\theta^t)\log\frac{P(x,z|\theta)}{P(z|x,\theta^t)}dz EBLO=zP(zx,θt)logP(zx,θt)P(x,zθ)dz

那么有
θ 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(z|x,\theta^t)dz θt+1=θargmaxzlogP(x,zθ)P(zx,θt)dz
从而有EM算法的表达式。

广义EM

EM算法中 P ( z ∣ x , θ t ) P(z|x,\theta^t) P(zx,θt)可能无解析式,所以不能直接将 q ( z ) = P ( z ∣ x , θ t ) q(z)=P(z|x,\theta^t) q(z)=P(zx,θt),而在 θ \theta θ固定是情况下, p ( x ∣ θ ) p(x|\theta) p(xθ)也固定,因此我们需要降低 KL ( q ( z ) ∣ ∣ P ( z ∣ x , θ ) ) \textbf{KL}(q(z)||P(z|x,\theta)) KL(q(z)P(zx,θ))从而使得 EBLO \textbf{EBLO} EBLO变大。即先固定 θ \theta θ,令 q ( z ) = arg min ⁡ q KL ( q ∣ ∣ p ) = arg max ⁡ q ELBO q(z)=\argmin_q\textbf{KL}(q||p)=\argmax_q\textbf{ELBO} q(z)=qargminKL(qp)=qargmaxELBO

而后固定 q q q,令
θ = arg max ⁡ θ ELBO \theta=\argmax_{\theta}\textbf{ELBO} θ=θargmaxELBO

故广义EM算法的形式为:
E-step: q t + 1 = arg max ⁡ q ELBO ( q , θ t ) q^{t+1}=\argmax_q\textbf{ELBO}(q,\theta^t) qt+1=qargmaxELBO(q,θt)
M-step p t + 1 = arg max ⁡ q ELBO ( q t , θ ) p^{t+1}=\argmax_q\textbf{ELBO}(q^t,\theta) pt+1=qargmaxELBO(qt,θ)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值