从数学的角度解释当今最流行的t2l框架:diffusion和rectified flow,从高层理论解释如何一眼看破在stable diffusion和flux各版本训练/推理中出现的trick。也可以看作MIT S186 diff and flow matching的理论注解,毕竟这堂课就讲这俩模型。
已经整理为pdf文件:
flow matching的想法很简单,过去的生成算法都是encoder-decoder,训练数据要从encoder流入latent space,推理时再从latent space出发流到真实图像分布,那为啥不直接学习后者的向量场呢?
下面给出数学描述:
假设我们定义了一条路径
这条路径的演化被如下的ode的flow推动:
其中
良好定义的路径还必须满足概率守恒方程(即连续性方程):
它其实就是flow matching版本的Fokker-Planck方程,由归一化条件/质量守恒得到。注意这与diffusion不同:diffusion的SDE自然对应随机变量的演化,所以归一化条件自动满足,其Fokker-Planck方程由SDE本身导出。 所以flow matching有个问题:最终流向的分布全测度未必是1,此时根据归一化分布采样就好。
假设我们从数据分布采样到
然后在路径上给定中间时刻
那么我们训练
这个损失就是在逼近网络匹配真实的速度场
在训练好
从初始简单分布(如标准高斯)在
然后解下面的常微分方程(ODE):
将它从
路径
常见的选择包括 高斯插值路径(Gaussian paths),
或者设计成与 最优传输路径(optimal transport) 更贴近,
从而使得速度场更为合理、高效。
比如在 Flow Matching 的原始工作里,就提出了若干路径选项,
其中就包括使用最优传输插值的路径。
rectified flow认为:为了减少推理步数,速度场
所以训练目标就变成最小化以下损失函数:
注意:我不喜欢写
这种数学上非常糟糕的表达式--这里面的变量没法解释:虽然对确定的采样条件向量场是直线,但是整个速度场并非直线。正确的思路是:先用rf的loss毕竟这种“局部直线”的速度场v,然后再用v做推理:
问题来了,对两个分布
其中随机变量满足:
这里
所以这个MSE loss是有严格下界的,不小于Hilbert空间里
那啥时候能把loss降到0呢?至少理论上我们希望如此,不然理论上都降不到0实际训练就更糟糕了。熟悉应用数学的立马就能看出flow matching就是在做一种最优传输。
学调和分析的肯定熟悉Coupling,各种Interpolation定理都要用;学随机过程的必然也不陌生,Markov chain的极限分布定理就是这么来的。最优传输的coupling就是一回事:要把初始高斯分布和最终数据分布给配个对,才方便分布的传输。
给定两个概率分布
我们想描述“如何把一个随机变量
最一般的方式是考虑它们的联合分布
所有满足该条件的联合分布构成一个集合:
这就是所谓的 Kantorovich 耦合集合,
它包含了所有可能的“匹配方式”(couplings),即所有从
Monge 耦合(Monge coupling) 是其中一种“极端特殊”的耦合形式。
它要求:对每个起点
换句话说,Monge 耦合由一个确定性映射
即
当代价函数为平方欧氏距离:
并且
Brenier’s Theorem (1987):
存在唯一的最优 Monge 映射
这个映射
因此,Monge 映射
我们现在来证明:Brenier映射
确实是起点指向终点的线段。
定义函数:
因为
根据数学知识其梯度
是拓扑同胚。
由此可知,对于
这一步只用到“二次代价
从而保证
所以二次代价的最优传输问题看起来似乎和rf的loss很像,但实际上是个单向充分条件的关系:前者只有唯一解,只是后者众多解中的一个。后面我们还要找出rf loss的更多最优解来为训练过程的time weighted策略做解释(类似diffusion的snr)。
另外数学知识是:
令
于是对任意
这表明在最优传输($T = \nabla \varphi$)下, rf的loss是0,最优速度场确实是直线。
讲了一些理论,我们搞清楚了什么条件下rf的loss会更低,现在我们就将其应用于实践,看看stable diffusion3是如何做的。
在直接用rf的loss训练模型后,轨迹的直线性没有保证,因为随机采样噪声和样本点对应一个随机的coupling,根据上面的理论我们需要一个一一对应的coupling:
此时理论上loss能降到0,实际的训练也验证了这一点:只要用直接训练的rf模型生成噪声-图像对,并喂进去训练一轮,loss就能大幅下降;换句话说,这是属于rf的self instruct和one-epoch原则.
先介绍一下动态形式的最优传输问题.
Benamou–Brenier (2000) 证明了如下的动态版本最优传输问题:
约束条件为连续性方程(概率守恒):
最优解满足:
其中
这意味着:
在最优传输(Optimal Transport, OT)的动态形式下,
最优的速度场在每个时刻都是梯度场(irrotational field),
结合我们之前对rf的loss的讨论,动态最优传输的解也是最优rf解;换言之,我们可以采取不同的时间步采样,来使得loss下降的同时提高模型的泛化性。这里和diffusion的snr还不太一样:snr是按照时间步均匀采样再对loss加权,这里直接在时间步采样时加权。
2024年stable diffusion组的实验《Improving the Training of Rectified Flows》。
列: CIFAR-10、AFHQ-64、FFHQ-64;每列下面给出 NFE=1 或 NFE=2(步数)。
行: 从旧 2-Rectified Flow 基线开始,逐项叠加训练策略。
| 方法 | CIFAR-10 (1/2步 FID) | AFHQ-64 (1/2步 FID) | FFHQ-64 (1/2步 FID) | 说明 |
|---|---|---|---|---|
| Base [Liu et al., 2022] (A) | 12.21 / — | — | — | 旧版 2-RF 基线,一步表现较差 |
| (A) + EDM init + large batch (B) | 7.14 / 3.61 | ↓ (~8→5) | ↓ (~8→5) | 用 EDM 教师预热并扩大 batch |
| (B) + Our |
5.17 / 3.37 | ↓ | ↓ | 改进路径分布,更贴近 OT 能量 |
| (C) + Huber (D) | 5.24 / 3.34 | ± | ± | 损失函数改为 Huber,变化小 |
| (C) + LPIPS-Huber (E) | 3.42 / 2.95 | ↓ | 5.21 / 4.26 | 感知度量 LPIPS + Huber,大幅提升 |
| (C) + LPIPS-Huber$_t$ (F) | 3.38 / 2.76 | 4.11 / 3.12 | 5.65 / 4.41 | 加入时间加权版本,主推方案 |
| (F) + Real data (G) | 3.07 / 2.40 | — | — | 混入真实对齐数据,最佳结果 |
结论:
横向看,一步 / 两步 FID 一路下降;关键贡献点是:
- EDM 预热
- 感知加权路径分布
$p_t$ - LPIPS-Huber(带时间权重)
仅一轮 ReFlow,就将一步 FID 从 12.21 降到 3.38(约 72% 改进)。
列: NFE(步数,越少越难)、FID(↓越好)、IS(↑越好)。
按方法分组:传统扩散、蒸馏扩散、score 蒸馏、consistency、Rectified Flow。
| 方法类别 | 一步 (NFE=1) | 两步 (NFE=2) | 说明 |
|---|---|---|---|
| Rectified Flows (ours) | 3.38 | 2.76 | 本文方法 |
| Consistency / iCT-deep | 2.51 | — | 一步最强 |
| Score Distillation (DMD) | 2.62 | — | 很强 |
| CTM + GAN | 1.98 | — | 属于 GAN 精炼路线,范式不同 |
结论:
在不依赖 GAN 精炼的路线下,本文 1–2 步 FID 进入第一梯队:
一步略逊 iCT-deep / DMD,但优于大多数经典蒸馏方法;两步性能极具竞争力。
列: NFE、FID(↓)、Precision(↑)、Recall(↑)。
| 方法 | 一步 (NFE=1) | 两步 (NFE=2) | Precision / Recall | 说明 |
|---|---|---|---|---|
| Rectified Flows (ours) | 4.31 | 3.64 | ↑ | 本文方法 |
| Consistency (iCT) | 4.02 | 3.20 | ↑↑ | 略强 |
| CD / PD / DEIS 等蒸馏法 | 5–6 | 4–5 | — | 较弱 |
结论:
在更困难的 ImageNet-64 上,本文超越多数蒸馏法,与 iCT 差距缩小,保持第一梯队竞争力。
三张子图分别为 CIFAR-10、AFHQ-64、FFHQ-64 的 FID–NFE 曲线。
- Euler / Heun: 常见一阶 / 二阶 ODE 求解器。
- + new sampler: 作者提出的新更新规则(含历史相关项)。
观察:
- Heun > Euler:二阶法少步时更稳定;
- “+ new sampler” 进一步降低少步 FID(1–4 步最明显);
- 大步数时曲线趋近,说明“改进采样器”主要提升少步性能。
结论: 少步采样推荐 “Heun + 新更新规则”。
| 方法 | 合成配对前向次数 (M) | 训练前向 (M) | 总成本相对值 |
|---|---|---|---|
| ReFlow (本文) | 395 | 1,433.6 | ×1 |
| CD (Consistency Distillation) | — | 5,734.4 | ×3.1 |
| CT (Consistency Training) | — | 2,867.2 | ×1.5 |
结论:
在达到相同少步指标下,ReFlow 的算力成本最低,比 CD 便宜约 3 倍,也低于 CT。
(a) Reconstruction Loss vs. NFE:
MSE 随 NFE 上升而下降;本文曲线明显低于 EDM,说明可逆性 / 重建性更好。
(b) 分布高斯性检验:
用
(c) 视觉例子:
(8 + 8) 步 “数据 → 噪声 → 重建”:
- EDM 的噪声不自然、重建模糊;
- 本文噪声更“真”、重建更清晰。
结论:
改良版 Rectified Flow 不仅少步采样优异,
同时具备更好的 可逆性与重建稳定性,支持高质量反演与编辑。
所以SD3在模型更大、分辨率更高的同时采样步数还比之前少很多。
1.动态OT问题的物理味道很浓,熟悉场论的同学一定看出来它其实就是在说自由流体是无旋的,或者自由磁场是无旋的,而欧氏空间/单连通区域的无旋场就是梯度场;另外Arnold的MMCM里面也提到一些从几何/对称性角度出发分析这个二次泛函的方法。
2.从数学角度来看,动态OT其实类似于Chern-Simons functional的临界点曲率都是0,或者是概率版本的Morse flow(W2空间上的geodesics)。另外二次OT问题其实就是静态的二次代价强化学习,动态OT也就是一种强化学习,或者从应用数学角度来看,都统一到随机最优控制的框架下(ref Arnold stochastic odes,读了可以理解很多现象,比如为什么SGD非常roboust:不稳定的ode加上噪声项就能变稳定)。
Benamou & Brenier (2000) 给出的动态表述为:
约束条件:
这里
这其实就是一个最优控制问题,只不过没有随机性,且 cost 是能量形式
强化学习(Reinforcement Learning, RL)的连续时间极限(或随机控制形式)为:
约束条件:
其中:
-
$r$ 是即时奖励函数; -
$f$ 是系统动力学(即环境转移方程); -
$\sigma , dW_t$ 是随机扩散项。
这在形式上就是带随机扩散项的最优控制问题。
OT 的连续性方程:
与 RL 的 Fokker–Planck 方程:
结构完全一致,只是强化学习多了一个“噪声项”。
- 在 OT 中,$v_t$ 控制密度流的确定性演化;
- 在 RL 中,$\pi(a|s)$(策略)控制带噪声的状态分布演化。
因此,强化学习的策略
而 OT 是噪声为 0、单步完成的极限情形。
近年来出现了一个研究方向:Dynamic Optimal Transport (DOT) 或 Stochastic OT (SOT),
它直接建立了 RL 与 OT 的统一框架。
| 版本 | 数学形式 | 对应到 RL |
|---|---|---|
| deterministic OT | deterministic policy | |
| stochastic OT |
s.t. |
stochastic policy / MDP |
| controlled OT | 加入奖励项或控制能量正则 | entropy-regularized RL |
强化学习可以看作是最优传输的动态随机推广:
- 将“最小化传输代价”改为“最大化累积奖励”;
- 将“固定初末分布”改为“受动力学约束的状态分布”;
- 将“确定性路径”推广为“随机过程下的分布流动”。
这为 Rectified Flow 与 RL 提供了共同的数学框架:
它们都在优化“路径分布 + 速度场”的能量泛函,只是目标函数(cost/reward)与随机性不同。
3.关于self instruct
Reflow可以从最优传输导出,那llm的sel instruct呢?其实早在二三十年前统计学习主宰nlp的时代人们就指出这种思想就是EM算法:
x,z分别是训练数据,真实数据。
当 E 步直接取最大后验(hard assignment)时,有:
此时 M 步变为:
这等价于在“伪标签”
在文本生成领域,Self-Instruct 正是这种“hard EM”机制的体现:
-
生成阶段(E 步):
相当于执行$\arg\max_y , p_\theta(y \mid x)$ ,即模型自己生成伪标签或答案; -
微调阶段(M 步):
再在这些伪样本上重新拟合$p_\theta$ ,更新模型参数。
- EM 算法的“E 步”提供“软”或“硬”的隐变量推断;
- “M 步”则在这些隐变量(或伪标签)上重新训练;
- 自蒸馏(Self-Distillation)或 Self-Instruct 都是在同一模型上反复执行这种更新。
再回忆一下,其实早期的生成算法都是这么推出的,比如ae/vae/diffusion等。
4.关于one-epoch原则
在早期的协同过滤(Collaborative Filtering)或矩阵分解(Matrix Factorization, MF)框架中,
算法通常只执行 单步(one-step)用户–物品更新:
其中:
-
$p_u$ :用户向量; -
$q_i$ :物品向量。
它们通过一次梯度更新或闭式解求得,不进行多轮传播。
- 保证训练简单、收敛快;
- 避免多步传播导致的噪声放大;
- 在 在线推荐 或 流式更新 场景中尤为重要,强调 “一次更新即生效”。
- ALS / SGD 矩阵分解:每次仅对一对 (user, item) 做一次梯度下降;
- FM / FFM (Factorization Machines):交互特征仅做一次线性组合,无多层传播。
现代推荐系统常基于 用户–物品二分图(user–item graph)。
GNN 模型(如 GCN、LightGCN、NGCF)通常采用多层传播:
研究发现:
- 多层($k > 2$)传播会出现 过平滑(over-smoothing);
- 噪声用户或冷启动节点的错误会被放大。
在推荐图中,只传播 一次或两次邻接信息 已足够。
深层传播不仅计算冗余,还会损害个性化表达。
-
🔹 LightGCN(He et al., SIGIR 2020)
明确提出删除非线性与权重矩阵,只保留一次加权平均传播。 -
🔹 SGL / SimGCL / UltraGCN
等后续工作均遵循此原则,强调结构简化与高效传播。
- 训练更快:无需多层传播;
- 泛化更强:避免过平滑;
- 效果更优:性能接近或超越深层 GNN。
| 推荐系统 | 生成模型 |
|---|---|
| One-Step / Shallow Update | One-Round ReFlow |
| 近似一次传播,达到全局效果 | 近似一次流动,逼近最优传输路径 |
| 控制噪声放大与传播深度 | 控制轨迹误差与采样复杂度 |
➡️ 二者的核心思想一致:
“一次传播” ≈ “最优
传统图卷积网络(GCN)的单层更新为:
其中包括两部分计算:
- 线性变换:$W^{(k)}$
- 非线性激活:$\sigma(\cdot)$
LightGCN 直接把这两部分都删掉,仅保留邻居平均传播:
最终的用户表示是多层结果的加权平均:
也就是说,LightGCN 只在图结构上传播,完全不引入额外的权重矩阵或非线性激活。
在推荐系统中,真正关键的是:
谁和谁相连,以及相连多远。
LightGCN 的传播可写作:
其中
这相当于在用户–物品二分图上统计 K 阶邻域共现模式:
| 阶数 | 含义 |
|---|---|
| 一阶 | 直接交互(用户喜欢的物品) |
| 二阶 | 共同喜欢的物品(用户之间相似) |
| 三阶 | 间接相似用户 / 跨域兴趣传播 |
这些高阶邻接关系本身已隐式构成复杂的非线性依赖。
初始嵌入
训练目标通常为 BPR(Bayesian Personalized Ranking):
这意味着:
- 虽然传播是线性的;
- 但评分函数
$h_u^\top h_i$ 是双线性的。
因此整体模型仍是非线性的二次型结构。
它的表达力 ≈ 矩阵分解 + 多阶邻域正则化。
LightGCN 的传播矩阵是归一化邻接矩阵
这意味着它在谱空间上执行了多项式滤波(Polynomial Filtering):
- 对应图拉普拉斯谱的低频部分;
- 相当于在图上执行低通滤波器;
- 不同阶
$k$ 的聚合权重$\alpha_k$ 可调节平滑度与局部性。
为什么是低通滤波器?因为归一化邻接矩阵特征值都在0和1之间,而小特征值对应大的Laplace二次型值,也就是高噪声,或者可以自己算一算简单图的频谱也能看出来。
LightGCN 虽然看似删除了“复杂模块”,但:
| 模块 | 是否保留 | 作用 |
|---|---|---|
| 权重矩阵 |
❌ 删除 | 减少过拟合与噪声传播 |
| 非线性激活 |
❌ 删除 | 避免过平滑 |
| 邻接传播 |
✅ 保留 | 核心:捕捉图结构依赖 |
| 多层聚合 |
✅ 保留 | 控制平滑度与多阶特征融合 |
➡️ 这正体现了 “浅层传播即可捕获复杂模式” 的思想,
与 Rectified Flow 的“一步近似最优路径”具有惊人的相似性。
这里讲一个基于经典数值分析的ode解法henu,再讲一个专门出现在生成模型里的ode解法DPM solver。
我们要求解常微分方程:
RK2 是一类二阶显式 Runge–Kutta 方法,其一般形式为:
$\displaystyle \begin{cases} k_1 = f(x_n, t_n), \ k_2 = f(x_n + a , \Delta t , k_1, , t_n + a , \Delta t), \ x_{n+1} = x_n + \Delta t [, b_1 k_1 + b_2 k_2 ,]. \end{cases} $
其中系数满足二阶精度条件:
不同参数
Heun 法的参数取:
代入得:
$\displaystyle \begin{cases} k_1 = f(x_n, t_n), \ k_2 = f(x_n + \Delta t , k_1, , t_n + \Delta t), \ x_{n+1} = x_n + \frac{\Delta t}{2}(k_1 + k_2). \end{cases} $
Heun 方法可以理解为:
“先用 Euler 预测,再用梯形平均修正”。
- 第一步:用 Euler 预测区间末点;
- 第二步:用起点与终点的平均斜率修正;
- 等价于改进的欧拉法(Improved Euler)或梯形法(Trapezoidal Rule)。
其几何含义是:
用区间两端的斜率平均近似曲线的整体斜率,以减少截断误差。
Heun 方法在现代生成建模中有了“第二次生命”,
尤其在 扩散模型(Diffusion Models) 与 Rectified Flow(RF) 中。
在 SD3 官方实现 与 Flux 框架中,Heun 仍是核心推理求解器之一。
由于 RF 训练的轨迹几乎是直线轨迹(straight-line trajectory),
低阶 Heun 方法已能达到足够高的精度。
在 Stability AI 的 NeurIPS 2024 ReFlow 论文 中指出:
“A single iteration of ReFlow plus Heun sampling achieves nearly straight-line trajectories with 4× faster sampling.”
DPM说白了就是:DDIM的ode是一阶非齐次线性ode,可以直接写出显式解(这大概是任何ode课程必讲的部分),显示解有积分项,那就通过各种方式数值计算这个积分。注意DDIM的ode是一阶非齐次线性ode是个特性,对于一般的flow matching或diffusion ode并不成立。
扩散模型的反向过程可以写为(含噪声参数
其中:
- 第一项
$-\frac{1}{2}\beta(t)x_t$ :线性衰减项(类似漂移项); - 第二项
$-\frac{1}{2}\beta(t)\epsilon_\theta(x_t, t)$ :模型校正项,由网络预测的噪声引入。
将上式改写为线性非齐次 ODE形式:
其中:
乘上积分因子
两边积分:
$\displaystyle e^{-\int_0^{t_{n+1}} A(s),ds} x_{t_{n+1}} = e^{-\int_0^{t_n} A(s),ds} x_{t_n}
- \int_{t_n}^{t_{n+1}} e^{-\int_0^{s} A(u),du} g(x_s, s) , ds. $
再两边乘以
$$ x_{t_{n+1}} = e^{\int_{t_n}^{t_{n+1}} A(s),ds} , x_{t_n}
- \int_{t_n}^{t_{n+1}} e^{\int_{s}^{t_{n+1}} A(u),du}, g(x_s, s) , ds. $$
这就是**指数积分器(Exponential Integrator)**的精确形式。
代入
$$ x_{t_{n+1}} = e^{-\int_{t_n}^{t_{n+1}} \frac{\beta(s)}{2}ds} , x_{t_n}
- \int_{t_n}^{t_{n+1}} e^{-\int_{s}^{t_{n+1}} \frac{\beta(u)}{2}du} , \frac{\beta(s)}{2}, \epsilon_\theta(x_s, s) , ds. $$
最最后提一嘴,从数学角度看,rf和diffusion的ode形式不同,应当采取不同的ode求解器,比如DPM就不应用于SD3/SD3.5,也有一些文章支持此观点:
“For evaluations on Stable Diffusion 3 [10], we exclude DPM-Solver++ from comparison, as UniPC has consistently outperformed it.”
from arxiv