【摘 要】 如果存在具有棘手后验的连续型隐变量和大数据集,如何在有向概率图模型中进行有效的推断和学习? 本文引入了一种随机变分推断和学习算法。该算法能够在一些轻度差异化(甚至棘手)的情况下工作,并且能够扩展到大型数据集。本文的贡献有两个:首先,证明了重参数化技巧可以得到对变分下界的无偏估计,并且可用于随机梯度的优化。其次,对于有连续型隐变量的独立同分布数据集,我们利用重参数化的变分下界估计,成功地为棘手后验拟合了近似的推断模型(注:利用摊销推断思想,将传统棘手的局部隐变量推断问题转变成了神经网络预测问题)。理论优势最终反映在了实验结果中。

【原 文】 Kingma, D.P. and Welling, M. (2014) ‘Auto-Encoding Variational Bayes’. arXiv. Available at: http://arxiv.org/abs/1312.6114 (Accessed: 14 October 2022).

1 介绍

当模型中存在具有棘手后验的连续型隐变量和/或参数时,我们如何使用有向概率图模型进行近似推断和学习呢?

在实践中,变分推断可以采用优化方法对棘手的后验做近似推断。例如,平均场变分推断方法利用指数族分布来构建一个近似的变分下界,但通常此类方法中需要推导出(变分下界相对于近似后验的)期望的解析形式,而着很难推广到更一般性的情况中。

关于变分推断的知识

参阅 初始变分推断

贝叶斯方法需要对分布作出推断,由于精确推断通常非常棘手,因此近似推断方法得到了广泛应用。变分推断方法作为其中一种近似推断方法,其核心理念是:
(1)利用最优化方法,找到一个能够逼近真实分布的近似分布(也被称为变分分布,要求可参数化);
(2)优化目标:最小化近似分布与真实分布之间的 KL\mathbb{KL} 散度,由于 KL\mathbb{KL} 散度的计算非常棘手(需要计算边缘似然),因此通常将目标改为最大化变分分布的上界,或最小化变分下界(即最小化负的变分上界,ELBO)。

该方法最关键的步骤是构造变分分布的参数化形式,而平均场方法采用指数族分布来建立变分分布的参数化形式,是使用较为广泛的一类变分推断方法。

本文贡献:

(1) 一种变分下界的无偏估计方法 – 重参数化。在本文中,我们展示了一种被称为 重参数化 的变分下界估计方法,能够得到对变分下界的简单可微无偏估计。几乎所有含(棘手后验)连续型隐变量和/或参数的概率图模型,在实施近似推断时都可以采用该估计方法,并且该无偏估计不影响利用随机梯度方法进行优化。

(2) 一套针对连续型局部隐变量的自编码变分贝叶斯算法。对于每个数据点都存在连续隐变量的独立同分布数据集,我们进一步提出了自编码变分贝叶斯(Auto-Encoding VB, AEVB)算法。该算法利用前述的 “重参数化” 估计器优化一个识别模型,使我们能够通过对简单祖先变量(如简单的高斯噪声)进行采样,就能执行对隐变量的有效近似后验推断;进而能够对生成模型的参数进行有效地学习。学得的近似后验推断模型不仅可用于识别,还可以用于去噪、表示、可视化等许多其他任务。当采用神经网络实现该识别模型时,我们称之为 变分自编码器

深入理解

此处作者原文比较精炼,有些含义需要精度论文后才能理解:

(1)作者认为其最突出的贡献首先在于:通过重参数化技巧,给出了连续性隐变量后验变分下界的无偏估计,使得隐变量的后验推断(尤其是棘手后验)变得更容易了;

(2)作者原文关注点并非在生成模型,而是以生成模型为应用背景,介绍其变分下界的无偏估计方法;之所以选择连续性局部隐变量这种生成模型的场景,主要是因为传统推断方法需要对每个数据点对应的局部隐变量都需要做推断,计算非常棘手,非常适合于验证其提出的高效无偏估计方法;

