趋近智
变分自编码器(VAE)代表了自编码器架构的显著进展。标准自编码器擅长降维和学习用于重建的压缩表示,而 VAE 则引入了一个概率框架,使其具备强大的生成能力。它们不仅旨在重建输入,而且旨在学习一个平滑、连续且有结构的潜在空间,从中可以生成新的数据样本。定义 VAE 的主要原理在此解释。
标准自编码器学习一个确定性编码器函数。这意味着对于给定的输入 x,编码器将其直接映射到潜在空间中的一个单一固定点 z。同样,解码器确定性地将该点 z 映射回重建的 x^。
然而,VAE 通过引入概率以不同方式运作。VAE 编码器不为输入 x 输出一个单一的潜在向量。相反,它输出描述潜在空间中一个概率分布的参数。通常,这是一个由均值向量 μx 和方差向量 σx2(或更常见的是其对数 log(σx2),以获得数值稳定性)表征的高斯分布。因此,对于每个输入 x,编码器定义了一个分布 q(z∣x),我们可以从中采样一个潜在向量 z。
可以这样理解:一个标准自编码器可能会说:“这个输入图像映射到我的潜在特征图中的这个精确坐标。” 相比之下,VAE 编码器则说:“这个输入图像很可能来自我的潜在特征图中的这个大致区域,一个由这个特定高斯分布描述的区域。”
VAE 中的编码器网络(通常是一个神经网络)负责学习从输入 x 到概率分布参数的这种映射。对于每个输入,它会生成:
这两个向量 μ 和 log(σ2) 完全参数化了该输入在潜在空间中的一个对角高斯分布。这意味着我们可以从输入 x 采样一个潜在向量 z,表示为 z∼N(μ,diag(σ2)),其中 diag(σ2) 是一个对角协方差矩阵,其对角线上是 σ2。术语 q(z∣x) 是给定输入 x 时潜在变量 z 的这种所学条件概率分布的正式记法。
VAE 中的解码器网络接收一个潜在向量 z,旨在重建原始输入 x 或生成新的样本 x^。在训练期间,z 通常从编码器为特定输入 x 定义的分布 q(z∣x) 中采样。为了在训练后生成全新的数据,z 从选定的先验分布 p(z) 中采样(通常是标准正态分布)。
解码器本身也可以是概率性的,定义一个分布 p(x∣z),它对给定潜在向量 z 时观测到数据 x 的概率进行建模。例如:
因为解码器可以处理从潜在空间中采样的任何点 z(无论是从 q(z∣x) 还是 p(z))以生成数据样本,它有效地充当了生成模型。
变分自编码器中的信息流,显示了概率编码器和解码器组件以及潜在空间中的采样步骤。
VAE 的一个主要目标是学习一个不仅是压缩的,而且是连续的和有明确结构的潜在空间。
为了实现这种理想的结构,VAE 的损失函数(我们将在后续章节详细查看)包含一个重要正则化项。这个正则化项是 Kullback-Leibler (KL) 散度,记作 DKL(q(z∣x)∣∣p(z))。它衡量编码器为给定输入 x 学习到的分布 q(z∣x) 与潜在空间上预定义的先验分布 p(z) 之间的差异。这个先验 p(z) 通常被选择为标准正态分布,即 N(0,I)(在所有维度上均值为零、方差为一的高斯分布)。
通过惩罚 q(z∣x) 偏离 p(z) 的情况,这个 KL 散度项促使编码器:
这种正则化有助于创建平滑、密集的潜在空间,适合采样和有意义的插值。如果编码器试图使每个输入的 σ2 非常小,以完美地确定其潜在位置(本质上表现得像一个标准自编码器),KL 散度项将施加高额惩罚。
一旦 VAE 训练成功,其生成能力可以用来创建新的数据样本,这些样本与训练数据相似但并非直接复制。这个过程很简单:
这种从表现良好的潜在空间采样并生成新颖、一致数据的能力是 VAE 的一个显著特点,使其与较简单的自编码器变体区分开来。概率编码和 KL 正则化是支持这一能力的双重支柱。然而,在训练期间从 q(z∣x) 采样的行为引入了一个随机步骤,这通常会阻止梯度流回编码器。一种称为“重参数化技巧”的巧妙方法,很快就会讲到,优雅地解决了这个难题,从而实现使用标准反向传播对 VAE 进行端到端训练。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造