跳过正文

MIT 6.S184: Flow Matching and Diffusion Models — 第 1 章:生成建模即采样

·2081 字·5 分钟
作者
Yiwen Cai
北邮计算机硕士在读。聚焦算法与硬件之间——CUDA、Triton 与 LLM 训推优化。

MIT 6.S184: Flow Matching and Diffusion Models 课程笔记

🎯 本章一句话总结: 生成模型的核心任务不是寻找唯一"最佳答案",而是学习一个未知的数据分布,并从中产生新的样本。

学习目标
#

  • 理解生成式 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\}$从真实分布采集到的有限训练数据训练时可见
生成模型学习后能够近似从数据分布采样的算法通过训练得到

本章逻辑链
#

生成建模流程图

常见误区
#

  1. 生成不是寻找唯一最优解。 一个条件通常对应许多合理样本。
  2. 生成模型的目标不是复制训练集。 生成模型学习的是真实数据的底层分布 $p_{\text{data}}$,从而能生成数据集中不存在的新样本,而不是记忆或检索训练数据。
  3. 向量化是一种建模方式。 数字图像在存储层面可能量化为整数,但在本课程中通常近似为连续实数向量。
  4. token embedding 连续,不代表文本本身连续。 文本输出仍需选择离散 token。

必记公式
#

  1. 对象表示:$z \in \mathbb{R}^d$
  2. 无条件生成:$z \sim p_{\text{data}}$
  3. 训练数据:$z_1,\ldots,z_N \sim p_{\text{data}}$
  4. 条件生成:$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 课程讲义整理。