13.5 VAE 的优点、局限与后续发展

Author

jshn9515

Published

2026-03-28

Modified

2026-04-04

前面几节里,我们已经分别讨论了:

到这里,我们应该已经能够回答 VAE 是什么以及 VAE 为什么这样设计。但是,为什么 VAE 没有成为今天图像生成的主流方法呢?它的优点和局限又是什么呢?

这一节,我们来看看 VAE 的优点与局限性,然后看看它在生成模型领域的位置。

13.5.1 VAE 的优点:为什么它很重要

VAE 之所以经典,不只是因为它能生成图片,是因为它把几个非常关键的思想第一次自然地结合在了一起:

  1. 潜变量建模
  2. 用神经网络参数化复杂分布
  3. 变分推断
  4. 端到端训练

也就是说,VAE 不是简单在 AutoEncoder 上加一个噪声,而是把表示学习、概率建模和神经网络训练统一到了一个框架里。这让它在历史上具有很强的奠基意义。

训练相对稳定

和很多后来的生成模型相比,VAE 的一个巨大优点就是:训练相对稳定。它的目标函数来自清晰的概率推导,通常就是优化 ELBO,也就是:

\[ \mathcal{L}(\theta,\phi;x) = \mathbb{E}_{q_\phi(z\mid x)}[\log p_\theta(x\mid z)] - D_{\mathrm{KL}}(q_\phi(z\mid x)\,\|\,p(z)) \]

这意味着它不像 GAN 那样需要两个网络进行对抗博弈。没有 generator 和 discriminator 之间的拉扯,也没有那么明显的训练震荡、模式坍塌等问题。所以,从训练的角度来看,VAE 是一个相对友好的生成模型。这也是为什么 VAE 很适合作为生成模型入门的重要原因。

有明确的概率解释

普通 AutoEncoder 也能重建,也能学 latent representation,但它缺少一个明确的概率语义。而 VAE 的每一部分都可以放进概率图模型的语言里理解:

  • \(p(z)\):先验分布
  • \(p_\theta(x\mid z)\):生成模型
  • \(q_\phi(z\mid x)\):近似后验
  • ELBO:对对数似然的可优化下界

所以,我们知道 VAE 在假设什么,知道损失函数从哪里来,知道为什么采样生成是合理的,知道每一项正则化在约束什么。这往往比 GAN 那种“黑箱式”的生成更容易理解和分析。

潜空间连续、可解释、可插值

VAE 最吸引人的地方之一,是它学到的 latent space 往往比普通 AE 更规整。由于 KL 项的存在,模型会被鼓励让编码分布贴近先验(通常是标准正态):

\[ q_\phi(z\mid x) \approx \mathcal{N}(0, I) \]

这意味着潜空间通常会具备一些很有用的性质:

  • 连续性:附近的 latent code 往往对应相似样本
  • 平滑性:沿着潜空间移动,生成结果会逐渐变化
  • 可插值性:两个样本之间做 latent interpolation,往往会出现自然的过渡

这也是为什么很多关于生成模型的教学,都会拿 VAE 来展示潜空间几何。

13.5.2 VAE 的局限:为什么生成结果经常偏模糊

尽管 VAE 很优雅,但它也有一些非常典型的局限。其中最常被提到的一点就是:

VAE 生成的图像往往比较平滑,甚至有些模糊。

这是很多初学者第一次跑 VAE 时最直观的感受。看起来模型懂了大概轮廓,但细节不够锐利,边缘也不如 GAN 或后来的 Diffusion 清晰。这并不是偶然的,而是和 VAE 的目标函数、概率假设、以及训练方式都有关系。

重建目标更偏向“平均意义上的合理”

VAE 常常通过最大化对数似然来训练,而在很多实现里,这等价于最小化某种逐像素的重建误差,比如 MSE 或 BCE。当一个输入可能对应多种细节时,逐像素损失往往会鼓励模型输出一种平均化的结果。

例如,对于一张脸图像:

  • 某些局部纹理可能有多种合理取值
  • 头发的微小走向可能不唯一
  • 背景细节可能有不确定性

如果模型试图在像素层面同时兼顾多种可能,最安全的做法往往就是输出一个折中平均的结果。而这种平均化,视觉上就会表现为模糊。所以,VAE 的模糊并不一定说明它没学会,而更多是在说明它优化的是概率似然和整体结构,而不是视觉上最锐利的样本质量。

KL 正则会压缩表达能力

VAE 的另一个关键目标是让编码分布接近先验:

\[ D_{\mathrm{KL}}(q_\phi(z\mid x)\,\|\,p(z)) \]

这一项让潜空间更规整,但它也意味着模型不能无限制地把每个样本都编码得特别个性化。换句话说,KL 项在鼓励模型,不要把每个样本都藏在潜空间非常偏僻的角落,不要让后验分布太过复杂,尽量用一个更紧凑、更统一的方式来表达数据。这当然有助于生成时从先验采样,但代价是,某些高频细节、局部差异和精细纹理可能会被牺牲。

所以,VAE 就在做一种平衡,又想让重建更像原图,又想让 latent space 更规整。这两者并不总是完全一致。

Decoder 太强时,latent variable 可能被忽略

这会引出一个更深一点的问题:后验坍塌(posterior collapse)

所谓后验坍塌,是指模型在训练中逐渐出现这样一种情况:

\[ q_\phi(z\mid x) \approx p(z) \]

