生成模型的核心矛盾始终是:如何在高维空间中高效地将一个简单分布(如高斯噪声)变换为复杂的数据分布——扩散模型给出了一个答案,但其数百步的采样代价促使研究者寻找更直接的路径。
Kingma & Welling 的 VAE 和 Rezende & Mohamed 的归一化流(Normalizing Flow)率先将概率生成建模为可逆变换。归一化流要求变换的 Jacobian 行列式可解析计算,这极大限制了网络结构的灵活性——只能用三角矩阵或耦合层,表达能力受限。这一时期奠定了"用神经网络参数化概率变换"的基本范式。
Chen et al.(NeurIPS 2018)提出 Neural ODE,将离散的残差网络极限化为连续时间 ODE,并用伴随法(adjoint method)高效反向传播。FFJORD(Grathwohl et al., 2019)进一步将其应用于连续归一化流,用 Hutchinson 迹估计绕开了行列式计算瓶颈。这条路线理论优美,但训练时需要在线求解 ODE,计算代价高昂,且轨迹弯曲导致数值积分步数多。
DDPM(Ho et al., NeurIPS 2020)和 Score Matching(Song et al., ICLR 2021)将生成问题重新表述为逐步去噪:前向过程加噪,反向过程用神经网络预测分数(score)。DDPM 在图像质量上大幅超越 GAN,但推理需要 1000 步马尔可夫链,速度慢;DDIM 将其压缩到 50 步,但仍是经验性加速,理论上轨迹仍然弯曲。
Lipman et al.(ICLR 2023,预印本 2022)提出 Flow Matching(FM),核心洞见是:不必学习分数函数,而是直接回归向量场。给定数据点 $x_1$ 和噪声点 $x_0$,构造一条条件概率路径 $p_t(x|x_1)$,对应的条件向量场 $u_t(x|x_1)$ 是解析可得的,无需蒙特卡洛估计。训练目标从"估计边际分数"变为"拟合条件向量场",方差大幅降低。同年,Liu et al. 独立提出 Rectified Flow,用直线插值 $x_t = (1-t)x_0 + tx_1$ 作为路径,使轨迹尽可能笔直,从而减少推理步数。
Stable Diffusion 3、Sora 的技术路线、以及 DiT(Diffusion Transformer)系列均采用或融合了 Flow Matching 思想。在音频领域,Voicebox(Meta, 2023)、Matcha-TTS、以及本日论文 DiT-Flow 均将 FM 应用于语音增强和 TTS,验证了其在非图像模态的有效性。Flow Matching 已成为生成模型的主流范式之一。
Flow Matching 的数学核心是连续归一化流的向量场回归。 设时间 $t \in [0,1]$,$x_0 \sim p_0$(噪声,通常为 $\mathcal{N}(0,I)$),$x_1 \sim p_1$(数据分布)。我们希望学习一个向量场 $v_\theta(x, t)$,使得由其驱动的 ODE: $$\frac{dx}{dt} = v_\theta(x, t), \quad x(0) = x_0$$ 在 $t=1$ 时将 $p_0$ 变换为 $p_1$。 边际流匹配损失(直接优化边际向量场方差大): $$\mathcal{L}_{FM} = \mathbb{E}_{t, x \sim p_t} \| v_\theta(x,t) - u_t(x) \|^2$$ 其中 $u_t(x)$ 是边际向量场,通常无法解析计算。 条件流匹配损失(FM 的关键贡献): $$\mathcal{L}_{CFM} = \mathbb{E}_{t, x_1 \sim p_1, x \sim p_t(x|x_1)} \| v_\theta(x,t) - u_t(x|x_1) \|^2$$ Lipman et al. 证明 $\nabla_\theta \mathcal{L}_{FM} = \nabla_\theta \mathcal{L}_{CFM}$,即两个损失梯度相同,但后者方差更低,因为条件向量场 $u_t(x|x_1)$ 是解析的。 对于高斯条件路径 $p_t(x|x_1) = \mathcal{N}(\mu_t(x_1), \sigma_t^2 I)$,条件向量场为: $$u_t(x|x_1) = \frac{\dot{\sigma}_t}{\sigma_t}(x - \mu_t(x_1)) + \dot{\mu}_t(x_1)$$ Rectified Flow 的特例:取 $\mu_t = tx_1$,$\sigma_t = 1-t$,则路径为直线 $x_t = (1-t)x_0 + tx_1$,条件向量场退化为常数 $u_t(x|x_0,x_1) = x_1 - x_0$,训练目标变为预测"从噪声到数据的位移向量",极为简洁。
Flow Matching 的整体逻辑是:构造从噪声到数据的解析条件路径,用神经网络拟合该路径的切向量场,推理时用 ODE 求解器沿向量场积分生成样本。
给定一对 $(x_0, x_1)$(噪声样本和真实数据),定义插值路径 $x_t = \alpha_t x_1 + \sigma_t x_0$,其中 $\alpha_t$ 单调从 0 增至 1,$\sigma_t$ 单调从 1 减至 0。最简单的选择是线性:$x_t = tx_1 + (1-t)x_0$。为什么这样设计:线性路径使轨迹最短(在欧氏意义下接近最优传输),推理时 ODE 积分步数最少,且条件向量场为常数,网络学习难度低。与扩散模型的指数衰减加噪路径相比,线性路径的曲率更小。
对路径 $x_t = tx_1 + (1-t)x_0$ 求时间导数:$\dot{x}_t = x_1 - x_0$。这就是条件向量场 $u_t(x_t|x_0,x_1) = x_1 - x_0$,与 $t$ 无关,与当前位置 $x$ 无关。为什么重要:扩散模型需要估计边际分数函数 $\nabla_x \log p_t(x)$,这是对所有数据点的加权平均,方差极大;而条件向量场是针对单个数据对的精确值,训练信号干净稳定。
损失函数为:
python # 伪代码 for x1 in dataloader: t = torch.rand(batch_size) # 均匀采样时间 x0 = torch.randn_like(x1) # 采样噪声 xt = t * x1 + (1 - t) * x0 # 线性插值 target = x1 - x0 # 解析目标向量场 pred = model(xt, t) # 网络预测 loss = F.mse_loss(pred, target) # L2 回归 loss.backward()网络架构可以是任意时序条件网络(U-Net、DiT 等),输入为 $(x_t, t)$,输出为向量场预测。关键细节:时间 $t$ 的编码方式(正弦嵌入或 FiLM 调制)对训练稳定性有显著影响;在音频任务中,$x$ 通常是梅尔频谱或潜变量,而非原始波形。
从 $x_0 \sim \mathcal{N}(0,I)$ 出发,用 ODE 求解器积分: $$x_1 = x_0 + \int_0^1 v_\theta(x_t, t)\, dt$$ 实践中用欧拉法(最简单)或 Heun 法(二阶精度):
python x = torch.randn(shape) for t in torch.linspace(0, 1, num_steps): dt = 1.0 / num_steps x = x + model(x, t) * dt为什么步数可以少:线性路径使向量场近似时不变,欧拉法的截断误差小;而扩散模型的弯曲轨迹需要更多步才能精确积分。实践中 FM 用 10–50 步即可达到扩散模型 1000 步的质量。
在语音增强(如 DiT-Flow)中,$x_1$ 是干净语音的潜表示,$x_0$ 不是纯噪声,而是带噪语音的潜表示,路径从带噪出发直接"流向"干净语音。条件信息(文本、说话人、噪声类型)通过 cross-attention 或 AdaLN 注入 DiT 骨干。这种"噪声到数据"的路径设计使 FM 天然适合语音增强、超分辨率等逆问题。
Flow Matching 已成为生成模型工程的核心基础设施。Stable Diffusion 3(Stability AI, 2024)将其作为主训练目标,生成质量和速度均超越 DDPM;Meta 的 Voicebox 和 AudioBox 用 FM 实现了零样本语音合成;Google 的 Lumiere 视频生成模型采用类似思路。在音频领域,Matcha-TTS 证明 FM 比 DDPM 快 10 倍且质量相当。其数学简洁性(只需 MSE 回归)使其极易与 Transformer/DiT 骨干结合,未来多模态生成系统几乎必然以 FM 为核心。
当前热点:①最优传输路径(OT-FM)进一步减少轨迹弯曲,理论上达到 Wasserstein-2 最优;②离散 Flow Matching 将 FM 扩展到 token 序列(语言模型);③条件 FM 的引导机制(类比扩散模型的 CFG)如何在不重训练的情况下注入强条件;④FM 与一致性模型(Consistency Models)的统一;⑤在极低步数(1–2步)下的质量下界仍未被理论刻画。