--- 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)$$