【摘 要】 如果存在具有棘手后验的连续型隐变量和大数据集,我们如何在有向概率图模型中进行有效的推断和学习? 本文引入了一种随机变分推断和学习算法。该算法能够在一些轻度差异化(甚至棘手)的情况下工作,并且能够扩展到大型数据集。本文的贡献有两个:首先,证明了重参数化方法可以产生一个对变分下界的无偏估计,并且该估计方法能够使用随机梯度方法做优化。其次,对于有连续型隐变量的独立同分布数据集,我们利用重参数化的变分下界估计,成功地为棘手后验拟合了近似的推断模型。理论优势最终反映在了实验结果中。
1 介绍
当模型中存在具有棘手后验的连续型隐变量和/或参数时,我们如何使用有向概率图模型进行近似推断和学习呢?
在实践中,变分推断方法可以采用优化方法对棘手后验做近似推断。目前常用的平均场变分推断方法,利用指数族分布来构建一个近似的变分下界,但该方法中需要期望(相对于近似后验)的解析解,这在一般情况下很难适用。
关于变分推断的知识 参阅 初始变分推断
贝叶斯方法需要对分布作出推断,由于精确推断通常非常棘手,因此近似推断方法得到了广泛应用。变分推断方法作为其中一种近似推断方法,其核心理念是:
(1)利用最优化方法,找到一个能够逼近真实分布的近似分布(也被称为变分分布,要求可参数化);
(2)优化目标:最小化近似分布与真实分布之间的 KL 散度,由于 KL 散度的计算非常棘手(需要计算边缘似然),因此通常将目标改为最大化变分分布的上界,或最小化变分下界(即最小化负的变分上界,ELBO)。
该方法最关键的步骤是构造变分分布的参数化形式,而平均场方法采用指数族分布来建立变分分布的参数化形式,是使用较为广泛的一类变分推断方法。
在本文中,我们展示了一种被称为 重参数化
的变分下界估计方法,能够得到变分下界的简单可微无偏估计。几乎所有含(棘手后验)连续型隐变量和/或参数的概率图模型,在实施近似推断时都可以采用该估计方法,而且该估计可直接使用随机梯度上升进行优化。
对于每个数据点都存在连续隐变量的独立同分布数据集,我们进一步提出了自编码变分贝叶斯(Auto-Encoding VB, AEVB)算法。在该算法中,通过使用前述的 “重参数化” 估计器优化了一个识别模型,该算法使我们能够使用简单的祖先采样来执行对隐变量的有效近似后验推断,进而能够对模型参数进行有效地学习。学得的近似后验推断模型不仅可用于识别,还可以用于去噪、表示、可视化等许多其他任务。
当该识别模型采用神经网络实现时,我们称之为:变分自编码器 。
2 方法
注意:本节中的策略可用于推导具有连续型隐变量的各种有向图模型的下界估计(即一个随机目标函数)。
在这里,我们将场景仅局限于:每个数据点都具有连续型隐变量的独立同分布数据集。我们的目标是希望:对(全局)参数执行最大似然或最大后验推断,并对隐变量进行变分推断。当然,本节的方法也可扩展到需要对全局参数执行变分推断的情况(即将部分全局参数视为随机变量),相应算法体现在附录中,但我们并未做相应的实验。此外,我们的方法可以应用于在线的、非静态的数据集(如:流数据),但为了简单起见,本文中我们假设一个固定的数据集。
备注 (1)变分自编码器将模型参数视为确定而未知的值,将隐变量视为具有某种概率分布的连续型随机变量。因此,前者采用最大似然或最大后验估计,而后者采用变分推断方法估计。
(2)随机变量的近似推断方法主要有 MCMC 和变分推断,显然变分推断方法更适用于神经网络。本文的贡献是为变分推断引入了一种重参数化技巧,使得神经网络具备了推断随机变量的能力。
图 1:正在考虑的有向图模型的类型。 实线表示生成模型 ,虚线表示对棘手后验的变分近似 。 变分参数 φ 与生成模型参数θ一起学习。
2.1 问题场景
让我们考虑数据集 X = { x ( i ) } i = 1 N \mathbf{X} =\{\mathbf{x}^{(i)}\}^N_{i=1} X = { x ( i ) } i = 1 N , 该数据集由采样在连续或离散随机变量 x \mathbf{x} x 的 N N N 个独立同分布样本点构成。我们假设数据由某个随机过程生成,其中涉及一个不可观测的连续型随机变量(即隐变量) z \mathbf{z} z 。该样本的生成过程包括两个步 骤:
(1)从某些先验分布 p θ ∗ ( z ) p_{\boldsymbol{\theta}^*}(\mathbf{z}) p θ ∗ ( z ) 生成值 z i \mathbf{z}^{i} z i ;
(2)从某些条件分布 p θ ∗ ( x ∣ z ) p_{\boldsymbol{\theta}^*}(\mathbf{x} \mid \mathbf{z}) p θ ∗ ( x ∣ z ) 中生成值 x i \mathbf{x}^{i} x i 。
这里,我们假设先验 p θ ∗ ( z ) p_{\boldsymbol{\theta}^*}(\mathbf{z}) p θ ∗ ( z ) 和似然 p θ ∗ ( x ∣ z ) p_{\boldsymbol{\theta}^*}(\mathbf{x} \mid \mathbf{z}) p θ ∗ ( x ∣ z ) 分别来自于可参数化的分布族 p θ ( z ) p_{\boldsymbol{\theta}}(\mathbf{z}) p θ ( z ) 和 p θ ( x ∣ z ) p_{\boldsymbol{\theta}}(\mathbf{x} \mid \mathbf{z}) p θ ( x ∣ z ) ,并且其密度相对于 θ \boldsymbol{\theta} θ 和 z \mathbf{z} z 处处可微。
不幸的是,该过程中的很多地方是无法观测到的:我们不知道真实参数 θ ∗ \boldsymbol{\theta}^* θ ∗ 以及隐变量 z i \mathbf{z}^{i} z i 的值。
非常重要的是:我们在此不会对边缘概率或后验概率做出常见的简化假设(如平均场)。相反,我们感兴趣的是一种能够在以下情况下继续有效工作的通用算法:
计算难以处理 :边缘似然 p θ ( x ) p_{\boldsymbol{\theta}}(\mathbf{x}) p θ ( x ) 的积分运算难以处理(导致无法计算边缘似然或求其微分);后验分布 p θ ( z ∣ x ) p_{\boldsymbol{\theta}}(\mathbf{z} \mid \mathbf{x}) p θ ( z ∣ x ) 难以处理(导致 EM 算法不可用);采用平均场方法时的积分难以处理等。这些难以处理的情况非常普遍,并且经常出现在具有中等复杂度似然函数 p θ ( x ∣ z ) p_{\boldsymbol{\theta}}(\mathbf{x} \mid \mathbf{z}) p θ ( x ∣ z ) 的情况中,典型如具有非线性隐层的神经网络。
大型数据集 :数据量太大,批量优化成本太高;我们希望使用小批量甚至单个数据点进行参数更新。基于采样的解决方案(如 Monte Carlo EM)此时通常会太慢,因为它涉及需要遍历每个数据点的采样循环。
我们对上述场景中的三个相关任务感兴趣,并提出了解决方案:
对参数 θ \boldsymbol{\theta} θ 的有效近似估计( ML 或 MAP )。因为参数本身有时是我们感兴趣的。例如,当我们分析一些自然过程时,参数允许我们模拟隐随机过程并生成类似于真实数据的人工数据。
在给定参数 θ \boldsymbol{\theta} θ 和观测值 x \mathbf{x} x 时,对隐变量 z \mathbf{z} z 的有效近似后验推断。这对编码或数据表示任务非常有用。
对变量 x \mathbf{x} x 的有效近似边缘推断。这允许我们执行各种需要知道 x \mathbf{x} x 的后续推断任务。例如,计算机视觉中常见的图像去噪、修复、超分辨率等应用。
为了解决上述问题,我们引入了判别模型对棘手的后验作出近似推断。与平均场变分推断的近似后验相比,本文方法不需要作出因子化的假设,并且其参数 ϕ \phi ϕ 也不需要根据某些封闭形式的期望公式来计算的。更进一步,我们将介绍一种识别模型参数 ϕ \boldsymbol{\phi} ϕ 与生成模型参数 θ \boldsymbol{\theta} θ 联合学习的新方法。
从编码理论角度来看,未观测到的变量 z \boldsymbol{z} z 具有作为潜在表示或编码的价值。因此,在本文中我们也将判别模型称为 概率编码器 ,因为给定数据点 x \boldsymbol{x} x ,它在编码 z \boldsymbol{z} z 的可能值上产生了一个概率分布(如高斯);进而又可以从该分布中生成新的数据点 x \boldsymbol{x} x ,而该生成过程被我们称为 概率解码器 ,因为给定代码 z \boldsymbol{z} z ,它能够在 x \boldsymbol{x} x 的可能值上产生一个概率分布。
2.2 变分界
在最大似然估计中,x \mathbf{x} x 的似然由单个数据点的似然之和组成,log p θ ( x ( 1 ) , ⋯ , x ( N ) ) = ∑ i = 1 N log p θ ( x ( i ) ) \log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(1)}, \cdots, \mathbf{x}^{(N)}\right)=\sum_{i=1}^N \log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(i)}\right) log p θ ( x ( 1 ) , ⋯ , x ( N ) ) = ∑ i = 1 N log p θ ( x ( i ) ) ,可重写为:
log p θ ( x ( i ) ) = D K L ( q ϕ ( z ∣ x ( i ) ) ∥ p θ ( z ∣ x ( i ) ) ) + L ( θ , ϕ ; x ( i ) ) \log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(i)}\right)=D_{K L}\left(q_{\boldsymbol{\phi}}\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right) \| p_{\boldsymbol{\theta}}\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right)\right)+\mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right)
log p θ ( x ( i ) ) = D K L ( q ϕ ( z ∣ x ( i ) ) ∥ p θ ( z ∣ x ( i ) ) ) + L ( θ , ϕ ; x ( i ) )
其中右侧第一项是近似分布到真实后验分布的 KL 散度,由于 KL 散度永远大于等于 0,公式中右侧第二项 L ( θ , ϕ ; x ( i ) ) \mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathrm{x}^{(i)}\right) L ( θ , ϕ ; x ( i ) ) 被称为数据点 i i i 的似然的变分下界,记为:
log p θ ( x ( i ) ) ≥ L ( θ , ϕ ; x ( i ) ) = E q ϕ ( z ∣ x ) [ − log q ϕ ( z ∣ x ) + log p θ ( x , z ) ] \log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(i)}\right) \geq \mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right)=\mathbb{E}_{q_{\boldsymbol{\phi}}(\mathbf{z} \mid \mathbf{x})}\left[-\log q_{\boldsymbol{\phi}}(\mathbf{z} \mid \mathbf{x})+\log p_{\boldsymbol{\theta}}(\mathbf{x}, \mathbf{z})\right]
log p θ ( x ( i ) ) ≥ L ( θ , ϕ ; x ( i ) ) = E q ϕ ( z ∣ x ) [ − log q ϕ ( z ∣ x ) + log p θ ( x , z ) ]
也可写为:
L ( θ , ϕ ; x ( i ) ) = − D K L ( q ϕ ( z ∣ x ( i ) ) ∥ p θ ( z ) ) + E q ϕ ( z ∣ x ( i ) ) [ log p θ ( x ( i ) ∣ z ) ] \mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right)=-D_{K L}\left(q_{\boldsymbol{\phi}}\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right) \| p_{\boldsymbol{\theta}}(\mathbf{z})\right)+\mathbb{E}_{q_\phi\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right)}\left[\log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(i)} \mid \mathbf{z}\right)\right]
L ( θ , ϕ ; x ( i ) ) = − D K L ( q ϕ ( z ∣ x ( i ) ) ∥ p θ ( z ) ) + E q ϕ ( z ∣ x ( i ) ) [ log p θ ( x ( i ) ∣ z ) ]
我们想要相对于变分参数 ϕ \phi ϕ 和生成参数 θ \theta θ 对下界 L ( θ , ϕ ; x ( i ) ) \mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right) L ( θ , ϕ ; x ( i ) ) 做微分和优化。但由于该下界是一个期望,其相对于 ϕ \phi ϕ 的梯度计算需要使用朴素蒙特卡洛梯度估计器:
∇ ϕ E q ϕ ( z ) [ f ( z ) ] = E q ϕ ( z ) [ f ( z ) ∇ q ϕ ( z ) log q ϕ ( z ) ] ≃ 1 L ∑ l = 1 L f ( z ) ∇ q ϕ ( z ( l ) ) log q ϕ ( z ( l ) ) \nabla_\phi \mathbb{E}_{q_\phi(\mathbf{z})}[f(\mathbf{z})]=\mathbb{E}_{q_\phi(\mathbf{z})}\left[f(\mathbf{z}) \nabla_{q_\phi(\mathbf{z})} \log q_\phi(\mathbf{z})\right] \simeq \frac{1}{L} \sum_{l=1}^L f(\mathbf{z}) \nabla_{q_\phi\left(\mathbf{z}^{(l)}\right)} \log q_\phi\left(\mathbf{z}^{(l)}\right)
∇ ϕ E q ϕ ( z ) [ f ( z )] = E q ϕ ( z ) [ f ( z ) ∇ q ϕ ( z ) log q ϕ ( z ) ] ≃ L 1 l = 1 ∑ L f ( z ) ∇ q ϕ ( z ( l ) ) log q ϕ ( z ( l ) )
其中 z ( l ) ∼ q ϕ ( z ∣ x ( i ) ) \mathbf{z}^{(l)} \sim q_\phi\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right) z ( l ) ∼ q ϕ ( z ∣ x ( i ) ) 。
蒙特卡洛梯度估计器存在非常高的方差(参见 [BJP12]),对于我们的目的来说不太合适。
2.3 随机梯度变分推断和自编码变分贝叶斯算法
在本节中,我们将介绍变分下界及其导数(相对于参数)的实用估计方法。我们假设近似后验的形式为 q ϕ ( z ∣ x ) q_\phi(\mathbf{z} \mid \mathbf{x}) q ϕ ( z ∣ x ) ,但该技术也可应用于 q ϕ ( z ) q_\phi(\mathbf{z} ) q ϕ ( z ) (即我们也不以 x \mathbf{x} x 为条件)。用于推断参数后验的完全变分贝叶斯方法参见附录。
在 第 2.4 节
中概述的某些温和条件下,对于近似后验 q ϕ ( z ∣ x ) q_\phi(\mathbf{z} \mid \mathbf{x}) q ϕ ( z ∣ x ) ,我们可以使用噪声变量 ϵ \boldsymbol{\epsilon} ϵ 的可微分变换 g ϕ ( ϵ , x ) g_{\boldsymbol{\phi}}(\boldsymbol{\epsilon},\mathbf{ x}) g ϕ ( ϵ , x ) 来重参数化随机变量 z ~ ∼ q ϕ ( z ∣ x ) \widetilde{\mathbf{z}} \sim q_{\boldsymbol{\phi}}(\mathbf{z} \mid \mathbf{x}) z ∼ q ϕ ( z ∣ x ) :
z ~ = g ϕ ( ϵ , x ) with ϵ ∼ p ( ϵ ) \widetilde{\mathbf{z}}=g_{\boldsymbol{\phi}}(\boldsymbol{\epsilon}, \mathbf{x}) \quad \text { with } \quad \boldsymbol{\epsilon} \sim p(\boldsymbol{\epsilon})
z = g ϕ ( ϵ , x ) with ϵ ∼ p ( ϵ )
选择这样一个适当的分布 p(\ball symbol{\epsilon}) 和函数 g_\phi(\ball symbol{\epsilon}, \mathbf{x}) 的一般策略,请参见 第 2.4 节
。
我们现在可以对函数 f ( z ) f(\mathbf{z}) f ( z ) 相对于 q ϕ ( z ∣ x ) q_\phi(\mathbf{z}\mid\mathbf{x}) q ϕ ( z ∣ x ) 的期望形成如下蒙特卡罗估计:
E q ϕ ( z ∣ x ( i ) ) [ f ( z ) ] = E p ( ϵ ) [ f ( g ϕ ( ϵ , x ( i ) ) ) ] ≃ 1 L ∑ l = 1 L f ( g ϕ ( ϵ ( l ) , x ( i ) ) ) where ϵ ( l ) ∼ p ( ϵ ) \mathbb{E}_{q_\phi\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right)}[f(\mathbf{z})]=\mathbb{E}_{p(\boldsymbol{\epsilon})}\left[f\left(g_{\boldsymbol{\phi}}\left(\boldsymbol{\epsilon}, \mathbf{x}^{(i)}\right)\right)\right] \simeq \frac{1}{L} \sum_{l=1}^L f\left(g_{\boldsymbol{\phi}}\left(\boldsymbol{\epsilon}^{(l)}, \mathbf{x}^{(i)}\right)\right) \quad \text { where } \quad \boldsymbol{\epsilon}^{(l)} \sim p(\boldsymbol{\epsilon})
E q ϕ ( z ∣ x ( i ) ) [ f ( z )] = E p ( ϵ ) [ f ( g ϕ ( ϵ , x ( i ) ) ) ] ≃ L 1 l = 1 ∑ L f ( g ϕ ( ϵ ( l ) , x ( i ) ) ) where ϵ ( l ) ∼ p ( ϵ )
我们将此技术应用于变分下界( 公式 2 ),生成我们的通用随机梯度变分贝叶斯(SGVB)估计器 L ~ A ( θ , ϕ ; x ( i ) ) ≃ L ( θ , ϕ ; x ( i ) ) \widetilde{\mathcal{L}}^A\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right) \simeq \mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x} ^{(i)}\right) L A ( θ , ϕ ; x ( i ) ) ≃ L ( θ , ϕ ; x ( i ) ) :
L ~ A ( θ , ϕ ; x ( i ) ) = 1 L ∑ l = 1 L log p θ ( x ( i ) , z ( i , l ) ) − log q ϕ ( z ( i , l ) ∣ x ( i ) ) where z ( i , l ) = g ϕ ( ϵ ( i , l ) , x ( i ) ) and ϵ ( l ) ∼ p ( ϵ ) \begin{aligned}
&\widetilde{\mathcal{L}}^A\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right)=\frac{1}{L} \sum_{l=1}^L \log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(i)}, \mathbf{z}^{(i, l)}\right)-\log q_{\boldsymbol{\phi}}\left(\mathbf{z}^{(i, l)} \mid \mathbf{x}^{(i)}\right) \\
&\text { where } \quad \mathbf{z}^{(i, l)}=g_{\boldsymbol{\phi}}\left(\boldsymbol{\epsilon}^{(i, l)}, \mathbf{x}^{(i)}\right) \quad \text { and } \quad \boldsymbol{\epsilon}^{(l)} \sim p(\boldsymbol{\epsilon})
\end{aligned}
L A ( θ , ϕ ; x ( i ) ) = L 1 l = 1 ∑ L log p θ ( x ( i ) , z ( i , l ) ) − log q ϕ ( z ( i , l ) ∣ x ( i ) ) where z ( i , l ) = g ϕ ( ϵ ( i , l ) , x ( i ) ) and ϵ ( l ) ∼ p ( ϵ )
通常,公式 3
中的 KL 散度 D K L ( q ϕ ( z ∣ x ( i ) ) ∥ p θ ( z ) ) D_{K L}\left(q_{\boldsymbol{\phi}}\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right) \| p_ {\boldsymbol{\theta}}(\mathbf{z})\right) D K L ( q ϕ ( z ∣ x ( i ) ) ∥ p θ ( z ) ) 可以通过解析方式做积分,这样只有重构误差的期望 E q ϕ ( z ∣ x ( i ) ) [ log p θ ( x ( i ) ∣ z ) ] \mathbb{E}_{q_\phi\left(\mathbf{z} \mid \mathbf{x}^{( i)}\right)}\left[\log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(i)} \mid \mathbf{z}\right)\right] E q ϕ ( z ∣ x ( i ) ) [ log p θ ( x ( i ) ∣ z ) ] 需要通过采样来估计。KL 散度项可以解释为正则化 ϕ \phi ϕ ,鼓励近似后验接近先验 p θ ( z ) p_{\boldsymbol{\theta}}(\mathbf{z}) p θ ( z ) 。这产生了相对于 公式 3
的第二个版本随机梯度变分贝叶斯估计器 L ~ B ( θ , ϕ ; x ( i ) ) ≃ L ( θ , ϕ ; x ( i ) ) \widetilde{\mathcal{L}}^B\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right ) \simeq \mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right) L B ( θ , ϕ ; x ( i ) ) ≃ L ( θ , ϕ ; x ( i ) ) ,其通常比通用的估计器具有更小的方差:
L ~ B ( θ , ϕ ; x ( i ) ) = − D K L ( q ϕ ( z ∣ x ( i ) ) ∥ p θ ( z ) ) + 1 L ∑ l = 1 L ( log p θ ( x ( i ) ∣ z ( i , l ) ) ) (7) \widetilde{\mathcal{L}}^B\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right)=-D_{K L}\left(q_{\boldsymbol{\phi}}\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right) \| p_{\boldsymbol{\theta}}(\mathbf{z})\right)+\frac{1}{L} \sum_{l=1}^L\left(\log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(i)} \mid \mathbf{z}^{(i, l)}\right)\right) \tag{7}
L B ( θ , ϕ ; x ( i ) ) = − D K L ( q ϕ ( z ∣ x ( i ) ) ∥ p θ ( z ) ) + L 1 l = 1 ∑ L ( log p θ ( x ( i ) ∣ z ( i , l ) ) ) ( 7 )
其中 z ( i , l ) = g ϕ ( ϵ ( i , l ) , x ( i ) ) \quad \mathbf{z}^{(i, l)}=g_{\boldsymbol{\phi}}\left(\boldsymbol{\epsilon}^{(i, l)}, \mathbf{x}^{(i)}\right) \quad z ( i , l ) = g ϕ ( ϵ ( i , l ) , x ( i ) ) 并且 ϵ ( l ) ∼ p ( ϵ ) \quad \boldsymbol{\epsilon}^{(l)} \sim p(\boldsymbol{\epsilon}) ϵ ( l ) ∼ p ( ϵ ) 。
给定来自数据集 X \mathbf{X} X 和 N N N 个数据点的多个数据点,我们可以基于小批量构建完整数据集的边际似然下限的估计器:
L ( θ , ϕ ; X ) ≃ L ~ M ( θ , ϕ ; X M ) = N M ∑ i = 1 M L ~ ( θ , ϕ ; x ( i ) ) \mathcal{L}(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{X}) \simeq \widetilde{\mathcal{L}}^M\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{X}^M\right)=\frac{N}{M} \sum_{i=1}^M \widetilde{\mathcal{L}}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right)
L ( θ , ϕ ; X ) ≃ L M ( θ , ϕ ; X M ) = M N i = 1 ∑ M L ( θ , ϕ ; x ( i ) )
其中小批量 X M = { x ( i ) } i = 1 M \mathbf{X}^M=\left\{\mathbf{x}^{(i)}\right\}_{i=1}^M X M = { x ( i ) } i = 1 M 是从具有 N N N 个数据点的完整数据集 X \mathbf{X} X 中随机抽取的 M M M 个数据点。在实验中,我们发现每个数据点的样本数量 L L L 可以设置为 1 1 1 ,只要小批量的大小 M M M 足够大,例如 M = 100 M=100 M = 100 。导数 ∇ θ , ϕ L ~ ( θ ; X M ) \nabla_{\boldsymbol{\theta}, \boldsymbol{\phi}} \widetilde{\mathcal{L}}\left(\boldsymbol{\theta} ; \mathbf{X}^M\right) ∇ θ , ϕ L ( θ ; X M ) 可以可以采用,并且得到的梯度可以与随机优化方法结合使用,例如 SGD 或 Adagrad [D[DHS10]。有关计算随机梯度的基本方法,请参见算法 1。
查看等式给出的目标函数时,与自动编码器的联系变得清晰。 (7)。第一项是(近似后验与先验的 KL 散度)充当正则化项,而第二项是预期的负重构误差。选择函数 g ϕ ( g_\phi( g ϕ ( . 以便将数据点 x ( i ) \mathbf{x}^{(i)} x ( i ) 和随机噪声向量 ϵ ( l ) \boldsymbol{\epsilon}^{(l)} ϵ ( l ) 映射到该数据点的近似后验样本:z ( i , l ) = g ϕ ( ϵ ( l ) , x ( i ) ) \mathbf{z}^{(i, l)}=g_{\boldsymbol{\phi}}\left(\boldsymbol{\epsilon}^{(l)}, \mathbf{x}^{(i)}\right) z ( i , l ) = g ϕ ( ϵ ( l ) , x ( i ) ) 其中 z ( i , l ) ∼ q ϕ ( z m i d x ( i ) ) \mathbf{z}^{(i, l)} \sim q_{\boldsymbol{\phi}}\left(\mathbf{z} \ mid \mathbf{x}^{(i)}\right) z ( i , l ) ∼ q ϕ ( z mi d x ( i ) ) . 随后,样本 z ( i , l ) \mathbf{z}^{(i, l)} z ( i , l ) 被输入到函数 log p t h e t a ( x ( i ) ∣ z ( i , l ) ) \log p_{\boldsymbol{\ theta}}\left(\mathbf{x}^{(i)} \mid \mathbf{z}^{(i, l)}\right) log p theta ( x ( i ) ∣ z ( i , l ) ) ,等于数据点的概率密度(或质量) m a t h b f x ( i ) \ mathbf{x}^{(i)} ma t hb f x ( i ) 在生成模型下,给定 z ( i , l ) \mathbf{z}^{(i, l)} z ( i , l ) 。这个术语是自动编码器用语中的负重构错误。
2.4 重参数化技巧
为了解决我们的问题,我们调用了另一种方法来从 q ϕ ( z ∣ x ) q_\phi(\mathbf{z} \mid \mathbf{x}) q ϕ ( z ∣ x ) 生成样本。基本的参数化技巧非常简单。令 z \mathbf{z} z 为连续随机变量,z ∼ q ϕ ( z ∣ x ) \mathbf{z} \sim q_\phi(\mathbf{z} \mid \mathbf{x}) z ∼ q ϕ ( z ∣ x ) 为某个条件分布。然后通常可以将随机变量 z \mathbf{z} z 表示为确定性变量 z = g ϕ ( ϵ , x ) \mathbf{z}=g_\phi(\boldsymbol{\epsilon}, \mathbf{x}) z = g ϕ ( ϵ , x ) ,其中 e p s i l o n \ epsilon e p s i l o n 是一个具有独立边际 p ( ϵ ) p(\boldsymbol{\epsilon}) p ( ϵ ) 的辅助变量,g ϕ ( g_\phi( g ϕ ( .) 是一些由 ϕ ) 是一些由 \phi ) 是一些由 ϕ 参数化的向量值函数。
这种重新参数化对我们的情况很有用,因为它可以用于重写期望 w.r.t ϕ \phi ϕ 。证明如下。给定确定性映射 \mathbf{z}=g_{\ballsymbol{\phi}}(\ballsymbol{\epsilon}, \mathbf{x}) 我们知道 q_{\ballsymbol{\phi}}(\ mathbf{z} \mid \mathbf{x}) \prod_i d z_i= p(\ballsymbol{\epsilon}) \prod_i d \epsilon_i 。因此 \int q_{\boldsymbol{\phi}}(\mathbf{z}\mid \mathbf{x}) f(\mathbf{z}) d \mathbf{z}=\int p(\boldsymbol{\ epsilon}) f(\mathbf{z}) d \ballsymbol{\epsilon}=\int p(\ballsymbol{\epsilon}) f\left(g_{\ballsymbol{\phi}}(\ballsymbol{\epsilon} , \mathbf{x})\right) d \球符号{\epsilon} 。因此可以构造一个可微的估计量: \int q_\phi(\mathbf{z}\mid \mathbf{x}) f(\mathbf{z}) d \mathbf{z} \simeq\frac{1 }{L} \sum_{l=1}^L f\left(g_\phi\left(\mathbf{x}, \ball 符号{\epsilon}^{(l)}\right)\right) 其中$ \ballsymbol{\epsilon}^{(l)} \sim p(\ballsymbol{\epsilon})$.在第 2.3 节中,我们应用了这个技巧来获得变分下限的可微估计量。
以单变量高斯情况为例:设 z ∼ p ( z ∣ x ) = N ( μ , σ 2 ) z \sim p(z\mid x)=\mathcal{N}\left(\mu, \sigma^2\right) z ∼ p ( z ∣ x ) = N ( μ , σ 2 ) 。在这种情况下,有效的重新参数化是 z = μ + σ ϵ z=\mu+\sigma\epsilon z = μ + σ ϵ ,其中 ϵ \epsilon ϵ 是辅助噪声变量 ϵ ∼ N ( 0.1 ) \epsilon\sim\mathcal{N}(0.1) ϵ ∼ N ( 0.1 ) 。因此,E N ( z ; μ , σ 2 ) [ f ( z ) ] = E N ( ϵ ; 0.1 ) [ f ( μ + σ ϵ ) ] ≃ 1 L ∑ l = 1 L f ( μ + σ ϵ ( l ) ) \mathbb{E}_{\mathcal{N}\left(z; \mu,\sigma^2\right)}[f(z)]=\mathbb{E}_{\mathcal{N} (\epsilon ; 0.1)}[f(\mu+\sigma \epsilon)] \simeq \frac{1}{L} \sum_{l=1}^L f\left(\mu+\sigma \epsilon^ {( l)}\right) E N ( z ; μ , σ 2 ) [ f ( z )] = E N ( ϵ ; 0.1 ) [ f ( μ + σ ϵ )] ≃ L 1 ∑ l = 1 L f ( μ + σ ϵ ( l ) ) 其中 ϵ ( l ) ∼ N ( 0.1 ) \epsilon^{(l)}\sim\mathcal{N}(0.1) ϵ ( l ) ∼ N ( 0.1 )
对于哪个q ϕ ( z ∣ x ) q_\phi(\mathbf{z} \mid \mathbf{x}) q ϕ ( z ∣ x ) ,我们可以选择这样一个可微变换g ϕ ( g_\phi( g ϕ ( .) 和辅助变量 )和辅助变量 ) 和辅助变量 ϵ ∼ p ( ϵ ) \epsilon \sim p(\boldsymbol {\epsilon}) ϵ ∼ p ( ϵ ) ?三种基本方法是:
反向易处理CDF。在这种情况下,设 ϵ ∼ U ( 0 , I ) \epsilon\sim \mathcal{U}(\mathbf{0}, \mathbf{I}) ϵ ∼ U ( 0 , I ) ,并设 $g_\phi(\boldsymbol{\epsilon}, \mathbf{x}) $ 是 q ϕ ( z ∣ x ) q_\phi(\mathbf{z}\mid\mathbf{x}) q ϕ ( z ∣ x ) 的逆 C D F \mathrm{CDF} CDF 。示例:指数、Cauchy、Logistic、Rayleigh、Pareto、Weibull、倒数、Gompertz、Gumbel 和 Erlang 分布。
类似于高斯示例,对于任何“位置尺度”分布族,我们可以选择标准分布(位置 = 0 =0 = 0 ,尺度 = 1 =1 = 1 )作为辅助变量 ϵ \boldsymbol{\epsilon} ϵ , 并令 g ( ) = g()= g ( ) = .位置 + + + 比例 ⋅ ϵ \cdot \boldsymbol{\epsilon} ⋅ ϵ 。示例:拉普拉斯分布、椭圆分布、学生 t 分布、逻辑分布、均匀分布、三角分布和高斯分布。
3、组合:通常可以将随机变量表示为辅助变量的不同变换。示例:Log-Normal(正态分布变量的取幂)、Gamma(指数分布变量的总和)、Dirichlet(Gamma 变量的加权和)、Beta、卡方和 F 分布。
当所有三种方法都失败时,存在对逆 CDF 的良好近似,需要计算的时间复杂度与 PDF 相当(参见例如 [Dev86] 中的某些方法)。
3 示例:变分自动编码器
在本节中,我们将给出一个示例,其中我们将神经网络用于概率编码器 q ϕ ( z ∣ x ) q_{\boldsymbol{\phi}}(\mathbf{z} \mid \mathbf{x}) q ϕ ( z ∣ x ) (后验的近似生成模型 p θ ( x , z ) ) \left.p_{\boldsymbol{\theta}}(\mathbf{x}, \mathbf{z})\right) p θ ( x , z ) ) 和参数 ϕ \phi ϕ 和 θ \theta θ 联合优化AEVB算法。
让潜变量的先验为中心各向同性多元高斯 p θ ( z ) = p_{\boldsymbol{\theta}}(\mathbf{z})= p θ ( z ) = N ( z ; 0 , I ) \mathcal{N}(\mathbf{z} ; \mathbf{0} , \mathbf{I}) N ( z ; 0 , I ) 。请注意,在这种情况下,先验缺少参数。我们让 p θ ( x ∣ z ) p_{\boldsymbol{\theta}}(\mathbf{x} \mid \mathbf{z}) p θ ( x ∣ z ) 是一个多元高斯(在实值数据的情况下)或伯努利(在二进制数据的情况下),其分布参数是使用 MLP 从 z \mathbf{z} z 计算出来的(具有单个隐藏层的全连接神经网络,参见附录 C]。注意真正的后验 p θ ( z ∣ x ) p_{\boldsymbol{\theta}}(\mathbf {z} \mid \mathbf{x}) p θ ( z ∣ x ) 在这种情况下是难以处理的。虽然 q ϕ ( z ∣ x ) q_\phi(\mathbf{z} \mid \mathbf{x}) q ϕ ( z ∣ x ) 的形式有很大的自由度,但我们假设真实的(但难以处理的)后验采用近似高斯形式,具有近似对角协方差。在这种情况下,我们可以让变分近似后验是具有对角协方差结构的多元高斯。
log q ϕ ( z ∣ x ( i ) ) = log N ( z ; μ ( i ) , σ 2 ( i ) I ) \log q_\phi\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right)=\log \mathcal{N}\left(\mathbf{z} ; \boldsymbol{\mu}^{(i)}, \boldsymbol{\sigma}^{2(i)} \mathbf{I}\right)
log q ϕ ( z ∣ x ( i ) ) = log N ( z ; μ ( i ) , σ 2 ( i ) I )
其中平均值和标准差近似后验的 μ ( i ) \boldsymbol{\mu}^{(i)} μ ( i ) 和 σ ( i ) \sigma^{(i)} σ ( i ) 是编码 MLP 的输出,即数据点 x 的 非线性函数 ( i ) \mathrm{x}^ 的非线性函数{(i)} x 的 非线性函数 ( i ) 和变分参数 ϕ \phi ϕ (见附录 C)。
如第 2.4 节所述,我们从后验 z ( i , l ) ∼ q ϕ ( z ∣ x ( i ) ) \mathbf{z}^{(i, l)} \sim q_\phi\left(\mathbf{z} \mid \mathbf{x}^{(i) }\right) z ( i , l ) ∼ q ϕ ( z ∣ x ( i ) ) 使用 z ( i , l ) = \mathbf{z}^{(i, l)}= z ( i , l ) = g ϕ ( x ( i ) , ϵ ( l ) ) = μ ( i ) + σ ( i ) ⊙ ϵ ( l ) g_{\boldsymbol{\phi}}\left(\mathbf{x}^{(i)}, \boldsymbol{ \epsilon}^{(l)}\right)=\boldsymbol{\mu}^{(i)}+\boldsymbol{\sigma}^{(i)} \odot \boldsymbol{\epsilon}^{(l )} g ϕ ( x ( i ) , ϵ ( l ) ) = μ ( i ) + σ ( i ) ⊙ ϵ ( l ) 其中 ϵ ( l ) ∼ N ( 0 , I ) \boldsymbol{\epsilon}^{(l)} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}) ϵ ( l ) ∼ N ( 0 , I ) 。使用 ⊙ \odot ⊙ ,我们表示一个元素乘积。在这个模型中,p θ ( z ) p_{\boldsymbol{\theta}}(\mathbf{z}) p θ ( z ) (先验)和 q ϕ ( z ∣ x ) q_\phi(\mathbf{z} \mid \mathbf{x}) q ϕ ( z ∣ x ) 都是高斯的;在这种情况下,我们可以使用 eq 的估计器。 (7) 无需估计即可计算和区分 KL 散度(参见附录 B B B 。此模型和数据点 x ( i ) \mathbf{x}^{(i)} x ( i ) 的结果估计量为:
L ( θ , ϕ ; x ( i ) ) ≃ 1 2 ∑ j = 1 J ( 1 + log ( ( σ j ( i ) ) 2 ) − ( μ j ( i ) ) 2 − ( σ j ( i ) ) 2 ) + 1 L ∑ l = 1 L log p θ ( x ( i ) ∣ z ( i , l ) ) \mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right) \simeq \frac{1}{2} \sum_{j=1}^J\left(1+\log \left(\left(\sigma_j^{(i)}\right)^2\right)-\left(\mu_j^{(i)}\right)^2-\left(\sigma_j^{(i)}\right)^2\right)+\frac{1}{L} \sum_{l=1}^L \log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(i)} \mid \mathbf{z}^{(i, l)}\right)
L ( θ , ϕ ; x ( i ) ) ≃ 2 1 j = 1 ∑ J ( 1 + log ( ( σ j ( i ) ) 2 ) − ( μ j ( i ) ) 2 − ( σ j ( i ) ) 2 ) + L 1 l = 1 ∑ L log p θ ( x ( i ) ∣ z ( i , l ) )
其中 z ( i , l ) = μ ( i ) + σ ( i ) ⊙ ϵ ( l ) \mathrm{z}^{(i,l)}=\mu^{(i)}+\sigma^{(i)}\odot\epsilon^{(l)}\quad z ( i , l ) = μ ( i ) + σ ( i ) ⊙ ϵ ( l ) 和 ϵ ( l ) ∼ N ( 0 , I ) \quad \epsilon^{(l)}\sim\mathcal{N}(0, \mathbf{I}) ϵ ( l ) ∼ N ( 0 , I )
如上所述和附录 C \mathrm{C} C 解码项 \log p_{\ball symbol{\theta}}\left(\mathbf{x}^{(i)}\mid\mathbf{z} ^ {(i,l)}\right) 是伯努利或高斯 MLP,具体取决于我们建模的数据类型。
4 相关工作
就我们所知,唤醒睡眠算法 [HDFN95] 是文献中唯一适用于同一类连续潜变量模型的其他在线学习方法。与我们的方法一样,wake-sleep 算法采用近似真实后验的识别模型。唤醒-睡眠算法的一个缺点是它需要同时优化两个目标函数,这两个目标函数一起不对应于边际似然的(一个界限)的优化。唤醒睡眠的一个优点是它也适用于具有离散潜变量的模型。 Wake-Sleep 与每个数据点的 AEVB 具有相同的计算复杂性。
随机变分推断 [HBWP13] 最近受到越来越多的关注。最近,[BJP12] 引入了一种控制变量方案,以减少 2.1 节中讨论的朴素梯度估计器的高方差,并应用于后验的指数族近似。在 [RGB13] 中,引入了一些通用方法,即控制变量方案,以减少原始梯度估计器的方差。在 [SK13] 中,与本文类似的重新参数化被用于随机变分推理算法的有效版本中,用于学习指数族近似分布的自然参数。
AEVB 算法揭示了有向概率模型(用变分目标训练)和自动编码器之间的联系。线性自动编码器和某类生成线性高斯模型之间的联系早已为人所知。在 [Row98] 中表明,PCA 对应于线性高斯模型的特殊情况的最大似然 (ML) 解,其中先验 p(z) = N(0,I) 和条件分布 p(x |z) = N(x; Wz,I),特别是无限小的情况
在最近关于自动编码器 [VLL+10] 的相关工作中,表明非正则化自动编码器的训练标准对应于输入 X 和潜在之间的互信息的下限(参见 infomax 原则 [Lin89])的最大化表示 Z. 互信息的最大化(w.r.t. 参数)相当于最大化条件熵,其下限为自动编码模型 [VLL+10] 下数据的预期对数似然,即负重构误差.然而,众所周知,这种重建标准本身不足以学习有用的表示[BCV13]。已经提出了正则化技术来使自编码器学习有用的表示,例如去噪、收缩和稀疏自编码器变体 [BCV13]。 SGVB 目标包含一个由变分界规定的正则化项(例如 eq. (10)),缺乏学习有用表示所需的通常令人讨厌的正则化超参数。相关的还有编码器-解码器架构,例如预测稀疏分解 (PSD) [KRL08],我们从中汲取了一些灵感。同样相关的是最近引入的生成随机网络 [BTL13],其中嘈杂的自动编码器学习从数据分布中采样的马尔可夫链的转换算子。在 [SL10] 中,识别模型被用于使用深度玻尔兹曼机器进行有效学习。这些方法要么针对非归一化模型(即像玻尔兹曼机这样的无向模型),要么仅限于稀疏编码模型,这与我们提出的用于学习一类有向概率模型的通用算法相反。
最近提出的 DARN 方法 [GMW13] 也使用自动编码结构学习有向概率模型,但是他们的方法适用于二进制潜在变量。甚至最近,[RMW14] 还使用我们在本文中描述的重新参数化技巧在自动编码器、定向概率模型和随机变分推理之间建立了联系。他们的工作是独立于我们开发的,并为 AEVB 提供了额外的视角。
6 结论
我们引入了一种新的变分下界估计器,随机梯度 VB (SGVB),用于使用连续潜在变量进行有效的近似推断。所提出的估计器可以使用标准随机梯度方法直接区分和优化。对于 i.i.d.数据集和每个数据点的连续潜在变量 我们引入了一种高效的推理和学习算法,即自动编码 VB (AEVB),它使用 SGVB 估计器学习近似推理模型。理论优势体现在实验结果中。