要全面掌握变分自编码器 (VAE),通过概率性**隐变量模型 (LVM)**的视角来审视它们是有效的方法。这种方法将重心从标准自编码器主要执行的简单数据压缩,转移到对数据自身内在概率分布的显式建模。
什么是隐变量模型?
其核心在于,LVMs 假设我们观察到的高维数据(我们称之为 x)是由一些潜在的、未观测到的(隐)变量 z 生成的。这些隐变量通常存在于一个较低维度的空间中,并捕获数据中变动的主要因素。
基本思路是定义观测变量和隐变量上的联合概率分布 p(x,z)。我们可以以生成式的方式分解这个联合分布:
p(x,z)=p(x∣z)p(z)
这里:
- p(z) 是隐变量的先验分布。它定义了我们在观测任何数据之前,对隐空间结构最初的设想。在 VAEs 中,这通常被选择为一个简单的分布,例如标准多变量高斯分布 N(0,I)。
- p(x∣z) 是似然(或生成分布)。它描述了在给定特定隐编码 z 的情况下,如何生成一个观测数据点 x。这一部分通常由神经网络建模(在 VAE 环境中为解码器)。
生成式建模的最终目的是对观测数据 p(x) 的分布进行建模。根据概率规则,我们可以通过对隐变量进行边缘化来获得这一点:
p(x)=∫p(x,z)dz=∫p(x∣z)p(z)dz
如果我们能够完美地建模 p(x∣z) 并轻松计算这个积分,我们将拥有一个强大的生成模型,能够评估新数据点的似然性,并通过首先从 p(z) 中采样 z,然后从 p(x∣z) 中采样 x 来生成样本。
推断难题
尽管上述的生成过程 (z→x) 相对直接,但与 LVMs 打交道时会遇到一个重要问题:推断。给定一个观测数据点 x,我们如何确定最有可能生成它的对应隐表示 z?这需要计算后验分布 p(z∣x)。使用贝叶斯定理:
p(z∣x)=p(x)p(x∣z)p(z)=∫p(x∣z′)p(z′)dz′p(x∣z)p(z)
问题在于:计算分母 p(x)(边缘似然或证据)需要对所有可能的隐变量 z′ 进行积分。对于像那些涉及到深度神经网络建模 p(x∣z) 的复杂模型以及连续隐变量 z,这个积分通常是难以计算的。因此,计算真实的后验 p(z∣x) 也是难以计算的。
变分推断与 VAE
这是 VAEs 中“变分”一词变得重要的原因。由于我们无法计算真实的后验 p(z∣x),我们转而使用一个更简单、可计算的分布 q(z∣x) 来对其进行近似。这个近似后验 q(z∣x) 也由一个神经网络建模 – 即 VAE 中的编码器网络。编码器接收数据点 x 作为输入,并输出分布 q(z∣x) 的参数(例如,如果 q 被选择为高斯分布,则输出均值和方差)。我们用 ϕ 表示编码器网络的参数,因此我们写为 qϕ(z∣x)。类似地,我们用 θ 表示解码器网络的参数(建模 p(x∣z)),写为 pθ(x∣z)。
现在的目标有两个方面:
- 训练解码器网络 pθ(x∣z),使其能够从隐编码 z 中准确地重建数据 x。
- 训练编码器网络 qϕ(z∣x),使其输出分布能够很好地近似真实的(但难以计算的)后验 pθ(z∣x)。
我们需要一个目标函数,使我们能够共同优化参数 ϕ 和 θ。变分推断通过最大化一个称为**证据下界 (ELBO)**的量来提供这个目标。正如我们将在“推导证据下界 (ELBO)”一节中详细阐述的,最大化 ELBO 等同于最小化近似后验 qϕ(z∣x) 与真实后验 pθ(z∣x) 之间的 KL 散度,同时最大化数据的似然性。
简而言之,VAE 框架巧妙地结合了:
- 一个生成模型(先验 p(z) 和解码器 pθ(x∣z)),它定义了数据是如何假设性地生成的。
- 一个推断模型(编码器 qϕ(z∣x)),它学习在给定观测数据的情况下近似隐变量的后验分布。
通过将 VAE 构造成一个使用变分推断训练的 LVM,我们理解了它为什么能学习到适合生成任务的结构化隐空间。目标函数明确地促使编码器生成平均上接近先验 p(z) 的分布 qϕ(z∣x)(通过 ELBO 中的 KL 散度项),同时确保这些分布中的样本能够被解码回真实的数据点(通过 ELBO 中的重建项)。这种概率方法是 VAE 生成能力得以实现的根本所在,使其与标准自编码器有明显不同。