(3)作者认为第二大贡献在于:

2 方法

注意:本节中的策略可用于推导具有连续型(局部)隐变量的各种有向图模型的变分下界无偏估计。

在这里,我们将场景仅局限于:每个数据点都具有连续型隐变量的独立同分布数据集。我们的目标是希望:对(全局)参数执行最大似然或最大后验的点估计,并对隐变量进行变分推断。当然,本节的方法也可扩展到需要对全局参数执行变分推断的情况(即将部分全局参数视为随机变量),相应算法已经体现在附录中,但我们并未做相应的实验。此外,我们的方法可以应用于在线的、非静态的数据集(如:流数据),但为了简单起见,本文中我们假设一个固定的数据集。

备注

(1)变分自编码器将模型参数视为确定而未知的值,将隐变量视为具有某种概率分布的连续型随机变量。因此,前者采用最大似然或最大后验的点估计,而后者采用变分贝叶斯推断方法。

(2)随机变量的近似推断方法主要有 MCMC 和变分推断,显然变分推断方法更适用于神经网络。

(3)本文的重点是局部隐变量的变分推断,因为它的推断很棘手。作者基于摊销推断思想(将局部隐变量的推断问题转变成了预测问题),并引入重参数化技巧(利用变量变换,将原本关于隐变量变分分布下界的期望计算问题,转换为了在简单分布上蒙特卡洛计算问题),使得隐变量的变分推断变得更为容易,并且可以很容易和神经网络等结合。

使用场景的概率图模型

图 1:正在考虑的有向图模型的类型。实线表示生成模型 ,虚线表示对棘手后验的变分近似。本文借鉴摊销推断思想,将局部隐变量 z\mathbf{z} 的逐点变分推断问题,转换成了利用参数化模型(采用全局变分参数 ϕ\boldsymbol{\phi})进行预测的问题。其中识别模型的全局变分参数 ϕ\boldsymbol{\phi} 与生成模型的全局参数 θ\boldsymbol{\theta} 可以一起学习。 注意:图中的 θ\boldsymbol{\theta} 有指向隐变量 z\mathbf{z} 的箭头,表示 θ\boldsymbol{\theta} 中可能包含关于隐变量分布的全局参数。所以文中的真实后验被表示成了 pθ(zx)p_{\boldsymbol{\theta}}(\mathbf{z} \mid \mathbf{x}) ,这一点对于初读该文的读者来说很容易造成混乱,将 pθ(zx)p_{\boldsymbol{\theta}}(\mathbf{z} \mid \mathbf{x}) 原位替换为 p(zx)p^*(\mathbf{z} \mid \mathbf{x}) 可能更容易理解。

2.1 问题场景

让我们考虑数据集 X={x(i)}i=1N\mathbf{X} =\{\mathbf{x}^{(i)}\}^N_{i=1}, 该数据集由采样在连续或离散随机变量 x\mathbf{x}NN 个独立同分布样本点构成。我们假设数据由某个随机过程生成,其中涉及一个不可观测的连续型随机变量(即隐变量) z\mathbf{z}

该样本的生成过程包括两个步 骤:
(1)从某些先验分布 pθ(z)p_{\boldsymbol{\theta}^*}(\mathbf{z}) 生成值 zi\mathbf{z}^{i};
(2)从某些条件分布 pθ(xz)p_{\boldsymbol{\theta}^*}(\mathbf{x} \mid \mathbf{z}) 中生成值 xi\mathbf{x}^{i}

这里,我们假设先验 pθ(z)p_{\boldsymbol{\theta}^*}(\mathbf{z}) 和似然 pθ(xz)p_{\boldsymbol{\theta}^*}(\mathbf{x} \mid \mathbf{z}) 分别来自于可参数化的分布族 pθ(z)p_{\boldsymbol{\theta}}(\mathbf{z})pθ(xz)p_{\boldsymbol{\theta}}(\mathbf{x} \mid \mathbf{z}),并且其密度相对于 θ\boldsymbol{\theta}z\mathbf{z} 处处可微。

