HyperAIHyperAI

Command Palette

Search for a command to run...

自动编码变分贝叶斯

Diederik P. Kingma Max Welling

摘要

在具有不可解析后验分布的连续潜变量以及大规模数据集的情况下,如何在有向概率模型中执行高效的推断与学习?我们提出了一种随机变分推断与学习算法,该算法能够扩展到大规模数据集,并且在某些温和的可微性条件下,即使在不可解析的情况下也能工作。我们的贡献有两方面。首先,我们证明了对变分下界进行重参数化可以得到一个下界估计器,该估计器可以通过标准的随机梯度方法进行直接优化。其次,我们证明对于每个数据点含有连续潜变量的 i.i.d. 数据集,通过利用所提出的下界估计器将近似推断模型(也称为识别模型)拟合到不可解析的后验分布,可以使后验推断变得特别高效。理论优势在实验结果中得到了体现。

一句话总结

阿姆斯特丹大学的研究人员提出变分自编码器(VAE),对变分下界引入重参数化,得到可由标准随机梯度方法优化的可微估计量,并将其与拟合不可处理后验的摊销识别模型结合,以在大规模 i.i.d.\mathrm{i.i.d.}i.i.d. 数据集上对连续潜变量进行高效推断。

核心贡献

  • 论文引入变分下界的重参数化,得到随机梯度变分贝叶斯估计量,该估计量可对具有连续潜变量和不可处理后验分布的有向概率模型求导,并使用标准随机梯度方法进行优化。

  • 论文引入针对每个数据点均具有连续潜变量的 i.i.d. 数据集的自编码变分贝叶斯方法;它拟合识别模型以逼近不可处理的后验,摊销推断过程,并将学习扩展到大规模数据集。

  • 论文将有向概率模型的变分训练与自编码器学习联系起来,并报告实验证据:该估计量和算法提供了高效近似推断,同时变分目标为自编码器变体提供了正则化。

引言

作者处理连续潜变量或参数的后验不可处理的有向概率模型中的高效近似推断与学习。这一点很重要,因为许多生成建模任务需要从大规模数据集进行可扩展学习,但传统变分贝叶斯方法通常依赖均场近似,而这些近似的期望在解析上不可处理。先前的替代方案也存在局限:唤醒睡眠算法需要两个相关但不等价的目标,而较早的随机变分方法可能出现高方差或过窄的模型假设。作者提出一种经过重参数化、可微、无偏的变分下界估计量,称为 SGVB,并提出一种高效的推断与学习算法 AEVB,使用标准随机梯度方法训练识别模型。

方法

方法

该方法针对一般的潜变量设定。观测数据由独立样本组成,并假设每个样本都通过一个未观测的连续潜变量生成。具体而言,对于由样本组成的数据集,生成过程先从先验中抽取一个潜变量,然后根据条件似然生成一个观测数据点。先验和似然都被假设属于参数族,其密度函数关于参数和潜变量均可微。

主要困难在于,真实潜变量和边际似然通常均未知。给定数据时潜变量的后验分布通常不可处理,边际似然也可能不可处理。当似然由神经网络等非线性模型定义时,这种情况很常见。因此,该方法适用于精确后验推断、精确边际似然评估和封闭式变分推断均不可用的情形。

为克服这一问题,作者引入识别模型,记作 qϕ(z∣x)q_{\phi}(\mathbf{z} \mid \mathbf{x})qϕ​(z∣x),用于近似真实的不可处理后验 pθ(z∣x)p_{\boldsymbol{\theta}}(\mathbf{z} \mid \mathbf{x})pθ​(z∣x)。该识别模型由 ϕ\phiϕ 参数化,并与生成模型的参数 θ\boldsymbol{\theta}θ 联合学习。从编码角度看,潜变量 z\mathbf{z}z 可被视为输入的压缩表示。识别模型 qϕ(z∣x)q_{\phi}(\mathbf{z} \mid \mathbf{x})qϕ​(z∣x) 充当概率编码器,条件分布 pθ(x∣z)p_{\boldsymbol{\theta}}(\mathbf{x} \mid \mathbf{z})pθ​(x∣z) 充当概率解码器。

关键量是边际似然对数的变分下界。对于单个数据点 x(i)\mathbf{x}^{(i)}x(i),边际似然对数可分解为近似后验与真实后验之间的 KL 散度与变分下界之和:

