引言
深度模型与概率图形模型相结合的推理方法可以提供既灵活又易于解释的模型。文章提出了一种变分推理算法,用于在混合模型中的变分推理。首先,文章提出了一种结合了图模型和变分自编码(VAE)的结构化推理网络。其次,文章建立了一些条件,在这些条件下,这种推理网络可以实现类似于 VAE 的快速摊销推理(amortized inference)。最后,文章推导了变分消息传递算法来执行高效的自然梯度推理,同时保留了有效的摊销推理。通过同时支持对于深度结构化模型的结构化、摊销、自然梯度推理,本文的方法简化和扩展了目前的推理方法。
模型和挑战
考虑使用局部隐变量xn\mathbf{x}_nxn建模数据向量yn\mathbf{y}_nyn。文章通过给定xn\mathbf{x}_nxn和神经网络参数θNN\mathbf{\theta}_{\mathrm{NN}}θNN建模yn\mathbf{y}_nyn,并使用概率图模型(PGM)表示数据x:={x1,x2,…,xN}\mathbf{x}:=\{\mathbf{x}_1,\mathbf{x}_2,\ldots,\mathbf{x}_N\}x:={x1,x2,…,xN}和隐变量y:={y1,y2,…,yN}\mathbf{y}:=\{\mathbf{y}_1,\mathbf{y}_2,\ldots,\mathbf{y}_N\}y:={y1,y2,…,yN}之间的关系。具体来说,联合分布如何
p(y,x,θ):=[∏n=1Np(yn∣xn,θNN)]⏟DNN[p(x∣θPGM)]⏟DNN[p(θPGM)]⏟Hyperprior
\begin{equation}
p(\mathbf{y}, \mathbf{x}, \mathbf{\theta}):= \underbrace{ \Bigg [ \prod_{n=1}^N p(\mathbf{y}_n |\mathbf{x}_n, \mathbf{\theta}_{\mathrm{NN}}) \Bigg ]}_{\textrm{DNN}} \underbrace{ \Bigg [ p(\mathbf{x}| \mathbf{\theta}_{\mathrm{PGM}}) \Bigg] }_{\textrm{DNN}} \underbrace{ \Bigg [p(\mathbf{\theta}_{\mathrm{PGM}}) \Bigg ]}_{\textrm{Hyperprior}}
\end{equation}
p(y,x,θ):=DNN[n=1∏Np(yn∣xn,θNN)]DNN[p(x∣θPGM)]Hyperprior[p(θPGM)]
其中θNN\mathbf{\theta}_{\mathrm{NN}}θNN和θPGM\mathbf{\theta}_{\mathrm{PGM}}θPGM分别是深度神经网络(DNN)和概率图模型(PGM)的参数,并且θ:={θNN,θPGM}\mathbf{\theta}:=\{\mathbf{\theta}_{\mathrm{NN}}, \mathbf{\theta}_{\mathrm{PGM}}\}θ:={θNN,θPGM}。
这种结合了DNN和PGM的模型被称为结构化变分自编码(SVAE),该模型使用结构化先验p(x∣θPGM)p(\mathbf{x}| \mathbf{\theta}_{\mathrm{PGM}})p(x∣θPGM)来从数据中提取有用的结构信息。SVAE与VAE最大的区别为,VAE的先验分布为一个简单的多变量高斯分布p(x)=N(x∣0,I)p(\mathbf{x})=\mathcal{N}(\mathbf{x}|0, \mathbf{I})p(x)=N(x∣0,I),而没有结构化分布。给出下列混合先验示例。
示例:混合模型先验
假设我们想要将数据yn\mathbf{y}_nyn分组到KKK个聚类团。对于这样一个任务,标准的高斯先验不是一个合适的先验。我们应该使用xn\mathbf{x}_nxn的混合模型先验,如下
p(x∣θPGM)=∏n=1Np(xn∣θPGM)=∏n=1N[∑k=1Kp(xn∣zn=k)πk]
\begin{equation}
p(\mathbf{x}| \mathbf{\theta}_{\mathrm{PGM}}) = \prod_{n=1}^N p(\mathbf{x}_n | \mathbf{\theta}_{\mathrm{PGM}}) = \prod_{n=1}^N \left[ \sum_{k=1}^K p(\mathbf{x}_n | {z}_n=k) \pi_k \right]
\end{equation}
p(x∣θPGM)=n=1∏Np(xn∣θPGM)=n=1∏N[k=1∑Kp(xn∣zn=k)πk]
其中,zk∈{1,2,…,K}z_k \in\{1,2,\ldots,K\}zk∈{1,2,…,K}为第nnn个数据的混合下标,πk\pi_kπk为混合比例,并且∑k=1Kπk=1\sum_{k=1}^K \pi_k=1∑k=1Kπk=1。每一个混合分量可以被进一步建模,例如,采用高斯分布,p(xn∣zn=k):=N(xn∣μn,Σn)p(\mathbf{x}_n | {z}_n=k) := \mathcal{N}(\mathbf{x}_n| \mathbf{\mu}_n, \mathbf{\Sigma}_n )p(xn∣zn=k):=N(xn∣μn,Σn),如此,先验分布为高斯混合模型,PGM的超参数为θPGM:={μn,Σn,πk}k=1K\mathbf{\theta}_{\mathrm{PGM}}:= \{ \mathbf{\mu}_n, \mathbf{\Sigma}_n,\pi_k \}_{k=1}^KθPGM:={μn,Σn,πk}k=1K。图1给出了SVAE的先验模型。这类型的结构化先验对于发现数据中的聚类团是有效的,比VAE的推理更加简单。
文章的主要目的是近似后验分布p(x,θ∣y)p(\mathbf{x}, \mathbf{\theta}| \mathbf{y})p(x,θ∣y)。具体来说,类似于VAE,我们想要通过推理网络近似x\mathbf{x}x后验分布。在VAE,这通过DNN表示的参数化函数实现,给出
p(x∣y,θNN)≈∏n=1Nq(xn∣fϕ(yn))
\begin{equation}
p(\mathbf{x}| \mathbf{y}, \mathbf{\theta}_{\mathrm{NN}}) \approx \prod_{n=1}^N q(\mathbf{x}_n | f_{\phi } (\mathbf{y}_n))
\end{equation}
p(x∣y,θNN)≈n=1∏Nq(xn∣fϕ(yn))
其中,p(x∣y,θNN)p(\mathbf{x}| \mathbf{y}, \mathbf{\theta}_{\rm NN})p(x∣y,θNN)表示x\mathbf{x}x的后验分布,q(xn∣fϕ(yn))q(\mathbf{x}_n | f_{\phi } (\mathbf{y}_n))q(xn∣fϕ(yn))为编码器的分布,一般来说,qqq是指数族分布,它的参数使用参数为ϕ\phiϕ的DNNfϕf_{\phi }fϕ给出。对所有使用相同的函数fϕ(⋅)f_{\phi }(\cdot)fϕ(⋅),从而减少了变分参数的数量,并能在之间共享统计优势。
结构化推理网络
本文首先设计了一种结合了PGM和VAE的推理网络。然后,提出了包含了两种类型因子的结构化推理网络(SIN),
q(x∣y,ϕ):=1Z(ϕ)[∏n=1Nq(xn∣fϕNN(yn))]⏟DNN Factor[q(x∣ϕPGM)]⏟PGM Factor
\begin{equation}
q(\mathbf{x}| \mathbf{y}, \mathbf{\phi }):= \frac{1}{\mathcal{Z}(\mathbf{\phi })} \underbrace{\Bigg[ \prod_{n=1}^N q(\mathbf{x}_n | f_{\mathbf{\phi}_{\rm NN}} (\mathbf{y}_n)) \Bigg]}_{\rm DNN \ Factor} \underbrace{\Bigg[ q(\mathbf{x} | {\mathbf{\phi}_{\rm PGM}}) \Bigg]}_{\rm PGM \ Factor}
\end{equation}
q(x∣y,ϕ):=Z(ϕ)1DNN Factor[n=1∏Nq(xn∣fϕNN(yn))]PGM Factor[q(x∣ϕPGM)]
这里的DNN Factor类似于公式(3),PGM Factor为一个与PGM先验p(x∣θPGM)p(\bf{x}| \bm{\theta}_{\rm PGM})p(x∣θPGM)具有相似图结构的指数族分布。DNN因子的作用是实现灵活性,PGM因子的作用是模型的PGM结构结合到推理网络。两个因子都有自己的参数。ϕNN\phi_{\rm NN}ϕNN为DNN的参数,ϕPGM\phi_{\rm PGM}ϕPGM为PGM的参数。参数集合记为ϕ:={ϕNN,ϕPGM}\phi:=\{ \phi_{\rm NN}, \phi_{\rm PGM} \}ϕ:={ϕNN,ϕPGM}。
为了快速的摊销推理,这些DNN因子和PGM因子需要满足下面两个条件。第一个条件是归一化因子logZ(ϕ)\log \mathcal{Z}(\mathbf{\phi })logZ(ϕ)容易计算和可微的。第二个条件是可以从SIN中采样,即,x∗(ϕ)∼q(x∣y.ϕ)\mathbf{x}^{*}(\phi) \sim q(\mathbf{x} | \mathbf{y}. \phi)x∗(ϕ)∼q(x∣y.ϕ)。还有一个非必要的条件,希望可以使用重参数化技巧计算x∗(ϕ)\mathbf{x}^{*}(\phi)x∗(ϕ)的梯度。
当上面两个条件成立时,下界的随机梯度可以采用与VAE相似的方法计算。下面,我们假设θ\thetaθ是一个确定变量(下一节松弛这个条件)。这种情况下,变分下界可以计算为
LSIN(θ,ϕ):=Eq[logp(y,x∣θ)q(x∣y,ϕ)]=Eq[log∏n{p(yn∣xn,θNN)}p(x∣θPGM)Z(ϕ)∏nq(xn∣fϕNN(yn))q(x∣ϕPGM)]=∑n=1NEq[logp(yn∣xn,θNN)q(xn∣fϕNN(yn))]+Eq[logp(x∣θPGM)]−Eq[logq(x∣ϕPGM)]+logZ(ϕ)
\begin{equation}
\begin{split}
\mathcal{L}& _{\rm SIN}(\theta, \phi) := \mathbb{E}_q \left[ \log \frac{p(\mathbf{y}, \mathbf{x} | \mathbf{\theta})}{q(\mathbf{x}| \mathbf{y}, \mathbf{\phi })} \right] = \mathbb{E}_q \left[ \log \frac{{ \prod_{n} \{ p(\mathbf{y}_n |\mathbf{x}_n, \mathbf{\theta}_{\mathrm{NN}}) \} } { p(\mathbf{x}| \mathbf{\theta}_{\mathrm{PGM}}) } \mathcal{Z}(\mathbf{\phi })} { { \prod_{n} q(\mathbf{x}_n | f_{\mathbf{\phi}_{\rm NN}} (\mathbf{y}_n)) } { q(\mathbf{x} | {\mathbf{\phi}_{\rm PGM}}) } } \right] \\
& = \sum_{n=1}^N \mathbb{E}_q \left[ \log \frac{ p(\mathbf{y}_n |\mathbf{x}_n, \mathbf{\theta}_{\mathrm{NN}})}{q(\mathbf{x}_n | f_{\mathbf{\phi}_{\rm NN}} (\mathbf{y}_n))} \right] + \mathbb{E}_q \left[ \log p(\mathbf{x}| \mathbf{\theta}_{\mathrm{PGM}}) \right] - \mathbb{E}_q \left[ \log q(\mathbf{x} | {\mathbf{\phi}_{\rm PGM}}) \right] + \log \mathcal{Z}(\mathbf{\phi })
\end{split}
\end{equation}
LSIN(θ,ϕ):=Eq[logq(x∣y,ϕ)p(y,x∣θ)]=Eq[log∏nq(xn∣fϕNN(yn))q(x∣ϕPGM)∏n{p(yn∣xn,θNN)}p(x∣θPGM)Z(ϕ)]=n=1∑NEq[logq(xn∣fϕNN(yn))p(yn∣xn,θNN)]+Eq[logp(x∣θPGM)]−Eq[logq(x∣ϕPGM)]+logZ(ϕ)
上式的第一部分与标准VAE的下界是一致的;第二部分为PGM先验先验下界;剩下两部分为PGM结构。如果可以计算最后三项的梯度并从SIN中采样x∗(ϕ)\mathbf{x}^*(\phi)x∗(ϕ),可以进行类似VAE的摊销推理。
GMM先验的SIN
公式(2)中有额外的隐变量znz_nzn。为了在SIN中使用GMM模型,我们选择的参数为ϕPGM:={μˉk,Σˉk,πˉk}k=1K\phi_{\rm PGM} := \{ \mathbf{\bar{\mu}}_k, \mathbf{\bar{\Sigma}}_k, \bar{\pi}_k \}_{k=1}^KϕPGM:={μˉk,Σˉk,πˉk}k=1K,同时保持DNN部分为高斯分布
q(x∣y,ϕ):=1Z(ϕ)∏n=1N[N(xn∣mn,Vn)]⏟DNN Factor[∑k=1KN(xn∣μˉk,Σˉk)πˉk]⏟PGM Factor
\begin{equation}
q(\mathbf{x}| \mathbf{y}, \mathbf{\phi }):= \frac{1}{\mathcal{Z}(\mathbf{\phi })} \prod_{n=1}^N \underbrace{\Bigg[ \mathcal{N}(\mathbf{x}_n| \mathbf{m}_n, \mathbf{V}_n) \Bigg]}_{\rm DNN \ Factor} \underbrace{\Bigg[ \sum_{k=1}^K \mathcal{N} (\mathbf{x}_n|\mathbf{\bar{\mu}}_k, \mathbf{\bar{\Sigma}}_k)\bar{\pi}_k \Bigg]}_{\rm PGM \ Factor}
\end{equation}
q(x∣y,ϕ):=Z(ϕ)1n=1∏NDNN Factor[N(xn∣mn,Vn)]PGM Factor[k=1∑KN(xn∣μˉk,Σˉk)πˉk]
幸运的是,因为高斯分布和多模分布是共轭的,我们可以边缘化xn\mathbf{x}_nxn获得闭式表达式logZ(ϕ):=∑nlog∑kN(mn∣μˉn,Vn+Σˉn)πˉk\log \mathcal{Z}(\mathbf{\phi }) := \sum_n \log \sum_k \mathcal{N} (\mathbf{m}_n | \mathbf{\bar{\mu}}_n, \mathbf{{V}}_n + \mathbf{\bar{\Sigma}}_n) \bar{\pi}_klogZ(ϕ):=∑nlog∑kN(mn∣μˉn,Vn+Σˉn)πˉk。我们可以从SIN中采用通过边缘化q(zn=k∣y,ϕ)∝N(mn∣μˉn,Vn+Σˉn)πˉkq(z_n=k| \mathbf{y}, \phi) \propto \mathcal{N} (\mathbf{m}_n | \mathbf{\bar{\mu}}_n, \mathbf{{V}}_n + \mathbf{\bar{\Sigma}}_n) \bar{\pi}_kq(zn=k∣y,ϕ)∝N(mn∣μˉn,Vn+Σˉn)πˉk。给定znz_nzn,我们可以从分布q(xn∣zn=k,y,ϕ)=N(xn∣μ~n,Σ~n)q(\mathbf{x}_n | z_n=k, \mathbf{y}, \phi) = \mathcal{N} (\mathbf{x}_n | \mathbf{\tilde{\mu}}_n, \mathbf{\tilde{\Sigma}}_n)q(xn∣zn=k,y,ϕ)=N(xn∣μ~n,Σ~n)中采样xn\mathbf{x}_nxn,其中,Σ~n−1=Vn−1+Σˉn−1\mathbf{\tilde{\Sigma}}_n^{-1} = \mathbf{{V}}_n^{-1} + \mathbf{\bar{\Sigma}}_n^{-1}Σ~n−1=Vn−1+Σˉn−1以及μ~n=Σ~n(Vn−1mn+Σˉn−1μn)\mathbf{\tilde{\mu}}_n = \mathbf{\tilde{\Sigma}}_n ( \mathbf{{V}}_n^{-1} \mathbf{m}_n + \mathbf{\bar{\Sigma}}_n^{-1} \mathbf{\mu}_n )μ~n=Σ~n(Vn−1mn+Σˉn−1μn)。
GMM分布的变分下界为
LSIN(θ,ϕ)=Eq[log∏np(yn∣xn,θNN)∑kN(xn∣μn,Σn)πkZ(ϕ)∏nN(xn∣mn,Vn)∑kN(xn∣μˉk,Σˉk)πˉk]=∑n=1NEq[logp(yn∣xn,θNN)]−∑n=1NEq[logN(xn∣mn,Vn)]+∑n=1NEq[log∑kN(xn∣μn,Σn)πk]−Eq[log∑kN(xn∣μˉk,Σˉk)πˉk]+logZ(ϕ)
\begin{equation}
\begin{split}
\mathcal{L} _{\rm SIN}(\theta, \phi) & = \mathbb{E}_q \left[ \log \frac{{ \prod_{n} p(\mathbf{y}_n |\mathbf{x}_n, \mathbf{\theta}_{\mathrm{NN}}) } { \sum_{k} \mathcal{N}(\mathbf{x}_n| \mathbf{\mu}_n, \mathbf{\Sigma}_n ) \pi_k } \mathcal{Z}(\mathbf{\phi })}
{\prod_{n} { \mathcal{N}(\mathbf{x}_n| \mathbf{m}_n, \mathbf{V}_n) } { \sum_{k} \mathcal{N} (\mathbf{x}_n|\mathbf{\bar{\mu}}_k, \mathbf{\bar{\Sigma}}_k)\bar{\pi}_k }} \right] \\
= & \sum_{n=1}^N \mathbb{E}_q \left[ \log { p(\mathbf{y}_n |\mathbf{x}_n, \mathbf{\theta}_{\mathrm{NN}})} \right] -
\sum_{n=1}^N \mathbb{E}_q \left[ \log {\mathcal{N}(\mathbf{x}_n| \mathbf{m}_n, \mathbf{V}_n)} \right] + \\
& \sum_{n=1}^N \mathbb{E}_q \left[ \log \sum_{k} \mathcal{N}(\mathbf{x}_n| \mathbf{\mu}_n, \mathbf{\Sigma}_n ) \pi_k \right] - \mathbb{E}_q \left[ \log \sum_{k} \mathcal{N} (\mathbf{x}_n|\mathbf{\bar{\mu}}_k, \mathbf{\bar{\Sigma}}_k)\bar{\pi}_k \right] + \log \mathcal{Z}(\mathbf{\phi })
\end{split}
\end{equation}
LSIN(θ,ϕ)==Eq[log∏nN(xn∣mn,Vn)∑kN(xn∣μˉk,Σˉk)πˉk∏np(yn∣xn,θNN)∑kN(xn∣μn,Σn)πkZ(ϕ)]n=1∑NEq[logp(yn∣xn,θNN)]−n=1∑NEq[logN(xn∣mn,Vn)]+n=1∑NEq[logk∑N(xn∣μn,Σn)πk]−Eq[logk∑N(xn∣μˉk,Σˉk)πˉk]+logZ(ϕ)
自然梯度变分推理的变分信息传递
上面我们假设θPGM\theta_{\rm PGM}θPGM是确定的。在本节中,我们松弛这个条件,并假设θPGM\theta_{\rm PGM}θPGM服从指数族先验模型p(θPGM∣ηPGM)p(\theta_{\rm PGM}|\eta_{\rm PGM})p(θPGM∣ηPGM),该指数族先验模型的自然参数为ηPGM\eta_{\rm PGM}ηPGM。我们假设平均场近似q(x,θ∣y):=q(x∣y,ϕ)q(θPGM∣λPM)q(\mathbf{x},\theta|\mathbf{y}):= q(\mathbf{x}|\mathbf{y}, \phi) q(\theta_{\rm PGM} | \lambda_ {\rm PM})q(x,θ∣y):=q(x∣y,ϕ)q(θPGM∣λPM),其中,第一个公式为SIN,第二部分为指数族分布。
我们首先推导变分下界。
L(λPGM,θNN,θ)=Eq(θPGM∣λPM)[LSIN(θ,ϕ)]−EKL[q(θPGM∣λPM)∣∣p(θPGM∣λPM)]
\begin{equation}
\mathcal{L}(\lambda_{\rm PGM}, \theta_{NN}, \theta) = \mathbb{E} _{q(\theta_{\rm PGM} | \lambda_ {\rm PM})} [\mathcal{L}_{\rm SIN}(\theta, \phi)] - \mathbb{E} _{\rm KL} [q(\theta_{\rm PGM} | \lambda_ {\rm PM}) || p(\theta_{\rm PGM} | \lambda_ {\rm PM})]
\end{equation}
L(λPGM,θNN,θ)=Eq(θPGM∣λPM)[LSIN(θ,ϕ)]−EKL[q(θPGM∣λPM)∣∣p(θPGM∣λPM)]
推理算法流程图如下。
由于算法支持结构化、摊销和自然梯度(SAN)更新,因此称之为 SAN 算法。更新方便地将 PGM 和 DNN 计算分开。步骤 3-6 操作 PGM 部分,我们可以使用现有的 PGM 实现。第 7 步操作 DNN 部分,我们可以重复使用 VAE 实现。算法不仅概括了以前的工作,还通过重用现有软件简化了实现过程。