EM算法与变分推断

一、EM算法

目的:找到含有潜变量模型的极大似然解
应用背景:对于某些数据直接估计模型参数较为困难,但通过引入潜变量可以降低模型的求解难度。但引入潜变量后怎样来求解?——EM算法。

1. 直观感受EM算法

对对数似然函数 log ⁡ P ( X ∣ θ ) \log P(X|\theta) logP(Xθ) log ⁡ P ( X ∣ θ ) = log ⁡ ∑ Z P ( X , Z ∣ θ ) \log P(X|\theta)=\log \sum_Z{P(X,Z|\theta)} logP(Xθ)=logZP(X,Zθ),这样处理的目的是为了引入潜变量,但这样同时也会导致如下两个问题

  1. 求和操作在对数里面使得对数运算无法直接作用在联合分布上
  2. 由于 Z Z Z是隐变量,我们无法得知关于它的信息

为了解决以上这两个问题,我们可以将 arg ⁡ max ⁡ θ log ⁡ P ( X ∣ θ ) \arg\max_{\theta}\log P(X|\theta) argmaxθlogP(Xθ)近似为
arg ⁡ max ⁡ θ ∑ Z P ( Z ∣ X , θ ) log ⁡ P ( X , Z ∣ θ ) (1) \arg\max_{\theta}\sum_ZP(Z|X,\theta)\log P(X,Z|\theta) \tag{1} argθmaxZP(ZX,θ)logP(X,Zθ)(1)
(为什么可以这样近似在后面会讲述),近似后的目标函数相比于原目标函数的优势在于

  1. 求和符号从对数里面提到了对数外面降低了处理难度
  2. ∑ Z P ( X , Z ∣ θ ) \sum_ZP(X,Z|\theta) ZP(X,Zθ)不好直接处理,但对转化后的目标函数,我们可以利用已知数据对 Z Z Z进行推断得到 P ( Z ∣ X , θ ) P(Z|X,\theta) P(ZX,θ),再利用推断得到的 P ( Z ∣ X , θ ) P(Z|X,\theta) P(ZX,θ)来进行求和

在近似处理结束后,对于目标 θ ∗ = arg ⁡ max ⁡ θ ∑ Z P ( Z ∣ X , θ ) log ⁡ P ( X , Z ∣ θ ) \theta^*=\arg\max_{\theta}\sum_ZP(Z|X,\theta)\log P(X,Z|\theta) θ=argmaxθZP(ZX,θ)logP(X,Zθ),可以采用交替更新的方式来对目标进行求解,具体来说求解算法包括两步(这两步分别被称为E步和M步):

  1. E步:在E步中我们利用数据和现有参数(记为 θ o l d \theta^{old} θold)来对Z的概率进行推断,并用得到的 P ( Z ∣ X , θ o l d ) P(Z|X,\theta^{old}) P(ZX,θold)计算 Q ( θ , θ o l d ) = ∑ Z P ( Z ∣ X , θ o l d ) log ⁡ P ( X , Z ∣ θ ) Q(\theta,\theta^{old})=\sum_ZP(Z|X,\theta^{old})\log P(X,Z|\theta) Q(θ,θold)=ZP(ZX,θold)logP(X,Zθ),因为这里利用 P ( Z ∣ X , θ o l d ) P(Z|X,\theta^{old}) P(ZX,θold) log ⁡ P ( X , Z ∣ θ ) \log P(X,Z|\theta) logP(X,Zθ)进行了期望运算,进而这一步也被称为E(Expectation)步。
  2. M步:在M步中对于E步所获得的期望 Q ( θ , θ o l d ) Q(\theta,\theta^{old}) Q(θ,θold),我们寻找最优的新参数 θ n e w = arg ⁡ max ⁡ θ Q ( θ , θ o l d ) \theta^{new}=\arg\max_{\theta}Q(\theta,\theta^{old}) θnew=argmaxθQ(θ,θold),并令 θ o l d = θ n e w \theta^{old}=\theta^{new} θold=θnew在这一步骤中因为涉及到了最大化期望,因而它也被称为M(Maximization)步

