概率路径
流匹配先规定一条连接噪声与数据的概率路径 ( p t ) 0 ≤ t ≤ 1 (p_t)_{0\le t\le1} ( p t ) 0 ≤ t ≤ 1 ,满足
p 0 = p i n i t , p 1 = p d a t a . p_0=p_{\mathrm{init}},
\qquad p_1=p_{\mathrm{data}}.
p 0 = p init , p 1 = p data .
端点只规定“从哪里来、到哪里去”,中间如何连接并不唯一。路径若弯曲剧烈,对应速度会快速变化,生成时需要更小的积分步长;路径若让不同样本在中间高度重叠,网络又更难从当前位置判断应该前往何处。因此概率路径也是一种建模选择,它会同时影响回归难度和采样成本。
数据样本可以观测,但 p d a t a p_{\mathrm{data}} p data 以及中间边缘密度 p t ( x ) p_t(x) p t ( x ) 的解析式未知,无法直接从全局密度推导训练标签。可计算的做法是:对每个 z ∼ p d a t a z\sim p_{\mathrm{data}} z ∼ p data 定义一条条件概率路径 p t ( x ∣ z ) p_t(x\mid z) p t ( x ∣ z ) ,使 p 0 ( ⋅ ∣ z ) = p i n i t p_0(\cdot\mid z)=p_{\mathrm{init}} p 0 ( ⋅ ∣ z ) = p init ,p 1 ( ⋅ ∣ z ) = δ z p_1(\cdot\mid z)=\delta_z p 1 ( ⋅ ∣ z ) = δ z 。固定 z z z 后,复杂的数据分布被替换成一个已知终点,条件路径可以人为设计并直接采样;所有条件路径对数据分布求平均便恢复真正需要的边缘路径
p t ( x ) = ∫ p t ( x ∣ z ) p d a t a ( z ) d z . p_t(x)=\int p_t(x\mid z)p_{\mathrm{data}}(z)\,\mathrm dz.
p t ( x ) = ∫ p t ( x ∣ z ) p data ( z ) d z .
积分中的 p d a t a p_{\mathrm{data}} p data 虽然没有解析式,训练集却能提供它的样本。因此即使无法计算 p t ( x ) p_t(x) p t ( x ) ,仍可先采 z ∼ p d a t a z\sim p_{\mathrm{data}} z ∼ p data ,再采 x ∼ p t ( ⋅ ∣ z ) x\sim p_t(\cdot\mid z) x ∼ p t ( ⋅ ∣ z ) ,获得服从正确边缘分布的 ( t , x ) (t,x) ( t , x ) 。流匹配把一个不可计算的密度问题转化成了可采样的监督学习问题,后续并不需要估计 p t ( x ) p_t(x) p t ( x ) 本身。
常用的条件路径是
p t ( x ∣ z ) = N ( x ; α t z , β t 2 I d ) , p_t(x\mid z)=\mathcal N\!\left(x;\alpha_tz,\beta_t^2I_d\right),
p t ( x ∣ z ) = N ( x ; α t z , β t 2 I d ) ,
其中 α t \alpha_t α t 控制保留多少数据信号,β t \beta_t β t 控制保留多少初始噪声;端点条件 α 0 = 0 , β 0 = 1 \alpha_0=0,\beta_0=1 α 0 = 0 , β 0 = 1 与 α 1 = 1 , β 1 = 0 \alpha_1=1,\beta_1=0 α 1 = 1 , β 1 = 0 分别保证起点是纯噪声、终点收缩到 z z z 。固定 t t t 后,采样可以重参数化为
ϵ ∼ N ( 0 , I d ) , x t = α t z + β t ϵ . \epsilon\sim\mathcal N(0,I_d),
\qquad x_t=\alpha_tz+\beta_t\epsilon.
ϵ ∼ N ( 0 , I d ) , x t = α t z + β t ϵ .
本文始终采用“t = 0 t=0 t = 0 为噪声,t = 1 t=1 t = 1 为数据”的时间方向。最简单的 CondOT 路径取 α t = t , β t = 1 − t \alpha_t=t,\beta_t=1-t α t = t , β t = 1 − t ,因此同一对 ( ϵ , z ) (\epsilon,z) ( ϵ , z ) 的状态沿连接二者的直线匀速移动。这里的“直线”针对条件样本轨迹;不同数据点对应的轨迹混合后,边缘分布的变化仍可能十分复杂。线性插值的优势是标签简单且轨迹不额外绕行,但在数据几何复杂时,许多条件轨迹可能交叠,使后验平均后的边缘速度变得更难预测。
条件向量场
概率路径描述每个时刻应出现怎样的分布,却没有说明单个样本如何变化。训练需要一个局部速度标签,因此还要找出能够实现这条路径的向量场。对固定数据点 z z z ,条件流映射
ψ t ( x 0 ∣ z ) = α t z + β t x 0 \psi_t(x_0\mid z)=\alpha_tz+\beta_tx_0
ψ t ( x 0 ∣ z ) = α t z + β t x 0
把 X 0 ∼ N ( 0 , I d ) X_0\sim\mathcal N(0,I_d) X 0 ∼ N ( 0 , I d ) 推送成 X t ∼ N ( α t z , β t 2 I d ) X_t\sim\mathcal N(\alpha_tz,\beta_t^2I_d) X t ∼ N ( α t z , β t 2 I d ) 。它直接把初始噪声缩放为 β t X 0 \beta_tX_0 β t X 0 ,再加入均值位移 α t z \alpha_tz α t z ,因而恰好得到所需高斯分布。沿轨迹求导先得到 α ˙ t z + β ˙ t x 0 \dot\alpha_tz+\dot\beta_tx_0 α ˙ t z + β ˙ t x 0 ,但生成时网络只能看到当前状态 x x x ,不能访问未知的起点 x 0 x_0 x 0 ;用 x 0 = ( x − α t z ) / β t x_0=(x-\alpha_tz)/\beta_t x 0 = ( x − α t z ) / β t 消去起点,可得 β t > 0 \beta_t>0 β t > 0 时的条件目标场
u t t a r g e t ( x ∣ z ) = ( α ˙ t − β ˙ t β t α t ) z + β ˙ t β t x . u_t^{\mathrm{target}}(x\mid z)
=\left(\dot\alpha_t-\frac{\dot\beta_t}{\beta_t}\alpha_t\right)z
+\frac{\dot\beta_t}{\beta_t}x.
u t target ( x ∣ z ) = ( α ˙ t − β t β ˙ t α t ) z + β t β ˙ t x .
式中乘在 z z z 前的系数负责把状态拉向条件终点,乘在 x x x 前的系数负责随 β t \beta_t β t 收缩或扩张残留噪声;二者共同保证整族粒子的均值和方差都按预定日程变化。对于 CondOT 路径,
u t t a r g e t ( x ∣ z ) = z − x 1 − t . u_t^{\mathrm{target}}(x\mid z)=\frac{z-x}{1-t}.
u t target ( x ∣ z ) = 1 − t z − x .
若 x x x 确实由 x = t z + ( 1 − t ) ϵ x=tz+(1-t)\epsilon x = t z + ( 1 − t ) ϵ 采得,上式才进一步化成 z − ϵ z-\epsilon z − ϵ 。这与线段的导数一致,并且沿同一条条件轨迹保持不变。前一个表达式定义任意位置 x x x 上的向量场,在 t → 1 t\to1 t → 1 时看似有奇异分母;后一个表达式只用于按构造采得的训练点,此时分子也按 1 − t 1-t 1 − t 缩小,标签仍为有限的 z − ϵ z-\epsilon z − ϵ 。这种重参数化既避免数值上的相消,也省去了在训练时求解 ODE。
向量场驱动密度时满足连续性方程
∂ t p t ( x ) + div ( p t u t ) ( x ) = 0. \partial_t p_t(x)+\operatorname{div}\!\left(p_tu_t\right)(x)=0.
∂ t p t ( x ) + div ( p t u t ) ( x ) = 0.
其中 p t u t p_tu_t p t u t 是概率流,散度衡量一个小区域流出量超过流入量的程度,负号把净流出对应到密度下降。方程没有产生或销毁概率质量,因此只要向量场满足它,粒子运动形成的分布就会沿指定的 p t p_t p t 演化。
边缘向量场
条件目标场依赖训练时已知的 z z z ,但真正生成时只有当前状态 x x x ,同一个 x x x 又可能由许多不同的 ( z , ϵ ) (z,\epsilon) ( z , ϵ ) 产生。网络必须把这些互相冲突的条件速度压缩成一个只依赖 ( x , t ) (x,t) ( x , t ) 的速度。根据 Bayes 公式,与当前位置相容的终点分布为
p 1 ∣ t ( z ∣ x ) = p t ( x ∣ z ) p d a t a ( z ) p t ( x ) . p_{1\mid t}(z\mid x)
=\frac{p_t(x\mid z)p_{\mathrm{data}}(z)}{p_t(x)}.
p 1 ∣ t ( z ∣ x ) = p t ( x ) p t ( x ∣ z ) p data ( z ) .
边缘目标场是条件场在这个后验下的平均:
u t t a r g e t ( x ) = ∫ u t t a r g e t ( x ∣ z ) p 1 ∣ t ( z ∣ x ) d z . u_t^{\mathrm{target}}(x)
=\int u_t^{\mathrm{target}}(x\mid z)
p_{1\mid t}(z\mid x)\,\mathrm dz.
u t target ( x ) = ∫ u t target ( x ∣ z ) p 1 ∣ t ( z ∣ x ) d z .
每个 z z z 都规定了当前位置在该条件路径上的速度,后验则衡量这个终点产生当前 x x x 的可能性。平方误差下,条件期望正是所有只依赖 ( x , t ) (x,t) ( x , t ) 的预测器中误差最小的选择,因此加权平均既是形式上的边缘化,也是网络面对终点歧义时的最优单值预测。后验很集中时,边缘速度接近某条条件速度;后验很分散时,互相冲突的方向会被平均,速度可能变小,这也解释了条件路径严重交叠为何会增加学习难度。
这个平均仍会精确驱动所需的边缘路径,而不会因为合并了不同条件轨迹就偏离目标。对条件连续性方程边缘化,有
∂ t p t ( x ) = ∫ ∂ t p t ( x ∣ z ) p d a t a ( z ) d z = − div ( ∫ p t ( x ∣ z ) u t t a r g e t ( x ∣ z ) p d a t a ( z ) d z ) = − div ( p t ( x ) u t t a r g e t ( x ) ) . \begin{aligned}
\partial_t p_t(x)
&=\int \partial_t p_t(x\mid z)p_{\mathrm{data}}(z)\,\mathrm dz\\
&=-\operatorname{div}\!\left(
\int p_t(x\mid z)u_t^{\mathrm{target}}(x\mid z)p_{\mathrm{data}}(z)\,\mathrm dz
\right)\\
&=-\operatorname{div}\!\left(p_t(x)u_t^{\mathrm{target}}(x)\right).
\end{aligned}
∂ t p t ( x ) = ∫ ∂ t p t ( x ∣ z ) p data ( z ) d z = − div ( ∫ p t ( x ∣ z ) u t target ( x ∣ z ) p data ( z ) d z ) = − div ( p t ( x ) u t target ( x ) ) .
第二行中的积分是所有条件概率流之和;利用 Bayes 公式后,它恰好等于 p t ( x ) u t t a r g e t ( x ) p_t(x)u_t^{\mathrm{target}}(x) p t ( x ) u t target ( x ) 。因此生成模型需要复现的是各条件路径合成后的概率流,并不需要为每个噪声点预先绑定一个唯一的数据样本。
流匹配训练
理想目标是让网络 u t θ ( x ) u_t^\theta(x) u t θ ( x ) 回归不可直接计算的边缘向量场:
L F M ( θ ) = E t ∼ U n i f [ 0 , 1 ] x ∼ p t ∥ u t θ ( x ) − u t t a r g e t ( x ) ∥ 2 . \mathcal L_{\mathrm{FM}}(\theta)
=\mathbb E_{\substack{t\sim\mathrm{Unif}[0,1]\\x\sim p_t}}
\left\|u_t^\theta(x)-u_t^{\mathrm{target}}(x)\right\|^2.
L FM ( θ ) = E t ∼ Unif [ 0 , 1 ] x ∼ p t u t θ ( x ) − u t target ( x ) 2 .
这里既无法逐点求出 u t t a r g e t ( x ) u_t^{\mathrm{target}}(x) u t target ( x ) ,也无法依靠 p t p_t p t 的解析式直接构造训练集;前面的条件路径同时提供了状态样本和速度标签。训练于是改用可计算的条件流匹配 目标:
L C F M ( θ ) = E t ∼ U n i f [ 0 , 1 ] , z ∼ p d a t a x ∼ p t ( ⋅ ∣ z ) ∥ u t θ ( x ) − u t t a r g e t ( x ∣ z ) ∥ 2 . \mathcal L_{\mathrm{CFM}}(\theta)
=\mathbb E_{\substack{t\sim\mathrm{Unif}[0,1],\ z\sim p_{\mathrm{data}}\\x\sim p_t(\cdot\mid z)}}
\left\|u_t^\theta(x)-u_t^{\mathrm{target}}(x\mid z)\right\|^2.
L CFM ( θ ) = E t ∼ Unif [ 0 , 1 ] , z ∼ p data x ∼ p t ( ⋅ ∣ z ) u t θ ( x ) − u t target ( x ∣ z ) 2 .
条件标签 u z u_z u z 对固定 ( x , t ) (x,t) ( x , t ) 来说带有随机性:不同潜在终点会给出不同速度,但其条件均值就是 u ˉ \bar u u ˉ 。平方损失会把误差分成预测偏离条件均值的部分,以及条件标签自身无法消除的方差,因此两种目标的可训练部分相同。令 v = u t θ ( x ) v=u_t^\theta(x) v = u t θ ( x ) 、u ˉ = u t t a r g e t ( x ) \bar u=u_t^{\mathrm{target}}(x) u ˉ = u t target ( x ) 、u z = u t t a r g e t ( x ∣ z ) u_z=u_t^{\mathrm{target}}(x\mid z) u z = u t target ( x ∣ z ) ,分别展开平方:
L F M = E ∥ v ∥ 2 − 2 E [ v ⊤ u ˉ ] + E ∥ u ˉ ∥ 2 , \mathcal L_{\mathrm{FM}}
=\mathbb E\|v\|^2-2\mathbb E[v^\top\bar u]+\mathbb E\|\bar u\|^2,
L FM = E ∥ v ∥ 2 − 2 E [ v ⊤ u ˉ ] + E ∥ u ˉ ∥ 2 ,
L C F M = E ∥ v ∥ 2 − 2 E [ v ⊤ u z ] + E ∥ u z ∥ 2 . \mathcal L_{\mathrm{CFM}}
=\mathbb E\|v\|^2-2\mathbb E[v^\top u_z]+\mathbb E\|u_z\|^2.
L CFM = E ∥ v ∥ 2 − 2 E [ v ⊤ u z ] + E ∥ u z ∥ 2 .
边缘采样与联合采样给出的 x x x 分布相同,所以两个 E ∥ v ∥ 2 \mathbb E\|v\|^2 E ∥ v ∥ 2 相同;又因为 u ˉ = E [ u z ∣ x , t ] \bar u=\mathbb E[u_z\mid x,t] u ˉ = E [ u z ∣ x , t ] ,塔式法则给出 E [ v ⊤ u z ] = E [ v ⊤ u ˉ ] \mathbb E[v^\top u_z]=\mathbb E[v^\top\bar u] E [ v ⊤ u z ] = E [ v ⊤ u ˉ ] 。最后两项都不依赖 θ \theta θ ,其差值就是终点歧义造成、网络无法通过改变参数消除的标签方差,故
L C F M ( θ ) = L F M ( θ ) + C , ∇ θ L C F M = ∇ θ L F M . \mathcal L_{\mathrm{CFM}}(\theta)
=\mathcal L_{\mathrm{FM}}(\theta)+C,
\qquad \nabla_\theta\mathcal L_{\mathrm{CFM}}
=\nabla_\theta\mathcal L_{\mathrm{FM}}.
L CFM ( θ ) = L FM ( θ ) + C , ∇ θ L CFM = ∇ θ L FM .
其中 C = E ∥ u z − u ˉ ∥ 2 ≥ 0 C=\mathbb E\|u_z-\bar u\|^2\ge0 C = E ∥ u z − u ˉ ∥ 2 ≥ 0 ,正是给定 ( x , t ) (x,t) ( x , t ) 后条件速度仍然存在的方差。这说明每次随机采到的条件速度虽然通常不等于边缘速度,却是后者的无偏监督信号,长期回归会自动学到后验平均。等价性针对总体目标及其梯度;有限批量下,条件标签的方差仍会影响优化效率,路径设计也因此不能只看端点是否正确。
CondOT 的一次训练迭代为:采样 z ∼ p d a t a z\sim p_{\mathrm{data}} z ∼ p data 、t ∼ U n i f [ 0 , 1 ] t\sim\mathrm{Unif}[0,1] t ∼ Unif [ 0 , 1 ] 与 ϵ ∼ N ( 0 , I ) \epsilon\sim\mathcal N(0,I) ϵ ∼ N ( 0 , I ) ;构造 x t = t z + ( 1 − t ) ϵ x_t=tz+(1-t)\epsilon x t = t z + ( 1 − t ) ϵ ;用 z − ϵ z-\epsilon z − ϵ 作为速度标签计算 MSE,再更新参数。任意时刻的训练样本都能由闭式公式独立构造,训练过程无需从 0 0 0 积分到 t t t ,不同样本和时间也可以并行处理;训练结束后才从噪声出发连续执行局部速度,因此生成仍需承担数值积分的多步成本。