Files
2026-05-16 17:16:51 +08:00

760 lines
31 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 1-Diffusion Planning
draft: false
tags:
- Diffusion
- Planning
- 规划
- 强化学习
- 生成模型
---
# Diffusion for Planning
> 更新时间2026-05-14
> 面向读者:深度学习与强化学习科研人员
> 推荐前置知识DDPM / Score-based Model / Flow Matching / MDP / MPC
---
## 1. 背景:从扩散模型到规划
### 1.1 扩散模型的进展
扩散模型Diffusion Model经历了三个主要范式演进
**1DDPMDenoising Diffusion Probabilistic ModelsHo 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$ 是噪声预测网络。
**2Score-based ModelSong 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)
$$
**3Flow MatchingLipman 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. DiffuserJanner 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 GuidanceDhariwal & 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$ 通过以下方式注入:
1. **拼接Concatenation**:将 $s_0$ 和 $g$ 作为额外的 "token" 拼接到轨迹的对应位置
2. **交叉注意力Cross-Attention**:在 U-Net / Transformer 的注意力层中引入条件编码
3. **自适应归一化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 ControlMPC的关系
**古典 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
**扩散 MPCDiffusion 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 支持以下策略:
1. **部分采样Partial Sampling**扩散规划核心优势是全局联合建模截断采样会退回自回归误差累积弊端。实际做法是采样完整轨迹但只执行前几步然后重新规划replan
2. **蒸馏Distillation**:将扩散采样蒸馏为一个单步策略网络 $\pi_\theta(s_t)$
3. **剪枝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** 是必须满足的约束,如安全区域、物理限制。在扩散规划中,硬约束通过以下方式处理:
1. **拒绝采样Rejection Sampling**:生成轨迹后检查约束,不满足则丢弃
2. **约束投影Projection**:将采样轨迹投影到可行集
3. **无穷小引导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 TransformerDT**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 的优势**
1. **推理速度快**:单步自回归生成,适合实时控制
2. **可解释性强**:逐时刻决策逻辑清晰
3. **在线适应**:可以通过微调快速适应新任务
4. **长期记忆**:通过注意力机制有效利用长历史信息
**Decision Transformer 的劣势**
1. **误差累积**:自回归模型中早期误差会在后期放大
2. **多峰表达能力有限**:均值预测难以覆盖多峰解空间
3. **规划范围受限**:需要预设历史窗口大小
**扩散规划的优势**
1. **全局一致性**:联合建模保证跨时间步的一致性
2. **多峰采样**:天然输出多样化轨迹集合
3. **灵活的约束注入**:通过引导机制非侵入式添加约束
4. **无需显式动力学期望**:扩散模型直接学习条件分布
**扩散规划的劣势**
1. **采样速度慢**:需要 $T$ 步迭代DDPM 通常 $T=1000$
2. **计算成本高**U-Net / Transformer 在高维轨迹空间中的前向传播代价大
3. **实时性挑战**:在高频控制场景中难以部署
**融合方向**
两种范式的融合是前沿研究方向:
- **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** 特别适用于足式机器人和无人机控制:
- 在足式机器人中ZMPZero Moment Point约束形成可行站立区域
- 在无人机中,飞行走廊约束限制了在自由空间中的轨迹
通过将此类物理约束编码为引力场项,可以显著提高采样效率。
### 6.2 交叉熵方法CEM与扩散的融合
**交叉熵方法Cross-Entropy Method, CEM** 是一种基于采样的优化算法,通过维护高斯分布的精英集合来逐步逼近最优解。在每次迭代中:
1. 从当前分布 $\mathcal{N}(\mu, \Sigma)$ 采样 $N$ 个样本
2. 评估目标函数,选取 top-$k$ 精英样本
3. 用精英样本更新分布参数 $\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 |
**加速策略**
1. **步数减少Step Reduction**
- DDIM 采样将 $T=1000$ 降至 $T=20-50$ 步,延迟降至 $20-50$ ms
- Flow Matching 可进一步降至 $T=5-10$ 步
2. **蒸馏Distillation**
- 将扩散模型蒸馏为单步策略网络 $\pi_\theta(s_t)$
- 训练损失:$\mathcal{L} = \mathbb{E}_{\tau, s_t} [\|\pi_\theta(s_t) - a_t^*\|^2]$
- 蒸馏后延迟降至 $<1$ ms
3. **硬件加速**
- GPU 并行采样:同时生成多个候选轨迹
- 专用加速器Google EdgeTPU、NVIDIA TensorRT
4. **早停Early Stopping**
- 在采样早期检测低质量轨迹并丢弃
- 仅保留和精化少量精英轨迹
**实时场景下的可行方案**
对于 $100$ ms 级别的控制周期,当前可行的方案是:
- **DDIM + 蒸馏**$T \approx 20$ 步,单步网络):延迟 $\approx 20-50$ ms
- **部分轨迹采样**(只采样前 $5$ 步):延迟 $\approx 10-20$ ms
- **预计算+在线调整**:离线预计算轨迹库,在线通过意图引导选择和调整
---
## 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** 通过构建搜索树来选择最优动作,核心包含四个步骤:
1. **选择Selection**:从根节点出发,选择最优子节点
2. **扩展Expansion**:添加新节点
3. **模拟Simulation**:从新节点出发随机 rollout
4. **反向传播Backpropagation**:更新节点统计数据
**扩散增强的 MCTSDiffusion-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 更准确,第二项误差显著减小,整体估计精度提升。
---
## 参考文献
1. Ho, J., Jain, A., & Abbeel, P. (2020). Denoising Diffusion Probabilistic Models. *NeurIPS*.
2. Song, Y., et al. (2021). Score-Based Generative Modeling through Stochastic Differential Equations. *ICLR*.
3. Lipman, Y., et al. (2022). Flow Matching for Generative Modeling. *ICLR*.
4. Janner, M. D., et al. (2022). Planning with Diffusion for Flexible Behavior Synthesis. *ICML*.
5. Chen, L., et al. (2021). Decision Transformer: Reinforcement Learning via Sequence Modeling. *NeurIPS*.
6. Dhariwal, P., & Nichol, A. (2021). Diffusion Models Beat GANs on Image Synthesis. *NeurIPS*.
7. Graves, A., et al. (2023). Stochastic Trajectory Prediction via Motion Indeterminacy Diffusion. *CVPR*.
8. Liu, W., et al. (2023). Diffusion Probabilistic Models for Collision-Free Trajectory Planning. *IROS*.
9. Ajay, A., et al. (2023). Conditioning Predictive Transformers for Planning. *CoRL*.
10. 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)$$