通过不断交替重复E步和M步,直至收敛条件满足或达到最大迭代次数,得到参数 θ \theta θ

2. 从数学角度推导EM

在这里我们假设潜变量 Z Z Z服从分布 q ( Z ) q(Z) q(Z)
log ⁡ P ( X ∣ θ ) = ∑ Z q ( Z ) log ⁡ P ( X ∣ θ ) = ∑ Z q ( Z ) log ⁡ ( P ( X ∣ θ ) P ( X , Z ∣ θ ) P ( X , Z ∣ θ ) q ( Z ) q ( Z ) ) = ∑ Z q ( Z ) log ⁡ ( q ( Z ) P ( Z ∣ X , θ ) ) + ∑ Z q ( Z ) log ⁡ P ( X , Z ∣ θ ) q ( Z ) = ∑ Z q ( Z ) log ⁡ ( q ( Z ) P ( Z ∣ X , θ ) ) + ∑ Z q ( Z ) log ⁡ P ( X , Z ∣ θ ) − ∑ Z q ( Z ) log ⁡ q ( Z ) = K L ( q ( Z ) ∣ ∣ P ( Z ∣ X , θ ) ) + ∑ Z q ( Z ) log ⁡ P ( X , Z ∣ θ ) + H ( Z ) \begin{aligned} \log P(X|\theta)=\sum_Z{q(Z)\log P(X|\theta)}&=\sum_Z{q(Z)\log(\frac{P(X|\theta)}{P(X,Z|\theta)}\frac{P(X,Z|\theta)}{q(Z)}q(Z))}\\ &=\sum_Z{q(Z)\log(\frac{q(Z)}{P(Z|X,\theta)})}+\sum_Z{q(Z)\log \frac{P(X,Z|\theta)}{q(Z)}}\\ &=\sum_Z{q(Z)\log(\frac{q(Z)}{P(Z|X,\theta)})}+\sum_Z{q(Z)\log P(X,Z|\theta)}-\sum_Z{q(Z)\log q(Z)}\\ &=KL(q(Z)||P(Z|X,\theta))+\sum_Z{q(Z)\log P(X,Z|\theta)}+H(Z) \end{aligned} logP(Xθ)=Zq(Z)logP(Xθ)=Zq(Z)log(P(X,Zθ)P(Xθ)q(Z)P(X,Zθ)q(Z))=Zq(Z)log(P(ZX,θ)q(Z))+Zq(Z)logq(Z)P(X,Zθ)=Zq(Z)log(P(ZX,θ)q(Z))+Zq(Z)logP(X,Zθ)Zq(Z)logq(Z)=KL(q(Z)P(ZX,θ))+Zq(Z)logP(X,Zθ)+H(Z)
这里注意到 H ( Z ) H(Z) H(Z)是与 X , θ X,\theta X,θ无关的,我们不考虑它,从而得到一个新的目标函数
L = K L ( q ( Z ) ∣ ∣ P ( Z ∣ X , θ ) ) + ∑ Z q ( Z ) ln ⁡ P ( X , Z ∣ θ ) (2) \mathcal{L}=KL(q(Z)||P(Z|X,\theta))+\sum_Z{q(Z)\ln P(X,Z|\theta)}\tag{2} L=KL(q(Z)P(ZX,θ))+Zq(Z)lnP(X,Zθ)(2)
注意式(2)中的第二部分与式(1)很像。在这里,最大化 L \mathcal{L} L等价于最大化似然函数 log ⁡ P ( X ∣ θ ) \log P(X|\theta) logP(Xθ). 对目标函数 L \mathcal{L} L我们可以采取两步优化的方式来最大化。

  1. 优化KL散度: L \mathcal{L} L θ \theta θ θ = θ o l d \theta=\theta^{old} θ=θold)给定的时候是一个定值,此时最小化KL散度可以使 ∑ Z q ( Z ) log ⁡ P ( X , Z ∣ θ o l d ) \sum_Z{q(Z)\log P(X,Z|\theta^{old})} Zq(Z)logP(X,Zθold)最大。由KL散度的性质不难得到当 q ( Z ) = p ( Z ∣ X , θ o l d ) q(Z)=p(Z|X,\theta^{old}) q(Z)=p(ZX,θold)时KL散度最小其值为0. 当 q ( Z ) = p ( Z ∣ X , θ o l d ) q(Z)=p(Z|X,\theta^{old}) q(Z)=p(ZX,θold) K L ( q ( Z ) ∣ ∣ P ( Z ∣ X , θ o l d ) ) = 0 KL(q(Z)||P(Z|X,\theta^{old}))=0 KL(q(Z)P(ZX,θold))=0,这时 L = ∑ Z q ( Z ∣ X , θ o l d ) log ⁡ P ( X , Z ∣ θ o l d ) \mathcal{L}=\sum_Z{q(Z|X,\theta^{old})\log P(X,Z|\theta^{old})} L=Zq(ZX,θold)logP(X,Zθold),正好是EM算法E步的Q函数的形式。
  2. 最大化 L \mathcal{L} L arg ⁡ max ⁡ θ ∑ Z P ( Z ∣ X , θ o l d ) log ⁡ P ( X , Z ∣ θ ) \arg\max_\theta\sum_ZP(Z|X,\theta^{old})\log P(X,Z|\theta) argmaxθZP(ZX,θold)logP(X,Zθ),此时最大化 L \mathcal{L} L等价于最大化似然函数。同时由于 θ \theta θ的更新导致 q ( Z ) = P ( Z ∣ X , θ o l d ) ≠ P ( Z ∣ X , θ n e w ) q(Z)=P(Z|X,\theta^{old})\ne P(Z|X,\theta^{new}) q(Z)=P(ZX,θold)=P(ZX,θnew),这会使得KL散度不再为0导致 L \mathcal{L} L上升,同时KL不为0又使得我们可以进行新的一轮优化。这也是EM算法为什么可以最大化似然函数的原因。

