流模型与扩散模型的训练目标
流匹配
从边缘速度场到可学习的训练目标
前面我们推导了边缘速度场 $u_t(x)$ 的显式表达式,它把“噪声分布”推向“真实数据分布”,是流模型(Flow Matching)理论上要拟合的最优向量场。然而,我们无法直接用 $u_t(x)$ 做监督信号,因为:
- 它依赖整个数据分布 $p_{\text{data}}(x_0)$ 与边缘概率路径 $p_t(x)$,而后者在训练前是未知的;
- 每次计算都要对所有样本做高斯混合求和(或积分),复杂度与数据量成正比,不可扩展。
为了绕过这一困境,引入条件-边缘等价性,把不可计算的边缘回归目标转化为可采样、可 mini-batch 化的条件回归目标。
流匹配损失(Flow Matching Loss)
给定一个参数化神经网络 $v_\theta(t,x)$,我们的理想目标是让它最小化与边缘速度场的均方误差:
$$
\mathcal{L}_{\text{FM}}(\theta)=
\mathbb{E}_{t\sim\mathcal{U}(0,1)}\,
\mathbb{E}_{x\sim p_t(x)}\!
\Bigl[\bigl\|v_\theta(t,x)-u_t(x)\bigr\|^2\Bigr].
$$
- 时间 $t$ 均匀采样,空间 $x$ 从瞬时边缘分布 $p_t(x)$ 采样;
- 监督信号 $u_t(x)$ 由上一节的边缘化公式给出:
$$ u_t(x)=\int u_t(x|x_0)\,\frac{p_t(x|x_0)\,p_{\text{data}}(x_0)}{p_t(x)}\,dx_0. $$
然而,式 (1) 在实践里不可计算:
- 我们无法直接采样 $x\sim p_t(x)$,因为 $p_t(x)$ 本身是高斯混合,归一化常数未知;
- 即使能采样,计算 $u_t(x)$ 也需要遍历整个数据集求后验权重,代价 $\mathcal{O}(N)$ 且无法 mini-batch。
因此,$\mathcal{L}_{\text{FM}}$ 只是一个“理论灯塔”,我们需要一条可航行的船——条件流匹配损失。
条件流匹配损失(Conditional Flow Matching Loss)
把边缘期望“拆开”来写,我们得到一个看似不同却等价的目标:
$$ \mathcal{L}_{\text{CFM}}(\theta)= \mathbb{E}_{t\sim\mathcal{U}(0,1)}\, \mathbb{E}_{x_0\sim p_{\text{data}}(x_0)}\, \mathbb{E}_{x\sim p_t(x|x_0)}\! \Bigl[\bigl\|v_\theta(t,x)-u_t(x|x_0)\bigr\|^2\Bigr]. $$
先采样数据点 $x_0$,再按条件概率路径采样 $x\sim p_t(x|x_0)$。监督信号是闭式可算的条件速度场 $u_t(x|x_0)$,例如 VP 路径下 $\displaystyle u_t(x|x_0)=\frac{x_0-x}{1-t}$。整个过程只依赖单条样本 $x_0$,天然支持 mini-batch,与数据量无关。
等价性定理
对任意参数 $\theta$,两个损失的梯度相等:
$$
\nabla_\theta\,\mathcal{L}_{\text{FM}}(\theta)=\nabla_\theta\,\mathcal{L}_{\text{CFM}}(\theta).
$$
因此,用 $\mathcal{L}_{\text{CFM}}$ 训练即等价于最小化不可计算的 $\mathcal{L}_{\text{FM}}$。
等价性证明
我们给出基于线性期望交换的简洁证明,无需任何分布假设,适用于一般路径。
- Step 1:展开 $\mathcal{L}_{\text{FM}}$ 的梯度
对平方误差求导:
$$ \nabla_\theta\mathcal{L}_{\text{FM}}(\theta)=2\,\mathbb{E}_{t,x}\!\Bigl[ \bigl(v_\theta(t,x)-u_t(x)\bigr)\cdot\nabla_\theta v_\theta(t,x) \Bigr]. $$
- Step 2:把边缘期望改写成双重期望
把 $x\sim p_t(x)$ 看作两步采样:先 $x_0\sim p_{\text{data}}$,再 $x\sim p_t(x|x_0)$,于是
$$ \mathbb{E}_{x\sim p_t(x)}[\,\cdot\,]=\mathbb{E}_{x_0\sim p_{\text{data}}}\, \mathbb{E}_{x\sim p_t(x|x_0)}[\,\cdot\,]. $$
因此
$$ \nabla_\theta\mathcal{L}_{\text{FM}}(\theta)=2\,\mathbb{E}_{t}\, \mathbb{E}_{x_0}\, \mathbb{E}_{x|x_0}\!\Bigl[ \bigl(v_\theta(t,x)-u_t(x)\bigr)\cdot\nabla_\theta v_\theta(t,x) \Bigr]. $$
- Step 3:利用“最优回归函数”性质
对任意固定 $(t,x)$,向量场 $u_t(x)$ 正是条件期望:
$$ u_t(x)=\mathbb{E}_{p_t(x_0|x)}[u_t(x|x_0)]. $$
于是
$$ \mathbb{E}_{x_0|x}\!\bigl[v_\theta(t,x)-u_t(x|x_0)\bigr]=v_\theta(t,x)-u_t(x). $$
把这一项代回 Step 2,即得
$$ \nabla_\theta\mathcal{L}_{\text{FM}}(\theta)=2\,\mathbb{E}_{t,x_0,x|x_0}\!\Bigl[ \bigl(v_\theta(t,x)-u_t(x|x_0)\bigr)\cdot\nabla_\theta v_\theta(t,x) \Bigr]=\nabla_\theta\mathcal{L}_{\text{CFM}}(\theta). $$
证毕。
得分匹配
两者在流程上是相似的
得分匹配损失(Score Matching Loss)
设我们要学一个得分网络 $s_\theta(t,x)$ 去逼近真实边缘得分函数:
$$ \nabla_x \log p_t(x). $$
最自然的损失是Fisher 散度(均方误差):
$$ \mathcal{L}_{\text{SM}}(\theta) = \mathbb{E}_{t\sim\mathcal{U}(0,1)}\, \mathbb{E}_{x\sim p_t(x)}\! \Bigl[\bigl\|s_\theta(t,x)-\nabla_x \log p_t(x)\bigr\|^2\Bigr]. $$
- 时间、空间采样方式与 Flow Matching 完全一致;
- 但真实得分 $\nabla_x \log p_t(x)$ 需要计算边缘分布的归一化常数 及其梯度,不可 tractable;
- 同样地,$p_t(x)$ 是高斯混合(或积分),无法 mini-batch。
去噪得分匹配损失(Denoising Score Matching)
注意到:真实边缘得分是条件得分的后验平均:
$$ \nabla_x \log p_t(x) = \mathbb{E}_{p_t(x_0|x)}\!\bigl[\nabla_x \log p_t(x|x_0)\bigr]. $$
于是,我们把边缘期望 拆成两步采样:
先采样干净数据 $x_0\sim p_{\text{data}}$,再采样噪声版本 $x\sim p_t(x|x_0)$,并用条件得分作为监督信号:
$$ \mathcal{L}_{\text{DSM}}(\theta) = \mathbb{E}_{t\sim\mathcal{U}(0,1)}\, \mathbb{E}_{x_0\sim p_{\text{data}}}\, \mathbb{E}_{x\sim p_t(x|x_0)}\! \Bigl[\bigl\|s_\theta(t,x)-\nabla_x \log p_t(x|x_0)\bigr\|^2\Bigr]. $$
- 条件得分 $\nabla_x \log p_t(x|x_0)$闭式可算(下面给出公式);
- 整个期望只依赖单样本 $x_0$,天然支持 mini-batch;
-无需知道归一化常数,因为高斯对数梯度是解析式。
等价性定理
对任意参数 $\theta$,
$$ \nabla_\theta\,\mathcal{L}_{\text{SM}}(\theta)=\nabla_\theta\,\mathcal{L}_{\text{DSM}}(\theta). $$
因此,用 DSM 训练即等价于最小化不可计算的 SM。
等价性证明
- Step 1:展开 SM 梯度
$$ \nabla_\theta\mathcal{L}_{\text{SM}}(\theta)=2\,\mathbb{E}_{t,x}\!\Bigl[ \bigl(s_\theta(t,x)-\nabla_x \log p_t(x)\bigr)\cdot\nabla_\theta s_\theta(t,x) \Bigr]. $$
- Step 2:把边缘期望改写成双重期望
同 FM 证明,
$$\mathbb{E}_{x\sim p_t(x)}[\,\cdot\,]=
\mathbb{E}_{x_0\sim p_{\text{data}}}\,
\mathbb{E}_{x\sim p_t(x|x_0)}[\,\cdot\,].
$$
于是
$$ \nabla_\theta\mathcal{L}_{\text{SM}}(\theta)= 2\,\mathbb{E}_{t,x_0,x|x_0}\!\Bigl[ \bigl(s_\theta(t,x)-\nabla_x \log p_t(x)\bigr)\cdot\nabla_\theta s_\theta(t,x) \Bigr]. $$
- Step 3:利用“最优回归函数”恒等式
对任意固定 $(t,x)$,
$$ \nabla_x \log p_t(x)= \mathbb{E}_{p_t(x_0|x)}\!\bigl[\nabla_x \log p_t(x|x_0)\bigr], $$
因此
$$ s_\theta(t,x)-\nabla_x \log p_t(x)= \mathbb{E}_{x_0|x}\!\bigl[s_\theta(t,x)-\nabla_x \log p_t(x|x_0)\bigr]. $$
- Step 4:把期望“塞回”被积函数
将上式代入 Step 2,得到
$$ \nabla_\theta\mathcal{L}_{\text{SM}}(\theta)= 2\,\mathbb{E}_{t,x_0,x|x_0}\!\Bigl[ \bigl(s_\theta(t,x)-\nabla_x \log p_t(x|x_0)\bigr)\cdot\nabla_\theta s_\theta(t,x) \Bigr]= \nabla_\theta\mathcal{L}_{\text{DSM}}(\theta). $$
证毕。
附:去噪扩散模型(DDMs)中的得分与速度场互换性
在去噪扩散模型(Denoising Diffusion Models, DDMs)中,我们采用高斯概率路径:
$$ p_t(x|x_0) = \mathcal{N}(x;\, \alpha_t x_0,\, \beta_t^2 I), $$
其中 $\alpha_t, \beta_t$ 为时间相关的系数,满足 $\alpha_t^2 + \beta_t^2 = 1$(VP 路径)。这种模型有一个非常特殊的性质:得分函数(score)与速度场(vector field)可以互相线性转换,而无需额外训练。
具体地,条件得分函数为:
$$ \nabla_x \log p_t(x|x_0) = -\frac{x - \alpha_t x_0}{\beta_t^2}, $$
而条件速度场为:
$$ u_t(x|x_0) = \frac{x_0 - x}{1 - t} \quad (\text{OT 路径}) \quad \text{或更一般地} \quad u_t(x|x_0) = \frac{\alpha_t'}{\alpha_t}(x_0 - x) - \frac{\beta_t'}{\beta_t}x. $$
关键在于,这两个量都是 $x$ 与 $x_0$ 的加权平均,因此它们之间可以通过线性组合互相表示。例如,我们可以将得分函数表示为速度场的函数:
$$ \nabla_x \log p_t(x|x_0) = \frac{\alpha_t}{\beta_t^2} u_t(x|x_0) + \left( \frac{\alpha_t'}{\alpha_t} - \frac{\beta_t'}{\beta_t} \right) x. $$
这意味着:
在去噪扩散模型中,我们只需训练一个得分网络或一个速度场网络,训练完成后可通过线性转换公式直接得到另一个网络,而无需单独训练。
这一性质极大地简化了模型部署与推理阶段的灵活性,也解释了为什么早期扩散模型(如 DDPM)仅通过得分匹配(score matching)就能完成生成任务——得分即速度,速度即得分。