MIT 6.S184 Lecture 1 Notes

Generative AI with Stochastic Differential Equations

0. 本讲主线

Lecture 1 主要回答两个问题:

  1. 什么叫“生成”一个对象?
  2. 为什么 flow models 和 diffusion models 可以用来生成对象?

核心逻辑:

生成对象
→ 从数据分布中采样
→ 从简单噪声分布出发
→ 用 ODE / SDE 把噪声逐步变成数据
→ 得到 flow model / diffusion model

本讲的重点不是训练算法,而是先搭建生成模型的数学框架。训练算法会在后面的 Flow Matching、Score Matching 中讲。


1. Generative Modeling as Sampling

Section 1: From Generation to Sampling

1.1 对象可以表示成向量

课程首先把图像、视频、蛋白质结构等对象统一表示成高维向量:

例如:

对象向量形式
图像
视频
分子结构

这里的重点不是具体维度,而是:

生成图像、视频、蛋白质,本质上都可以看成在高维空间中生成一个点。

这一步很重要,因为后面所有 ODE / SDE 都是在 这个高维空间中移动点。


1.2 Data Distribution:数据分布

假设我们想生成“一张狗的图片”。

不是所有图片都一样好:

  • 纯噪声:几乎不可能是狗图
  • 街景:可能是图片,但不是狗
  • 猫:是动物,但不符合 prompt
  • 狗:符合目标

课程把这种“好不好”的判断形式化为概率分布:

其中:

  • 是一个候选对象,比如一张图片
  • 表示这个对象在真实数据中出现的可能性

直观理解:

越像真实数据的样本,在 下概率越高。

所以“生成一张好图”可以被改写成:

也就是:

生成 = 从数据分布中采样。

这是本讲最核心的抽象。notes 里也明确把 generation 建模为从数据分布 中采样。


1.3 Dataset:数据集只是数据分布的有限样本

真实的 是不知道的。

我们只有一个数据集:

比如:

  • 图像:互联网图片
  • 视频:YouTube 视频
  • 蛋白质结构:Protein Data Bank

重点:

数据集不是数据分布本身,而是从数据分布中采出来的一批样本。

生成模型训练的目标,就是从有限样本中学到一个近似的数据分布,然后能产生新的样本。


1.4 Conditional Generation:条件生成

无条件生成是:

条件生成是:

其中 是条件,例如:

  • 类别标签:dog / cat / landscape
  • 文本 prompt:“a dog running in snow”
  • 图像条件、视频条件等

直观上:

条件生成不是从所有图片中采样,而是从“符合条件 的图片分布”中采样。

Lecture 1 先主要讲 unconditional generation。后面会讲怎么把 unconditional model 扩展成 conditional model。


2. Generative Model 的目标

生成模型通常从一个简单分布开始:

也就是标准高斯噪声。

目标是构造一个过程,把:

变成:

可以理解成:

从噪声出发,经过模型的逐步变换,最后得到一个真实数据样本。

所以 flow / diffusion models 的共同目标是:


Section 2: Flow and Diffusion Models

lecture_notes_MIT_6.S184, p.7

3. Flow Models

3.1 Flow model 的核心:ODE

Flow model 基于 ODE,也就是 ordinary differential equation:

初始条件:

这里:

  • :时间 时的位置
  • :初始位置
  • :vector field,即速度场
  • :轨迹在时间 的速度

直观理解:

ODE 规定了一个点在每个时间、每个位置应该怎么移动。


3.2 难点:trajectory、vector field、ODE、flow 的关系

这几个词很容易混在一起,建议这样理解:

概念数学形式直觉
trajectory一个点实际走出来的路径
vector field每个位置、每个时间的速度箭头
ODE规定点必须沿着速度场走
flow从初始点 出发,时间 后到哪里

最重要的是 flow:

它表示:

从 出发,按照 ODE 走到时间 后的位置。

它满足:

以及:

一句话总结:

vector field 定义 ODE,ODE 的解形成 trajectory,所有初始点对应的 trajectory 组成 flow。

notes 也强调:vector fields、ODEs、flows 可以看作同一对象的三种描述方式。


3.3 Flow model 如何生成样本?

Flow model 用神经网络参数化 vector field:

然后做三步:

  1. 从简单分布采样:
  1. 模拟 ODE:
  1. 返回终点:

训练目标是让:

也就是说:

神经网络不是直接输出图片,而是输出“当前位置应该往哪里走”的速度。

这是一个非常重要的理解点。


3.4 Euler Method:如何模拟 ODE

Numerical ODE simulation - Euler method

真实的 ODE 通常没有解析解,所以要用数值方法模拟。

最简单的是 Euler method:

其中:

直觉:

下一步位置 = 当前的位置 + 步长 × 当前速度

也就是沿着 vector field 给出的方向走一小步。

需要记住的 trade-off:

步长优点缺点
大步长快误差大
小步长精确慢

对于 Lecture 1,只需要理解 Euler method 的直觉,不需要深入数值分析。


4. Diffusion Models

4.1 从 ODE 到 SDE

Flow model 用 ODE:

Diffusion model 用 SDE,也就是 stochastic differential equation:

这里多了一个随机项:

其中:

  • :确定性移动,叫 drift
  • :随机噪声项
  • :Brownian motion / Wiener process
  • :diffusion coefficient,控制噪声强度

直观对比:

模型运动方式
ODE / Flow沿着速度场确定性移动
SDE / Diffusion沿着速度场移动,同时不断加入随机扰动

不会同时有多个不同随机过程满足同一个 SDE

“随机”不等于“规则不唯一”。

SDE 的随机性来自 Brownian motion 。一旦你固定: 以及整条噪声路径: 那么 SDE 的规则: 就应该唯一决定 怎么走。

所以唯一性说的是:

给定同一个初始条件、同一个随机噪声来源、同一个 drift 和 diffusion coefficient,不会出现两个不同的随机过程都满足这个 SDE。


4.2 Brownian Motion:连续随机游走(布朗运动)

20260120_Lecture_01_c, p.29

Brownian motion 可以理解成连续时间版本的随机游走。

它的离散近似是:

其中:

直觉:

每一小步都加一个随机高斯扰动。

这里的 很重要,因为 Brownian motion 的方差随时间线性增长,所以增量的标准差是 级别。

注:这里的h是步长

对,这里的 (h) 就是时间步长,也就是每次模拟往前走多久。如果总时间区间是:

把它切成 (n) 步,那么:

所以时间点是:

在 Brownian motion 的离散模拟里:

意思是:

从时间 (t) 走到 (t+h),Brownian motion 增加一个高斯随机扰动。

为什么是 (),不是 (h)?因为 Brownian motion 的增量满足:

也就是说方差是 (h),标准差就是 ()。所以可以写成:

slides 和 notes 都是在这个意义下定义 (h):它是数值模拟中的 step size。


4.3 Euler-Maruyama Method:如何模拟 SDE

Numerical SDE simulation (Euler-Maruyama method)

SDE 对应的数值模拟方法是 Euler-Maruyama method:

其中:

和 Euler method 对比:

方法更新公式
Euler for ODE
Euler-Maruyama for SDE

重点:

Diffusion model 的每一步既有“朝目标方向走”的部分,也有“随机抖动”的部分。

notes 中也明确说,Euler-Maruyama 可以看作 SDE 版本的 Euler method。


4.4 Diffusion model 如何生成样本?

20260120_Lecture_01_c, p.34

Diffusion model 同样从简单分布开始:

然后模拟 SDE:

最终希望:

其中:

  • :神经网络学到的 vector field
  • :固定的 diffusion coefficient
  • :随机噪声来源

所以 diffusion model 的生成过程可以理解为:

从噪声出发,在神经网络引导下,带着随机扰动逐步走向数据分布。


5. Flow Models vs Diffusion Models

对比Flow ModelDiffusion Model
数学形式ODESDE
是否有随机项没有有
路径是否随机给定初始点后路径确定即使初始点相同,路径也可能不同
随机性来源初始噪声 初始噪声 + 过程噪声
数值模拟Euler methodEuler-Maruyama method
更新公式

一个关键关系:

时,SDE 退化成 ODE。

所以:

Flow model 可以看成 diffusion model 在没有随机噪声项时的特例。

notes 也明确总结:当 时,diffusion model 就是 flow model。


6. 本讲最重要的概念层级

第一层:生成问题

生成就是从真实数据分布中采样。

第二层:从简单分布开始

通常:

第三层:用动态系统变换分布

Flow model:

Diffusion model:

第四层:最终目标


7. 需要重点掌握的地方

重点 1:生成 = 采样

不要把生成理解成“模型凭空画图”。

更准确地说:

模型学会从一个目标概率分布中采样。

这个目标概率分布就是 。


重点 2:神经网络学的是 vector field

神经网络不是直接学:

而是学:

也就是:

在时间 、位置 ,样本应该往哪里移动。

真正的图像生成来自多步模拟:


重点 3:flow 是“整体空间的变形”

一个 trajectory 只描述一个点怎么走。

flow 描述的是:

所有初始点如何一起被移动、扭曲、变换。

所以 flow model 的直觉不是“移动一个点”,而是:

把整个噪声分布逐渐变形为数据分布。


重点 4:diffusion 比 flow 多了过程噪声

Flow model 的随机性只来自初始点:

Diffusion model 的随机性还来自每一步:

所以 diffusion 的路径本身是随机的。


8. 本讲不必过度纠结的内容

以下内容 Lecture 1 只需要有直觉,不必深究证明:

  • Picard–Lindelöf theorem 的严格证明
  • Brownian motion 的测度论定义
  • SDE 的严格 stochastic integral 定义
  • Heun’s method 的数值分析细节
  • ODE / SDE 的存在唯一性证明

需要记住的是:

在机器学习实践中,我们通常可以把神经网络 vector field 看成定义了合理的 ODE / SDE 动力系统。


9. 一句话总结 Lecture 1

Lecture 1 把“生成图像、视频、蛋白质”形式化为“从数据分布采样”,然后说明可以从简单高斯噪声出发,用神经网络参数化的 ODE 或 SDE 逐步把噪声分布变成数据分布;ODE 对应 flow model,SDE 对应 diffusion model。