整个过程的示意图如下:EM算法与变分推断_第1张图片

注:

  1. 省略 H ( Z ) H(Z) H(Z)是否合理:在E步中通过 q ( Z ) = P ( Z ∣ X , θ o l d ) q(Z)=P(Z|X,\theta^{old}) q(Z)=P(ZX,θold)来估计 q ( Z ) q(Z) q(Z)。在得到 q ( Z ) q(Z) q(Z)的估计后 log ⁡ P ( X ∣ θ ) \log P(X|\theta) logP(Xθ)变为 log ⁡ P ( X ∣ θ ) = ∑ Z q ( Z ∣ X , θ o l d ) log ⁡ P ( X , Z ∣ θ ) + ∑ Z q ( Z ∣ X , θ o l d ) log ⁡ q ( Z ∣ X , θ o l d ) \log P(X|\theta)=\sum_Z{q(Z|X,\theta^{old})\log P(X,Z|\theta)}+\sum_Z{q(Z|X,\theta^{old})\log q(Z|X,\theta^{old})} logP(Xθ)=Zq(ZX,θold)logP(X,Zθ)+Zq(ZX,θold)logq(ZX,θold)。显然 H ( Z ) H(Z) H(Z)在这个时候是定值与 θ \theta θ无关,因此在优化时省略掉也是合理的。
  2. 在这里可以把 ∑ Z q ( Z ) log ⁡ P ( X ∣ θ ) \sum_Z{q(Z) \log P(X|\theta)} Zq(Z)logP(Xθ)换为 E q ( Z ) log ⁡ P ( X ∣ θ ) E_{q(Z)}\log P(X|\theta) Eq(Z)logP(Xθ)也成立(后者是更一般的情况)。

