目的:找到含有潜变量模型的极大似然解
应用背景:对于某些数据直接估计模型参数较为困难,但通过引入潜变量可以降低模型的求解难度。但引入潜变量后怎样来求解?——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∣θ)=log∑ZP(X,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θmaxZ∑P(Z∣X,θ)logP(X,Z∣θ)(1)
(为什么可以这样近似在后面会讲述),近似后的目标函数相比于原目标函数的优势在于
在近似处理结束后,对于目标 θ ∗ = 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(Z∣X,θ)logP(X,Z∣θ),可以采用交替更新的方式来对目标进行求解,具体来说求解算法包括两步(这两步分别被称为E步和M步):
通过不断交替重复E步和M步,直至收敛条件满足或达到最大迭代次数,得到参数 θ \theta θ
在这里我们假设潜变量 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∣θ)=Z∑q(Z)logP(X∣θ)=Z∑q(Z)log(P(X,Z∣θ)P(X∣θ)q(Z)P(X,Z∣θ)q(Z))=Z∑q(Z)log(P(Z∣X,θ)q(Z))+Z∑q(Z)logq(Z)P(X,Z∣θ)=Z∑q(Z)log(P(Z∣X,θ)q(Z))+Z∑q(Z)logP(X,Z∣θ)−Z∑q(Z)logq(Z)=KL(q(Z)∣∣P(Z∣X,θ))+Z∑q(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(Z∣X,θ))+Z∑q(Z)lnP(X,Z∣θ)(2)
注意式(2)中的第二部分与式(1)很像。在这里,最大化 L \mathcal{L} L等价于最大化似然函数 log P ( X ∣ θ ) \log P(X|\theta) logP(X∣θ). 对目标函数 L \mathcal{L} L我们可以采取两步优化的方式来最大化。
注:
变分推断(Variational Inference, VI)
目的:近似推断后验分布 P ( Z ∣ X ) P(Z|X) P(Z∣X)
核心思想:假设一个密度族,然后再在密度族中找出一个与目标密度最为接近的密度。(一般两个密度之间的距离用KL散度刻画。)
这里尝试从两个不同的角度分别引入ELBO
由于对 P ( Z ∣ X ) P(Z|X) P(Z∣X)的推断较为困难(潜在空间维度高或 P ( Z ∣ X ) P(Z|X) P(Z∣X)的形式复杂)。因此尝试在一个密度函数族 Q Q Q中找到一个 q ( Z ) q(Z) q(Z)使其与 P ( Z ∣ X ) P(Z|X) P(Z∣X)尽可能接近即 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(Z∣X))。其中(这一部分的 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(Z∣X))=E[logq(Z)]−E[logP(Z∣X)]=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(Z∣X))。此外对ELBO的表达式还可以有以下直观理解:
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(X∣Z)]+E[logP(Z)]−E[logq(Z)]=E[logP(X∣Z)]−KL(q(Z)∣∣P(Z))
其中第一项为对数似然要求潜变量尽可能解释观测数据的分布,第二项为KL散度要求让后验 q ( Z ) q(Z) q(Z)分布尽可能接近先验分布 P ( Z ) P(Z) P(Z)
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(Z∣X)),而KL散度大于等于0。从这里我们也可以知道ELBO名字的由来。
计算 P ( Z ∣ X ) P(Z|X) P(Z∣X)的目的是在合适的条件下使 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(Z∣X)q(Z)dZ+∫q(Z)logq(Z)P(X,Z)dZ=KL(q(Z)∣∣p(Z∣X))+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(Z∣X))
平均场假设(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)dZ−∫q(Z)logq(Z)dZ=∫qj(logp(X,Z)i=j∏qidZi)dZj−∫qjlogqjdZj+const=∫qjlogp~(X,Zj)dZj−∫qjlogqjdZj+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(qj∣∣p~(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)给出估计)。
对目标函数: 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(q∣∣p)=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(ϕ)=L1∑l∇ϕ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))过大,使得计算不稳定,为了稳定则需要大量采样。
不妨设 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ϕ(Z∣X)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