不幸的是,该过程中的很多地方是无法观测到的,我们既不知道隐变量 zi\mathbf{z}^{i} 的值,也不知道参数 θ\boldsymbol{\theta}^* 的值。 平均场等传统变分推断方法通常会对边缘概率或后验概率作出某种结构化、可参数化的假设,但对于此类问题则显得捉襟见肘,因为为每一个数据点推断一个隐变量的后验并非一件易事。与此相反,本文不会对边缘概率或后验概率做出简化假设,我们感兴趣的是一种能够在以下情况下仍然有效工作的通用算法:

  • 计算难以处理
    • 边缘似然 pθ(x)p_{\boldsymbol{\theta}}(\mathbf{x}) 的积分运算难以处理,并进而导致边缘似然及其微分无法计算;
    • 后验密度 pθ(zx)p_{\boldsymbol{\theta}}(\mathbf{z} \mid \mathbf{x}) 难以处理(导致 EM 算法不可用);
    • 采用平均场方法时的积分难以处理等。
    • 上述难以处理的情况非常普遍,经常出现在具有中等复杂度似然函数 pθ(xz)p_{\boldsymbol{\theta}}(\mathbf{x} \mid \mathbf{z}) 的情况中,典型如具有非线性隐层的神经网络。
  • 大型数据集
    • 数据量太大,批量优化成本太高;
    • 希望使用小批量甚至单个数据点进行参数更新。
    • 基于采样的解决方案太慢,并且在每次迭代中需要遍历所有数据点。

我们对上述场景中的三个任务感兴趣,并提出了解决方案:

  • 全局生成参数的估计
    • 对全局的生成参数 θ\boldsymbol{\theta} 进行有效的点估计( ML 或 MAP )。在生成任务中,生成参数本身是我们感兴趣的。例如,当分析一些自然过程时,生成参数允许我们模拟潜在的随机过程并生成类似于真实数据的人工数据。
  • 逐数据点的隐变量推断
    • 在给定参数 θ\boldsymbol{\theta} 和观测值 x\mathbf{x} 时,我们希望能够得到对隐变量 z\mathbf{z} 的有效近似推断,这对于编码或数据表示等任务非常有用。
  • 数据分布的估计
    • 对变量 x\mathbf{x} 的有效近似推断,可以帮助我们了解数据的真实分布。该推断结果进而允许我们执行各种需要知道 x\mathbf{x} 的后续推断任务。例如,计算机视觉中常见的图像去噪、修复、超分辨率等应用,真是在掌握了近似数据分布的情况下实现的。

直接在数据分布上采样是否同样可以生成数据呢?生成的数据会什么样呢?其与通过生成过程得到的样本有何区别呢?

为了解决上述问题,我们引入了一个 识别模型 qϕ(zx)q_{\boldsymbol{\phi}}(\mathbf{z \mid x}), 用于对棘手的真实后验 p(zx)p^*(\mathbf{z \mid x}) 作出近似推断。与平均场变分推断方法相比,本文方法不需要对目标分布作出因子化假设,并且该识别模型的参数 ϕ\boldsymbol{\phi} 也不需要根据某些封闭形式的期望公式来计算。更进一步地,我们将介绍一种联合学习识别模型参数 ϕ\boldsymbol{\phi} 与生成模型参数 θ\boldsymbol{\theta} 的新方法。

从编码理论角度来看,不可观测变量 z\mathbf{z} 具有作为潜在表示或编码的价值。因此,在本文中我们也将识别模型称为 概率编码器,因为对于一个给定的数据点 x\boldsymbol{x},其会产生一个在编码 z\boldsymbol{z} 的可能值上的概率分布(如高斯)。如果进一步的话,我们可以从该分布中采样,并通过一个生成模型生成新的数据点 x\boldsymbol{x},这个生成过程被称为 概率解码器,因为给定编码 z\boldsymbol{z},它也会在 x\boldsymbol{x} 的可能值上产生一个概率分布。