二、变分推断

变分推断(Variational Inference, VI)
目的:近似推断后验分布 P ( Z ∣ X ) P(Z|X) P(ZX)
核心思想:假设一个密度族,然后再在密度族中找出一个与目标密度最为接近的密度。(一般两个密度之间的距离用KL散度刻画。)

1. ELBO的引入

这里尝试从两个不同的角度分别引入ELBO

a. 近似推断

由于对 P ( Z ∣ X ) P(Z|X) P(ZX)的推断较为困难(潜在空间维度高或 P ( Z ∣ X ) P(Z|X) P(ZX)的形式复杂)。因此尝试在一个密度函数族 Q Q Q中找到一个 q ( Z ) q(Z) q(Z)使其与 P ( Z ∣ X ) P(Z|X) P(ZX)尽可能接近即 q ∗ ( Z ) = arg ⁡ min ⁡ q ( Z ) ∈ Q K L ( q ( Z ) ∣ ∣ P ( Z ∣ X ) ) q^*(Z)=\arg\min_{q(Z)\in Q}KL(q(Z)||P(Z|X)) q(Z)=argminq(Z)QKL(q(Z)P(ZX))。其中(这一部分的 E [ ⋅ ] E[\cdot] E[]是关于分布 q ( Z ) q(Z) q(Z)求期望)
arg ⁡ min ⁡ q ∗ ( Z ) ∈ Q K L ( q ( Z ) ∣ ∣ P ( Z ∣ X ) ) = E [ log ⁡ q ( Z ) ] − E [ log ⁡ P ( Z ∣ X ) ] = E [ log ⁡ q ( Z ) ] − E [ log ⁡ P ( X , Z ) ] + E [ log ⁡ P ( X ) ] \begin{aligned} \arg\min_{q^*(Z)\in Q}KL(q(Z)||P(Z|X))&=E[\log q(Z)]-E[\log P(Z|X)]\\ &=E[\log q(Z)]-E[\log P(X,Z)]+E[\log P(X)] \end{aligned} argq(Z)QminKL(q(Z)P(ZX))=E[logq(Z)]E[logP(ZX)]=E[logq(Z)]E[logP(X,Z)]+E[logP(X)]
但这个目标并不好优化,因为其中含有 P ( X ) P(X) P(X),而 P ( X ) = ∫ Z P ( X , Z ) d Z P(X)=\int_Z P(X,Z)dZ P(X)=ZP(X,Z)dZ计算起来较为困难。但我们注意到 P ( X ) P(X) P(X) q ( Z ) q(Z) q(Z)没有直接联系,因此对目标函数进行转化,得到以下等价目标函数证据下界 (evidence lower bound, ELBO)。
E L B O ( q ) = E [ log ⁡ P ( X , Z ) ] − E [ log ⁡ q ( Z ) ] ELBO(q)=E[\log P(X,Z)]-E[\log q(Z)] ELBO(q)=E[logP(X,Z)]E[logq(Z)]
ELBO等于负的KL散度加上 log ⁡ P ( X ) \log P(X) logP(X),因此最大化 E L B O ( q ) ELBO(q) ELBO(q)等价于最小化 K L ( q ( Z ) ∣ ∣ P ( Z ∣ X ) ) KL(q(Z)||P(Z|X)) KL(q(Z)P(ZX))。此外对ELBO的表达式还可以有以下直观理解:

  1. ELBO可以进行如下转化
    E L B O ( q ) = E [ log ⁡ P ( X , Z ) ] − E [ log ⁡ q ( Z ) ] = E [ log ⁡ P ( X ∣ Z ) ] + E [ log ⁡ P ( Z ) ] − E [ log ⁡ q ( Z ) ] = E [ log ⁡ P ( X ∣ Z ) ] − K L ( q ( Z ) ∣ ∣ P ( Z ) ) \begin{aligned} ELBO(q)&=E[\log P(X,Z)]-E[\log q(Z)]\\ &=E[\log P(X|Z)]+E[\log P(Z)]-E[\log q(Z)]\\ &=E[\log P(X|Z)]-KL(q(Z)||P(Z)) \end{aligned} ELBO(q)=E[logP(X,Z)]E[logq(Z)]=E[logP(XZ)]+E[logP(Z)]E[logq(Z)]=E[logP(XZ)]KL(q(Z)P(Z))
    其中第一项为对数似然要求潜变量尽可能解释观测数据的分布,第二项为KL散度要求让后验 q ( Z ) q(Z) q(Z)分布尽可能接近先验分布 P ( Z ) P(Z) P(Z)

  2. log ⁡ P ( X ) ≥ E L B O ( q ) \log P(X) \ge ELBO(q) logP(X)ELBO(q) log ⁡ P ( X ) = E L B O ( q ) + K L ( q ( Z ) ∣ ∣ P ( Z ∣ X ) ) \log P(X)=ELBO(q)+KL(q(Z)||P(Z|X)) logP(X)=ELBO(q)+KL(q(Z)P(ZX)),而KL散度大于等于0。从这里我们也可以知道ELBO名字的由来。

