在前几节中,我们已经确定变分自编码器(VAE)从概率角度处理生成模型。VAE编码器(由ϕ参数 (parameter)化)不是将输入x映射到潜在空间中的单个点z,而是输出潜在空间上概率分布qϕ(z∣x)的参数。解码器(由θ参数化)随后定义了一个似然pθ(x∣z),代表从给定潜在变量z生成x的概率。
我们在训练生成模型时的最终目的是使模型观测到实际数据x的概率(或似然)最大化。这个边际似然通过对所有可能潜在变量z进行积分得到:
pθ(x)=∫pθ(x∣z)p(z)dz
此处,p(z)是为潜在变量选择的先验分布,通常是标准多元高斯分布(N(0,I))。遗憾的是,对于像用作解码器的神经网络 (neural network)这样的复杂模型,计算此积分通常是难以处理的,因为它需要对z的所有可能值进行积分,而z可以是高维的。
介绍变分方法
由于我们无法直接优化pθ(x),VAE采用一种源自变分推断的方法。其主要思想是引入一个近似分布qϕ(z∣x)(我们的编码器),旨在估计真实但难以处理的后验分布pθ(z∣x)=pθ(x∣z)p(z)/pθ(x)。我们希望使qϕ(z∣x)尽可能地接近pθ(z∣x)。
衡量两个分布之间“接近程度”的常用方法是 Kullback-Leibler (KL) 散度。让我们考查近似后验qϕ(z∣x)与真实后验pθ(z∣x)之间的KL散度:
KL(qϕ(z∣x)∣∣pθ(z∣x))=∫qϕ(z∣x)logpθ(z∣x)qϕ(z∣x)dz
这表示在使用qϕ近似pθ时丢失的信息。我们希望最小化此KL散度。让我们使用后验pθ(z∣x)的定义来展开此定义:
KL(qϕ(z∣x)∣∣pθ(z∣x))=Ez∼qϕ(z∣x)[logqϕ(z∣x)−logpθ(z∣x)]
根据贝叶斯定理,pθ(z∣x)=pθ(x)pθ(x∣z)p(z),我们可以代入logpθ(z∣x)=logpθ(x∣z)+logp(z)−logpθ(x):
KL(qϕ(z∣x)∣∣pθ(z∣x))=Ez∼qϕ(z∣x)[logqϕ(z∣x)−(logpθ(x∣z)+logp(z)−logpθ(x))]
重新排列期望内部的项:
KL(qϕ(z∣x)∣∣pθ(z∣x))=Ez∼qϕ(z∣x)[logqϕ(z∣x)−logp(z)−logpθ(x∣z)+logpθ(x)]
由于logpθ(x)不依赖于z,期望Ez∼qϕ(z∣x)[logpθ(x)]即为logpθ(x)。我们可以分离这些项:
KL(qϕ(z∣x)∣∣pθ(z∣x))=Ez∼qϕ(z∣x)[logqϕ(z∣x)−logp(z)]−Ez∼qϕ(z∣x)[logpθ(x∣z)]+logpθ(x)
第一项是近似后验qϕ(z∣x)与先验p(z)之间的KL散度:KL(qϕ(z∣x)∣∣p(z))。因此,我们得到:
KL(qϕ(z∣x)∣∣pθ(z∣x))=KL(qϕ(z∣x)∣∣p(z))−Ez∼qϕ(z∣x)[logpθ(x∣z)]+logpθ(x)
证据下界 (ELBO)
现在,让我们重新排列此方程,以分离出难以处理的对数似然logpθ(x):
logpθ(x)=Ez∼qϕ(z∣x)[logpθ(x∣z)]−KL(qϕ(z∣x)∣∣p(z))+KL(qϕ(z∣x)∣∣pθ(z∣x))
这个方程很重要。它将数据的对数似然分解为三项。请注意,KL散度KL(qϕ(z∣x)∣∣pθ(z∣x))始终是非负的(KL≥0)。因此,如果我们舍弃这一项,剩余的表达式就构成了对数似然的一个下界。这个下界被称为证据下界(ELBO),通常表示为L(θ,ϕ;x):
L(θ,ϕ;x)=Ez∼qϕ(z∣x)[logpθ(x∣z)]−KL(qϕ(z∣x)∣∣p(z))
由于KL(qϕ(z∣x)∣∣pθ(z∣x))≥0,我们有:
logpθ(x)≥L(θ,ϕ;x)
这种关系是VAE训练的核心。我们不直接最大化难以处理的logpθ(x),而是最大化其可处理的下界,即ELBO L(θ,ϕ;x)。最大化ELBO同时达到两个目的:
- 它将下界L推向实际的对数似然logpθ(x)。
- 由于logpθ(x)−L(θ,ϕ;x)=KL(qϕ(z∣x)∣∣pθ(z∣x)),最大化ELBO等同于最小化近似后验qϕ(z∣x)与真实后验pθ(z∣x)之间的KL散度。这意味着随着ELBO的增加,我们的编码器qϕ(z∣x)对真实后验的近似效果会更好。
总对数似然、ELBO和KL散度间隙之间的关系。最大化ELBO会将其向上推向总对数似然,有效地使KL间隙最小化。
ELBO的组成部分
我们来分析构成ELBO目标函数的两项:
-
重构项: Ez∼qϕ(z∣x)[logpθ(x∣z)]
该项衡量的是原始输入数据x由解码器pθ(x∣z)生成的预期对数似然,其中潜在编码z是从编码器qϕ(z∣x)提出的分布中采样的。最大化该项促使解码器学习从其潜在表示中准确地重构输入。实际上,对于图像等输入,这通常转化为最小化重构损失,例如均方误差(MSE)或二元交叉熵(BCE),具体取决于数据分布假设。
-
正则化 (regularization)项(KL散度): −KL(qϕ(z∣x)∣∣p(z))
该项衡量的是编码器对给定输入x产生的近似后验分布qϕ(z∣x)与先验分布p(z)(例如,标准高斯分布)之间的KL散度。最大化该项(或最小化正的KL散度)促使编码器产生接近先验p(z)的分布qϕ(z∣x)。这充当正则化器,强制潜在空间采用先验的结构(例如,平滑、居中的高斯云)。这种正则化使VAE能够通过直接从先验p(z)中抽取z并将其输入解码器来生成新样本。
优化目标
VAE通过最大化ELBO来训练,同时优化编码器参数 (parameter)ϕ和解码器参数θ。这个目标在两者之间取得了平衡:重构项推动实现准确的数据表示,而KL散度项则强制潜在空间具有适用于生成的规整结构。
在实践中,我们通常最小化负ELBO:
损失VAE=−L(θ,ϕ;x)=−Ez∼qϕ(z∣x)[logpθ(x∣z)]+KL(qϕ(z∣x)∣∣p(z))
通过梯度下降 (gradient descent)(由接下来将讨论的重参数化技巧实现)最小化此损失函数 (loss function),训练VAE以找到能产生良好重构以及与先验p(z)对齐 (alignment)的结构良好潜在空间的参数ϕ和θ。理解ELBO及其组成部分对于理解VAE如何学习生成数据具有重要作用。