KAIST CS492D: 生成模型导论 — GAN 与 VAE
| 字段 | 内容 |
|---|---|
| 作者/整理 | 基于 Minhyuk Sung 授课内容整理 |
| 来源 | Minhyuk Sung (KAIST) |
| 日期 | 2025年秋季 |

课程概览与生成模型的核心问题
本讲是 KAIST CS492D “Diffusion and Flow Models” 课程的第一讲。在正式进入 Diffusion Model 和 Flow Model 之前,授课教师 Minhyuk Sung 首先回顾了生成模型(Generative Models)的基础知识,涵盖采样理论、GAN(Generative Adversarial Network)和 VAE(Variational Autoencoder)两大经典范式,以及支撑这些模型的概率统计工具。
什么是生成模型?
生成模型的核心任务可以用一句话概括:给定一组数据样本,学习一个模型,使之能够生成新的、看起来与训练数据相似但又不完全相同的样本。
以图像为例,假设我们有一个包含 58 亿张图像的超大规模数据集(如 LAION-5B),生成模型的目标就是训练一个模型,使其能够产出全新的、逼真的图像——既不是简单地从数据集中复制某张图片,也不是随机噪声,而是分布上与真实图像一致的全新样本。
生成模型的统计视角
从统计学角度看,生成模型的问题可以形式化为:假设所有数据点 \(x_1, x_2, \ldots, x_N\) 都是从某个未知的概率分布 \(p_{\text{data}}(x)\) 中独立同分布(i.i.d.)采样得到的,我们的目标是学习这个分布,从而能够从 \(p_{\text{data}}(x)\) 中采样新的数据点。
为了帮助理解,授课教师从一个更简单的场景出发:假设我们有一组二维平面上的点,它们形成某种特定的形状(例如两个半月形)。那么问题变为:如何构建一个模型,使其能够生成新的点,使这些新点看起来像是从同一个分布中采样得到的?
从简单到复杂:图像作为高维向量
一张 \(256 \times 256\) 的 RGB 图像,可以展平为一个 \(256 \times 256 \times 3 = 196{,}608\) 维的向量。因此,一组图像就是高维空间中的一组点,图像生成的问题本质上等价于在这个高维空间中采样。
图像的向量化表示
每张 \(H \times W\) 的 RGB 图像可以看作 \(\mathbb{R}^{H \times W \times 3}\) 空间中的一个点。图像集合就是该高维空间中的点云,它们共同定义了一个数据分布 \(p_{\text{data}}(x)\)。生成模型的任务就是从这个分布中采样新的点(即新的图像)。
本章小结
生成模型的核心思想是将数据建模为某个概率分布的样本,通过学习这个分布来生成新数据。无论是二维点还是高维图像,问题的数学本质是一样的——从未知分布中采样。
采样理论基础
在讨论如何学习复杂的数据分布之前,授课教师首先回顾了一个基本问题:如果我们已经知道了一个概率分布,如何从中采样?
逆变换采样(Inverse Transform Sampling)
离散情形:从 Categorical 分布采样
考虑一个有 \(K\) 个状态的 categorical 分布,每个状态 \(k\) 有概率 \(p_k\),且 \(\sum_{k=1}^K p_k = 1\)。从这个分布采样的经典方法是逆变换采样:
- 计算累积分布函数(CDF):\(F(k) = \sum_{i=1}^{k} p_i\)
- 从均匀分布 \(U \sim \text{Uniform}(0, 1)\) 中采样一个值 \(u\)
- 找到满足 \(F(k-1) < u \leq F(k)\) 的状态 \(k\),该状态即为采样结果
直觉上,概率越高的状态在 CDF 的 \(y\) 轴上占据的“区间”越宽,因此均匀采样落入该区间的概率也越大。
连续情形
对于连续随机变量 \(X\),其概率密度函数为 \(f(x)\),CDF 为:
逆变换采样的步骤为:
- 采样 \(u \sim \text{Uniform}(0, 1)\)
- 计算 \(x = F^{-1}(u)\)
逆变换采样的核心公式
设 \(F\) 为连续分布的 CDF,\(F^{-1}\) 为其逆函数,则:
关键前提:必须能够计算 CDF 的逆函数 \(F^{-1}\)。
课堂练习:从 \(f(x) = 3/8x^2\) 采样
授课教师给出了一个小练习:设 PDF 为 \(f(x) = \frac{3}{8}x^2\),\(x \in {[}-2, 2{]}\),求逆变换采样的采样公式。
解法:
- 计算 CDF:\(F(x) = \int_{-2}^{x} \frac{3}{8}t^2 \, dt = \frac{1}{8}(x^3 + 8)\)
- 令 \(u = F(x)\),解出 \(x\):\(u = \frac{1}{8}(x^3 + 8) \implies x = (8u - 8)^{1/3} = 2(u-1)^{1/3}\)
- 不对,更仔细的推导:\(x^3 = 8u - 8 \implies x = \sqrt{[}3{]}{8u - 8}\)
因此采样过程为:先采 \(u \sim \text{Uniform}(0,1)\),再计算 \(x = (8u - 8)^{1/3}\)。
高斯分布的采样:Box-Muller 变换
问题的提出
标准正态分布 \(\mathcal{N}(0, 1)\) 的 PDF 为:
其 CDF \(\Phi(x) = \int_{-\infty}^{x} f(t) \, dt\) 没有解析形式的逆函数,因此无法直接使用逆变换采样。
高斯 CDF 不可逆的陷阱
虽然高斯分布的 PDF 有优美的解析形式,但其 CDF 的逆函数(即 probit 函数)不存在封闭形式。这意味着不能直接对高斯分布使用最简单的逆变换采样方法。实践中需要借助变量替换等技巧。
Box-Muller 变换的推导
Box-Muller 变换的核心思想是:同时考虑两个独立的标准正态样本,通过极坐标变换使得每个分量都可以用逆变换采样。
设 \(X, Y \overset{\text{i.i.d.}}{\sim} \mathcal{N}(0, 1)\),其联合密度为:
引入极坐标变量 \(D = X^2 + Y^2\)(平方半径)和 \(\Theta\)(角度),可以证明:
- \(\Theta \sim \text{Uniform}(0, 2\pi)\)(角度均匀分布,直接采样)
- \(D \sim \text{Exponential}(1/2)\),即 \(f_D(d) = \frac{1}{2}e^{-d/2}\)(\(\chi^2\) 分布,自由度为 2)
对 \(D\) 的分布,CDF 为 \(F_D(d) = 1 - e^{-d/2}\),其逆函数为:
由于 \(1-u\) 与 \(u\) 同为 \(\text{Uniform}(0,1)\),可简化为 \(d = -2\ln(u)\)。
Box-Muller 变换的完整公式
给定两个独立的均匀分布样本 \(U_1, U_2 \sim \text{Uniform}(0,1)\):
则 \(X, Y\) 为两个独立的标准正态分布样本。一次变换可以同时得到两个高斯样本。
多元高斯分布的采样与 Reparameterization
各向同性(Isotropic)高斯分布
对于多元标准正态分布 \(\mathcal{N}(\mathbf{0}, \mathbf{I})\),由于各维度独立,可以对每个维度分别用 Box-Muller 变换采样。
各向异性(Anisotropic)高斯分布
对于一般的多元高斯分布 \(\mathcal{N}(\boldsymbol{\mu}, \boldsymbol{\Sigma})\),采样方法为重参数化(Reparameterization):
其中 \(\mathbf{L}\) 满足 \(\boldsymbol{\Sigma} = \mathbf{L}\mathbf{L}^T\)(例如 Cholesky 分解)。
Reparameterization Trick
从 \(\mathcal{N}(\boldsymbol{\mu}, \boldsymbol{\Sigma})\) 采样等价于:
这个技巧不仅是采样的基础,更是 VAE 中实现梯度反向传播的关键——它将随机性“分离”到 \(\boldsymbol{\epsilon}\) 中,使得采样过程对 \(\boldsymbol{\mu}\) 和 \(\boldsymbol{\Sigma}\) 可微。
为什么生成模型偏爱高斯分布?
高斯分布在生成模型中无处不在,原因包括:(1)我们知道如何高效采样;(2)高斯分布具有优良的数学性质(如 KL 散度有闭合形式);(3)中心极限定理保证许多分布渐近趋向高斯;(4)在给定均值和方差的约束下,高斯分布是最大熵分布。
本章小结
当概率分布的形式已知时,我们可以通过逆变换采样、变量替换(如 Box-Muller 变换)以及重参数化等技术进行采样。然而,现实中的数据分布(如自然图像的分布)形式未知,且极其复杂——这正是需要深度生成模型的原因。
生成模型的统一框架:从 Latent 到 Data
核心思想:学习分布间的映射
所有生成模型的共同思路
所有深度生成模型(GAN、VAE、Diffusion Model、Flow Model)共享同一个核心思想:学习一个从简单分布(latent distribution)到复杂数据分布(data distribution)的映射。
具体而言:
- 选择一个容易采样的简单分布作为 latent distribution \(p(z)\)(通常是标准高斯分布 \(\mathcal{N}(\mathbf{0}, \mathbf{I})\))
- 用神经网络学习一个映射 \(G_\theta: z \mapsto x\)
- 生成时:采样 \(z \sim p(z)\),计算 \(x = G_\theta(z)\)
不同模型的区别在于如何训练这个映射。
符号约定
本课程使用以下贯穿始终的符号:
| 符号 | 含义 | 说明 |
|---|---|---|
| \(z\) | latent 变量 | 来自简单分布(通常为 \(N(0, I)\)) |
| \(x\) | 数据点 | 来自训练数据集 |
| \(p(z)\) | latent / prior 分布 | 已知 |
| \(p(x)\) / \(p_data(x)\) | 数据分布 | 未知,这是我们要逼近的目标 |
| $p_θ(x | z)$ | likelihood 分布 |
| $p(z | x)$ | posterior 分布 |
Autoencoder 的启发
Autoencoder 是理解生成模型的一个起点:
- Encoder:\(f_\phi: x \mapsto z\),将数据点压缩到低维 latent 空间
- Decoder:\(g_\theta: z \mapsto \hat{x}\),从 latent 表示重建数据
- 训练目标:最小化重建误差 \(\|x - g_\theta(f_\phi(x))\|^2\)
在生成模型的语境下,decoder 就是我们需要的映射——它将 latent 空间中的点映射到数据空间。但关键问题是:如何保证 decoder 能够将 latent distribution 中的任意采样点都映射为合理的数据点?
Autoencoder 不等于生成模型
普通 Autoencoder 的 latent 空间并不服从某个已知的简单分布。如果我们直接从 latent 空间随机采样一个点 \(z\) 并送入 decoder,得到的输出很可能不像真实数据。VAE 正是通过对 latent 空间施加先验约束来解决这个问题。
本章小结
生成模型的统一范式是:从一个已知的简单分布 \(p(z)\) 出发,通过神经网络学习到数据分布 \(p_{\text{data}}(x)\) 的映射。GAN、VAE、Diffusion Model 和 Flow Model 的区别仅在于训练策略的不同。Autoencoder 的 decoder 提供了这种映射的雏形,但需要额外的机制来保证 latent 空间的结构化。
GAN:生成对抗网络
从对抗攻击到生成模型
GAN 的思想起源于对抗攻击(Adversarial Attack)。授课教师通过一个经典例子说明:一个训练好的分类器可以正确识别熊猫,但如果在图像上添加一个人眼几乎不可见的微小扰动(噪声),分类器就会将其误判为鸵鸟——即使将差异放大 10 倍,人眼也很难看出区别。
从对抗攻击到 GAN 的思想飞跃
对抗攻击揭示了一个事实:神经网络可以对人眼无法察觉的细微变化极其敏感。GAN 的创始人 Ian Goodfellow 正是受此启发:如果一个网络(攻击者/生成器)可以生成“欺骗”另一个网络(防御者/判别器)的样本,那么通过两者的竞争,生成器最终能学会生成逼真的数据。
GAN 的架构
GAN 由两个神经网络组成:
- Generator(生成器) \(G_\theta\):接受 latent 样本 \(z \sim p(z)\),输出“假”数据点 \(G_\theta(z)\)
- Discriminator(判别器) \(D_\phi\):接受一个数据点,输出该数据点为“真实数据”的概率 \(D_\phi(x) \in {[}0, 1{]}\)
生成器和判别器互相竞争:
- 判别器的目标:正确区分真实数据和生成数据
- 生成器的目标:生成能骗过判别器的样本
GAN 的损失函数:Minimax 博弈
GAN 的训练目标是一个 minimax 优化问题:
GAN 损失函数各项的含义
- \(\mathbb{E}_{x \sim p_{\text{data}}} {[}\log D_\phi(x){]}\):对真实数据,判别器应输出高概率(接近 1),使 \(\log D_\phi(x)\) 尽量大
- \(\mathbb{E}_{z \sim p(z)} {[}\log(1 - D_\phi(G_\theta(z))){]}\):对生成数据 \(G_\theta(z)\),判别器应输出低概率(接近 0),使 \(1 - D_\phi(G_\theta(z))\) 接近 1
判别器通过最大化 \(V\) 来提高区分能力;生成器通过最小化 \(V\) 来提高欺骗能力。
判别器的最优解
固定生成器 \(G_\theta\),对判别器求最优解:
其中 \(p_G(x)\) 是生成器诱导的分布。当 \(p_G = p_{\text{data}}\) 时,\(D^*(x) = 1/2\),即判别器无法区分真假——这正是 GAN 训练收敛的理想状态。
全局最优的 GAN
可以证明,当 \(p_G = p_{\text{data}}\) 时,损失函数达到全局最小值 \(-2\log 2\)。此时生成器的分布与数据分布完全匹配。
GAN 的训练难题
GAN 训练中的常见问题
Minimax 优化问题在实践中极其难以优化,容易陷入糟糕的局部最优。常见的失败模式包括:
- 判别器过强(Discriminator Dominance):判别器收敛速度远快于生成器,导致生成器得到的梯度信号极弱(几乎为零),无法有效学习。这是最常见的失败模式。
- Mode Collapse(模式坍塌):即使训练顺利进行,生成器也可能只学会生成数据分布中的部分模式(modes),丢失了数据的多样性。例如在多模态数据上,生成器可能只集中生成某一个模式的样本。
- 训练不稳定:loss 曲线剧烈震荡,难以判断是否收敛。
授课教师提到了一个生动的类比:如果你一开始就设定了极其严格的成功标准(discriminator 太强),那就什么也学不到了——这就像生活中的道理一样。
GAN 训练的工程实践
在实践中,GAN 训练需要大量的工程技巧:
- 通常先预训练生成器几步,让它能产出略有意义的输出,再引入判别器进行对抗训练
- 需要仔细平衡两个网络的学习率和训练步数比例
- 许多公司在 2020 年之前投入了大量专门的工程团队来调试 GAN 训练参数
GAN 的发展历程
GAN 自 2013/2014 年由 Goodfellow 等人提出后,涌现了大量变体。授课教师简要提到了几个里程碑式的工作:
| 模型 | 年份 | 主要贡献 |
|---|---|---|
| GAN | 2014 | 提出对抗训练框架 |
| DCGAN | 2015 | 引入卷积架构 |
| WGAN | 2017 | 用 Wasserstein 距离替代 JS 散度 |
| Progressive GAN | 2017 | 渐进式增长训练策略 |
| StyleGAN / StyleGAN2 | 2019/2020 | 高质量人脸生成 |
为什么从 GAN 转向 Diffusion Model?
授课教师指出,业界从 GAN 转向 Diffusion/Flow Model 的主要原因并非质量——StyleGAN 在 2019 年已经能生成非常逼真的人脸图像。真正的驱动力是:(1)训练困难——minimax 优化极不稳定,需要大量工程投入;(2)多样性不足——mode collapse 问题导致生成样本缺乏多样性。Diffusion Model 通过将生成过程分解为多步去噪,巧妙地规避了这两个问题。
本章小结
GAN 通过生成器和判别器的对抗博弈来学习数据分布,其理论框架优美(minimax 博弈在理想情况下能精确匹配数据分布),但实践中面临训练不稳定、mode collapse 等严重问题。这些问题促使了 VAE 和后来的 Diffusion Model 等替代方案的发展。
VAE:变分自编码器
从 GAN 到 VAE 的动机
GAN 的核心困难在于 minimax 优化。VAE 的思路是:能否不用对抗训练,而是通过更稳定的方式学习从 latent distribution 到 data distribution 的映射?
VAE 的关键创新在于:不再学习一个确定性的映射函数 \(G_\theta(z)\),而是学习一个条件概率分布 \(p_\theta(x|z)\),即给定 latent 变量 \(z\) 后,数据 \(x\) 的分布。
VAE 的概率框架
生成过程(Generative Process)
VAE 定义了以下生成过程:
- 从先验分布采样:\(z \sim p(z) = \mathcal{N}(\mathbf{0}, \mathbf{I})\)
- 从 likelihood 分布采样:\(x \sim p_\theta(x|z) = \mathcal{N}(\mu_\theta(z), \sigma^2 \mathbf{I})\)
其中 \(\mu_\theta(z)\) 是 decoder 神经网络的输出(给定 \(z\) 预测 \(x\) 的均值),\(\sigma^2\) 是固定的方差超参数。
VAE 的概率生成模型
其中:
- \(p(z) = \mathcal{N}(\mathbf{0}, \mathbf{I})\):先验分布(prior),已知
- \(p_\theta(x|z) = \mathcal{N}(\mu_\theta(z), \sigma^2 \mathbf{I})\):似然分布(likelihood),由 decoder 参数化
- \(p_\theta(x) = \int p_\theta(x|z) p(z) \, dz\):边际似然(marginal likelihood),对 \(z\) 积分得到
训练目标:最大化边际似然
理想情况下,我们希望最大化数据的边际对数似然:
边际似然不可计算
积分 \(p_\theta(x) = \int p_\theta(x|z) p(z) \, dz\) 在高维空间中无法精确计算。直觉上:latent 空间的维度可能是数百维,对所有可能的 \(z\) 做积分是不现实的。这就是为什么我们需要变分推断(Variational Inference)。
概率论回顾:VAE 所需的数学工具
边际化(Marginalization)
给定联合分布 \(p(x, z)\),通过对一个变量积分(或求和),可以得到另一个变量的边际分布:
贝叶斯定理(Bayes' Rule)
各项的术语约定:
| 符号 | 名称 |
|---|---|
| \(p(z)\) | Prior(先验):关于 \(z\) 的先验知识 |
| $p(x | z)$ |
| $p(z | x)$ |
| \(p(x)\) | Evidence / Marginal Likelihood(证据):数据的边际概率 |
KL 散度(Kullback-Leibler Divergence)
KL 散度衡量两个概率分布之间的“距离”(注意:它不是对称的,因此不是严格意义上的距离度量):
KL 散度的关键性质
- 非负性:\(D_{\mathrm{KL}}(p \| q) \geq 0\),当且仅当 \(p = q\) 几乎处处相等时取等
- 非对称性:一般 \(D_{\mathrm{KL}}(p \| q) \neq D_{\mathrm{KL}}(q \| p)\)
- 两个高斯分布之间的 KL 散度有封闭形式
两个多元高斯分布的 KL 散度
设 \(p = \mathcal{N}(\boldsymbol{\mu}_1, \boldsymbol{\Sigma}_1)\),\(q = \mathcal{N}(\boldsymbol{\mu}_2, \boldsymbol{\Sigma}_2)\),则:
其中 \(d\) 是维度。特别地,当 \(q = \mathcal{N}(\mathbf{0}, \mathbf{I})\) 时:
这个公式在 VAE 训练中直接使用。
Jensen 不等式与 ELBO 的推导
凸函数与 Jensen 不等式
凸函数(Convex Function)的定义:对任意点 \(x_1, \ldots, x_n\) 和权重 \(t_1, \ldots, t_n\)(\(t_i \geq 0\), \(\sum t_i = 1\)),满足:
直觉上,凸函数的图形“向下弯曲”,任意两点之间的线段都在函数图形之上。
凹函数(Concave Function)是凸函数的相反:函数图形“向上弯曲”,\(-f\) 为凸函数。\(\log\) 函数是一个重要的凹函数。
Jensen 不等式
设 \(f\) 为凸函数,\(X\) 为随机变量,则:
若 \(f\) 为凹函数(如 \(\log\)),不等式方向反转:
即 \(\log(\mathbb{E}{[}X{]}) \geq \mathbb{E}{[}\log X{]}\)。
ELBO 的推导
ELBO(Evidence Lower Bound)是 VAE 训练的核心目标。以下是完整推导过程。
出发点:我们想最大化边际对数似然 \(\log p_\theta(x)\),但它不可直接计算。引入一个近似后验分布 \(q_\phi(z|x)\)(encoder),我们有:
最后一行就是 ELBO:
ELBO 的分解
将 \(p_\theta(x, z) = p_\theta(x|z)p(z)\) 代入,ELBO 可以分解为两项:
$$
$$
- **重建项**(Reconstruction Term):$\mathbb{E}_{z \sim q_\phi(z|x)} {[}\log p_\theta(x|z){]}$ ——衡量 decoder 从 $z$ 重建 $x$ 的能力。当 $p_\theta(x|z) = \mathcal{N}(\mu_\theta(z), \sigma^2 I)$ 时,这一项等价于负的均方误差(MSE)。
- **正则项**(Regularization / KL Term):$-D_{\mathrm{KL}}(q_\phi(z|x) \| p(z))$ ——鼓励 encoder 的输出分布接近先验 $p(z) = \mathcal{N}(\mathbf{0}, \mathbf{I})$,从而使 latent 空间结构化。
ELBO 与边际似然的关系
实际上,可以更精确地写出:
ELBO 是下界而非等式
由于 \(D_{\mathrm{KL}}(q_\phi(z|x) \| p_\theta(z|x)) \geq 0\),ELBO 始终小于等于真实的边际对数似然 \(\log p_\theta(x)\)。差距(gap)等于近似后验 \(q_\phi(z|x)\) 与真实后验 \(p_\theta(z|x)\) 之间的 KL 散度。当 \(q_\phi(z|x) = p_\theta(z|x)\) 时(近似后验恰好等于真实后验),ELBO 等于 \(\log p_\theta(x)\),gap 为零。
VAE 的网络架构
在实现层面,VAE 包括:
- Encoder 网络 \(q_\phi(z|x)\):输入 \(x\),输出 \(\mu_\phi(x)\) 和 \(\sigma_\phi(x)\)(latent 分布的均值和标准差)
- Decoder 网络 \(p_\theta(x|z)\):输入 \(z\),输出 \(\mu_\theta(z)\)(重建 \(x\) 的均值)
- 采样过程:通过 reparameterization trick 采样 \(z = \mu_\phi(x) + \sigma_\phi(x) \odot \epsilon\),\(\epsilon \sim \mathcal{N}(\mathbf{0}, \mathbf{I})\)
Reparameterization Trick 在 VAE 中的关键作用
直接从 \(q_\phi(z|x) = \mathcal{N}(\mu_\phi(x), \sigma^2_\phi(x) \mathbf{I})\) 采样 \(z\) 的操作不可微分,无法通过反向传播优化 \(\phi\)。Reparameterization trick 将采样写为 \(z = \mu_\phi(x) + \sigma_\phi(x) \odot \epsilon\)(其中 \(\epsilon \sim \mathcal{N}(\mathbf{0}, \mathbf{I})\) 与参数无关),使得梯度可以流过 \(\mu_\phi\) 和 \(\sigma_\phi\),实现端到端训练。
VAE 的损失函数
综合以上推导,VAE 的训练目标是最大化 ELBO,等价于最小化以下损失函数:
当 \(p_\theta(x|z) = \mathcal{N}(\mu_\theta(z), \sigma^2 \mathbf{I})\) 且 \(p(z) = \mathcal{N}(\mathbf{0}, \mathbf{I})\) 时:
VAE 损失函数的直觉
VAE 的损失由两部分组成:
- 重建误差(MSE):迫使模型准确重建输入数据
- KL 惩罚:迫使 latent 分布接近标准高斯,使 latent 空间平滑、连续、可采样
两项之间存在张力:重建误差希望 latent 编码尽可能保留信息(可能导致各数据点的 latent 分布互不重叠),KL 项则迫使所有 latent 分布向标准高斯靠拢(可能导致信息丢失)。找到好的平衡点是 VAE 调参的核心。
VAE 与 Diffusion Model 的联系
授课教师在讲解 VAE 时多次预示:VAE 的思想与 Diffusion Model 直接相关。具体而言:
- Diffusion Model 可以理解为一种“层次化”的 VAE,其 latent 变量是一系列逐步加噪的中间状态
- ELBO 的推导方法可以直接推广到 Diffusion Model
- VAE 中的 reparameterization trick 在 Diffusion Model 中同样不可或缺
本章小结
VAE 通过变分推断规避了 GAN 的 minimax 优化难题。它引入 encoder(近似后验)和 decoder(likelihood),通过最大化 ELBO(边际对数似然的下界)来训练。ELBO 自然分解为重建项和 KL 正则项,两者的平衡决定了生成质量和 latent 空间的结构化程度。VAE 的训练比 GAN 稳定得多,且其概率框架为后续的 Diffusion Model 奠定了理论基础。
概率论工具箱
本节汇总本讲涉及的关键概率论概念和公式,供快速查阅。
边际化(Marginalization)
在离散情形下,积分替换为求和:\(p(x) = \sum_z p(x, z)\)
条件概率与贝叶斯定理
期望(Expectation)
对于离散随机变量:\(\mathbb{E}{[}X{]} = \sum_i x_i p(x_i)\)
KL 散度
等号成立当且仅当 \(p = q\)(几乎处处)。
Jensen 不等式
对凸函数 \(f\):\(f(\mathbb{E}{[}X{]}) \leq \mathbb{E}{[}f(X){]}\)
对凹函数 \(f\)(如 \(\log\)):\(f(\mathbb{E}{[}X{]}) \geq \mathbb{E}{[}f(X){]}\)
本章小结
边际化、贝叶斯定理、KL 散度和 Jensen 不等式是理解 VAE 和 Diffusion Model 的数学基础。特别是 Jensen 不等式直接导出了 ELBO,而 KL 散度同时出现在 ELBO 的分解和 VAE 的正则项中。
总结与延伸
本讲核心要点
本讲是 KAIST CS492D 课程的导论,系统性地建立了生成模型的理论框架:
- 生成模型的核心问题:给定数据样本,学习底层数据分布 \(p_{\text{data}}(x)\),从而生成新样本
- 统一框架:所有深度生成模型都在学习从简单分布 \(p(z)\) 到数据分布 \(p_{\text{data}}(x)\) 的映射
- GAN:通过生成器-判别器的对抗博弈(minimax 优化)学习映射。理论优美但训练极不稳定
- VAE:通过变分推断学习条件分布 \(p_\theta(x|z)\),最大化 ELBO。训练稳定,为 Diffusion Model 奠定基础
- 数学工具:逆变换采样、Box-Muller 变换、reparameterization trick、边际化、贝叶斯定理、KL 散度、Jensen 不等式
GAN vs. VAE 对比
| 特性 | GAN | VAE |
|---|---|---|
| 训练方式 | Minimax 对抗训练 | 最大化 ELBO |
| 训练稳定性 | 不稳定,容易失败 | 相对稳定 |
| 生成质量 | 高(尤其是图像清晰度) | 中等(倾向模糊) |
| 多样性 | 容易 mode collapse | 较好 |
| 理论基础 | 博弈论 | 变分推断 |
| 是否有 encoder | 无(仅 generator + discriminator) | 有(encoder + decoder) |
| latent 空间结构 | 无显式约束 | 有 KL 正则化约束 |
| 与 Diffusion 关系 | 弱 | 强(ELBO 框架直接推广) |
展望:Diffusion Model 与 Flow Model
本讲为后续课程内容铺垫了所有必要的理论基础。在接下来的讲次中,课程将深入探讨:
- Diffusion Model:可以理解为一种“多步 VAE”,通过逐步加噪和去噪来建模数据分布。ELBO 的推导可以直接推广到 diffusion 设定下
- Flow Model:通过可逆变换直接建模精确的对数似然(不需要 ELBO 这样的下界近似)
- Score-based Model:从另一个角度——学习数据分布的 score function(对数密度的梯度)——来实现生成
本讲的采样理论(逆变换采样、reparameterization trick)、概率框架(prior / likelihood / posterior)以及 ELBO 推导将在后续每一讲中反复出现和深化。
拓展阅读
- Goodfellow et al., Generative Adversarial Nets, NeurIPS 2014
- Kingma & Welling, Auto-Encoding Variational Bayes, ICLR 2014
- Kingma & Welling, An Introduction to Variational Autoencoders, Foundations and Trends in ML, 2019
- Doersch, Tutorial on Variational Autoencoders, arXiv:1606.05908
- KAIST CS492D 课程主页:https://diffusion.kaist.ac.kr/