目录

目录

Flow Matching Guide and Code

目录

该章节作为《Flow Matching Guide and Code》的开篇,核心目标是明确Flow Matching(FM) 这一生成建模框架的核心价值、技术本质、发展脉络与应用范围,同时清晰勾勒出论文的整体结构与目标受众,为后续的技术细节铺垫基础。

  • 本质属性:FM 是一种简单且高效的生成建模框架,核心是通过学习“速度场(velocity field)”定义“流(flow)”,进而实现从“源分布(source distribution)”到“目标分布(target distribution)”的确定性、时间连续的双射变换。
  • 核心目标:将从源分布 pp 采样的样本 X0pX_0 \sim p,通过流 ψt\psi_t 变换为目标分布 qq 的样本 X1=ψ1(X0)qX_1 = \psi_1(X_0) \sim q(如图1a所示),其中流 ψt\psi_t 由求解常微分方程(ODE)得到。
  • 行业地位:已在多个领域实现“当前最优(state-of-the-art)”性能,包括图像生成(Esser et al., 2024)、视频生成(Polyak et al., 2024)、语音生成(Le et al., 2024)、音频生成(Vyas et al., 2023)、蛋白质结构生成(Huguet et al., 2024)和机器人控制(Black et al., 2024)等。
  1. 学术价值:提供一份全面且自包含(comprehensive and self-contained) 的 FM 参考资料,详细阐述其设计选择、数学基础及研究社区提出的各类扩展。
  2. 实用价值:降低入门门槛,通过配套的 PyTorch 代码库(flow_matching library),帮助新手快速上手并将 FM 应用于自身研究或工程场景。

FM 的核心思想源于“连续归一化流(Continuous Normalizing Flows, CNF)”(Chen et al., 2018; Grathwohl et al., 2018),其发展历程可概括为“从复杂到简洁”的迭代:

  • 早期 CNF 局限:最初通过最大化训练数据的对数似然(log-likelihood)训练,需要在训练过程中进行 ODE 模拟及微分,计算成本极高。
  • 关键优化方向:后续研究(Rozen et al., 2021; Ben-Hamu et al., 2022)尝试“无模拟训练”,最终演化出现代 FM 算法(Lipman et al., 2022; Liu et al., 2022; Albergo and Vanden-Eijnden, 2022 等)。
  • 现代 FM 核心简化:将生成建模简化为两步流程(如图2所示):
    1. 设计“概率路径(probability path)” ptp_t,实现从源分布 \(p(p_0=p)\) 到目标分布 \(q(p_1=q)\) 的平滑插值;
    2. 训练一个神经网络建模的速度场,使其定义的流能够复现该概率路径 ptp_t

FM 的核心原理具有极强的通用性,已被扩展到多种非传统场景,突破了最初的欧氏空间(Rd\mathbb{R}^d)限制:

  • 离散状态空间:Discrete Flow Matching(DFM)将 FM 应用于连续时间马尔可夫链(CTMC),适用于语言建模等离散生成任务(如图1c所示);
  • 黎曼流形:Riemannian Flow Matching 扩展到黎曼流形(如球面、矩阵李群),成为化学、生物领域(如蛋白质折叠)的最优模型(Yim et al., 2023; Bose et al., 2023);
  • 通用连续时间马尔可夫过程(CTMP):Generator Matching(GM)进一步泛化,证明 FM 框架可适配任意模态和任意 CTMP(包括流、扩散过程、跳跃过程等),实现了多种生成模型的统一。

章节明确了 FM 与扩散模型(Diffusion Models)的核心联系与差异:

  • 共性:两者均属于“无模拟训练”的 CTMP 生成模型,核心都是通过学习概率路径实现分布变换;
  • 差异:扩散模型的概率路径通过“前向加噪过程”(由特定 SDE 建模)构建,且通过“分数函数(score function)”参数化生成器;而 FM 提供了更灵活的概率路径设计和生成器参数化方式,且扩散模型可被视为 FM 的一个特例(详见第10章)。

章节最后概述了全文的组织逻辑,帮助读者建立阅读框架:

  1. 第2章:提供 FM 的“速查指南(cheat-sheet)”,含纯 PyTorch 实现代码;
  2. 第3章:深入讲解流模型的数学基础(连续状态空间下最简单的 CTMP);
  3. 第4章:详细介绍 FM 框架在欧氏空间的设计选择与扩展;
  4. 第5-7章:分别扩展 FM 到黎曼流形、CTMC(离散状态空间)和离散流匹配;
  5. 第8-9章:泛化到通用状态空间和 CTMP,提出 Generator Matching 统一框架;
  6. 第10章:深入分析 FM 与扩散模型及其他去噪模型的关联。
术语英文定义
Flow时间依赖的确定性双射变换 ψt:RdRd\psi_t: \mathbb{R}^d \to \mathbb{R}^d,由速度场通过 ODE 定义
速度场Velocity Field时间依赖的向量场 utu_t,规定流在每个位置的瞬时运动方向与速率
概率路径Probability Path时间依赖的分布序列 ptp_t,平滑插值源分布 pp 和目标分布 qq
连续归一化流Continuous Normalizing Flows (CNF)FM 的技术前身,通过 ODE 实现分布变换的生成模型
连续时间马尔可夫过程Continuous-Time Markov Process (CTMP)包含流、扩散、跳跃过程等的通用马尔可夫过程框架
  1. 定位清晰:明确 FM 作为“简单、高效、通用”生成建模框架的核心价值,区分其与 CNF、扩散模型的关系;
  2. 脉络完整:梳理 FM 从 CNF 演化而来的技术路线,帮助读者理解其设计动机;
  3. 范围明确:界定论文的覆盖边界(从欧氏空间到流形、从连续到离散),同时指明目标受众(新手与资深研究者);
  4. 结构引导:通过章节预告降低读者的认知负荷,为后续技术细节的吸收铺垫框架。

该章节作为《Flow Matching Guide and Code》的“入门指南”,核心目标是用直观的数学表达、清晰的步骤拆解和极简的代码实现,帮助读者快速掌握 Flow Matching(FM)的核心逻辑——从“问题定义”到“数学建模”,再到“训练与采样”,全程避开复杂推导,聚焦可理解性与可复现性。

章节以“欧氏空间(Rd\mathbb{R}^d)的基础 FM 框架”为切入点,回答了三个核心问题:

  1. FM 的目标是什么?(从源分布生成目标分布的样本)
  2. 如何用数学描述 FM 的核心组件?(概率路径、速度场、ODE 流)
  3. 如何快速实现一个基础 FM 模型?(PyTorch 代码+关键步骤)

FM 的本质是生成建模:给定来自目标分布 qq 的训练样本(如图像、音频等),构建一个模型,使其能生成全新的、服从 qq 的样本。

实现路径被简化为“两步映射”:

  1. 从一个已知且易采样的源分布 pp(通常是标准高斯分布 N(0,I)N(0, I))中抽取初始样本 X0pX_0 \sim p
  2. 通过一个“平滑变换”,将 X0X_0 逐步转化为目标样本 X1qX_1 \sim q

这个“平滑变换”的核心是 概率路径 ptp_t速度场 utu_t——前者定义了“从 ppqq 的中间分布序列”,后者定义了“样本如何沿该路径移动”。

章节用极简的数学语言定义了 FM 的三大核心组件,以及它们之间的逻辑关系:

  • 定义:一个时间依赖的分布序列 ptp_tt[0,1]t \in [0,1]),满足边界条件:
    • t=0t=0 时,p0=pp_0 = p(源分布);
    • t=1t=1 时,p1=qp_1 = q(目标分布)。
  • 直观理解ptp_t 是“源分布逐渐演变为目标分布的过程”,每个 ptp_t 都是中间状态的分布(例如,t=0.5t=0.5 时的分布既保留了部分源分布的特征,也包含了部分目标分布的特征)。
  • 定义:一个时间依赖的向量场 u:[0,1]×RdRdu: [0,1] \times \mathbb{R}^d \to \mathbb{R}^d,建模为神经网络,输入是“当前时间 tt”和“当前样本 xtx_t”,输出是“样本在 xtx_t 处的瞬时移动方向和速率”。
  • 核心作用:速度场 utu_t 是生成“流”的关键——通过求解由 utu_t 定义的常微分方程(ODE),可得到样本的移动轨迹,即“流”。
  • 定义:由速度场 utu_t 诱导的时间依赖变换 ψ:[0,1]×RdRd\psi: [0,1] \times \mathbb{R}^d \to \mathbb{R}^d,满足以下 ODE: ddtψt(x)=ut(ψt(x)),ψ0(x)=x \frac{d}{dt} \psi_t(x) = u_t\left(\psi_t(x)\right), \quad \psi_0(x) = x
    • 初始条件 ψ0(x)=x\psi_0(x) = xt=0t=0 时,样本未发生变换;
    • 核心逻辑:样本 xx 沿 ODE 轨迹移动,tt 时刻的位置为 ψt(x)\psi_t(x)t=1t=1 时到达目标位置 ψ1(x)q\psi_1(x) \sim q

速度场 utu_t 生成流 ψt\psi_t,流 ψt\psi_t 推动样本沿概率路径 ptp_t 移动,最终满足: Xt=ψt(X0)pt(X0p0) X_t = \psi_t(X_0) \sim p_t \quad (\forall X_0 \sim p_0) 即:初始样本 X0X_0 沿流 ψt\psi_t 移动后,tt 时刻的样本 XtX_t 服从中间分布 ptp_t

章节将 FM 框架拆解为“三步蓝图”(对应图 2),每一步都有明确的目标和操作:

章节选择了最常用的线性概率路径(也叫“条件最优传输路径”),其构造逻辑如下:

  1. 先定义条件概率路径 pt1(xx1)p_{t|1}(x | x_1):对于每个目标样本 x1qx_1 \sim q,定义一个从源分布 ppδx1\delta_{x_1}(仅在 x1x_1 处概率为 1 的delta分布)的条件路径: pt1(xx1)=N(xtx1,(1t)2I) p_{t|1}(x | x_1) = \mathcal{N}\left(x \mid t x_1, (1-t)^2 I\right)

    • 直观理解:tt 时刻的条件分布是均值为 tx1t x_1、方差为 (1t)2I(1-t)^2 I 的高斯分布——tt 越大,均值越接近目标样本 x1x_1,方差越小,最终 t=1t=1 时收敛到 x1x_1
  2. 再通过“边缘化”得到边际概率路径 ptp_t:聚合所有条件路径,得到全局路径: pt(x)=pt1(xx1)q(x1)dx1 p_t(x) = \int p_{t|1}(x | x_1) q(x_1) dx_1

    • 等价采样方式:为了避免积分,可通过“源样本和目标样本的线性组合”直接采样 XtX_tXt=tX1+(1t)X0(X0p,X1q) X_t = t X_1 + (1-t) X_0 \quad (X_0 \sim p, X_1 \sim q)
    • 这是 FM 简化计算的关键:无需显式建模 ptp_t,只需通过线性组合即可生成中间样本 XtX_t

训练的核心是“回归任务”:让模型学习的速度场 utθu_t^\theta 逼近“真实速度场 utu_t”,后者是使样本沿概率路径 ptp_t 移动的“理想导航图”。

直接计算 utu_t 复杂,但通过“条件路径”可推导得条件真实速度场ut(xx1)=x1x1t u_t(x | x_1) = \frac{x_1 - x}{1-t}

  • 直观理解:对于中间样本 xx,其“理想移动速度”与“当前位置到目标 x1x_1 的距离”成正比,与“剩余时间 1t1-t”成反比——确保 t=1t=1 时刚好到达 x1x_1

由于边际速度场 ut(x)=E[ut(xX1)Xt=x]u_t(x) = \mathbb{E}[u_t(x | X_1) | X_t = x],直接优化 utu_t 不可行,但章节证明了“边际损失”与“条件损失”的梯度等价(式 2.8),因此采用条件 Flow Matching 损失(CFM 损失)LCFM(θ)=EtU[0,1],X0p,X1qutθ(Xt)X1Xt1t2 \mathcal{L}_{CFM}(\theta) = \mathbb{E}_{t \sim U[0,1], X_0 \sim p, X_1 \sim q} \left\| u_t^\theta(X_t) - \frac{X_1 - X_t}{1-t} \right\|^2

  • 简化到极致的形式(代入 Xt=tX1+(1t)X0X_t = t X_1 + (1-t) X_0): LCFMOT,Gauss(θ)=Et,X0,X1utθ(Xt)(X1X0)2 \mathcal{L}_{CFM}^{OT,Gauss}(\theta) = \mathbb{E}_{t, X_0, X_1} \left\| u_t^\theta(X_t) - (X_1 - X_0) \right\|^2
  • 本质:MSE 回归——让模型输出的速度,逼近“源样本到目标样本的直接差值”(因线性路径的理想速度可简化为 X1X0X_1 - X_0)。

训练完成后,生成新样本的流程极其简单:

  1. 从源分布 pp 抽取初始样本 X0N(0,I)X_0 \sim N(0, I)
  2. 求解 ODE ddtXt=utθ(Xt)\frac{d}{dt} X_t = u_t^\theta(X_t)(从 t=0t=0t=1t=1);
  3. 得到 X1=Xtt=1X_1 = X_t|_{t=1},即为服从目标分布 qq 的生成样本。

章节提供了一个独立的 PyTorch 实现(Code 1),核心代码仅 50 余行,完美对应“路径设计→训练→采样”三步,关键部分解析如下:

  • 输入:中间样本 xtx_t(维度 dd)+ 时间 tt(维度 1),拼接后输入神经网络;
  • 输出:速度预测值(维度 dd);
  • 网络结构:3 层全连接+ELU 激活,结构简单,聚焦核心逻辑。
for _ in range(10000):
    x_1 = Tensor(make_moons(256, noise=0.05)[0])  ## 目标样本(双月数据集)
    x_0 = torch.randn_like(x_1)                   ## 源样本(高斯噪声)
    t = torch.rand(len(x_1), 1)                   ## 随机时间 t~U[0,1]
    x_t = (1 - t) * x_0 + t * x_1                ## 生成中间样本(线性路径)
    dx_t = x_1 - x_0                             ## 真实速度(简化版)
    loss_fn(flow(x_t, t), dx_t).backward()        ## MSE 损失+反向传播
    optimizer.step()
  • 数据集:用 make_moons 生成简单的双月数据集(便于可视化);
  • 核心操作:按线性路径生成 xtx_t,用 x1x0x_1 - x_0 作为真实速度标签,训练回归模型。
x = torch.randn(300, 2)  ## 初始源样本
for i in range(n_steps):
    x = flow.step(x, time_steps[i], time_steps[i+1])  ## 数值求解 ODE
  • 数值解法:用“中点法”(Midpoint ODE solver)求解 ODE,避免欧拉法的累积误差;
  • 可视化:输出不同时间步的样本分布,直观展示“高斯噪声→双月分布”的演变过程。
  1. 简化是核心:FM 避开了传统流模型(CNF)的复杂似然计算,通过“概率路径+回归损失”将生成建模转化为简单的 MSE 训练,无需 ODE 模拟或微分,计算效率极高;
  2. 线性路径的优势:章节选择的线性概率路径不仅易计算,还能保证“样本移动轨迹平滑”,降低 ODE 求解难度;
  3. 条件损失的有效性:通过“边际化技巧”,条件损失与边际损失梯度等价,既简化了计算,又不影响训练效果;
  4. 低门槛实现:基础 FM 模型仅需“全连接网络+MSE 损失+简单 ODE 求解”,无需复杂模块,适合快速上手。
  1. 降维理解:将 FM 的复杂数学框架拆解为“路径→训练→采样”三步,屏蔽无关细节,聚焦核心逻辑;
  2. 可复现性:提供独立、极简的 PyTorch 代码,读者可直接运行,直观观察 FM 的工作过程;
  3. 铺垫基础:为后续章节(如非欧氏空间 FM、离散 FM、与扩散模型的关联)提供了“基础模板”,后续扩展均可基于此框架修改。

该章节是《Flow Matching Guide and Code》的“数学基础篇”,核心目标是严格定义“流模型(Flow Models)”的数学本质——作为连续时间马尔可夫过程(CTMP)中最简单的确定性模型,流模型是 Flow Matching(FM)框架的核心载体。章节从概率、微分方程、几何变换等基础理论出发,系统推导流模型的核心性质、与速度场的等价关系、概率路径的生成机制,以及似然计算方法,为后续 FM 框架的扩展(如非欧氏空间、离散空间)奠定理论基础。

流模型是“确定性、时间连续的双射变换”,其核心价值在于:

  1. 能将任意源分布 pp 转化为目标分布 qq(只要两者有密度);
  2. 采样效率高(通过数值求解 ODE 实现);
  3. 支持无偏的模型似然估计(区别于扩散模型等随机过程)。

章节围绕“流模型的数学定义→核心性质→实际应用(采样、似然计算)”展开,所有推导均服务于“如何通过流模型实现生成建模”这一核心目标。

章节首先回顾了生成建模所需的核心概率概念,为后续推导铺垫:

  • 考虑 dd 维欧氏空间 Rd\mathbb{R}^d 中的随机向量 XX,其 PDF 满足 pX(x)0p_X(x) \geq 0RdpX(x)dx=1\int_{\mathbb{R}^d} p_X(x) dx = 1
  • 事件 ARdA \subset \mathbb{R}^d 的概率为 P(XA)=ApX(x)dx\mathbb{P}(X \in A) = \int_A p_X(x) dx
  • 常用分布:dd 维各向同性高斯分布 N(xμ,σ2I)\mathcal{N}(x \mid \mu, \sigma^2 I),其 PDF 为: N(xμ,σ2I)=(2πσ2)d/2exp(xμ222σ2) \mathcal{N}(x \mid \mu, \sigma^2 I) = (2\pi\sigma^2)^{-d/2} \exp\left(-\frac{\|x - \mu\|_2^2}{2\sigma^2}\right)
  • 期望定义:E[X]=xpX(x)dx\mathbb{E}[X] = \int x p_X(x) dx,是“最小二乘意义下最接近 XX 的常数向量”;
  • LOTUS 法则:对于任意可测函数 ffE[f(X)]=f(x)pX(x)dx\mathbb{E}[f(X)] = \int f(x) p_X(x) dx——无需显式求解 f(X)f(X) 的分布,直接通过 XX 的 PDF 计算期望,是后续损失函数推导的核心工具。
  • 对于两个随机向量 X,YX, Y,联合 PDF pX,Y(x,y)p_{X,Y}(x,y) 满足边际化性质: pX(x)=pX,Y(x,y)dy,pY(y)=pX,Y(x,y)dx p_X(x) = \int p_{X,Y}(x,y) dy, \quad p_Y(y) = \int p_{X,Y}(x,y) dx
  • 条件 PDF 定义:pXY(xy)=pX,Y(x,y)pY(y)p_{X \mid Y}(x \mid y) = \frac{p_{X,Y}(x,y)}{p_Y(y)}(要求 pY(y)>0p_Y(y) > 0);
  • 贝叶斯法则:pYX(yx)=pXY(xy)pY(y)pX(x)p_{Y \mid X}(y \mid x) = \frac{p_{X \mid Y}(x \mid y) p_Y(y)}{p_X(x)},是后续“边际化技巧”的理论基础。
  • 条件期望 E[XY=y]=xpXY(xy)dx\mathbb{E}[X \mid Y = y] = \int x p_{X \mid Y}(x \mid y) dx,是“给定 Y=yY = y 时,最小二乘意义下最接近 XX 的函数”;
  • 全期望性质(Tower Property):E[E[XY]]=E[X]\mathbb{E}[\mathbb{E}[X \mid Y]] = \mathbb{E}[X]——多层期望可简化为单层期望,是后续边际速度场推导的关键工具。

流模型的核心是“双射变换”,章节通过“微分同胚”和“推前映射”严格定义这一性质:

  • 直观理解:空间的「光滑、可逆、逆也光滑」的变形,不撕裂、不折叠、不粘连,可完美还原。
  • 严格定义:设 M,NM,\,N 为光滑流形(如 Rd\mathbb{R}^d),映射 ϕ:MN\phi: M \to N 满足:
    • 双射(一一对应 + 满射)
    • 光滑(无穷可微)
    • 逆映射 ϕ1\phi^{-1} 也光滑
  • FM 中的意义:FM 的生成过程由一族微分同胚 ϕt:RdRd\phi_t: \mathbb{R}^d \to \mathbb{R}^dt[0,1]t \in [0,1])描述,其中 ϕ0=id\phi_0 = \text{id}(恒等变换),ϕ1\phi_1 实现从源分布到目标分布的光滑映射。
  • 直观理解:将「空间上的分布」沿着微分同胚变换「搬运」到新空间,保持概率守恒。
  • 数学定义:设 ϕ:XY\phi: X \to Y 为可测映射,ppXX 上的概率分布,则推前分布 ϕp\phi_\sharp p 定义为:对任意可测集 AYA \subseteq Y(ϕp)(A)=p(ϕ1(A)).(\phi_\sharp p)(A) = p(\phi^{-1}(A)).
  • FM 中的核心作用:源分布 p0p_0ϕt\phi_t 推前得到中间分布 pt=(ϕt)p0p_t = (\phi_t)_\sharp p_0,构成从 p0p_0p1p_1 的连续分布路径。
  • XpXX \sim p_X,且 Y=ψ(X)Y = \psi(X)ψ\psiC1C^1 微分同胚),则 YY 的 PDF pYp_Y 可通过“变量替换”推导得: pY(y)=pX(ψ1(y))detyψ1(y) p_Y(y) = p_X\left(\psi^{-1}(y)\right) \left| \det \partial_y \psi^{-1}(y) \right|
    • yψ1(y)\partial_y \psi^{-1}(y) 是逆变换的雅可比矩阵;
    • 行列式的绝对值保证了概率密度的非负性和积分守恒(pY(y)dy=1\int p_Y(y) dy = 1);
  • 符号表示:用 ψpX\psi_\sharp p_X 表示“ψ\psipXp_X 的推前映射”,即 pY=ψpXp_Y = \psi_\sharp p_X

详细解释

pY(y)=pX(ψ1(y))detyψ1(y) p_Y(y) = p_X\left(\psi^{-1}(y)\right) \left| \det \partial_y \psi^{-1}(y) \right|
  • 直观:推前映射指“把 XX 上的分布 pXp_X 沿映射 ψ\psi 搬到 YY 空间”。样本 XX 变成 Y=ψ(X)Y=\psi(X),概率质量随之移动;要得到 YY 的密度 pY(y)p_Y(y),需找到“谁被映射到 yy”(即 x=ψ1(y)x = \psi^{-1}(y)),再按局部体积伸缩比例修正密度。
  • 公式两项的含义:① pX(ψ1(y))p_X(\psi^{-1}(y))yy 对应的源点 x=ψ1(y)x=\psi^{-1}(y) 处的 XX 的密度,即搬到 yy 的那部分概率来自哪、原来多密;② detyψ1(y)\left| \det \partial_y \psi^{-1}(y) \right|:逆映射在 yy 处把无穷小体积 dydy 拉回 xx 空间时,体积的缩放倍数(雅可比行列式绝对值)。若 dxdx 对应 dydydydy 被“压缩”到更小(det<1|det| < 1),则同一块概率质量在 yy 空间占的体积更小,故 pY(y)p_Y(y) 更大;反之体积被拉大则 pYp_Y 更小。
  • 变量替换推导:对任意可测集 AAP(YA)=P(Xψ1(A))=ψ1(A)pX(x)dxP(Y \in A) = P(X \in \psi^{-1}(A)) = \int_{\psi^{-1}(A)} p_X(x) dx。令 y=ψ(x)y = \psi(x) 换元得 dx=detyψ1(y)dydx = \left| \det \partial_y \psi^{-1}(y) \right| dy,故 ψ1(A)pX(x)dx=ApX(ψ1(y))detyψ1(y)dy\int_{\psi^{-1}(A)} p_X(x) dx = \int_A p_X(\psi^{-1}(y)) \left| \det \partial_y \psi^{-1}(y) \right| dy,由 P(YA)=ApY(y)dyP(Y \in A) = \int_A p_Y(y) dy 即得 pY(y)p_Y(y) 的表达式。
  • 为什么用绝对值detyψ1\det \partial_y \psi^{-1} 可能为负(定向改变),但密度必须非负;换元时体积元关系为 dx=detyψ1(y)dydx = \left| \det \partial_y \psi^{-1}(y) \right| dy,故取绝对值才能保证 pY0p_Y \geq 0pY=1\int p_Y = 1
  • 与测度定义一致:前文推前测度定义为 (ψpX)(A)=pX(ψ1(A))(\psi_\sharp p_X)(A) = p_X(\psi^{-1}(A));上式给出的 pYp_Y 正是该推前测度关于 Lebesgue 测度的密度,即 pY=ψpXp_Y = \psi_\sharp p_X 的 PDF 形式。
  • 核心本质:分布「搬运」时,密度需按局部拉伸/压缩比例修正,该比例由雅可比行列式的绝对值决定。

推导思路:推前分布满足「概率守恒」——任意可测集 AA 上,XpXX \sim p_X 落在 AA 的概率 = Y=ϕ(X)Y = \phi(X) 落在 ϕ(A)\phi(A) 的概率,即

ApX(x)dx=ϕ(A)pY(y)dy.\int_A p_X(x)\,dx = \int_{\phi(A)} p_Y(y)\,dy.

对右边做变量替换 y=ϕ(x)y = \phi(x)(即 x=ϕ1(y)x = \phi^{-1}(y)),由多维换元有 dy=detϕ(x)dx\mathrm{d}y = \left| \det \nabla \phi(x) \right| \mathrm{d}x,故

ϕ(A)pY(y)dy=ApY(ϕ(x))detϕ(x)dx.\int_{\phi(A)} p_Y(y)\,dy = \int_A p_Y(\phi(x)) \left| \det \nabla \phi(x) \right| dx.

与左边相等、且 AA 任意,故被积函数相等:

pX(x)=pY(ϕ(x))detϕ(x).p_X(x) = p_Y(\phi(x)) \left| \det \nabla \phi(x) \right|.

解出 pYp_Y(用 yy 表示时令 x=ϕ1(y)x = \phi^{-1}(y))即得下面两式。

一维情形:设 y=ϕ(x)y = \phi(x)pX(x)p_X(x)xx 的密度,则 yy 的密度为

pY(y)=pX(ϕ1(y))(ϕ1)(y).p_Y(y) = p_X(\phi^{-1}(y)) \cdot \left| (\phi^{-1})'(y) \right|.

推导:概率守恒 abpX(x)dx=ϕ(a)ϕ(b)pY(y)dy\int_a^b p_X(x)dx = \int_{\phi(a)}^{\phi(b)} p_Y(y)dy,换元 y=ϕ(x)y=\phi(x)dy=ϕ(x)dx\mathrm{d}y = \phi'(x)\mathrm{d}x,故 abpXdx=abpY(ϕ(x))ϕ(x)dx\int_a^b p_X dx = \int_a^b p_Y(\phi(x))|\phi'(x)|dx,即 pX(x)=pY(ϕ(x))ϕ(x)p_X(x)=p_Y(\phi(x))|\phi'(x)|,写回 yypY(y)=pX(ϕ1(y))(ϕ1)(y)p_Y(y)=p_X(\phi^{-1}(y))|(\phi^{-1})'(y)|(因 (ϕ1)(y)=1/ϕ(x)(\phi^{-1})'(y)=1/\phi'(x))。

高维情形(FM 常用):设 y=ϕ(x)y = \phi(x)ϕ\phi 为微分同胚),则推前分布的密度为

pY(y)=pX(ϕ1(y))detϕ1(y).p_Y(y) = p_X(\phi^{-1}(y)) \cdot \left| \det \nabla \phi^{-1}(y) \right|.

推导:由上面 pX(x)=pY(ϕ(x))detϕ(x)p_X(x) = p_Y(\phi(x)) |\det \nabla \phi(x)|,用 x=ϕ1(y)x = \phi^{-1}(y) 代入得 pY(y)=pX(ϕ1(y))/detϕ(ϕ1(y))p_Y(y) = p_X(\phi^{-1}(y)) / |\det \nabla \phi(\phi^{-1}(y))|;而链式法则给出 ϕ1(y)=[ϕ(x)]1\nabla \phi^{-1}(y) = [\nabla \phi(x)]^{-1},故 detϕ1(y)=1/detϕ(x)\det \nabla \phi^{-1}(y) = 1/\det \nabla \phi(x),即 detϕ1(y)=1/detϕ(x)|\det \nabla \phi^{-1}(y)| = 1/|\det \nabla \phi(x)|,因此上式与 pY(y)=pX(ϕ1(y))detϕ1(y)p_Y(y) = p_X(\phi^{-1}(y)) |\det \nabla \phi^{-1}(y)| 等价。

如何计算(实践中不必对 ϕ1\phi^{-1} 求导):

  • 链式法则来源:恒等式 ϕ1(ϕ(x))=x\phi^{-1}(\phi(x)) = x 两边对 xx 求导得 ϕ1(y)y=ϕ(x)ϕ(x)=I\nabla \phi^{-1}(y)\big|_{y=\phi(x)} \cdot \nabla \phi(x) = I,故 ϕ1(y)=[ϕ(x)]1\nabla \phi^{-1}(y) = [\nabla \phi(x)]^{-1}(其中 x=ϕ1(y)x = \phi^{-1}(y))。
  • 计算步骤:已知 yy,欲算 pY(y)=pX(ϕ1(y))detϕ1(y)p_Y(y) = p_X(\phi^{-1}(y)) \cdot |\det \nabla \phi^{-1}(y)| 时:
    1. x=ϕ1(y)x = \phi^{-1}(y)(解方程或用反函数);
    2. 算 Jacobian J=ϕ(x)J = \nabla \phi(x)(只对 ϕ\phi 求导,d×dd\times d 矩阵);
    3. detϕ1(y)=1/detJ|\det \nabla \phi^{-1}(y)| = 1/|\det J|,故 pY(y)=pX(x)/detJp_Y(y) = p_X(x) / |\det J|
  • 要点:只需算 ϕ\phi 的雅可比及其行列式,无需对 ϕ1\phi^{-1} 求导;若已知的是「从 xxyy 的映射 ϕ\phi」,用等价形式 pY(y)=pX(x)detϕ(x)1p_Y(y) = p_X(x) \cdot |\det \nabla \phi(x)|^{-1} 更直接(在已知 xxy=ϕ(x)y=\phi(x) 时算 ϕ(x)\nabla \phi(x) 即可)。

等价形式(用 xx 表示)y=ϕ(x)y = \phi(x)

pY(y)=pX(x)detϕ(x)1.p_Y(y) = p_X(x) \cdot \left| \det \nabla \phi(x) \right|^{-1}.

(即推导中得到的 pX(x)=pY(ϕ(x))detϕ(x)p_X(x) = p_Y(\phi(x)) |\det \nabla \phi(x)| 的反写。)

流模型是“时间依赖的微分同胚族”,满足:

  • 时间连续性:ψ:[0,1]×RdRd\psi: [0,1] \times \mathbb{R}^d \to \mathbb{R}^dCr([0,1]×Rd,Rd)C^r([0,1] \times \mathbb{R}^d, \mathbb{R}^d) 函数;
  • 对每个固定 t[0,1]t \in [0,1]ψt(x)=ψ(t,x)\psi_t(x) = \psi(t, x)Rd\mathbb{R}^d 上的 CrC^r 微分同胚;
  • 生成过程:若 X0pX_0 \sim p,则流模型定义的随机过程为 Xt=ψt(X0)X_t = \psi_t(X_0)t[0,1]t \in [0,1]),其边际分布为 pt=ψtpp_t = \psi_{t\sharp} p(推前映射的结果)。

对于任意 0t<s10 \leq t < s \leq 1,有: Xs=ψs(X0)=ψs(ψt1(Xt))=ψst(Xt) X_s = \psi_s(X_0) = \psi_s\left(\psi_t^{-1}(X_t)\right) = \psi_{s \mid t}(X_t) 其中 ψst=ψsψt1\psi_{s \mid t} = \psi_s \circ \psi_t^{-1}ψs\psi_sψt1\psi_t^{-1} 的复合)。这表明:XsX_s 的分布仅依赖于 XtX_t,与更早的状态无关——流模型是马尔可夫过程,且是确定性马尔可夫过程(区别于扩散模型的随机性)。

这是章节的核心结论:流 ψt\psi_t 与速度场 utu_t 是“一一对应”的,具体通过 ODE 关联:

  1. 由速度场生成流:若速度场 ut:[0,1]×RdRdu_t: [0,1] \times \mathbb{R}^d \to \mathbb{R}^dCrC^r 光滑的(局部 Lipschitz 连续),则通过以下 ODE 可唯一确定流 ψt\psi_t{ddtψt(x)=ut(ψt(x))(流 ODE)ψ0(x)=x(初始条件) \begin{cases} \frac{d}{dt} \psi_t(x) = u_t\left(\psi_t(x)\right) \quad \text{(流 ODE)} \\ \psi_0(x) = x \quad \text{(初始条件)} \end{cases}

    • 存在性与唯一性定理(Theorem 1):若 utu_tCrC^r 光滑的,则上述 ODE 存在唯一解 ψt(x)\psi_t(x),且 ψt\psi_tCrC^r 微分同胚;
    • 直观理解:速度场 utu_t 规定了每个位置 xx 在时刻 tt 的瞬时移动方向和速率,流 ψt\psi_t 是“沿这些瞬时速度积分得到的轨迹”。
  2. 由流提取速度场:若 ψt\psi_tC1C^1 流,则其对应的速度场可通过“对时间求导”得到: ut(x)=ψ˙t(ψt1(x)) u_t(x) = \dot{\psi}_t\left(\psi_t^{-1}(x)\right) 其中 ψ˙t=ddtψt\dot{\psi}_t = \frac{d}{dt} \psi_t——本质是“先通过逆变换找到 xxt=0t=0 时刻的初始位置,再计算该初始位置在 tt 时刻的瞬时速度”。

流模型的核心目标是“生成从 p0=pp_0 = pp1=qp_1 = q 的概率路径 ptp_t”,章节通过“连续性方程”建立了速度场、流、概率路径三者的关键联系。

概率路径是时间依赖的分布序列 ptp_tt[0,1]t \in [0,1]),满足 pt=ψtp0p_t = \psi_{t\sharp} p_0——即 ptp_t 是源分布 p0p_0 经流 ψt\psi_t 推前映射的结果。

若速度场 utu_t 生成概率路径 ptp_t(即 Xt=ψt(X0)ptX_t = \psi_t(X_0) \sim p_t),则 (ut,pt)(u_t, p_t) 必须满足连续性方程: ddtpt(x)+div(pt(x)ut(x))=0 \frac{d}{dt} p_t(x) + \text{div}\left(p_t(x) u_t(x)\right) = 0

  • 散度(div)定义:div(v)(x)=i=1dxivi(x)\text{div}(v)(x) = \sum_{i=1}^d \partial_{x^i} v^i(x),描述向量场在某点的“发散程度”;
  • 物理意义:概率是“守恒量”——局部概率密度的变化率(ddtpt(x)\frac{d}{dt} p_t(x))等于负的“概率通量的散度”(div(ptut)\text{div}(p_t u_t)),即“局部概率的增加量 = 流入的概率通量 - 流出的概率通量”(如图 8 所示)。

章节通过定理 2 明确了连续性方程与“速度场生成概率路径”的等价关系:

  • ptp_t 是概率路径,utu_t 是局部 Lipschitz 可积的向量场,则:
    1. 连续性方程对所有 t[0,1)t \in [0,1) 成立;
    2. utu_t 生成 ptp_t(即 Xt=ψt(X0)ptX_t = \psi_t(X_0) \sim p_t);
  • 两者互为充要条件——这是后续 FM 框架中“通过优化速度场生成目标概率路径”的核心理论依据。

流模型的重要优势是“支持精确似然计算”,章节通过“瞬时变量替换”推导了似然的 ODE 表达式:

对于流模型 Xt=ψt(X0)X_t = \psi_t(X_0),目标样本 X1=ψ1(X0)qX_1 = \psi_1(X_0) \sim q 的对数似然 logp1(X1)\log p_1(X_1) 满足: ddtlogpt(ψt(x))=div(ut)(ψt(x)) \frac{d}{dt} \log p_t\left(\psi_t(x)\right) = -\text{div}\left(u_t\right)\left(\psi_t(x)\right)

公式含义xx 为固定起点(如 X0=xX_0 = x),ψt(x)\psi_t(x) 为从 xx 出发沿速度场 utu_t 演化到时刻 tt 的位置;logpt(ψt(x))\log p_t(\psi_t(x)) 即该轨迹在 tt 时刻那一点的对数密度。等式表示:沿同一条轨迹,对数密度对时间的导数等于该点速度场散度的负值——散度越大,该点密度随时间减少得越快。

推导逻辑(三步)

  1. 推前映射的密度:由变量替换有 pt(ψt(x))=p0(x)detxψt(x)1p_t(\psi_t(x)) = p_0(x) \cdot \left| \det \partial_x \psi_t(x) \right|^{-1}
    • 符号p0p_0 为起点分布,pt=(ψt)p0p_t = (\psi_t)_\sharp p_0 为推前分布;xx 为固定起点,ψt(x)\psi_t(x) 为从 xx 出发在 tt 时刻的位置;xψt(x)\partial_x \psi_t(x) 为雅可比矩阵。
    • 含义:左边 pt(ψt(x))p_t(\psi_t(x)) 是轨迹上 tt 时刻那一点的密度,右边 p0(x)p_0(x) 是起点密度;等式表示“同一条轨迹上两点的密度通过雅可比行列式的倒数相联系”——概率被 ψt\psi_t 搬运时,密度按局部体积伸缩比例修正。
    • 来源(变量替换):设 y=ψt(x)y = \psi_t(x),推前密度满足 pt(y)=p0(ψt1(y))detyψt1(y)p_t(y) = p_0(\psi_t^{-1}(y)) \cdot \left| \det \partial_y \psi_t^{-1}(y) \right|。由 yψt1(y)=(xψt(x))1\partial_y \psi_t^{-1}(y) = (\partial_x \psi_t(x))^{-1}detyψt1=(detxψt)1\det \partial_y \psi_t^{-1} = (\det \partial_x \psi_t)^{-1},代入并以 y=ψt(x)y = \psi_t(x) 写回即得上式。
    • 直观detxψt(x)\det \partial_x \psi_t(x) 表示 xx 处无穷小体积被 ψt\psi_t 拉伸的倍数;其绝对值的倒数即密度应乘的因子——体积被拉大则密度变小(概率守恒)。
  2. 取对数并对 tt 求导:记 Jt(x)=detxψt(x)J_t(x) = \det \partial_x \psi_t(x),则 logpt(ψt(x))=logp0(x)logJt(x)\log p_t(\psi_t(x)) = \log p_0(x) - \log |J_t(x)|,对 tt 求导得 ddtlogpt(ψt(x))=ddtlogJt(x)\frac{d}{dt}\log p_t(\psi_t(x)) = -\frac{d}{dt}\log |J_t(x)|
  3. 雅可比与散度:对 ψ˙t=ut(ψt)\dot\psi_t = u_t(\psi_t)ddtlogJt=div(ut)(ψt(x))\frac{d}{dt}\log |J_t| = \text{div}(u_t)(\psi_t(x)),代入即得上式;从连续性方程沿轨迹也可推出同一结论。

