← 返回目录 | 第6章 / 共14章 | 下一章 → |
流匹配是生成建模领域的一个新兴范式,它巧妙地结合了连续正则化流(Continuous Normalizing Flows)的理论优雅性和扩散模型的实践有效性。本章将深入探讨流匹配的核心思想:如何通过学习简单的向量场来构建复杂分布之间的最优传输路径。您将理解流匹配如何统一了看似不同的生成模型框架,以及它在计算效率和理论保证方面的独特优势。通过本章的学习,您将掌握设计和训练流匹配模型的关键技术,并理解其与扩散模型、最优传输理论的深刻联系。
连续正则化流(Continuous Normalizing Flows, CNF)提供了一种优雅的方式来建模复杂概率分布之间的变换。与离散的正则化流不同,CNF通过一个连续时间的动力系统来定义变换。想象一下,数据点像是河流中的叶子,随着时间的推移被向量场推动——这就是CNF的核心思想。
在离散正则化流中,我们通过一系列精心设计的可逆变换层(如耦合层、自回归流等)来构建从简单分布到复杂分布的映射。每一层都必须满足严格的可逆性约束,这极大地限制了模型的设计空间。而CNF则采用了一种截然不同的方法:它将这种离散的层叠结构替换为一个连续的动力系统,让数据点在向量场的引导下平滑地流动。
具体来说,CNF定义了一个时间相关的常微分方程(ODE):
$\frac{d\mathbf{x}_t}{dt} = v_t(\mathbf{x}_t), \quad t \in [0,1]$
其中 $v_t: \mathbb{R}^d \to \mathbb{R}^d$ 是时间相关的向量场,它告诉我们在时刻 $t$ ,位于 $\mathbf{x}_t$ 的点应该以什么速度和方向移动。这个向量场就像是一个随时间变化的”风场”,推动着数据点从简单分布(如标准高斯)流向复杂的目标分布。
要真正理解CNF的力量,让我们深入探讨向量场的含义。在物理学中,向量场描述了空间中每一点的某种矢量量——比如流体的速度场、电磁场等。在CNF中,向量场 $v_t(\mathbf{x}_t)$ 描述了概率质量的”流速”。如果我们将概率分布想象成一种”概率流体”,那么向量场就告诉我们这种流体在每个位置、每个时刻应该如何流动。
给定初始分布 $p_0$ (通常是简单的高斯分布),通过求解这个ODE,我们可以得到任意时刻 $t$ 的分布 $p_t$ 。这个过程是完全可逆的——如果我们知道向量场,就可以从任意时刻的分布推导出其他时刻的分布,这种双向性是CNF的一个重要特征。
数学上,这种可逆性通过ODE的存在唯一性定理来保证。只要向量场 $v_t$ 满足适当的光滑性条件(如Lipschitz连续),ODE的解就是唯一的,并且可以反向求解。这意味着:
这种双向性使得CNF既可以用于生成(从噪声到数据),也可以用于推断(从数据到潜在表示)。
CNF的关键优势在于其理论的优雅性。变换的雅可比行列式——它告诉我们变换如何改变体积元素——可以通过以下公式计算:
$\log p_1(\mathbf{x}_1) = \log p_0(\mathbf{x}_0) - \int_0^1 \nabla \cdot v_t(\mathbf{x}_t) dt$
这里 $\nabla \cdot v_t$ 是向量场的散度,可以使用 torch.autograd
高效计算。这个公式的直观理解是:如果向量场在某个区域是发散的(散度为正),那么该区域的概率密度会降低;反之,如果向量场是收敛的(散度为负),概率密度会增加。
让我们通过一个具体的例子来理解这个公式。考虑一个二维的情况,其中向量场在某个圆形区域内是向外发散的(像一个源),而在区域外是向内收敛的(像一个汇)。随着时间的推移:
这个密度变化公式实际上是流体力学中连续性方程的一个特例。在流体力学中,连续性方程描述了质量守恒;在概率论中,它描述了概率守恒。这种跨学科的联系使得我们可以借用流体力学的直觉和工具来理解和设计生成模型。
这种连续性带来了几个重要优势:
CNF还与许多其他数学概念有着深刻的联系。例如:
🔬 研究线索:向量场的几何性质
CNF中向量场的几何性质(如旋度、散度)如何影响生成质量?是否可以通过约束向量场的几何特性(例如无旋场、保体积变换)来获得更好的生成模型?这涉及到微分几何和李群理论的深刻应用。例如:
尽管CNF在理论上优雅,但在实践中面临严重的计算挑战。让我们深入理解为什么这些挑战会成为实际应用的障碍。
要理解这些挑战的严重性,让我们首先回顾CNF的训练目标。在最大似然估计框架下,我们希望最大化观测数据的对数似然:
$\mathcal{L}(\theta) = \mathbb{E}{\mathbf{x}_1 \sim p{data}}[\log p_\theta(\mathbf{x}_1)]$
其中 $p_\theta$ 是由参数化向量场 $v_\theta$ 定义的模型分布。看起来简单,但计算这个目标函数却异常复杂。
似然计算的开销:计算 $\log p_1(\mathbf{x}_1)$ 需要执行一个复杂的计算流程:
反向ODE求解:给定一个数据点 $\mathbf{x}_1$ ,我们需要反向求解ODE从 $t=1$ 到 $t=0$ ,找到对应的初始点 $\mathbf{x}_0$ 。这就像是逆着河流追溯叶子的起点,计算上需要多步数值积分。
具体来说,我们需要求解: $\frac{d\mathbf{x}t}{dt} = -v{1-t}(\mathbf{x}t), \quad \mathbf{x}{t=0} = \mathbf{x}_1$
这个反向积分过程通常需要使用数值ODE求解器,如Runge-Kutta方法。每一步都需要评估向量场,而在深度学习中,这意味着一次神经网络的前向传播。
轨迹积分:沿着整个轨迹,我们需要累积散度项 $\int_0^1 \nabla \cdot v_t(\mathbf{x}_t) dt$ 。这要求在每个积分步骤都计算向量场的散度。
这个积分必须与ODE求解同步进行,因为我们需要知道每个时刻的位置 $\mathbf{x}_t$ 才能计算该点的散度。这创造了一个耦合的计算过程:
对于每个ODE求解步骤:
1. 计算当前位置的向量场 v_t(x_t)
2. 计算向量场的散度 ∇·v_t(x_t)
3. 更新位置 x_t
4. 累积散度贡献到总积分
神经网络调用:每个ODE求解步骤都需要调用神经网络来评估向量场 $v_t(\mathbf{x}_t)$ ,在训练过程中这意味着大量的前向和反向传播。
让我们量化这个开销:假设我们使用一个相对简单的ODE求解器,需要20步来获得足够的精度。那么:
想象一下,对于一张 $256 \times 256$ 的RGB图像(196,608维),每个训练样本可能需要数十次神经网络评估,这使得训练变得极其缓慢。在实践中,训练一个高质量的CNF模型可能需要数周时间,即使在强大的GPU集群上。
训练的不稳定性:直接最大化似然需要精确的ODE求解,但这在高维空间中充满挑战:
数值误差累积:ODE求解器的每一步都会引入小的数值误差,这些误差会沿着轨迹累积,特别是在高维空间中。
考虑一个简单的例子:假设每步的相对误差是 $\epsilon = 10^{-6}$ (这已经是相当高的精度)。经过 $n$ 步后,最坏情况下的误差可能达到 $n\epsilon$ 。对于需要100步的复杂流,累积误差可能达到 $10^{-4}$ ,这在高维空间中可能导致完全错误的结果。
更糟糕的是,这些误差在反向传播时会被放大。如果前向过程有误差,那么计算的梯度也会有误差,导致参数更新不准确。
梯度爆炸/消失:反向传播通过整个ODE轨迹时,梯度可能会指数级地增长或衰减,导致训练不稳定。
这个问题的根源在于链式法则。考虑简化的情况,梯度的传播大致遵循: $\frac{\partial \mathcal{L}}{\partial \theta} \approx \prod_{i=1}^n \frac{\partial \mathbf{x}{t_i}}{\partial \mathbf{x}{t_{i-1}}} \cdot \frac{\partial \mathcal{L}}{\partial \mathbf{x}_T}$
如果每个雅可比矩阵 $\frac{\partial \mathbf{x}{t_i}}{\partial \mathbf{x}{t_{i-1}}}$ 的谱范数大于1,梯度会指数增长;如果小于1,梯度会指数衰减。在深度ODE中控制这些谱范数是一个未解决的难题。
步长选择困境:使用较大步长会降低精度,使用较小步长会大幅增加计算成本。
这是一个典型的精度-效率权衡:
散度计算的复杂度:散度 $\nabla \cdot v_t = \sum_{i=1}^d \frac{\partial v_{t,i}}{\partial x_i}$ 的计算是一个关键瓶颈:
精确计算:对于 $d$ 维数据,需要计算 $d$ 个偏导数。使用自动微分,这需要 $O(d)$ 次反向传播,每次计算一个维度的导数。
让我们详细分析这个计算过程。假设向量场网络的前向传播成本是 $C$ ,那么:
Hutchinson迹估计:虽然可以使用随机估计方法将复杂度降到 $O(1)$ ,但代价是引入方差: \(\nabla \cdot v_t \approx \mathbb{E}_{\epsilon \sim \mathcal{N}(0, I)}[\epsilon^T \nabla_x (v_t \cdot \epsilon)]\)
这种方法的原理是利用了迹的随机估计。具体来说:
虽然计算复杂度降低了,但这种估计是有偏的,需要多个样本来降低方差。在实践中,可能需要5-10个样本才能获得可靠的估计,这部分抵消了计算节省。
方差-偏差权衡:使用更多的Hutchinson样本可以降低方差,但会增加计算成本。这创造了另一个困难的超参数选择问题。研究表明,不当的方差会严重影响模型的最终性能。
对于图像等高维数据,即使是 $O(1)$ 的估计也需要仔细调节以平衡方差和计算成本。
实际影响:这些计算瓶颈的综合效应是灾难性的。一个在CIFAR-10这样的小数据集上训练的CNF模型,可能需要:
这解释了为什么尽管CNF在理论上优雅,在实践中却很少被采用——直到流匹配的出现改变了这一局面。
流匹配(Flow Matching)的核心洞察是一个范式转换:与其费力地通过似然优化来间接学习向量场,不如直接学习连接两个分布的向量场本身。这个想法既简单又深刻,它彻底改变了我们训练连续流模型的方式。
要理解这个范式转换的重要性,让我们回顾一下传统CNF和流匹配的根本区别:
传统CNF的间接学习:
流匹配的直接学习:
让我们用一个类比来理解:假设你想教一个机器人从A点走到B点。传统CNF的方法就像是:让机器人尝试各种路径,然后根据到达B点的概率来调整。这需要机器人完整地走完路径,记录轨迹,计算到达的可能性——整个过程繁琐且容易出错。
而流匹配的方法是:直接告诉机器人在每个位置应该朝哪个方向走,走多快。我们不需要让机器人真的走完全程才能评估它的表现,只需要检查它在每个位置的”速度向量”是否正确。这种方法更直接、更高效。
具体来说,给定源分布 $p_0$ (如标准高斯)和目标分布 $p_1$ (数据分布),流匹配的目标是学习一个向量场 $v_\theta$ ,使得:
$\min_\theta \mathbb{E}{t \sim \mathcal{U}[0,1], \mathbf{x}_t \sim p_t} |v\theta(t, \mathbf{x}_t) - u_t(\mathbf{x}_t)|^2$
这个目标函数的含义是:
其中 $u_t$ 是生成概率路径 $p_t$ 的”真实”向量场——它定义了粒子应该如何移动才能实现从 $p_0$ 到 $p_1$ 的变换。
流匹配的理论基础
流匹配的有效性基于一个重要的理论结果:如果我们能够准确地学习向量场 $v_\theta \approx u_t$ ,那么通过求解ODE:
$\frac{d\mathbf{x}t}{dt} = v\theta(t, \mathbf{x}_t), \quad \mathbf{x}_0 \sim p_0$
得到的分布 $\mathbf{x}_1$ 将近似于目标分布 $p_1$ 。这个结果的直观理解是:如果我们知道了正确的”流速”,那么跟随这个流动就能到达正确的目的地。
数学上,这可以通过以下方式理解。设 $p_t^\theta$ 是由学习到的向量场 $v_\theta$ 生成的概率路径,$p_t$ 是真实的概率路径。如果 $v_\theta \approx u_t$ ,那么:
$\frac{\partial p_t^\theta}{\partial t} + \nabla \cdot (p_t^\theta v_\theta) \approx \frac{\partial p_t}{\partial t} + \nabla \cdot (p_t u_t) = 0$
这意味着 $p_t^\theta \approx p_t$ ,特别是 $p_1^\theta \approx p_1$ 。
流匹配的优势
但这里有一个关键挑战:如何获得训练样本 $(t, \mathbf{x}_t, u_t(\mathbf{x}_t))$ ?
这个挑战的本质是一个”循环依赖”问题:
更具体地说,考虑以下困难:
中间分布的未知性:给定 $p_0$ 和 $p_1$ ,存在无穷多种可能的概率路径 ${p_t}_{t \in [0,1]}$ 连接它们。每种路径对应不同的向量场。我们应该选择哪一种?
向量场的隐式定义:即使我们选定了一种概率路径,对应的向量场 $u_t$ 通常也没有解析形式。它是通过连续性方程隐式定义的: $\frac{\partial p_t}{\partial t} + \nabla \cdot (p_t u_t) = 0$ 从这个方程解出 $u_t$ 是非平凡的。
采样的困难:即使我们知道了 $u_t$ ,从中间分布 $p_t$ 采样通常也需要求解从 $p_0$ 出发的ODE——这正是我们想要避免的!
这看起来是一个”鸡生蛋”的问题:要学习向量场,需要知道中间分布;要知道中间分布,需要知道向量场。传统的解决方案可能会陷入迭代优化的复杂过程中。
条件流匹配正是为了打破这个循环而设计的。它的关键洞察是:与其试图直接处理复杂的边缘分布和向量场,不如构造简单的条件分布,然后利用边缘化的性质来恢复我们需要的目标。这种方法既优雅又实用,让流匹配从一个理论上有趣但实践上困难的想法,变成了一个强大的实用工具。
条件流匹配(Conditional Flow Matching, CFM)通过构造条件概率路径巧妙地解决了采样问题。这个方法的优雅之处在于,它将一个复杂的全局问题分解为许多简单的局部问题。
核心思想可以分为三个关键步骤:
定义条件路径:与其试图直接构造从整个分布 $p_0$ 到 $p_1$ 的复杂路径,CFM为每一对点构造简单的条件路径。对每个数据点 $\mathbf{x}_1 \sim p_1$ 和对应的噪声点 $\mathbf{x}_0 \sim p_0$ ,定义一个简单的路径连接它们。最常用的是线性插值:
$\mathbf{x}_t = (1-t)\mathbf{x}_0 + t\mathbf{x}_1$
这就像是为每对起点和终点画一条直线。虽然单条直线很简单,但所有直线的集合可以形成复杂的流场。
条件向量场:对于线性路径,计算对应的向量场非常简单。如果粒子沿着直线从 $\mathbf{x}_0$ 移动到 $\mathbf{x}_1$ ,它的速度是恒定的:
$u_t(\mathbf{x}_t | \mathbf{x}_0, \mathbf{x}_1) = \frac{d\mathbf{x}_t}{dt} = \mathbf{x}_1 - \mathbf{x}_0$ |
注意这个向量场不依赖于时间 $t$ ——粒子始终以相同的速度沿直线移动。这种简单性是线性插值的一大优势。
边缘化的魔法:CFM的关键洞察是一个深刻的数学事实:如果我们对所有可能的 $(\mathbf{x}_0, \mathbf{x}_1)$ 对进行平均(边缘化),得到的边缘向量场 $u_t(\mathbf{x}_t)$ 正好生成了从 $p_0$ 到 $p_1$ 的有效流。
直观地说,虽然每条单独的路径只连接一对点,但当我们考虑所有可能的路径时,它们的集体效应创造了一个将整个分布 $p_0$ 变换到 $p_1$ 的向量场。
这种方法的美妙之处在于,它将一个困难的问题(学习复杂的全局向量场)转化为一个简单的问题(匹配条件向量场)。更重要的是,这种转化使得训练变得极其高效。
💡 实现技巧:高效采样
CFM的训练算法惊人地简单:
整个过程完全避免了ODE求解、似然计算和复杂的采样过程!每个训练步骤的计算成本与训练一个简单的回归网络相当。
🔬 研究线索:非线性路径设计
虽然线性路径简单有效,但它们可能不是最优的。研究问题包括:如何设计更好的条件路径?例如,可以考虑测地线路径(在某种度量下的最短路径)、避开低密度区域的路径、或者学习数据依赖的路径。这是一个活跃的研究领域,涉及最优传输理论和流形学习。
流匹配与最优传输(Optimal Transport, OT)理论有着深刻的联系。要理解这种联系,让我们先从一个直观的例子开始:想象你是一个物流公司的经理,需要将仓库中的货物运送到各个商店。OT理论研究的正是如何以”最低成本”完成这种分配任务——只不过在我们的情况中,”货物”是概率质量,”运输”是从一个分布到另一个分布的变换。
最优传输理论有着悠久的历史,可以追溯到18世纪法国数学家Gaspard Monge的工作。Monge最初研究的问题非常实际:如何以最小的工作量将一堆沙土搬运到另一个地方来建造防御工事。这个看似简单的问题,实际上蕴含着深刻的数学结构。
Monge问题的现代表述是:寻找一个映射 $T: \mathbb{R}^d \to \mathbb{R}^d$ ,使得:
$\inf_T \int_{\mathbb{R}^d} c(\mathbf{x}_0, T(\mathbf{x}_0)) p_0(\mathbf{x}_0) d\mathbf{x}_0$
其中 $c(\mathbf{x}, \mathbf{y})$ 是成本函数,它衡量将单位质量从 $\mathbf{x}$ 运送到 $\mathbf{y}$ 的代价。
成本函数的选择至关重要:
然而,Monge问题有一个根本性的限制:它要求每个源点必须整体地映射到一个目标点。这在某些情况下可能没有解。例如,如果源分布是一个点质量,而目标分布是均匀分布,那么没有办法通过一个确定性映射来实现这种变换。
Kantorovich的松弛解决了这个问题。与其寻找确定性映射,Kantorovich允许”分割”质量——一个源点的质量可以被分配到多个目标点。数学上,这通过引入联合分布(或称”传输计划”)$\pi(\mathbf{x}, \mathbf{y})$ 来实现:
$\inf_\pi \int_{\mathbb{R}^d \times \mathbb{R}^d} c(\mathbf{x}, \mathbf{y}) d\pi(\mathbf{x}, \mathbf{y})$
其中 $\pi$ 的边缘分布必须分别是 $p_0$ 和 $p_1$ 。
Wasserstein距离是当成本函数为距离的幂次时,最优传输成本的特殊情况:
特别地,$W_2$ (使用平方欧氏距离)在理论和应用中最为重要,因为它与许多几何和物理概念自然地联系在一起。
静态的Monge-Kantorovich问题告诉我们最优的”配对方案”,但没有告诉我们质量是如何从源移动到目标的。Benamou和Brenier在2000年提出了一个革命性的想法:与其只关注起点和终点,不如研究整个运输过程的动力学。
想象一下密度分布的演化就像流体的流动。在每个时刻 $t \in [0,1]$ ,我们有一个概率分布 $p_t$ ,它从 $p_0$ 开始,最终到达 $p_1$ 。这个演化由一个速度场 $v_t$ 驱动,满足连续性方程:
$\frac{\partial p_t}{\partial t} + \nabla \cdot (p_t v_t) = 0$
这个方程有着深刻的物理含义:
Benamou-Brenier公式将最优传输问题重新表述为一个变分问题:
$W_2^2(p_0, p_1) = \inf_{p_t, v_t} \int_0^1 \int_{\mathbb{R}^d} |v_t(\mathbf{x})|^2 p_t(\mathbf{x}) d\mathbf{x} dt$
这个公式的美妙之处在于它的物理直觉:
这种动态视角带来了几个重要洞察:
最短路径原理:在Wasserstein-2几何中,最优传输路径是连接两个分布的”测地线”(最短路径)。就像在曲面上两点之间的最短路径是测地线一样。
位移插值:最优传输路径提供了一种在分布之间进行插值的自然方式。对于时刻 $t$ 的分布 $p_t$ ,它是 $p_0$ 和 $p_1$ 的”位移插值”(displacement interpolation),保持了分布的几何结构。
速度场的特性:最优传输的速度场有一个重要性质——它是某个势函数的梯度(至少在适当的正则性条件下): $v_t(\mathbf{x}) = \nabla \phi_t(\mathbf{x})$
这意味着最优传输的流动是”无旋的”,没有涡流或循环。
现在我们可以理解流匹配与最优传输之间的深刻联系了。流匹配可以被视为一种实用的方法来近似求解最优传输问题,而不需要直接处理其计算复杂性。
理论联系: 流匹配的目标函数——最小化模型向量场 $v_\theta$ 与真实向量场 $u_t$ 之间的L2距离——与Benamou-Brenier公式有着密切的关系。让我们仔细分析这种联系:
为什么线性插值也有效?
虽然线性插值不是最优的,但它有几个实际优势:
最优传输引导的改进:
研究者们提出了多种方法来结合最优传输的理论优势和流匹配的实践效率:
实践意义:
流匹配作为最优传输的实现,为我们提供了:
🔬 研究线索:最优传输与生成质量
一个开放的研究问题是:在什么条件下,使用更接近最优传输的路径会显著提高生成质量?这涉及到数据流形的几何性质、噪声分布的选择、以及具体应用场景的需求。特别是在高维空间中,”最优”的含义本身就需要仔细定义。
流匹配的有效性依赖于一个优雅的数学性质:直接匹配条件向量场可以正确地学习到边缘向量场。
让我们更正式地定义这个思想。
条件概率路径:给定一对样本 $(\mathbf{x}_0, \mathbf{x}_1) \sim q$ ,我们定义一个条件概率路径 $p_t(\mathbf{x} | \mathbf{x}_0, \mathbf{x}_1)$ 。这是一个随时间 $t$ 演化的分布,满足 $p_0(\mathbf{x} | \mathbf{x}_0, \mathbf{x}_1) = \delta(\mathbf{x} - \mathbf{x}_0)$ 和 $p_1(\mathbf{x} | \mathbf{x}_0, \mathbf{x}_1) = \delta(\mathbf{x} - \mathbf{x}_1)$ 。 |
与概率路径对应,我们也有条件向量场 $u_t(\mathbf{x} | \mathbf{x}_0, \mathbf{x}_1)$ 和边缘向量场 $u_t(\mathbf{x})$ 。它们通过连续性方程联系在一起。一个关键的数学结论是,边缘向量场是条件向量场在后验分布 $q(\mathbf{x}_0, \mathbf{x}_1 | \mathbf{x}_t)$ 下的期望: |
$u_t(\mathbf{x}t) = \mathbb{E}{q(\mathbf{x}_0, \mathbf{x}_1 | \mathbf{x}_t)}[u_t(\mathbf{x}_t | \mathbf{x}_0, \mathbf{x}_1)]$ |
我们的目标是让模型 $v_\theta(t, \mathbf{x})$ 学习边缘向量场 $u_t(\mathbf{x})$ 。损失函数为: $L_{FM}(\theta) = \int_0^1 \mathbb{E}{p_t(\mathbf{x}_t)}[|v\theta(t, \mathbf{x}_t) - u_t(\mathbf{x}_t)|^2] dt$ 直接优化这个损失函数是困难的,因为我们无法轻易地从 $p_t$ 或 $u_t$ 中采样。
然而,通过巧妙的数学变换,可以证明这个损失函数等价于一个更容易处理的条件流匹配(CFM)损失: $L_{CFM}(\theta) = \int_0^1 \mathbb{E}{q(\mathbf{x}_0, \mathbf{x}_1)} \mathbb{E}{p_t(\mathbf{x}t|\mathbf{x}_0, \mathbf{x}_1)} [|v\theta(t, \mathbf{x}_t) - u_t(\mathbf{x}_t|\mathbf{x}_0, \mathbf{x}_1)|^2] dt$
这个形式的妙处在于,我们可以通过以下方式简单地获得训练样本:
采样 $\mathbf{x}_t \sim p_t(\cdot | \mathbf{x}_0, \mathbf{x}_1)$ 。 |
计算条件向量场 $u_t(\mathbf{x}_t | \mathbf{x}_0, \mathbf{x}_1)$ 。 |
用梯度下降优化 $|v_\theta(t, \mathbf{x}_t) - u_t(\mathbf{x}_t | \mathbf{x}_0, \mathbf{x}_1)|^2$ 。 |
对于线性插值路径 $\mathbf{x}_t = (1-t)\mathbf{x}_0 + t\mathbf{x}_1$ ,后两步变得极其简单: $\mathbf{x}_t$ 是确定的,向量场就是 $\mathbf{x}_1 - \mathbf{x}_0$ 。这使得训练过程完全“模拟免费”(simulation-free)。
流匹配框架与我们在前几章学习的扩散模型有着深刻的统一性。
回想一下,任何扩散SDE都对应一个概率流ODE: $dx_t = [f(x_t, t) - \frac{1}{2} g(t)^2 \nabla_{x_t} \log p_t(x_t)] dt$ 这个ODE描述了一个确定性的从噪声到数据的变换路径,它本身就是一个连续正则化流!它的向量场是 $v_t(x_t) = f(x_t, t) - \frac{1}{2} g(t)^2 s_\theta(x_t, t)$ 。
分数匹配的目标是: $L_{SM}(\theta) = \int_0^T \mathbb{E}{p_t(\mathbf{x}_t)}[|\mathbf{s}\theta(t, \mathbf{x}t) - \nabla{\mathbf{x}t} \log p_t(\mathbf{x}_t)|^2] dt$ 流匹配的目标是: $L{FM}(\theta) = \int_0^1 \mathbb{E}{p_t(\mathbf{x}_t)}[|\mathbf{v}\theta(t, \mathbf{x}_t) - \mathbf{u}_t(\mathbf{x}_t)|^2] dt$ 两者都在学习一个与时间相关的函数(分数或向量场),以定义一个从噪声到数据的ODE。流匹配可以看作是更广义的框架,而扩散模型的概率流ODE是其中的一个特例。
流匹配在训练效率上通常优于传统的扩散模型:
在实践中,如何选择条件概率路径 $p_t(\mathbf{x}|\mathbf{x}_0, \mathbf{x}_1)$ 是一个关键的设计决策。
训练完成后,我们得到了一个向量场 $v_\theta(t, \mathbf{x})$ 。生成新样本的过程就是求解从 $t=0$ 到 $t=1$ 的ODE:
由于这是一个标准的ODE,我们可以利用数值分析领域的各种高效求解器:
在流匹配中实现条件生成非常自然。如果我们要生成以条件 $c$ 为指导的样本,只需将 $c$ 作为额外输入提供给神经网络即可: $v_\theta(t, \mathbf{x}, c)$ 训练目标也相应地变为条件期望: $\min_\theta \mathbb{E}{p(c)} \mathbb{E}{t, q(\mathbf{x}0, \mathbf{x}_1|c)} [|v\theta(t, \mathbf{x}_t, c) - u_t(\mathbf{x}_t|\mathbf{x}_0, \mathbf{x}_1)|^2]$ 这使得流匹配可以轻松地应用于文本到图像、类别条件生成等任务。