b. 极大似然

计算 P ( Z ∣ X ) P(Z|X) P(ZX)的目的是在合适的条件下使 log ⁡ P ( X ) \log P(X) logP(X)(似然函数)最大。因此我们可以基于 log ⁡ P ( X ) \log P(X) logP(X)来推导 E L B O ( q ) ELBO(q) ELBO(q)
log ⁡ P ( X ) = ∫ q ( Z ) log ⁡ P ( X ) d Z = ∫ q ( Z ) log ⁡ P ( X ) P ( X , Z ) P ( X , Z ) q ( Z ) q ( Z ) = ∫ q ( Z ) log ⁡ q ( Z ) P ( Z ∣ X ) d Z + ∫ q ( Z ) log ⁡ P ( X , Z ) q ( Z ) d Z = K L ( q ( Z ) ∣ ∣ p ( Z ∣ X ) ) + L ( q ) \begin{aligned} \log P(X)&=\int q(Z)\log P(X)dZ\\ &=\int q(Z)\log{\frac{P(X)}{P(X,Z)}\frac{P(X,Z)}{q(Z)}q(Z)}\\ &=\int q(Z)\log\frac{q(Z)}{P(Z|X)}dZ+\int q(Z)\log\frac{P(X,Z)}{q(Z)}dZ\\ &=KL(q(Z)||p(Z|X))+\mathcal{L}(q) \end{aligned} logP(X)=q(Z)logP(X)dZ=q(Z)logP(X,Z)P(X)q(Z)P(X,Z)q(Z)=q(Z)logP(ZX)q(Z)dZ+q(Z)logq(Z)P(X,Z)dZ=KL(q(Z)p(ZX))+L(q)
其中 L ( q ) = ∫ q ( Z ) log ⁡ P ( X , Z ) q ( Z ) d Z = E [ log ⁡ p ( X , Z ) ] − E [ log ⁡ q ( Z ) ] \mathcal{L}(q)=\int q(Z)\log\frac{P(X,Z)}{q(Z)}dZ=E[\log p(X,Z)]-E[\log q(Z)] L(q)=q(Z)logq(Z)P(X,Z)dZ=E[logp(X,Z)]E[logq(Z)] E L B O ( q ) ELBO(q) ELBO(q)。注意到,在样本给定的时候 log ⁡ P ( X ) \log P(X) logP(X)是一个定值,因此在这种情况下最大化 L ( q ) \mathcal{L}(q) L(q)等价于最小化 K L ( q ( Z ) ∣ ∣ p ( Z ∣ X ) ) KL(q(Z)||p(Z|X)) KL(q(Z)p(ZX))

2.几种特殊的变分推断

a. 平均场变分推断