核心意义:沿轨迹从 t=0t=0t=1t=1 积分可得 logp1(ψ1(x))logp0(x)=01div(ut)(ψt(x))dt\log p_1(\psi_1(x)) - \log p_0(x) = -\int_0^1 \text{div}(u_t)(\psi_t(x))\,dt。若 p0p_0 已知(如标准高斯),则 logp1(X1)=logp0(x)01div(ut)(ψt(x))dt\log p_1(X_1) = \log p_0(x) - \int_0^1 \text{div}(u_t)(\psi_t(x))\,dt(其中 X1=ψ1(x)X_1 = \psi_1(x)x=X0x = X_0)。因此无需显式求 p1p_1 或雅可比行列式,只需沿轨迹对 div(ut)\text{div}(u_t) 做时间积分即可得到对数似然;若 utu_t 由网络给出,散度可用自动微分或估计得到——即把“似然计算”转化为“对速度场散度的积分”。

dd 较大时,直接计算 div(ut(x))\text{div}(u_t(x))(即雅可比矩阵的迹)计算成本极高(复杂度 O(d2)O(d^2)),章节采用 Hutchinson 迹估计 实现无偏近似: div(ut(x))=EZ[tr(ZTxut(x)Z)] \text{div}(u_t(x)) = \mathbb{E}_Z \left[ \text{tr}\left(Z^T \partial_x u_t(x) Z\right) \right] 其中 ZN(0,I)Z \sim \mathcal{N}(0, I)——通过随机向量 ZZ 可将散度计算复杂度降至 O(d)O(d),且只需一次向量-雅可比乘积(VJP)反向传播即可实现。

将 Hutchinson 估计代入似然演化方程,积分后得到对数似然的无偏估计: logp1(ψ1(x))=logp0(x)EZ01tr(ZTxut(ψt(x))Z)dt \log p_1(\psi_1(x)) = \log p_0(x) - \mathbb{E}_Z \int_0^1 \text{tr}\left(Z^T \partial_x u_t(\psi_t(x)) Z\right) dt

  • 实际计算时,需通过“反向求解 ODE”实现(从 t=1t=1t=0t=0),代码示例见 Code 3。

传统流模型(如 CNF)的训练目标是“最大化训练数据的对数似然”,即: L(θ)=EYqlogp1θ(Y) \mathcal{L}(\theta) = -\mathbb{E}_{Y \sim q} \log p_1^\theta(Y) 其中 p1θp_1^\theta 是流模型 ψtθ\psi_t^\theta 生成的目标分布。

训练过程需要“精确求解 ODE 并计算其微分”,导致计算负担极重——这也是后续 FM 框架提出“无模拟训练”的核心动机(无需在训练中求解 ODE)。

  1. 流与速度场的等价性:流模型的本质是“由速度场定义的 ODE 轨迹”,两者一一对应,这为“通过学习速度场间接控制流的变换”提供了理论基础;
  2. 连续性方程的核心作用:作为“速度场生成概率路径”的充要条件,连续性方程是 FM 框架中“损失函数设计”的底层依据;
  3. 似然计算的可行性:通过 Hutchinson 迹估计,流模型在高维场景下仍能实现无偏似然估计,这是其区别于扩散模型等随机过程的重要优势;
  4. 传统流模型的局限:基于似然的训练依赖 ODE 模拟与微分,计算成本高——这为 FM 框架的“回归式训练”(无需 ODE 模拟)铺垫了必要性。
  1. 严格建立了流模型的数学体系,明确“流→速度场→概率路径”的内在关联,为后续 FM 框架提供理论基石;
  2. 解决了高维场景下流模型的似然计算问题,为模型评估提供了可行方案;
  3. 揭示了传统流模型的训练局限,凸显了 FM 框架“无模拟训练”的创新价值。

Flow Matching(FM,流匹配)是一种可扩展的生成模型训练框架,核心目标是学习一个参数化速度场 utθu_{t}^{\theta},使其生成的概率路径 ptp_{t} 能从源分布 ppp0=pp_0=p)平滑插值到目标分布 qqp1=qp_1=q)。该框架通过巧妙的条件化策略和边际化技巧,避免了训练过程中昂贵的ODE模拟,大幅提升了训练效率,同时保持了生成模型的灵活性和性能。

  • 源分布与目标分布:设源样本 X0pX_0 \sim p(通常是易采样的已知分布,如高斯分布 N(0,I)N(0,I)),目标样本 X1qX_1 \sim q(通常是未知的数据分布,如图像、音频等)。
  • 耦合(Coupling):源样本与目标样本的联合分布关系,分为两种核心类型:
    1. 独立耦合:π0,1(X0,X1)=p(X0)q(X1)\pi_{0,1}(X_0,X_1) = p(X_0)q(X_1),源和目标样本独立(如从高斯噪声生成图像);
    2. 依赖耦合:源和目标样本存在依赖关系(如从低分辨率图像生成高分辨率图像、从灰度图生成彩色图)。

耦合定义了源与目标的关联方式,直接影响后续概率路径的设计和速度场的学习效果。独立耦合适用于无监督生成任务,依赖耦合则适用于有监督的条件生成任务。

概率路径 ptp_t 是FM的核心基础,指一系列随时间 t[0,1]t \in [0,1] 变化的分布,需满足边界条件 p0=pp_0=pp1=qp_1=q,即从源分布平滑过渡到目标分布。

FM采用“条件路径+边际化”的构建方式,大幅简化路径设计难度:

  1. 条件概率路径:针对每个目标样本 X1=x1X_1=x_1,设计条件概率路径 pt1(xx1)p_{t|1}(x|x_1),需满足:

    • 初始条件:p01(xx1)=π01(xx1)p_{0|1}(x|x_1) = \pi_{0|1}(x|x_1)π01\pi_{0|1} 是条件耦合,独立耦合下为 p(x)p(x));
    • 终止条件:p11(xx1)=δx1(x)p_{1|1}(x|x_1) = \delta_{x_1}(x)δ\delta 函数表示 t=1t=1 时概率集中于目标样本 x1x_1)。
    • 典型示例:高斯条件路径 pt1(xx1)=N(xtx1,(1t)2I)p_{t|1}(x|x_1) = \mathcal{N}(x | tx_1, (1-t)^2I),随 t1t \to 1 逐渐收敛到 δx1(x)\delta_{x_1}(x)
  2. 边际概率路径:通过对所有目标样本的条件路径加权聚合,得到全局概率路径: pt(x)=pt1(xx1)q(x1)dx1 p_t(x) = \int p_{t|1}(x|x_1) q(x_1) dx_1 加权系数由目标分布 q(x1)q(x_1) 决定,确保边际路径满足边界条件 p0=pp_0=pp1=qp_1=q

  • 连续性:ptp_ttt 平滑变化;
  • 可计算性:条件路径 pt1p_{t|1} 需易于采样和推导速度场;
  • 插值性:严格满足源和目标分布的边界约束。

速度场 ut(x)u_t(x) 是FM的核心学习对象,其作用是驱动样本沿概率路径 ptp_t 演化(通过解ODE ddtψt(x)=ut(ψt(x))\frac{d}{dt}\psi_t(x) = u_t(\psi_t(x)))。

  1. 条件速度场:对于每个条件路径 pt1(xx1)p_{t|1}(x|x_1),存在对应的条件速度场 ut(xx1)u_t(x|x_1),满足:ut(x1)u_t(\cdot|x_1) 生成 pt1(x1)p_{t|1}(\cdot|x_1)(即条件路径是条件速度场对应的ODE的解)。

    • 示例:对于高斯条件路径 pt1(xx1)=N(xtx1,(1t)2I)p_{t|1}(x|x_1) = \mathcal{N}(x | tx_1, (1-t)^2I),条件速度场为 ut(xx1)=x1x1tu_t(x|x_1) = \frac{x_1 - x}{1-t}
  2. 边际速度场:通过对条件速度场加权平均,得到生成边际路径 ptp_t 的边际速度场: ut(x)=ut(xx1)p1t(x1x)dx1 u_t(x) = \int u_t(x|x_1) p_{1|t}(x_1|x) dx_1 其中 p1t(x1x)=pt1(xx1)q(x1)pt(x)p_{1|t}(x_1|x) = \frac{p_{t|1}(x|x_1)q(x_1)}{p_t(x)}(由贝叶斯法则推导),表示给定当前样本 xx 时目标样本 x1x_1 的后验概率。

具体实现
  1. 边际速度场

    ut(x)=ut(xx1)  p1t(x1x)dx1 u_t(x) = \int u_t(x\mid x_1)\; p_{1\mid t}(x_1\mid x)\,dx_1
  2. 贝叶斯后验

    p1t(x1x)=pt1(xx1)  q(x1)pt(x) p_{1\mid t}(x_1\mid x) = \frac{p_{t\mid 1}(x\mid x_1)\; q(x_1)}{p_t(x)}

含义:

  • ut(xx1)u_t(x\mid x_1)条件速度场(给定目标 x1x_1,当前 xx 该往哪走)
  • pt1(xx1)p_{t\mid 1}(x\mid x_1)给定 x1x_1xx 的转移密度(流前向)
  • q(x1)q(x_1)目标分布(比如真实数据分布)
  • pt(x)p_t(x)当前时间边际分布
  • p1t(x1x)p_{1\mid t}(x_1\mid x)给定 xx,反推 x1x_1 是哪张真实图 → 后验

核心实现思路(超级关键)

我们要算:

ut(x)=Ex1p1t(x)[ut(xx1)] u_t(x) = \mathbb{E}_{x_1 \sim p_{1\mid t}(\cdot\mid x)}\big[\,u_t(x\mid x_1)\,\big]

但有两个麻烦:

  1. 不能直接从后验 p1t(x1x)p_{1\mid t}(x_1\mid x) 采样(不知道怎么采样)
  2. 但我们能从真实数据 q(x1)q(x_1) 采样(这就是你的训练集)

所以: 用从 q 采样的样本,加权,去模拟从 p₁|ₜ 采样的期望。 这就叫 重要性采样 / 加权平均

积分 ≈ 蒙特卡洛采样平均

()p1t(x1x)dx11Kk=1Kut(xx1(k)) \int (\cdots) p_{1\mid t}(x_1\mid x) dx_1 \approx \frac{1}{K}\sum_{k=1}^K u_t(x\mid x_1^{(k)})

其中

x1(k)p1t(x1x) x_1^{(k)} \sim p_{1\mid t}(x_1\mid x)

但 Flow Matching 里几乎从不直接从后验 p1tp_{1\mid t} 采样,而是用:

ut(x)1Zx1qut(xx1)  pt1(xx1)权重 u_t(x) \approx \frac{1}{Z}\sum_{x_1 \sim q} u_t(x\mid x_1)\; \underbrace{p_{t\mid 1}(x\mid x_1)}_{\text{权重}}

其中

Z=x1qpt1(xx1) Z = \sum_{x_1 \sim q} p_{t\mid 1}(x\mid x_1)

1. 数学推导:把期望换成可计算形式

你要的积分:

ut(x)=ut(xx1)p1t(x1x)dx1 u_t(x) = \int u_t(x\mid x_1)\,\color{red}{p_{1\mid t}(x_1\mid x)}\,dx_1

把贝叶斯代入:

p1t(x1x)=pt1(xx1)q(x1)pt(x) \color{red}{p_{1\mid t}(x_1\mid x)} = \frac{p_{t\mid 1}(x\mid x_1)\,q(x_1)}{p_t(x)}

所以:

ut(x)=ut(xx1)pt1(xx1)q(x1)pt(x)dx1 u_t(x) = \int u_t(x\mid x_1) \cdot \frac{p_{t\mid 1}(x\mid x_1)\,q(x_1)}{p_t(x)} dx_1

把分母提出来:

ut(x)=1pt(x)ut(xx1)pt1(xx1)q(x1)dx1 u_t(x) = \frac{1}{p_t(x)} \int u_t(x\mid x_1)\,p_{t\mid 1}(x\mid x_1)\,\color{red}{q(x_1)}\,dx_1

注意红色部分:

()q(x1)dx1=Ex1q[] \int (\cdots) \color{red}{q(x_1)} dx_1 = \mathbb{E}_{x_1\sim q}\big[\,\cdots\,\big]

所以:

ut(x)=1pt(x)  Ex1q[ut(xx1)pt1(xx1)] u_t(x) = \frac{1}{p_t(x)}\; \mathbb{E}_{x_1\sim q}\big[\,u_t(x\mid x_1)\,p_{t\mid 1}(x\mid x_1)\,\big]

2. 分母 pt(x)p_t(x) 也能写成期望

pt(x)=pt1(xx1)q(x1)dx1 p_t(x) = \int p_{t\mid 1}(x\mid x_1)\,q(x_1)\,dx_1

也是对 qq 的期望:

pt(x)=Ex1q[pt1(xx1)] p_t(x) = \mathbb{E}_{x_1\sim q}\big[\,p_{t\mid 1}(x\mid x_1)\,\big]

3. 合起来:重要采样公式

把两个期望塞一起:

ut(x)=  Ex1q[ut(xx1)pt1(xx1)]    Ex1q[pt1(xx1)]   u_t(x) = \frac{\;\mathbb{E}_{x_1\sim q}\big[\,u_t(x\mid x_1)\cdot p_{t\mid 1}(x\mid x_1)\,\big]\;} {\;\mathbb{E}_{x_1\sim q}\big[\,p_{t\mid 1}(x\mid x_1)\,\big]\;}

这就是所有 flow matching 论文里真正在代码里用的形式


4. 离散化:变成加权平均

期望用样本平均近似:

E[]1Kk=1K() \mathbb{E}[\cdots] \approx \frac{1}{K}\sum_{k=1}^K (\cdots)

代入:

ut(x)k=1Kut(xx1(k))pt1(xx1(k))权重wkk=1Kwk u_t(x) \approx \frac{ \sum_{k=1}^K u_t(x\mid x_1^{(k)}) \cdot \underbrace{p_{t\mid 1}(x\mid x_1^{(k)})}_{\text{权重}w_k} }{ \sum_{k=1}^K w_k }

其中

x1(k)q(x1) x_1^{(k)} \sim q(x_1)

完整代码

import torch
import torch.nn as nn
class ConditionalVelocityField(nn.Module):
    def __init__(self, dim=2):
        super().__init__()
        self.model = nn.Sequential(
            nn.Linear(dim + dim + 1, 128),
            nn.SiLU(),
            nn.Linear(128, 128),
            nn.SiLU(),
            nn.Linear(128, dim)
        )

    def forward(self, x, x1, t):
        """
        x:  当前样本    [B, D]
        x1: 目标样本    [B, D]
        t:  时间        [B, 1]
        return: u_t(x|x1)  [B, D]
        """
        inp = torch.cat([x, x1, t], dim=-1)
        return self.model(inp)

Flow Matching 最标准:线性插值 + 高斯

xt=(1t)x0+tx1+σtε x_t = (1-t)x_0 + t x_1 + \sigma_t \varepsilon

所以转移密度是高斯:

pt1(xx1)=N(x; μt(x1), σt2I) p_{t\mid 1}(x\mid x_1) = \mathcal{N}\big(x;\ \mu_t(x_1),\ \sigma_t^2 I\big)
def batch_mvn_logp(x, mean, std):
    """高斯对数概率"""
    var = std ** 2
    return -0.5 * ((x - mean) ** 2).sum(-1) / var - 0.5 * torch.log(2 * torch.pi * var)

def p_t_given_1(x, x1, t, sigma=0.01):
    """
    p_{t|1}(x | x1)
    x:  [B, D]
    x1: [B, D]
    t:  [B, 1]
    return: 概率密度 [B]
    """
    mu = t * x1 + (1 - t) * x  # 你教程里的流路径
    logp = batch_mvn_logp(x, mu, sigma)
    return logp.exp()

严格实现:

ut(x)=Ex1q[  ut(xx1)pt1(xx1)Z  ] u_t(x) = \mathbb{E}_{x_1\sim q}\left[\; u_t(x|x_1) \cdot \frac{p_{t|1}(x|x_1)}{Z}\;\right]

Z=Ex1q[  pt1(xx1)  ] Z = \mathbb{E}_{x_1\sim q}\big[\;p_{t|1}(x|x_1)\;\big]
def marginal_velocity_field(x, t, cond_net, x1_batch, sigma=0.01):
    """
    你要的公式:
    u_t(x) = ∫ u_t(x|x1) * p_{1|t}(x1|x) dx1
    
    输入:
    x:        当前样本        [B, D]
    t:        时间            [B, 1]
    cond_net: 条件速度场
    x1_batch: 来自 q(x1) 的一批真实样本 [N, D]
    """
    B, D = x.shape
    N = x1_batch.shape[0]

    # ---------------------------
    # 1. 扩展成配对形式
    # ---------------------------
    x_tile = x[:, None, :].repeat(1, N, 1)          # [B, N, D]
    t_tile = t[:, None, :].repeat(1, N, 1)          # [B, N, 1]
    x1_tile = x1_batch[None, :, :].repeat(B, 1, 1)  # [B, N, D]

    # ---------------------------
    # 2. 计算所有 u_t(x | x1)
    # ---------------------------
    u_cond = cond_net(
        x_tile.flatten(0, 1),
        x1_tile.flatten(0, 1),
        t_tile.flatten(0, 1)
    ).view(B, N, D)  # [B, N, D]

    # ---------------------------
    # 3. 计算权重 w = p_{t|1}(x | x1)
    # ---------------------------
    w = p_t_given_1(
        x_tile,
        x1_tile,
        t_tile,
        sigma=sigma
    )  # [B, N]

    # ---------------------------
    # 4. 归一化权重 = p_{1|t}(x1|x)
    # ---------------------------
   Z = w.sum(dim=1, keepdim=True) + 1e-8
    w_norm = w / Z  # [B, N]

    # ---------------------------
    # 5. 加权平均 = 积分
    # ---------------------------
    # u_t(x) = sum( u_cond * w_norm )
    u_marginal = (u_cond * w_norm[..., None]).sum(dim=1)  # [B, D]

    return u_marginal

4. 如何使用(训练/推理)

# 超参
dim = 2
sigma = 0.01

# 模型
cond_net = ConditionalVelocityField(dim)

# 批次
B = 32
N = 64  # 用来加权平均的真实样本数量
x = torch.randn(B, dim)    # 当前样本
t = torch.rand(B, 1)       # 时间
x1_batch = torch.randn(N, dim)  # 真实样本 q(x1)

# 计算边际速度场!
u_t = marginal_velocity_field(x, t, cond_net, x1_batch, sigma)

print(u_t.shape)  # torch.Size([32, 2])

代码逐行对应

ut(x)=ut(xx1)p1t(x1x)dx1 u_t(x) = \int u_t(x\mid x_1)\,p_{1\mid t}(x_1\mid x)\,dx_1
u_marginal = (u_cond * w_norm[..., None]).sum(dim=1)
p1t(x1x)=pt1(xx1)q(x1)pt(x) p_{1\mid t}(x_1\mid x) = \frac{p_{t\mid 1}(x\mid x_1)\,q(x_1)}{p_t(x)}
w = p_t_given_1(...)
w_norm = w / w.sum(dim=1, keepdim=True)
  1. 加权平均 = 对后验期望
(u_cond * w_norm[..., None]).sum(dim=1)

边际速度场 ut(x)u_t(x) 可解释为:给定当前样本 xx(服从 ptp_t),所有可能目标样本对应的条件速度场的加权平均,权重为后验概率 p1t(x1x)p_{1|t}(x_1|x)。这种平均方式确保了 ut(x)u_t(x) 能准确驱动样本沿边际路径 ptp_t 演化。

边际化技巧是FM的核心数学基础,其作用是证明:若条件速度场生成条件概率路径,则通过加权平均得到的边际速度场,必然生成对应的边际概率路径

条件化不仅限于目标样本 X1X_1,可扩展到任意随机变量 ZZ(如源样本 X0X_0、标签 YY 等):

  • 条件概率路径:ptZ(xz)p_{t|Z}(x|z)(生成 Z=zZ=z 时的条件路径);
  • 条件速度场:ut(xz)u_t(x|z)(生成 ptZ(xz)p_{t|Z}(x|z));
  • 边际概率路径:pt(x)=ptZ(xz)pZ(z)dzp_t(x) = \int p_{t|Z}(x|z) p_Z(z) dz
  • 边际速度场:ut(x)=E[ut(XtZ)Xt=x]u_t(x) = \mathbb{E}[u_t(X_t|Z) | X_t=x](条件期望形式,更易理解和计算)。
  1. ptZ(xz)p_{t|Z}(x|z)ut(xz)u_t(x|z) 关于 (t,x)(t,x)C1C^1 光滑的;
  2. pZ(z)p_Z(z) 具有有界支撑(即 ZZ 仅在有限区域有非零概率);
  3. 对所有 t[0,1)t \in [0,1)xRdx \in \mathbb{R}^dpt(x)>0p_t(x) > 0

若条件速度场 ut(xz)u_t(x|z) 是条件可积的,且生成条件路径 ptZ(xz)p_{t|Z}(x|z),则边际速度场 ut(x)u_t(x) 生成边际路径 pt(x)p_t(x)(对所有 t[0,1)t \in [0,1))。

通过验证边际速度场与边际路径满足连续性方程(Continuity Equation):

  1. 条件速度场与条件路径满足连续性方程(由质量守恒定理);
  2. 对连续性方程两边关于 ZZ 积分,利用 Leibniz 法则交换积分与微分顺序;
  3. 代入边际速度场和边际路径的定义,可证两者满足连续性方程,因此边际速度场生成边际路径。

边际化技巧将复杂的“边际路径生成”问题分解为简单的“条件路径生成”问题,大幅降低了FM的设计难度——只需设计易于处理的条件路径和条件速度场,即可通过边际化得到满足要求的边际路径和速度场。

FM的训练目标是让参数化速度场 utθ(x)u_{t}^{\theta}(x) 逼近真实边际速度场 ut(x)u_t(x),核心挑战是真实边际速度场 ut(x)u_t(x) 难以直接计算(需积分所有目标样本)。FM通过Bregman散度和条件化损失解决这一问题。

  1. Flow Matching损失(FM损失)LFM(θ)=EtU[0,1],XtptD(ut(Xt),utθ(Xt)) \mathcal{L}_{FM}(\theta) = \mathbb{E}_{t \sim U[0,1], X_t \sim p_t} D(u_t(X_t), u_{t}^{\theta}(X_t)) 其中 DD 是Bregman散度(如平方2\ell_2范数 D(u,v)=uv2D(u,v)=\|u-v\|^2),表示在概率路径上让参数化速度场逼近真实边际速度场。

    • 问题:真实边际速度场 ut(Xt)u_t(X_t) 不可直接计算,因此该损失无法直接优化。
  2. 条件Flow Matching损失(CFM损失)LCFM(θ)=EtU[0,1],Z,XtptZ(Z)D(ut(XtZ),utθ(Xt)) \mathcal{L}_{CFM}(\theta) = \mathbb{E}_{t \sim U[0,1], Z, X_t \sim p_{t|Z}(\cdot|Z)} D(u_t(X_t|Z), u_{t}^{\theta}(X_t)) 直接使用条件速度场 ut(XtZ)u_t(X_t|Z) 作为监督信号,无需计算边际速度场。

FM损失与CFM损失的梯度完全等价: θLFM(θ)=θLCFM(θ) \nabla_{\theta} \mathcal{L}_{FM}(\theta) = \nabla_{\theta} \mathcal{L}_{CFM}(\theta) 且CFM损失的最小化器恰好是真实边际速度场 ut(x)u_t(x)

利用Bregman散度的仿射不变性(vD(E[Y],v)=E[vD(Y,v)]\nabla_v D(\mathbb{E}[Y],v) = \mathbb{E}[\nabla_v D(Y,v)]),将FM损失的梯度转化为条件速度场的期望梯度,最终与CFM损失的梯度等价。

证明:证明过程如下直接计算所示:

θLFM(θ)=θEt,XtptD(ut(Xt),utθ(Xt))=Et,XtptθD(ut(Xt),utθ(Xt))=(i)Et,XtptvD(ut(Xt),utθ(Xt))θutθ(Xt)=(4.12)Et,XtptvD(EZpZt(Xt)[ut(XtZ)],utθ(Xt))θutθ(Xt)=(ii)Et,XtptEZpZt(Xt)[vD(ut(XtZ),utθ(Xt))θutθ(Xt)]=(iii)Et,XtptEZpZt(Xt)[θD(ut(XtZ),utθ(Xt))]=(iv)Et,Z,XtptZ(Z)θD(ut(XtZ),utθ(Xt))=θLCFM(θ), \begin{aligned} \nabla_{\theta} \mathcal{L}_{FM}(\theta) & =\nabla_{\theta} \mathbb{E}_{t, X_{t} \sim p_{t}} D\left(u_{t}\left(X_{t}\right), u_{t}^{\theta}\left(X_{t}\right)\right) \\ & =\mathbb{E}_{t, X_{t} \sim p_{t}} \nabla_{\theta} D\left(u_{t}\left(X_{t}\right), u_{t}^{\theta}\left(X_{t}\right)\right) \\ & \stackrel{(i)}{=} \mathbb{E}_{t, X_{t} \sim p_{t}} \nabla_{v} D\left(u_{t}\left(X_{t}\right), u_{t}^{\theta}\left(X_{t}\right)\right) \nabla_{\theta} u_{t}^{\theta}\left(X_{t}\right) \\ & \stackrel{(4.12)}{=} \mathbb{E}_{t, X_{t} \sim p_{t}} \nabla_{v} D\left(\mathbb{E}_{Z \sim p_{Z | t}\left(\cdot | X_{t}\right)}\left[u_{t}\left(X_{t} | Z\right)\right], u_{t}^{\theta}\left(X_{t}\right)\right) \nabla_{\theta} u_{t}^{\theta}\left(X_{t}\right) \\ & \stackrel{(ii)}{=} \mathbb{E}_{t, X_{t} \sim p_{t}} \mathbb{E}_{Z \sim p_{Z | t}\left(\cdot | X_{t}\right)}\left[\nabla_{v} D\left(u_{t}\left(X_{t} | Z\right), u_{t}^{\theta}\left(X_{t}\right)\right) \nabla_{\theta} u_{t}^{\theta}\left(X_{t}\right)\right] \\ & \stackrel{(iii)}{=} \mathbb{E}_{t, X_{t} \sim p_{t}} \mathbb{E}_{Z \sim p_{Z | t}\left(\cdot | X_{t}\right)}\left[\nabla_{\theta} D\left(u_{t}\left(X_{t} | Z\right), u_{t}^{\theta}\left(X_{t}\right)\right)\right] \\ & \stackrel{(iv)}{=} \mathbb{E}_{t, Z, X_{t} \sim p_{t | Z}(\cdot | Z)} \nabla_{\theta} D\left(u_{t}\left(X_{t} | Z\right), u_{t}^{\theta}\left(X_{t}\right)\right) \\ & =\nabla_{\theta} \mathcal{L}_{CFM}(\theta), \end{aligned}

其中 (i) 和 (iii) 使用了链式法则;(ii) 由式(4.21)在 XtX_{t} 上条件应用得到;(iv) 使用了贝叶斯法则。

定理 4 是一个更一般结果的特例,该结果利用 Bregman 散度学习条件期望,具体如下。这一结果将贯穿全文,为流匹配背后所有可扩展损失提供理论基础:

命题 1(用于学习条件期望的 Bregman 散度):设 XSXX \in S_{X}YSYY \in S_{Y} 是定义在状态空间 SXS_{X}SYS_{Y} 上的随机变量,g:Rp×SXRng: \mathbb{R}^{p} ×S_{X} \to \mathbb{R}^{n}(θ,x)gθ(x)(\theta, x) \mapsto g^{\theta}(x),其中 θRp\theta \in \mathbb{R}^{p} 表示可学习参数。设 Dx(u,v)D_{x}(u, v)xSXx \in S_{X})是定义在凸集 ΩRn\Omega \subset \mathbb{R}^{n} 上的 Bregman 散度,且该凸集包含 ff 的像。则:

θEX,YDX(Y,gθ(X))=θEXDX(E[YX],gθ(X)).(4.25) \nabla_{\theta} \mathbb{E}_{X, Y} D_{X}\left(Y, g^{\theta}(X)\right)=\nabla_{\theta} \mathbb{E}_{X} D_{X}\left(\mathbb{E}[Y | X], g^{\theta}(X)\right) . (4.25)

特别地,对于所有满足 pX(x)>0p_{X}(x)>0xxgθ(x)g^{\theta}(x) 关于 θ\theta 的全局最小值满足:

gθ(x)=E[YX=x].(4.26) g^{\theta}(x)=\mathbb{E}[Y | X=x] . \quad(4.26)

证明:假设 gθg^{\theta} 关于 θ\theta 可微,且 XXYY 的分布、DxD_{x} 以及 gg 允许交换微分和积分的顺序,则有:

θEX,YDX(Y,gθ(X))=(i)EX[E[vDX(Y,gθ(X))θgθ(X)X]]=(ii)EX[vDX(E[YX],gθ(X))θgθ(X)]=(iii)EX[θDX(E[YX],gθ(X))]=θEXDX(E[YX],gθ(X)), \begin{aligned} \nabla_{\theta} \mathbb{E}_{X, Y} D_{X}\left(Y, g^{\theta}(X)\right) & \stackrel{(i)}{=} \mathbb{E}_{X}\left[\mathbb{E}\left[\nabla_{v} D_{X}\left(Y, g^{\theta}(X)\right) \nabla_{\theta} g^{\theta}(X) | X\right]\right] \\ & \stackrel{(ii)}{=} \mathbb{E}_{X}\left[\nabla_{v} D_{X}\left(\mathbb{E}[Y | X], g^{\theta}(X)\right) \nabla_{\theta} g^{\theta}(X)\right] \\ & \stackrel{(iii)}{=} \mathbb{E}_{X}\left[\nabla_{\theta} D_{X}\left(\mathbb{E}[Y | X], g^{\theta}(X)\right)\right] \\ & =\nabla_{\theta} \mathbb{E}_{X} D_{X}\left(\mathbb{E}[Y | X], g^{\theta}(X)\right), \end{aligned}

其中 (i) 由链式法则和期望的塔性质(3.11)得到;等式 (ii) 由式(4.21)得到;等式 (iii) 再次使用了链式法则。最后,对于每个满足 pX(x)>0p_{X}(x)>0xSXx \in S_{X},我们可以选择 gθ(x)=E[YX=x]g^{\theta}(x)=\mathbb{E}[Y | X=x],此时 EXDX(E[YX],gθ(X))=0\mathbb{E}_{X} D_{X}(\mathbb{E}[Y | X], g^{\theta}(X))=0,这必然是关于 θ\theta 的全局最小值。

X=XtX=X_{t}Y=ut(XtZ)Y=u_{t}(X_{t} | Z)gθ(x)=utθ(x)g^{\theta}(x)=u_{t}^{\theta}(x),并对 tU[0,1]t \sim U[0,1] 求期望,即可由命题 1 直接推出定理 4。

FM 损失的一个有用变体是从均匀分布以外的其他分布中采样时间 tt。具体来说,考虑 tω(t)t \sim \omega(t),其中 ω(t)\omega(t) 是 [0, 1] 上的概率密度函数(PDF)。这将得到以下加权目标函数:

LCFM(θ)=Etω,Z,XtD(ut(XtZ),utθ(Xt))=EtU,Z,Xtω(t)D(ut(XtZ),utθ(Xt)). \mathcal{L}_{CFM}(\theta)=\mathbb{E}_{t \sim \omega, Z, X_{t}} D\left(u_{t}\left(X_{t} | Z\right), u_{t}^{\theta}\left(X_{t}\right)\right)=\mathbb{E}_{t \sim U, Z, X_{t}} \omega(t) D\left(u_{t}\left(X_{t} | Z\right), u_{t}^{\theta}\left(X_{t}\right)\right) .

尽管在数学上是等价的,但在大规模图像生成任务中,从 ω\omega 中采样 tt 比使用权重 ω(t)\omega(t) 能获得更好的性能(Esser 等人, 2024)。

CFM损失是FM可落地的关键:通过条件速度场提供监督信号,避免了边际速度场的直接计算,同时保证了优化目标与FM损失一致。在实际训练中,只需采样 ttZZ(如目标样本 X1X_1)和 XtX_t(从条件路径采样),即可计算损失并更新参数。

本节提供了条件路径和条件速度场的具体设计方法——通过条件流(Conditional Flows)构建,进一步简化FM的工程实现。

条件流 ψt(xx1)\psi_t(x|x_1) 是满足以下条件的时间依赖映射: ψt(xx1)={xt=0x1t=1 \psi_t(x|x_1) = \begin{cases} x & t=0 \\ x_1 & t=1 \end{cases} ψt(xx1)\psi_t(x|x_1) 关于 (t,x)(t,x) 光滑,关于 xx 是微分同胚(diffeomorphism,可逆且导数连续)。

  1. 条件路径:由条件流的推前映射(push-forward map)定义: pt1(xx1)=[ψt(x1)π01(x1)](x) p_{t|1}(x|x_1) = [\psi_t(\cdot|x_1)_{\sharp} \pi_{0|1}(\cdot|x_1)](x) 即通过条件流将初始分布 π01(x1)\pi_{0|1}(\cdot|x_1) 推前得到条件路径,天然满足边界条件 p01(xx1)=π01(xx1)p_{0|1}(x|x_1)=\pi_{0|1}(x|x_1)p11(xx1)=δx1(x)p_{1|1}(x|x_1)=\delta_{x_1}(x)

  2. 条件速度场:由条件流的时间导数提取(流与速度场的等价性): ut(xx1)=ψ˙t(ψt1(xx1)x1) u_t(x|x_1) = \dot{\psi}_t(\psi_t^{-1}(x|x_1)|x_1) 其中 ψ˙t=ddtψt\dot{\psi}_t = \frac{d}{dt}\psi_t,表示条件流在逆映射点的瞬时速度。

  • 灵活性:条件流的设计可灵活选择(如线性流、仿射流、 geodesic 流等),适配不同数据类型;
  • 可计算性:条件速度场可通过条件流直接推导,无需手动设计;
  • 理论保证:条件流的微分同胚性质确保了条件路径的光滑性和可逆性。
  1. 从数据加载器获取源-目标样本对 (x0,x1)(x_0,x_1)(服从耦合 π0,1\pi_{0,1});
  2. 采样时间 tU[0,1]t \sim U[0,1]
  3. 通过条件流采样得到 xt=ψt(x0x1)x_t = \psi_t(x_0|x_1) 和条件速度场 dxt=ψ˙t(x0x1)dx_t = \dot{\psi}_t(x_0|x_1)
  4. 计算CFM损失:cfmloss=E[utθ(xt)dxt2]{cfm}_{loss} = \mathbb{E}[\|u_{t}^{\theta}(x_t) - dx_t\|^2]
  5. 反向传播更新模型参数。

线性条件流是条件流的一种简单且高效的实例,由最优传输(Optimal Transport, OT)理论推导而来,具有动能最优性。

动态OT问题的目标是找到动能最小的概率路径和速度场: minpt,ut01ut(x)2pt(x)dxdts.t. p0=p,p1=q,连续性方程 \min_{p_t,u_t} \int_0^1 \int \|u_t(x)\|^2 p_t(x) dx dt \quad s.t. \ p_0=p, p_1=q, \text{连续性方程} 其解为OT位移插值器 ψt(x)=tϕ(x)+(1t)x\psi_t^*(x) = t\phi(x) + (1-t)xϕ\phi 是OT映射),对应的速度场为常数 ϕ(x)x\phi(x) - x

为最小化条件速度场的动能上界,通过变分法求解得到线性条件流: ψt(xx1)=tx1+(1t)x \psi_t(x|x_1) = tx_1 + (1-t)x 即样本沿源样本 xx 到目标样本 x1x_1 的直线演化。

  1. 动能最优:线性条件流最小化所有条件流的动能上界;
  2. OT等价性:当目标分布 q=δx1q = \delta_{x_1}(单一样本)时,线性条件流就是OT的解析解;
  3. 简单易算:对应的条件速度场为 ut(xx1)=x1xu_t(x|x_1) = x_1 - x(代入4.6的条件速度场公式推导),大幅简化训练。

仿射条件流是线性条件流的推广,通过引入调度器(scheduler)(αt,σt)(\alpha_t, \sigma_t) 增加灵活性,同时保持解析可计算性,是FM中应用最广泛的条件流类型。

仿射条件流的形式为: ψt(xx1)=αtx1+σtx \psi_t(x|x_1) = \alpha_t x_1 + \sigma_t x 其中调度器 αt,σt:[0,1][0,1]\alpha_t, \sigma_t: [0,1] \to [0,1] 需满足:

  • 边界条件:α0=0,σ0=1\alpha_0=0, \sigma_0=1t=0t=0 时为源样本 xx);α1=1,σ1=0\alpha_1=1, \sigma_1=0t=1t=1 时为目标样本 x1x_1);
  • 单调性:α˙t>0,σ˙t>0\dot{\alpha}_t > 0, -\dot{\sigma}_t > 0αt\alpha_t 递增,σt\sigma_t 递减)。
  1. 条件速度场:由仿射流的时间导数得到: ut(xx1)=α˙tx1+σ˙tx u_t(x|x_1) = \dot{\alpha}_t x_1 + \dot{\sigma}_t x
  2. 边际速度场:代入边际速度场公式,得到: ut(x)=E[α˙tX1+σ˙tX0Xt=x] u_t(x) = \mathbb{E}[\dot{\alpha}_t X_1 + \dot{\sigma}_t X_0 | X_t = x] 其中 Xt=αtX1+σtX0X_t = \alpha_t X_1 + \sigma_t X_0(仿射流定义的样本演化)。

边际速度场可通过多种方式参数化,便于模型学习:

  1. 直接参数化:直接学习 ut(x)u_t(x)
  2. 目标预测(x1tx_{1|t}):ut(x)=σ˙tσtx+(α˙tαtσ˙tσt)E[X1Xt=x]u_t(x) = \frac{\dot{\sigma}_t}{\sigma_t}x + \left(\dot{\alpha}_t - \alpha_t \frac{\dot{\sigma}_t}{\sigma_t}\right) \mathbb{E}[X_1 | X_t=x]
  3. 源预测(x0tx_{0|t}):ut(x)=α˙tαtx+(σ˙tσtα˙tαt)E[X0Xt=x]u_t(x) = \frac{\dot{\alpha}_t}{\alpha_t}x + \left(\dot{\sigma}_t - \sigma_t \frac{\dot{\alpha}_t}{\alpha_t}\right) \mathbb{E}[X_0 | X_t=x]。 三种参数化可通过贝叶斯法则和条件期望相互转换(见表1)。