log⁡pθ(x(i))=DKL(qϕ(z∣x(i)) ∥ pθ(z∣x(i)))+L(θ,ϕ;x(i)).\log p_{\boldsymbol{\theta}}(\mathbf{x}^{(i)}) = D_{KL}\left(q_{\phi}(\mathbf{z} \mid \mathbf{x}^{(i)}) \,\|\, p_{\boldsymbol{\theta}}(\mathbf{z} \mid \mathbf{x}^{(i)})\right) + \mathcal{L}(\boldsymbol{\theta}, \phi; \mathbf{x}^{(i)}).logpθ​(x(i))=DKL​(qϕ​(z∣x(i))∥pθ​(z∣x(i)))+L(θ,ϕ;x(i)).

由于 KL 散度非负,下界满足

log⁡pθ(x(i))≥L(θ,ϕ;x(i)).\log p_{\boldsymbol{\theta}}(\mathbf{x}^{(i)}) \geq \mathcal{L}(\boldsymbol{\theta}, \phi; \mathbf{x}^{(i)}).logpθ​(x(i))≥L(θ,ϕ;x(i)).

变分下界可以写成两种等价形式。第一种为

L(θ,ϕ;x(i))=Eqϕ(z∣x(i))[−log⁡qϕ(z∣x(i))+log⁡pθ(x(i),z)].\mathcal{L}(\boldsymbol{\theta}, \phi; \mathbf{x}^{(i)}) = \mathbb{E}_{q_{\phi}(\mathbf{z} \mid \mathbf{x}^{(i)})} \left[ -\log q_{\phi}(\mathbf{z} \mid \mathbf{x}^{(i)}) + \log p_{\boldsymbol{\theta}}(\mathbf{x}^{(i)}, \mathbf{z}) \right].L(θ,ϕ;x(i))=Eqϕ​(z∣x(i))​[−logqϕ​(z∣x(i))+logpθ​(x(i),z)].

第二种将 KL 正则项与期望对数似然项分开:

L(θ,ϕ;x(i))=−DKL(qϕ(z∣x(i)) ∥ pθ(z))+Eqϕ(z∣x(i))[log⁡pθ(x(i)∣z)].\mathcal{L}(\boldsymbol{\theta}, \phi; \mathbf{x}^{(i)}) = - D_{KL}\left(q_{\phi}(\mathbf{z} \mid \mathbf{x}^{(i)}) \,\|\, p_{\boldsymbol{\theta}}(\mathbf{z})\right) + \mathbb{E}_{q_{\phi}(\mathbf{z} \mid \mathbf{x}^{(i)})} \left[ \log p_{\boldsymbol{\theta}}(\mathbf{x}^{(i)} \mid \mathbf{z}) \right].L(θ,ϕ;x(i))=−DKL​(qϕ​(z∣x(i))∥pθ​(z))+Eqϕ​(z∣x(i))​[logpθ​(x(i)∣z)].

该分解很重要。KL 项鼓励近似后验保持接近先验,而期望项衡量生成的潜变量在多大程度上能解释观测数据。在模型训练中,目标是关于生成参数 θ\boldsymbol{\theta}θ 和识别参数 ϕ\phiϕ 最大化该下界。

关于 ϕ\phiϕ 的梯度的直接蒙特卡洛估计通常方差很高。为解决这一问题,该方法采用重参数化技巧。其核心思想是将随机潜变量表示为辅助噪声变量的确定性函数。不是直接从 qϕ(z∣x)q_{\phi}(\mathbf{z} \mid \mathbf{x})qϕ​(z∣x) 采样 z\mathbf{z}z,而是从简单的固定分布 p(ϵ)p(\boldsymbol{\epsilon})p(ϵ) 中采样噪声,并通过可微变换 gϕg_{\phi}gϕ​ 进行映射:

z~=gϕ(ϵ,x),ϵ∼p(ϵ).\widetilde{\mathbf{z}} = g_{\phi}(\boldsymbol{\epsilon}, \mathbf{x}), \qquad \boldsymbol{\epsilon} \sim p(\boldsymbol{\epsilon}).z=gϕ​(ϵ,x),ϵ∼p(ϵ).

例如,如果 qϕ(z∣x)q_{\phi}(\mathbf{z} \mid \mathbf{x})qϕ​(z∣x) 是均值为 μ(i)\mu^{(i)}μ(i)、对角方差为 σ2(i)\sigma^2{}^{(i)}σ2(i) 的高斯分布,则可以使用

