学习扩散模型的积分2026年5月6日阅读时间约84分钟。从扩散模型中采样是一个迭代过程每一步去噪器会估计输入空间中路径的切线方向通过沿着这个方向反复迈出小步来沿着路径移动即计算跨噪声水平的积分将简单噪声分布中的样本转换为目标分布中的样本并描绘出连接路径。那么能否训练神经网络直接预测这个积分以加快采样速度呢答案是肯定的欢迎来到流映射的世界自扩散模型兴起人们一直在寻找使其采样更快、成本更低的方法。大约两年前有人写了一篇关于扩散蒸馏的博客文章这是减少获得高质量样本所需步数的主要工具之一此后虽各种蒸馏方法核心原理未变但出现了许多新变体。在这篇博客文章中将深入探讨流映射。扩散模型通过预测路径上每个点的切线方向来描述噪声和数据之间的路径而流映射能从同一路径上的任何一点预测该路径上的其他任何点可用于更快的采样还有实现更高效的基于奖励的学习和改进采样的可控性等用途最近已成为热门研究主题。定义流映射相对简单但构建和训练它们有许多不同方法且相关文献中充斥着不同的形式主义和术语令人困惑。将根据Boffi等人提出的分类法来澄清一些问题。流映射建立在扩散模型的思想基础之上假设读者对这些思想有一定了解熟悉向量微积分有助于理解其训练方式若不熟悉文章其他部分仍可能引起兴趣。可考虑阅读之前的一些博客文章获取背景信息Chieh - Hsin Lai及其同事发表的关于扩散模型的综合专著也值得推荐既适合复习也适合入门。以下是目录绘制从噪声到数据的路径三种一致性概念是否进行反向传播从头开始训练流映射流映射的实际应用应用与扩展替代策略总结思考致谢参考文献绘制从噪声到数据的路径从扩散模型中采样如今扩散模型有许多不同的采样算法可分为随机或确定性两类。确定性采样是流映射发展的基础之前已写过其奇妙之处这里值得再次回顾。要点如下若有去噪器模型能根据有噪声的观测值预测干净原始数据的期望值就可构建两种不同的迭代生成过程。随机过程最直观每次迭代从给定当前有噪声观测值的条件分布中采样逐步逆转噪声过程可使用去噪器模型的预测构建分布的近似时间步之间的噪声水平间隔越小近似越准确多次迭代后噪声逐渐消失最终得到干净数据分布的样本这就是原始DDPM算法的工作原理基于扩散模型随机微分方程形式的采样算法在输入空间中也会产生类似的随机轨迹。确定性过程除开始时外任何时候都不涉及随机采样给定当前有噪声的观测值和去噪器的预测有确定性的更新规则可得到下一个值可递归应用该规则直到得到最终结果。该过程每一步都是确定性的没有随机性从给定起始点只能到达特定终点。这样的更新规则可在概率框架或使用常微分方程形式推导出来。Flow Matching中使用的默认采样算法是确定性过程的另一个实例神经网络通常被参数化为预测速度而不是干净输入但由于速度、预测值和观测值之间存在线性关系这只是同一底层算法的一个变体。所有这些算法的共同点是每个时间步有噪声样本的边际分布是保持不变的条件分布在确定性情况下会坍缩为狄拉克分布。边际分布的这种保持对于数据端和噪声端也同样适用但如果看具体单个样本采样过程在输入空间中描绘出的路径会非常不同。下面是采样过程的可视化左边是随机采样右边是确定性采样展示了一维和二维示例目标分布是两个高斯分布的混合从噪声分布的样本开始随着采样进行分布逐渐转变为目标混合分布。随机情况下单个样本所经过的路径曲折不稳定确定性情况下则平滑呈缓曲线两种不同的微观行为产生了相同的宏观行为。航位推算用扩散模型跟踪路径确定性采样算法的存在意味着噪声和数据分布中的单个样本之间存在确定性的双射映射每个噪声样本与特定的数据样本相关联反之亦然。从噪声样本开始可沿着输入空间中的路径到达相应的数据样本只需沿着路径上每个点的切线方向前进该方向由去噪器预测也可反向沿着路径前进。下图展示了噪声样本、对应数据源样本、连接它们的路径、路径上的中间点以及去噪器在该点的预测。若读过之前关于引导的几何或蒸馏的文章可能会熟悉这种类型的图前一篇文章还包含关于在二维中表示高维对象的危险警告从二维直觉中得出结论时应格外小心。使用去噪器预测来遍历这些路径是无记忆的去噪器的唯一输入是输入空间中的当前位置和当前噪声水平根据这些信息预测移动方向它也是短视的无法提前预知最终目的地只指示下一步的方向不能使用其他信息。这种描述路径的方式让人联想到通过航位推算进行导航。由此可知特定噪声和数据源样本对之间的路径必须是唯一的不同样本对之间的路径永远不会交叉因为去噪器无法区分多条交叉路径只知道当前位置而不知道在哪条路径上。从技术上讲这个论点仅证明了路径在特定空间中不能交叉但在理论上它们仍可能在另一个空间中交叉不过在实践中可忽略这种边缘情况因为不同时间步的有噪声中间样本的分布基本上不会有重叠且最近一些论文表明不将当前噪声水平输入去噪器通常效果一样好甚至更好因为去噪器能从观测值本身推断出噪声水平。路径在实践中从不交叉的事实使得使用去噪器进行无记忆遍历成为可能在基于ODE的采样中路径有时被称为解轨迹。由于路径是弯曲的采样时理想情况下应采取无限多个无穷小的步骤以确保不“偏离”路径但实践中采取小而有限的步骤会导致近似误差这些误差可能在采样过程中累积近似的质量取决于步数和路径的弯曲程度路径越弯曲需要的步数越多。幸运的是通常通过计算上可行的步数通常少于100步可获得不错的结果。尽管如此人们一直在寻求最小化路径曲率以实现更快的采样这是Flow Matching和Reflow过程背后的动机。绘制地图用流映射绘制路径使用去噪器模型学习预测路径上任何一点的切线方向是描述路径的一种方法流映射则提供了一个替代方案在路径上的任何一点它们都可以预测该路径上任何其他点的位置。用F(xs, s, t)来描述流映射它将两个时间步作为输入分别对应源和目标噪声水平。给定数据和噪声之间的双射理想的流映射允许从路径上的任何位置跳到该路径上的任何其他位置。通常从噪声向数据源移动所以s t但情况不一定如此实际上会用神经网络来近似这个函数。接下来将假设使用Flow Matching中常用的噪声调度这可能是目前最受欢迎的选择因为它使事情变得简单。虽然可以在更一般的设置中推导所有内容但会使数学变得复杂更难理解。将坚持原始扩散的时间方向约定t 0对应数据源分布t 1对应噪声。有关这些选择的影响的更多信息可查看关于噪声调度的博客文章。有了这些选择给定去噪器路径的切线方向或速度为v_t v(x_t, t) (x_t - f(x_t, t)) / t。在Flow Matching设置中通常将神经网络参数化为直接预测函数v(x_t, t)而不是干净输入的期望值但很容易从一个得到另一个。现在可以通过对速度进行积分来构建流映射F(x_s, s, t) x_s ∫_s^t v(x_τ, τ) dτ。这个积分表示沿着路径采取无限多个无穷小的步骤累积预测的切线方向将其加到起点上最终会到达目标点。在从噪声到数据源的典型情况下s t这使得积分下限高于上限反映了扩散是根据正向噪声过程定义的。