目标预测形式的推导:由仿射关系 Xt=αtX1+σtX0X_t = \alpha_t X_1 + \sigma_t X_0X0=(XtαtX1)/σtX_0 = (X_t - \alpha_t X_1)/\sigma_tσt0\sigma_t \neq 0)。代入边际速度场 ut(x)=E[α˙tX1+σ˙tX0Xt=x]u_t(x) = \mathbb{E}[\dot{\alpha}_t X_1 + \dot{\sigma}_t X_0 | X_t = x]ut(x)=E[α˙tX1+σ˙tXtαtX1σt    Xt=x]. u_t(x) = \mathbb{E}\left[\dot{\alpha}_t X_1 + \dot{\sigma}_t \frac{X_t - \alpha_t X_1}{\sigma_t} \;\bigg|\; X_t = x\right]. 在条件 Xt=xX_t = x 下,XtX_t 为常数 xx,故 ut(x)=σ˙tσtx+(α˙tαtσ˙tσt)E[X1Xt=x]. u_t(x) = \frac{\dot{\sigma}_t}{\sigma_t}x + \left(\dot{\alpha}_t - \alpha_t \frac{\dot{\sigma}_t}{\sigma_t}\right) \mathbb{E}[X_1 | X_t=x]. 源预测形式同理,用 X1=(XtσtX0)/αtX_1 = (X_t - \sigma_t X_0)/\alpha_t 代入即可。

仿射条件流的一个重要性质是:在训练完成后可以更换速度调度器,而无需重新训练模型。例如,模型可用方差保持调度器(variance preserving scheduler,如 VPScheduler)训练,推理时则可切换到最优传输型调度器(如 CondOTScheduler)或 CosineScheduler,以改善采样轨迹或数值稳定性。

尺度–时间变换(ST 变换) 是实现上述切换的核心。设原调度器为 (αt,σt)(\alpha_t, \sigma_t),新调度器为 (αˉr,σˉr)(\bar{\alpha}_r, \bar{\sigma}_r),其中 t,r[0,1]t,r \in [0,1]。原仿射条件流为 ψt(x0x1)=αtx1+σtx0\psi_t(x_0|x_1) = \alpha_t x_1 + \sigma_t x_0,对应速度场为 ut(x)u_t(x)。我们通过“新时间” rr 与尺度因子 srs_r 构造一条在新时间 rr 下的路径,使其在 r=1r=1 时与原始流在 t=1t=1 时的输出一致。

时间重参数化:令信噪比(SNR)ρ(t)=αt/σt\rho(t) = \alpha_t/\sigma_tρˉ(r)=αˉr/σˉr\bar{\rho}(r) = \bar{\alpha}_r/\bar{\sigma}_r。将新时间 rr 映射到原时间 trt_r,使得新调度器在 rr 处的 SNR 与原调度器在 trt_r 处的 SNR 相同,即

tr=ρ1(ρˉ(r)). t_r = \rho^{-1}(\bar{\rho}(r)).

这样,在 rr 时刻的“等效”样本若按原流定义,应落在原路径的 XtrX_{t_r} 上。

尺度因子:为让新路径在 rr 处的边际分布与“缩放后的原路径”一致,引入尺度因子

sr=σˉrσtr. s_r = \frac{\bar{\sigma}_r}{\sigma_{t_r}}.

新路径上的样本定义为

Xˉr=srXtr. \bar{X}_r = s_r X_{t_r}.

由仿射形式 Xt=αtX1+σtX0X_t = \alpha_t X_1 + \sigma_t X_0 可知,XtrX_{t_r} 的“尺度”由 σtr\sigma_{t_r} 决定;乘以 sr=σˉr/σtrs_r = \bar{\sigma}_r/\sigma_{t_r} 后,Xˉr\bar{X}_r 在统计上对应新调度器 (αˉr,σˉr)(\bar{\alpha}_r, \bar{\sigma}_r) 下、从同一 X0,X1X_0,X_1 生成的路径样本。特别地,在 r=1r=1σˉ1=0\bar{\sigma}_1=0α1=1\alpha_1=1,故 Xˉ1=s1Xt1\bar{X}_1 = s_1 X_{t_1};若 t1=1t_1=1(由 ρ1(ρˉ(1))\rho^{-1}(\bar{\rho}(1)) 保证),则 Xt1=X1X_{t_1}=X_1,且 s1=σˉ1/σ1=0s_1 = \bar{\sigma}_1/\sigma_1=0 的极限给出 Xˉ1=X1\bar{X}_1 = X_1,即终点样本不变ψˉ1(x0x1)=ψ1(x0x1)\bar{\psi}_1(x_0|x_1) = \psi_1(x_0|x_1)

变换后的速度场:对新路径 Xˉr=srXtr\bar{X}_r = s_r X_{t_r} 关于 rr 求导,并利用原速度场 dXt/dt=ut(Xt)d X_{t}/dt = u_t(X_t),可得

dXˉrdr=s˙rXtr+srt˙rutr(Xtr)=s˙rsrXˉr+srt˙rutr(Xˉrsr). \frac{d\bar{X}_r}{dr} = \dot{s}_r X_{t_r} + s_r \dot{t}_r \, u_{t_r}(X_{t_r}) = \frac{\dot{s}_r}{s_r} \bar{X}_r + s_r \dot{t}_r \, u_{t_r}\left(\frac{\bar{X}_r}{s_r}\right).

因此,在新时间 rr 和新样本位置 x=Xˉrx = \bar{X}_r 下,新调度器对应的速度场

uˉr(x)=s˙rsrx+srt˙rutr(xsr). \bar{u}_r(x) = \frac{\dot{s}_r}{s_r} x + s_r \dot{t}_r \, u_{t_r}\left(\frac{x}{s_r}\right).

其中 tr=ρ1(ρˉ(r))t_r = \rho^{-1}(\bar{\rho}(r))sr=σˉr/σtrs_r = \bar{\sigma}_r/\sigma_{t_r}utru_{t_r} 为原模型在原时间 trt_r原空间 x/srx/s_r 处输出的速度。实现时,只需将输入 (x/sr,tr)(x/s_r, t_r) 送入已训练的速度网络得到 utr(x/sr)u_{t_r}(x/s_r),再按上式与 s˙r\dot{s}_rt˙r\dot{t}_r 组合即可得到 uˉr(x)\bar{u}_r(x),无需重新训练。

小结:通过 ST 变换(尺度–时间映射 srs_rtrt_r),可将基于原调度器 (αt,σt)(\alpha_t, \sigma_t) 训练得到的速度场 ut(x)u_t(x) 转化为新调度器 (αˉr,σˉr)(\bar{\alpha}_r, \bar{\sigma}_r) 下的速度场 uˉr(x)\bar{u}_r(x),并保证 r=1r=1 时生成样本与 t=1t=1 时一致。代码库中的 ScheduleTransformedModel 即实现该逻辑:内部通过原调度器的 snr_inverseαˉr/σˉr\bar{\alpha}_r/\bar{\sigma}_r 反解 trt_r,再计算 srs_rs˙r\dot{s}_rt˙r\dot{t}_r 并组合上式得到 uˉr(x)\bar{u}_r(x)

在撰写本文时,最常用的一类仿射概率路径由独立耦合 π0,1(x0,x1)=p(x0)q(x1)\pi_{0,1}(x_0, x_1) = p(x_0)q(x_1)高斯源分布 p(x)=N(x0,σ2I)p(x) = \mathcal{N}(x|0, \sigma^2 I) 给出。由于高斯在仿射变换下保持不变,所得条件概率路径形如

pt1(xx1)=N(xαtx1,σt2I).(4.70) p_{t|1}(x|x_1) = \mathcal{N}(x \mid \alpha_t x_1,\, \sigma_t^2 I). \tag{4.70}

该情形涵盖了由标准扩散模型生成的概率路径(尽管在扩散中生成是随机的且由 SDE 描述,其边际概率相同)。两个例子是 Variance Preserving (VP)Variance Exploding (VE) 路径(Song et al., 2021),由下列调度器定义:

αt1, σ01, σ1=0(VP);αt=e12βt, σt=1eβt, β01, β1=0(VE). \alpha_t \equiv 1,\ \sigma_0 \gg 1,\ \sigma_1 = 0 \quad \text{(VP)}; \qquad \alpha_t = e^{-\frac{1}{2}\beta_t},\ \sigma_t = \sqrt{1 - e^{-\beta_t}},\ \beta_0 \gg 1,\ \beta_1 = 0 \quad \text{(VE)}.

上式中“1\gg 1”表示取足够大的标量,使得 p0(x)=p01(xx1)q(x1)dx1p_0(x) = \int p_{0|1}(x|x_1)q(x_1)dx_1t=0t=0 时接近已知高斯——即 VE 时为 N(0,σ02I)\mathcal{N}(\cdot|0, \sigma_0^2 I),VP 时为 N(0,I)\mathcal{N}(\cdot|0, I)。注意在两种情形下 pt(x)p_t(x)t=0t=0 时都不精确等于 pp,这与 (4.51) 中的 FM 路径不同。

在高斯情形下,分数(定义为对数概率的梯度)有简单形式。具体地,(4.70) 中条件路径的分数为

logpt1(xx1)=1σt2(xαtx1).(4.71) \nabla \log p_{t|1}(x|x_1) = -\frac{1}{\sigma_t^2}(x - \alpha_t x_1). \tag{4.71}

表 1 不同模型参数化之间的转换:(at,bt)(a_t, b_t) 对应 ftB(x)=atx+btftA(x)f^B_t(x) = a_t x + b_t f^A_t(x)。颜色表示该转换适用于:所有路径、仿射路径、高斯路径。下三角由上三角的逆变换得到:ftA(x)=1bt(atx+ftB(x))f^A_t(x) = \frac{1}{b_t}\bigl(-a_t x + f^B_t(x)\bigr),对应序对 (atbt,1bt)\bigl(-\frac{a_t}{b_t}, \frac{1}{b_t}\bigr)。注意部分转换存在奇点,见 4.8.1 节末的讨论。

B \ Avelocityx1-predictionx0-predictionscore
velocity0,10,\, 1σ˙tσt, α˙tσtσ˙tαtσt\displaystyle\frac{\dot{\sigma}_t}{\sigma_t},\ \frac{\dot{\alpha}_t\sigma_t - \dot{\sigma}_t\alpha_t}{\sigma_t}α˙tαt, σ˙tαtα˙tσtαt\displaystyle\frac{\dot{\alpha}_t}{\alpha_t},\ \frac{\dot{\sigma}_t\alpha_t - \dot{\alpha}_t\sigma_t}{\alpha_t}α˙tαt, σ˙tσtαtα˙tσt2αt\displaystyle\frac{\dot{\alpha}_t}{\alpha_t},\ -\frac{\dot{\sigma}_t\sigma_t\alpha_t - \dot{\alpha}_t\sigma_t^2}{\alpha_t}
x1-prediction0,10,\, 11αt, σtαt\displaystyle\frac{1}{\alpha_t},\ -\frac{\sigma_t}{\alpha_t}1αt, σt2αt\displaystyle\frac{1}{\alpha_t},\ \frac{\sigma_t^2}{\alpha_t}
x0-prediction0,10,\, 10, σt0,\ -\sigma_t
score0,10,\, 1

对应边际概率路径 (4.4) 的分数为

logpt(x)=pt1(xx1)q(x1)pt(x)dx1(4.72) \nabla \log p_t(x) = \int \frac{\nabla p_{t|1}(x|x_1)\,q(x_1)}{p_t(x)}\,dx_1 \tag{4.72}

=logpt1(xx1)pt1(xx1)q(x1)pt(x)dx1(4.73) = \int \nabla \log p_{t|1}(x|x_1)\, \frac{p_{t|1}(x|x_1)q(x_1)}{p_t(x)}\,dx_1 \tag{4.73}

=E[logpt1(XtX1)Xt=x](4.74) = \mathbb{E}\bigl[\nabla \log p_{t|1}(X_t|X_1) \bigm| X_t = x\bigr] \tag{4.74}

=(4.71)E[1σt2(XtαtX1)Xt=x](4.75) \stackrel{\text{(4.71)}}{=} \mathbb{E}\biggl[-\frac{1}{\sigma_t^2}(X_t - \alpha_t X_1) \biggm| X_t = x\biggr] \tag{4.75}

=(4.54)E[1σtX0Xt=x](4.76) \stackrel{\text{(4.54)}}{=} \mathbb{E}\biggl[-\frac{1}{\sigma_t}X_0 \biggm| X_t = x\biggr] \tag{4.76}

=(4.59)1σtx0t(x),(4.77) \stackrel{\text{(4.59)}}{=} -\frac{1}{\sigma_t}\,x_{0|t}(x), \tag{4.77}

其中 x0tx_{0|t} 沿用 (4.59) 的记号。扩散文献中常将 x0x_0-prediction(x0tx_{0|t})称为 noise-prediction 或 ϵ\epsilon-prediction。上式表明分数与 x0x_0-prediction 成比例,并给出高斯路径下从分数到其他参数化的转换规则,见表 1。

边际速度的动能最优性。由上文的转换公式(表 1)可得,高斯路径的边际速度可写成

ut(x)=α˙tαtxσ˙tσtαtα˙tσt2αtlogpt(x)(4.78) u_t(x) = \frac{\dot{\alpha}_t}{\alpha_t}x - \frac{\dot{\sigma}_t\sigma_t\alpha_t - \dot{\alpha}_t\sigma_t^2}{\alpha_t}\,\nabla\log p_t(x) \tag{4.78}

=(α˙t2αtx2σ˙tσtαtα˙tσt2αtlogpt(x))(4.79) = \nabla\biggl(\frac{\dot{\alpha}_t}{2\alpha_t}\|x\|^2 - \frac{\dot{\sigma}_t\sigma_t\alpha_t - \dot{\alpha}_t\sigma_t^2}{\alpha_t}\,\log p_t(x)\biggr) \tag{4.79}

因此 ut(x)u_t(x) 是梯度场,从而是由 pt1(xx1)=N(xαtx1,σt2I)p_{t|1}(x|x_1) = \mathcal{N}(x|\alpha_t x_1, \sigma_t^2 I) 定义的固定边际高斯概率路径 pt(x)p_t(x)动能最优速度场(参见 Villani (2021) 第 8.1.2 节或 Neklyudov et al. (2023) 定理 2.1)。

在推导 Flow Matching 训练算法时,我们假定可以从源分布 pp 与目标分布 qq 的某个耦合 π0,1(x0,x1)\pi_{0,1}(x_0, x_1) 中抽取样本 (X0,X1)π0,1(X0,X1)(X_0, X_1) \sim \pi_{0,1}(X_0, X_1)。例如,独立耦合 π0,1(x0,x1)=p(x0)q(x1)\pi_{0,1}(x_0, x_1) = p(x_0)q(x_1) 是保持边际分布 ppqq 的最简单耦合;或者由数据集提供的配对样本 (X0,X1)π0,1(X_0, X_1) \sim \pi_{0,1}。本节讨论两种可用于训练 Flow Matching 模型的具体耦合。

依赖型耦合在配对数据的学习任务中自然出现。例如考虑图像修复(image in-painting)任务:qq 是自然图像的分布,pp 是同一批图像在某一正方形区域被掩码后的分布。此时目标不是从噪声变换到数据,而是学习从被掩码图像 x0x_0 到其填充结果 x1x_1 的映射。由于该问题是不适定的(每个被掩码图像 x0x_0 对应多种可行的填充结果 x1x_1),可将任务表述为从未知的、依赖数据的耦合 π10(x1x0)\pi_{1|0}(x_1|x_0) 中采样。

基于上述观察,Liu et al. (2023);Albergo et al. (2024) 提出在数据依赖的耦合下学习桥模型或流模型,通过这一简单修改拓展出一类新应用。虽然关心的对象 π10(x1x0)\pi_{1|0}(x_1|x_0) 无法直接采样,但往往可以采样其反向依赖 π01(x0x1)\pi_{0|1}(x_0|x_1)。回到图像修复的例子:从填充图像 X1qX_1 \sim q(目标样本)出发,很容易通过掩码得到源样本 X0pX_0 \sim p。为此,设定

π0,1(x0,x1)=π01(x0x1)q(x1).(4.80) \pi_{0,1}(x_0, x_1) = \pi_{0|1}(x_0|x_1) q(x_1). \tag{4.80}

因此,我们可以通过 (i) 抽取 X1qX_1 \sim q,(ii) 对 X1X_1 施加一个预先定义的随机变换得到 X0X_0,从而获得配对 (X0,X1)(X_0, X_1)。为满足推论 1 的条件(保证源为密度)并促进多样性,在从 π01(x0x1)\pi_{0|1}(x_0|x_1) 采样时加入噪声。Liu et al. (2023);Albergo et al. (2024) 在图像超分辨率、修复与去模糊等任务上验证了该方法的有效性,并优于基于 guided diffusion(Saharia et al., 2022)的方法。

动机:为什么要更直的轨迹?
如 4.7 节所述,更直的概率路径对应的 ODE 仿真误差更小(数值积分更准、采样更稳定)。因此自然要问:如何修改训练算法,使学到的速度场诱导更直的轨迹?

与最优传输的关系
如上文提示,直轨迹与最优传输(Optimal Transport, OT)问题相关。直观上:OT 给出的正是让“从源到目标的移动”总成本最小的配对方式,对应的流是直线;若训练时用的配对越接近 OT 配对,学到的流就越直。具体地,设凸成本泛函 c ⁣:RdR0c \colon \mathbb{R}^d \to \mathbb{R}_{\geq 0} 与条件 OT 流 ψt(x0x1)=tx1+(1t)x0\psi_t(x_0|x_1) = t x_1 + (1-t) x_0。则耦合的传输成本给出边际传输成本的一个上界(Liu et al., 2022;Pooladian et al., 2023):

E[c(ψ1(X0)X0)]E[c(X1X0)],(4.81) \mathbb{E}[c(\psi_1(X_0) - X_0)] \leq \mathbb{E}[c(X_1 - X_0)], \tag{4.81}

公式 (4.81) 在说什么?

  • 左端 E[c(ψ1(X0)X0)]\mathbb{E}[c(\psi_1(X_0) - X_0)]:当 (X0,X1)(X_0, X_1)最优传输(OT)耦合抽样时,沿 OT 流 ψt(x0x1)=tx1+(1t)x0\psi_t(x_0|x_1) = t x_1 + (1-t) x_0X0X_0 走到 t=1t=1 的终点就是 X1X_1,所以 ψ1(X0)X0=X1X0\psi_1(X_0) - X_0 = X_1 - X_0,左端等于“在 OT 配对下、位移 X1X0X_1 - X_0 的成本的期望”。
  • 右端 E[c(X1X0)]\mathbb{E}[c(X_1 - X_0)]:当 (X0,X1)(X_0, X_1)其他方式(例如独立抽样)配对时,同一量 c(X1X0)c(X_1 - X_0) 的期望。
  • 不等式含义:OT 配对使“从源到目标的位移成本”在期望意义下最小;任意其它配对(如独立耦合)的期望成本只会更大或相等。因此,训练时用的配对越接近 OT,学到的流在平均意义上位移成本越小,轨迹越直

c(x)=x2c(x)=\|x\|^2 时与 (4.49) 的关联
当成本取二次 c(x)=x2c(x)=\|x\|^2 时,这一结论可以从 4.7 节的 (4.49)(与动能/直路径有关的界)推出。具体地,将 OT 解代入:OT 流对应的速度场为 ut(ψt(x))=ϕ(x)xu_t(\psi_t(x)) = \phi(x) - x(从 xx 到 OT 映射 ϕ(x)\phi(x) 的匀速直线),其中 ϕ\phi 为最优传输映射;该速度场使路径为直线,在 (4.49) 的框架下给出 (4.81) 的左端不大于右端。

对训练算法的启示
因此,若能降低训练时使用的耦合的期望成本(让配对更接近 OT),就能得到成本更低、更直的边际传输映射;多样本耦合正是通过“在每批 kk 个源/目标间做最优配对”来逼近这一点。

多样本耦合的做法
为此,Pooladian et al. (2023) 提出多样本耦合(multisample couplings),思路是:每次不只取一个源样本和一个目标样本,而是取 kk 个源和 kk 个目标,先在这 kk 对之间做一次“成本最小的配对”,再从中随机取一对用于本次训练。这样得到的 (X0,X1)(X_0,X_1) 在统计上更接近 OT 配对,轨迹更直、成本更低。形式地,通过以下过程隐式构造在源与目标之间引入依赖的非平凡联合 π0,1(x0,x1)\pi_{0,1}(x_0, x_1)

  1. 独立地抽取 X0(i)pX_0^{(i)} \sim pX1(i)qX_1^{(i)} \sim qi[k]i \in [k](得到 kk 个源点和 kk 个目标点)。
  2. k×kk \times k 的配对方案中,找使期望成本最小的那一个,记为 πkBk\pi^k \in \mathcal{B}_k,即
    πk:=argminπBkEπ[c(X0(i)X1(j))]\pi^k := \arg\min_{\pi \in \mathcal{B}_k} \mathbb{E}_\pi\bigl[c\bigl(X_0^{(i)} - X_1^{(j)}\bigr)\bigr]
    Bk\mathcal{B}_k 为双随机矩阵的多面体,即“每个源恰配一个目标、每个目标恰配一个源”的配对方案全体;最小化即求解一个最优分配问题(如用匈牙利算法)。
  3. 在满足 πk(i,j)=1\pi^k(i,j)=1 的配对 (X0(i),X1(j))(X_0^{(i)}, X_1^{(j)}) 中均匀随机抽取一对,作为本次训练用的 (X0,X1)(X_0, X_1)

性质小结
上述过程通过采样方式隐式定义联合分布 π0,1k(x0,x1)\pi_{0,1}^k(x_0, x_1)。该隐式联合保持边际分布(源仍是 pp、目标仍是 qq),并满足步骤 2 的最优性约束(Pooladian et al., 2023)。当 k=1k=1 时,没有选择余地,方法退化为独立耦合。当 k>1k>1 时,Pooladian et al. (2023) 证明相比独立耦合传输成本降低,即

E(x0,x1)π0,1k(x0,x1)[c(x1x0)]EX0p,X1q[c(X1X0)]. \mathbb{E}_{(x_0,x_1) \sim \pi_{0,1}^k(x_0,x_1)}[c(x_1 - x_0)] \leq \mathbb{E}_{X_0 \sim p,\, X_1 \sim q}[c(X_1 - X_0)].

此外,对二次成本函数,多样本耦合在 kk \to \infty 时趋于 Optimal Transport 成本并诱导直轨迹(Pooladian et al., 2023;Tong et al., 2023)。可以简单记为:kk 越大,配对越像 OT,流越直、采样质量越好。

本节考虑在引导信号下训练生成模型,以进一步控制生成样本。该技术在众多实际应用中已被证明很有价值,例如图像到图像翻译(Saharia et al., 2022)与文本到图像生成(Nichol et al., 2022;Esser et al., 2024)。本小节假定可获取带标签的目标样本 (x1,y)(x_1, y),其中 yYRky \in \mathcal{Y} \subseteq \mathbb{R}^k 为标签或引导变量。

在引导下训练生成模型的一种自然方式是学习从条件分布 q(x1y)q(x_1|y) 中采样,扩散模型与 FM 模型均有采用(Zheng et al., 2023)。沿用图 2 中的 FM 蓝图:考虑来自条件目标分布 q(x1y)q(x_1|y) 的样本,并指定一个简单的——通常但不一定是高斯的——源分布 pp。接下来,将引导概率路径设计为条件概率路径的聚合:

ptY(xy)=pt1(xx1)q(x1y)dx1,(4.82) p_{t|Y}(x|y) = \int p_{t|1}(x|x_1) q(x_1|y) \, dx_1, \tag{4.82}
公式 (4.82) 的推导

公式 (4.82) 的推导(边际化):

  1. 符号与设定

    • yYy \in \mathcal{Y}:引导变量(如类别、文本)。
    • q(x1y)q(x_1|y):给定 yy 时目标 x1x_1 的条件分布(条件目标分布)。
    • pt1(xx1)p_{t|1}(x|x_1):与 4.2 节相同,给定终点 x1x_1 时、tt 时刻的条件概率路径(从源到 x1x_1 的插值密度)。
  2. 条件联合分布的假定 在给定 Y=yY=y 时,把“tt 时刻状态 XtX_t”与“终点 X1X_1”的联合密度设为:

    pt,1Y(x,x1y)=pt1(xx1)q(x1y). p_{t,1|Y}(x, x_1|y) = p_{t|1}(x|x_1)\, q(x_1|y).

    含义:先按 q(y)q(\cdot|y) 抽终点 x1x_1,再在“给定终点 x1x_1”的条件下,tt 时刻的密度为 pt1(xx1)p_{t|1}(x|x_1);即条件路径只依赖终点 x1x_1,不显式依赖 yyyy 只通过 q(x1y)q(x_1|y) 影响终点分布)。

  3. x1x_1 边际化得 (4.82) 按边际密度定义,给定 yyXtX_t 的密度等于联合对 x1x_1 积分:

    ptY(xy)=pt,1Y(x,x1y)dx1. p_{t|Y}(x|y) = \int p_{t,1|Y}(x, x_1|y)\, dx_1.

    代入上面的假定 pt,1Y(x,x1y)=pt1(xx1)q(x1y)p_{t,1|Y}(x, x_1|y) = p_{t|1}(x|x_1) q(x_1|y),即得

    ptY(xy)=pt1(xx1)q(x1y)dx1.(即 (4.82)) p_{t|Y}(x|y) = \int p_{t|1}(x|x_1)\, q(x_1|y)\, dx_1. \quad \text{(即 (4.82))}

    因此 (4.82) 就是在“条件联合 = pt1(xx1)q(x1y)p_{t|1}(x|x_1)q(x_1|y)”的假定下,对 x1x_1 做边际化得到的引导概率路径;与无条件情形 pt(x)=pt1(xx1)q(x1)dx1p_t(x) = \int p_{t|1}(x|x_1) q(x_1)\, dx_1 的推导完全平行,只是把目标分布从 q(x1)q(x_1) 换成了条件目标 q(x1y)q(x_1|y)。所得引导概率路径以引导变量 YpYY \sim p_Y 为条件,并满足边际端点

其中假定 pt,1Y(x,x1y)=pt1(xx1)q(x1y)p_{t,1|Y}(x, x_1|y) = p_{t|1}(x|x_1) q(x_1|y),即条件路径不依赖 YY。所得引导概率路径以引导变量 YpYY \sim p_Y 为条件,并满足边际端点

p0Y(y)=p(),p1Y(y)=q(y).(4.83) p_{0|Y}(\cdot|y) = p(\cdot), \qquad p_{1|Y}(\cdot|y) = q(\cdot|y). \tag{4.83}

引导速度场的形式为

ut(xy)=ut(xx1)p1t,Y(x1x,y)dx1,(4.84) u_t(x|y) = \int u_t(x|x_1) \, p_{1|t,Y}(x_1|x, y) \, dx_1, \tag{4.84}

其中由贝叶斯法则有

p1t,Y(x1x,y)=pt1(xx1)q(x1y)ptY(xy).(4.85) p_{1|t,Y}(x_1|x, y) = \frac{p_{t|1}(x|x_1) q(x_1|y)}{p_{t|Y}(x|y)}. \tag{4.85}

要说明 ut(xy)u_t(x|y) 生成 ptY(xy)p_{t|Y}(x|y),将 (4.82) 与 (4.84) 代入 (4.14),并注意到 FM/CFM 损失在引导情形下形式不变,证明步骤与定理 4 相同。

实践中,我们训练单个神经网络 utθ ⁣:Rd×RkRdu_t^\theta \colon \mathbb{R}^d \times \mathbb{R}^k \to \mathbb{R}^d 来对所有 yy 建模引导边际速度场。于是,CFM 损失 (4.32) 的引导版本为

LCFM(θ)=Et,(X0,X1,Y)π0,1,Y[D(ψ˙t(X0X1),utθ(XtY))].(4.86) \mathcal{L}_{\mathrm{CFM}}(\theta) = \mathbb{E}_{t,\,(X_0,X_1,Y)\sim \pi_{0,1,Y}} \Bigl[ D\bigl( \dot{\psi}_t(X_0|X_1),\, u_t^\theta(X_t|Y) \bigr) \Bigr]. \tag{4.86}

实践中,扩散模型文献表明,当大量目标样本 X1X_1 共享同一引导信号 YY 时(如类别引导,Nichol and Dhariwal, 2021),引导效果最好。然而,当引导变量 YY 不重复且复杂(如图像描述)时,引导更具挑战性。

对于用高斯路径训练的流,可利用 table 1 中条件分布的速度场与分数函数之间的转换,应用分类器引导(Song et al., 2021;Dhariwal and Nichol, 2021)与无分类器引导(Ho and Salimans, 2021)(Zheng et al., 2023):

ut(xy)=atx+btlogptY(xy).(4.87) u_t(x|y) = a_t x + b_t \nabla \log p_{t|Y}(x|y). \tag{4.87}

对引导概率路径使用贝叶斯法则得

ptY(xy)=pYt(yx)pt(x)pY(y).(4.88) p_{t|Y}(x|y) = \frac{p_{Y|t}(y|x) p_t(x)}{p_Y(y)}. \tag{4.88}

取对数并对 xx 求梯度(=x\nabla = \nabla_x),得到概率路径 pt(x)p_t(x) 的分数与其引导版本 ptY(xy)p_{t|Y}(x|y) 的分数之间的基本关系:

logptY(xy)条件分数=logpYt(yx)分类器+logpt(x)无条件分数,(4.89) \underbrace{\nabla \log p_{t|Y}(x|y)}_{\text{条件分数}} = \underbrace{\nabla \log p_{Y|t}(y|x)}_{\text{分类器}} + \underbrace{\nabla \log p_t(x)}_{\text{无条件分数}}, \tag{4.89}

即两者通过一个试图在给定样本 xx 下预测引导变量 yy 的分类器模型 pYt(yx)p_{Y|t}(y|x) 的分数相联系。

基于该关系,Song et al. (2021) 提出分类器引导:用时间依赖的分类器(在 xpt(x)x \sim p_t(x) 下预测引导变量 yy)来引导无条件模型(由 logpt(x)\nabla \log p_t(x) 参数化),从而从条件模型 q(x1y)q(x_1|y) 采样。对应的速度场可写为

u~tθ,ϕ(xy)=atx+bt(logpYtϕ(yx)+logptθ(x))=utθ(x)+btlogpYtϕ(yx),(4.90) \tilde{u}_t^{\theta,\phi}(x|y) = a_t x + b_t \bigl( \nabla \log p_{Y|t}^\phi(y|x) + \nabla \log p_t^\theta(x) \bigr) = u_t^\theta(x) + b_t \nabla \log p_{Y|t}^\phi(y|x), \tag{4.90}

其中 utθ(x)u_t^\theta(x) 是在无条件目标 q(x)q(x) 上训练的速度场,logpYtϕ(yx)\log p_{Y|t}^\phi(y|x) 是参数 ϕRm\phi \in \mathbb{R}^m 的时间依赖分类器。Dhariwal and Nichol (2021) 表明,在类别条件与文本条件(Nichol et al., 2022)下,该方法优于 4.10.1 节的条件模型。实践中,由于分类器与无条件分数是分开学习的,通常需要对分类器引导进行校准:

u~tθ,ϕ(xy)=utθ(x)+btwlogpYtϕ(yx),(4.91) \tilde{u}_t^{\theta,\phi}(x|y) = u_t^\theta(x) + b_t w \nabla \log p_{Y|t}^\phi(y|x), \tag{4.91}

其中 wRw \in \mathbb{R} 为分类器尺度,一般取 w>1w > 1(Dhariwal and Nichol, 2021)。

在后续工作中,Ho and Salimans (2021) 提出一种纯生成式方法,称为无分类器引导(classifier-free guidance)。将 (4.89) 简单移项得

logpYt(yx)分类器=logptY(xy)条件分数logpt(x)无条件分数,(4.92) \underbrace{\nabla \log p_{Y|t}(y|x)}_{\text{分类器}} = \underbrace{\nabla \log p_{t|Y}(x|y)}_{\text{条件分数}} - \underbrace{\nabla \log p_t(x)}_{\text{无条件分数}}, \tag{4.92}

表明分类器的分数可由原始概率路径与引导概率路径的分数之差隐式近似。作者进而建议用同一模型同时学习条件与无条件分数。在速度场形式下,Zheng et al. (2023) 表明可将 (4.92) 代入 (4.91),并利用 table 1 中从分数到速度的转换得到:

u~tθ(xy)=(1w)utθ(x)+wutθ(xy),(4.93) \tilde{u}_t^\theta(x|y) = (1 - w) u_t^\theta(x|\emptyset) + w u_t^\theta(x|y), \tag{4.93}

推导:将 (4.92) 代入 (4.91) 得

u~tθ(xy)=utθ(x)+btw(logptY(xy)logpt(x)). \tilde{u}_t^\theta(x|y) = u_t^\theta(x|\emptyset) + b_t w\,\bigl( \nabla \log p_{t|Y}(x|y) - \nabla \log p_t(x) \bigr).

由 (4.87) 及 table 1,速度与分数满足 ut=atx+btlogptu_t = a_t x + b_t \nabla \log p_t,故 logptY(xy)=utθ(xy)atxbt\nabla \log p_{t|Y}(x|y) = \frac{u_t^\theta(x|y) - a_t x}{b_t}logpt(x)=utθ(x)atxbt\nabla \log p_t(x) = \frac{u_t^\theta(x|\emptyset) - a_t x}{b_t}。代入上式:

u~tθ(xy)=utθ(x)+btwutθ(xy)utθ(x)bt=(1w)utθ(x)+wutθ(xy). \tilde{u}_t^\theta(x|y) = u_t^\theta(x|\emptyset) + b_t w\,\frac{u_t^\theta(x|y) - u_t^\theta(x|\emptyset)}{b_t} = (1-w)\, u_t^\theta(x|\emptyset) + w\, u_t^\theta(x|y).

即 (4.93)。

其中 ww 仍为引导校准尺度。此时只需训练一个模型 utθ(xy)u_t^\theta(x|y),其中 y{Y,}y \in \{\mathcal{Y}, \emptyset\}\emptyset 表示空条件的占位符,utθ(x)u_t^\theta(x|\emptyset) 是生成无条件概率路径 pt(x)p_t(x) 的速度场。对应的损失为

LCFM(θ)=Et,ξ,(X0,X1,Y)π0,1,Y[D(ψ˙t(X0X1),utθ(Xt(1ξ)Y+ξ))],(4.94) \mathcal{L}_{\mathrm{CFM}}(\theta) = \mathbb{E}_{t,\,\xi,\,(X_0,X_1,Y)\sim \pi_{0,1,Y}} \Bigl[ D\bigl( \dot{\psi}_t(X_0|X_1),\, u_t^\theta(X_t|(1-\xi)\cdot Y + \xi\cdot \emptyset) \bigr) \Bigr], \tag{4.94}

其中 ξBernoulli(puncond)\xi \sim \mathrm{Bernoulli}(p_{\mathrm{uncond}})puncondp_{\mathrm{uncond}} 为训练时抽取空条件 \emptyset 的概率。

CFG 采样所对应的精确分布尚不明确,部分工作从直观或理论角度给出了不同解释(Dieleman, 2022;Guo et al., 2024;Chidambaram et al., 2024;Bradley and Nakkiran, 2024)。尽管如此,在撰写本文时,CFG 仍是训练条件模型最常用的方法。Esser et al. (2024);Polyak et al. (2024) 展示了将无分类器引导用于训练大规模引导 FM 模型的应用。

Flow Matching框架的核心优势在于:

  1. 模拟无关的训练:通过CFM损失和边际化技巧,避免训练过程中解ODE,大幅提升训练效率;
  2. 灵活的路径设计:支持线性流、仿射流、高斯流等多种条件流,适配不同数据类型;
  3. 丰富的扩展能力:可扩展到条件生成、多样本耦合、非欧几里得空间等场景,且与扩散模型等生成模型框架兼容;
  4. 高效的生成过程:训练后通过解ODE生成样本,可通过调整ODE solver(如欧拉法、中点法)平衡速度和精度。

FM的本质是将生成模型的训练转化为“路径设计+速度场回归”,通过数学技巧简化了复杂的概率分布变换问题,成为当前生成模型领域的重要框架之一,尤其在高分辨率图像生成、音频生成、蛋白质结构生成等领域表现突出。

如果你需要进一步了解某一具体模块(如仿射流的调度器设计、无分类器引导的工程实现、非欧几里得空间的FM扩展),可以随时告诉我,我会提供更细致的解读和示例代码说明。

对比维度Flow Matching(FM)扩散模型(Diffusion)传统归一化流(NF)
核心过程正向确定性流(无反向、无噪声)加噪 → 去噪(反向随机过程)密度变换(依赖可逆映射)
学习目标光滑向量场(低方差、物理意义明确)多尺度噪声(高方差、难拟合)对数密度 + 雅可比行列式
数学基础常微分方程(ODE)随机微分方程(SDE)变量替换公式 + 雅可比计算
分布路径显式可控(如线性插值)隐式(由噪声调度决定)隐式(由映射结构决定)
训练稳定性高(MSE 损失、无病态逆过程)低(对超参/步长敏感、易模式崩溃)中(雅可比计算复杂、架构受限)
  1. 数学统一性:FM 框架可推广到离散空间(Discrete FM)、黎曼流形(Riemannian FM)等任意状态空间,核心逻辑(拟合向量场)保持一致。
  2. 训练高效性:无需计算雅可比行列式、对数密度,损失为简单 MSE,网络架构无约束(MLP / Transformer / U-Net 均可)。
  3. 稳定性根源:基于 ODE 的确定性流 + 显式分布路径,避免了 SDE 逆过程的病态性和 NF 的雅可比计算瓶颈。
  4. 核心逻辑链:微分同胚(空间变形)→ 推前映射(分布搬运)→ 变量替换公式(密度修正)→ 向量场拟合(FM 核心)→ 稳定生成(无反向/无噪声)。

本节将流匹配从欧氏空间Rd\mathbb{R}^{d}扩展到一般黎曼流形MM。通俗地说,黎曼流形是局部行为类似欧氏空间的空间,并配备了广义的距离和角度概念。黎曼流形可用于建模各类数据,例如,地球上自然现象的概率可在球面上建模(Mathieu and Nickel, 2020),而蛋白质骨架通常用矩阵李群来参数化(Jumper et al., 2021)。流在黎曼流形上的扩展归功于Mathieu and Nickel (2020)和Lou et al. (2020),但他们最初的训练算法需要昂贵的常微分方程(ODE)模拟。遵循Chen and Lipman (2024)的研究,本节中的流匹配解决方案提供了一种可扩展、无模拟的训练算法,用于学习黎曼流形上的生成模型。

我们考虑具有度量gg的完整连通光滑黎曼流形MM。点xMx \in M处的切空间(包含所有在xx点与MM相切的向量的向量空间)记为TxMT_{x}M。黎曼度量ggTxMT_{x}M上定义了内积,记为<u,v>g<u, v>_{g},其中u,vTxMu, v \in T_{x}M。令TM=xM{x}×TxMTM = \cup_{x \in M}\{x\} \times T_{x}M为切丛,它汇集了流形的所有切平面。在后续内容中,定义在切空间上的向量场是构建流形上带速度场的流的重要对象。我们用U={ut}U = \{u_{t}\}表示时变光滑向量场(VFs)的空间,其中ut:[0,1]×MTMu_{t}: [0,1] \times M \to TM,且对所有xMx \in M,有ut(x)TxMu_{t}(x) \in T_{x}M。此外,divg(ut)div_{g}(u_{t})是关于空间(xx)参数的黎曼散度。最后,用dvolxdvol_{x}表示MM上的体积元,函数f:MRf: M \to \mathbb{R}MM上的积分记为f(x)dvolx\int f(x) dvol_{x}

