FlowMatching
Flow Matching (流匹配)
核心概念
Flow Matching (FM) 是一种基于连续归一化流 (CNF) 的生成模型范式。它通过直接回归向量场 (Vector Field) 来学习从简单分布(如高噪声)到复杂数据分布(如图像)的确定性传输路径。
简单来说,Diffusion 是在学习“如何去噪”,而 Flow Matching 是在学习“如何从噪声平滑地流向数据”。
1. 背景与直觉
在生成模型中,我们希望找到一种映射,能将简单的先验分布 $p_0$(通常是高斯噪声)转化为复杂的数据分布 $p_1$(如图片)。
- Diffusion Models (SDE): 通过逐步加噪的随机过程(扩散)将数据破坏为噪声,然后学习反向过程。路径通常是随机的、曲折的 (Curved)。
- Flow Matching (ODE): 建立一个确定性的概率路径 (Probability Path) $p_t$,并学习一个向量场 $v_t(x)$,该向量场描述了粒子(数据点)随时间 $t$ 移动的速度和方向。通过求解常微分方程 (ODE) $dx/dt = v_t(x)$ 生成样本。
为什么 Flow Matching 越来越火?
- 路径更直 (Straighter Paths): FM 允许我们自定义概率路径。特别是 Rectified Flow 或 Optimal Transport FM,可以强制路径走直线。
- 生成更快 (Efficiency): 直线路径意味着 ODE 求解器需要的步数极少。Diffusion 可能需要 50 步,而直线路径的 FM 可能只需要 1-2 步 (One-step generation)。
- 训练更稳: 避免了某些扩散模型中复杂的 SDE 推导,目标函数简单直观(回归速度场)。
2. 核心原理 (Core Principles)
2.1 概率路径与向量场
Flow Matching 的目标是定义一个时变概率密度路径 $p_t(x)$,使得 $p_0$ 是标准正态分布,$p_1$ 是数据分布。 根据连续性方程 (Continuity Equation),必然存在一个向量场 $v_t(x)$ 生成此路径:
$$ \frac{\partial p_t(x)}{\partial t} + \nabla \cdot (p_t(x) v_t(x)) = 0 $$我们的目标就是训练一个神经网络 $v_\theta(t, x)$ 来拟合这个 $v_t(x)$。
$p_t(x)$ 本质上是一个边缘概率
$p_t(x)$ 是把"每个数据点各自的条件路径" $p_t(x|x_1)$ 对训练集里所有 $x_1$ 做加权平均后的结果:
$$ > p_t(x) = \int p_t(x|x_1)\, q(x_1)\, dx_1 > $$这在形式上就是把 $x_1$ **边缘化(marginalize)**掉——和 边缘概率 是同一个操作。$p_t(x)$ 算不出来,本质原因和 ELBO 笔记里 $P(x)=\int P(x,z)dz$ 算不出来 是同一类问题:对所有可能的"条件"做积分,在高维空间是 intractable 的。
2.2 Conditional Flow Matching (CFM)
直接计算边缘分布 $p_t(x)$ 对应的向量场 $v_t(x)$ 是极其困难的(intractable),原因如上——它本身就要对边缘概率求梯度。 Flow Matching 的原始论文(Lipman et al., 2023)提出了 Conditional Flow Matching (CFM) 技巧来绕开这个困难:
- 我们不需要通过复杂的积分去算整体的 $v_t$。
- 只需要定义基于单个数据点 $x_1$ 的条件路径 $p_t(x|x_1)$ 和对应的条件向量场 $u_t(x|x_1)$——这两者都有闭式解。
- Loss Function: 直接回归这个条件向量场: $$ L_{CFM}(\theta) = \mathbb{E}_{t,\, x_1 \sim q(x_1),\, x \sim p_t(x|x_1)} \| v_\theta(t, x) - u_t(x|x_1) \|^2 $$
通俗理解 CFM
你不需要知道整个大部队如何移动(Marginal Vector Field),你只需要知道如果最终目标是特定的图片 A,当前的噪声应该往哪个方向走(Conditional Vector Field)。只要所有样本都学会了这种"回特定家"的能力,在推理时,模型就能处理未知的噪声。
2.2.1 为什么回归"条件"目标能学到"边缘"向量场?(CFM 定理)
这是整个 Flow Matching 能成立的理论基石,笔记原先没有写,这里补上。
关键恒等式:真正的边缘向量场 $v_t(x)$,等于条件向量场 $u_t(x|x_1)$ 在后验 $p(x_1|x)$ 下的期望:
$$ v_t(x) = \mathbb{E}_{x_1 \sim p(x_1|x)}\big[u_t(x|x_1)\big] = \int u_t(x|x_1)\, p(x_1|x)\, dx_1 $$直觉上:某个中间点 $x$ 可能是"从很多不同的 $x_1$ 走过来的",边缘速度就是所有可能来源方向的加权平均(权重是"这个 $x$ 更可能来自哪个 $x_1$",即后验 $p(x_1|x)$)。
为什么回归条件目标等价于回归这个期望:这是 $L^2$ 回归的一个通用性质——若目标 $y$ 满足 $\mathbb{E}[y|x] = f(x)$,那么用 MSE 拟合 $y$ 和直接拟合 $f(x)$,最优解 $\theta^*$ 完全相同(多出来的只是一个不依赖 $\theta$ 的方差项,不影响梯度):
$$ \nabla_\theta \, \mathbb{E}_{x,y}\|g_\theta(x) - y\|^2 = \nabla_\theta \, \mathbb{E}_{x}\|g_\theta(x) - \mathbb{E}[y|x]\|^2 $$把 $y = u_t(x|x_1)$、$g_\theta = v_\theta$ 代入,就得到 $\nabla_\theta L_{CFM} = \nabla_\theta L_{FM}$——回归条件向量场和回归边缘向量场,梯度完全一致,所以最小化容易算的 $L_{CFM}$,等价于最小化算不出来的 $L_{FM}$。
和 DDPM 的类比
这个"回归条件目标 = 回归边缘目标"的套路,和 DDPM 化简出噪声预测 MSE 时用到的思想是同一类技巧:DDPM 里也是把不可解的 $D_{KL}$ 期望,通过重参数化换成一个对单个样本可算的回归目标。只不过 DDPM 的推导起点是 ELBO(下界思想),而 CFM 的推导起点是条件期望回归(无偏估计思想),两条路线殊途同归,都得到了"训练目标是一个简单的逐样本 MSE"的结果。
2.2.2 一般形式:Optimal Transport 条件路径
$p_t(x|x_1)$ 具体怎么设计是有选择空间的。Lipman et al. 给出的 OT(Optimal Transport)路径是一个各向同性、方差线性收缩的高斯:
$$ p_t(x|x_1) = \mathcal{N}\big(x;\; t\, x_1,\; (1-(1-\sigma_{\min})t)^2 I\big), \quad t \in [0,1] $$对应的条件向量场(闭式解):
$$ u_t(x|x_1) = \frac{x_1 - (1-\sigma_{\min})x}{1-(1-\sigma_{\min})t} $$当 $\sigma_{\min} \to 0$ 时,路径退化为方差为 0 的确定性直线插值 $x_t = t\,x_1 + (1-t)\,x_0$,此时 $u_t(x|x_1) = x_1 - x_0$(常数向量场)——这正好就是第 3 节 1-Rectified Flow 的特例。也就是说,Rectified Flow 是 OT-CFM 在 $\sigma_{\min}=0$ 时的一个特殊情形。
2.3 为什么 Flow Matching 不需要 ELBO?
这是笔记 概率论基础 §6 里 VAE / DDPM 都要用到 ELBO,但 FM 完全不需要,值得单独说清楚区别:
| VAE / DDPM | Flow Matching | |
|---|---|---|
| 要解决的难题 | $\log P(x) = \log\int P(x,z)dz$ 积不出来 | $v_t(x) = \int u_t(x\|x_1)p(x_1\|x)dx_1$ 积不出来 |
| 解决思路 | 找一个下界(ELBO),最大化下界代替最大化真实似然 | 找一个梯度等价的替代目标(CFM),直接回归,不涉及任何下界 |
| 数学工具 | Jensen 不等式(凹函数),KL 散度非负性 | $L^2$ 回归中"拟合条件期望"的性质 |
| 训练目标是否精确 | ELBO 只是下界,$\log P(x) - \text{ELBO} = D_{KL} \ge 0$ 恒有 gap | CFM 的梯度和真实边缘目标的梯度严格相等,没有 gap |
| 能否算出精确似然 | 不能直接算,只能算下界 | 训练后可用连续版变量替换公式(ODE + 迹的积分)事后精确计算,但训练目标本身不是似然 |
一句话:ELBO 解决的是"似然算不出来,找个下界顶替"的问题;CFM 解决的是"目标场算不出来,但可以证明回归一个可算的代理目标,梯度和原目标完全一样"的问题——前者是近似(有 gap),后者是等价替代(无 gap),这也是 FM 训练目标写起来比 VAE/DDPM 简洁、却不损失理论严谨性的原因。
2.4 训练与采样流程
训练(单步):
- 采样数据 $x_1 \sim q(x_1)$(真实样本),噪声 $x_0 \sim \mathcal{N}(0,I)$,时间 $t \sim \text{Uniform}(0,1)$。
- 按选定的条件路径公式(如 2.2.2 节的 OT 路径,或 §3 的直线插值)算出 $x_t$。
- 算出对应的目标向量场 $u_t(x_t|x_1)$(闭式解,直接代公式)。
- 网络预测 $v_\theta(x_t, t)$,计算 Loss $= \|v_\theta(x_t,t) - u_t(x_t|x_1)\|^2$。
- 反向传播更新 $\theta$。
采样(生成新样本):
- 从先验采样 $x_0 \sim \mathcal{N}(0,I)$。
- 用 ODE 求解器(最简单的是 Euler 法,也可用高阶求解器)沿着 $dx/dt = v_\theta(x,t)$ 从 $t=0$ 积分到 $t=1$。
- 因为路径可以被设计得接近直线(Rectified Flow),积分所需步数可以远少于 Diffusion 的随机采样过程,这也是 §4.2 里"采样效率极高"的直接原因。
3. Rectified Flow (校正流)
Rectified Flow 可以看作是 Flow Matching 的一种特例或一种改进策略。 它的核心思想是:“两点之间直线最短”。
- 1-Rectified Flow: 如果我们强制条件路径是从噪声 $x_0$ 到数据 $x_1$ 的直线插值: $$ x_t = t \cdot x_1 + (1-t) \cdot x_0 $$ 这就对应了一个常数速度场 $v = x_1 - x_0$。
- Reflow (Re-rectification): 即使训练了直线路径,由于是非线性神经网络拟合,生成的轨迹可能还是弯曲的。Rectified Flow 提出了一种递归训练方法(Reflow),用上一轮生成的 $(Z, X_{gen})$ 对作为下一轮的数据对,进一步“拉直”轨迹。
应用: Stable Diffusion 3 (SD3) 就采用了 Rectified Flow (RF) 加上 Transformer 架构 (DiT)。
4. Flow Matching vs Diffusion
4.1 理论关系图谱
Flow Matching 是一个更通用的框架,Diffusion Model 可以看作是其中的一种特例(路径受限为高斯路径)。
graph TD
FM[**Flow Matching**<br>通用框架:学习向量场] --> RF[**Rectified Flow**<br>路径: 直线 Straight]
FM --> DM[**Diffusion Models**<br>路径: 高斯弯曲 Curved]
RF --> SOTA[**SOTA Models**<br>Stable Diffusion 3<br>FLUX.1<br>Sora]
DM --> Classic[**Classic Models**<br>DDPM / EDM<br>SD 1.5 / SDXL]
style FM fill:#ffeb3b,stroke:#333
style RF fill:#a5d6a7,stroke:#333
style DM fill:#90caf9,stroke:#333“Diffusion 是 FM 特例"具体指什么
把 2.2.2 节的条件路径换成 DDPM 的前向加噪公式(呼应 概率论基础 §6.5.3 里的 $x_t=\sqrt{\bar\alpha_t}x_0+\sqrt{1-\bar\alpha_t}\epsilon$),就会发现它其实就是均值随 $t$ 弯曲收缩、方差不趋于 0 的一种高斯条件路径 $p_t(x|x_1)$——只是 DDPM 用 SDE/ELBO 的语言描述它、目标是预测噪声 $\epsilon$;FM 用 ODE/CFM 的语言描述同一条路径、目标是预测速度场 $v$。两者在这种路径设定下本质是同一件事的两套记号,这也是图里 DM 被画成 FM 一个分支的数学依据,而不只是经验上的相似。
4.2 详细对比
| 特性 | Diffusion Models (DDPM / EDM) | Flow Matching / Rectified Flow |
|---|---|---|
| 基础方程 | SDE (随机微分方程) | ODE (常微分方程) |
| 路径形态 | 弯曲 (Curved), 随机 | 趋向直线 (Straight), 确定性 |
| 采样效率 | 低 (通常需 20-50 步) | 极高 (可低至 1-5 步) |
| 连接方式 | 噪声预测 ($\epsilon$-prediction) | 速度/向量场预测 (Velocity-prediction) |
| 灵活性 | 固定前向加噪过程 (Gaussian) | 可灵活设计源和目标分布 |
| 代表模型 | SD 1.5, SDXL, DALL-E 2 | SD 3, Flux.1, Sora (推测) |
5. 关键参考文献 (References)
基础理论
- [Lipman et al. 2023] Flow Matching for Generative Modeling
- Title: Flow Matching for Generative Modeling
- Link: arXiv:2210.02747
- Note: 提出了 FM 框架和 CFM 训练目标,用 Optimal Transport (OT) 路径实现了 SOTA。
Rectified Flow 系列
[Liu et al. 2023] Flow Straight and Fast
- Title: Flow Straight and Fast: Learning to Generate with One Step
- Link: arXiv:2209.03003
- Note: 提出了 Rectified Flow 和 Reflow 操作,专注于将 ODE 轨迹拉直以实现一步生成。
[Esser et al. 2024] Scaling Rectified Flow Transformers (SD3 Paper)
- Title: Scaling Rectified Flow Transformers for High-Resolution Image Synthesis
- Link: arXiv:2403.03206
- Note: Stable Diffusion 3 的技术报告,详细阐述了如何在大规模文生图中使用 RF + DiT。
相关变体
- [Tong et al. 2023] Conditional Flow Matching
- Title: Improving and Generalizing Flow-Based Generative Models with Minibatch Optimal Transport
- Link: arXiv:2302.00482