🎯 本章一句话总结: 生成模型的核心任务不是寻找唯一"最佳答案",而是学习一个未知的数据分布,并从中产生新的样本。
学习目标#
- 理解生成式 AI 与预测式 AI 的根本区别。
- 能把图像、视频和分子结构统一表示为向量。
- 理解"生成即采样"以及数据分布 $p_{\text{data}}$ 的含义。
- 区分真实数据分布、有限数据集与训练后的生成模型。
- 理解无条件生成和条件/引导生成的区别。
1.1 课程要解决什么问题#
传统机器学习系统主要完成预测:输入一个对象,输出标签、数值或判断。生成式 AI 则需要创造新的对象,例如图像、视频、文本或蛋白质结构。
本课程研究两类核心方法:
- Flow Matching(流匹配)
- Denoising Diffusion Models(去噪扩散模型)
它们共享同一条主线:从一个容易采样的噪声分布出发,通过神经网络控制的 ODE 或 SDE,逐步把噪声转化成符合数据分布的样本。
💡 直觉: 从数据加噪得到噪声很容易;学习如何逆转这一过程,把噪声逐步变成数据,就是生成建模。
1.2 全课程路线图#
| 章节 | 核心问题 |
|---|---|
| 第 1 章 | 如何把"生成"表述成概率采样问题? |
| 第 2 章 | 如何利用 ODE/SDE 把噪声输运为数据? |
| 第 3 章 | 如何用 Flow Matching 学习 ODE 的向量场? |
| 第 4 章 | 如何学习 score function,并使用 SDE 采样? |
| 第 5 章 | 如何通过 Guidance 让结果服从提示词? |
| 第 6 章 | 如何用 DiT、VAE 和潜空间构建大规模生成器? |
| 第 7 章 | 如何把扩散模型推广到文本等离散数据? |
需要的主要预备知识是概率论;讲义附录 A 提供了简要复习。
1.3 生成建模即采样#
关键思想 1:生成对象可以表示为向量#
对连续数据,先把对象数值化:
- 图像:$z \in \mathbb{R}^{H \times W \times 3}$,三个通道对应 RGB。
- 视频:$z \in \mathbb{R}^{T \times H \times W \times 3}$,比图像多一个时间/帧维度。
- 分子结构:一种简单表示是 $z=(z^1,\ldots,z^N) \in \mathbb{R}^{3 \times N}$,每个 $z^i \in \mathbb{R}^3$ 表示一个原子的三维坐标。
展平后,可以统一写成:
$$ z \in \mathbb{R}^d $$文本是重要例外:token 属于有限词表,通常是离散对象。语言模型内部的 embedding 虽然是连续向量,但最终生成的 token 状态空间仍然是离散的。
关键思想 2:生成就是从数据分布中采样#
假设所有合理对象共同构成一个未知的数据分布 $p_{\text{data}}$。以狗的图片为例,并不存在唯一一张"最佳狗图";我们真正需要的是让模型生成各种可能的、看起来像狗的图片。
$$ z \sim p_{\text{data}} $$这里 $p_{\text{data}}(z)$ 描述对象 $z$ 在数据分布下的可能性。生成模型的目标,是返回近似服从 $p_{\text{data}}$ 的新样本,而不是记忆或检索一条训练数据。
⚠️ 注意: “概率密度高"并不等同于人为定义的审美分数。它表示样本在所建模的数据分布下更典型或更可能。
关键思想 3:数据集是真实分布的有限代理#
真实的 $p_{\text{data}}$ 通常未知,我们只能观察有限数据集:
$$ z_1,\ldots,z_N \sim p_{\text{data}} $$这些样本被视为独立地来自同一数据分布。数据集越大、覆盖越充分,它通常越能代表底层分布,但数据集本身不等于数据分布。
关键思想 4:条件/引导生成#
很多任务不是随便生成一个样本,而是希望结果满足条件 $y$,例如文本提示词、类别标签或其他模态输入:
$$ z \sim p_{\text{data}}(\cdot\mid y) $$- $y$:条件变量,例如"一只狗在雪山上奔跑”。
- $p_{\text{data}}(\cdot|y)$:给定条件后的数据分布。
- 训练数据通常是成对样本 $(z_i, y_i)$。
课程前几章先研究无条件生成,因为其中的核心技术可以推广到条件生成;最终目标仍然是能够响应任意条件 $y$。
三个对象不要混淆#
| 对象 | 含义 | 是否已知 |
|---|---|---|
| $p_{\text{data}}$ | 真实世界中对象的底层概率分布 | 通常未知 |
| $\{z_1,\ldots,z_N\}$ | 从真实分布采集到的有限训练数据 | 训练时可见 |
| 生成模型 | 学习后能够近似从数据分布采样的算法 | 通过训练得到 |
本章逻辑链#
常见误区#
- 生成不是寻找唯一最优解。 一个条件通常对应许多合理样本。
- 生成模型的目标不是复制训练集。 生成模型学习的是真实数据的底层分布 $p_{\text{data}}$,从而能生成数据集中不存在的新样本,而不是记忆或检索训练数据。
- 向量化是一种建模方式。 数字图像在存储层面可能量化为整数,但在本课程中通常近似为连续实数向量。
- token embedding 连续,不代表文本本身连续。 文本输出仍需选择离散 token。
必记公式#
- 对象表示:$z \in \mathbb{R}^d$
- 无条件生成:$z \sim p_{\text{data}}$
- 训练数据:$z_1,\ldots,z_N \sim p_{\text{data}}$
- 条件生成:$z \sim p_{\text{data}}(\cdot|y)$
自测题#
1. 为什么生成一张狗的图片不是一个普通的"预测唯一答案"问题?
因为符合要求的狗图有很多张,不存在唯一正确输出;应当用图像空间上的概率分布描述这种多样性。
2. 数据集和 $p_{\text{data}}$ 有什么区别?
$p_{\text{data}}$ 是未知的底层分布,数据集只是从该分布中得到的有限样本集合。
3. 条件生成需要模型学习什么?
给定任意条件 $y$,近似从条件分布 $p_{\text{data}}(\cdot|y)$ 中采样。
4. 为什么连续扩散方法不能直接把 token ID 当实数加高斯噪声?
token ID 只是类别标签,数值距离通常没有语义;加噪后的非整数也不是合法 token,因此离散数据需要不同的转移机制。
学习检查清单#
- 我能解释预测式 AI 与生成式 AI 的区别。
- 我能写出图像、视频和分子结构的向量表示。
- 我能解释 $p_{\text{data}}$、数据集和生成模型之间的关系。
- 我能说明无条件生成与条件生成的差别。
- 我能解释为什么文本通常被视为离散数据。
资料来源#
本笔记基于 MIT 6.S184: Flow Matching and Diffusion Models 课程讲义整理。