流形MM上的概率密度函数是积分值为1的连续非负函数p:MR0p: M \to \mathbb{R}_{≥0},即Mp(x)dvolx=1\int_{M} p(x) dvol_{x} = 1。我们将概率路径ptp_{t}定义为概率空间PP中的时变曲线,即pt:[0,1]Pp_{t}: [0,1] \to P。与时变流类似,ψ:[0,1]×MM\psi: [0,1] \times M \to M定义了每个时刻ttMM上的全局微分同胚。

值得注意的是,通过速度场构建基于流的模型自然适用于一般黎曼流形。形式上,重述Mathieu and Nickel (2020)的命题1可得:

定理8(流的局部存在性和唯一性)MM是光滑完整流形,utUu_{t} \in U是速度场。若uuC([0,1]×M,TM)C^{\infty}([0,1] \times M, TM)(特别是局部李普希茨连续),则式(3.19)中的常微分方程存在唯一解,该解是定义在开集Ω{0}×M\Omega \supset \{0\} \times M上的C(Ω,M)C^{\infty}(\Omega, M)微分同胚ψt(x)\psi_{t}(x)

与时变流类似,流常微分方程通常仅在流形上定义局部微分同胚,这意味着对于不同的xMx \in Mψt(x)\psi_{t}(x)可能定义在最大时间区间[0,tx][0, t_{x}]内。与时变流情况相同,我们将使用半开时间区间t[0,1)t \in [0,1),以允许目标分布qq具有紧支撑(此时utu_{t}并非处处有定义)。为确保在期望时间区间[0,1)[0,1)内存在解,我们添加可积性约束(见定理2)并再次依赖质量守恒定理。对于具有度量gg的黎曼流形,黎曼连续性方程为:

ddtpt(x)+divg(ptut)(x)=0, \frac{d}{dt} p_{t}(x) + div_{g}(p_{t} u_{t})(x) = 0,

相应的流形质量守恒定理(Villani et al., 2009)表述如下:

定理9(流形质量守恒)ptp_{t}是概率路径,utUu_{t} \in U是黎曼流形MM(具有度量gg)上的局部李普希茨可积向量场。则以下表述等价:

  1. 对于t[0,1)t \in [0,1),连续性方程(5.1)成立。
  2. utu_{t}在式(3.24)的意义下生成ptp_{t}

在上述结果中,uu可积意味着:

01Mut(x)pt(x)dvolxdt<. \int_{0}^{1} \int_{\mathcal{M}} \|u_{t}(x)\| p_{t}(x) dvol_{x} dt < \infty.

注意,定理9的假设可导出MM上的全局微分同胚,进而得到黎曼瞬时变量替换公式:

ddtlogpt(ψt(x))=divg(ut)(ψt(x)). \frac{d}{dt} log p_{t}(\psi_{t}(x)) = -div_{g}(u_{t})(\psi_{t}(x)).

最后,若对于X0pX_{0} \sim p,有Xt=ψt(X0)ptX_{t} = \psi_{t}(X_{0}) \sim p_{t},则称utu_{t}pp生成ptp_{t}

既然流已被证明是流形上有效的生成模型,那么流匹配的原理自然也可迁移到该领域。在黎曼版本的流匹配中,我们旨在找到一个速度场utθUu_{t}^{\theta} \in U,生成满足边际约束p0=pp_{0} = pp1=qp_{1} = q的目标概率路径pt:[0,1]Pp_{t}: [0,1] \to P,其中p,qp, q分别表示流形MM上的源分布和目标分布。由于速度场位于流形的切空间上,黎曼流匹配损失使用在流形各个切平面上定义的布雷格曼散度来比较速度,即:

LRFM(θ)=Et,XtptDXt(ut(Xt),utθ(Xt)).(5.5) \mathcal{L}_{RFM}(\theta) = \mathbb{E}_{t, X_{t} \sim p_{t}} D_{X_{t}}(u_{t}(X_{t}), u_{t}^{\theta}(X_{t})). (5.5)

在上述方程中,期望现在是流形上的积分,即对于光滑函数f:MMf: M \to M和随机变量XpXX \sim p_{X},有E[f(X)]=Mf(x)pX(x)dvolxE[f(X)] = \int_{M} f(x) p_{X}(x) dvol_{x}。对于xMx \in M,布雷格曼散度DxD_{x}可能通过黎曼内积和分配给每个切空间的严格凸函数Φx:TxMTxM\Phi_{x}: T_{x}M \to T_{x}M定义,即Dx(u,v):=Φx(u)[Φx(v)+<uv,vΦx(v)>g]D_{x}(u, v) := \Phi_{x}(u) - [\Phi_{x}(v) + <u - v, \nabla_{v} \Phi_{x}(v)>_{g}]。例如,选择黎曼度量Φx=g2\Phi_{x} = \|\cdot\|_{g}^{2},则对于u,vTxMu, v \in T_{x}M,有Dx(u,v)=uvg2D_{x}(u, v) = \|u - v\|_{g}^{2}

边际概率路径的构建与时变流情况(4.4)类似:

pt(x)=Mpt(xx1)q(x1)dvolx1, p_{t}(x) = \int_{\mathcal{M}} p_{t}(x | x_{1}) q(x_{1}) dvol_{x_{1}},

其中pt1(xx1)p_{t | 1}(x | x_{1})是流形上定义的条件概率路径。我们还要求满足边界约束:

p0=p,p1=q.(5.7) p_{0} = p, p_{1} = q. (5.7)

例如,可通过要求条件路径pt1(xx1)p_{t | 1}(x | x_{1})满足以下条件来实现这些约束:

p01(xx1)=π01(xx1),p11(xx1)=δx1(x),(5.8) p_{0 | 1}(x | x_1) = \pi_{0 | 1}(x | x_1), p_{1 | 1}(x | x_1) = \delta_{x_1}(x), (5.8)

其中π01\pi_{0 | 1}是条件耦合,π01(x0x1)=π0,1(x0,x1)/q(x1)\pi_{0 | 1}(x_{0} | x_{1}) = \pi_{0,1}(x_{0}, x_{1}) / q(x_{1})

边际速度场的边际化技巧(定理3)可直接应用于黎曼情况。考虑条件速度场ut(xx1)Uu_{t}(x | x_{1}) \in U,满足: ut(x1)u_{t}(\cdot | x_{1}) 生成 pt1(x1). p_{t | 1}(\cdot | x_{1}). (5.9)

则边际速度场ut(x)u_{t}(x)通过对所有目标样本的条件速度场ut(xx1)u_{t}(x | x_{1})求平均得到:

ut(x)=Mut(xx1)p1t(x1x)dvolx1, u_{t}(x) = \int_{\mathcal{M}} u_{t}(x | x_{1}) p_{1 | t}(x_{1} | x) dvol_{x_{1}},

根据概率密度函数的贝叶斯法则,有:

p1t(x1x)=pt1(xx1)q(x1)pt(x),(5.11) p_{1 | t}(x_{1} | x) = \frac{p_{t | 1}(x | x_{1}) q(x_{1})}{p_{t}(x)}, (5.11)

其定义适用于所有满足pt(x)>0p_{t}(x) > 0xMx \in M

黎曼情况的边际化技巧(定理3)需要对假设1进行如下调整:

假设2 pt1(xx1)p_{t | 1}(x | x_{1})C([0,1)×M)C^{\infty}([0,1) \times M)ut(xx1)u_{t}(x | x_{1})作为(t,x)(t, x)的函数是C([0,1)×M,M)C^{\infty}([0,1) \times M, M)。此外,假设qq具有紧支撑(即q(x1)q(x_{1})Rm\mathbb{R}^{m}的某个有界集外为0)或MM是紧的;且对于所有xMx \in Mt[0,1)t \in [0,1),有pt(x)>0p_{t}(x) > 0

现在我们可以给出流形边际化技巧定理:

定理10(流形边际化技巧) 在假设2下,若ut(xx1)u_{t}(x | x_{1})是条件可积的且生成条件概率路径pt(x1)p_{t}(\cdot | x_{1}),则边际速度场ut()u_{t}(\cdot)生成边际概率路径pt()p_{t}(\cdot)

这里的条件可积指的是质量守恒定理(5.2)中可积性条件的条件版本:

01MMut(xx1)gpt1(xx1)q(x1)dvolx1dvolxdt<(5.12) \int_{0}^{1} \int_{\mathcal{M}} \int_{\mathcal{M}} \|u_{t}(x | x_{1})\|_{g} p_{t | 1}(x | x_{1}) q(x_{1}) dvol_{x_{1}} dvol_{x} dt < \infty (5.12)

定理10的证明可重复定理3的论证过程,详见附录A.2。

黎曼条件流匹配(RCFM)损失为:

LRCFM(θ)=Et,X1,Xtpt1(X1)DXt(ut(XtX1),utθ(Xt)).(5.13) \mathcal{L}_{RCFM}(\theta) = \mathbb{E}_{t, X_{1}, X_{t} \sim p_{t | 1}(\cdot | X_{1})} D_{X_{t}}(u_{t}(X_{t} | X_{1}), u_{t}^{\theta}(X_{t})). (5.13)

同样,我们有如下等价关系:

定理11 黎曼流匹配损失和黎曼条件流匹配损失的梯度一致:

θLRFM(θ)=θLRCFM(θ).(5.14) \nabla_{\theta} \mathcal{L}_{RFM}(\theta) = \nabla_{\theta} \mathcal{L}_{RCFM}(\theta). (5.14)

上述定理可通过命题1证明,令X=XtX = X_{t}Y=ut(XtX1)Y = u_{t}(X_{t} | X_{1})gθ(x)=utθ(x)g^{\theta}(x) = u_{t}^{\theta}(x),并对t[0,1]t \in [0,1]积分即可。

在建立了使用RCFM损失学习流模型的方法后,我们还需要指定条件概率路径及其生成速度场。与时变流情况(4.6)类似,我们首先给出相应条件流ψ:[0,1)×M×MM\psi: [0,1) \times M \times M \to M的要求,使得pt1(x1)p_{t | 1}(\cdot | x_{1})满足边界条件(5.8)。条件流模型为:

Xt1=ψt(X0x1),其中X0π01(x1),(5.15) X_{t | 1} = \psi_{t}(X_{0} | x_{1}), \text{其中} X_{0} \sim \pi_{0 | 1}(\cdot | x_{1}), (5.15)

其中条件流定义为:

