如何推导 diffusion policy 和 flow matching
本文梳理 diffusion policy 与 flow matching 的理论推导主线,聚焦于概率流、随机微分方程(SDE)/常微分方程(ODE)建模、目标函数构造等核心步骤,强调二者在连续时间控制策略建模中的联系与差异。内容严格基于公开文献共识,不引入未验证的具体实现细节或实验结果。
引言
Diffusion policy 和 flow matching 均为将生成建模思想引入机器人策略学习的新兴范式。二者均在连续时间框架下定义轨迹分布,并通过可微分优化学习条件生成过程。但其概率动力学假设、目标函数形式及训练机制存在系统性差异。本文仅梳理其标准推导逻辑主干,不涉及具体任务、网络结构或超参。
1. Diffusion Policy 的基本推导路径
Diffusion policy 将策略建模为从噪声先验 \(p_T(\tau)\)(如高斯白噪声轨迹)到目标策略分布 \(p_0(\tau \mid s_0)\) 的逆向去噪过程,其中 \(\tau = (\mathbf{a}_0, \dots, \mathbf{a}_{H-1})\) 表示动作序列,\(s_0\) 为初始状态。
- 前向扩散过程:通常定义为线性 SDE
其中 \(\mathbf{w}_t\) 为标准布朗运动。该过程使任意 initial \(\tau_0\) 渐近趋于各向同性高斯分布。
- 反向采样过程:由 Tweedie’s formula 或 score matching 导出,目标是学习条件得分函数
实践中以神经网络 \(\epsilon_\theta(\tau_t, t, s_0)\) 近似去噪残差。
- 训练目标:最小化加权 L2 误差
其中 \(\epsilon^*\) 是解析可得的前向扰动项,\(w(t)\) 为调度权重。
⚠️ 注:具体 \(f(t), g(t), w(t)\) 形式依赖所选扩散调度(如 VP、VE、sub-VP),需明确引用来源。
2. Flow Matching 的基本推导路径
Flow matching 将轨迹生成建模为确定性常微分方程(ODE)的积分,通过学习一个速度场 \(\mathbf{v}_t(\tau_t, s_0)\),使得解曲线 \(\frac{d}{dt}\tau_t = \mathbf{v}_t(\tau_t, s_0)\) 满足 \(\tau_T \sim p_T(\tau)\) 且 \(\tau_0 \sim p_0(\tau \mid s_0)\)。
- 配对构造(Pairing Strategy):给定样本 \(\tau_0 \sim p_0(\cdot \mid s_0)\) 和 \(\tau_T \sim p_T(\cdot)\),定义插值路径(如线性)
对应瞬时速度为 \(\mathbf{v}_t^\text{target} = \tau_T - \tau_0\)。
- 目标函数:监督学习 \(\mathbf{v}_t(\tau_t, s_0)\) 逼近 \(\mathbf{v}_t^\text{target}\),即
- 关键性质:若插值满足可微性与覆盖性,则最优 \(\mathbf{v}_\theta\) 定义的 ODE 确保 \(\tau_0\) 的边际分布收敛于 \(p_0(\cdot \mid s_0)\)。
⚠️ 注:插值方式(linear, Gaussian, optimal transport-based)直接影响 \(\mathbf{v}_t^\text{target}\) 形式与理论保证强度。
3. 核心对比与联系
| 维度 | Diffusion Policy | Flow Matching |
|---|---|---|
| 动力学类型 | 随机(SDE) | 确定(ODE) |
| 训练监督信号 | 去噪残差(隐式 score) | 显式速度场(\(\tau_T - \tau_0\) 等) |
| 推理采样 | 多步随机迭代(DDPM/DPMSolver) | 单次 ODE 积分(e.g., RK45) |
| 先验分布假设 | 通常固定各向同性高斯 | 可灵活设计 \(p_T\)(如 learned prior) |
| 理论基础 | Score matching, Variational Inference | Optimal Transport, Neural ODE |
二者均可视为对同一底层问题——“如何参数化并学习从先验到条件策略分布的映射”——的不同正则化与动力学选择。
结语
推导的核心在于明确定义时间演化机制、目标分布、以及用于约束生成器的损失结构。实际应用中需根据任务需求(如实时性、不确定性量化、多模ality)权衡随机性与确定性建模。所有公式与假设均需回溯至原始论文进行符号与条件验证。