平均场假设(Mean-Field Assumption): q ( Z ) = ∏ i q i ( Z i ) q(Z)=\prod_i q_i(Z_i) q(Z)=iqi(Zi) 这里 Z i Z_i Zi并非特指单个随机变量,而可以理解成是一个团。

基于平均场假设
L ( q ) = ∫ q ( Z ) log ⁡ P ( X , Z ) d Z − ∫ q ( Z ) log ⁡ q ( Z ) d Z = ∫ q j ( log ⁡ p ( X , Z ) ∏ i ≠ j q i d Z i ) d Z j − ∫ q j log ⁡ q j d Z j + const = ∫ q j log ⁡ p ~ ( X , Z j ) d Z j − ∫ q j log ⁡ q j d Z j + const \begin{aligned} \mathcal{L}(q)&=\int q(Z)\log P(X,Z)dZ-\int q(Z)\log q(Z)dZ\\ &=\int q_j(\log p(X,Z)\prod_{i\ne j}q_idZ_i)dZ_j-\int q_j\log q_j dZ_j+\text{const}\\ &=\int q_j\log \tilde{p}(X,Z_j)dZ_j-\int q_j\log q_j dZ_j+\text{const} \end{aligned} L(q)=q(Z)logP(X,Z)dZq(Z)logq(Z)dZ=qj(logp(X,Z)i=jqidZi)dZjqjlogqjdZj+const=qjlogp~(X,Zj)dZjqjlogqjdZj+const
这里 log ⁡ p ~ ( X , Z j ) = E i ≠ j [ log ⁡ P ( X , Z ) ] + const \log\tilde{p}(X,Z_j)=E_{i\ne j}[\log P(X,Z)]+\text{const} logp~(X,Zj)=Ei=j[logP(X,Z)]+const。在这里保持 { q i ≠ j } \{q_{i \ne j}\} {qi=j}固定,关于分布 q j ( Z j ) q_j(Z_j) qj(Zj)来最大化 L ( q ) = − K L ( q j ∣ ∣ p ~ ( X , Z j ) ) + const \mathcal{L}(q)=-KL(q_j||\tilde{p}(X,Z_j))+\text{const} L(q)=KL(qjp~(X,Zj))+const。此时最大化 L \mathcal{L} L等价于最小化KL散度。由KL散度的定义易知 log ⁡ q j ∗ ( Z j ) = E i ≠ j [ log ⁡ P ( X , Z ) ] + const \log q^*_j(Z_j)=E_{i\ne j}[\log P(X,Z)]+\text{const} logqj(Zj)=Ei=j[logP(X,Z)]+const,于是我们可以得到如下方程组
q j ∗ ( Z j ) = exp ⁡ ( E i ≠ j [ log ⁡ P ( X , Z ) ] ) ∫ exp ⁡ ( E i ≠ j [ log ⁡ P ( X , Z ) ] ) d Z j ( j = 1 , ⋯   , n ) q^*_j(Z_j)=\frac{\exp(E_{i\ne j}[\log P(X,Z)])}{\int\exp(E_{i\ne j}[\log P(X,Z)])dZ_j}\quad (j=1,\cdots,n) qj(Zj)=exp(Ei=j[logP(X,Z)])dZjexp(Ei=j[logP(X,Z)])(j=1,,n)
这个方程组无显示解,因此采用一种交替迭代的方法来求解(CAVI)具体表现为:在给出一个恰当的初始话后,循环更新 q ( Z i ) q(Z_i) q(Zi)(用 q ∗ ( Z i ) q^*(Z_i) q(Zi)给出估计)。

b. 随机梯度变分推断