ψt(xx1)={xt=0x1t=1, \psi_{t}(x | x_{1}) = \begin{cases} x & t = 0 \\ x_{1} & t = 1 \end{cases},

且在(t,x)(t, x)上光滑,在M\mathcal{M}上关于xx是微分同胚。(此处的光滑指ψt(xx1)\psi_{t}(x | x_{1})关于ttxx的所有导数都存在且连续,即C([0,1)×Rd,Rd)C^{\infty}([0,1) \times \mathbb{R}^{d}, \mathbb{R}^{d})。这些条件可进一步放宽为C2([0,1)×Rd,Rd)C^{2}([0,1) \times \mathbb{R}^{d}, \mathbb{R}^{d}),但会牺牲一定的简洁性。)

我们在欧氏空间中的分析聚焦于仿射条件流,因为它们是一类易于计算(无模拟)的条件流。但遗憾的是,对于αt+σt1\alpha_{t} + \sigma_{t} \neq 1的情况,αtx1+σtx0\alpha_{t} x_{1} + \sigma_{t} x_{0}这类组合在流形上并无自然定义。对于αt+σt=1\alpha_{t} + \sigma_{t} = 1的情况,流形上的类似概念是测地线插值。事实上,Chen and Lipman (2024)提出通过沿测地线构建条件流,特别是将欧氏空间中沿直线移动的条件最优传输(OT)路径推广到流形上(见定理5)。测地线表示流形上两点之间的最短路径,在欧氏空间中退化为直线。对于流形,我们将测地线条件流定义为:

ψt(x0x1)=expx0(κ(t)logx0(x1)),t[0,1],(5.17) \psi_{t}(x_{0} | x_{1}) = exp_{x_{0}}(\kappa(t) log_{x_{0}}(x_{1})), t \in [0,1], (5.17)

其中κ(t):[0,1][0,1]\kappa(t): [0,1] \to [0,1]是单调递增调度器,满足κ(0)=0\kappa(0) = 0κ(1)=1\kappa(1) = 1,确保所有x0x_{0}t=1t = 1时都能被映射到x1x_{1}。在xMx \in M处计算的指数映射expx:TxMM\exp_{x}: T_{x}M \to Mvexpx(v)v \mapsto \exp_{x}(v),返回从xx出发、初始速度为vv的唯一测地线在t=1t = 1时的端点。对数映射logx:MTxMlog_{x}: M \to T_{x}Mylogx(y)y \mapsto log_{x}(y)是指数映射的逆映射。在欧氏空间中,指数映射就是向量加法,对数映射就是向量减法。将这些代入(5.17),可得ψt(x0x1)=x0+κ(t)(x1x0)\psi_{t}(x_{0} | x_{1}) = x_{0} + \kappa(t)(x_{1} - x_{0}),选择κ(t)=t\kappa(t) = t即可恢复条件最优传输流。

对于具有闭合形式指数映射和对数映射的简单流形,这种构造提供了一种无模拟的流形上流训练方法,与基于流形的扩散模型方法(De Bortoli et al., 2022; Huang et al., 2022b; Lou et al., 2023)相比具有明显优势。特别是,流形扩散模型需要在训练中进行模拟以从ptp_{t}采样,并且必须对流形上的得分函数进行近似。

然而,尽管基于测地线的条件流是一种自然构造,但对于没有闭合形式指数映射和对数映射的一般流形,测地线可能难以计算,并且/或者会引入不期望的偏差(例如概率集中在边界点)。为了克服测地线计算的困难并且/或者注入期望的隐式偏差,可以寻求一种替代的光滑距离函数d(,):M×MR0d(\cdot, \cdot): M \times M \to \mathbb{R}_{≥0},并要求条件流满足:

d(ψt(x0x1),x1)=κ(t)d(x0,x1),(5.18) d(\psi_{t}(x_{0} | x_{1}), x_{1}) = \overline{\kappa}(t) d(x_{0}, x_{1}), (5.18)

其中κˉ(t)=1κ(t)\bar{\kappa}(t) = 1 - \kappa(t)。如果满足以下条件,这将确保条件流在t=1t = 1时将所有概率集中在x1x_{1}

  1. 非负性:对所有x,yMx, y \in M,有d(x,y)0d(x, y) ≥ 0
  2. 正定性:d(x,y)=0d(x, y) = 0当且仅当x=yx = y
  3. 非退化性:d(x,y)0\nabla d(x, y) ≠ 0当且仅当xyx ≠ y

Chen and Lipman (2024)表明,满足(5.18)的流对应的最小范数条件速度场形式为:

ut(xx1)=dlogκ(t)dtd(x,x1)d(x,x1)d(x,x1)g2,(5.19) u_{t}(x | x_{1}) = \frac{d log \overline{\kappa}(t)}{dt} d(x, x_{1}) \frac{\nabla d(x, x_{1})}{\|\nabla d(x, x_{1})\|_{g}^{2}}, (5.19)

其中预度量的非退化性要求确保速度场没有不连续性,因为ut(xx1)1/d(x,x1)gu_{t}(x | x_{1}) \propto 1 / \|\nabla d(x, x_{1})\|_{g}。特别地,(5.17)中的测地线条件流对于选择d=dgd = d_{g}(其中dgd_{g}是测地线距离)满足(5.18)。替代预度量的一个例子是在一般几何结构上使用谱距离(Chen and Lipman, 2024),其中条件速度提供了一种通过模拟从pt(xx1)p_{t}(x | x_{1})采样的方法。重要的是,尽管基于预度量的条件流需要在训练中进行模拟(类似于流形上的扩散模型),但与得分函数的近似相比,仍然可以准确地恢复速度场。

另一个问题是,基于测地线插值和预度量定义的条件流都可能存在奇异性,例如在紧流形上。例如,在二维球面上,测地线函数d(x,x1)d(x, x_{1})在对极点x=x1x = -x_{1}处不可微。此外,任何光滑函数(如xd(x,x1)x \mapsto d(x, x_{1}))至少会有两个临界点(最大值和最小值),在这些点上(5.19)中的速度无定义。然而,这类问题点的集合通常非常小(实际上通常体积为零)。因此,至少在我们已知的用例中,这个问题在实践中不会造成麻烦。

无论如何,为了解决这个问题,我们可以在测地线条件流中引入增强调度器。即使用κˉ(t,x,x1)\bar{\kappa}(t, x, x_{1})(它也依赖于xxx1x_{1})使(5.17)全局光滑。为了解决基于预度量的条件流的零梯度问题,我们可以将非退化性要求放宽如下: 3. 非退化性(放宽):对于所有yMy \in M,集合 Ay={xMd(x,y)=0xy}A_{y} = \{x \in M | \nabla d(x, y) = 0 \text{且} x ≠ y\}的体积为0。

代码8:使用CFM目标在球面上训练测地线流

import torch
from flow_matching.path import GeodesicProbPath, PathSample
from flow_matching.path.scheduler import CondOTScheduler
from flow_matching.utils.manifolds import Sphere

model = ...  ## 定义可训练的速度模型
optimizer = torch.optim.Adam(model.parameters())
loss_fn = torch.nn.MSELoss()  ## 任意布雷格曼散度

manifold = Sphere()
scheduler = CondOTScheduler()
path = GeodesicProbPath(scheduler=scheduler, manifold=manifold)

for x_0, x_1 in dataloader:  ## 来自π0,1的样本,形状为[batch_size, *data_dim]
    t = torch.rand(batch_size)  ## 随机化时间t ∼ U[0, 1]
    sample: PathSample = path.sample(t=t, x_0=x_0, x_1=x_1)  ## 采样条件路径

    model_output = model(sample.x_t, sample.t)
    projected_model_output = manifold.proju(sample.x_t, model_output)  ## 投影到切空间

    loss = loss_fn(projected_model_output, sample.dx_t)  ## CFM损失

    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

Flow Matching Guide and Code 第5章解读:指数映射-对数映射-测地线条件流

Flow Matching Guide and Code 第5章解读:Non-Euclidean Flow Matching

本节将连续时间马尔可夫链(CTMC)作为流模型的替代生成模型,适用于生成离散数据(即位于离散(且有限)状态空间中的数据)。CTMC是马尔可夫过程,是后面第7节讨论的离散流匹配(DFM)(Campbell等人,2024;Gat等人,2024)生成模型范式的基础。因此,本节与第3节类似,在第3节中我们将流作为流匹配(FM)生成模型范式的基础进行介绍。

考虑有限版本的Rd\mathbb{R}^{d}作为我们的状态空间S=TdS=T^{d},其中T=[K]={1,2,...,K}T=[K]=\{1,2,...,K\},有时也称为词汇表。样本和状态用x=(x1,...,xd)Sx=(x^{1},...,x^{d}) \in S表示,其中xiTx^{i} \in T是单个坐标或一个标记。我们同样使用状态y,zSy,z \in S。接下来,XX表示取值于状态空间SS的随机变量,其概率由概率质量函数(PMF)pX:SR0p_{X}: S \to \mathbb{R}_{≥0}控制,满足xSpX(x)=1\sum_{x \in S} p_{X}(x)=1,事件ASA \subset S的概率为:

P(XA)=xApX(x).(6.1) \mathbb{P}(X \in A)=\sum_{x \in A} p_{X}(x) . (6.1)

记号XpXX \sim p_{X}XpX(X)X \sim p_{X}(X)表示XX服从概率质量函数pXp_{X}。离散情况下的δ概率质量函数定义为:

δ(x,z)={1x=z,0else. \delta (x,z)= \begin{cases} 1 & x=z, \\ 0 & else. \end{cases}

有时我们也会在标记上定义δ概率质量函数,例如对于某些xi,yiTx^{i},y^{i} \in T,有δ(xi,yi)\delta(x^{i}, y^{i})

CTMC模型是一族取值于SS的时变随机变量(Xt)0t1(X_{t})_{0 ≤t ≤1},构成马尔可夫链,其特征由概率转移核pt+htp_{t+h | t}定义:

pt+ht(yx):=P(Xt+h=yXt=x)=δ(y,x)+hut(y,x)+o(h), p_{t+h|t}(y|x):=\mathbb{P}(X_{t+h}=y|X_{t}=x)=\delta (y,x)+hu_{t}(y,x)+o(h),

P(X0=x)=p(x)\mathbb{P}(X_{0}=x)=p(x),(6.3) 其中pp表示过程在时间t=0t=0时的初始分布,o(h)o(h)是满足当t0t \to 0o(h)/h0o(h)/h \to 0的任意函数。

ut(y,x)u_{t}(y, x)称为速率或速度,表示概率随时间在状态之间转移的速度。所谓“完全特征化”,是指对于任意0t1<<tn10 ≤t_{1}<\cdots<t_{n} ≤1xiSx_{i} \in Si[n]i \in[n]),所有联合概率P(Xt1=x1,...,Xtn=xn)\mathbb{P}(X_{t_{1}}=x_{1},...,X_{t_{n}}=x_{n})都通过这种方式定义。

为确保转移概率pt+ht(yx)p_{t+h | t}(y | x)通过(6.3)定义,速度需要满足以下速率条件:

ut(y,x)0 对所有 yx, 且 yut(y,x)=0.(6.4) u_{t}(y, x) \geq 0 \text{ 对所有 } y \neq x, \text{ 且 } \sum_{y} u_{t}(y, x)=0. (6.4)

如果其中一个条件不满足,那么对于任意小的h>0h>0,转移概率pt+ht(x)p_{t+h | t}(\cdot | x)会变为负数或求和结果不等于1。式(6.3)与我们定义流生成模型时的式(3.16)和式(3.19)起着相同的作用。过程XtX_{t}的边际概率在时间t[0,1]t \in[0,1]时用概率质量函数pt(x)p_{t}(x)表示。然后,与流的情况类似(式(3.24)),如果存在满足(6.3)且边际为ptp_{t}pt+htp_{t+h | t},则称utu_{t}生成ptp_{t}。(6.5)

图13 CTMC模型通过指定状态间概率的速率(速度)来定义。

要采样XtX_{t},需从pp中采样X0X_{0},并使用(朴素的)欧拉方法逐步采样:

P(Xt+h=yXt)=δ(y,Xt)+hut(y,Xt).(6.6) \mathbb{P}(X_{t+h}=y | X_{t})=\delta (y,X_{t})+hu_{t}(y,X_{t}). (6.6)

根据(6.3),这些步骤会给更新概率带来o(h)o(h)的误差。在实际应用中,这意味着我们需要选择足够小的h>0h>0,以确保式(6.6)右侧保持为有效的概率质量函数。为确保任意选择的h>0h>0都能得到有效的概率质量函数,并保持概率中的o(h)o(h)局部误差,可采用以下欧拉方法:

P(Xt+h=yXt)={exp[hut(Xt,Xt)]y=Xtut(y,Xt)ut(Xt,Xt)(1exp[hut(Xt,Xt)])yXt. \mathbb{P}(X_{t+h}=y| X_{t})= \begin{cases} exp \left[ hu_{t}(X_{t},X_{t})\right] & y=X_{t} \\ \frac{u_{t}(y,X_{t})}{|u_{t}(X_{t},X_{t})|}\left( 1-exp \left[ hu_{t}(X_{t},X_{t})\right] \right) & y\neq X_{t} \end{cases}.

与连续情况下的连续性方程类似,CTMC模型(Xt)0t1(X_{t})_{0 ≤t ≤1}的边际概率ptp_{t}由科尔莫戈罗夫方程表征:

ddtpt(y)=xut(y,x)pt(x). \frac{d}{d t} p_{t}(y)=\sum_{x} u_{t}(y, x) p_{t}(x) .

以下经典定理(另见Coddington等人(1956)的定理5.1和5.2)描述了这个线性齐次常微分方程组解的存在唯一性。

定理12(线性常微分方程解的存在唯一性):如果ut(y,x)u_{t}(y, x)C([0,1))C([0,1))中(关于时间连续),则对于t[0,1)t \in[0,1),存在唯一解pt(x)p_{t}(x)满足科尔莫戈罗夫方程(6.8),且满足初始条件p0(x)=p(x)p_{0}(x)=p(x)

对于CTMC,解保证在所有时间t[0,1)t \in[0,1)都存在,不需要额外条件(与定理1中的非线性情况不同)。科尔莫戈罗夫方程与连续性方程(3.25)有着密切的联系。利用速率条件重新排列式(6.8)的右侧:

xut(y,x)pt(x)=(6.4)xyut(y,x)pt(x)入射通量xyut(x,y)pt(y)出射通量=xy[jt(x,y)jt(y,x)] \begin{aligned} \sum_{x} u_{t}(y, x) p_{t}(x) & \stackrel{(6.4)}{=} \overbrace{\sum_{x \neq y} u_{t}(y, x) p_{t}(x)}^\text{入射通量} - \overbrace{\sum_{x \neq y} u_{t}(x, y) p_{t}(y)}^\text{出射通量} \\ & =-\sum_{x \neq y}\left[j_{t}(x, y)-j_{t}(y, x)\right] \end{aligned}

其中jt(y,x):=ut(y,x)pt(x)j_{t}(y, x):=u_{t}(y, x) p_{t}(x)是概率通量,表示单位时间内从状态xx转移到状态yy的概率。出射通量的超额部分定义为散度,使得科尔莫戈罗夫方程与第3.5节中描述的连续性方程具有相同的结构(Gat等人,2024)。

以下结果是在CTMC框架中构建概率路径和速度的主要工具:

定理13(离散质量守恒):设ut(y,x)u_{t}(y, x)C([0,1))C([0,1))中,pt(x)p_{t}(x)是时间ttC1([0,1))C^{1}([0,1))中的概率质量函数。则以下表述等价:

  1. ptp_{t}utu_{t}满足t[0,1)t \in[0,1)时的科尔莫戈罗夫方程(6.8),且utu_{t}满足速率条件(6.4)。
  2. utu_{t}t[0,1)t \in[0,1)时按6.5的意义生成ptp_{t}

定理13的证明见附录A.1。

作为离散质量守恒(定理13)的推论,如果速度ut(y,x)u_{t}(y, x)生成概率路径pt(x)p_{t}(x),则:

u~t(y,x)=ut(y,x)+vt(y,x) 生成 pt(x),(6.9) \tilde{u}_{t}(y, x)=u_{t}(y, x)+v_{t}(y, x) \text{ 生成 } p_{t}(x), (6.9)

只要vt(y,x)v_{t}(y, x)满足速率条件(6.4)并求解无散度速度方程:

xvt(y,x)pt(x)=0.(6.10) \sum_{x} v_{t}(y, x) p_{t}(x)=0 . (6.10)

事实上,u~t(y,x)\tilde{u}_{t}(y, x)求解科尔莫戈罗夫方程:

xu~t(y,x)pt(x)=xut(y,x)pt(x)=p˙t(y), \sum_{x} \tilde{u}_{t}(y, x) p_{t}(x)=\sum_{x} u_{t}(y, x) p_{t}(x)=\dot{p}_{t}(y),

这表明在采样过程中可以添加无散度速度,而不会改变边际概率。这在从离散流匹配模型采样时将是一个有用的性质,后续会详细介绍。

值得注意的是,图2中的流匹配框架可无缝从连续情形扩展到离散情形,进而形成离散流匹配(DFM)框架(Campbell et al., 2024; Gat et al., 2024)。与连续情形类似,其核心步骤为:首先定义一条插值于源概率质量函数(PMF)p和目标概率质量函数q的概率路径ptp_t;其次,寻找一个由可学习速度utθu_t^\theta定义的连续时间马尔可夫链(CTMC)模型,使其生成该概率路径ptp_t;最后,通过最小化布雷格曼散度(Bregman divergence)定义的离散流匹配损失来训练utθu_t^\theta。综上,这一过程本质上是求解流匹配问题(4.1)的离散版本。

我们的目标是将来自源概率质量函数p的样本X0pX_0 \sim p转换为来自目标概率质量函数q的样本X1qX_1 \in q,其中X0X_0X1X_1是两个取值于状态空间S的随机变量。源样本和目标样本可通过独立耦合(X0,X1)p(X0)q(X1)(X_0, X_1) \sim p(X_0) q(X_1)相关联,也可通过一般的概率质量函数耦合π0,1(x0,x1)\pi_{0,1}(x_0, x_1)建立关联。例如,文本翻译数据中的耦合数据(x0,x1)(x_0, x_1)表示同一文档的两种不同语言版本;而在文本生成等应用中,常采用独立配对方式,此时p(x0)p(x_0)既可以是状态空间S上的均匀概率(所有状态具有相同概率),也可以通过在词汇表T中添加特殊标记m(即T{m}T \cup \{m\}),并令π0,1(x0,x1)=δ(x0,m)q(x1)\pi_{0,1}(x_0, x_1) = \delta(x_0, m) q(x_1)实现。任何满足X0δ(X0,m)X_0 \sim \delta(X_0, m)的随机变量X0X_0均为常数随机变量X0=(m,...,m)X_0 = (m, ..., m)

流匹配流程的下一步的是定义一条插值于p和q的概率路径ptp_t。沿用4.4节的思路,我们将这些对象基于一个取值于任意空间Z的一般条件随机变量ZpZZ \sim p_Z进行条件化处理。边际概率路径的形式为:

pt(x)=zZptZ(xz)pZ(z),p_t(x) = \sum_{z \in \mathcal{Z}} p_{t|Z}(x|z) p_Z(z),

其中ptZ(z)p_{t|Z}(\cdot|z)是条件概率质量函数,且边际概率路径需满足边界约束p0=pp_0 = pp1=qp_1 = q

边际化技巧(见4.4节)可直接推广到离散情形(Campbell et al., 2024; Gat et al., 2024)。假设条件速度场ut(,z)u_t(\cdot, \cdot|z)以(6.5)式的意义生成ptZ(xz)p_{t|Z}(x|z),则边际速度场为:

ut(y,x)=zut(y,xz)pZt(zx)=E[ut(y,XtZ)Xt=x],u_t(y,x) = \sum_z u_t(y,x|z) p_{Z|t}(z|x) = \mathbb{E}\left[ u_t(y,X_t|Z) | X_t = x \right],

其定义适用于所有满足pt(x)>0p_t(x) > 0x,ySx, y \in S,且随机变量XtptZ(Z)X_t \sim p_{t|Z}(\cdot|Z)。根据贝叶斯法则,有:

pZt(zx)=ptZ(xz)pZ(z)pt(x).p_{Z|t}(z|x) = \frac{p_{t|Z}(x|z) p_Z(z)}{p_t(x)}.

为证明离散版本的边际化技巧定理(定理3),我们做出如下假设:

假设3:对所有xSx \in St[0,1)t \in [0,1),有ptZ(xz)C1([0,1))p_{t|Z}(x|z) \in C^1([0,1))ut(y,xz)C([0,1))u_t(y, x|z) \in C([0,1))pt(x)>0p_t(x) > 0

与连续情形类似,假设pt>0p_t > 0在实际应用中较为温和,因为我们总能通过(1(1t)ϵ)pZt+(1t)ϵpuni(1 - (1 - t)\epsilon) \cdot p_{Z|t} + (1 - t)\epsilon \cdot p_{uni}(其中punip_{uni}是状态空间S上的均匀分布,ϵ>0\epsilon > 0为任意小的常数)来满足该假设。接下来,我们给出并证明这一结果。

定理14(离散边际化技巧):在假设3下,若ut(y,xz)u_t(y, x|z)生成ptZ(xz)p_{t|Z}(x|z),则(7.2)式中的边际速度ut(y,x)u_t(y, x)t[0,1)t \in [0,1)内生成(7.1)式中的pt(x)p_t(x)

证明:该证明的思路与连续情形类似。首先计算:

ddtpt(y)=zddtptZ(yz)pZ(z)=(i)z[xut(y,xz)ptZ(xz)]pZ(z)=zxut(y,xz)ptZ(xz)pZ(z)=xzut(y,xz)ptZ(xz)pZ(z)=xzut(y,xz)ptZ(xz)pZ(z)pt(x)pt(x)=(贝叶斯法则)x(zut(y,xz)pZt(zx))pt(x)=xut(y,x)pt(x) \begin{aligned} \frac{d}{dt} p_t(y) &= \sum_z \frac{d}{dt} p_{t|Z}(y|z) \, p_Z(z) \\ &\stackrel{(i)}{=} \sum_z \left[ \sum_x u_t(y, x|z) \, p_{t|Z}(x|z) \right] p_Z(z) \\ &= \sum_z \sum_x u_t(y, x|z) \, p_{t|Z}(x|z) \, p_Z(z) \\ &= \sum_x \sum_z u_t(y, x|z) \, p_{t|Z}(x|z) \, p_Z(z) \\ &= \sum_x \sum_z u_t(y, x|z) \, \frac{p_{t|Z}(x|z) p_Z(z)}{p_t(x)} \, p_t(x) \\ &\stackrel{\text{(贝叶斯法则)}}{=} \sum_x \Bigg( \sum_z u_t(y, x|z) \, p_{Z|t}(z|x) \Bigg) p_t(x) \\ &= \sum_x u_t(y, x) \, p_t(x) \end{aligned}

其中等式(i)由定理13以及ut(y,xz)u_t(y, x|z)生成ptZ(yz)p_{t|Z}(y|z)这一事实推导得出;等式(ii)通过乘以并除以假设为正的pt(x)p_t(x)得到。因此,ut(y,x)u_t(y, x)满足与ptp_t相关的科尔莫戈罗夫方程(Kolmogorov Equation)。此外,由于每个ut(y,xz)u_t(y, x|z)均满足速率条件(6.4),故ut(y,x)u_t(y, x)也满足该条件。最后,因为ut(y,xz)u_t(y, x|z)pZt(zx)p_{Z|t}(z|x)均属于C([0,1))C([0,1)),所以ut(y,x)C([0,1))u_t(y, x) \in C([0,1))(特别地,pZt(zx)C([0,1))p_{Z|t}(z|x) \in C([0,1))可由t[0,1)t \in [0,1)pt(x)>0p_t(x) > 0的假设推导得出)。根据定理13,由于ut(x,y)u_t(x, y)满足与ptp_t相关的科尔莫戈罗夫方程和速率条件,因此它以(6.5)式的意义生成ptp_t

为构建连续时间马尔可夫链(CTMC)生成模型(Xt)0t1(X_t)_{0 \leq t \leq 1},我们通过参数θ对速度场utθ(y,x)u_t^\theta(y, x)进行参数化(例如使用神经网络)。构建神经网络时需满足速率条件方程(6.4)。训练连续时间马尔可夫链模型的离散流匹配损失定义为:

LDFM(θ)=Et,XtptDXt(ut(,Xt),utθ(,Xt)), \mathcal{L}_{DFM}(\theta) = \mathbb{E}_{t, X_t \sim p_t} D_{X_t}\left( u_t(\cdot, X_t), u_t^\theta(\cdot, X_t) \right),

其中tU[0,1]t \sim U[0,1],且ut(,x)RSu_t(\cdot, x) \in \mathbb{R}^S满足速率条件。这意味着ut(,x)Ωxu_t(\cdot, x) \in \Omega_x,其中:

Ωx={vRSv(y)0yx, 且 v(x)=yxv(y)}RS, \Omega_x = \left\{ v \in \mathbb{R}^{\mathcal{S}} \mid v(y) \geq 0 \forall y \neq x, \text{ 且 } v(x) = -\sum_{y \neq x} v(y) \right\} \subset \mathbb{R}^{\mathcal{S}},

Ωx\Omega_x是一个凸集,Dx(u,v)D_x(u, v)是基于严格凸函数Φx:ΩxR\Phi_x: \Omega_x \to \mathbb{R}定义的布雷格曼散度。条件离散流匹配损失的形式为:

LCDFM(θ)=Et,Z,XtptZDXt(ut(,XtZ),utθ(,Xt)). \mathcal{L}_{CDFM}(\theta) = \mathbb{E}_{t, Z, X_t \sim p_{t|Z}} D_{X_t}\left( u_t(\cdot, X_t|Z), u_t^\theta(\cdot, X_t) \right).

同样,损失(7.4)和(7.6)提供相同的学习梯度。

定理15:离散流匹配损失和条件离散流匹配损失的梯度一致:

θLDFM(θ)=θLCDFM(θ). \nabla_\theta \mathcal{L}_{DFM}(\theta) = \nabla_\theta \mathcal{L}_{CDFM}(\theta).

特别地,条件离散匹配损失的极小值点为边际速度:

utθ(y,x)=E[ut(y,XtZ)Xt=x]. u_t^\theta(y, x) = \mathbb{E}\left[ u_t(y, X_t|Z) | X_t = x \right].

证明:通过设定X=XtX = X_tY=(Xt,Z)Y = (X_t, Z),定义函数f:S2RSf: S^2 \to \mathbb{R}^S(x,z)ut(,xz)RS(x, z) \mapsto u_t(\cdot, x|z) \in \mathbb{R}^S,并对t[0,1]t \in [0,1]积分,应用命题1即可完成证明。

若按上述方式直接实现离散流匹配(DFM),则需要一个可学习模型utθ(y,x)u_t^\theta(y, x)(例如神经网络)为所有可能的状态yS=Tdy \in S = T^d输出一个速率,这将导致输出维度达到KdK^d,对于常见的序列长度d和词汇表大小K而言是不可行的。解决这一问题的一种方法是考虑因子化速度(Campbell et al., 2022):

ut(y,x)=iδ(yiˉ,xiˉ)uti(yi,x), u_t(y, x) = \sum_i \delta\left( y^{\bar{i}}, x^{\bar{i}} \right) u_t^i\left( y^i, x \right),

其中iˉ=(1,...,i1,i+1,...,d)\bar{i} = (1, ..., i-1, i+1, ..., d)表示除i之外的所有索引。因此,上述因子化速度仅在状态x和状态y至多只有一个标记不同时建立连接。使用因子化速度时,我们只需对uti(yi,x)u_t^i(y^i, x)进行建模,即可完全定义ut(y,x)u_t(y, x)。相应地,每个uti(yi,x)u_t^i(y^i, x)是一个可学习模型,接收xSx \in S并输出标量uti(yi,x)Ru_t^i(y^i, x) \in \mathbb{R},适用于所有i[d]={1,2,...,d}i \in [d] = \{1, 2, ..., d\}yiTy^i \in T。因此,模型的输出维度变为易于处理的dKd \cdot K。因子化速度uti(y,x)u_t^i(y, x)的速率条件需针对每个维度i[d]i \in [d]满足:

uti(yi,x)0 对所有 yixi, 且 yiTuti(yi,x)=0 对所有 xS. u_t^i\left( y^i, x \right) \geq 0 \text{ 对所有 } y^i \neq x^i, \text{ 且 } \sum_{y^i \in \mathcal{T}} u_t^i\left( y^i, x \right) = 0 \quad \text{ 对所有 } x \in \mathcal{S}.
因子化速度的详细解释

因子化速度是离散流匹配(DFM)中用来处理高维离散数据(比如句子)的一个核心技巧。

想象你要修改一个句子。如果允许你一次只能修改句子中的一个字,那么整个句子的变化就可以拆解成每个字独立的变化。

  • ut(y,x)u_t(y, x)(整体速度):它描述的是整个句子从当前状态 xx 变成另一个句子 yy 的“冲动”有多强。
  • 因子化速度的假设:我们认为,只有当 yyxx 这两个句子只差一个字的时候,这个“冲动”才可能是非零的。如果它们有两个或以上的字不同,那“冲动”就是0,因为我们认为这种同时变多个字的情况概率极小,可以忽略。
  • uti(yi,x)u_t^i(y^i, x)(单字速度):既然整个句子的变化可以拆成每个字单独的变化,我们就为每个位置 ii 单独训练一个小模型。这个小模型的任务是:看到当前整个句子 xx,判断把第 ii 个位置的字 xix^i 改成另一个字 yiy^i 的“冲动”有多强。

因子化速度的公式是:

ut(y,x)=iδ(yiˉ,xiˉ)uti(yi,x) u_t(y, x) = \sum_i \delta(y^{\bar{i}}, x^{\bar{i}}) \, u_t^i(y^i, x)

我们可以把它拆开来看:

  1. δ(yiˉ,xiˉ)\delta(y^{\bar{i}}, x^{\bar{i}})(判断是否只有一个字不同):这是一个“开关”或“检查员”。它的工作是检查句子 yy 和句子 xx,除了第 ii 个位置之外,其他所有位置的字是不是都一模一样。

    • 如果是(比如 x=x= “我爱北京”,y=y= “他爱北京”,只有第一个字不同),那这个“开关”就打开,值为1。
    • 如果不是(比如有两个字不同),那这个“开关”就关闭,值为0。这意味着,对于这个 ii 来说,它认为这次整体变化是不可能的,所以贡献为0。
  2. uti(yi,x)u_t^i(y^i, x)(单字修改的冲动):如果“开关”打开了,就轮到第 ii 个位置的单字速度模型上场了。它会根据当前整个句子 xx 的语境,计算出把第 ii 个位置的字从 xix^i 改成 yiy^i 的冲动强度。

  3. i\sum_i(求和):这个求和是在对所有可能的位置 ii 做汇总。但由于“开关” δ\delta 的存在,在任何一个具体的 (y,x)(y, x) 变化中,最多只有一个 ii 能让“开关”打开。所以这个求和的结果,要么是0(如果 yyxx 有两个及以上字不同),要么就是那个唯一不同的位置 ii 所对应的单字冲动强度 uti(yi,x)u_t^i(y^i, x)

  • 把不可能变成可能:如果不做因子化,一个模型需要直接输出所有 KdK^d 种可能句子的冲动值,这根本做不到。因子化之后,我们只需要训练 dd 个小模型(或者一个共享的大模型),每个模型的输出维度是 KK,这就变得完全可行了。
  • 让问题变简单:把一个“一次性生成整个句子”的复杂问题,分解成了“在每个位置上独立地预测下一个字”的简单问题序列。这和语言模型做文本生成的思路很像,所以很容易理解和实现。

总结一下:因子化速度就像是一位“总指挥”,它规定“一次只能修改一个位置”,然后把每个位置的具体修改任务,分配给了专门的“单字修改员”,最后把所有修改员的结果汇总起来,就得到了整个句子的变化方案。

使用因子化速度时,可按坐标对连续时间马尔可夫链(CTMC)模型进行采样(Campbell et al., 2024):

P(Xt+h=yXt=x)=δ(y,x)+hiδ(yiˉ,xiˉ)uti(yi,x)+o(h)=i[δ(yi,xi)+huti(yi,x)+o(h)], \begin{aligned} \mathbb{P}\left( X_{t+h} = y | X_t = x \right) & = \delta(y, x) + h \sum_i \delta\left( y^{\bar{i}}, x^{\bar{i}} \right) u_t^i\left( y^i, x \right) + o(h) \\ & = \prod_i \left[ \delta\left( y^i, x^i \right) + h u_t^i\left( y^i, x \right) + o(h) \right], \end{aligned}

其中第二个等式由δ(y,x)=iδ(yi,xi)\delta(y, x) = \prod_i \delta(y^i, x^i)以及恒等式i[ai+hbi]=iai+hi(jiaj)bi+o(h)\prod_i \left[ a^i + h b^i \right] = \prod_i a^i + h \sum_i \left( \prod_{j \neq i} a^j \right) b^i + o(h)推导得出。因此,在o(h)o(h)阶近似下,转移核可因子化为坐标独立的转移:

P(Xt+hi=yiXt=x)=δ(yi,xi)+hui(yi,x)+o(h). \mathbb{P}\left( X_{t+h}^i = y^i | X_t = x \right) = \delta\left( y^i, x^i \right) + h u^i\left( y^i, x \right) + o(h).

这些转移可通过欧拉方法(6.7)按坐标进行采样。有趣的是,连续流匹配同样具有类似的因子化形式ut(x)=[ut1(x),...,utd(x)]Rdu_t(x) = [u_t^1(x), ..., u_t^d(x)] \in \mathbb{R}^d,其中X˙ti(x)=uti(Xt)\dot{X}_t^i(x) = u_t^i(X_t)决定坐标i的变化,且可独立采样(连续流匹配中的“采样”本质上是确定性的)。

因子化速度下的CTMC

在离散流匹配中,当我们使用因子化速度(即假设一次只能改变一个坐标)时,对连续时间马尔可夫链(CTMC)的采样可以简化为每个坐标独立地更新。下面用通俗的语言解释这个推导过程。


CTMC 在很短的时间 hh 内,从当前状态 xx 转移到新状态 yy 的概率可以写成:

P(Xt+h=yXt=x)=δ(y,x)留在原地的概率近似为1+hut(y,x)转移速率+o(h)高阶小量. \mathbb{P}(X_{t+h}=y \mid X_t=x) = \underbrace{\delta(y,x)}_{\text{留在原地的概率近似为1}} + h \cdot \underbrace{u_t(y,x)}_{\text{转移速率}} + \underbrace{o(h)}_{\text{高阶小量}}.

这个公式的意思是:在极短时间 hh 内,要么完全不动(概率 ≈ 1),要么以正比于 hh 的概率跳到一个不同的状态,同时还有更小的概率发生多次跳跃(归入 o(h)o(h))。


因子化速度假设:只有当一个状态 yy 与当前状态 xx最多一个坐标上不同时,转移速率才可能非零。具体地,它写成:

ut(y,x)=i=1dδ(yiˉ,xiˉ)检查其他坐标是否相同uti(yi,x), u_t(y,x) = \sum_{i=1}^d \underbrace{\delta(y^{\bar{i}}, x^{\bar{i}})}_{\text{检查其他坐标是否相同}} \cdot u_t^i(y^i, x),

其中 δ(yiˉ,xiˉ)\delta(y^{\bar{i}}, x^{\bar{i}}) 等于 1 当且仅当 yyxx 除了第 ii 个坐标外完全相同,否则为 0。这意味着 ut(y,x)u_t(y,x) 只有在 yyxx 只差一个坐标时才可能非零,并且此时它等于那个坐标的局部速率 uti(yi,x)u_t^i(y^i, x)

把这个表达式代入第一步的转移概率公式:

P(Xt+h=yXt=x)=δ(y,x)+hiδ(yiˉ,xiˉ)uti(yi,x)+o(h).(1) \mathbb{P}(X_{t+h}=y \mid X_t=x) = \delta(y,x) + h \sum_i \delta(y^{\bar{i}}, x^{\bar{i}})\, u_t^i(y^i, x) + o(h). \tag{1}

这可以直观理解为:在时间 hh 内,要么不变(δ\delta 项),要么恰好有一个坐标 ii 发生变化,且变化的概率由该坐标的局部速率决定(乘以 hh),其他坐标保持不变。发生两个或更多坐标变化的概率极小,归入 o(h)o(h)


注意到 δ(y,x)\delta(y,x) 可以写成所有坐标上 δ\delta 的乘积:

δ(y,x)=i=1dδ(yi,xi). \delta(y,x) = \prod_{i=1}^d \delta(y^i, x^i).

现在考虑每个坐标上的“局部转移概率”:

δ(yi,xi)+huti(yi,x). \delta(y^i, x^i) + h u_t^i(y^i, x).

将它们乘起来:

i=1d[δ(yi,xi)+huti(yi,x)]. \prod_{i=1}^d \left[ \delta(y^i, x^i) + h u_t^i(y^i, x) \right].

展开这个乘积:

  • 所有因子都取第一项 δ\delta,得到 iδ(yi,xi)=δ(y,x)\prod_i \delta(y^i, x^i) = \delta(y,x)
  • 恰有一个因子(比如第 ii 个)取第二项 hutih u_t^i,其余取第一项,得到 huti(yi,x)jiδ(yj,xj)=hδ(yiˉ,xiˉ)uti(yi,x)h u_t^i(y^i, x) \prod_{j\neq i} \delta(y^j, x^j) = h \delta(y^{\bar{i}}, x^{\bar{i}}) u_t^i(y^i, x)
  • 两个或更多因子取第二项,会得到 h2h^2 或更高阶项,这些相对于 hh 是高阶小量,可以统一归入 o(h)o(h)

因此,我们有:

i=1d[δ(yi,xi)+huti(yi,x)]=δ(y,x)+hiδ(yiˉ,xiˉ)uti(yi,x)+o(h).(2) \prod_{i=1}^d \left[ \delta(y^i, x^i) + h u_t^i(y^i, x) \right] = \delta(y,x) + h \sum_i \delta(y^{\bar{i}}, x^{\bar{i}}) u_t^i(y^i, x) + o(h). \tag{2}

比较 (1) 和 (2),右边完全相同,所以:

P(Xt+h=yXt=x)=i=1d[δ(yi,xi)+huti(yi,x)+o(h)].(3) \mathbb{P}(X_{t+h}=y \mid X_t=x) = \prod_{i=1}^d \left[ \delta(y^i, x^i) + h u_t^i(y^i, x) + o(h) \right]. \tag{3}

这个形式表明,在忽略高阶项的条件下,联合转移概率近似等于各坐标局部转移概率的乘积。也就是说,每个坐标似乎可以独立地决定自己变不变、变成什么。


现在,我们想知道单个坐标 ii 在时间 hh 后的分布。这可以通过对除了第 ii 个坐标外的所有可能值求和得到(即边缘化):

P(Xt+hi=yiXt=x)=yiˉP(Xt+h=(yi,yiˉ)Xt=x). \mathbb{P}(X_{t+h}^i = y^i \mid X_t=x) = \sum_{y^{\bar{i}}} \mathbb{P}(X_{t+h} = (y^i, y^{\bar{i}}) \mid X_t=x).

代入 (3) 式:

=yiˉj=1d[δ(yj,xj)+hutj(yj,x)+o(h)]. = \sum_{y^{\bar{i}}} \prod_{j=1}^d \left[ \delta(y^j, x^j) + h u_t^j(y^j, x) + o(h) \right].

将乘积拆分为第 ii 个因子和其他因子的乘积:

=[δ(yi,xi)+huti(yi,x)+o(h)]yiˉji[δ(yj,xj)+hutj(yj,x)+o(h)]. = \left[ \delta(y^i, x^i) + h u_t^i(y^i, x) + o(h) \right] \cdot \sum_{y^{\bar{i}}} \prod_{j\neq i} \left[ \delta(y^j, x^j) + h u_t^j(y^j, x) + o(h) \right].

对每个 jij\neq i,对 yjy^j 求和:

yj[δ(yj,xj)+hutj(yj,x)+o(h)]=1+hyjutj(yj,x)+o(h). \sum_{y^j} \left[ \delta(y^j, x^j) + h u_t^j(y^j, x) + o(h) \right] = 1 + h \sum_{y^j} u_t^j(y^j, x) + o(h).

根据速率条件,每个 utju_t^j 满足 yjutj(yj,x)=0\sum_{y^j} u_t^j(y^j, x) = 0(因为留在原地的速率是负的,离开的速率之和为零),所以上式为 1+o(h)1 + o(h)。因此所有 jij\neq i 的乘积求和为 (1+o(h))d1=1+o(h)(1+o(h))^{d-1} = 1 + o(h)。于是:

P(Xt+hi=yiXt=x)=[δ(yi,xi)+huti(yi,x)+o(h)](1+o(h))=δ(yi,xi)+huti(yi,x)+o(h).(4) \mathbb{P}(X_{t+h}^i = y^i \mid X_t=x) = \left[ \delta(y^i, x^i) + h u_t^i(y^i, x) + o(h) \right] \cdot (1+o(h)) = \delta(y^i, x^i) + h u_t^i(y^i, x) + o(h). \tag{4}

这个结果正是我们期望的:每个坐标的演化独立地遵循一个与整体CTMC形式相同的局部转移概率,只是速率函数变成了 utiu_t^i


可以用一个比喻来帮助理解:

  • 想象你有一个由 dd 个独立的骰子组成的系统(每个骰子代表一个坐标)。在很短的时间 hh 内,每个骰子要么保持原样,要么以微小的概率变成另一个点数,而且不同骰子同时变化的概率极小可以忽略。
  • 那么整个系统的状态变化概率,就等于每个骰子独立变化概率的乘积(近似)。
  • 当你只关心某个骰子时,只需要看它自己的局部转移概率,而忽略其他骰子,因为它们的可能取值对它的概率没有影响(在 o(h)o(h) 精度下)。

因此,因子化速度使得我们可以按坐标独立采样:在每个微小时间步,对每个位置,根据其局部速率 utiu_t^i,用欧拉方法(如指数欧拉)更新该位置的取值,而无需考虑其他位置的同时变化。这大大简化了采样过程。

若以特定方式构建概率路径,则其速度将天然具有因子化形式(方程(7.9))。接下来我们将详细说明这一构建过程。为此,我们定义因子化概率路径为以下形式:

qt(x)=iqti(xi). q_t(x) = \prod_i q_t^i(x^i).

随后,下述结果表明这些因子化概率路径具有因子化速度。

命题2:设qt(x)q_t(x)是如(7.12)式所示的因子化概率路径,其中uti(yi,xi)C([0,1))u_t^i(y^i, x^i) \in C([0,1))生成qti(xi)q_t^i(x^i)。则qtq_t具有如下形式的因子化生成速度:

ut(y,x)=iδ(yiˉ,xiˉ)uti(yi,xi). u_t(y, x) = \sum_i \delta\left( y^{\bar{i}}, x^{\bar{i}} \right) u_t^i\left( y^i, x^i \right).

为进行证明,我们先通过以下式子定义概率质量函数q(x)q(x)的边际分布:

qi(xi):=xiˉq(x) q^i\left( x^i \right) := \sum_{x^{\bar{i}}} q(x)

证明:设qtq_t是因子化概率路径(7.12),uti(yi,xi)u_t^i(y^i, x^i)qti(xi)q_t^i(x^i)的生成速度。对t求导可得:

ddtqt(y)=iqtiˉ(yiˉ)ddtqti(yi)=(i)i[xiˉδ(yiˉ,xiˉ)qtiˉ(xiˉ)][xiuti(yi,xi)qti(xi)]=(ii)x[iδ(yiˉ,xiˉ)uti(yi,xi)]qt(x), \begin{aligned} \frac{d}{dt} q_t(y) & = \sum_i q_t^{\bar{i}}\left( y^{\bar{i}} \right) \frac{d}{dt} q_t^i\left( y^i \right) \\ & \stackrel{(i)}{=} \sum_i \left[ \sum_{x^{\bar{i}}} \delta\left( y^{\bar{i}}, x^{\bar{i}} \right) q_t^{\bar{i}}\left( x^{\bar{i}} \right) \right] \left[ \sum_{x^i} u_t^i\left( y^i, x^i \right) q_t^i\left( x^i \right) \right] \\ & \stackrel{(ii)}{=} \sum_x \left[ \sum_i \delta\left( y^{\bar{i}}, x^{\bar{i}} \right) u_t^i\left( y^i, x^i \right) \right] q_t(x), \end{aligned}

其中等式(i)由qtiˉ(yiˉ)=xiˉδ(yiˉ,xiˉ)qtiˉ(xiˉ)q_t^{\bar{i}}(y^{\bar{i}}) = \sum_{x^{\bar{i}}} \delta(y^{\bar{i}}, x^{\bar{i}}) q_t^{\bar{i}}(x^{\bar{i}})和科尔莫戈罗夫方程(6.8)推导得出;等式(ii)通过改变求和顺序,并注意到根据qtq_t的定义,有qtiˉ(xiˉ)qti(xi)=qt(x)q_t^{\bar{i}}(x^{\bar{i}}) q_t^i(x^i) = q_t(x)xiˉxi=x\sum_{x^{\bar{i}}} \sum_{x^i} = \sum_x得出。

接下来,我们将展示构建具有因子化速度且插值于任意p和q的路径ptp_t的核心工具(Campbell et al., 2024; Gat et al., 2024)。

定理16(离散因子化边际化技巧):考虑通过以下方式构建的边际概率路径:

pt(x)=zptZ(xz)pZ(z), 其中 ptZ(xz)=iptZi(xiz), p_t(x) = \sum_z p_{t|Z}(x|z) p_Z(z), \text{ 其中 } p_{t|Z}(x|z) = \prod_i p_{t|Z}^i(x^i|z),

即条件路径按(7.12)式的意义进行因子化。进一步假设uti(yi,xiz)C([0,1))u_t^i(y^i, x^i|z) \in C([0,1))生成C1([0,1))C^1([0,1))中的ptZi(xiz)p_{t|Z}^i(x^i|z),且对所有xSx \in St[0,1)t \in [0,1)pt(x)>0p_t(x) > 0。则边际速度为:

ut(y,x)=iδ(yiˉ,xiˉ)uti(yi,x) u_t(y, x) = \sum_i \delta\left( y^{\bar{i}}, x^{\bar{i}} \right) u_t^i\left( y^i, x \right)

其中:

uti(yi,x)=zuti(yi,xiz)pZt(zx)=E[uti(yi,XtiZ)Xt=x] u_t^i(y^i, x) = \sum_z u_t^i(y^i, x^i|z) p_{Z|t}(z|x) = \mathbb{E}\left[ u_t^i(y^i, X_t^i|Z) | X_t = x \right]

生成pt(x)p_t(x)

证明:根据命题2,因子化条件路径ptZ(xz)p_{t|Z}(x|z)具有因子化生成速度ut(y,xz)=iδ(yiˉ,xiˉ)uti(yi,xiz)u_t(y, x|z) = \sum_i \delta(y^{\bar{i}}, x^{\bar{i}}) u_t^i(y^i, x^i|z)。因此:

ut(y,x)=(i)zut(y,xz)pZt(zx)=(ii)z[iδ(yiˉ,xiˉ)uti(yi,xiz)]pZt(zx)=(iii)iδ(yiˉ,xiˉ)[zuti(yi,xiz)pZt(zx)]. \begin{aligned} u_t(y, x) & \stackrel{(i)}{=} \sum_z u_t(y, x|z) p_{Z|t}(z|x) \\ & \stackrel{(ii)}{=} \sum_z \left[ \sum_i \delta\left( y^{\bar{i}}, x^{\bar{i}} \right) u_t^i\left( y^i, x^i|z \right) \right] p_{Z|t}(z|x) \\ & \stackrel{(iii)}{=} \sum_i \delta\left( y^{\bar{i}}, x^{\bar{i}} \right) \left[ \sum_z u_t^i\left( y^i, x^i|z \right) p_{Z|t}(z|x) \right]. \end{aligned}

等式(i)由(7.2)式得出;等式(ii)基于ptZp_{t|Z}具有因子化速度的假设得出;等式(iii)通过改变求和顺序得出。由于ptZi(xiz)C1([0,1))p_{t|Z}^i(x^i|z) \in C^1([0,1))pt(x)>0p_t(x) > 0,可得ptZ(xz)C1([0,1))p_{t|Z}(x|z) \in C^1([0,1));同理,由于uti(yi,xiz)C([0,1))u_t^i(y^i, x^i|z) \in C([0,1)),可得ut(y,xz)C([0,1))u_t(y, x|z) \in C([0,1))。因此,定理14表明ut(y,x)u_t(y, x)生成pt(x)p_t(x),符合要求。

通过使用定理16,我们可按以下步骤设计具有因子化速度且插值于源概率质量函数p和目标概率质量函数q的概率路径ptp_t

  1. 寻找因子化概率条件路径ptZ(xz)=iptZi(xiz)p_{t|Z}(x|z) = \prod_i p_{t|Z}^i(x^i|z),使得边际pt(x)p_t(x)满足p0=pp_0 = pp1=qp_1 = q
  2. ptZi(xiz)p_{t|Z}^i(x^i|z)寻找生成速度uti(yi,xiz)u_t^i(y^i, x^i|z)。这可通过为所有yiTy^i \in T、固定的i[d]i \in [d]zZz \in Zt[0,1)t \in [0,1)求解科尔莫戈罗夫方程实现: xiuti(yi,xiz)ptZi(xiz)=ddtptZi(yiz). \sum_{x^i} u_t^i\left( y^i, x^i|z \right) p_{t|Z}^i\left( x^i|z \right) = \frac{d}{dt} p_{t|Z}^i\left( y^i|z \right). 需要注意的是,(7.18)式是一个具有T|T|个未知数的欠定线性方程组(未知数数量远少于整个状态空间S|S|)。

将边际速度utθu_t^\theta表示为因子化速度utθ,iu_t^\theta, i的形式,可得到如下条件流匹配损失:

LCDFM(θ)=Et,Z,XtptZiDXti(uti(,XtZ),utθ,i(,Xt)), \mathcal{L}_{CDFM}(\theta) = \mathbb{E}_{t, Z, X_t \sim p_{t|Z}} \sum_i D_{X_t}^i\left( u_t^i(\cdot, X_t|Z), u_t^\theta, i(\cdot, X_t) \right),

其中tU[0,1]t \sim U[0,1],且uti(,xz)u_t^i(\cdot, x|z)utθ,i(,x)RTu_t^\theta, i(\cdot, x) \in \mathbb{R}^T满足速率条件。这意味着uti(,xz)u_t^i(\cdot, x|z)utθ,i(,x)Ωxu_t^\theta, i(\cdot, x) \in \Omega_x,其中对于αT\alpha \in T,我们定义:

Ωα={vRTv(β)0βT{α}, 且 v(α)=βαv(β)}RT. \Omega_\alpha = \left\{ v \in \mathbb{R}^{\mathcal{T}} \mid v(\beta) \geq 0 \forall \beta \in \mathcal{T} \setminus \{\alpha\}, \text{ 且 } v(\alpha) = -\sum_{\beta \neq \alpha} v(\beta) \right\} \subset \mathbb{R}^{\mathcal{T}}.

Ωα\Omega_\alpha是一个凸集,Dxi(u,v)D_x^i(u, v)是基于凸函数Φxi:ΩxiR\Phi_x^i: \Omega_{x^i} \to \mathbb{R}定义的布雷格曼散度。与之前类似,我们可通过设定X=XtX = X_tY=uti(,Xt,Z)RτY = u_t^i(\cdot, X_t, Z) \in \mathbb{R}^\tau,令Dxi(u,v)D_x^i(u, v)ΩxiRT\Omega_{x^i} \subset \mathbb{R}^T上的布雷格曼散度,并对t[0,1]t \in [0,1]积分,结合命题1来证明该损失的合理性。

现在,我们将实施7.5.2节的内容,以构建实用的概率路径及其对应的条件速度。沿用Gat et al. (2024)的思路,我们基于Z=(X0,X1)Z = (X_0, X_1)进行条件化处理,以适应任意的数据耦合(X0,X1)π0,1(X0,X1)(X_0, X_1) \sim \pi_{0,1}(X_0, X_1)。随后,我们构建因子化条件路径:

pt0,1(xx0,x1)=ipt0,1i(xix0,x1) p_{t|0,1}(x|x_0, x_1) = \prod_i p_{t|0,1}^i(x^i|x_0, x_1)

作为混合分布:

pt0,1i(xix0,x1)=κtδ(xi,x1i)+(1κt)δ(xi,x0i), p_{t|0,1}^i(x^i|x_0, x_1) = \kappa_t \delta\left( x^i, x_1^i \right) + (1 - \kappa_t) \delta\left( x^i, x_0^i \right),

其中κ:[0,1][0,1]\kappa: [0,1] \to [0,1]C1([0,1])C^1([0,1])调度器。需要注意的是,满足Xtipt0,1i(x0,x1)X_t^i \sim p_{t|0,1}^i(\cdot|x_0, x_1)的随机变量XtiX_t^i服从:

Xti={x1i 概率为 κtx0i 概率为 (1κt) X_t^i = \begin{cases} x_1^i & \text{ 概率为 } \kappa_t \\ x_0^i & \text{ 概率为 } (1 - \kappa_t) \end{cases}

即它以依赖于时间t的概率取源状态或目标状态。

κ0=0\kappa_0 = 0κ1=1\kappa_1 = 1,则(7.1)式中的边际pt(x)p_t(x)满足边界约束。我们还需要为pt0,1i(xix0,x1)p_{t|0,1}^i(x^i|x_0, x_1)寻找生成速度uti(yi,xix0,x1)u_t^i(y^i, x^i|x_0, x_1),它们是(7.18)式的解。推导过程如下:

ddtptZi(yiz)=(7.22)κ˙t[δ(yi,x1i)δ(yi,x0i)]=(7.22)κ˙t[δ(yi,x1i)ptZi(yiz)κtδ(yi,x1i)1κt]=κ˙t1κt[δ(yi,x1i)ptZi(yiz)]=xiκ˙t1κt[δ(yi,x1i)δ(yi,xi)]ptZi(xiz), \begin{aligned} \frac{d}{dt} p_{t|Z}^i\left( y^i|z \right) & \stackrel{(7.22)}{=} \dot{\kappa}_t \left[ \delta\left( y^i, x_1^i \right) - \delta\left( y^i, x_0^i \right) \right] \\ & \stackrel{(7.22)}{=} \dot{\kappa}_t \left[ \delta\left( y^i, x_1^i \right) - \frac{p_{t|Z}^i\left( y^i|z \right) - \kappa_t \delta\left( y^i, x_1^i \right)}{1 - \kappa_t} \right] \\ & = \frac{\dot{\kappa}_t}{1 - \kappa_t} \left[ \delta\left( y^i, x_1^i \right) - p_{t|Z}^i\left( y^i|z \right) \right] \\ & = \sum_{x^i} \frac{\dot{\kappa}_t}{1 - \kappa_t} \left[ \delta\left( y^i, x_1^i \right) - \delta\left( y^i, x^i \right) \right] p_{t|Z}^i\left( x^i|z \right), \end{aligned}

为保持符号简洁,我们交替使用z=(x0,x1)z = (x_0, x_1)Z=(X0,X1)Z = (X_0, X_1)。综上,我们找到了生成(7.22)式中路径的条件速度:

uti(yi,xix0,x1)=κ˙t1κt[δ(yi,x1i)δ(yi,xi)]. u_t^i\left( y^i, x^i|x_0, x_1 \right) = \frac{\dot{\kappa}_t}{1 - \kappa_t} \left[ \delta\left( y^i, x_1^i \right) - \delta\left( y^i, x^i \right) \right].

代码9展示了flow_matching库中混合路径的定义方式。

代码9:离散概率路径

import torch
from flow_matching.path import MixtureDiscreteProbPath
from flow_matching.path.path_sample import DiscretePathSample

## 创建离散概率路径对象
path = MixtureDiscreteProbPath(scheduler=PolynomialConvexScheduler(n=1.0))

## 采样条件路径
## t、X0和X1的批量大小为2
t = torch.tensor([0.25, 0.5])
x_0 = torch.tensor([0, 0])
x_1 = torch.tensor([1, 2])
sample: DiscretePathSample = path.sample(t=t, x_0=x_0, x_1=x_1)
sample.x_0  ## X0为[0, 0]
sample.x_1  ## X1为[1, 2]
## Xt的分布为:
## [以0.75的概率取0,以0.25的概率取1,
##  以0.5的概率取0,以0.5的概率取2]
sample.x_t
sample.t  ## t为[0.25, 0.5]

与连续情形类似(例如4.8.1节),我们可以通过多种方式对速度uti(yi,x)u_t^i(y^i, x)进行参数化。第一种方式是直接对其进行参数化,类似于流中的速度;此处我们采用的另一种方式是基于混合边际速度的下述计算(遵循(7.17)式):

uti(yi,x)=x0,x1κ˙t1κt[δ(yi,x1i)δ(yi,xi)]p0,1t(x0,x1x)=x1iκ˙t1κt[δ(yi,x1i)δ(yi,xi)]p1ti(x1ix), \begin{aligned} u_t^i\left( y^i, x \right) & = \sum_{x_0, x_1} \frac{\dot{\kappa}_t}{1 - \kappa_t} \left[ \delta\left( y^i, x_1^i \right) - \delta\left( y^i, x^i \right) \right] p_{0,1|t}\left( x_0, x_1|x \right) \\ & = \sum_{x_1^i} \frac{\dot{\kappa}_t}{1 - \kappa_t} \left[ \delta\left( y^i, x_1^i \right) - \delta\left( y^i, x^i \right) \right] p_{1|t}^i\left( x_1^i|x \right), \end{aligned}

其中第二个等式中我们记后验p0,1tp_{0,1|t}的边际为:

p1ti(x1ix)=x0,x1iˉp0,1t(x0,x1x)=E[δ(x1i,X1i)Xt=x]. p_{1|t}^i(x_1^i|x) = \sum_{x_0, x_1^{\bar{i}}} p_{0,1|t}(x_0, x_1|x) = \mathbb{E}\left[ \delta\left( x_1^i, X_1^i \right) | X_t = x \right].

该推导通过可学习后验p1tθ,i(x1ix)p_{1|t}^{\theta, i}(x_1^i|x)表示边际uti(yi,x)u_t^i(y^i, x),这可理解为4.8.1节中x1x_1预测的离散版本。接下来,我们将探讨用于学习该后验的损失函数。

我们提供两种学习p1tθ,i(x1ix)p_{1|t}^{\theta, i}(x_1^i|x)的方案,均通过命题1证明其合理性。第一种方案是通过条件匹配损失学习边际后验(7.26)和(7.27):

LCM(θ)=Et,X0,X1,XtDXt(δ(,X1i),p1tθ,i(Xt)) \mathcal{L}_{CM}(\theta) = \mathbb{E}_{t, X_0, X_1, X_t} D_{X_t}\left( \delta\left( \cdot, X_1^i \right), p_{1|t}^{\theta, i}\left( \cdot|X_t \right) \right)

由于δ(,X1i)\delta(\cdot, X_1^i)p1tθ,i(Xt)p_{1|t}^{\theta, i}(\cdot|X_t)均为概率质量函数,因此我们可将布雷格曼散度设为KL散度D(p,q)=αTp(α)logp(α)q(α)D(p, q) = \sum_{\alpha \in T} p(\alpha) \log \frac{p(\alpha)}{q(\alpha)}(用于比较概率质量函数),得到:

LCM(θ)=Et,X0,X1,Xtlogp1tθ,i(X1iXt)+const. \mathcal{L}_{CM}(\theta) = -\mathbb{E}_{t, X_0, X_1, X_t} \log p_{1|t}^{\theta, i}\left( X_1^i|X_t \right) + const.

另一种方案是沿用7.5.3节的思路,使用(7.19)式中的因子化损失,并通过p1tθ,ip_{1|t}^{\theta, i}utθ,iu_t^{\theta, i}进行参数化。此时,我们可将布雷格曼散度设为广义KL散度(用于比较一般向量,不一定是概率向量)u,vR0mu, v \in \mathbb{R}_{≥0}^m

D(u,v)=jujlogujvjjuj+jvj. D(u, v) = \sum_j u^j \log \frac{u^j}{v^j} - \sum_j u_j + \sum_j v_j.

选择该散度后,有:

D(uti(,xix0,x1),utθ,i(,x))=κ˙t1κt[(δ(x1i,xi)1)logp1tθ,i(x1ix)+δ(x1i,xi)p1tθ,i(xix)] D\left( u_t^i\left( \cdot, x^i|x_0, x_1 \right), u_t^{\theta, i}(\cdot, x) \right) = \frac{\dot{\kappa}_t}{1 - \kappa_t} \left[ \left( \delta\left( x_1^i, x^i \right) - 1 \right) \log p_{1|t}^{\theta, i}\left( x_1^i|x \right) + \delta\left( x_1^i, x^i \right) - p_{1|t}^{\theta, i}\left( x^i|x \right) \right]

当基于Z=(X0,X1)Z = (X_0, X_1)进行条件化处理时,上式即实现了损失(7.19)。广义KL损失(7.31)还为目标分布的似然提供了证据下界(ELBO)(Shaul et al., 2024):

logp1θ(x1)Et,X0,Xtpt0,1iD(uti(,XtiX0,x1),utθ,i(,Xt)), -\log p_1^\theta\left( x_1 \right) \leq \mathbb{E}_{t, X_0, X_t \sim p_{t|0,1}} \sum_i D\left( u_t^i\left( \cdot, X_t^i|X_0, x_1 \right), u_t^{\theta, i}\left( \cdot, X_t \right) \right),

其中p1θp_1^\theta是模型在时间t=1t=1时生成的边际。因此,除训练外,广义KL损失还常用于评估。

基于后验p1tθ,ip_{1|t}^{\theta, i}的参数化方式,可得到如下采样算法。如7.5.1节所述,使用因子化速度可支持按坐标采样(7.11)。根据(7.17)和(7.25)式,有:

P(Xt+hi=yiXt=x)=δ(yi,xi)+hui(yi,x)+o(h)=x1i[δ(yi,xi)+hκ˙t1κt[δ(yi,x1i)δ(yi,xi)]+o(h)]p1ti(x1ix). \begin{aligned} \mathbb{P}\left( X_{t+h}^i = y^i | X_t = x \right) & = \delta\left( y^i, x^i \right) + h u^i\left( y^i, x \right) + o(h) \\ & = \sum_{x_1^i} \left[ \delta\left( y^i, x^i \right) + h \frac{\dot{\kappa}_t}{1 - \kappa_t} \left[ \delta\left( y^i, x_1^i \right) - \delta\left( y^i, x^i \right) \right] + o(h) \right] p_{1|t}^i\left( x_1^i|x \right). \end{aligned}

因此,给定Xt=xX_t = x,我们可通过对每个i[d]i \in [d]执行以下两个步骤来完成单步采样:(i)从p1ti(X1ix)p_{1|t}^i(X_1^i|x)中采样X1iX_1^i;(ii)使用速度κ˙t1κt[δ(yi,X1i)δ(yi,xi)]\frac{\dot{\kappa}_t}{1 - \kappa_t} [\delta(y^i, X_1^i) - \delta(y^i, x^i)],根据欧拉步骤(6.7)更新Xt+hiX_{t+h}^i。直观而言,步骤(ii)决定将Xt+hiX_{t+h}^i设为X1iX_1^i还是保持为XtiX_t^i

通过添加如6.3.1节所述的散度无关分量(divergence-free component)来扩展采样算法的设计空间通常是有用的。对于因子化路径,散度无关速度vtiv_t^i需满足(7.18)式,即:

xivti(yi,xiz)ptZi(xiz)=0. \sum_{x^i} v_t^i\left( y^i, x^i|z \right) p_{t|Z}^i\left( x^i|z \right) = 0.

一般而言,若不学习额外的量(例如p0tip_{0|t}^i),找到此类概率保持速度可能具有挑战性。然而,在假设源分布为独立同分布(即p(x)=ip(xi)p(x) = \prod_i p(x^i))且耦合为独立耦合π0,1(x0,x1)=p(x0)q(x1)\pi_{0,1}(x_0, x_1) = p(x_0) q(x_1)的情况下,可通过闭式解找到概率保持速度。此时,边际混合路径的形式为:

pt(x)=x1pt1(xx1)q(x1), 其中 pt1(xx1)=ipt1i(xix1), p_t(x) = \sum_{x_1} p_{t|1}(x|x_1) q(x_1), \text{ 其中 } p_{t|1}(x|x_1) = \prod_i p_{t|1}^i(x^i|x_1),

pt1i(xix1)=[κtδ(xi,x1i)+(1κt)p(xi)]p_{t|1}^i(x^i|x_1) = [\kappa_t \delta(x^i, x_1^i) + (1 - \kappa_t) p(x^i)]。(7.24)式中的条件速度,即:

uti(yi,xix1)=κ˙t1κt[δ(yi,x1i)δ(yi,xi)] u_t^i\left( y^i, x^i|x_1 \right) = \frac{\dot{\kappa}_t}{1 - \kappa_t} \left[ \delta\left( y^i, x_1^i \right) - \delta\left( y^i, x^i \right) \right]

同样生成pt1i(xix1)p_{t|1}^i(x^i|x_1)。为找到散度无关速度,例如,我们可以从该速度中减去pt1i(yi,xix1)p_{t|1}^i(y^i, x^i|x_1)的反向时间速度uˉti\bar{u}_t^i(Gat et al., 2024),即其满足与pt1i(yi,xix1)p_{t|1}^i(y^i, x^i|x_1)相关的科尔莫戈罗夫方程,且uˉti-\bar{u}_t^i满足速率条件。此类速度可通过与(7.24)式类似的方式找到:

uˉti(yi,xix1)=κ˙tκt[δ(yi,xi)p(xi)]. \bar{u}_t^i\left( y^i, x^i|x_1 \right) = \frac{\dot{\kappa}_t}{\kappa_t} \left[ \delta\left( y^i, x^i \right) - p(x^i) \right].

因此,pt1i(xix1)p_{t|1}^i(x^i|x_1)条件路径的散度无关速度可通过下式定义:

vti(yi,xix1)=uti(yi,xix1)uˉti(yi,xix1). v_t^i\left( y^i, x^i|x_1 \right) = u_t^i\left( y^i, x^i|x_1 \right) - \bar{u}_t^i\left( y^i, x^i|x_1 \right).

根据6.3.1节,若将散度无关场vti(yi,xix1)v_t^i(y^i, x^i|x_1)添加到速度uti(yi,xix1)u_t^i(y^i, x^i|x_1)中,后者仍会生成相同的概率路径pt1i(xix1)p_{t|1}^i(x^i|x_1)。因此,定理16表明,由下式定义的边际速度uti(yi,x)u_t^i(y^i, x)

uti(yi,x)=x1[uti(yi,xix1)+ctvti(yi,xix1)]p1t(x1x)=x1i[uti(yi,xix1i)+ctvti(yi,xix1i)]p1ti(xix), \begin{aligned} u_t^i\left( y^i, x \right) & = \sum_{x_1} \left[ u_t^i\left( y^i, x^i|x_1 \right) + c_t v_t^i\left( y^i, x^i|x_1 \right) \right] p_{1|t}(x_1|x) \\ & = \sum_{x_1^i} \left[ u_t^i\left( y^i, x^i|x_1^i \right) + c_t v_t^i\left( y^i, x^i|x_1^i \right) \right] p_{1|t}^i\left( x^i|x \right), \end{aligned}

仍会生成相同的边际路径pt(x)p_t(x),其中第二个等式源于混合路径的uti(yi,xix1)=uti(yi,xix1i)u_t^i(y^i, x^i|x_1) = u_t^i(y^i, x^i|x_1^i)vti(yi,xix1)v_t^i(y^i, x^i|x_1)同理。综上,给定Xt=xX_t = x,广义采样算法的单步包括:(i)从p1ti(X1ix)p_{1|t}^i(X_1^i|x)中采样X1iX_1^i;(ii)使用速度执行欧拉步骤(6.7):

uti(yi,xix1)=κ˙t1κt[δ(yi,X1i)δ(yi,xi)]+ct[κ˙t1κt[δ(yi,x1i)δ(yi,xi)]κ˙tκt[δ(yi,xi)p(xi)]], u_t^i(y^i, x^i|x_1) = \frac{\dot{\kappa}_t}{1 - \kappa_t} \left[ \delta(y^i, X_1^i) - \delta(y^i, x^i) \right] + c_t \left[ \frac{\dot{\kappa}_t}{1 - \kappa_t} \left[ \delta(y^i, x_1^i) - \delta(y^i, x^i) \right] - \frac{\dot{\kappa}_t}{\kappa_t} \left[ \delta(y^i, x^i) - p(x^i) \right] \right],

其中ct>0c_t > 0是时间相关常数。

与代码1中的连续流匹配示例类似,我们在代码11中提供了纯PyTorch实现的离散流匹配独立代码。代码10展示了如何使用flow_matching库训练具有任意数据耦合的离散流。

代码10:使用混合路径和任意数据耦合训练与采样离散流匹配(DFM)

import torch
from flow_matching.path import MixtureDiscreteProbPath, DiscretePathSample
from flow_matching.path.scheduler import PolynomialConvexScheduler
from flow_matching.loss import MixturePathGeneralizedKL
from flow_matching.solver import MixtureDiscreteEulerSolver
from flow_matching.utils import ModelWrapper

model = ...  ## 定义可训练的速度模型
optimizer = torch.optim.Adam(model.parameters())

scheduler = PolynomialConvexScheduler(n=1.0)
path = MixtureDiscreteProbPath(scheduler=scheduler)
loss_fn = MixturePathGeneralizedKL(path=path)  ## 广义KL布雷格曼散度

for x_0, x_1 in dataloader:  ## 来自π0,1的样本,形状为[batch_size, *data_dim]
    t = torch.rand(batch_size) * (1.0 - 1e-3)  ## 随机时间t ∼ U[0, 1−10−3]
    sample: DiscretePathSample = path.sample(t=t, x_0=x_0, x_1=x_1)  ## 采样条件路径
    model_output = model(sample.x_t, sample.t)
    
    loss = loss_fn(logits=model_output, x_1=sample.x_1, x_t=sample.x_t, t=sample.t)  ## 条件离散流匹配(CDFM)损失
    
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

class ProbabilityDenoiser(ModelWrapper):
    def forward(self, x: torch.Tensor, t: torch.Tensor, **extras) -> torch.Tensor:
        logits = self.model(x, t, **extras)
        return torch.nn.functional.softmax(logits.float(), dim=-1)

## 采样X1
probability_denoiser = ProbabilityDenoiser(model=model)
x_0 = torch.randint(size=[batch_size, *data_dim])  ## 指定初始条件
solver = MixtureDiscreteEulerSolver(
    model=probability_denoiser,
    path=path,
    vocabulary_size=vocabulary_size
)

step_size = 1 / 100
x_1 = solver.sample(x_init=x_0, step_size=step_size, time_grid=torch.tensor([0.0, 1.0 - 1e-3]))

代码11:独立离散流匹配代码(flow_matching/examples/standalone_discrete_flow_matching.ipynb)

import torch
import matplotlib.pyplot as plt
from torch import nn, Tensor
from sklearn.datasets import make_moons

class DiscreteFlow(nn.Module):
    def __init__(self, dim: int = 2, h: int = 128, v: int = 128):
        super().__init__()
        self.v = v
        self.embed = nn.Embedding(v, h)
        self.net = nn.Sequential(
            nn.Linear(dim * h + 1, h), nn.ELU(),
            nn.Linear(h, h), nn.ELU(),
            nn.Linear(h, h), nn.ELU(),
            nn.Linear(h, dim * v))
    
    def forward(self, x_t: Tensor, t: Tensor) -> Tensor:
        return self.net(torch.cat((t[:, None], self.embed(x_t).flatten(1, 2)), -1)).reshape(list(x_t.shape) + [self.v])

batch_size = 256
vocab_size = 128

model = DiscreteFlow(v=vocab_size)
optim = torch.optim.Adam(model.parameters(), lr=0.001)

for _ in range(10000):
    x_1 = Tensor(make_moons(batch_size, noise=0.05)[0])
    x_1 = torch.round(torch.clip(x_1 * 35 + 50, min=0.0, max=vocab_size - 1)).long()
    x_0 = torch.randint(low=0, high=vocab_size, size=(batch_size, 2))
    
    t = torch.rand(batch_size)
    x_t = torch.where(torch.rand(batch_size, 2) < t[:, None], x_1, x_0)
    
    logits = model(x_t, t)
    loss = nn.functional.cross_entropy(logits.flatten(0, 1), x_1.flatten(0, 1)).mean()
    optim.zero_grad()
    loss.backward()
    optim.step()

x_t = torch.randint(low=0, high=vocab_size, size=(200, 2))
t = 0.0
results = [(x_t, t)]
while t < 1.0 - 1e-3:
    p1 = torch.softmax(model(x_t, torch.ones(200) * t), dim=-1)
    h = min(0.1, 1.0 - t)
    one_hot_x_t = nn.functional.one_hot(x_t, vocab_size).float()
    
    u = (p1 - one_hot_x_t) / (1.0 - t)
    x_t = torch.distributions.Categorical(probs=one_hot_x_t + h * u).sample()
    t += h
    results.append((x_t, t))

fig, axes = plt.subplots(1, len(results), figsize=(15, 2), sharex=True, sharey=True)
for (x_t, t), ax in zip(results, axes):
    ax.scatter(x_t.detach()[:, 0], x_t.detach()[:, 1], s=10)
    ax.set_title(f't={t:.1f}')
plt.tight_layout()
plt.show()

在前面的章节中,我们已经在Rd\mathbb{R}^{d}空间和黎曼流形上构建了流模型(参见第3章和第5章),并为离散数据构建了连续时间马尔可夫链(CTMC)模型(参见第6章)。在本章中,我们希望将这些模型统一并扩展为一种生成模型,使其能够适用于:(1)一般状态空间;(2)一般马尔可夫过程。这种生成模型将使我们能够在第9章中将流匹配(Flow Matching)的原理扩展到适用于多种模态的各类生成模型。

我们的核心目标是不限制所使用的模态。因此,在本章中,设SS为一般状态空间。重要的例子包括S=RdS=\mathbb{R}^{d}(例如图像、向量)、离散SS(例如语言)、黎曼流形SS(例如几何数据),或它们的乘积空间(用于联合生成多种数据模态的多模态模型)。对于所有模态,我们都可以在SS上定义一个度量(或距离函数)d:S×SR0d: S ×S \to \mathbb{R}_{≥0},即(x,y)d(x,y)(x, y) \mapsto d(x, y)。例如,对于离散SS,度量定义为:若yxy ≠x,则d(x,y)=1d(x, y)=1;对所有xSx \in S,则d(x,x)=0d(x, x)=0。对于S=RdS=\mathbb{R}^{d},我们使用d(x,y)=xyd(x, y)=\|x-y\|。我们需要做出一个技术假设:(S,d)(S, d)是波兰度量空间(Polish metric space),即它是完备的(任何柯西序列都收敛)且可分的(存在可数稠密子集)。机器学习中所有感兴趣的模态都满足这一性质。

到目前为止,在本文中我们假设状态空间SS上的概率分布pp由密度函数p:SR0p: S \to \mathbb{R}_{≥0}表示。对于一般状态空间,我们采用一般参考测度ν\nu,此时密度函数即为拉东-尼科迪姆导数dpdν\frac{d p}{d \nu}。换句话说,概率可以表示为关于ν\nu的积分:

P(A)=Ap(x)ν(dx)对所有可测集 AS \mathbb{P}(A)=\int_{A} p(x) \nu(d x) \quad \text{对所有可测集 } A \subset \mathcal{S}

对于离散SSν\nu是计数测度(因此积分本质上是求和),而p(x)p(x)就是概率质量函数(PMF)。对于S=RdS=\mathbb{R}^{d}ν\nu是勒贝格测度(因此积分是“常规”积分),而p(x)p(x)就是概率密度函数(PDF)。上述定义将这一概念推广到了任意状态空间。

需要注意的是,并非所有概率分布都存在关于参考测度的密度函数。对于不熟悉一般测度论的读者,可将此视为技术说明而忽略,只需关注具有密度函数p(x)p(x)的感兴趣分布即可。但需指出,这并非仅存在于理论中的特殊情况,在机器学习应用中也有实际场景需要考虑:例如,在S=RdS=\mathbb{R}^{d}上,连接两点x,yRdx, y \in \mathbb{R}^{d}的直线型概率路径pt=δ(1t)x+typ_{t}=\delta_{(1-t) x+t y}——该分布无法用密度函数表示;另一个例子是状态空间S=C([0,1],R)S=C([0,1], \mathbb{R})上的概率分布(例如用于轨迹建模),这类分布通常不存在关于常见参考测度的密度函数。为了在数学上处理这类情况,我们将框架扩展到状态空间SS上的一般概率测度pp。为此,我们使用符号p(dx)p(d x),其中“dxd x”是表示关于变量xx在测度pp下积分的符号表达式。例如,对于有界可测函数f:SRf: S \to \mathbb{R},我们将ffpp下的勒贝格积分或期望值表示为:

EXp[f(X)]=f(x)p(dx) \mathbb{E}_{X \sim p}[f(X)]=\int f(x) p(d x)

与前文一致,我们(略微滥用符号)使用相同的记号p(x)p(x)来表示测度p(dx)p(d x)的密度函数。

同样,我们的核心目标是构建一个适用于任意演化过程的模型——无论该过程是流、扩散过程、连续时间马尔可夫链(CTMC)、它们的组合,还是其他类型。因此,在本节中,我们定义一种通用的演化过程,该过程满足构建生成模型所需的基本正则性假设。对于t[0,1]t \in[0,1],设XtSX_{t} \in S为随机变量。若(Xt)0t1(X_{t})_{0 ≤t ≤1}满足以下条件,则称其为连续时间马尔可夫过程(CTMP):

P[Xtn+1AXt1,Xt2,...,Xtn]=P[Xtn+1AXtn](0t1<<tn+11,AS) \mathbb{P}[X_{t_{n+1}}\in A|X_{t_{1}},X_{t_{2}},...,X_{t_{n}}]=\mathbb{P}[X_{t_{n+1}}\in A|X_{t_{n}}] \quad (0\leq t_{1}<\cdots <t_{n+1}\leq 1,A\subseteq \mathcal{S})

通俗地说,上述条件意味着该过程具有“无记忆性”:若已知当前状态,则了解过去的状态不会影响对未来的预测。表2概述了几类重要的马尔可夫过程。例如,流形上的流是具有确定性转移的马尔可夫过程,扩散过程是由布朗运动驱动转移的马尔可夫过程,而连续时间马尔可夫链(CTMC)是由速率决定的马尔可夫过程(我们将在8.2.2节详细解释)。每个马尔可夫过程都有一个转移核(pt+ht)0t<t+h1(p_{t+h | t})_{0 ≤t<t+h ≤1},该转移核为每个xSx \in S分配一个概率分布pt+ht(x)p_{t+h | t}(\cdot | x),使得:

P[Xt+hAXt=x]=pt+ht(Ax)对所有 t,h0,AS 可测 \mathbb{P}\left[X_{t+h} \in A | X_{t}=x\right]=p_{t+h | t}(A | x) \quad \text{对所有 } t, h \geq 0, A \subset \mathcal{S} \text{ 可测}
名称流(Flow)扩散过程(Diffusion)跳跃过程(Jump process)连续时间马尔可夫链(Continuous-time Markov chain)
状态空间SSS=RdS=\mathbb{R}^{d}S=RdS=\mathbb{R}^{d}任意SS有限SS($
参数速度场:ut(x)Rdu_{t}(x) \in \mathbb{R}^{d}扩散系数:σt(x)Rd×d\sigma_{t}(x) \in \mathbb{R}^{d \times d}(半正定矩阵)跳跃测度Qt(dy,x)Q_{t}(d y, x)速率矩阵:utRS×Su_{t} \in \mathbb{R}^{S \times S},满足1Tut=01^{T} u_{t}=0ut(x;x)0u_{t}(x';x) \geq 0xxx'\neq x
采样方式Xt+h=Xt+hut(Xt)X_{t+h}=X_{t}+h u_{t}\left(X_{t}\right)Xt+h=Xt+hσt(Xt)ϵtX_{t+h}=X_{t}+\sqrt{h} \sigma_{t}\left(X_{t}\right) \epsilon_{t},其中ϵtN(0,I)\epsilon_{t} \sim \mathcal{N}(0, I)以概率1hQt(dy,x)1-h \int Q_{t}(d y, x)保持Xt+h=XtX_{t+h}=X_{t};以概率hQt(dy,x)h \int Q_{t}(d y, x)Qt(dy,x)Qt(dy,x)\frac{Q_{t}(d y, x)}{\int Q_{t}(d y, x)}中采样Xt+hX_{t+h}Xt+h(I+hut)(;Xt)X_{t+h} \sim\left(I+h u_{t}\right)\left(\cdot ; X_{t}\right)
生成器Lt\mathcal{L}_{t}fTut\nabla f^{T} u_{t}122fσt2\frac{1}{2} \nabla^{2} f \cdot \sigma_{t}^{2}[f(y)f(x)]Qt(dy,x)\int [f(y)-f(x)]Q_{t}(dy,x)fTutf^{T} u_{t}
科尔莫戈罗夫前向方程(KFE,伴随形式)连续性方程:tpt=div(ptut)\partial_{t} p_{t}=-div\left(p_{t} u_{t}\right)福克-普朗克方程:tpt=122(ptσt2)\partial_{t} p_{t}=\frac{1}{2} \nabla^{2} \cdot\left(p_{t} \sigma_{t}^{2}\right)跳跃连续性方程:tpt(x)=[Qt(x,y)pt(y)Qt(y,x)pt(x)]ν(dy)\partial_{t} p_{t}(x)=\int \left[Q_{t}(x, y) p_{t}(y)-Q_{t}(y, x) p_{t}(x)\right] \nu(d y)质量守恒:tpt=utpt\partial_{t} p_{t}=u_{t} p_{t}
边际形式EZpZt(x)[ut(xZ)]\mathbb{E}_{Z \sim p_{Z \mid t}(\cdot \mid x)}\left[u_{t}(x \mid Z)\right]EZpZt(x)[σt2(xZ)]\mathbb{E}_{Z \sim p_{Z \mid t}(\cdot \mid x)}\left[\sigma_{t}^{2}(x \mid Z)\right]EZpZt(x)[Qt(y,xZ)]\mathbb{E}_{Z \sim p_{Z \mid t}(\cdot \mid x)}\left[Q_{t}(y, x \mid Z)\right]EZpZt(x)[ut(y;xZ)]\mathbb{E}_{Z \sim p_{Z \mid t}(\cdot \mid x)}\left[u_{t}(y ; x \mid Z)\right]
生成器匹配(GM)损失示例ut(XZ)utθ(X)2\left\|u_{t}(X \mid Z)-u_{t}^{\theta}(X)\right\|^{2}σt2(XZ)(σtθ)2(X)22\left\|\sigma_{t}^{2}(X \mid Z)-\left(\sigma_{t}^{\theta}\right)^{2}(X)\right\|_{2}^{2}$\int Q_{t}(y,XZ)\log \frac{Q_{t}(y,X

表2 连续时间马尔可夫过程(CTMP)生成模型的部分示例及其通过生成器匹配(GM)的学习方式。此列表并非详尽无遗,推导过程见第8章。对于扩散过程,我们假设漂移项为零(漂移项相关内容已包含在“流”列中)。科尔莫戈罗夫前向方程(KFE)以伴随形式列出,即假设跳跃核Qt(y,x)Q_{t}(y, x)和密度pt(x)p_{t}(x)关于参考测度ν\nu存在。“半正定矩阵(p.s.d.)”:正定半正定矩阵。

基于马尔可夫假设,一个马尔可夫过程由转移核和X0X_{0}的分布唯一确定;反之,任意转移核和初始分布都能定义一个马尔可夫过程。因此,两者之间存在一一对应关系。

我们的下一个目标是定义连续时间马尔可夫过程(CTMP)中与速度场相对应的通用概念。通俗地说,它是转移核在时间tt处的一阶导数:

Lt:=ddhh=0pt+ht \mathcal{L}_{t}:=\left.\frac{d}{d h}\right|_{h=0} p_{t+h | t}

我们将这个一阶导数Lt\mathcal{L}_{t}称为pt+htp_{t+h | t}的生成器(Ethier and Kurtz, 2009; Rüschendorf et al., 2016)。与导数类似,生成器是一阶线性近似,比pt+htp_{t+h | t}更易于参数化。

正如我们将看到的,扩散过程、流以及其他生成模型都可以被视为学习马尔可夫过程生成器的算法(见表2)。这引出了连续时间马尔可夫过程(CTMP)生成模型的一般形式:

CTMP模型(非正式):pt+ht(x):=δx+hLt(x)+o(h),X0p. \text{CTMP模型(非正式):} \quad p_{t+h | t}(\cdot | x):=\delta_{x}+h \mathcal{L}_{t}(x)+o(h), \quad X_{0} \sim p.

然而,由于转移核pt+htp_{t+h | t}并非实值函数,方程(8.3)和(8.4)仅为启发式表达,尚未严格定义。因此,本节的首要目标是提供生成器和连续时间马尔可夫过程(CTMP)生成模型的正式定义。

方程(8.3)的第一个问题是:导数通常定义在映射到向量空间的函数上,但pt+htp_{t+h | t}映射到分布。不过,这一问题可以通过使用测试函数来解决。

测试函数是一种“探测”概率分布的工具,它作为理论工具,能将分布视为实值函数处理。具体来说,测试函数集是一族有界可测函数f:SRf: S \to \mathbb{R},这些函数能完全表征概率分布,即对于状态空间SS上的两个概率分布μ1\mu_{1}μ2\mu_{2},满足:

μ1=μ2EXμ1[f(X)]=EXμ2[f(X)]对所有 fT \mu_{1}=\mu_{2} \Leftrightarrow \mathbb{E}_{X \sim \mu_{1}}[f(X)]=\mathbb{E}_{X \sim \mu_{2}}[f(X)] \quad \text{对所有 } f\in \mathcal{T}

一般而言,我们会选择尽可能“良好”(或正则)的测试函数集T\mathcal{T}。例如,若S=RdS=\mathbb{R}^{d},则具有紧支撑的无穷可微函数空间T=Cc(Rd)\mathcal{T}=C_{c}^{\infty}(\mathbb{R}^{d})满足这一性质。对于离散SST=RS\mathcal{T}=\mathbb{R}^{S} simply consists of all functions(在这种情况下,函数本质上就是向量)。设XtptX_{t} \sim p_{t},我们定义边际作用和转移作用如下:

<pt,f>:=f(x)pt(dx)=EXpt[f(X)] \left< p_{t}, f\right>:=\int f(x) p_{t}(d x)=\mathbb{E}_{X \sim p_{t}}[f(X)]

<pt+ht,f>(x):=<pt+ht(x),f>=E[f(Xt+h)Xt=x] \left< p_{t+h | t}, f\right>(x):=\left< p_{t+h | t}(\cdot | x), f\right>=\mathbb{E}\left[f\left(X_{t+h}\right) | X_{t}=x\right]

其中,边际作用将每个测试函数ff映射到标量<pt,f>R< p_{t}, f> \in \mathbb{R},而转移作用将实值函数xf(x)x \mapsto f(x)映射到另一个实值函数x<pt+ht,f>(x)x \mapsto< p_{t+h | t}, f>(x)。塔性质(Tower Property)意味着<pt,<pt+ht,f>>=<pt+h,f>< p_{t},< p_{t+h | t}, f>>=< p_{t+h}, f>。需要注意的是,上述表达式仅为“符号化”的点积,但当密度函数pt(x)p_{t}(x)存在时,它会成为“真正的”点积,即<pt,f>=f(x)pt(x)ν(dx)< p_{t}, f>=\int f(x) p_{t}(x) \nu(d x)

要正式定义方程(8.3)中的导数,第二步是为马尔可夫过程赋予某种“光滑性”,我们定义如下:设C0(S)C_{0}(S)为在无穷远处消失的连续函数f:SRf: S \to \mathbb{R}构成的空间,即对于所有ϵ>0\epsilon>0,存在紧集KSK \subset S,使得对于所有xSKx \in S \setminus K,有f(x)<ϵ|f(x)|<\epsilon。我们在C0(S)C_{0}(S)上使用上确界范数\|\cdot\|_{\infty}。若连续时间马尔可夫过程(CTMP)XtX_{t}满足以下两个条件,则称其为费勒过程(Feller process)(Feller, 1955; Rüschendorf et al., 2016):

  1. 强连续性:pt+htp_{t+h | t}的作用在时间上是连续的: limhh,tt<pt+ht,f><pt+ht,f>=0对所有 h,t0,fC0(S) \lim_{h^{\prime} \to h,t^{\prime} \to t}\left\| \left< p_{t^{\prime}+h^{\prime}|t^{\prime}},f\right> -\left< p_{t+h| t},f\right> \right\| _{\infty }=0 \quad \text{对所有 } h,t\geq 0,f\in C_{0}(\mathcal{S})
  2. 无穷远不可达性:pt+htp_{t+h | t}的作用保持在无穷远处消失的函数性质: <pt+ht,f>C0(S)对所有 h,t0,fC0(S) \left< p_{t+h | t}, f\right> \in C_{0}(\mathcal{S}) \quad \text{对所有 } h, t \geq 0, f \in C_{0}(\mathcal{S})

假设4:连续时间马尔可夫过程(CTMP)(Xt)0t1(X_{t})_{0 ≤t ≤1}是费勒过程(Feller process)。

这一假设对于将XtX_{t}用于机器学习模型是合理的:我们定义的概率路径中,生成过程XtX_{t}的分布是平滑变化的,且我们的所有数据通常都位于某个有界(紧)集内。

现在,我们回到(8.3),尝试定义pt+htp_{t+h | t}的导数。结合测试函数的视角,我们可以对每个xSx \in S<pt+ht,f>(x)< p_{t+h | t}, f>(x)的导数,并定义:

ddhh=0<pt+ht,f>(x)=limh0<pt+ht,f>(x)f(x)h:=[Ltf](x) \left.\frac{d}{d h}\right|_{h=0}\left< p_{t+h | t}, f\right>(x)=\lim _{h \to 0} \frac{\left< p_{t+h | t}, f\right>(x)-f(x)}{h}:=\left[\mathcal{L}_{t} f\right](x)

我们将这一作用称为生成器Lt\mathcal{L}_{t},并将其定义于所有使上述极限在上确界范数\|\cdot\|_{\infty}下一致存在的测试函数ff上。直观地说,生成器被定义为测试函数上的算子。表2列出了几个生成器的例子,我们将在8.2.2节中推导这些例子。生成器与费勒过程(Feller process)之间存在一一对应关系(Rogers and Williams, 2000; Ethier and Kurtz, 2009; Pazy, 2012)——这与流和向量场之间的对应关系类似(见定理1)。这使得我们后续能够通过神经网络对费勒过程(Feller process)进行参数化。

有了这一定义,(8.4)中的连续时间马尔可夫过程(CTMP)模型就有了严格的形式:

<pt+ht,f>=f+hLtf+o(h)(对所有 fT)且 X0p \left< p_{t+h | t}, f\right>=f+h \mathcal{L}_{t} f+o(h) \quad (\text{对所有 } f \in \mathcal{T}) \quad \text{且 } X_{0} \sim p

其中,o(h)o(h)表示误差项E(h)C0(S)E(h) \in C_{0}(S),满足limh01hE(h)=0\lim _{h \to 0} \frac{1}{h}\|E(h)\|_{\infty}=0。与流的情况(方程(3.24))和连续时间马尔可夫链(CTMC)的情况(方程(6.5))类似,若存在满足(8.9)的连续时间马尔可夫过程(CTMP)XtX_{t},使得Xt ptX_{t} ~ p_{t},则称Lt\mathcal{L}_{t}生成ptp_{t}

Lt 生成 ptpt+ht 满足(8.9),且 Xtpt \mathcal{L}_{t} \text{ 生成 } p_{t} \Leftrightarrow \exists p_{t+h | t} \text{ 满足(8.9),且 } X_{t} \sim p_{t}

换句话说,若一个生成器Lt\mathcal{L}_{t}满足:(1)以p=p0p=p_{0}初始化;(2)通过Lt\mathcal{L}_{t}模拟得到的马尔可夫过程的边际分布为ptp_{t},则该生成器Lt\mathcal{L}_{t}生成概率路径ptp_{t}

我们通过几个例子来说明如何计算马尔可夫过程的生成器。本节的结果总结于表2。

S=RdS=\mathbb{R}^{d}u:[0,1]×RdRdu:[0,1] ×\mathbb{R}^{d} \to \mathbb{R}^{d}(即(t,x)ut(x)(t, x) \mapsto u_{t}(x))是一个时间依赖的速度场,定义了一个流ψt\psi_{t}(见第3章)。设T=Cc(Rd)\mathcal{T}=C_{c}^{\infty}(\mathbb{R}^{d})为具有紧支撑的无穷可微光滑函数空间。则生成器可计算如下:

[Ltf](x)=limh0E[f(Xt+h)Xt=x]f(x)h=(i)limh0E[f(Xt+hut(Xt)+o(h))Xt=x]f(x)h=(ii)limh0E[f(Xt)+hf(Xt)Tut(Xt)+o(h)Xt=x]f(x)h=limh0f(x)+hf(x)Tut(x)+o(h)f(x)h=f(x)Tut(x), \begin{aligned} \left[\mathcal{L}_{t} f\right](x) & = \lim _{h \to 0} \frac{\mathbb{E}\left[f\left(X_{t+h}\right) | X_{t}=x\right]-f(x)}{h} \\ & \stackrel{(i)}{=} \lim _{h \to 0} \frac{\mathbb{E}\left[f\left(X_{t}+h u_{t}\left(X_{t}\right)+o(h)\right) | X_{t}=x\right]-f(x)}{h} \\ & \stackrel{(ii)}{=} \lim _{h \to 0} \frac{\mathbb{E}\left[f\left(X_{t}\right)+h \nabla f\left(X_{t}\right)^{T} u_{t}\left(X_{t}\right)+o(h) | X_{t}=x\right]-f(x)}{h} \\ & = \lim _{h \to 0} \frac{f(x)+h \nabla f(x)^{T} u_{t}(x)+o(h)-f(x)}{h} \\ & = \nabla f(x)^{T} u_{t}(x), \end{aligned}

其中,(i)来自流的欧拉近似;(ii)来自ffXtX_{t}附近的一阶泰勒展开。因此,流的生成器为:

Ltf(x)=f(x)Tut(x) \mathcal{L}_{t} f(x)=\nabla f(x)^{T} u_{t}(x)

S=RdS=\mathbb{R}^{d}σt:[0,1]×RdRd×d\sigma_{t}: [0, 1] ×\mathbb{R}^{d} \to \mathbb{R}^{d×d}(即(t,x)σt(x)(t, x) \mapsto \sigma_{t}(x))是一个时间依赖的函数,映射到对称半正定矩阵σt\sigma_{t},且映射过程连续。扩散系数为σt\sigma_{t}的扩散过程由随机微分方程(SDE)dXt=σt(Xt)dWtd X_{t}=\sigma_{t}(X_{t}) d W_{t}定义,其中WtW_{t}是维纳过程(Wiener process)(Øksendal, 2003)。该过程可通过无穷小采样过程近似:

Xt+h=Xt+hσt(Xt)ϵt,ϵtN(0,I) X_{t+h}=X_{t}+\sqrt{h} \sigma_{t}\left(X_{t}\right) \epsilon_{t}, \quad \epsilon_{t} \sim \mathcal{N}(0, I)

T=Cc(Rd)\mathcal{T}=C_{c}^{\infty}(\mathbb{R}^{d}),则生成器可计算如下:

[Ltf](x)=limh0E[f(Xt+hσt(Xt)ϵt+o(h))Xt=x]f(x)h=(i)limh0Eϵt[f(x)+f(x)Thσt(x)ϵt+12h[σt(x)ϵt]T2f(x)[σt(x)ϵt]+o(h)f(x)]h=limh0f(x)Thσt(x)Eϵt[ϵt]+12hEϵt[[σt(x)ϵt]T2f(x)[σt(x)ϵt]]+o(h)h=12Eϵt[ϵtT[σt(x)]T2f(x)[σt(x)]ϵt]=(ii)12tr(σt(x)T2f(x)σt(x))=(iii)12tr(σt(x)σt(x)T2f(x))=(iv)12σt2(x)2f(x), \begin{aligned} \left[\mathcal{L}_{t} f\right](x) & = \lim _{h \to 0} \frac{\mathbb{E}\left[f\left(X_{t}+\sqrt{h} \sigma_{t}\left(X_{t}\right) \epsilon_{t}+o(h)\right) | X_{t}=x\right]-f(x)}{h} \\ & \stackrel{(i)}{=} \lim _{h \to 0} \frac{\mathbb{E}_{\epsilon_{t}}\left[ f(x)+\nabla f(x)^{T} \sqrt{h} \sigma_{t}(x) \epsilon_{t}+\frac{1}{2} h\left[\sigma_{t}(x) \epsilon_{t}\right]^{T} \nabla^{2} f(x)\left[\sigma_{t}(x) \epsilon_{t}\right]+o(h)-f(x)\right]}{h} \\ & = \lim _{h \to 0} \frac{\nabla f(x)^{T} \sqrt{h} \sigma_{t}(x) \mathbb{E}_{\epsilon_{t}}\left[ \epsilon_{t}\right] + \frac{1}{2} h \mathbb{E}_{\epsilon_{t}}\left[ \left[\sigma_{t}(x) \epsilon_{t}\right]^{T} \nabla^{2} f(x)\left[\sigma_{t}(x) \epsilon_{t}\right] \right] + o(h)}{h} \\ & = \frac{1}{2} \mathbb{E}_{\epsilon_{t}}\left[ \epsilon_{t}^{T}\left[\sigma_{t}(x)\right]^{T} \nabla^{2} f(x)\left[\sigma_{t}(x)\right] \epsilon_{t}\right] \\ & \stackrel{(ii)}{=} \frac{1}{2} tr\left(\sigma_{t}(x)^{T} \nabla^{2} f(x) \sigma_{t}(x)\right) \\ & \stackrel{(iii)}{=} \frac{1}{2} tr\left(\sigma_{t}(x) \sigma_{t}(x)^{T} \nabla^{2} f(x)\right) \\ & \stackrel{(iv)}{=} \frac{1}{2} \sigma_{t}^{2}(x) \cdot \nabla^{2} f(x), \end{aligned}

其中,(i)使用了二阶泰勒展开(由于E[hϵt2]h\mathbb{E}[\left\|\sqrt{h} \epsilon_{t}\right\|^{2}] \propto h,因此需要二阶展开);(ii)使用了矩阵迹的性质tr(A)=Eϵt[ϵtTAϵt]tr(A)=\mathbb{E}_{\epsilon_{t}}[\epsilon_{t}^{T} A \epsilon_{t}](对ARd×dA \in \mathbb{R}^{d ×d});(iii)使用了迹的循环性质;(iv)利用了σt\sigma_{t}的对称性。此外,我们使用AB:=tr(ATB)A \cdot B:=tr(A^{T} B)表示矩阵A,BRd×dA, B \in \mathbb{R}^{d ×d}的矩阵内积。因此,扩散过程的生成器为:

Ltf(x)=12σt2(x)2f(x) \mathcal{L}_{t} f(x)=\frac{1}{2} \sigma_{t}^{2}(x) \cdot \nabla^{2} f(x)

接下来,设SS为任意状态空间,考虑跳跃过程。跳跃过程由时间依赖的核Qt(dy,x)Q_{t}(d y, x)定义,即对于每个0t10 ≤t ≤1和每个xSx \in SQt(dy,x)Q_{t}(d y, x)S{x}S \setminus \{x\}上的正测度。跳跃过程的核心思想是:分配给S{x}S \setminus \{x\}的总测度

λt(x)=Qt(dy,x) \lambda _{t}(x)=\int Q_{t}(dy,x)

表示跳跃强度(即无穷小时间内发生跳跃的可能性)。此外,若λt(x)>0\lambda_{t}(x)>0,则可通过归一化QtQ_{t}得到跳跃分布的概率核:

Jt(dy,x)=Qt(dy,x)λt(x) J_{t}( d y, x)=\frac{Q_{t}( d y, x)}{\lambda_{t}(x)}

跳跃过程可通过如下无穷小采样过程近似:

Xt+h={Xt 概率为 1hλt(Xt)+o(h)Jt(dy,Xt) 概率为 hλt(Xt)+o(h) X_{t+h}= \begin{cases}X_{t} & \text{ 概率为 } 1-h \lambda_{t}\left(X_{t}\right)+o(h) \\ \sim J_{t}\left( d y, X_{t}\right) & \text{ 概率为 } h \lambda_{t}\left(X_{t}\right)+o(h)\end{cases}

关于跳跃过程的严格处理,可参考(Davis, 1984)。其生成器为:

Ltf(x)=limh0E[f(Xt+h)f(Xt)Xt=x]h=limh0E[f(Xt+h)f(Xt)Xt=x, 在 [t,t+h) 内跳跃]P[ 在 [t,t+h) 内跳跃Xt=x]h+limh0E[f(Xt+h)f(Xt)Xt=x, 在 [t,t+h) 内不跳跃]P[ 在 [t,t+h) 内不跳跃Xt=x]h=limh0EYJt(dy,x)[f(Y)f(x)]hλt(x)h=λt(x)EYJt(dy,x)[f(Y)f(x)]=(f(y)f(x))Qt(dy,x), \begin{aligned} \mathcal{L}_{t} f(x) & = \lim _{h \to 0} \frac{\mathbb{E}\left[f\left(X_{t+h}\right)-f\left(X_{t}\right) | X_{t}=x\right]}{h} \\ & = \lim _{h \to 0} \frac{\mathbb{E}\left[f\left(X_{t+h}\right)-f\left(X_{t}\right) | X_{t}=x, \text{ 在 } [t, t+h) \text{ 内跳跃}\right] \mathbb{P}\left[ \text{ 在 } [t, t+h) \text{ 内跳跃} | X_{t}=x\right]}{h} \\ & \quad + \lim _{h \to 0} \frac{\mathbb{E}\left[f\left(X_{t+h}\right)-f\left(X_{t}\right) | X_{t}=x, \text{ 在 } [t, t+h) \text{ 内不跳跃}\right] \mathbb{P}\left[ \text{ 在 } [t, t+h) \text{ 内不跳跃} | X_{t}=x\right]}{h} \\ & = \lim _{h \to 0} \frac{\mathbb{E}_{Y \sim J_{t}( d y, x)}[f(Y)-f(x)] h \lambda_{t}(x)}{h} \\ & = \lambda_{t}(x) \mathbb{E}_{Y \sim J_{t}( d y, x)}[f(Y)-f(x)] \\ & = \int (f(y)-f(x)) Q_{t}(dy,x), \end{aligned}

其中,我们利用了如下事实:若XtX_{t}[t,t+h][t, t+h]内不跳跃,则Xt+h=XtX_{t+h}=X_{t}。因此,跳跃过程的生成器为:

Ltf(x)=(f(y)f(x))Qt(dy,x)=λt(x)EYJt(dy,x)[f(Y)f(x)] \mathcal{L}_{t} f(x)=\int (f(y)-f(x)) Q_{t}(dy,x)=\lambda _{t}(x)\mathbb{E}_{Y\sim J_{t}(dy,x)}[f(Y)-f(x)]

考虑有限离散状态空间SS(即S<|S|<\infty)上的连续时间马尔可夫链XtX_{t}。实际上,这是离散状态空间上的一种特殊参数化跳跃过程。为了说明这一点,考虑离散状态空间SS上由矩阵QtR0S×SQ_{t} \in \mathbb{R}_{≥0}^{S ×S}定义的标准跳跃核,结合方程(8.36),其生成器为:

Ltf(x)=yS[f(y)f(x)]Qt(y,x)=yx[f(y)f(x)]Qt(y,x)xS,fRS \mathcal{L}_{t} f(x)=\sum_{y \in \mathcal{S}}[f(y)-f(x)] Q_{t}(y, x)=\sum_{y \neq x}[f(y)-f(x)] Q_{t}(y, x) \quad \forall x \in \mathcal{S}, f \in \mathbb{R}^{\mathcal{S}}

Qt(x,x)Q_{t}(x, x)的值不影响生成器,且是欠定的。因此,一个自然的约定是通过速率对离散状态空间上的跳跃核进行重新参数化:

ut(y,x)={Qt(y,x) 若 yxzxQt(z,x) 若 y=x u_{t}(y, x)= \begin{cases}Q_{t}(y, x) & \text{ 若 } y \neq x \\ -\sum_{z \neq x} Q_{t}(z, x) & \text{ 若 } y=x\end{cases}

通过这种参数化,我们从第6章中恢复了满足速率条件(6.4)的速率ut(y,x)u_{t}(y, x)。因此,这表明离散空间上的跳跃模型与连续时间马尔可夫链(CTMC)模型(第6章)是一致的。将此代入方程(8.37),可得连续时间马尔可夫链(CTMC)的生成器为:

Ltf(x)=ySf(y)ut(y,x)=fTut \mathcal{L}_{t} f(x)=\sum_{y \in \mathcal{S}} f(y) u_{t}(y, x)=f^{T} u_{t}

其中,我们将f=(f(x))xSf=(f(x))_{x \in S}视为列向量,将utRS×Su_{t} \in \mathbb{R}^{S ×S}视为矩阵。因此,生成器函数本质上是左侧的向量乘法。

接下来,考虑第5章中介绍的黎曼流形S=MS=M上的流。流ψ:[0,1]×MM\psi:[0,1] ×M \to M通过向量场u:[0,1]×MTMu:[0,1] ×M \to T M由方程(3.19)中的常微分方程(ODE)定义。设ψts(x)=ψt(ψs1(x))\psi_{t | s}(x)=\psi_{t}(\psi_{s}^{-1}(x))表示从时间ss到时间tt的转移(如(3.17)所示)。则对于光滑函数f:MRf: M \to \mathbb{R},黎曼流的生成器为:

Ltf(x)=limh0f(ψt+ht(x))f(x)h=<f(x),ddhh=0ψt+ht(x)>g=<f(x),ut(x)>g \mathcal{L}_{t} f(x)=\lim_{h\to 0}\frac {f(\psi _{t+h|t}(x))-f(x)}{h}=\left< \nabla f(x),\frac {d}{dh}\bigg |_{h=0}\psi _{t+h| t}(x)\right> _{g}=\left< \nabla f(x),u_{t}(x)\right> _{g}

其中,<,>g<\cdot, \cdot>_{g}表示定义黎曼度量gg的点积,f\nabla f表示ff关于gg的梯度。实际上,该生成器与函数的李导数(Lie derivative)一致(Jost, 2008),这是微分几何中的一个基本概念。

对于S=RdS=\mathbb{R}^{d}上的流匹配(Flow Matching),连续性方程(见(3.25))是核心数学方程,它使我们能够构建生成期望概率路径的速度场(见3.5节)。在本节中,我们推导连续时间马尔可夫过程(CTMP)的对应(更通用)方程。设XtX_{t}是具有生成器Lt\mathcal{L}_{t}的连续时间马尔可夫过程(CTMP),且Xt ptX_{t} ~ p_{t},则有:

\[ \frac{d}{dt}\left< p_{t},f\right> =\frac{d}{dh}\bigg | _{h=0}\left< p_{t+h},f\right> =\left. \frac{d}{dh}\bigg | _{h=0}\left< p_{t},\left< p_{t+h|t},f\right> \right> =\bigg < p_{t},\frac{d}{dh}\bigg |_{h=0}\left< p_{t+h|t},f\right> \bigg> =\left< p_{t},\mathcal{L}_{t}f\right> \]

其中,我们利用了<pt,>< p_{t}, \cdot>运算的线性性质来交换导数,并且通过塔性质(Tower Property)可知<pt,<pt+ht,f>>=<pt+h,f>< p_{t},< p_{t+h | t}, f>>=< p_{t+h}, f>。这表明:给定马尔可夫过程XtX_{t}的生成器Lt\mathcal{L}_{t},我们可以通过其无穷小变化恢复其边际概率,即得到科尔莫戈罗夫前向方程(KFE):

ddt<pt,f>=<pt,Ltf>对所有 fT \frac{d}{d t}\left< p_{t}, f\right>=\left< p_{t}, \mathcal{L}_{t} f\right> \quad \text{对所有 } f \in \mathcal{T}

方程(8.40)中的科尔莫戈罗夫前向方程(KFE)描述了测试函数ff的期望演化。这对于处理不存在密度的概率分布是必要的。若密度存在,则可使用更易理解的科尔莫戈罗夫前向方程(KFE)形式,直接描述概率密度的变化。为了呈现这一形式,我们引入伴随生成器Lt\mathcal{L}_{t}^{*},它作用于关于参考测度ν\nu的概率密度pt(x)p_{t}(x),即Ltpt(x)\mathcal{L}_{t}^{*} p_{t}(x)通过以下恒等式隐式定义:

pt(x)Ltf(x)ν(dx)=Ltpt(x)f(x)ν(dx)fT \int p_{t}(x) \mathcal{L}_{t} f(x) \nu(d x)=\int \mathcal{L}_{t}^{*} p_{t}(x) f(x) \nu(d x) \quad \forall f \in \mathcal{T}

此外,我们需要假设ptp_{t}关于时间tt是可微的。现在,将(8.41)应用于科尔莫戈罗夫前向方程(KFE)(8.40),可得:

ddtpt(x)f(x)ν(dx)=ddtpt(x)f(x)ν(dx)=ddt<pt,f>=<pt,Ltf>=pt(x)Ltf(x)ν(dx)=Ltpt(x)f(x)ν(dx) \begin{aligned} \int \frac{d}{d t} p_{t}(x) f(x) \nu(d x) & =\frac{d}{d t} \int p_{t}(x) f(x) \nu(d x) \\ & =\frac{d}{d t}\left< p_{t}, f\right> \\ & =\left< p_{t}, \mathcal{L}_{t} f\right> \\ & =\int p_{t}(x) \mathcal{L}_{t} f(x) \nu(d x) \\ & =\int \mathcal{L}_{t}^{*} p_{t}(x) f(x) \nu(d x) \end{aligned}

由于这一等式对所有测试函数ff都成立,结合方程(8.5),我们可以得出结论:这等价于伴随科尔莫戈罗夫前向方程(KFE):

ddtpt(x)=Ltpt(x)对所有 xS \frac{d}{d t} p_{t}(x)=\mathcal{L}_{t}^{*} p_{t}(x) \quad \text{对所有 } x \in \mathcal{S}

正如我们将在以下例子中推导的,伴随科尔莫戈罗夫前向方程(KFE)推广了许多用于开发生成模型的著名方程,例如连续性方程或福克-普朗克方程(Song et al., 2021; Lipman et al., 2022)(见表2)。只要概率密度存在,我们就使用伴随科尔莫戈罗夫前向方程(KFE)——以避免使用测试函数,直接处理概率密度。我们将研究结果总结如下:

定理17(一般质量守恒):设Lt\mathcal{L}_{t}(Xt)0t1(X_{t})_{0 ≤t ≤1}的生成器。通俗地说,以下条件等价:

  1. ptp_{t}Lt\mathcal{L}_{t}满足科尔莫戈罗夫前向方程(KFE)(8.40)。
  2. dptdν(x)\frac{d p_{t}}{d \nu}(x)Lt\mathcal{L}_{t}满足伴随科尔莫戈罗夫前向方程(KFE)(8.47)。
  3. Lt\mathcal{L}_{t}以方程(8.10)的意义生成ptp_{t}

严格来说,当dptdν\frac{d p_{t}}{d \nu}存在且关于时间tt连续可微时,(1)和(2)等价。此外,对于任意状态空间,(3)蕴含(1)。存在一些弱正则性假设可确保(1)蕴含(3)(附录A.3列出了相关假设)。在本文中,我们假设这些假设成立,即假设(3)蕴含(1)。

据我们所知,目前尚无针对抽象一般状态空间的已知结果能确保定理17中条件(3)蕴含(1)。因此,我们在此直接假设这一结论成立。对于机器学习研究人员而言,这一假设在所有感兴趣的状态空间中均成立,因此无需担忧(见附录A.3)。

S=RdS=\mathbb{R}^{d},假设ptp_{t}关于勒贝格测度存在密度pt(x)p_{t}(x),且该密度有界且连续可微。则可通过以下方式计算伴随生成器Lt\mathcal{L}_{t}^{*}

<pt,Ltf>=Expt[Ltf(x)]=Ltf(x)pt(x)dx=(i)f(x)Tut(x)pt(x)dx=(ii)f(x)[div(ptut)(x)]=:Ltpt(x)dx=f(x)Ltpt(x)dx \begin{aligned} \left< p_{t}, \mathcal{L}_{t} f\right> & =\mathbb{E}_{x \sim p_{t}}\left[\mathcal{L}_{t} f(x)\right] \\ & =\int \mathcal{L}_{t} f(x) p_{t}(x) d x \\ & \stackrel{(i)}{=} \int \nabla f(x)^{T} u_{t}(x) p_{t}(x) d x \\ & \stackrel{(ii)}{=} \int f(x) \underbrace{\left[-div\left(p_{t} u_{t}\right)(x)\right]}_{=: \mathcal{L}_{t}^{*} p_{t}(x)} d x \\ & =\int f(x) \mathcal{L}_{t}^{*} p_{t}(x) d x \end{aligned}

其中,(i)来自方程(8.15);(ii)来自分部积分。上述推导表明,伴随生成器为Ltpt=div(ptut)(x)\mathcal{L}_{t}^{*} p_{t}=-div(p_{t} u_{t})(x)(因为它满足方程(8.41)中的条件)。利用伴随科尔莫戈罗夫前向方程(KFE),我们恢复了连续性方程(见方程(3.25)):

ddtpt(x)=div(ptut)(x) \frac{d}{d t} p_{t}(x)=-div\left(p_{t} u_{t}\right)(x)

这是我们在3.4节中详细研究的方程。

S=RdS=\mathbb{R}^{d},假设ptp_{t}关于勒贝格测度存在密度pt(x)p_{t}(x),且该密度有界且连续可微。则可通过以下方式计算伴随生成器Lt\mathcal{L}_{t}^{*}

<pt,Ltf>=Expt[Ltf(x)]=Ltf(x)pt(x)dx=(i)12σt2(x)2f(x)pt(x)dx=(ii)f(x)122(ptσt2)(x)=:Ltpt(x)dx=f(x)Ltpt(x)dx \begin{aligned} \left< p_{t}, \mathcal{L}_{t} f\right> & =\mathbb{E}_{x \sim p_{t}}\left[\mathcal{L}_{t} f(x)\right] \\ & =\int \mathcal{L}_{t} f(x) p_{t}(x) d x \\ & \stackrel{(i)}{=} \frac{1}{2} \int \sigma_{t}^{2}(x) \cdot \nabla^{2} f(x) p_{t}(x) d x \\ & \stackrel{(ii)}{=} \int f(x) \underbrace{\frac{1}{2} \nabla^{2} \cdot\left(p_{t} \sigma_{t}^{2}\right)(x)}_{=: \mathcal{L}_{t}^{*} p_{t}(x)} d x \\ & =\int f(x) \mathcal{L}_{t}^{*} p_{t}(x) d x \end{aligned}

其中,(i)来自方程(8.26);(ii)来自两次分部积分。上述推导表明,伴随生成器为Ltpt=122(ptσt2)(x)\mathcal{L}_{t}^{*} p_{t}=\frac{1}{2} \nabla^{2} \cdot(p_{t} \sigma_{t}^{2})(x)(因为它满足方程(8.41)中的条件)。伴随科尔莫戈罗夫前向方程(KFE)进而恢复了著名的福克-普朗克方程(Fokker-Planck Equation):

ddtpt(x)=122(ptσt2)(x) \frac{d}{dt}p_{t}(x)=\frac{1}{2}\nabla ^{2}\cdot (p_{t}\sigma _{t}^{2})(x)

假设ptp_{t}关于勒贝格测度存在密度pt(x)p_{t}(x),且该密度有界且连续可微。假设跳跃测度Qt(dy,x)Q_{t}(d y, x)由核函数Qt:S×SR0Q_{t}: S ×S \to \mathbb{R}_{≥0}(即(y,x)Qt(y,x)(y, x) \mapsto Q_{t}(y, x))表示,使得:

f(y)Qt(dy,x)=f(y)Qt(y,x)ν(dy)对所有可积函数 f:SR \int f(y) Q_{t}( d y, x)=\int f(y) Q_{t}(y, x) \nu(d y) \quad \text{对所有可积函数 } f: \mathcal{S} \to \mathbb{R}

则可按以下方式推导伴随生成器:

<pt,Ltf>=(f(y)f(x))Qt(y,x)ν(dy)pt(x)ν(dx)=f(y)Qt(y,x)pt(x)ν(dy)ν(dx)f(x)Qt(y,x)pt(x)ν(dy)ν(dx)=(i)f(x)Qt(x,y)pt(y)ν(dy)ν(dx)f(x)Qt(y,x)pt(x)ν(dy)ν(dx)=f(x)[Qt(x,y)pt(y)Qt(y,x)pt(x)ν(dy)]=:Ltpt(x)ν(dx)=f(x)Ltpt(x)ν(dx) \begin{aligned} \left< p_{t}, \mathcal{L}_{t} f\right> & =\iint(f(y)-f(x)) Q_{t}(y, x) \nu(d y) p_{t}(x) \nu(d x) \\ & =\iint f(y) Q_{t}(y, x) p_{t}(x) \nu(d y) \nu(d x)-\iint f(x) Q_{t}(y, x) p_{t}(x) \nu(d y) \nu(d x) \\ & \stackrel{(i)}{=} \iint f(x) Q_{t}(x, y) p_{t}(y) \nu(d y) \nu(d x)-\iint f(x) Q_{t}(y, x) p_{t}(x) \nu(d y) \nu(d x) \\ & =\int f(x) \underbrace{\left[\int Q_{t}(x, y) p_{t}(y)-Q_{t}(y, x) p_{t}(x) \nu(d y)\right]}_{=: \mathcal{L}_{t}^{*} p_{t}(x)} \nu(d x) \\ & =\int f(x) \mathcal{L}_{t}^{*} p_{t}(x) \nu(d x) \end{aligned}

其中,(i)仅交换了变量xxyy。上述推导表明,上述定义的Lt\mathcal{L}_{t}^{*}满足方程(8.41)中的条件,确实描述了跳跃过程的伴随生成器。由此,伴随科尔莫戈罗夫前向方程(KFE)成为跳跃连续性方程(Jump Continuity Equation):

ddtpt(x)=[Qt(x,y)pt(y)Qt(y,x)pt(x)]ν(dy)=λt(y)Jt(x,y)pt(y)ν(dy)λt(x)pt(x) \frac{d}{d t} p_{t}(x)=\int\left[Q_{t}(x, y) p_{t}(y)-Q_{t}(y, x) p_{t}(x)\right] \nu(d y)=\int \lambda_{t}(y) J_{t}(x, y) p_{t}(y) \nu(d y)-\lambda_{t}(x) p_{t}(x)

其中,我们利用了分解式Qt(y,x)=λt(x)Jt(y,x)Q_{t}(y, x)=\lambda_{t}(x) J_{t}(y, x),将其分解为跳跃强度λt\lambda_{t}和跳跃分布JtJ_{t}(见方程(8.28))。

对于离散状态空间SS,生成器由方程(8.38)中的fTutf^{T} u_{t}给出,则有:

<pt,Ltf>=pt(x)Ltf(x)ν(dx)=xSpt(x)ySut(y,x)f(y)=yS[xSpt(x)ut(y,x)]=:Ltpt(y)f(y)=Ltpt(y)f(y)ν(dy) \begin{aligned} \left< p_{t}, \mathcal{L}_{t} f\right> & =\int p_{t}(x) \mathcal{L}_{t} f(x) \nu(d x) \\ & =\sum_{x \in \mathcal{S}} p_{t}(x) \sum_{y \in \mathcal{S}} u_{t}(y, x) f(y) \\ & =\sum_{y \in \mathcal{S}} \underbrace{\left[\sum_{x \in \mathcal{S}} p_{t}(x) u_{t}(y, x)\right]}_{=: \mathcal{L}_{t}^{*} p_{t}(y)} f(y) \\ & =\int \mathcal{L}_{t}^{*} p_{t}(y) f(y) \nu(d y) \end{aligned}

其中,此处的ν\nu仅表示计数测度。因此,伴随科尔莫戈罗夫前向方程(KFE)可简单表示为:

ddtpt(x)=ySut(x,y)pt(y) \frac{d}{d t} p_{t}(x)=\sum_{y \in \mathcal{S}} u_{t}(x, y) p_{t}(y)

这与方程(6.8)中推导的连续时间马尔可夫链(CTMC)的科尔莫戈罗夫前向方程(KFE)一致(为了与本节推导保持一致,交换了xxyy的位置)。

生成器使我们能够表征可能的马尔可夫过程空间。具体而言,以下结果不仅能表征一类广泛的连续时间马尔可夫过程(CTMP)生成模型,还能对S=RdS=\mathbb{R}^{d}或离散SS的设计空间进行完整表征。

定理18(生成器的通用表征):在弱正则性假设下,费勒过程(Feller process)Xt(0t1)X_{t}(0 ≤t ≤1)的生成器具有以下形式:

  1. 离散状态空间(S<|S|<\infty):生成器由速率转移矩阵utu_{t}给出,对应的马尔可夫过程为连续时间马尔可夫链(CTMC)。
  2. 欧几里得空间(S=RdS=\mathbb{R}^{d}):生成器可表示为表2中描述的各分量之和,即: Ltf(x)=f(x)Tut(x)流(Flow)+122f(x)σt2(x)扩散过程(Diffusion)+[f(y)f(x)]Qt(dy,x)跳跃过程(Jump) \mathcal{L}_{t} f(x)=\underbrace{\nabla f(x)^{T} u_{t}(x)}_{\text{流(Flow)}}+\underbrace{\frac{1}{2} \nabla^{2} f(x) \cdot \sigma_{t}^{2}(x)}_{\text{扩散过程(Diffusion)}}+\underbrace{\int[f(y)-f(x)] Q_{t}( d y, x)}_{\text{跳跃过程(Jump)}} 其中,u:[0,1]×RdRdu:[0,1] ×\mathbb{R}^{d} \to \mathbb{R}^{d}是速度场,σ:[0,1]×RdSd++\sigma:[0,1] ×\mathbb{R}^{d} \to S_{d}^{++}是扩散系数(Sd++S_{d}^{++}表示正定半正定矩阵),Qt(dy;x)Q_{t}(d y ; x)是跳跃测度;2f(x)\nabla^{2} f(x)表示ff的黑塞矩阵(Hessian),2f(x)σt2(x)\nabla^{2} f(x) \cdot \sigma_{t}^{2}(x)表示弗罗贝尼乌斯内积(Frobenius inner product)。

该证明改编自数学文献中的已知结果(Courrege, 1965; von Waldenfels, 1965),详细证明可参见(Holderrieth et al., 2024)。

在本章中,我们将介绍生成器匹配(Generator Matching, GM)(Holderrieth et al., 2024)——一种适用于(1)任意数据模态和(2)通用马尔可夫过程的生成建模框架。GM 统一了近年来开发的绝大多数生成模型,包括扩散模型、“离散扩散”模型以及前几节中描述的流匹配(FM)变体。为引入 GM,我们在第 8 章中定义了基于马尔可夫过程生成器构建的连续时间马尔可夫过程(CTMP)生成模型。GM 提出了一种可扩展的生成器训练算法——这也是该方法名称的由来。除了提供统一框架外,GM 还催生了多种新型模型,允许组合不同类别的模型,并能为任意模态(包括跨多种数据模态的模型)构建生成模型。

与前文一致,我们的目标是将来自分布 pp 的样本 X0pX_0 \sim p 转换为来自目标分布 qq 的样本 X1qX_1 \sim q,其中 X0X_0X1X_1 是两个取值于状态空间 SS 的随机变量。源样本和目标样本可通过独立耦合 (X0,X1)pq(X_0, X_1) \sim p \otimes q(乘积分布)建立关联,也可通过一般的概率质量函数(PMF)耦合 π0,1\pi_{0,1}(即定义在 S×SS \times S 上、边缘分布为 π0=p\pi_0 = pπ1=q\pi_1 = q 的分布)建立关联。与前文唯一的区别在于,此处的 SS 是通用状态空间,而 ppqq 可以是任意概率测度。

生成器匹配(GM)流程的下一步,与前文一致,是定义一条插值于 ppqq 的概率路径 ptp_t。沿用 4.4 节的思路,我们采用条件概率路径 ptZ(dxz)p_{t|Z}(dx|z),即一组依赖于潜在状态 zZz \in Z 的时变概率测度。给定 ZZ 上的分布 pZp_Z,我们通过分层采样过程定义对应的边际概率路径 pt(dx)p_t(dx)

ZpZ,XtptZ(dxz)    Xtpt(dx)Z \sim p_Z, X_t \sim p_{t|Z}(dx|z) \implies X_t \sim p_t(dx)

也就是说,要从 ptp_t 中采样,需先从 pZp_Z 中采样 ZZ,再从 ptZ(dxz)p_{t|Z}(dx|z) 中采样 XtX_t。与前文相同,边际概率路径需满足边界约束 p0=pp_0 = pp1=qp_1 = q

我们已介绍过两种常见的构造方式(当 Z=SZ = SpZ=qp_Z = q 时):

  1. 适用于 S=RdS = \mathbb{R}^d 的仿射条件流(用于连续流匹配;见第 4 章),定义为: Zq,X0p,Xt=σtX0+αtZ    Xtpt(dx)Z \sim q, X_0 \sim p, X_t = \sigma_t X_0 + \alpha_t Z \implies X_t \sim p_t(dx) 其中 αt,σtR0\alpha_t, \sigma_t \in \mathbb{R}_{\geq 0} 是可微函数,满足 α0=σ1=0\alpha_0 = \sigma_1 = 0α1=σ0=1\alpha_1 = \sigma_0 = 1
  2. 适用于任意 SS 的混合路径(用于离散状态空间的离散流匹配,见方程(7.22)): Zq,X0p,Xt{Z概率为 κtX0概率为 (1κt)    Xtpt(dx)Z \sim q, X_0 \sim p, X_t \sim \begin{cases} Z & \text{概率为 } \kappa_t \\ X_0 & \text{概率为 } (1 - \kappa_t) \end{cases} \implies X_t \sim p_t(dx) 其中 κtR0\kappa_t \in \mathbb{R}_{\geq 0} 是可微函数,满足 κ0=0\kappa_0 = 0κ1=1\kappa_1 = 10κt10 \leq \kappa_t \leq 1

不难看出,仿射条件概率路径和混合概率路径均能插值于 ppqq,即满足 p0=pp_0 = pp1=qp_1 = q

给定概率路径 ptp_t,我们的目标是构建一个由生成器 Lt\mathcal{L}_t 指定的连续时间马尔可夫过程(CTMP)模型,使其生成该概率路径(见方程(8.10))。为了通过神经网络实现这一目标,我们首先需要说明如何用带参数 θ\theta 的神经网络 Ltθ\mathcal{L}_t^\theta 对生成器 Lt\mathcal{L}_t 进行参数化,具体如下。

T\mathcal{T} 为测试函数族(见 8.2.1 节)。生成器 Lt\mathcal{L}_t 的线性参数化定义如下:对于每个 xSx \in S,需满足:

  1. 存在凸闭集 ΩxVx\Omega_x \subset V_xVxV_x 是带有内积 ,x\langle \cdot, \cdot \rangle_x 的向量空间);
  2. 存在线性算子 K:TC(S;Vx)\mathcal{K}: \mathcal{T} \to C(S; V_x),使得所有待考虑的生成器 Lt\mathcal{L}_t 均可表示为: Ltf(x)=Kf(x),Ft(x)x \mathcal{L}_t f(x) = \langle \mathcal{K} f(x), F_t(x) \rangle_x 其中函数 FtF_t 满足对所有 xSx \in SFt(x)ΩxF_t(x) \in \Omega_x。关键在于,算子 K\mathcal{K} 不能依赖于 Lt\mathcal{L}_t——即仅需学习 FtF_t。由此得到:

参数化生成器Ltθf(x)=Kf(x),Ftθ(x)x\mathcal{L}_t^\theta f(x) = \langle \mathcal{K} f(x), F_t^\theta(x) \rangle_x,其中 FtθF_t^\theta 是带参数 θ\theta 的神经网络,且 FtθF_t^\thetaxSx \in S 映射到 Ftθ(x)ΩxF_t^\theta(x) \in \Omega_x

下面通过多个示例具体说明这一定义:

S=RdS = \mathbb{R}^dΩx=Rd=Vx\Omega_x = \mathbb{R}^d = V_x。考虑所有流,其生成器族由下式给出(见方程(8.15)):

Ltf=fTut,ut:RdRd \mathcal{L}_t f = \nabla f^T u_t, \quad u_t: \mathbb{R}^d \to \mathbb{R}^d

Kf=f\mathcal{K} f = \nabla fFt=utF_t = u_t,即可恢复方程(9.3)的形式。这为通过向量场对流生成器进行线性参数化提供了自然方式。

S=RdS = \mathbb{R}^dΩx=Sd++Rd×d=Vx\Omega_x = S_{d}^{++} \subset \mathbb{R}^{d \times d} = V_x(其中 Sd++S_{d}^{++} 表示所有半正定矩阵的集合)。扩散过程的生成器由下式给出(见方程(8.26)):

Ltf=2fσt2,σt:RdSd++ \mathcal{L}_t f = \nabla^2 f \cdot \sigma_t^2, \quad \sigma_t: \mathbb{R}^d \to S_{d}^{++}

Kf=2f\mathcal{K} f = \nabla^2 fFt=σt2F_t = \sigma_t^2,即可恢复方程(9.3)的形式。这为扩散生成器的线性参数化提供了自然方式。

Ωx={a:S{x}R0a 可积}L2(S{x})=Vx\Omega_x = \{a: S \setminus \{x\} \to \mathbb{R}_{\geq 0} \mid a \text{ 可积}\} \subset L^2(S \setminus \{x\}) = V_x,内积定义为 a,bx=S{x}a(x)b(x)ν(dx)\langle a, b \rangle_x = \int_{S \setminus \{x\}} a(x) b(x) \nu(dx)。跳跃过程的生成器由下式给出(见方程(8.36)):

Ltf(x)=[f(y)f(x)]Qt(y,x)ν(dy)=Kf(x),Qt(;x)x \mathcal{L}_t f(x) = \int [f(y) - f(x)] Q_t(y, x) \nu(dy) = \langle \mathcal{K} f(x), Q_t(\cdot; x) \rangle_x

其中我们令 Kf(x)\mathcal{K} f(x) 为函数 yf(y)f(x)y \mapsto f(y) - f(x)。令 Ft=QtF_t = Q_t,即可恢复方程(9.3)的形式——实现对跳跃生成器的线性参数化。需注意,上述参数化仅适用于带有跳跃核 Qt(y,x)Q_t(y, x) 的跳跃过程,并非包含所有跳跃测度。

SS 为离散空间,utRS×Su_t \in \mathbb{R}^{S \times S} 是连续时间马尔可夫链的速率矩阵。与离散流匹配(见方程(7.5))类似,定义:

Ωx={vRSv(y)0 yx, 且 v(x)=yxv(y)}Vx=RS \Omega_x = \left\{ v \in \mathbb{R}^S \mid v(y) \geq 0 \ \forall y \neq x, \text{ 且 } v(x) = -\sum_{y \neq x} v(y) \right\} \subset V_x = \mathbb{R}^S

由方程(8.38)可知,对于 fRSf \in \mathbb{R}^S,生成器可表示为:

Ltf(x)=fTut(,x)=f,ut(,x)x \mathcal{L}_t f(x) = f^T u_t(\cdot, x) = \langle f, u_t(\cdot, x) \rangle_x

其中 Vx=RSV_x = \mathbb{R}^SKf=f\mathcal{K} f = f,x\langle \cdot, \cdot \rangle_x 是标准欧几里得内积。由此可恢复方程(9.3)的形式,为通过速率 utu_t 对连续时间马尔可夫链(CTMC)进行线性参数化提供了自然方式。

S=MS = M 为黎曼流形,考虑 5 节中介绍的流形上的流。由方程(8.39)可知,生成器可表示为:

Ltf(x)=f(x),ut(x)g \mathcal{L}_t f(x) = \langle \nabla f(x), u_t(x) \rangle_g

其中 utu_t 是时变光滑向量场 ut:[0,1]×MTMu_t: [0,1] \times M \to TM,且对所有 xMx \in Mut(x)TxMu_t(x) \in T_x M。令 Ωx=Vx=TxM\Omega_x = V_x = T_x MK=f\mathcal{K} = \nabla f(梯度算子),即可恢复方程(9.3)的形式。这为黎曼流生成器的线性参数化提供了自然方式。

本节将说明如何为边际概率路径寻找生成器。核心流程如下:我们可以先为条件概率路径 ptZ(dxz)p_{t|Z}(dx|z) 找到生成器(通常可通过解析方法),再利用这些生成器构造边际路径的生成器。具体来说,假设对于每个 zZz \in Z,我们找到了(条件)生成器 Ltz\mathcal{L}_t^z,使其生成 ptZ(dxz)p_{t|Z}(dx|z)——根据定理 17,这等价于满足科尔莫戈罗夫方程(KFE,方程(8.40)):

ddtptZ(z),f=ptZ(z),LtzffT \frac{d}{dt} \langle p_{t|Z}(\cdot|z), f \rangle = \langle p_{t|Z}(\cdot|z), \mathcal{L}_t^z f \rangle \quad \forall f \in \mathcal{T}

进一步假设我们找到了如下线性参数化(见方程(9.3)):

Ltzf(x)=Kf(x),Ft(xz)xzZ \mathcal{L}_t^z f(x) = \langle \mathcal{K} f(x), F_t(x|z) \rangle_x \quad z \in Z

其中函数 Ft(xz)ΩxVxF_t(x|z) \in \Omega_x \subset V_x。例如,Ft(xz)F_t(x|z) 可以是连续流匹配中的条件速度场(见 4.3 节)或离散流匹配中的条件速率(见方程(7.2))。这使我们能够得到边际路径生成器的公式:

定理 19(通用边际化技巧):边际概率路径 (pt)0t1(p_t)_{0 \leq t \leq 1} 由马尔可夫过程 XtX_t 生成,其生成器为:

Ltf(x)=EZpZt(x)[LtZf(x)] \mathcal{L}_t f(x) = \mathbb{E}_{Z \sim p_{Z|t}(\cdot|x)} \left[ \mathcal{L}_t^Z f(x) \right]

其中 pZt(dzx)p_{Z|t}(dz|x) 是后验分布(即给定 xxzz 的条件分布)。生成器 Lt\mathcal{L}_t 的线性参数化为:

Ft(x)=EZpZt(x)[Ft(xZ)] F_t(x) = \mathbb{E}_{Z \sim p_{Z|t}(\cdot|x)} \left[ F_t(x|Z) \right]

上述定理为我们提供了训练目标:用神经网络近似方程(9.13)中的 Lt\mathcal{L}_t。前几章中的边际化技巧(定理 3、定理 10、定理 14)都是该定理的特例。下面给出证明,并展示几个新的实例化场景。

证明:要证明 Lt\mathcal{L}_t 生成 ptp_t,需根据定理 17 证明其满足科尔莫戈罗夫方程(KFE)。设 pt+ht(x,z)p_{t+h|t}(\cdot|x, z)Ltz\mathcal{L}_t^z 的转移核,则:

ddtpt,f=limh01h(pt+h,fpt,f)=limh01h(EZpZ,Xpt+ht(Z)[f(X)]EZpZ,XptZ(Z)[f(X)])=limh01h(EZpZ,XptZ(Z),Xpt+ht(X,Z)[f(X)f(X)])=EXpt(EZpZt(X)(limh01h(EXpt+ht(X,Z)[f(X)f(X)])))=EXpt(EZpZt(X)[LtZf(X)])=pt,Ltf \begin{aligned} \frac{d}{dt} \langle p_t, f \rangle &= \lim_{h \to 0} \frac{1}{h} \left( \langle p_{t+h}, f \rangle - \langle p_t, f \rangle \right) \\ &= \lim_{h \to 0} \frac{1}{h} \left( \mathbb{E}_{Z \sim p_Z, X' \sim p_{t+h|t}(\cdot|Z)} [f(X')] - \mathbb{E}_{Z \sim p_Z, X \sim p_{t|Z}(\cdot|Z)} [f(X)] \right) \\ &= \lim_{h \to 0} \frac{1}{h} \left( \mathbb{E}_{Z \sim p_Z, X \sim p_{t|Z}(\cdot|Z), X' \sim p_{t+h|t}(\cdot|X, Z)} [f(X') - f(X)] \right) \\ &= \mathbb{E}_{X \sim p_t} \left( \mathbb{E}_{Z \sim p_{Z|t}(\cdot|X)} \left( \lim_{h \to 0} \frac{1}{h} \left( \mathbb{E}_{X' \sim p_{t+h|t}(\cdot|X, Z)} [f(X') - f(X)] \right) \right) \right) \\ &= \mathbb{E}_{X \sim p_t} \left( \mathbb{E}_{Z \sim p_{Z|t}(\cdot|X)} [\mathcal{L}_t^Z f(X)] \right) \\ &= \langle p_t, \mathcal{L}_t f \rangle \end{aligned}

关于 FtF_t 形式的证明如下:

EZpZt(X)[Ltzf(x)]=(9.12)EZpZt(X)(Kf(x),Ft(xz)x)=Kf(x),EZpZt(X)[Ft(xz)]x=Kf(x),Ft(x)x \begin{aligned} \mathbb{E}_{Z \sim p_{Z|t}(\cdot|X)} [\mathcal{L}_t^z f(x)] &\stackrel{(9.12)}{=} \mathbb{E}_{Z \sim p_{Z|t}(\cdot|X)} \left( \langle \mathcal{K} f(x), F_t(x|z) \rangle_x \right) \\ &= \langle \mathcal{K} f(x), \mathbb{E}_{Z \sim p_{Z|t}(\cdot|X)} [F_t(x|z)] \rangle_x \\ &= \langle \mathcal{K} f(x), F_t(x) \rangle_x \end{aligned}

其中我们利用内积的线性性质,将其与期望交换顺序。这表明 FtF_t 是边际生成器的线性参数化(见方程(9.3))。

SS 为任意状态空间,Qt(y,xz)Q_t(y, x|z) 是条件跳跃核(y,xSy, x \in SzZz \in Z),生成条件概率路径 ptZ(dxz)p_{t|Z}(dx|z)。利用跳跃核的线性参数化(见方程(9.7)),边际跳跃核:

Qt(y,x)=EZpZt(x)[Qt(y,xz)] Q_t(y, x) = \mathbb{E}_{Z \sim p_{Z|t}(\cdot|x)} [Q_t(y, x|z)]

生成边际概率 pt(dx)p_t(dx)

S=RdS = \mathbb{R}^dσt2(xz)\sigma_t^2(x|z) 是扩散系数,生成条件概率路径 ptZ(dxz)p_{t|Z}(dx|z)。利用扩散系数的线性参数化(见方程(9.6)),边际扩散系数:

σt2(x)=EZpZt(x)[σt2(xZ)] \sigma_t^2(x) = \mathbb{E}_{Z \sim p_{Z|t}(\cdot|x)} [\sigma_t^2(x|Z)]

生成边际概率路径 pt(dx)p_t(dx)

接下来,我们将开发用于训练连续时间马尔可夫过程(CTMP)模型的训练目标。假设我们有神经网络 FtθF_t^\theta,其通过方程(9.4)给出生成器参数化 Ltθ\mathcal{L}_t^\theta。根据定理 19 推导,我们的目标是近似方程(9.14)给出的真实边际线性参数化 FtF_t。与前文一致,假设对于每个 xSx \in S,我们有通过下式定义的布雷格曼散度 Dx:Ωx×ΩxRD_x: \Omega_x \times \Omega_x \to \mathbb{R}

Dx(a,b)=Φx(a)[Φx(b)+ab,Φx(b)],a,bΩx D_x(a, b) = \Phi_x(a) - \left[ \Phi_x(b) + \langle a - b, \nabla \Phi_x(b) \rangle \right], \quad a, b \in \Omega_x

其中 Φx:ΩxR\Phi_x: \Omega_x \to \mathbb{R} 是严格凸函数(见图 10)。用于训练连续时间马尔可夫过程(CTMP)模型的生成器匹配损失定义为:

LGM(θ)=Et,XtptDXt(Ft(Xt),Ftθ(Xt)) \mathcal{L}_{GM}(\theta) = \mathbb{E}_{t, X_t \sim p_t} D_{X_t} \left( F_t(X_t), F_t^\theta(X_t) \right)

其中 tU[0,1]t \sim U[0,1]

遗憾的是,上述训练目标难以直接计算——因为我们既不知道边际生成器 Lt\mathcal{L}_t,也不知道其参数化 FtF_t(仅知道方程(9.14)给出的难以计算的公式)。因此,我们引入条件生成器匹配损失作为可计算的替代方案,形式如下:

LCGM(θ)=Et,Z,XtptZDXt(Ft(XtZ),Ftθ(Xt)) \mathcal{L}_{CGM}(\theta) = \mathbb{E}_{t, Z, X_t \sim p_{t|Z}} D_{X_t} \left( F_t(X_t|Z), F_t^\theta(X_t) \right)

该目标具有可计算性,因为在许多情况下我们可以通过解析方法推导 Ft(xz)F_t(x|z)(见 9.6 节)。如下定理所示,损失(9.16)和(9.17)提供相同的学习梯度:

定理 20:生成器匹配损失和条件生成器匹配损失的梯度一致:

θLGM(θ)=θLCGM(θ) \nabla_\theta \mathcal{L}_{GM}(\theta) = \nabla_\theta \mathcal{L}_{CGM}(\theta)

特别地,条件生成器匹配损失的极小值点是边际生成器的线性参数化(方程(9.14)):

Ftθ(x)=EZpZt(x)[Ft(xZ)] F_t^\theta(x) = \mathbb{E}_{Z \sim p_{Z|t}(\cdot|x)} [F_t(x|Z)]

此外,要满足上述性质,DxD_x 必须是布雷格曼散度。

上述定理将前几节推导的定理 4、定理 11 和定理 15 推广到了通用连续时间马尔可夫过程(CTMP)模型。它允许我们通过最小化条件生成器匹配损失,以可扩展的方式轻松训练任何由神经网络 FtθF_t^\theta 参数化的连续时间马尔可夫过程(CTMP)模型。此外,它还全面表征了损失函数的空间。定理 20 的证明与定理 4 相同,只需将 utu_t 替换为 FtF_t。关于 DD 必须是布雷格曼散度的必要性证明,可参考(Holderrieth et al., 2024)。

我们将说明定理 20 如何用于训练随机微分方程(SDE)的扩散系数。设 S=RdS = \mathbb{R}^dσt2(xz)\sigma_t^2(x|z) 是生成条件概率路径 ptZ(dxz)p_{t|Z}(dx|z) 的扩散系数。我们可以用神经网络 (σt2)θ(x)Rd×d(\sigma_t^2)^\theta(x) \in \mathbb{R}^{d \times d} 对扩散系数进行参数化。此时,条件生成器匹配损失为:

LCGM(θ)=Et,Z,XtptZσt2(XtZ)(σt2)θ(Xt)2 \mathcal{L}_{CGM}(\theta) = \mathbb{E}_{t, Z, X_t \sim p_{t|Z}} \left\| \sigma_t^2(X_t|Z) - (\sigma_t^2)^\theta(X_t) \right\|^2

其中我们使用均方误差作为布雷格曼散度(也可选择其他形式)。(Holderrieth et al., 2024)中给出了此类模型的训练示例。

为了通过条件生成器匹配损失实现可扩展训练(见定理 20),我们需要找到满足科尔莫戈罗夫方程(KFE)的条件生成器 Ltz\mathcal{L}_t^z

ddtptZ(z),f=ptZ(z),LtzffT,zZ \frac{d}{dt} \langle p_{t|Z}(\cdot|z), f \rangle = \langle p_{t|Z}(\cdot|z), \mathcal{L}_t^z f \rangle \quad \forall f \in \mathcal{T}, z \in Z

如果 ptZ(dxz)p_{t|Z}(dx|z) 关于参考测度 ν\nu 存在密度 ptZ(xz)p_{t|Z}(x|z),则可等价求解伴随科尔莫戈罗夫方程(KFE):

ddtptZ(xz)=[(Ltz)ptZ(z)](x)xS,zZ \frac{d}{dt} p_{t|Z}(x|z) = \left[ (\mathcal{L}_t^z)^* p_{t|Z}(\cdot|z) \right](x) \quad \forall x \in S, z \in Z

一般而言,方程(9.20)和(9.21)是难以解析求解的方程,目前尚无适用于任意生成器的通用求解公式。因此,我们通过两个示例说明如何求解,以作参考。

此处我们以跳跃模型为例(适用于任意状态空间)进行说明。如 8.2.2 节所述,跳跃模型由跳跃测度 QtQ_t 定义,可分解为:

Qt(dy,x)=λt(x)Jt(dy,x)xS Q_t(dy, x) = \lambda_t(x) J_t(dy, x) \quad \forall x \in S

λt(x)0xS \lambda_t(x) \geq 0 \quad \forall x \in S

Jt(dy,x)=1xS \int J_t(dy, x) = 1 \quad \forall x \in S

其中 λt(x)\lambda_t(x) 表示跳跃强度,JtJ_t 表示指定跳跃分布的概率核。为简化符号,我们省略了对 zZz \in Z 的依赖(为避免与边际概率路径混淆,保留了 ptZ(dxz)p_{t|Z}(dx|z) 中对 zz 的依赖)。

考虑由下式给出的混合概率路径(见方程(7.22)):

ptZ(dxz)=κtδz(dx)+(1κt)p(dx),zS p_{t|Z}(dx|z) = \kappa_t \delta_z(dx) + (1 - \kappa_t) p(dx), \quad z \in S

利用跳跃过程生成器的形式(见方程(8.36)),科尔莫戈罗夫方程(KFE)可表示为:

ddtptZ(dxz),f=EXptZ(z)[λt(X)EYJt(dy,X)[f(Y)f(X)]]fT,xS \frac{d}{dt} \langle p_{t|Z}(dx|z), f \rangle = \mathbb{E}_{X \sim p_{t|Z}(\cdot|z)} \left[ \lambda_t(X) \mathbb{E}_{Y \sim J_t(dy, X)} [f(Y) - f(X)] \right] \quad \forall f \in \mathcal{T}, x \in S

其中 λt,Jt\lambda_t, J_t 满足方程(9.23)和(9.24)中的约束。我们断言,对于如下跳跃模型,上述方程成立:

Qt(dy,x)=λt(x)Jt(dy,x),λt(x)=κ˙t1κt,Jt(dy,x)=δz(dy) Q_t(dy, x) = \lambda_t(x) J_t(dy, x), \quad \lambda_t(x) = \frac{\dot{\kappa}_t}{1 - \kappa_t}, \quad J_t(dy, x) = \delta_z(dy)

即跳跃强度由 λt\lambda_t 给出,且一旦决定跳跃,将直接跳至 zSz \in S。为验证这一点,我们证明上述跳跃过程满足科尔莫戈罗夫方程(KFE):

EXptZ(z)[λt(X)EYJt(,X)[f(Y)f(X)]]=κ˙t1κtEXptZ(z)[f(z)f(X)]=κ˙t1κt[f(z)EXptZ(z)[f(X)]]=κ˙t1κt[f(z)(κtf(z)+(1κt)EXp[f(X)])]=κ˙tf(z)κ˙tEXp[f(X)]=ddt[κtf(z)+(1κt)EXp[f(X)]]=ddtptZ(z),f \begin{aligned} &\mathbb{E}_{X \sim p_{t|Z}(\cdot|z)} \left[ \lambda_t(X) \mathbb{E}_{Y \sim J_t(\cdot, X)} [f(Y) - f(X)] \right] \\ &= \frac{\dot{\kappa}_t}{1 - \kappa_t} \mathbb{E}_{X \sim p_{t|Z}(\cdot|z)} [f(z) - f(X)] \\ &= \frac{\dot{\kappa}_t}{1 - \kappa_t} \left[ f(z) - \mathbb{E}_{X \sim p_{t|Z}(\cdot|z)} [f(X)] \right] \\ &= \frac{\dot{\kappa}_t}{1 - \kappa_t} \left[ f(z) - \left( \kappa_t f(z) + (1 - \kappa_t) \mathbb{E}_{X \sim p} [f(X)] \right) \right] \\ &= \dot{\kappa}_t f(z) - \dot{\kappa}_t \mathbb{E}_{X \sim p} [f(X)] \\ &= \frac{d}{dt} \left[ \kappa_t f(z) + (1 - \kappa_t) \mathbb{E}_{X \sim p} [f(X)] \right] \\ &= \frac{d}{dt} \langle p_{t|Z}(\cdot|z), f \rangle \end{aligned}

因此,上述过程满足跳跃科尔莫戈罗夫方程(KFE)(方程(9.26)),即我们已构建了一个跳跃模型。我们在 7.24 节中已见过该模型在离散状态空间中的特例;此处我们证明,也可在欧几里得空间 Rd\mathbb{R}^d 等其他空间中构建类似的跳跃模型。

假设概率 ptZ(dxz)p_{t|Z}(dx|z) 关于 SS 上的参考测度 ν\nu 存在密度 ptZ(xz)p_{t|Z}(x|z),且该密度关于 tt 可微(注意,方程(9.25)中的混合路径在 S=RdS = \mathbb{R}^d 时不满足这一条件)。进一步假设跳跃核 Jt(y,x)J_t(y, x) 存在密度。此时,伴随科尔莫戈罗夫方程(KFE)变为跳跃连续性方程(方程(8.66)):

ddtptZ(xz)=λt(y)Jt(x,y)ptZ(yz)dyptZ(xz)λt(x) \frac{d}{dt} p_{t|Z}(x|z) = \int \lambda_t(y) J_t(x, y) p_{t|Z}(y|z) dy - p_{t|Z}(x|z) \lambda_t(x)

ptZ(xz)[ddtlogptZ(xz)+λt(x)]=λt(y)Jt(x,y)ptZ(yz)dy \Leftrightarrow p_{t|Z}(x|z) \left[ \frac{d}{dt} \log p_{t|Z}(x|z) + \lambda_t(x) \right] = \int \lambda_t(y) J_t(x, y) p_{t|Z}(y|z) dy

Jt(x,y)=Jt(x)J_t(x, y) = J_t(x)(“目标状态无关”),并使用 t=ddt\partial_t = \frac{d}{dt},则上式等价于:

ptZ(xz)[tlogptZ(xz)+λt(x)]=Jt(x)λt(y)ptZ(yz)ν(dy) p_{t|Z}(x|z) \left[ \partial_t \log p_{t|Z}(x|z) + \lambda_t(x) \right] = J_t(x) \int \lambda_t(y) p_{t|Z}(y|z) \nu(dy)

ptZ(xz)[tlogptZ(xz)+λt(x)]λt(y)ptZ(yz)ν(dy)=Jt(x) \Leftrightarrow \frac{p_{t|Z}(x|z) \left[ \partial_t \log p_{t|Z}(x|z) + \lambda_t(x) \right]}{\int \lambda_t(y) p_{t|Z}(y|z) \nu(dy)} = J_t(x)

为定义有效的跳跃过程,需满足 λt(x)0\lambda_t(x) \geq 0Jt(x)0J_t(x) \geq 0。因此:

λt(x)0,Jt(x)0λt(x)[tlogptZ(xz)]+ \lambda_t(x) \geq 0, J_t(x) \geq 0 \Leftrightarrow \lambda_t(x) \geq \left[ -\partial_t \log p_{t|Z}(x|z) \right]_+

其中 [x]+=max(x,0)[x]_+ = \max(x, 0) 表示ReLU操作。进一步,需确保 JtJ_t 定义有效的跳跃分布(即积分等于 1),这一点可验证如下:

1=Jt(x)dxλt(x)ptZ(xz)ν(dx)=ptZ(xz)[tlogptZ(xz)+λt(x)]ν(dx)0=tptZ(xz)ν(dx)0=tptZ(xz)ν(dx)0=0 \begin{aligned} 1 &= \int J_t(x) dx \\ \Leftrightarrow \int \lambda_t(x) p_{t|Z}(x|z) \nu(dx) &= \int p_{t|Z}(x|z) \left[ \partial_t \log p_{t|Z}(x|z) + \lambda_t(x) \right] \nu(dx) \\ \Leftrightarrow 0 &= \int \partial_t p_{t|Z}(x|z) \nu(dx) \\ \Leftrightarrow 0 &= \partial_t \int p_{t|Z}(x|z) \nu(dx) \\ \Leftrightarrow 0 &= 0 \end{aligned}

JtJ_t 的积分确实等于 1。选择最小的 λt(x)\lambda_t(x),可得如下定义的跳跃模型是跳跃连续性方程的解,因此生成条件概率路径 ptZ(xz)p_{t|Z}(x|z)

λt(x)=[tlogptZ(xz)]+ \lambda_t(x) = \left[ -\partial_t \log p_{t|Z}(x|z) \right]_+

Jt(x)=ptZ(xz)[tlogptZ(xz)]+ptZ(yz)[tlogptZ(yz)]+ν(dy)=[tptZ(xz)]+[tptZ(yz)]+ν(dy) J_t(x) = \frac{p_{t|Z}(x|z) \left[ \partial_t \log p_{t|Z}(x|z) \right]_+}{\int p_{t|Z}(y|z) \left[ \partial_t \log p_{t|Z}(y|z) \right]_+ \nu(dy)} = \frac{\left[ \partial_t p_{t|Z}(x|z) \right]_+}{\int \left[ \partial_t p_{t|Z}(y|z) \right]_+ \nu(dy)}

初看之下,跳跃分布与位置无关似乎并不理想。然而,若将该模型扩展到多维空间,跳跃分布将依赖于位置,从而形成强大的生成模型(Holderrieth et al., 2024)。

本节将说明生成器匹配(GM)如何允许以不同方式组合同一状态空间 SS 上的生成模型。核心原理很简单:生成器是线性算子,而科尔莫戈罗夫方程(KFE)tpt,f=pt,Ltf\partial_t \langle p_t, f \rangle = \langle p_t, \mathcal{L}_t f \rangle 是线性方程——因此,我们可以像在线性代数中组合矩阵方程的解一样组合该方程的解。具体来说,设 Lt\mathcal{L}_tLt\mathcal{L}_t' 是两个生成器,分别对应两个求解概率路径 ptp_t 的科尔莫戈罗夫方程(KFE)的马尔可夫过程。则对于 αt1,αt2R\alpha_t^1, \alpha_t^2 \in \mathbb{R}αt1+αt2=1\alpha_t^1 + \alpha_t^2 = 1,有:

pt,(αt1Lt+αt2Lt)f=αt1pt,Ltf+αt2pt,Ltf=αt1tpt,f+αt2tpt,f=(αt1+αt2)tpt,f=tpt,f \begin{aligned} \langle p_t, (\alpha_t^1 \mathcal{L}_t + \alpha_t^2 \mathcal{L}_t') f \rangle &= \alpha_t^1 \langle p_t, \mathcal{L}_t f \rangle + \alpha_t^2 \langle p_t, \mathcal{L}_t' f \rangle \\ &= \alpha_t^1 \partial_t \langle p_t, f \rangle + \alpha_t^2 \partial_t \langle p_t, f \rangle \\ &= (\alpha_t^1 + \alpha_t^2) \partial_t \langle p_t, f \rangle \\ &= \partial_t \langle p_t, f \rangle \end{aligned}

αt1Lt+αt2Lt\alpha_t^1 \mathcal{L}_t + \alpha_t^2 \mathcal{L}_t' 仍是科尔莫戈罗夫方程(KFE)的解。一个需要注意的细节是,αt1,αt2\alpha_t^1, \alpha_t^2 的正负性,以及 Lt\mathcal{L}_tLt\mathcal{L}_t' 对应前向时间还是后向时间的马尔可夫过程。由此得到:

命题 3(组合模型):设 ptp_t 是边际概率路径,则以下生成器均求解 ptp_t 的科尔莫戈罗夫方程(KFE),因此定义了以 ptp_t 为边际的生成模型:

  1. 马尔可夫叠加:αt1Lt+αt2Lt\alpha_t^1 \mathcal{L}_t + \alpha_t^2 \mathcal{L}_t',其中 Lt,Lt\mathcal{L}_t, \mathcal{L}_t' 是两个求解 ptp_t 的科尔莫戈罗夫方程(KFE)的马尔可夫过程生成器,且 αt1,αt20\alpha_t^1, \alpha_t^2 \geq 0 满足 αt1+αt2=1\alpha_t^1 + \alpha_t^2 = 1
  2. 无散度分量:Lt+βtLtdiv\mathcal{L}_t + \beta_t \mathcal{L}_t^{div},其中 Ltdiv\mathcal{L}_t^{div} 是满足对所有 fTf \in \mathcal{T}pt,Ltdivf=0\langle p_t, \mathcal{L}_t^{div} f \rangle = 0 的生成器,且 βt0\beta_t \geq 0。此类 Ltdiv\mathcal{L}_t^{div} 称为无散度生成器。
  3. 预测-校正:αt1Lt+αt2Lt\alpha_t^1 \mathcal{L}_t + \alpha_t^2 \overline{\mathcal{L}}_t,其中 Lt\mathcal{L}_t 是前向时间内求解 ptp_t 的科尔莫戈罗夫方程(KFE)的生成器,Lt\overline{\mathcal{L}}_t 是后向时间内求解 ptp_t 的科尔莫戈罗夫方程(KFE)的生成器,且 αt1,αt20\alpha_t^1, \alpha_t^2 \geq 0 满足 αt1αt2=1\alpha_t^1 - \alpha_t^2 = 1

下面通过马尔可夫叠加和无散度分量的示例说明命题 3。预测-校正方案的强大之处可参考(Gat et al., 2024)。

马尔可夫叠加可用于组合不同类别的生成模型。这些模型可以是两个单独训练的网络,也可以是在一个网络中同时训练的两个生成器匹配(GM)模型(Holderrieth et al., 2024)。此处我们以组合 S=RdS = \mathbb{R}^d 上的跳跃模型和流模型为例进行说明。假设我们有两个模型,每个模型都生成概率路径 ptp_t:(1)流模型 utu_t;(2)带有跳跃强度 λt\lambda_t 和跳跃分布 JtJ_t 的跳跃模型。根据命题 3,对于 αt1,αt20\alpha_t^1, \alpha_t^2 \geq 0αt1+αt2=1\alpha_t^1 + \alpha_t^2 = 1,以下生成器定义了生成 ptp_t 的有效生成器匹配(GM)模型:

Ltf(x)=αt1Ltjumpf(x)+αt2Ltflowf(x)=(αt1λt(x))EYJt(,x)[f(Y)f(x)]+fT(x)(αt2ut(x)) \begin{aligned} \mathcal{L}_t f(x) &= \alpha_t^1 \mathcal{L}_t^{jump} f(x) + \alpha_t^2 \mathcal{L}_t^{flow} f(x) \\ &= \left( \alpha_t^1 \lambda_t(x) \right) \mathbb{E}_{Y \sim J_t(\cdot, x)} [f(Y) - f(x)] + \nabla f^T(x) \left( \alpha_t^2 u_t(x) \right) \end{aligned}

其中我们使用了方程(8.17)和(8.36)。实际上,上述生成器描述了分段确定性马尔可夫过程——一种组合常微分方程(ODE)和跳跃模型的模型(Davis, 1984)。如上述方程所示,需将跳跃强度按 αt1\alpha_t^1 缩放,将向量场按 αt2\alpha_t^2 缩放。由此得到的生成器匹配(GM)模型的采样过程如下:

X0p0=p X_0 \sim p_0 = p

Xt+h={Jt(dy,Xt)概率为 hαt1λt(Xt)Xt+hαt2ut(Xt)概率为 1hαt1λt(Xt) X_{t+h} = \begin{cases} \sim J_t(dy, X_t) & \text{概率为 } h \alpha_t^1 \lambda_t(X_t) \\ X_t + h \alpha_t^2 u_t(X_t) & \text{概率为 } 1 - h \alpha_t^1 \lambda_t(X_t) \end{cases}

(Holderrieth et al., 2024)中给出了多个跳跃模型和流模型的马尔可夫叠加示例,并证明其能带来性能提升。

要找到无散度分量,可利用现有的马尔可夫链蒙特卡洛(MCMC)算法——所有这些算法都提供了寻找无散度分量的通用方案。此处我们通过两个著名示例进行说明。假设给定带有密度 pt(x)p_t(x) 的通用概率路径 ptp_t。则生成器 Ltdiv\mathcal{L}_t^{div} 为无散度的等价条件是其伴随算子将 ptp_t 映射为零:

pt,Ltdivf=0fT[Ltdiv]pt(x)=0xS \langle p_t, \mathcal{L}_t^{div} f \rangle = 0 \quad \forall f \in \mathcal{T} \Leftrightarrow [\mathcal{L}_t^{div}]^* p_t(x) = 0 \quad \forall x \in S

S=RdS = \mathbb{R}^d,朗之万动力学对应于带有速度场 12βt2logpt(x)\frac{1}{2} \beta_t^2 \nabla \log p_t(x) 和扩散系数 βt\beta_t 的随机微分方程(SDE),即动力学由下式给出:

dXt=12βt2logpt(x)dt+βtdWt dX_t = \frac{1}{2} \beta_t^2 \nabla \log p_t(x) dt + \beta_t dW_t

该随机微分方程(SDE)的伴随生成器为:

[Ltdiv]pt=(i)div(pt12βt2logpt)(x)+12βt2Δpt(x) [\mathcal{L}_t^{div}]^* p_t \stackrel{(i)}{=} -div\left( p_t \frac{1}{2} \beta_t^2 \nabla \log p_t \right)(x) + \frac{1}{2} \beta_t^2 \Delta p_t(x)

=(ii)12div(βt2pt)(x)+12βt2Δpt(x) \stackrel{(ii)}{=} -\frac{1}{2} div\left( \beta_t^2 \nabla p_t \right)(x) + \frac{1}{2} \beta_t^2 \Delta p_t(x)

=(iii)12βt2Δpt(x)+12βt2Δpt(x)=0 \stackrel{(iii)}{=} -\frac{1}{2} \beta_t^2 \Delta p_t(x) + \frac{1}{2} \beta_t^2 \Delta p_t(x) = 0

其中(i)由 8.3.1 节推导的流和扩散的伴随算子形式得出;(ii)因 logpt=pt/pt\nabla \log p_t = \nabla p_t / p_t 得出;(iii)由散度-拉普拉斯恒等式 div=Δdiv \nabla = \Delta 得出。上述结果表明,朗之万动力学的生成器满足方程(9.37),因此在命题 3 的意义下是无散度的。这一事实在统计物理和马尔可夫链蒙特卡洛(MCMC)中被广泛应用(Roberts and Tweedie, 1996)。命题 3 表明,我们可以将这些动力学(对于任意 βt0\beta_t \geq 0)添加到任何生成模型中。在第 10 节中,我们将利用这一点推导扩散模型的随机采样。

SS 为通用状态空间。梅特罗波利斯-黑斯廷斯算法(Hastings, 1970)描述了满足细致平衡条件的跳跃核 Qt(y,x)Q_t(y, x) 的构造:

Qt(y,x)pt(x)=Qt(x,y)pt(y)x,yS Q_t(y, x) p_t(x) = Q_t(x, y) p_t(y) \quad \forall x, y \in S

[Ltdiv]pt(x)=(i)Qt(y,x)pt(x)Qt(x,y)pt(y)=0 \Rightarrow [\mathcal{L}_t^{div}]^* p_t(x) \stackrel{(i)}{=} \int Q_t(y, x) p_t(x) - Q_t(x, y) p_t(y) = 0

其中(i)使用了方程(8.66)。这表明方程(9.37)得到满足,QtQ_t 是无散度的。命题 3 表明,可将此类梅特罗波利斯方案任意添加到任何遵循概率路径 ptp_t 的生成器匹配(GM)模型中。

最后,我们简要说明生成器匹配(GM)如何支持联合构建多种数据模态的生成模型。例如,生成图像及其对应的文本描述的模型。两种模态可表示为两个状态空间 S1,S2S_1, S_2(例如,S1S_1 对应图像,S2S_2 对应文本),而多模态模型则是定义在乘积空间 S=S1×S2S = S_1 \times S_2 上的生成模型。由于 SS 本身也是一个状态空间,且生成器匹配(GM)适用于任意状态空间,我们可以像构建其他生成器匹配(GM)模型一样构建多模态模型。

然而,有一种特定的概率路径构造方式允许我们重用为单个模态构建的生成器匹配(GM)模型。例如,我们可以通过组合离散流匹配(DFM)模型和连续流匹配(FM)模型来构建联合文本-图像模型。这种特定构造依赖于因子化条件概率路径。我们已在 7.5.2 节中见过离散流匹配(DFM)中的简单案例——因子化概率路径会产生因子化速度。这一结论适用于更通用的任意模态。尽管该构造简单直观,但要以完全通用的形式表达则较为繁琐。有关严格处理,可参考(Holderrieth et al., 2024)。(Campbell et al., 2024)中也实现了该构造的一个特定实例,用于多模态蛋白质生成。这表明生成器匹配(GM)能够以原则性和严谨的方式支持多模态模型的构建。

本章将生成器匹配(GM)与当前广泛使用的去噪类生成模型建立联系,包括扩散模型去噪分数匹配条件去噪概率模型等。我们会说明:所有这些模型都可以被生成器匹配统一解释,并且可以直接从第9章的框架中推导出来。

我们首先回顾连续时间扩散模型的标准形式,然后证明它是生成器匹配的特例。

设状态空间 S=RdS=\mathbb{R}^d。正向扩散过程(噪声过程)为:

dXt=bt(Xt)dt+σtdWt dX_t = b_t(X_t)dt + \sigma_t dW_t

其中:

  • btb_t 为漂移项
  • σt\sigma_t 为标量噪声强度
  • WtW_t 为标准布朗运动

对应的生成器为:

Ltf(x)=f(x)bt(x)+12σt2Δf(x) \mathcal{L}_t f(x) = \nabla f(x)^\top b_t(x) + \frac12 \sigma_t^2 \Delta f(x)

其中 Δ=tr(2)\Delta = \mathrm{tr}(\nabla^2) 为拉普拉斯算子。

对应的科尔莫戈罗夫前向方程(福克-普朗克方程)为:

tpt(x)=(bt(x)pt(x))+12σt2Δpt(x) \partial_t p_t(x) = -\nabla\cdot\left(b_t(x)p_t(x)\right) + \frac12\sigma_t^2\Delta p_t(x)

在标准扩散模型中,通常选择:

bt(x)=0,σt>0 b_t(x) = 0,\qquad \sigma_t > 0

无漂移、纯扩散。此时生成器简化为:

Ltf(x)=12σt2Δf(x) \mathcal{L}_t f(x) = \frac12 \sigma_t^2 \Delta f(x)

福克-普朗克方程简化为:

tpt=12σt2Δpt \partial_t p_t = \frac12 \sigma_t^2 \Delta p_t

连续时间扩散模型的核心是反向过程

dXt=(b1t(Xt)σ1t2logp1t(Xt))dt+σ1tdW~t dX_t = \left( b_{1-t}(X_t) - \sigma_{1-t}^2 \nabla\log p_{1-t}(X_t) \right)dt + \sigma_{1-t} d\widetilde{W}_t

其中 W~t\widetilde{W}_t 是反向时间的布朗运动。

在无漂移情况下 bt=0b_t=0,反向过程为:

dXt=σ1t2logp1t(Xt)dt+σ1tdW~t dX_t = -\sigma_{1-t}^2 \nabla\log p_{1-t}(X_t) dt + \sigma_{1-t} d\widetilde{W}_t

这里的 σt2logpt-\sigma_t^2\nabla\log p_t 被称为分数函数(score function)。

我们现在证明:标准连续时间扩散模型等价于一种特殊的生成器匹配

在生成器匹配中,我们学习生成器:

Ltθf(x)=f(x)utθ(x)+12(σt2)θ(x)Δf(x) \mathcal{L}_t^\theta f(x) = \nabla f(x)^\top u_t^\theta(x) + \frac12 (\sigma_t^2)^\theta(x) \Delta f(x)

它同时学习流(漂移)扩散两部分。

在标准扩散模型中:

  • 扩散部分固定为 σt2\sigma_t^2,不学习
  • 只学习漂移项 utθ(x)=σt2logpt(x)u_t^\theta(x) = -\sigma_t^2\nabla\log p_t(x)

这对应生成器匹配中只学习流分量、固定扩散分量的特殊情况。

因此:

所有连续时间扩散模型 = 只学习漂移项、固定扩散项的生成器匹配。

去噪分数匹配(DSM)是训练扩散模型的经典方法。我们证明它也包含在生成器匹配框架中。

给定条件分布 ptZ(xz)p_{t|Z}(x|z)(通常是带噪声的目标分布),分数匹配目标为:

LDSM(θ)=Et,Z,XtptZlogptZ(XtZ)logptθ(Xt)2 \mathcal{L}_{\text{DSM}}(\theta) = \mathbb{E}_{t,Z,X_t\sim p_{t|Z}} \big\| \nabla\log p_{t|Z}(X_t|Z) - \nabla\log p_t^\theta(X_t) \big\|^2

模型学习近似条件分数 logptZ(xz)\nabla\log p_{t|Z}(x|z)

在生成器匹配中,对于纯扩散过程

Ltzf(x)=12σt2Δf(x) \mathcal{L}_t^z f(x) = \frac12 \sigma_t^2 \Delta f(x)

对应的边际生成器为:

Ltf(x)=EZt,x[LtZf(x)]=12σt2Δf(x) \mathcal{L}_t f(x) = \mathbb{E}_{Z|t,x}[\mathcal{L}_t^Z f(x)] = \frac12 \sigma_t^2 \Delta f(x)

但我们可以在生成器中额外加入一个流分量,使其仍然生成同一条概率路径 ptp_t。根据第9.7节的无散度分量理论,朗之万动力学是无散度的,因此可以叠加: $$ \widetilde{\mathcal{L}}_t f(x) = \frac12 \sigma_t^2 \Delta f(x)

  • \nabla f(x)^\top \left( \sigma_t^2 \nabla\log p_t(x) \right) $$

这个新生成器仍然生成相同的 ptp_t。 它对应的反向过程正是标准扩散的反向SDE:

dXt=σt2logpt(Xt)dt+σtdWt dX_t = -\sigma_t^2\nabla\log p_t(X_t)dt + \sigma_t dW_t

在生成器匹配中,我们直接拟合条件速度

ut(xz)=σt2logptZ(xz) u_t(x|z) = \sigma_t^2 \nabla\log p_{t|Z}(x|z)

对应的损失为:

LCGM(θ)=Eσt2logptZ(XtZ)utθ(Xt)2 \mathcal{L}_{\text{CGM}}(\theta) = \mathbb{E}\big\| \sigma_t^2\nabla\log p_{t|Z}(X_t|Z) - u_t^\theta(X_t) \big\|^2

完全等价于去噪分数匹配损失(只差一个常数 σt4\sigma_t^4)。

因此:

去噪分数匹配 = 生成器匹配在纯扩散过程下的特例。

条件去噪概率模型(CDPM)直接学习去噪分布 ptt+h(xtxt+h)p_{t|t+h}(x_t|x_{t+h})ptargett(zxt)p_{\text{target}|t}(z|x_t)。我们证明它同样是生成器匹配的特例。

这类模型的典型训练目标是:

LCDPM(θ)=Et,Z,XtptZlogpθ(ZXt,t) \mathcal{L}_{\text{CDPM}}(\theta) = \mathbb{E}_{t,Z,X_t\sim p_{t|Z}} -\log p^\theta(Z|X_t,t)

即用 XtX_t 去预测原始干净样本 ZZ

在生成器匹配中:

  • 对于仿射概率路径,条件速度为 ut(xz)=α˙tz+σ˙txu_t(x|z) = \dot{\alpha}_t z + \dot{\sigma}_t x
  • 对于离散混合路径,条件速率由 κ˙t\dot{\kappa}_t 决定

这些条件信号都可以写成XtX_t 预测 ZZ 的形式。因此:

条件去噪概率模型生成器匹配的条件形式 \text{条件去噪概率模型} \quad\Longleftrightarrow\quad \text{生成器匹配的条件形式}

离散状态空间上的扩散模型(如用于文本、分子的离散扩散)等价于:

  • 连续时间马尔可夫链(CTMC)
  • 由速率矩阵 ut(y,x)u_t(y,x) 定义

而第9章已经证明:

所有离散扩散模型 = 离散状态空间上的生成器匹配。

这统一了连续扩散离散扩散

流匹配(Flow Matching)是生成器匹配在纯确定性流下的特例:

  • 生成器只有流分量:Ltf=fut\mathcal{L}_t f = \nabla f^\top u_t
  • 无扩散、无跳跃
  • 损失为 Eut(xz)utθ(x)2\mathbb{E}\|u_t(x|z)-u_t^\theta(x)\|^2

因此:

流匹配 = 无扩散、无跳跃的生成器匹配。

本章所有结论可以总结为一张统一关系图:

  • 生成器匹配(GM):最通用框架,学习任意马尔可夫过程生成器

    • 包含流分量:对应流匹配
    • 包含扩散分量:对应扩散模型、分数匹配
    • 包含跳跃分量:对应离散扩散、CTMC
  • 扩散模型:GM的子集,固定扩散、只学漂移

  • 去噪分数匹配:GM在纯扩散下的特例

  • 条件去噪概率模型:GM的条件预测形式

  • 流匹配:GM在纯流、无噪声下的特例

  • 离散扩散:GM在离散状态空间下的特例

这意味着:

所有主流去噪类生成模型,都是生成器匹配的特殊情况

这种统一带来了直接的实践价值:

  1. 混合模型:可以在一个模型里同时学习流、扩散、跳跃,自动获得更好的采样与训练稳定性。
  2. 统一训练:所有模型都可以用同一个条件生成器匹配损失训练。
  3. 任意模态:同一套理论适用于连续数据、离散数据、流形、多模态数据。
  4. 设计自由:可以按需设计概率路径、生成器结构、损失函数。

换句话说,生成器匹配提供了一个完整、统一、可扩展的生成模型设计与训练范式。

引理1(满足速率条件的科尔莫戈罗夫方程的概率质量函数解):考虑科尔莫戈罗夫方程(6.8)的解ft(x)f_t(x),其初始条件为f0(x)=p(x)f_0(x)=p(x)(其中pp是概率质量函数(PMF)),且ut(y,x)u_t(y,x)关于时间tt是连续函数(C([0,1])C([0,1]))并满足速率条件(6.4)。则对于所有t[0,1]t \in [0,1]ft(x)f_t(x)均为概率质量函数(PMF)。

证明:设ft(x)f_t(x)t[0,1]t \in [0,1])是科尔莫戈罗夫方程的解,定理12已保证其存在性和唯一性。ft(x)f_t(x)为概率质量函数(PMF)的充要条件是满足:

ft(x)0xft(x)=1(A.1)f_t(x) \geq 0 \quad \text{且} \quad \sum _{x} f_t(x) = 1 \tag{A.1}

后一个条件可通过对科尔莫戈罗夫方程两侧求和证明:

ddtxft(x)=xzut(x,z)pt(z)=0 \frac{d}{dt} \sum _{x} f_t(x) = \sum _{x} \sum _{z} u_t(x, z) p_t(z) = 0

其中第二个等式源于速率条件中yut(y,x)=0\sum _{y} u_t(y, x) = 0。由于xf0(x)=xp(x)=1\sum _{x} f_0(x) = \sum _{x} p(x) = 1,因此对于所有t[0,1]t \in [0,1],恒有xft(x)1\sum _{x} f_t(x) \equiv 1

为证明对所有xSx \in Sft(x)0f_t(x) \geq 0,我们利用动力系统的凸不变集相关结论。具体而言,Prüss等人(2010)的定理7.3.4指出:只要初始条件f0=pf_0 = p满足该约束(显然成立),且当w(z)w(z)位于约束边界(即ww是概率质量函数(PMF)且对某些zSz \in Sw(z)=0w(z)=0)时,约束外法向量的内积非负(即x,yut(y,x)w(x)δ(y,z)0\sum _{x,y} u_t(y, x) w(x) \delta(y, z) \geq 0),则解ft(x)f_t(x)对所有t[0,1]t \in [0,1]xSx \in S均满足ft(x)0f_t(x) \geq 0。验证该条件如下:

x,yut(y,x)w(x)δ(y,z)=xut(z,x)w(x)=xzut(z,x)w(x)0 \sum _{x,y} u_t(y, x) w(x) \delta(y, z) = \sum _{x} u_t(z, x) w(x) = \sum _{x \neq z} u_t(z, x) w(x) \geq 0

其中第二个等式利用了w(z)=0w(z)=0,最后一个不等式源于速率条件(6.4)中zxz \neq xut(z,x)0u_t(z, x) \geq 0且对所有yyw(y)0w(y) \geq 0

定理13(离散质量守恒):设ut(y,x)u_t(y,x)关于时间tt是连续函数(C([0,1))C([0,1))),且pt(x)p_t(x)是关于时间tt的一阶连续可微概率质量函数(PMF)(C1([0,1))C^1([0,1)))。则以下条件等价:

  1. ptp_tutu_t满足t[0,1)t \in [0,1)时的科尔莫戈罗夫方程(6.8),且utu_t满足速率条件(6.4);
  2. 按(6.5)的定义,utu_t生成t[0,1)t \in [0,1)时的ptp_t

证明:首先假设条件2成立。此时,概率转移核pt+ht(yx)p_{t+h|t}(y|x)满足(6.3):

pt+ht(yx)=δ(y,x)+hut(y,x)+o(h)(A.2)p_{t+h|t}(y|x) = \delta(y, x) + h u_t(y, x) + o(h) \tag{A.2}

根据全概率公式,边际分布pt+h(y)p_{t+h}(y)可表示为:

pt+h(y)=xpt+ht(yx)pt(x)(A.3)p_{t+h}(y) = \sum _{x} p_{t+h|t}(y|x) p_t(x) \tag{A.3}

将(A.2)代入(A.3)并整理得:

pt+h(y)pt(y)h=xut(y,x)pt(x)+o(1) \frac{p_{t+h}(y) - p_t(y)}{h} = \sum _{x} u_t(y, x) p_t(x) + o(1)

其中o(1)=o(h)/ho(1) = o(h)/h,且当h0h \to 0o(1)0o(1) \to 0(符合o(h)o(h)的定义)。对h0h \to 0取极限,可得(pt,ut)(p_t, u_t)满足科尔莫戈罗夫方程(6.8)。

接下来证明utu_t满足速率条件(6.4):若存在yxy \neq x使得ut(y,x)<0u_t(y, x) < 0,则由(A.2)可知,对于足够小的h>0h > 0pt+ht(yx)<0p_{t+h|t}(y|x) < 0,这与pt+htp_{t+h|t}是概率核矛盾;若yut(y,x)=c0\sum _{y} u_t(y, x) = c \neq 0,则由(A.2)可知1=ypt+ht(yx)=1+hc+o(h)1 = \sum _{y} p_{t+h|t}(y|x) = 1 + h c + o(h),对于足够小的h>0h > 0,这同样矛盾。

反之,假设条件1成立,即(ut,pt)(u_t, p_t)满足初始条件为p0=pp_0 = p的科尔莫戈罗夫方程(6.8)。根据定理12,设pst(yx)p_{s|t}(y|x)是以下科尔莫戈罗夫方程的唯一解:

ddspst(yx)=zut(y,z)pst(zx)(A.4) \frac{d}{ds} p_{s|t}(y|x) = \sum _{z} u_t(y, z) p_{s|t}(z|x) \tag{A.4}

其初始条件为ptt(y,x)=δ(y,x)p_{t|t}(y, x) = \delta(y, x),其中0ts<10 \leq t \leq s < 1,且ttyy为常数。由引理1可知,pst(x)p_{s|t}(\cdot|x)是概率质量函数(PMF)。

xpst(yx)p(x)\sum _{x} p_{s|t}(y|x) p(x)同样满足科尔莫戈罗夫方程,因为:

ddtxpst(yx)p(x)=x[zut(y,z)pst(zx)]p(x)=zut(y,z)[xpst(zx)p(x)](A.5) \frac{d}{dt} \sum _{x} p_{s|t}(y|x) p(x) = \sum _{x} \left[ \sum _{z} u_t(y, z) p_{s|t}(z|x) \right] p(x) = \sum _{z} u_t(y, z) \left[ \sum _{x} p_{s|t}(z|x) p(x) \right] \tag{A.5}

其初始条件为xptt(yx)p(x)=p(y)\sum _{x} p_{t|t}(y|x) p(x) = p(y)。由于科尔莫戈罗夫方程的解具有唯一性(定理12),因此xpst(yx)p(x)=ps(y)\sum _{x} p_{s|t}(y|x) p(x) = p_s(y),符合要求。

最后,对于0trs<10 \leq t \leq r \leq s < 1,转移核的半群性质zpsr(yz)prt(zx)=pst(yx)\sum _{z} p_{s|r}(y|z) p_{r|t}(z|x) = p_{s|t}(y|x),可通过将prtp_{r|t}作为时间rr处的初始条件,重复(A.5)中的推导过程证明。综上,我们找到了生成ptp_t的转移核pt+htp_{t+h|t},条件2成立。

定理10(流形边际化技巧):在假设2下,若ut(xx1)u_t(x|x_1)是条件可积的且生成条件概率路径pt(x1)p_t(\cdot|x_1),则边际速度场ut()u_t(\cdot)生成边际概率路径pt()p_t(\cdot)

证明:为证明ut()u_t(\cdot)生成pt()p_t(\cdot),我们需验证它们满足质量守恒定理的条件。首先,验证ut(x)u_t(x)pt(x)p_t(x)满足连续性方程(5.1):

ddtpt(x)=(i)Mddtpt1(xx1)q(x1)dvolx1(A.6) \frac{d}{dt} p_t(x) \stackrel{(i)}{=} \int_{\mathcal{M}} \frac{d}{dt} p_{t|1}(x|x_1) q(x_1) dvol_{x_1} \tag{A.6}

=(ii)Mdivg[ut(xx1)pt1(xx1)]q(x1)dvolx1(A.7) \stackrel{(ii)}{=} -\int_{\mathcal{M}} div_g\left[ u_t(x|x_1) p_{t|1}(x|x_1) \right] q(x_1) dvol_{x_1} \tag{A.7}

=(i)divgMut(xx1)pt1(xx1)q(x1)dvolx1(A.8) \stackrel{(i)}{=} -div_g \int_{\mathcal{M}} u_t(x|x_1) p_{t|1}(x|x_1) q(x_1) dvol_{x_1} \tag{A.8}

=(iii)divg[ut(x)pt(x)](A.9) \stackrel{(iii)}{=} -div_g\left[ u_t(x) p_t(x) \right] \tag{A.9}

其中:

  • (i)通过莱布尼茨法则交换微分(ddt\frac{d}{dt}divgdiv_g)与积分运算,且pt1(xx1)p_{t|1}(x|x_1)ut(xx1)u_t(x|x_1)关于tt是一阶连续可微的(C1C^1),同时qq具有有界支撑或流形M\mathcal{M}是紧的,确保积分可交换;
  • (ii)利用ut(x1)u_t(\cdot|x_1)生成pt1(x1)p_{t|1}(\cdot|x_1)这一事实及定理9;
  • (iii)通过乘以并除以pt(x)p_t(x)(由假设知其严格为正),结合(5.10)中utu_t的定义推导得出。

最后,采用与定理3证明相同的论证,可证明utu_t是可积且局部利普希茨连续的。

需说明的是,假设5在相对较弱的条件下成立,数学文献中存在大量关于不同场景下科尔莫戈罗夫方程(KFE)解ptp_t唯一性的研究。然而,据我们所知,目前尚无针对一般状态空间和马尔可夫过程的正则性假设相关已知结果,因此在此直接将其作为假设陈述。对于机器学习实践者而言,该假设在所有感兴趣的状态空间中均成立。为佐证这一点,我们列举数学文献中关于特定空间和马尔可夫过程类别的唯一性结果及对应的正则性假设:

  1. Rd\mathbb{R}^d和流形上的流:(Villani等人,2009,质量守恒公式,第15页)、(DiPerna和Lions,1989)、(Ambrosio,2004);
  2. Rd\mathbb{R}^d和流形上的扩散过程:(Villani等人,2009,扩散定理,第16页);
  3. Rd\mathbb{R}^d上的一般伊藤随机微分方程(Ito-SDEs):(Figalli,2008,定理1.3和1.4)、(Kurtz,2011,推论1.3)、(Bogachev等人,2022);
  4. 离散状态空间:此处科尔莫戈罗夫方程(KFE)为线性常微分方程(ODE),在系数连续的假设下,其解具有唯一性(见定理13)。

相关内容