建设网站的重要性,模板手机网站建设公司,公司网站制作教程,湘潭网站建设 干净磐石网络Flow Matching是通过匹配目标向量场来训练CNF#xff0c;比如通过最小化目标向量场和模型预测之间的差异。 Rectified Flow的核心思想是学习一个确定性轨迹#xff0c;将数据分布转换为噪声分布#xff0c;比如通过线性插值或者更复杂的路径。
推荐阅读#xff1a; SD3的采…Flow Matching是通过匹配目标向量场来训练CNF比如通过最小化目标向量场和模型预测之间的差异。 Rectified Flow的核心思想是学习一个确定性轨迹将数据分布转换为噪声分布比如通过线性插值或者更复杂的路径。
推荐阅读 SD3的采样上篇——Flow Matching SD3的采样下篇——Rectified Flow FLUX.1 原理与源码解析 Rectified Flow和Flow Matching的区别
Rectified Flow和Flow Matching是生成模型中基于连续归一化流CNF的两种方法它们既有联系又有区别。以下从原理、公式和代码实现三个方面进行解释。 原理对比
Flow Matching
核心思想通过直接匹配目标向量场Target Vector Field来训练CNF模型最小化目标向量场和模型预测之间的差异绕过了传统基于最大似然估计的复杂优化问题。关键点 定义条件概率路径 p t ( x ) p_t(x) pt(x)如将数据点 x 0 x_0 x0 和噪声 x 1 x_1 x1 插值并推导对应的目标向量场 u t ( x ) u_t(x) ut(x)。训练模型 v θ ( x , t ) v_\theta(x, t) vθ(x,t) 直接拟合 u t ( x ) u_t(x) ut(x)无需显式计算概率密度。
Rectified Flow
核心思想通过构造直线路径如 x t x 0 t ( x 1 − x 0 ) x_t x_0 t(x_1 - x_0) xtx0t(x1−x0)将数据分布转换为噪声分布强调轨迹的“直线性”以简化采样。关键点 强制轨迹为直线减少曲率从而允许更少的时间步采样。通过迭代优化如Reflow技术进一步拉直轨迹提升生成质量。 公式对比
Flow Matching
目标向量场 假设条件路径 p t ( x ∣ x 1 ) p_t(x | x_1) pt(x∣x1) 由插值定义如 x t ( 1 − t ) x 0 t x 1 x_t (1-t)x_0 t x_1 xt(1−t)x0tx1目标向量场为 u t ( x ) E x 0 , x 1 ∼ p ( x 0 , x 1 ) [ d x t d t ∣ x t x ] u_t(x) \mathbb{E}_{x_0, x_1 \sim p(x_0, x_1)} \left[ \frac{dx_t}{dt} \mid x_t x \right] ut(x)Ex0,x1∼p(x0,x1)[dtdxt∣xtx]损失函数 最小化模型预测 v θ ( x , t ) v_\theta(x, t) vθ(x,t) 与目标场的差异 L FM E t , x t [ ∥ v θ ( x t , t ) − u t ( x t ) ∥ 2 ] \mathcal{L}_{\text{FM}} \mathbb{E}_{t, x_t} \left[ \| v_\theta(x_t, t) - u_t(x_t) \|^2 \right] LFMEt,xt[∥vθ(xt,t)−ut(xt)∥2]
Rectified Flow
目标向量场 直接定义直线路径 x t x 0 t ( x 1 − x 0 ) x_t x_0 t(x_1 - x_0) xtx0t(x1−x0)目标速度为常数 u t ( x ) x 1 − x 0 u_t(x) x_1 - x_0 ut(x)x1−x0损失函数 强制模型预测的速度与目标速度一致 L RF E t , x 0 , x 1 [ ∥ v θ ( x t , t ) − ( x 1 − x 0 ) ∥ 2 ] \mathcal{L}_{\text{RF}} \mathbb{E}_{t, x_0, x_1} \left[ \| v_\theta(x_t, t) - (x_1 - x_0) \|^2 \right] LRFEt,x0,x1[∥vθ(xt,t)−(x1−x0)∥2]Reflow技术 迭代训练多个Rectified Flow模型逐步拉直轨迹。 代码实现对比
Flow Matching示例简化版
def flow_matching_loss(model, x0, x1, t):# 线性插值生成样本xt (1 - t) * x0 t * x1# 目标向量场为 x1 - x0ut x1 - x0# 模型预测当前速度vt model(xt, t)# 计算均方误差loss torch.mean((vt - ut) ** 2)return lossRectified Flow示例简化版
def rectified_flow_loss(model, x0, x1, t):# 直线路径生成样本xt x0 t * (x1 - x0)# 目标速度恒为 x1 - x0target_velocity x1 - x0# 模型预测速度pred_velocity model(xt, t)# 计算均方误差loss torch.mean((pred_velocity - target_velocity) ** 2)return loss关键区别
路径生成 Flow Matching允许自由选择概率路径如最优传输路径而Rectified Flow强调直线路径和迭代优化Reflow牺牲部分灵活性以换取高效采样。 损失计算 Rectified Flow的目标速度直接为 x 1 − x 0 x_1−x_0 x1−x0而Flow Matching可能根据不同的插值方式调整目标向量场。