31 KiB
title, draft, tags
| title | draft | tags | |||||
|---|---|---|---|---|---|---|---|
| 1-Diffusion Planning | false |
|
Diffusion for Planning
更新时间:2026-05-14 面向读者:深度学习与强化学习科研人员 推荐前置知识:DDPM / Score-based Model / Flow Matching / MDP / MPC
1. 背景:从扩散模型到规划
1.1 扩散模型的进展
扩散模型(Diffusion Model)经历了三个主要范式演进:
(1)DDPM(Denoising Diffusion Probabilistic Models,Ho et al., 2020)
DDPM 将生成分布的学习形式化为一个变分推断问题。设真实数据分布为 $q(x_0)$,扩散过程定义为在 T 步内对数据逐步加噪:
q(x_{1:T} \mid x_0) = \prod_{t=1}^{T} q(x_t \mid x_{t-1}), \quad q(x_t \mid x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t} x_{t-1}, \beta_t I)
其中 \beta_t \in (0,1) 是噪声调度参数。逆过程 p_\theta(x_{t-1} \mid x_t) 用神经网络近似:
p_\theta(x_{t-1} \mid x_t) = \mathcal{N}\left(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t)\right)
Ho et al. 证明,最优均值预测器为:
\mu_\theta(x_t, t) = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}} \epsilon_\theta(x_t, t) \right)
其中 $\alpha_t = 1-\beta_t$,$\bar{\alpha}t = \prod{s=1}^t \alpha_s$,\epsilon_\theta 是噪声预测网络。
(2)Score-based Model(Song et al., 2019, 2021)
Score-based 模型从另一个角度切入:直接学习对数概率密度的梯度场 $\nabla_{x_t} \log p(x_t)$,称为 score function $\nabla_{x_t} \log p(x_t) = s_\theta(x_t, t)$。训练目标为去噪分数匹配(DSM):
\mathcal{L}(\theta) = \mathbb{E}_{t, x_0, \epsilon} \left[ \| s_\theta(x_t, t) - \nabla_{x_t} \log q(x_t \mid x_0) \|^2 \right]
其中 $x_t = \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1-\bar{\alpha}_t} \epsilon$,$\epsilon \sim \mathcal{N}(0, I)$。
逆过程采样通过 Langevin 动力学实现:
x_{t-\Delta t} \leftarrow x_t + \Delta t \cdot s_\theta(x_t, t) + \sqrt{2\Delta t} \, z, \quad z \sim \mathcal{N}(0, I)
(3)Flow Matching(Lipman et al., 2022; Pooladian et al., 2022)
Flow Matching 将扩散模型推广到任意 ODE 路径。定义源分布 $p_0(x)$(如噪声)和目标分布 $p_1(x)$(如数据),构造插值路径:
p_t(x) = \text{interp}(p_0, p_1; t), \quad x_t = (1-t) \cdot x_0 + t \cdot x_1 \quad \text{(线性插值)}
学习的向量场 v_\theta(x_t, t) 满足常微分方程:
\frac{d x_t}{d t} = v_\theta(x_t, t), \quad x_0 \sim p_0, \quad x_1 \sim p_1
训练损失简化为:
\mathcal{L}(\theta) = \mathbb{E}_{t, x_t} \| v_\theta(x_t, t) - \dot{x}_t \|^2
Flow Matching 的核心优势在于:(1)不依赖固定的噪声调度;(2)可以精确计算似然;(3)采样步数可以远少于 DDPM。
1.2 为什么扩散模型适合做规划
传统规划方法(如 A*、RRT)在离散、确定性问题中表现优异,但在高维、随机、部分可观察的序贯决策问题中面临挑战。扩散模型为规划问题带来了以下关键优势:
(1)样本多样性(Sample Diversity)
在规划中,最优轨迹往往不是唯一的。扩散模型通过条件生成,可以从整个解空间 \mathcal{T} 中采样得到多样化的可行轨迹集合。这对于以下场景至关重要:
- 多解等价性:到达同一目标有无数条路径
- 探索-利用平衡:多样样本支持更好的探索
- 人机交互:提供多种方案供人类选择
(2)分布覆盖性(Distribution Coverage)
标准模型预测控制(MPC)依赖于单一的预测模型 $\hat{p}(s_{t+1} \mid s_t, a_t)$,对模型误差敏感。扩散模型固有的集成性质(每个采样路径对应不同的噪声路径)提供了隐式集成,减少对单一模型准确性的依赖。
(3)非线性奖励/约束的表达能力
现实世界的奖励函数往往是多峰(multimodal)的(如机器人可能选择绕过障碍或翻越障碍)。扩散模型可以自然地建模多峰分布,而基于均值预测的方法(如高斯策略)只能产生单峰分布。
1.3 Planning as Inference:将 MPC 转化为条件采样问题
经典的 MPC 可以表述为如下优化问题:
\min_{a_0, \ldots, a_{H-1}} \sum_{t=0}^{H-1} r(s_t, a_t) \quad \text{s.t.} \quad s_{t+1} = f(s_t, a_t)
其中 H 是规划时域,s_0 是初始状态,r 是奖励函数,f 是动力学模型。
Planning as Inference 将这个优化问题重新解释为条件生成问题。定义轨迹 $\tau = (s_0, a_0, s_1, a_1, \ldots, s_H)$,目标是根据初始状态 s_0 和目标 g 采样轨迹:
p(\tau \mid s_0, g) = \frac{p(\tau) \cdot p(s_0, g \mid \tau)}{Z}
将奖励函数转化为能量函数 $E(\tau) = -\sum_t r(s_t, a_t)$,则:
p(\tau \mid s_0, g) \propto p(\tau) \cdot \exp\left( \sum_t r(s_t, a_t) \right) \cdot \prod_t p(s_{t+1} \mid s_t, a_t)
其中 \prod_t p(s_{t+1} \mid s_t, a_t) 是动力学转移似然(规划轨迹必须满足环境动力学约束)。
关键洞察:在 DDPM 中训练网络 \epsilon_\theta(x_t, t) 近似 score function $\nabla_{x_t} \log p(x_t)$,在规划场景下,只需在推理时用条件 score \nabla_{x_t} \log p(x_t \mid s_0, g) 引导采样,即可生成满足约束的轨迹。
2. Diffuser(Janner et al., 2022)
论文:Janner, M. D., Du, Y., Tenenbaum, J. B., & Levine, S. (2022). Planning with Diffusion for Flexible Behavior Synthesis. ICML 2022. 核心思想:将轨迹
\tau作为扩散模型的生成对象,条件于初始状态和目标进行条件生成。
2.1 扩散模型用于计划:p(\tau \mid s_0)
Diffuser 的核心思想是将完整的状态-动作轨迹 \tau 视为扩散模型的生成对象。给定初始状态 $s_0$,学习轨迹分布 $p(\tau \mid s_0)$。
定义轨迹空间 $\mathcal{T} = \mathbb{R}^{(H+1) \cdot d_s + H \cdot d_a}$,其中 d_s 是状态维度,d_a 是动作维度,H 是规划时域。
正向扩散过程(在轨迹空间上):
q(\tau_{1:T} \mid \tau_0) = \prod_{t=1}^{T} q(\tau_t \mid \tau_{t-1}), \quad q(\tau_t \mid \tau_{t-1}) = \mathcal{N}(\tau_t; \sqrt{1-\beta_t} \tau_{t-1}, \beta_t I)
反向过程用神经网络近似:
p_\theta(\tau_{t-1} \mid \tau_t) = \mathcal{N}\left(\tau_{t-1}; \mu_\theta(\tau_t, t), \Sigma_\theta(\tau_t, t)\right)
在实际实现中,\mu_\theta 通常参数化为噪声预测网络 $\epsilon_\theta(\tau_t, t)$。
2.2 轨迹级扩散:状态动作序列的联合建模
Diffuser 对整个轨迹进行联合建模,而非逐时刻建模状态或动作。这带来了以下优势:
(1)全局一致性(Global Coherence)
自回归方法(Autoregressive)固有的误差累积问题:hat{s}_{t+1} 的微小误差会导致 hat{a}_t 的误差,进而导致下一步误差放大。轨迹级扩散通过同时生成所有时刻的 $(s, a)$,天然保证全局一致性。
(2)跨时间步的依赖关系
许多规划问题存在跨时间步的约束(如燃料约束、安全区域约束),联合建模可以自然地捕捉这些依赖,无需显式建模。
轨迹表示的维度问题:
对于高维问题,轨迹维度可能非常大。设 $d_s = 100$,$d_a = 20$,$H = 100$,则 $\dim(\tau) = (101 \times 100) + (100 \times 20) = 12100$。直接在此高维空间进行扩散会带来计算挑战。
Diffuser 通过以下策略缓解这一问题:
- 分层扩散(Hierarchical Diffusion):先在低分辨率轨迹上生成粗略路径,再在局部时间窗口内细化
- 部分平坦化(Partial Flattening):对状态和动作分别在不同的时间分辨率上建模
2.3 分类器引导(Classifier Guidance)在计划中的应用
Classifier Guidance(Dhariwal & Nichol, 2021)是扩散模型条件生成的核心技术。在 Diffuser 中,条件信息(如目标状态 $g$)通过引导的方式注入。
无条件 score 与条件 score 的关系:
设 p(\tau) 是无条件的轨迹分布,p(g \mid \tau) 是在给定轨迹 \tau 下目标 g 被满足的概率。条件 score 为:
\nabla_\tau \log p(\tau \mid g) = \nabla_\tau \log p(\tau) + \nabla_\tau \log p(g \mid \tau)
Classifier Guidance 用一个独立的分类器 f_\phi(g \mid \tau_t, t) 来近似 $p(g \mid \tau_t)$,则在采样过程中:
\hat{\epsilon}_\theta(\tau_t, t) = \epsilon_\theta(\tau_t, t) - s \cdot \nabla_\tau \log p(g \mid \tau_t) \approx \epsilon_\theta(\tau_t, t) - s \cdot \nabla_\tau f_\phi(g \mid \tau_t, t)
其中 s 是引导强度(guidance scale),\Sigma_t 是逆过程方差。s=0 对应无条件生成,s 越大生成的轨迹越接近目标。
在规划中的应用:
- 目标状态约束:
g可以是目标状态集(如 "到达位置 $(x, y)$") - 安全约束:
g可以表示安全约束的满足(如 "避障") - 任务描述:
g可以是语言描述或图像目标
2.4 条件扩散模型:p(\tau \mid s_0, g)
更一般地,Diffuser 同时以初始状态 s_0 和目标 g 为条件:
p(\tau \mid s_0, g) = \text{Diffusion Model}(\tau; s_0, g)
具体实现中,s_0 和 g 通过以下方式注入:
- 拼接(Concatenation):将
s_0和g作为额外的 "token" 拼接到轨迹的对应位置 - 交叉注意力(Cross-Attention):在 U-Net / Transformer 的注意力层中引入条件编码
- 自适应归一化(Adaptive Normalization):如 AdaIN,将条件信息注入生成过程
条件 score 的推导:
\nabla_\tau \log p(\tau \mid s_0, g) = \nabla_\tau \log p(\tau) + \nabla_\tau \log p(s_0, g \mid \tau)
第一项由标准的扩散模型近似,第二项由条件目标函数给出。对于确定性的动力学约束 $s_{t+1} = f(s_t, a_t)$,有:
p(s_0, g \mid \tau) = \mathbb{1}{\tau \text{ 满足动力学约束}} \cdot \mathbb{1}{s_0 \text{ 匹配}} \cdot \mathbb{1}{g \text{ 匹配}}
在实际实现中,动力学约束通常作为硬约束在采样后检查,不满足的轨迹被丢弃或重新采样。
3. Planning with Diffusion 的算法步骤
3.1 轨迹表示:\tau = (s_0, a_0, s_1, a_1, \ldots, s_H)
定义长度为 H 的轨迹 \tau 由状态序列和动作序列交叉组成:
\tau = (s_0, a_0, s_1, a_1, \ldots, s_{H-1}, a_{H-1}, s_H) \in \mathbb{R}^{(H+1) \cdot d_s + H \cdot d_a}
在离散时间系统中,$s_{t+1} = f(s_t, a_t)$。在连续时间系统中,可以将控制序列 \mathbf{u}(t) 参数化为基函数的线性组合。
扁平化表示(Flattened Representation):
将轨迹展平为一个长向量:
\tilde{\tau} = [s_0; a_0; s_1; a_1; \ldots; s_H] \in \mathbb{R}^{D}, \quad D = (H+1)d_s + H d_a
扩散过程在此 D 维空间中进行。
时间感知的噪声调度:
在标准 DDPM 中,噪声调度 \beta_1, \ldots, \beta_T 是固定的。在规划场景中,不同时间步的鲁棒性需求不同:
- 近端时间步(
t接近 $0$):需要精确的动作选择,噪声应较小 - 远端时间步(
t接近 $H$):规划存在不确定性,可以容忍较大噪声
可以通过非均匀的 \beta_t 调度来反映这一直觉,例如:
\beta_t = \beta_{\min} + (\beta_{\max} - \beta_{\min}) \cdot \frac{t}{T} \cdot w(t)
其中 w(t) 是时间相关的加权函数。
3.2 反向过程采样与指导
标准反向过程(DDPM采样):
给定 $\tau_T \sim \mathcal{N}(0, I)$,从 t=T 到 t=1 迭代:
\tau_{t-1} = \frac{1}{\sqrt{\alpha_t}} \left( \tau_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}} \epsilon_\theta(\tau_t, t) \right) + \sqrt{\beta_t} \, z, \quad z \sim \mathcal{N}(0, I)
条件引导采样(Classifier Guidance):
为在 s_0 和 g 的条件下采样,对反向过程每一步的均值进行修正:
\hat{\epsilon} = \epsilon_\theta(\tau_t, t) - c \cdot \nabla_\tau \log p(g \mid \tau_t)
其中 c 是引导系数。当 p(g \mid \tau_t) 由神经网络分类器 f_\phi 参数化时:
\hat{\epsilon} = \epsilon_\theta(\tau_t, t) - c \cdot \nabla_\tau \log p(g \mid \tau_t)
当 p(g \mid \tau_t) 由神经网络分类器 f_\phi 参数化时:
轨迹提取:
采样得到 \tau_0 后,提取动作序列:
a_t = \text{Proj}_a(\tau_0[t]), \quad t = 0, 1, \ldots, H-1
其中 \text{Proj}_a 是动作空间的投影(如果动作是离散的或受约束的)。
3.3 与 Model Predictive Control(MPC)的关系
古典 MPC:
MPC 通过以下优化问题在每个时间步 t 选取动作:
a_t^* = \arg\min_{a_t, \ldots, a_{t+H-1}} \sum_{k=t}^{t+H-1} \hat{r}(s_k, a_k) \quad \text{s.t.} \quad s_{k+1} = \hat{f}(s_k, a_k)
其中 \hat{r} 和 \hat{f} 是学习到的奖励和动力学模型。仅执行 $a_t^*$,然后在 t+1 重新规划(replanning)。
扩散 MPC(Diffusion MPC):
Diffuser 将 MPC 的优化问题转化为条件生成问题:
\{a_t^*, \ldots, a_{t+H-1}^*\} \sim p(\tau \mid s_t, g)
关键区别在于:
| 特性 | 古典 MPC | 扩散 MPC |
|---|---|---|
| 优化目标 | 单点估计(最优轨迹) | 分布采样(多样化轨迹) |
| 非凸处理 | 需凸近似或局部搜索 | 扩散过程自然处理多峰分布 |
| 约束处理 | 显式惩罚或投影 | 通过引导隐式满足 |
| 计算复杂度 | O(H \cdot 优化器迭代) |
O(T \cdot U-Net 前向传播) |
在线规划(Online Planning):
在实时控制场景中,需要在 t 时刻迅速得到 $a_t$。Diffuser 支持以下策略:
- 部分采样(Partial Sampling):扩散规划核心优势是全局联合建模,截断采样会退回自回归误差累积弊端。实际做法是采样完整轨迹但只执行前几步,然后重新规划(replan)。
- 蒸馏(Distillation):将扩散采样蒸馏为一个单步策略网络
\pi_\theta(s_t) - 剪枝(Pruning):在采样过程中剪枝低概率轨迹,保留少数候选路径
4. 软意图引导(Soft Intent Guidance)
4.1 目标条件化与意图空间
意图(Intent) 是比目标(Goal)更抽象的概念。目标通常是确定的状态或状态空间,而意图是关于目标的偏好描述,可以用语言、图像或偏好向量表示。
意图空间(Intent Space) \mathcal{I} 是所有可能的意图描述的集合。典型的意图空间包括:
- 语言意图:"向前移动并绕过障碍物"
\rightarrow嵌入到语言模型空间 - 视觉意图:目标图像
\rightarrow嵌入到视觉编码器空间 - 偏好向量:
v \in \mathbb{R}^d表示用户对不同状态属性的偏好权重
软意图引导指通过意图信息在采样过程中引导轨迹生成,而不强制约束。形式化地:
\hat{\epsilon}_\theta(\tau_t, t; i) = \epsilon_\theta(\tau_t, t) - \lambda \cdot \nabla_\tau \log p(i \mid \tau_t)
其中 i \in \mathcal{I} 是意图,\lambda 控制引导强度。
4.2 软奖励与硬约束的处理
硬约束(Hard Constraints) 是必须满足的约束,如安全区域、物理限制。在扩散规划中,硬约束通过以下方式处理:
- 拒绝采样(Rejection Sampling):生成轨迹后检查约束,不满足则丢弃
- 约束投影(Projection):将采样轨迹投影到可行集
- 无穷小引导(Infinitesimal Guidance):增大引导系数使约束几乎必然满足
软奖励(Soft Rewards) 是偏好性而非强制性的目标,如 "尽量靠近目标" 而非 "必须在目标点"。软奖励通过 Classifier Guidance 的 \lambda 参数连续调节:
- $\lambda = 0$:无意图引导,完全由数据驱动
- $\lambda \rightarrow \infty$:意图引导主导,约束趋近硬约束
- $0 < \lambda < \infty$:软引导,在满足意图的概率和轨迹多样性之间权衡
数学上,设 C(\tau) 是硬约束集合(如 C(\tau) = 1 如果 \tau 满足所有硬约束),R(\tau) = \sum_t r(s_t, a_t) 是累积奖励。优化的后验分布为:
p(\tau \mid s_0) \propto \underbrace{p(\tau)}_{\text{先验(数据驱动)}} \cdot \underbrace{\exp(\alpha R(\tau))}_{\text{软奖励}} \cdot \underbrace{\mathbb{1}_{C(\tau)=1}}_{\text{硬约束}}
当数据分布 p(\tau) 由扩散模型建模时,上式可以通过条件采样直接实现。
4.3 多目标规划中的 Pareto 前沿
多目标规划问题涉及同时优化多个可能冲突的目标:
\max_{\tau} \quad [R_1(\tau), R_2(\tau), \ldots, R_K(\tau)]
其中 R_k 是第 k 个目标函数。
Pareto 最优性定义:轨迹 \tau^* 是 Pareto 最优的,当且仅当不存在另一轨迹 \tau' 使得 R_k(\tau') \geq R_k(\tau^*) 对所有 k 成立,且至少有一个严格不等式成立。
扩散模型生成 Pareto 前沿:
Diffuser 可以通过在意图空间中插值来生成 Pareto 前沿上的多个轨迹。设两个极端意图 i_1 和 i_2 分别代表目标 R_1 优化和目标 R_2 优化:
i(\lambda) = \text{lerp}(i_1, i_2; \lambda), \quad \lambda \in [0, 1]
通过变化 $\lambda$,可以生成沿 Pareto 前沿的轨迹集合:
\{\tau(\lambda) \sim p(\tau \mid s_0, i(\lambda)) \mid \lambda \in [0, 1]\}
这一性质对于需要人类在多个合法选项中选择的应用场景尤为重要。
5. Decision Transformers vs 扩散规划
5.1 Decision Transformer:自回归建模
Decision Transformer(DT)(Chen et al., 2021)将序列决策问题建模为序列生成问题。给定历史轨迹片段:
\sigma_t = (s_0, a_0, r_1, s_1, a_1, r_2, \ldots, r_t, s_t)
DT 通过自回归 Transformer 建模:
\hat{a}_t = \text{Transformer}([G_t; \sigma_t])
其中 G_t = \sum_{k=t}^H r_k 是从当前时刻到结束的剩余累计回报,\sigma_t = (s_0, a_0, r_1, \ldots, s_t) 是历史状态-动作序列。
训练目标是最小化动作预测的交叉熵:
\mathcal{L}(\theta) = \mathbb{E}_{\sigma, a} \left[ -\log \pi_\theta(a_t \mid \sigma_t) \right]
5.2 扩散规划:全局一致性的采样方法
扩散规划通过同时采样完整轨迹 \tau 而非逐时刻预测动作,实现全局一致性。这种方法在以下方面与 DT 不同:
| 维度 | Decision Transformer | 扩散规划 |
|---|---|---|
| 生成方式 | 自回归逐时刻预测 | 全局同时采样 |
| 误差累积 | 存在(一步错误影响后续) | 不存在(全局建模) |
| 多样性 | 确定性输出或多峰策略 | 天然多峰采样 |
| 长时域依赖 | 通过长上下文注意力建模 | 通过联合建模直接捕获 |
| 计算效率 | 高(单步推理) | 低(需要迭代采样) |
| 在线学习 | 易于增量更新 | 需要重新训练或微调 |
5.3 两者的优缺点比较
Decision Transformer 的优势:
- 推理速度快:单步自回归生成,适合实时控制
- 可解释性强:逐时刻决策逻辑清晰
- 在线适应:可以通过微调快速适应新任务
- 长期记忆:通过注意力机制有效利用长历史信息
Decision Transformer 的劣势:
- 误差累积:自回归模型中早期误差会在后期放大
- 多峰表达能力有限:均值预测难以覆盖多峰解空间
- 规划范围受限:需要预设历史窗口大小
扩散规划的优势:
- 全局一致性:联合建模保证跨时间步的一致性
- 多峰采样:天然输出多样化轨迹集合
- 灵活的约束注入:通过引导机制非侵入式添加约束
- 无需显式动力学期望:扩散模型直接学习条件分布
扩散规划的劣势:
- 采样速度慢:需要
T步迭代(DDPM 通常 $T=1000$) - 计算成本高:U-Net / Transformer 在高维轨迹空间中的前向传播代价大
- 实时性挑战:在高频控制场景中难以部署
融合方向:
两种范式的融合是前沿研究方向:
- DT-Diffusion 混合:用 DT 提供初始轨迹,用扩散模型 refinement
- 扩散式决策Transformer:在 Transformer 架构中引入扩散损失
- 层级规划:DT 负责高层意图规划,扩散模型负责低层轨迹生成
6. 扩散模型的规划应用于控制
6.1 引力增强采样(Gravity-Informed Sampling)
引力增强采样是一类将物理先验注入扩散采样的技术。在机器人控制中,物理规律(如重力、摩擦)是已知的硬约束,可以用来加速采样或提高轨迹质量。
能量函数形式的物理先验:
定义物理能量 $E_{\text{physics}}(\tau)$,如:
E_{\text{physics}}(\tau) = \sum_{t=0}^{H-1} \left[ m g h(s_t) + \frac{1}{2} m \|v_t\|^2 + \sum_j F_j(s_t, a_t) \cdot d_j(s_t) \right]
其中 h(s_t) 是高度,v_t 是速度,F_j 是第 j 个约束力,d_j 是距离函数。
引力增强采样修正 score(物理势能满足力 = −势能梯度):
\hat{s}_\theta(\tau_t, t) = s_\theta(\tau_t, t) - \nabla_\tau E_{\text{physics}}(\tau_t)
这等价于在无条件 score 上添加物理势场的梯度,在采样过程中将轨迹 "拉向" 物理可行的流形。
重力引导采样(Gravity-Guided Sampling) 特别适用于足式机器人和无人机控制:
- 在足式机器人中,ZMP(Zero Moment Point)约束形成可行站立区域
- 在无人机中,飞行走廊约束限制了在自由空间中的轨迹
通过将此类物理约束编码为引力场项,可以显著提高采样效率。
6.2 交叉熵方法(CEM)与扩散的融合
交叉熵方法(Cross-Entropy Method, CEM) 是一种基于采样的优化算法,通过维护高斯分布的精英集合来逐步逼近最优解。在每次迭代中:
- 从当前分布
\mathcal{N}(\mu, \Sigma)采样N个样本 - 评估目标函数,选取 top-
k精英样本 - 用精英样本更新分布参数
\mu, \Sigma
CEM 与扩散的融合(Diffusion-CEM)利用 CEM 的精英采样思想来加速扩散采样:
算法:Diffusion-CEM
输入:初始状态 s_0,目标 g,扩散模型 εθ,迭代数 M,引导系数 c
输出:优化轨迹 τ*
1. 初始化噪声分布:μ ← 0, Σ ← I
2. FOR iter = 1 to M DO
3. 采样轨迹噪声:ε_i ~ N(μ, Σ), i = 1, ..., N
4. 生成候选轨迹:τ_i = sampler(ε_i; s_0, g, c)
5. 评估轨迹质量:J_i = J(τ_i)
6. 选取精英轨迹:E = {τ_i | J_i ≥ quantile(J, ρ)}
7. 拟合精英分布:μ, Σ = fit_gaussian(E)
8. END FOR
9. RETURN τ_0 = mean(E) 或 argmax J_i
其中 \rho \in (0, 1) 是精英比例,\text{quantile} 是分位数函数。
为什么融合有效:
标准扩散采样的噪声是各向同性的高斯噪声,在高维空间中有效样本比例极低(维度灾难)。CEM 通过逐步拟合目标分布的形状,将采样推向高奖励区域,减少无效采样。
理论分析:
设目标分布 $p(\tau) \propto \exp(J(\tau))$,其中 J 是累积奖励。标准采样等价于在 t=T 的纯噪声分布上施加分数场驱动的梯度流。CEM 等价于用高斯混合近似 $p(\tau)$,在每次迭代中用精英样本重新估计高斯参数。
当 M \rightarrow \infty 且 N \rightarrow \infty 时,Diffusion-CEM 的极限分布为:
\lim_{M,N \to \infty} \mu = \arg\max_\tau J(\tau)
即收敛到最优轨迹。
6.3 实时规划的可行性分析
实时规划要求在严格的时限内(通常 10-100 ms)给出控制决策。扩散规划的计算瓶颈主要在于:
计算瓶颈分析:
| 操作 | 时间复杂度 | 典型延迟 |
|---|---|---|
| 单步 U-Net 前向传播 | O(D \cdot d_{\text{model}}) |
1-10 ms |
DDPM 完整采样(T=1000 步) |
O(T \cdot D \cdot d_{\text{model}}) |
1-10 s |
| 动作提取 | O(H) |
<1 ms |
加速策略:
-
步数减少(Step Reduction):
- DDIM 采样将
T=1000降至T=20-50步,延迟降至20-50ms - Flow Matching 可进一步降至
T=5-10步
- DDIM 采样将
-
蒸馏(Distillation):
- 将扩散模型蒸馏为单步策略网络
\pi_\theta(s_t) - 训练损失:
\mathcal{L} = \mathbb{E}_{\tau, s_t} [\|\pi_\theta(s_t) - a_t^*\|^2] - 蒸馏后延迟降至
<1ms
- 将扩散模型蒸馏为单步策略网络
-
硬件加速:
- GPU 并行采样:同时生成多个候选轨迹
- 专用加速器:Google EdgeTPU、NVIDIA TensorRT
-
早停(Early Stopping):
- 在采样早期检测低质量轨迹并丢弃
- 仅保留和精化少量精英轨迹
实时场景下的可行方案:
对于 100 ms 级别的控制周期,当前可行的方案是:
- DDIM + 蒸馏(
T \approx 20步,单步网络):延迟\approx 20-50ms - 部分轨迹采样(只采样前
5步):延迟\approx 10-20ms - 预计算+在线调整:离线预计算轨迹库,在线通过意图引导选择和调整
7. 前沿进展
7.1 3D 场景规划(Pointcloud 输入)
3D 感知规划是机器人从仿真走向真实世界的关键能力。传统的 3D 规划方法依赖于明确的地图构建(SLAM),而扩散规划可以直接从点云输入生成可行轨迹。
点云编码的挑战:
点云 \mathcal{P} = \{p_1, \ldots, p_N\} \subset \mathbb{R}^3 是稀疏的、非结构化的。处理点云的常用方法:
- PointNet 编码:
f_\phi(\mathcal{P}) = \text{MLP}(\text{MAXPOOL}(\text{MLP}(p_i))) - Transformer 编码:通过自注意力建模点间关系
- 体素化(Voxelization):将点云转化为 3D 体素网格,利用 3D CNN 处理
3D 场景的扩散规划架构:
点云 P ──→ PointNet/3D CNN ──→ 场景编码 c
│
状态 s_t ──→ 轨迹编码 εθ(τ_t, t) ──→ 联合注意力 ──→ score(τ_t|t)
↑
目标 g 编码
Collision-Free 轨迹生成:
安全规划的核心是避障。设 \mathcal{C} \subset \mathbb{R}^3 是障碍物占据的空间,碰撞约束为:
C(\tau) = 1 \iff \forall t, \forall p \in \text{robot}, \ p + s_t \notin \mathcal{C}
在扩散采样中,通过以下损失强制满足碰撞约束:
\mathcal{L}_{\text{safety}} = \mathbb{E}_{t, \tau} \left[ \max(0, d_{\text{min}}(\tau_t) - \delta)^2 \right]
其中 d_{\text{min}}(\tau_t) 是轨迹 \tau_t 到最近障碍物的距离,\delta 是安全裕度。
7.2 安全关键系统的扩散规划
安全关键系统(Safety-Critical Systems)如自动驾驶、医疗机器人,对安全性有极高的要求。扩散规划在安全关键场景中的核心挑战和解决方案:
挑战 1:约束满足的保证
标准扩散采样提供的是 "probabilistic guarantee"(概率保证),但安全关键系统需要 "hard guarantee"(硬保证)。
解决方案:Control Barrier Functions (CBF) + 扩散
CBF 定义了安全集合 \mathcal{C} 的特性函数 $h(x)$,满足:
h(x) \geq 0 \implies x \in \mathcal{C}, \quad \dot{h}(x) \geq -\alpha h(x)
CBF 与扩散的正确融合方式:CBF 是修正规划输出的轨迹,而非修改扩散采样的分数/噪声。扩散先生成粗轨迹后,再用 CBF 投影至安全可行域。在采样后处理阶段:
\tau_{\text{safe}} = \text{Proj}_{\text{CBF}}(\tau_0; h) = \arg\min_{\tau \in \mathcal{C}} \|\tau - \tau_0\|
而非直接在反向扩散迭代中融合 CBF 梯度。
挑战 2:分布外(Out-of-Distribution)情况
训练数据中未见过的场景可能导致扩散模型生成不安全轨迹。
解决方案:安全增强训练
在训练数据中人为注入对抗场景,并标注安全/不安全的二值标签。训练安全分类器 $f_\phi^{\text{safe}}$,在推理时:
\hat{\epsilon} \leftarrow \epsilon - \lambda_{\text{safe}} \cdot \nabla \log p(\text{safe} \mid \tau)
7.3 扩散模型与 MCTS 结合
蒙特卡洛树搜索(Monte Carlo Tree Search, MCTS) 通过构建搜索树来选择最优动作,核心包含四个步骤:
- 选择(Selection):从根节点出发,选择最优子节点
- 扩展(Expansion):添加新节点
- 模拟(Simulation):从新节点出发随机 rollout
- 反向传播(Backpropagation):更新节点统计数据
扩散增强的 MCTS(Diffusion-Augmented MCTS):
标准 MCTS 在每个节点需要估计子节点的 Q 值,这通常通过 rollout 或价值网络近似。扩散模型可以提供更准确的局部规划:
算法:Diffusion-Augmented MCTS
输入:状态 s,扩散模型 εθ,预算 B(模拟次数)
输出:最优动作 a*
1. IF s 是叶节点 THEN RETURN None END IF
2. FOR each action a ∈ A(s) DO
3. 假设下一状态 s' = f(s, a)
4. 用扩散模型生成局部轨迹:τ_a ~ p(τ|s, a) (条件于特定动作)
5. 评估轨迹回报:Q(s, a) ≈ J(τ_a)
6. END FOR
7. 用 UCB 选择动作:a* = argmax_a Q(s, a) + c·√(ln N(s)/N(s, a))
8. RETURN a*
为什么扩散模型增强 MCTS 有效:
- 局部规划精度:在每个节点用扩散模型做局部 MPC,减少对全局价值函数的依赖
- 先验指导:用扩散模型的 score 作为 MCTS 的先验策略,优先探索高概率高质量的分支
- 并行化:扩散采样天然支持批处理,可以在树构建过程中并行生成多个子节点的轨迹
扩散 MCTS 的理论收敛性:
设 Q^*(s, a) 是真实的最优 Q 值,\hat{Q}(s, a) 是扩散增强的 Q 估计,则估计误差:
|Q^*(s, a) - \hat{Q}(s, a)| \leq \underbrace{|Q^* - \hat{Q}_{\text{MCTS无权值}}|}_{\text{标准 MCTS 误差}} + \underbrace{\mathbb{E}[|J(\tau) - J(\tau^*)|]}_{\text{局部规划误差}}
由于扩散模型提供的局部规划通常比单步 rollout 更准确,第二项误差显著减小,整体估计精度提升。
参考文献
- Ho, J., Jain, A., & Abbeel, P. (2020). Denoising Diffusion Probabilistic Models. NeurIPS.
- Song, Y., et al. (2021). Score-Based Generative Modeling through Stochastic Differential Equations. ICLR.
- Lipman, Y., et al. (2022). Flow Matching for Generative Modeling. ICLR.
- Janner, M. D., et al. (2022). Planning with Diffusion for Flexible Behavior Synthesis. ICML.
- Chen, L., et al. (2021). Decision Transformer: Reinforcement Learning via Sequence Modeling. NeurIPS.
- Dhariwal, P., & Nichol, A. (2021). Diffusion Models Beat GANs on Image Synthesis. NeurIPS.
- Graves, A., et al. (2023). Stochastic Trajectory Prediction via Motion Indeterminacy Diffusion. CVPR.
- Liu, W., et al. (2023). Diffusion Probabilistic Models for Collision-Free Trajectory Planning. IROS.
- Ajay, A., et al. (2023). Conditioning Predictive Transformers for Planning. CoRL.
- Xia, Y., et al. (2023). Learning to Sample with Cross-Entropy Method in Diffusion Models. NeurIPS.
附录:关键公式汇总
扩散模型前向过程:
q(x_t \mid x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t} x_{t-1}, \beta_t I)
逆过程均值(Ho et al.):
\mu_\theta(x_t, t) = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}} \epsilon_\theta(x_t, t) \right)
Classifier Guidance(标准形式,无多余方差项):
\hat{\epsilon} = \epsilon_\theta - s \cdot \nabla_\tau \log p(g \mid \tau_t)
Pareto 前沿意图插值:
i(\lambda) = \text{lerp}(i_1, i_2; \lambda)
引力增强 score(力 = −势能梯度):
\hat{s}_\theta(\tau_t, t) = s_\theta(\tau_t, t) - \nabla_\tau E_{\text{physics}}(\tau_t)