2.2 变分界

在最大似然估计中,数据 x\mathbf{x} 的对数似然由单个数据点的对数似然之和组成,logpθ(x(1),,x(N))=i=1Nlogpθ(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),其中每一个数据点的对数似然可以表示为重写为:

logpθ(x(i))=DKL(qϕ(zx(i))pθ(zx(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)

其中右侧第一项是近似分布到真实后验分布的 KL\mathbb{KL} 散度,由于 KL\mathbb{KL} 散度永远大于等于 00,公式中右侧第二项 L(θ,ϕ;x(i))\mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathrm{x}^{(i)}\right) 被称为数据点 ii 的对数似然的变分下界(ELBO),记为:

logpθ(x(i))L(θ,ϕ;x(i))=Eqϕ(zx)[logqϕ(zx)+logpθ(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]

也可写为:

L(θ,ϕ;x(i))=DKL(qϕ(zx(i))pθ(z))+Eqϕ(zx(i))[logpθ(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))\mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right) 关于变分参数 ϕ\boldsymbol{\phi} 和生成参数 θ\boldsymbol{\theta} 的微分来实现迭代优化。但此时该下界是一个期望统计量,因此其关于 ϕ\boldsymbol{\phi} 的梯度计算也需要使用蒙特卡洛梯度估计器: ϕEqϕ(z)[f(z)]=Eqϕ(z)[f(z)qϕ(z)logqϕ(z)]1Ll=1Lf(z)qϕ(z(l))logqϕ(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) ,其中 z(l)qϕ(zx(i))\mathbf{z}^{(l)} \sim q_\phi\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right)

蒙特卡洛梯度估计器存在非常高的方差(参见 [BJP12]),对于我们的目的来说不太合适。

2.3 随机梯度变分推断和自编码变分贝叶斯算法

在本节中,我们将介绍变分下界及其导数(相对于参数)的实用估计方法。我们假设近似后验的形式为 qϕ(zx)q_\phi(\mathbf{z} \mid \mathbf{x}),但该技术也可应用于 qϕ(z)q_\phi(\mathbf{z} )(即我们也不以 x\mathbf{x} 为条件)。用于推断参数后验的完全变分贝叶斯方法参见附录。

第 2.4 节 中概述的某些温和条件下,对于近似后验 qϕ(zx)q_\phi(\mathbf{z} \mid \mathbf{x}),我们可以使用噪声变量 ϵ\boldsymbol{\epsilon} 的可微分变换 gϕ(ϵ,x)g_{\boldsymbol{\phi}}(\boldsymbol{\epsilon},\mathbf{ x}) 来重参数化随机变量 z~qϕ(zx)\widetilde{\mathbf{z}} \sim q_{\boldsymbol{\phi}}(\mathbf{z} \mid \mathbf{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})

选择这样一个适当的分布 p(ϵ)p(\boldsymbol{\epsilon}) 和函数 gϕ(ϵ,x)g_\phi(\boldsymbol{\epsilon}, \mathbf{x}) 的一般策略,请参见 第 2.4 节

我们现在可以对函数 f(z)f(\mathbf{z}) 相对于 qϕ(zx)q_\phi(\mathbf{z}\mid\mathbf{x}) 的期望形成如下蒙特卡罗估计:

Eqϕ(zx(i))[f(z)]=Ep(ϵ)[f(gϕ(ϵ,x(i)))]1Ll=1Lf(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})

我们将此技术应用于变分下界( 公式 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))=1Ll=1Llogpθ(x(i),z(i,l))logqϕ(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}