也就是说,不管输入 \(x\) 是什么,encoder 输出的后验都差不多像先验。这意味着 latent variable 几乎没有携带与 \(x\) 相关的信息。如果这时 decoder 足够强,它可能只依赖自身的建模能力去重建数据,而不太使用 \(z\)

这样的后果就是,KL 项变得很小,潜变量失去信息量,模型表面上还能训练,但 latent representation 变得没有意义。这在序列建模、文本建模里尤其常见,因为强大的 autoregressive decoder 很容易绕开 latent variable。

13.5.3 VAE 的几类常见改进

VAE 的经典结构已经很优雅,但研究者很快就发现,如果想进一步提高表示质量、生成质量,或者让潜变量更有语义结构,就需要做各种扩展。下面列几个最常见、也最值得知道的方向。

\(\beta\)-VAE:更强调潜空间规整 (Higgins et al. 2017)

\(\beta\)-VAE 在标准 VAE 的基础上,把 KL 项前面乘上一个系数 \(\beta\)

\[ \mathcal{L}_{\beta\text{-VAE}} = \mathbb{E}_{q_\phi(z\mid x)}[\log p_\theta(x\mid z)] - \beta D_{\mathrm{KL}}(q_\phi(z\mid x)\,\|\,p(z)) \]

\(\beta > 1\) 时,模型会更强地被要求贴近先验。这样,潜空间会变得更规整、更容易分解出独立因素,但代价是重建质量可能会下降。这里的独立因素,指的就是潜空间里不同维度更可能对应不同的语义属性,比如姿态、缩放、旋转、光照、颜色等。这类表示通常被称为 解耦表示(disentangled representation)

Conditional VAE:带条件的生成 (Sohn et al. 2015)

如果我们希望模型不只是随机生成,而是按条件生成,就可以把条件变量 \(y\) 加进模型中。例如,给定类别标签、属性、文本描述等条件,生成对应的图像。这时,生成过程会变成:

\[ p_\theta(x\mid z, y) \]

而 encoder 也可以写成:

\[ q_\phi(z\mid x, y) \]

这样模型就不只是学数据总体长什么样,而是在学在某个条件下,数据会怎么变化。

Conditional VAE 也是很多条件生成方法的一个基础起点。

VQ-VAE:把连续 latent 变成离散码本 (Oord et al. 2018)

标准 VAE 使用连续潜变量,通常假设是高斯分布。而 VQ-VAE (Vector Quantized VAE) 则走了另一条路:把 latent representation 离散化。

简单来说,它会维护一个码本(codebook),encoder 输出一个连续向量后,再把它映射到最近的离散 embedding 上。这样,潜变量就可以更像离散符号,从而更适合与自回归模型或 token-based 模型结合。VQ-VAE 在图像、语音、离散表征学习里都有很大的影响力,后来的很多视觉 token 方法,其思想都能和 VQ-VAE 联系起来。

13.5.4 VAE 在生成模型发展史中的位置

学到这里,我们先来把几种生成模型放在一起比较一下:

表 1:生成模型的优缺点比较
模型 核心思想 优点 局限
GAN 生成器与判别器对抗训练 样本锐利、逼真 训练不稳定,容易模式坍塌
AutoEncoder 压缩并重建输入 结构简单,适合表示学习 潜空间不规整,不适合直接采样
VAE 潜变量概率建模和变分推断 训练稳定,潜空间平滑,可采样 结果偏模糊,可能存在后验坍塌
Diffusion 逐步加噪与去噪生成 质量高,训练较稳 采样慢,系统较复杂

所以,VAE 不是追求最强视觉质量的模型,而是追求一种更规整、更可解释、更有概率意义的生成框架。所以,如果我们的问题是,怎么把概率建模和表示学习结合起来,怎么让潜空间更有结构,那么 VAE 几乎是绕不过去的一步。

VAE 是生成模型发展史上的一个重要里程碑。在 VAE 出现之前,人们已经知道可以利用 AutoEncoder 学习数据表示,可以借助概率图模型进行隐变量建模,也可以用变分方法近似复杂后验分布。而 VAE 的关键贡献在于,它将这些思想统一到同一个框架中,形成了一个端到端可训练的生成模型。在 VAE 之后,扩散模型逐渐成为主流。LDM (Latent Diffusion Model) 进一步提出,先将数据压缩到一个更紧凑、结构更清晰的 latent space,再在这一潜空间中完成生成过程,可以显著提升生成效率。这一思路也催生了首个广泛商业化的图像生成模型:Stable Diffusion。从某种意义上说,Stable Diffusion 所依赖的 latent space,正是由一个 VAE 学习得到的潜在表示。

下一章,我们来讲生成模型的最后一部分:Diffusion Model

References

Higgins, Irina, Loic Matthey, Arka Pal, et al. 2017. “Beta-VAE: Learning Basic Visual Concepts with a Constrained Variational Framework.” International Conference on Learning Representations. https://openreview.net/forum?id=Sy2fzU9gl.
Oord, Aaron van den, Oriol Vinyals, and Koray Kavukcuoglu. 2018. Neural Discrete Representation Learning. https://arxiv.org/abs/1711.00937.
Sohn, Kihyuk, Honglak Lee, and Xinchen Yan. 2015. “Learning Structured Output Representation Using Deep Conditional Generative Models.” In Advances in Neural Information Processing Systems, edited by C. Cortes, N. Lawrence, D. Lee, M. Sugiyama, and R. Garnett, vol. 28. Curran Associates, Inc.

Reuse