z(i,l)=μ(i)+σ(i)⊙ϵ(l),ϵ(l)∼N(0,I),\mathbf{z}^{(i,l)} = \mu^{(i)} + \sigma^{(i)} \odot \boldsymbol{\epsilon}^{(l)}, \qquad \boldsymbol{\epsilon}^{(l)} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}),z(i,l)=μ(i)+σ(i)⊙ϵ(l),ϵ(l)∼N(0,I),

其中 ⊙\odot⊙ 表示逐元素乘法。这将随机性转移到辅助噪声变量,同时允许在保留关于 ϕ\phiϕ 的计算图的情况下估计期望。

利用该重参数化,在 qϕ(z∣x(i))q_{\phi}(\mathbf{z} \mid \mathbf{x}^{(i)})qϕ​(z∣x(i)) 下的期望的无偏随机估计为

Eqϕ(z∣x(i))[f(z)]=Ep(ϵ)[f(gϕ(ϵ,x(i)))]≈1L∑l=1Lf(gϕ(ϵ(l),x(i))).\mathbb{E}_{q_{\phi}(\mathbf{z} \mid \mathbf{x}^{(i)})}[f(\mathbf{z})] = \mathbb{E}_{p(\boldsymbol{\epsilon})} \left[ f(g_{\phi}(\boldsymbol{\epsilon}, \mathbf{x}^{(i)})) \right] \approx \frac{1}{L} \sum_{l=1}^{L} f(g_{\phi}(\boldsymbol{\epsilon}^{(l)}, \mathbf{x}^{(i)})).Eqϕ​(z∣x(i))​[f(z)]=Ep(ϵ)​[f(gϕ​(ϵ,x(i)))]≈L1​l=1∑L​f(gϕ​(ϵ(l),x(i))).

该式可用于构造通用的下界随机估计量:

L~A(θ,ϕ;x(i))=1L∑l=1L[log⁡pθ(x(i),z(i,l))−log⁡qϕ(z(i,l)∣x(i))],\widetilde{\mathcal{L}}^{A}(\boldsymbol{\theta}, \phi; \mathbf{x}^{(i)}) = \frac{1}{L} \sum_{l=1}^{L} \left[ \log p_{\boldsymbol{\theta}}(\mathbf{x}^{(i)}, \mathbf{z}^{(i,l)}) - \log q_{\phi}(\mathbf{z}^{(i,l)} \mid \mathbf{x}^{(i)}) \right],LA(θ,ϕ;x(i))=L1​l=1∑L​[logpθ​(x(i),z(i,l))−logqϕ​(z(i,l)∣x(i))],

其中

z(i,l)=gϕ(ϵ(i,l),x(i)),ϵ(l)∼p(ϵ).\mathbf{z}^{(i,l)} = g_{\phi}(\boldsymbol{\epsilon}^{(i,l)}, \mathbf{x}^{(i)}), \qquad \boldsymbol{\epsilon}^{(l)} \sim p(\boldsymbol{\epsilon}).z(i,l)=gϕ​(ϵ(i,l),x(i)),ϵ(l)∼p(ϵ).

在许多实际情形中,近似后验与先验之间的 KL 散度项可以解析计算。在这种情况下,只有期望对数似然需要通过采样估计。这给出了一个更低方差的估计量:

L~B(θ,ϕ;x(i))=−DKL(qϕ(z∣x(i)) ∥ pθ(z))+1L∑l=1Llog⁡pθ(x(i)∣z(i,l)).\widetilde{\mathcal{L}}^{B}(\boldsymbol{\theta}, \phi; \mathbf{x}^{(i)}) = - D_{KL}\left(q_{\phi}(\mathbf{z} \mid \mathbf{x}^{(i)}) \,\|\, p_{\boldsymbol{\theta}}(\mathbf{z})\right) + \frac{1}{L} \sum_{l=1}^{L} \log p_{\boldsymbol{\theta}}(\mathbf{x}^{(i)} \mid \mathbf{z}^{(i,l)}).LB(θ,ϕ;x(i))=−DKL​(qϕ​(z∣x(i))∥pθ​(z))+L1​l=1∑L​logpθ​(x(i)∣z(i,l)).

该估计量与自编码器训练直接相关。KL 项通过将近似后验拉向先验来对编码器进行正则化,第二项则衡量重构质量。编码器从输入生成潜码,解码器评估从该潜码重构输入的概率。

对于具有 NNN 个数据点的数据集,整个下界可以使用大小为 MMM 的小批量进行估计:

L(θ,ϕ;X)≈L~M(θ,ϕ;XM)=NM∑i=1ML~(θ,ϕ;x(i)).\mathcal{L}(\boldsymbol{\theta}, \phi; \mathbf{X}) \approx \widetilde{\mathcal{L}}^{M}(\boldsymbol{\theta}, \phi; \mathbf{X}^{M}) = \frac{N}{M} \sum_{i=1}^{M} \widetilde{\mathcal{L}}(\boldsymbol{\theta}, \phi; \mathbf{x}^{(i)}).L(θ,ϕ;X)≈LM(θ,ϕ;XM)=MN​i=1∑M​L(θ,ϕ;x(i)).

该缩放后的小批量估计量关于 θ\boldsymbol{\theta}θ 和 ϕ\phiϕ 均可微,因此能够使用随机梯度下降或自适应梯度方法等随机优化方法。在实践中,当小批量足够大时,每个数据点采样一次可能就足够。

在变分自编码器情形下,该方法变得尤为清晰。潜变量的先验被选择为中心化的各向同性高斯分布:

pθ(z)=N(z;0,I).p_{\boldsymbol{\theta}}(\mathbf{z}) = \mathcal{N}(\mathbf{z}; \mathbf{0}, \mathbf{I}).pθ​(z)=N(z;0,I).

近似后验也被建模为具有对角协方差的高斯分布:

qϕ(z∣x(i))=N(z;μ(i),σ2(i)I).q_{\phi}(\mathbf{z} \mid \mathbf{x}^{(i)}) = \mathcal{N}(\mathbf{z}; \boldsymbol{\mu}^{(i)}, \boldsymbol{\sigma}^2{}^{(i)}\mathbf{I}).qϕ​(z∣x(i))=N(z;μ(i),σ2(i)I).

均值向量 μ(i)\boldsymbol{\mu}^{(i)}μ(i) 和标准差向量 σ(i)\boldsymbol{\sigma}^{(i)}σ(i) 由编码器网络从输入 x(i)\mathbf{x}^{(i)}x(i) 产生。潜变量样本通过高斯重参数化生成

z(i,l)=μ(i)+σ(i)⊙ϵ(l),ϵ(l)∼N(0,I).\mathbf{z}^{(i,l)} = \mu^{(i)} + \sigma^{(i)} \odot \epsilon^{(l)}, \qquad \epsilon^{(l)} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}).z(i,l)=μ(i)+σ(i)⊙ϵ(l),ϵ(l)∼N(0,I).

解码器 pθ(x(i)∣z(i,l))p_{\boldsymbol{\theta}}(\mathbf{x}^{(i)} \mid \mathbf{z}^{(i,l)})pθ​(x(i)∣z(i,l)) 将潜变量样本映射回观测数据上的分布。根据数据类型,解码器可以使用高斯输出来建模实值数据,或使用伯努利输出来建模二值数据。

对于该高斯编码器和该高斯先验,KL 项具有封闭式,因此单个数据点的下界可估计为

L(θ,ϕ;x(i))≈12∑j=1J(1+log⁡((σj(i))2)−(μj(i))2−(σj(i))2)+1L∑l=1Llog⁡pθ(x(i)∣z(i,l)).\mathcal{L}(\boldsymbol{\theta}, \phi; \mathbf{x}^{(i)}) \approx \frac{1}{2} \sum_{j=1}^{J} \left( 1 + \log((\sigma_j^{(i)})^2) - (\mu_j^{(i)})^2 - (\sigma_j^{(i)})^2 \right) + \frac{1}{L} \sum_{l=1}^{L} \log p_{\boldsymbol{\theta}}(\mathbf{x}^{(i)} \mid \mathbf{z}^{(i,l)}).L(θ,ϕ;x(i))≈21​j=1∑J​(1+log((σj(i)​)2)−(μj(i)​)2−(σj(i)​)2)+L1​l=1∑L​logpθ​(x(i)∣z(i,l)).

第一部分通过将编码分布保持接近各向同性高斯先验来对潜表示进行正则化。第二部分鼓励解码器从随机潜码中较好地重构输入。编码器和解码器的参数通过用随机梯度最大化该下界进行联合训练。

实验

实验在 MNIST 和 Frey Face 上训练编码器-解码器生成模型,使用变分下界比较 AEVB 与唤醒睡眠算法。下界结果表明,变分目标具有正则化效果,因为多余的潜变量没有导致过拟合。对于较小的潜空间,使用边际似然估计比较优化行为;低维可视化则显示,学到的编码器能够生成可解释的潜流形。