对目标函数: q ^ = arg ⁡ min ⁡ q K L ( q ∣ ∣ p ) = arg ⁡ min ⁡ L ( q ) \hat{q}=\arg\min_q KL(q||p)=\arg\min \mathcal{L}(q) q^=argminqKL(qp)=argminL(q),设 Z Z Z服从分布 q ϕ ( Z ) q_\phi(Z) qϕ(Z),这样目标函数变为 ϕ ^ = arg ⁡ min ⁡ ϕ L ( ϕ ) \hat{\phi}=\arg\min_{\phi} \mathcal{L}(\phi) ϕ^=argminϕL(ϕ)
∇ ϕ L ( ϕ ) = ∇ ϕ E q ϕ [ log ⁡ P θ ( X , Z ) − log ⁡ q ϕ ] = E q ϕ [ ∇ ϕ ( log ⁡ P θ ( X , Z ) − log ⁡ q ϕ ) ] = ∫ ∇ ϕ q ϕ ( log ⁡ P θ ( X , Z ) − log ⁡ q ϕ ) d Z + ∫ q ϕ ∇ ϕ [ log ⁡ P θ ( X , Z ) − log ⁡ q ϕ ] d Z \begin{aligned} \nabla_\phi\mathcal{L}(\phi)&=\nabla_\phi E_{q_\phi}[\log P_\theta(X,Z)-\log q_\phi]\\ &=E_{q_\phi}[\nabla_\phi(\log P_\theta(X,Z)-\log q_\phi)]\\ &=\int\nabla_\phi q_\phi(\log P_\theta(X,Z)-\log q_\phi)dZ+\int q_\phi\nabla_\phi[\log P_\theta(X,Z)-\log q_\phi]dZ \end{aligned} ϕL(ϕ)=ϕEqϕ[logPθ(X,Z)logqϕ]=Eqϕ[ϕ(logPθ(X,Z)logqϕ)]=ϕqϕ(logPθ(X,Z)logqϕ)dZ+qϕϕ[logPθ(X,Z)logqϕ]dZ
这里 ∫ q ϕ ∇ ϕ [ log ⁡ P θ ( X , Z ) − log ⁡ q ϕ ] d Z = − ∫ q ϕ ∇ ϕ log ⁡ q ϕ d Z = − ∫ ∇ ϕ q ϕ d Z = − ∇ ϕ ∫ q ϕ d Z = 0 \int q_\phi\nabla_\phi[\log P_\theta(X,Z)-\log q_\phi]dZ=-\int q_\phi\nabla_\phi \log q_\phi dZ=-\int\nabla_\phi q_\phi dZ= -\nabla_\phi\int q_\phi dZ=0 qϕϕ[logPθ(X,Z)logqϕ]dZ=qϕϕlogqϕdZ=ϕqϕdZ=ϕqϕdZ=0,进而
∇ ϕ L ( ϕ ) = ∫ q ϕ ∇ ϕ log ⁡ q ϕ ( log ⁡ P θ ( X , Z ) − log ⁡ q ϕ ) d Z = E q ϕ [ ∇ ϕ log ⁡ q ϕ ( log ⁡ P θ ( X , Z ) − log ⁡ q ϕ ) ] (3) \begin{aligned} \nabla_\phi\mathcal{L}(\phi)&=\int q_\phi \nabla_\phi \log q_\phi(\log P_\theta(X,Z)-\log q_\phi)dZ\\ &=E_{q_\phi}[\nabla_\phi \log q_\phi(\log P_\theta(X,Z)-\log q_\phi)] \end{aligned}\tag{3} ϕL(ϕ)=qϕϕlogqϕ(logPθ(X,Z)logqϕ)dZ=Eqϕ[ϕlogqϕ(logPθ(X,Z)logqϕ)](3)
注:对于(3)式中的期望计算可以利用MCMC来估计,即记 Z ( l ) ∼ q ( z ) l = 1 , 2 , ⋯   , L Z^{(l)}\sim q(z)\quad l=1,2,\cdots,L Z(l)q(z)l=1,2,,L,则 ∇ ϕ L ( ϕ ) = 1 L ∑ l ∇ ϕ log ⁡ q ϕ ( log ⁡ P θ ( X , Z ( l ) ) − log ⁡ q ϕ ( Z ( l ) ) \nabla_\phi\mathcal{L}(\phi)=\frac{1}{L}\sum_l{\nabla_\phi \log q_\phi(\log P_\theta(X,Z^{(l)})-\log q_\phi(Z^{(l)})} ϕL(ϕ)=L1lϕlogqϕ(logPθ(X,Z(l))logqϕ(Z(l)),若采样过程中 Z ( l ) Z^{(l)} Z(l)过小会导致 log ⁡ q ϕ ( Z ( l ) ) \log q_\phi(Z^{(l)}) logqϕ(Z(l))过大,使得计算不稳定,为了稳定则需要大量采样。

c. 重参数技巧

不妨设 Z = g ϕ ( ϵ , X ) Z=g_\phi(\epsilon,X) Z=gϕ(ϵ,X),这里 ϵ ∼ p ( ϵ ) \epsilon \sim p(\epsilon) ϵp(ϵ)同时有 ∣ q ϕ ( Z ∣ X ) d Z ∣ = ∣ p ( ϵ ) d ϵ ∣ |q_\phi(Z|X)dZ|=|p(\epsilon)d\epsilon| qϕ(ZX)dZ=p(ϵ)dϵ,于是我们可以推导
∇ ϕ L ( ϕ ) = ∇ ϕ E q ϕ [ log ⁡ P θ ( X , Z ) − log ⁡ q ϕ ] = ∇ ϕ ∫ [ log ⁡ P θ ( X , Z ) − log ⁡ q ϕ ] q ϕ d Z = ∇ ϕ ∫ [ log ⁡ P θ ( X , Z ) − log ⁡ q ϕ ] p ( ϵ ) d ϵ = E p ( ϵ ) [ ∇ ϕ ( log ⁡ P θ ( X , Z ) − log ⁡ q ϕ ) ] = E p ( ϵ ) [ ∇ Z ( log ⁡ P θ ( X , Z ) − log ⁡ q ϕ ) ∇ ϕ g ϕ ( ϵ , X ) ] \begin{aligned} \nabla_\phi\mathcal{L}(\phi)&=\nabla_\phi E_{q_\phi}[\log P_\theta(X,Z)-\log q_\phi]\\ &=\nabla_\phi\int[\log P_\theta(X,Z)- \log q_\phi]q_\phi dZ\\ &=\nabla_\phi\int[\log P_\theta(X,Z)- \log q_\phi]p(\epsilon) d\epsilon\\ &=E_{p(\epsilon)}[\nabla_\phi(\log P_\theta(X,Z)-\log q_\phi)]\\ &=E_{p(\epsilon)}[\nabla_Z(\log P_\theta(X,Z)-\log q_\phi)\nabla_\phi g_\phi(\epsilon,X)] \end{aligned} ϕL(ϕ)=ϕEqϕ[logPθ(X,Z)logqϕ]=ϕ[logPθ(X,Z)logqϕ]qϕdZ=ϕ[logPθ(X,Z)logqϕ]p(ϵ)dϵ=Ep(ϵ)[ϕ(logPθ(X,Z)logqϕ)]=Ep(ϵ)[Z(logPθ(X,Z)logqϕ)ϕgϕ(ϵ,X)]

注:VI和EM的一个差异,在EM中 θ \theta θ是固定的, Z Z Z是随机的;但在VI中只有一个随机的 Z Z Z,因此EM可以视为VI的特例。

参考

[1] Blei, D. M., Kucukelbir, A., & McAuliffe, J. D. (2017). Variational inference: A review for statisticians. Journal of the American statistical Association, 112(518), 859-877.
[2] Bishop, C. M., & Nasrabadi, N. M. (2006). Pattern recognition and machine learning (Vol. 4, No. 4, p. 738). New York: springer.
[3]https://www.bilibili.com/video/BV1DW41167vr?spm_id_from=333.999.0.0

你可能感兴趣的:(机器学习)