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 越来越火?

  1. 路径更直 (Straighter Paths): FM 允许我们自定义概率路径。特别是 Rectified Flow 或 Optimal Transport FM,可以强制路径走直线。
  2. 生成更快 (Efficiency): 直线路径意味着 ODE 求解器需要的步数极少。Diffusion 可能需要 50 步,而直线路径的 FM 可能只需要 1-2 步 (One-step generation)。
  3. 训练更稳: 避免了某些扩散模型中复杂的 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 / DDPMFlow 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$ 恒有 gapCFM 的梯度和真实边缘目标的梯度严格相等,没有 gap
能否算出精确似然不能直接算,只能算下界训练后可用连续版变量替换公式(ODE + 迹的积分)事后精确计算,但训练目标本身不是似然

一句话:ELBO 解决的是"似然算不出来,找个下界顶替"的问题;CFM 解决的是"目标场算不出来,但可以证明回归一个可算的代理目标,梯度和原目标完全一样"的问题——前者是近似(有 gap),后者是等价替代(无 gap),这也是 FM 训练目标写起来比 VAE/DDPM 简洁、却不损失理论严谨性的原因。

2.4 训练与采样流程

训练(单步):

  1. 采样数据 $x_1 \sim q(x_1)$(真实样本),噪声 $x_0 \sim \mathcal{N}(0,I)$,时间 $t \sim \text{Uniform}(0,1)$。
  2. 按选定的条件路径公式(如 2.2.2 节的 OT 路径,或 §3 的直线插值)算出 $x_t$。
  3. 算出对应的目标向量场 $u_t(x_t|x_1)$(闭式解,直接代公式)。
  4. 网络预测 $v_\theta(x_t, t)$,计算 Loss $= \|v_\theta(x_t,t) - u_t(x_t|x_1)\|^2$。
  5. 反向传播更新 $\theta$。

采样(生成新样本):

  1. 从先验采样 $x_0 \sim \mathcal{N}(0,I)$。
  2. 用 ODE 求解器(最简单的是 Euler 法,也可用高阶求解器)沿着 $dx/dt = v_\theta(x,t)$ 从 $t=0$ 积分到 $t=1$。
  3. 因为路径可以被设计得接近直线(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 2SD 3, Flux.1, Sora (推测)

5. 关键参考文献 (References)

基础理论

  1. [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 系列

  1. [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 轨迹拉直以实现一步生成。
  2. [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。

相关变体

  1. [Tong et al. 2023] Conditional Flow Matching
    • Title: Improving and Generalizing Flow-Based Generative Models with Minibatch Optimal Transport
    • Link: arXiv:2302.00482