通常,公式 3 中的 KL\mathbb{KL} 散度 DKL(qϕ(zx(i))pθ(z))D_{K L}\left(q_{\boldsymbol{\phi}}\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right) \| p_ {\boldsymbol{\theta}}(\mathbf{z})\right) 可以通过解析方式做积分,这样只有重构误差的期望 Eqϕ(zx(i))[logpθ(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] 需要通过采样来估计。KL 散度项可以解释为正则化 ϕ\boldsymbol{\phi},鼓励近似后验接近先验 pθ(z)p_{\boldsymbol{\theta}}(\mathbf{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))=DKL(qϕ(zx(i))pθ(z))+1Ll=1L(logpθ(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}

其中 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 并且 ϵ(l)p(ϵ)\quad \boldsymbol{\epsilon}^{(l)} \sim p(\boldsymbol{\epsilon})

给定来自数据集 X\mathbf{X}NN 个数据点的多个数据点,我们可以基于小批量构建完整数据集的边际似然下限的估计器:

L(θ,ϕ;X)L~M(θ,ϕ;XM)=NMi=1ML~(θ,ϕ;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)

其中小批量 XM={x(i)}i=1M\mathbf{X}^M=\left\{\mathbf{x}^{(i)}\right\}_{i=1}^M 是从具有 NN 个数据点的完整数据集 X\mathbf{X} 中随机抽取的 MM 个数据点。在实验中,我们发现每个数据点的样本数量 LL 可以设置为 11,只要小批量的大小 MM 足够大,例如 M=100M=100。导数 θ,ϕL~(θ;XM)\nabla_{\boldsymbol{\theta}, \boldsymbol{\phi}} \widetilde{\mathcal{L}}\left(\boldsymbol{\theta} ; \mathbf{X}^M\right) 可以可以采用,并且得到的梯度可以与随机优化方法结合使用,例如 SGD 或 Adagrad [D[DHS10]。有关计算随机梯度的基本方法,请参见算法 1。

查看等式给出的目标函数时,与自动编码器的联系变得清晰。 (7)。第一项是(近似后验与先验的 KL\mathbb{KL} 散度)充当正则化项,而第二项是预期的负重构误差。选择函数 gϕ(g_\phi(. 以便将数据点 x(i)\mathbf{x}^{(i)} 和随机噪声向量 ϵ(l)\boldsymbol{\epsilon}^{(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)qϕ(z midx(i))\mathbf{z}^{(i, l)} \sim q_{\boldsymbol{\phi}}\left(\mathbf{z} \ mid \mathbf{x}^{(i)}\right). 随后,样本 z(i,l)\mathbf{z}^{(i, l)} 被输入到函数 logp theta(x(i)z(i,l))\log p_{\boldsymbol{\ theta}}\left(\mathbf{x}^{(i)} \mid \mathbf{z}^{(i, l)}\right),等于数据点的概率密度(或质量) mathbfx(i)\ mathbf{x}^{(i)} 在生成模型下,给定 z(i,l)\mathbf{z}^{(i, l)}。这个术语是自动编码器用语中的负重构错误。

2.4 重参数化技巧

为了解决我们的问题,我们调用了另一种方法来从 qϕ(zx)q_\phi(\mathbf{z} \mid \mathbf{x}) 生成样本。基本的参数化技巧非常简单。令 z\mathbf{z} 为连续随机变量,zqϕ(zx)\mathbf{z} \sim q_\phi(\mathbf{z} \mid \mathbf{x}) 为某个条件分布。然后通常可以将随机变量 z\mathbf{z} 表示为确定性变量 z=gϕ(ϵ,x)\mathbf{z}=g_\phi(\boldsymbol{\epsilon}, \mathbf{x}),其中  epsilon\ epsilon 是一个具有独立边际 p(ϵ)p(\boldsymbol{\epsilon}) 的辅助变量,gϕ(g_\phi(.)是一些由ϕ) 是一些由 \phi 参数化的向量值函数。

这种重新参数化对我们的情况很有用,因为它可以用于重写期望 w.r.t ϕ\boldsymbol{\phi}。证明如下。给定确定性映射 z=gϕ(ϵ,x)\mathbf{z}=g_{\boldsymbol{\phi}}(\boldsymbol{\epsilon}, \mathbf{x}),我们知道 qϕ(zx)idzi=q_{\boldsymbol{\phi}}(\mathbf{z} \mid \mathbf{x}) \prod_i d z_i= p(ϵ)idϵip(\boldsymbol{\epsilon}) \prod_i d \epsilon_i。因此 qϕ(zx)f(z)dz=p(ϵ)f(z)dϵ=p(ϵ)f(gϕ(ϵ,x))dϵ\int q_{\boldsymbol{\phi}}(\mathbf{z} \mid \mathbf{x}) f(\mathbf{z}) d \mathbf{z}=\int p(\boldsymbol{\epsilon}) f(\mathbf{z}) d \boldsymbol{\epsilon}=\int p(\boldsymbol{\epsilon}) f\left(g_{\boldsymbol{\phi}}(\boldsymbol{\epsilon} , \mathbf{x})\right) d \boldsymbol{\epsilon}。因此可以构造一个可微的估计量: qϕ(zx)f(z)dz1Ll=1Lf(gϕ(x,ϵ(l)))\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}, \boldsymbol{\epsilon}^{(l)}\right)\right) 其中ϵ(l)p(ϵ)\boldsymbol{\epsilon}^{(l)} \sim p(\boldsymbol{\epsilon})。在 第 2.3 节 中,我们应用了这个技巧来获得变分下限的可微估计量。

以单变量高斯情况为例:设 zp(zx)=N(μ,σ2)z \sim p(z\mid x)=\mathcal{N}\left(\mu, \sigma^2\right)。在这种情况下,有效的重新参数化是 z=μ+σϵz=\mu+\sigma\epsilon,其中 ϵ\epsilon 是辅助噪声变量 ϵN(0.1)\epsilon\sim\mathcal{N}(0.1)。因此,EN(z;μ,σ2)[f(z)]=EN(ϵ;0.1)[f(μ+σϵ)]1Ll=1Lf(μ+σϵ(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) 其中 ϵ(l)N(0.1)\epsilon^{(l)}\sim\mathcal{N}(0.1)

对于哪个qϕ(zx)q_\phi(\mathbf{z} \mid \mathbf{x}),我们可以选择这样一个可微变换gϕ(g_\phi(.)和辅助变量)和辅助变量ϵp(ϵ)\epsilon \sim p(\boldsymbol {\epsilon}) ?三种基本方法是:

  1. 反向易处理CDF。在这种情况下,设 ϵU(0,I)\epsilon\sim \mathcal{U}(\mathbf{0}, \mathbf{I}),并设 gϕ(ϵ,x)g_\phi(\boldsymbol{\epsilon}, \mathbf{x})qϕ(zx)q_\phi(\mathbf{z}\mid\mathbf{x}) 的逆 CDF\mathrm{CDF}。示例:指数、Cauchy、Logistic、Rayleigh、Pareto、Weibull、倒数、Gompertz、Gumbel 和 Erlang 分布。

  2. 类似于高斯示例,对于任何“位置尺度”分布族,我们可以选择标准分布(位置 =0=0,尺度 =1=1)作为辅助变量 ϵ\boldsymbol{\epsilon} , 并令 g()=g()=.位置 ++ 比例 ϵ\cdot \boldsymbol{\epsilon}。示例:拉普拉斯分布、椭圆分布、学生 t 分布、逻辑分布、均匀分布、三角分布和高斯分布。

3、组合:通常可以将随机变量表示为辅助变量的不同变换。示例:Log-Normal(正态分布变量的取幂)、Gamma(指数分布变量的总和)、Dirichlet(Gamma 变量的加权和)、Beta、卡方和 F 分布。

当所有三种方法都失败时,存在对逆 CDF 的良好近似,需要计算的时间复杂度与 PDF 相当(参见例如 [Dev86] 中的某些方法)。

3 示例:变分自动编码器

在本节中,我们将给出一个示例,其中我们将神经网络用于概率编码器 qϕ(zx)q_{\boldsymbol{\phi}}(\mathbf{z} \mid \mathbf{x})(后验的近似生成模型 pθ(x,z))\left.p_{\boldsymbol{\theta}}(\mathbf{x}, \mathbf{z})\right) 和参数 ϕ\boldsymbol{\phi}θ\boldsymbol{\theta} 联合优化AEVB算法。

让潜变量的先验为中心各向同性多元高斯 pθ(z)=p_{\boldsymbol{\theta}}(\mathbf{z})= N(z;0,I)\mathcal{N}(\mathbf{z} ; \mathbf{0} , \mathbf{I})。请注意,在这种情况下,先验缺少参数。我们让 pθ(xz)p_{\boldsymbol{\theta}}(\mathbf{x} \mid \mathbf{z}) 是一个多元高斯(在实值数据的情况下)或伯努利(在二进制数据的情况下),其分布参数是使用 MLP 从 z\mathbf{z} 计算出来的(具有单个隐藏层的全连接神经网络,参见附录 C]。注意真正的后验 pθ(zx)p_{\boldsymbol{\theta}}(\mathbf {z} \mid \mathbf{x}) 在这种情况下是难以处理的。虽然 qϕ(zx)q_\phi(\mathbf{z} \mid \mathbf{x}) 的形式有很大的自由度,但我们假设真实的(但难以处理的)后验采用近似高斯形式,具有近似对角协方差。在这种情况下,我们可以让变分近似后验是具有对角协方差结构的多元高斯。

logqϕ(zx(i))=logN(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)

其中平均值和标准差近似后验的 μ(i)\boldsymbol{\mu}^{(i)}σ(i)\sigma^{(i)} 是编码 MLP 的输出,即数据点 x非线性函数(i)\mathrm{x}^ 的非线性函数{(i)} 和变分参数 ϕ\boldsymbol{\phi}(见附录 C)。

如第 2.4 节所述,我们从后验 z(i,l)qϕ(zx(i))\mathbf{z}^{(i, l)} \sim q_\phi\left(\mathbf{z} \mid \mathbf{x}^{(i) }\right) 使用 z(i,l)=\mathbf{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 )} 其中 ϵ(l)N(0,I)\boldsymbol{\epsilon}^{(l)} \sim \mathcal{N}(\mathbf{0}, \mathbf{I})。使用 \odot,我们表示一个元素乘积。在这个模型中,pθ(z)p_{\boldsymbol{\theta}}(\mathbf{z})(先验)和 qϕ(zx)q_\phi(\mathbf{z} \mid \mathbf{x}) 都是高斯的;在这种情况下,我们可以使用 eq 的估计器。 (7) 无需估计即可计算和区分 KL\mathbb{KL} 散度(参见附录 BB。此模型和数据点 x(i)\mathbf{x}^{(i)} 的结果估计量为:

L(θ,ϕ;x(i))12j=1J(1+log((σj(i))2)(μj(i))2(σj(i))2)+1Ll=1Llogpθ(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)

其中 z(i,l)=μ(i)+σ(i)ϵ(l)\mathrm{z}^{(i,l)}=\mu^{(i)}+\sigma^{(i)}\odot\epsilon^{(l)}\quadϵ(l)N(0,I)\quad \epsilon^{(l)}\sim\mathcal{N}(0, \mathbf{I})

如上所述和附录 C\mathrm{C} 解码项 logpθ(x(i)z(i,l))\log p_{\boldsymbol{\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 估计器学习近似推理模型。理论优势体现在实验结果中。