760 lines
31 KiB
Markdown
760 lines
31 KiB
Markdown
---
|
||
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)经历了三个主要范式演进:
|
||
|
||
**(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$ 通过以下方式注入:
|
||
|
||
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 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 支持以下策略:
|
||
|
||
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 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 的优势**:
|
||
|
||
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)** 特别适用于足式机器人和无人机控制:
|
||
|
||
- 在足式机器人中,ZMP(Zero 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)**:更新节点统计数据
|
||
|
||
**扩散增强的 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 更准确,第二项误差显著减小,整体估计精度提升。
|
||
|
||
---
|
||
|
||
## 参考文献
|
||
|
||
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)$$ |