Auto-Encoding Variational Bayes
Auto-Encoding Variational Bayes
在存在后验分布难以处理的连续隐变量和大数据集的情况下,我们如何在有向概率模型中进行有效的推理和学习?我们介绍了一种随机变分推理和学习算法,该算法可以扩展到大型数据集,在一些温和的可分性条件下,甚至可以在难以解决的情况下工作。
我们的贡献有两个方面。首先,我们表明,变分下限的重新参数化产生了一个下限估计器,可以使用标准的随机梯度方法直接优化。其次,我们表明,对于每个数据点具有连续潜变量的i.i.d.数据集,通过使用提议的下限估计器将近似推理模型(也称为识别模型)拟合到难以解决的后验中,可以使后验推理特别有效。理论上的优势反映在实验结果中。
Introduction
如何才能对连续隐变量和/或参数具有难以处理的后验分布的有向概率模型进行有效的近似推理和学习?
变分贝叶斯(VB)方法涉及对难以处理的后验的近似进行优化。不幸的是,常见的均值场方法需要对近似后验的期望值进行分析解,这在一般情况下也是难以解决的。
我们展示了变分下限的重新参数化如何产生一个简单的可微分的无偏估计器;这个SGVB(随机梯度变分贝叶斯)估计器可用于几乎任何具有连续隐变量和/或参数的模型中的有效近似后验推断,并且使用标准随机梯度上升技术直接优化。
对于一个独立的数据集和每个数据点的连续隐变量的情况,我们提出了自编码VB(AEVB)算法。在AEVB算法中,我们通过使用SGVB估计器来优化识别模型,使推理和学习特别有效,这使我们能够使用简单的祖先采样进行非常有效的近似后验推理,这反过来又使我们能够有效地学习模型参数,而不需要每个数据点的昂贵迭代推理方案(如MCMC)。学习到的近似后验推理模型也可以用于一系列的任务,如识别、去噪、表示和可视化的目的。当一个神经网络被用于识别模型时,我们就得到了变量自编码器。
Method
本节中的策略可用于为具有连续隐变量的各种有向图模型推导下界估计量(随机目标函数)。我们将在这里限制自己具有 i.i.d 的常见情况。 每个数据点具有潜在变量的数据集,我们喜欢对(全局)参数执行最大似然(ML)或最大后验(MAP)推断,以及对潜在变量进行变分推断。
例如,可以直接将此场景扩展到我们还对全局参数执行变分推理的情况; 该算法放在附录中,但该案例的实验留给未来的工作。请注意,我们的方法可以应用于在线的非静态设置,例如 流数据,但这里为了简单起见,我们假设一个固定的数据集。
Problem scenario
让我们考虑一些数据集
图1.正在考虑的有向图模型的类型。实线表示生成模型 $pθ(z)pθ(x|z)
该过程由两个步骤组成:
- 从某个先验分布
生成值 ; - 从某个条件分布
生成值 。
我们假设先验 $p{θ^∗}(z)
非常重要的是,我们不对边际或后验概率做出常见的简化假设。 相反,我们在这里对一种通用算法感兴趣,该算法甚至在以下情况下也能有效工作:
- 难处理性:边际似然 $p{\theta} = \int p{\theta}(z)p{\theta}(x|z)dz
p{\theta}(z|x) = p{\theta}(x|z)p{\theta}(z)/p{\theta}(x) p{\theta}(x|z)$ 的情况下,例如 具有非线性隐藏层的神经网络。 - 大型数据集:我们有太多的数据,以至于批量优化成本太高; 我们希望使用小批量甚至单个数据点进行参数更新。 基于采样的解决方案,例如 Monte Carlo EM 通常会太慢,因为它涉及每个数据点通常昂贵的采样循环。
我们对上述场景中的三个相关问题感兴趣,并提出解决方案:
- 参数
的有效近似 ML 或 MAP 估计。 参数本身可能是感兴趣的,例如 如果我们正在分析一些自然过程。 它们还允许我们模拟隐藏的随机过程并生成类似于真实数据的人工数据。 - 给定观察值
以选择参数 ,对隐变量 进行有效的近似后验推断。 这对于编码或数据表示任务很有用。 - 变量
的有效近似边际推断。 这使我们能够执行需要先验 的各种推理任务。 计算机视觉中的常见应用包括图像去噪、修复和超分辨率。
为了解决上述问题,让我们引入一个识别模型 $q{\phi }(z|x)
从编码理论的角度来看,未观察到的变量
The variational bound
边际似然由单个数据点的边际似然之和 $\log p{\theta}(x^{(1)},…,x^{(N)}) = \sum{i=1}^{N} \log p_{\theta}(x^{(i)})$ 组成,每个数据点可以改写为:
第一个 RHS 项是近似值与真实后验的 KL 散度。 由于这个 KL 散度是非负的,第二个 RHS 项
也可以写成:
我们想要区分和优化下界
The SGVB estimator and AEVB algorithm
在这一节中,我们将介绍一个实用的下限及其导数(相对于参数)的估计器。我们假设 $q{\phi }(z|x)
在第 2.4 节中概述的某些温和条件下,对于选择的近似后验 $q{\phi }(z|x)
关于选择这种合适的分布
我们将这一技术应用于变分下限(公式(2)),产生我们的通用随机梯度变分贝叶斯(SGVB)估计器
通常,公式(3)的 KL散度 $D{KL}(q{\phi}(z|x^{(i)})||p{\theta}(z))
给定来自具有
其中 minibatch
在我们的实验中,我们发现每个数据点的样本数量
查看等式给出的目标函数时,与自编码器的联系变得清晰。 (7)。 第一项是(近似后验与先验的 KL 散度)充当正则化项,而第二项是预期的负重构误差。选择函数 $g{\phi}(.)
The reparameterization trick
为了解决我们的问题,我们调用了另一种方法来从
令
这种重新参数化对我们的情况很有用,因为它可以用来重写期望 w.r.t
证明如下。 给定确定性映射 $z = g{\phi} (\epsilon, x)
因此,$\int q{\phi}(z|x)f(z) dz = \int p(\epsilon)f(z)d{\epsilon} = \int p(\epsilon) f(g{\phi}(\epsilon,x)) d\epsilon
以单变量高斯情况为例:令
- 易处理的逆 CDF。 在这种情况下,令
,令 $g{\phi }(ε,x) q{\phi }(z|x)$ 的逆 CDF。 示例:指数、Cauchy、Logistic、Rayleigh、Pareto、Weibull、倒数、Gompertz、Gumbel 和 Erlang 分布。 - 与高斯示例类似,对于任何“location-scale”分布族,我们可以选择标准分布(位置 = 0,尺度 = 1)作为辅助变量
,并令 . 示例:拉普拉斯分布、椭圆分布、学生 t 分布、逻辑分布、均匀分布、三角分布和高斯分布。 - 组合:通常可以将随机变量表示为辅助变量的不同变换。 示例:Log-Normal(正态分布变量的取幂)、Gamma(指数分布变量的总和)、Dirichlet(Gamma 变量的加权和)、Beta、卡方和 F 分布。
当所有三种方法都失败时,存在对逆 CDF 的良好近似,需要计算的时间复杂度与 PDF 相当(参见例如 [Dev86] 中的某些方法)。
Example: Variational Auto-Encoder
在本节中,我们将给出一个示例,其中我们将神经网络用于概率编码器 $q{\phi} (z|x)
让隐变量的先验为中心各向同性多元高斯 $p{\theta}(z) = N(z;0,I)
请注意,在这种情况下,真正的后验 $p{\theta}(z|x)
其中,近似后验值
如第2.4节所述,我们从后验 $z^{(i,l)} \sim q{\phi}(z|x^{(i)})
如上文和附录 C 所述,解码项
Related work
据我们所知,唤醒-睡眠算法 [HDFN95] 是文献中唯一适用于同一类连续潜变量模型的其他在线学习方法。 与我们的方法一样,wake-sleep 算法采用近似真实后验的识别模型。 唤醒睡眠算法的一个缺点是它需要同时优化两个目标函数,这两个目标函数一起不对应于边际似然的优化。 唤醒睡眠的一个优点是它也适用于具有离散隐变量的模型。 Wake-Sleep 与每个数据点的 AEVB 具有相同的计算复杂性。
随机变分推断 [HBWP13] 最近受到越来越多的关注。 最近,[BJP12] 引入了一种控制变量方案,以减少 2.1 节中讨论的朴素梯度估计器的高方差,并应用于后验的指数族近似。 在 [RGB13] 中,引入了一些通用方法,即控制变量方案,以减少原始梯度估计器的方差。 在 [SK13] 中,与本文类似的重新参数化被用于随机变分推理算法的有效版本中,用于学习指数族近似分布的自然参数。
AEVB 算法揭示了有向概率模型(用变分目标训练)和自动编码器之间的联系。 线性自编码器和某类生成线性高斯模型之间的联系早已为人所知。 在 [Row98] 中表明,PCA 对应于线性高斯模型特例的最大似然 (ML) 解,其中先验
在最近关于自编码器 [VLL+10] 的相关工作中,表明非正则化自编码器的训练标准对应于输入
最近提出的 DARN 方法 [GMW13] 也使用自编码结构学习有向概率模型,但是他们的方法适用于二进制隐变量。 甚至最近,[RMW14] 还使用我们在本文中描述的重新参数化技巧在自动编码器、定向概率模型和随机变分推理之间建立了联系。 他们的工作是独立于我们开发的,并为 AEVB 提供了额外的视角。
Experiments
我们训练了来自 MNIST 和 Frey Face 数据集的图像生成模型,并在变分下限和估计的边际似然方面比较了学习算法。
使用了第 3 节中的生成模型(编码器)和变分近似(解码器),其中描述的编码器和解码器具有相同数量的隐藏单元。 由于 Frey Face 数据是连续的,我们使用了具有高斯输出的解码器,与编码器相同,只是在解码器输出处使用 sigmoidal 激活函数将均值限制在区间 (0, 1)。 请注意,对于隐藏单元,我们指的是编码器和解码器的神经网络的隐藏层。
使用随机梯度上升更新参数,其中梯度是通过区分下界估计量
我们将 AEVB 的性能与唤醒睡眠算法 [HDFN95] 进行了比较。 我们为唤醒睡眠算法和变分自编码器采用了相同的编码器(也称为识别模型)。 所有参数,无论是变分参数还是生成参数,都通过从
Likelihood lower bound 我们训练了生成模型(解码器)和相应的编码器(又名识别模型),在 MNIST 的情况下具有 500 个隐藏单元,在 Frey Face 数据集的情况下具有 200 个隐藏单元(以防止过度拟合,因为它是一个相当小的数据集)。 隐藏单元的选择数量是基于先前关于自编码器的文献,不同算法的相对性能对这些选择不是很敏感。 图 2 显示了比较下限时的结果。 有趣的是,多余的隐变量不会导致过拟合,这可以通过变分界的正则化性质来解释。
Marginal likelihood 对于非常低维的隐空间,可以使用 MCMC 估计器估计学习生成模型的边际似然。 有关边际似然估计量的更多信息,请参见附录。 对于编码器和解码器,我们再次使用了神经网络,这次有 100 个隐藏单元和 3 个隐变量; 对于更高维的潜在空间,估计变得不可靠。 同样,使用了 MNIST 数据集。 将 AEVB 和 Wake-Sleep 方法与具有混合蒙特卡罗 (HMC) [DKPR87] 采样器的蒙特卡罗 EM (MCEM) 进行了比较; 详细信息在附录中。 我们比较了三种算法的收敛速度,分别用于小型和大型训练集。 结果如图 3 所示。
Visualisation of high-dimensional data 如果我们选择低维潜在空间(例如 2D),我们可以使用学习到的编码器(识别模型)将高维数据投影到低维流形。 有关 MNIST 和 Frey Face 数据集的 2D 潜在流形的可视化,请参见附录 A。
Conclusion
我们引入了一种新的变分下界估计器,随机梯度 VB (SGVB),用于使用连续潜在变量进行有效的近似推断。 所提出的估计器可以使用标准随机梯度方法直接区分和优化。 对于 i.i.d. 数据集和每个数据点的连续潜在变量 我们引入了一种高效的推理和学习算法,即自编码 VB (AEVB),它使用 SGVB 估计器学习近似推理模型。 理论优势体现在实验结果中。
Future work
由于 SGVB 估计器和 AEVB 算法可以应用于几乎任何具有连续隐变量的推理和学习问题,因此有很多未来方向:
- 使用用于编码器的深度神经网络(例如卷积网络)学习分层生成架构 和解码器,与 AEVB 联合训练;
- 时间序列模型(即动态贝叶斯网络);
- 将 SGVB 应用于全局参数;
- 具有隐变量的监督模型,可用于学习复杂的噪声分布。