Diffusion policy: Visuomotor policy learning via action diffusion(上)
文章概括
引用:
@article{chi2023diffusion,
title={Diffusion policy: Visuomotor policy learning via action diffusion},
author={Chi, Cheng and Feng, Siyuan and Du, Yilun and Xu, Zhenjia and Cousineau, Eric and Burchfiel, Benjamin and Song, Shuran},
journal={arXiv preprint arXiv:2303.04137},
year={2023}
}
Chi, C., Feng, S., Du, Y., Xu, Z., Cousineau, E., Burchfiel, B. and Song, S., 2023. Diffusion policy: Visuomotor policy learning via action diffusion. arXiv preprint arXiv:2303.04137.
原文:https://arxiv.org/abs/2303.04137
代码、数据和视频:https://diffusion-policy.cs.columbia.edu/
系列文章:
请在
《
《
《文章
》
》
》 专栏中查找
摘要
本文介绍了Diffusion Policy,一种通过将机器人的视动策略表示为条件去噪扩散过程的新方法来生成机器人行为。我们在来自四个不同机器人操作基准的15个任务上对Diffusion Policy进行了基准测试,结果显示它在所有任务中表现优异,平均提高了46.9%。Diffusion Policy通过学习动作分布评分函数的梯度,并在推理过程中通过一系列随机Langevin动力学步骤迭代优化这一梯度场。我们发现,扩散公式在用于机器人策略时具有显著优势,包括优雅处理多模态动作分布、适用于高维动作空间,以及展现出令人印象深刻的训练稳定性。为了充分释放扩散模型在物理机器人视动策略学习中的潜力,本文提出了一系列关键技术贡献,包括引入递进视界控制、视觉条件和时间序列扩散transformer。我们希望这项工作能够激发新一代策略学习技术的发展,充分利用扩散模型强大的生成建模能力。代码、数据和训练细节可在https://diffusion-policy.cs.columbia.edu/获取。
关键词
模仿学习、视动策略、操作
1. 介绍
从示范(demonstration)中进行策略学习,其最简单的形式可以被表述为监督回归任务,即学习将观察映射为动作。然而,实际上,预测机器人动作的独特性质——如多模态分布的存在、序列相关性以及高精度要求——使得这一任务与其他监督学习问题相比具有独特性和挑战性。
以往的研究尝试通过探索不同的动作表示来应对这一挑战(图1a),如使用高斯混合模型【Mandlekar et al., 2021】、量化动作的分类表示【Shafiullah et al., 2022】,或者通过切换策略表示方式(图1b),从显式表示转为隐式表示,以更好地捕捉多模态分布【Florence et al., 2021; Wu et al., 2020】。
在本研究中,我们引入了一种新的机器人视动策略形式,通过机器人动作空间上的“条件去噪扩散过程”【Ho et al., 2020】生成行为,称为Diffusion Policy。在这种形式中,策略并不直接输出动作,而是根据视觉观测推断动作评分的梯度,进行K次去噪迭代(图1c)。这一公式使得机器人策略能够继承扩散模型的几个关键特性,从而显著提高性能。
图1. 策略表示. a) 显式策略使用不同类型的动作表示。b) 隐式策略学习一个由动作和观察条件化的能量函数,并通过优化最小化能量景观来确定动作。c) 扩散策略通过学习的梯度场将噪声逐步优化为动作。这种形式提供了稳定的训练过程,使得学习的策略能够准确建模多模态动作分布,并适应高维动作序列。
- 表达多模态动作分布。 通过学习动作评分函数的梯度【Song and Ermon, 2019】,并在该梯度场上执行随机Langevin动力学采样,Diffusion Policy能够表达任意可归一化分布【Neal et al., 2011】,其中包括多模态动作分布,这是策略学习中的一个众所周知的挑战。
- 高维输出空间。 正如其在图像生成中的出色表现所证明的,扩散模型在高维输出空间中展现了极佳的可扩展性。该特性使策略能够联合推断一系列未来动作,而非单步动作,这对于促进时间上的动作一致性和避免短视规划至关重要。
- 稳定的训练。 训练基于能量的策略通常需要通过负采样来估计不可处理的归一化常数,这已知会导致训练不稳定【Du et al., 2020; Florence et al., 2021】。Diffusion Policy通过学习能量函数的梯度,绕过了这一需求,从而在保持分布表达能力的同时,实现了稳定的训练。
1. 表达多模态动作分布
背景: 在许多机器人控制或决策场景中,环境状态(例如视觉观察)可能对应着不止一种合理动作。举个直观的例子:如果机器人需要将桌面上的某个杯子搬离桌面,它可以选择从左侧绕行抓取,也可以选择从右侧绕行抓取,还可以从正面或背面抓取。这些不同的动作方式在物理上都是可行、合理的。我们通常将这种 “一个状态对应多个可能动作” 的情况称为多模态动作分布。
传统方法的问题:
- 在常规的高斯策略假设或单模态分布假设下,策略只能学到 “平均化” 的动作,例如可能会学到一个介于左侧抓取和右侧抓取之间的折中动作,这实际上可能是一个 “最差的抓取方式”。
- 为了表示多模态,人们有时会使用混合高斯模型等更复杂的分布,但这往往增加了训练与推断难度。
Diffusion Policy 如何解决:
- Diffusion Policy 借鉴了扩散模型(Diffusion Models)中的核心思想:不直接建模动作分布本身,而是学习一个动作能量函数或其梯度,然后通过类似Langevin动力学的过程进行采样。
下面我们从原理、算法步骤和举例三个层面,来介绍一下 Langevin 动力学(Langevin Dynamics)在采样中的作用和过程。此方法在「Diffusion Policy」以及许多基于能量的模型(EBM, Energy-Based Models)的训练和推断中都非常关键。
1. 什么是 Langevin 动力学?
物理背景(简略) 最初,Langevin 动力学源自于物理学对粒子在流体中随机运动的描述。粒子同时受到“确定性力”(例如势能的梯度)和“随机冲击力”(热噪声)的共同作用,导致其轨迹呈现随机性。在数学建模中,我们可以把这个过程写成一个随机微分方程(SDE)或其离散形式。对概率分布进行采样时,我们常用的就是其离散近似版本(也叫做「无偏随机梯度 MCMC」的一种)。
在概率分布采样中的含义 当我们想要从一个复杂的分布 p ( x ) p(\mathbf{x}) p(x) 中采样时,如果这个分布是未归一化的(只知道其能量函数或 log 概率的形状,而不知道明确的归一化常数),我们可以利用 Langevin 动力学来进行随机采样。
- 记能量函数为 E ( x ) E(\mathbf{x}) E(x),则 log p ( x ) ∝ − E ( x ) \log p(\mathbf{x}) \propto -E(\mathbf{x}) logp(x)∝−E(x)。
- Langevin 动力学会一边利用 ∇ log p ( x ) \nabla \log p(\mathbf{x}) ∇logp(x)(即分布的 “上升方向” 或能量函数的 “下降方向”)来朝高概率区前进,一边加入噪声来探索整个空间,从而最终 “遍历” 或 “采样” 到符合 p ( x ) p(\mathbf{x}) p(x) 的样本。
目标:我们有一个目标分布 p ( x ) p(\mathbf{x}) p(x),但只知道其对数形式(或者能量函数)
log p ( x ) 或 E ( x ) = − log p ( x ) , \log p(\mathbf{x}) \quad \text{或} \quad E(\mathbf{x}) = -\log p(\mathbf{x}), logp(x)或E(x)=−logp(x),可能因为归一化常数难以显式计算,无法直接采样。
思路:Langevin 动力学的采样过程可以理解为:在分布的梯度指引下,样本不断往“高概率区域”移动,同时加上一点随机噪声保证探索,从而让样本分布逐渐逼近目标分布 p ( x ) p(\mathbf{x}) p(x)。
2. Langevin 动力学的离散算法步骤
以下是一种常用的离散化形式(又称Unadjusted Langevin Algorithm (ULA))的迭代过程:
- 初始化:从某一个初始点 x 0 \mathbf{x}_0 x0 开始(可以是随机初始化,或根据某种启发式获得)。
- 迭代更新:对第 t t t 次迭代得到的状态 x t \mathbf{x}_t xt( t = 0 , 1 , … , T − 1 t = 0, 1, \dots, T-1 t=0,1,…,T−1),计算 x t + 1 = x t + α 2 ∇ x log p ( x t ) + α η t , \mathbf{x}_{t+1} = \mathbf{x}_t + \frac{\alpha}{2} \nabla_{\mathbf{x}} \log p(\mathbf{x}_t) + \sqrt{\alpha}\, \boldsymbol{\eta}_t, xt+1=xt+2α∇xlogp(xt)+αηt, 其中:
- α \alpha α 为步长(learning rate 也可以这么理解),通常需要调得合适以保证既能稳定收敛又能足够探索。 。
- ∇ x log p ( x t ) \nabla_{\mathbf{x}} \log p(\mathbf{x}_t) ∇xlogp(xt) 为分布(或能量函数)的梯度,是在 x t \mathbf{x}_t xt 处对数概率的梯度(也可以视作能量函数负梯度 − ∇ E ( x t ) -\nabla E(\mathbf{x}_t) −∇E(xt))。
- η t \boldsymbol{\eta}_t ηt 是来自于标准正态分布 N ( 0 , I ) N(0, I) N(0,I) 的随机噪声向量。
- α η t \sqrt{\alpha}\, \boldsymbol{\eta}_t αηt 表示要给状态施加一个随机扰动,从而保持对分布的全局探索。
- 重复迭代:不断重复上述的迭代更新若干轮,最终的 x t \mathbf{x}_t xt 即可近似看作是从 p ( x ) p(\mathbf{x}) p(x) 中采样得到的样本。
直观理解:
- α 2 ∇ x log p ( x t ) \frac{\alpha}{2} \nabla_{\mathbf{x}} \log p(\mathbf{x}_t) 2α∇xlogp(xt) :让样本朝着“更高概率”方向(或能量更低)移动,类似于梯度上升/下降。
- α η t \sqrt{\alpha}\, \boldsymbol{\eta}_t αηt :让样本有随机扰动,以便逃离局部极值并探索整个空间。
如果从物理上解释,这就像一个粒子在势能场(由能量函数决定)里随机运动;梯度部分相当于势能对粒子的确定性作用力,噪声则对应热力学的随机碰撞。
3. 举个简单示例
为更好地理解,下面以一个一维分布为例来说明 Langevin 动力学的过程:
3.1 示例:一维高斯分布假设我们想要从一个一维的目标分布中采样,这个目标分布是 p ( x ) = N ( x ∣ μ , σ 2 ) , p(x) = \mathcal{N}(x \mid \mu, \sigma^2), p(x)=N(x∣μ,σ2), 即均值为 μ \mu μ、方差为 σ 2 \sigma^2 σ2 的正态分布。这个分布可以写成 log p ( x ) = − 1 2 σ 2 ( x − μ ) 2 + 常数项 ( 归一化常数等省略 ) . \log p(x) = -\frac{1}{2 \sigma^2} (x - \mu)^2 + \text{常数项} \quad (\text{归一化常数等省略}). logp(x)=−2σ21(x−μ)2+常数项(归一化常数等省略).
- 能量函数: E ( x ) ∝ 1 2 σ 2 ( x − μ ) 2 E(x) \propto \frac{1}{2 \sigma^2}(x - \mu)^2 E(x)∝2σ21(x−μ)2。
- 梯度: ∇ x log p ( x ) = − 1 σ 2 ( x − μ ) \nabla_x \log p(x) = -\frac{1}{\sigma^2}(x - \mu) ∇xlogp(x)=−σ21(x−μ)。
3.1.1 Langevin 动力学采样步骤
- 初始化:令 x 0 = 0 x_0 = 0 x0=0(随便选一个初始点)。
- 更新公式(一维版): x t + 1 = x t + α 2 ( ∇ x log p ( x t ) ) + α η t , x_{t+1} = x_t + \frac{\alpha}{2} \left(\nabla_x \log p(x_t)\right) + \sqrt{\alpha} \,\eta_t, xt+1=xt+2α(∇xlogp(xt))+αηt,
其中 η t ∼ N ( 0 , 1 ) \eta_t \sim \mathcal{N}(0,1) ηt∼N(0,1)。- 带入梯度:因为 ∇ x log p ( x t ) = − 1 σ 2 ( x t − μ ) \nabla_x \log p(x_t) = -\frac{1}{\sigma^2}(x_t - \mu) ∇xlogp(xt)=−σ21(xt−μ),则 x t + 1 = x t − α 2 σ 2 ( x t − μ ) + α η t . x_{t+1} = x_t - \frac{\alpha}{2\sigma^2}(x_t - \mu) + \sqrt{\alpha}\,\eta_t. xt+1=xt−2σ2α(xt−μ)+αηt.
这表示每一步我们朝着“ μ \mu μ”的方向进行微量移动,然后再加上一点随机噪声。- 重复若干轮,例如迭代 1000 步或更多,记录后期采样的 x t x_t xt 值(为了去掉初期的“烧入期/混合期”影响,可以只记录后 500 步)。
结果:如果选择合适的 α \alpha α 和迭代次数,最终收集到的 { x t } \{x_t\} {xt} 会按照 N ( μ , σ 2 ) \mathcal{N}(\mu,\sigma^2) N(μ,σ2) 分布来分布。
虽然这个例子是“已经知道如何直接采样”的简单分布,但示范了 Langevin 动力学是如何通过“梯度+随机噪声”来获取符合目标分布的样本。
3.2 一维示例:采样自“双峰”分布
先用一个“一维、双模态”的分布来做示例,这里我们不直接写归一化常数,只定义:
p ( x ) = exp ( − ( x − μ 1 ) 2 / ( 2 σ 2 ) ) ⏟ 第1个峰 + exp ( − ( x − μ 2 ) 2 / ( 2 σ 2 ) ) ⏟ 第2个峰 . p(x) \;=\; \underbrace{\exp\!\bigl(-(x - \mu_1)^2 / (2\,\sigma^2)\bigr)}_{\text{第1个峰}} \;+\; \underbrace{\exp\!\bigl(-(x - \mu_2)^2 / (2\,\sigma^2)\bigr)}_{\text{第2个峰}}. p(x)=第1个峰 exp(−(x−μ1)2/(2σ2))+第2个峰 exp(−(x−μ2)2/(2σ2)).
这相当于两个高斯“包”之和(但还需要整体归一化才是严格的概率分布,这里忽略常数),分布在 μ 1 \mu_1 μ1 和 μ 2 \mu_2 μ2 附近各有一个峰。比如:
- μ 1 = − 3 \mu_1 = -3 μ1=−3, μ 2 = + 3 \mu_2 = +3 μ2=+3
- σ = 1 \sigma = 1 σ=1
第 1 步:写出对数几乎就够了 log p ( x ) = log ( exp ( − ( x − μ 1 ) 2 2 σ 2 ) + exp ( − ( x − μ 2 ) 2 2 σ 2 ) ) . \log p(x) = \log\!\Bigl( \exp\!\bigl(-\tfrac{(x - \mu_1)^2}{2\,\sigma^2}\bigr) + \exp\!\bigl(-\tfrac{(x - \mu_2)^2}{2\,\sigma^2}\bigr) \Bigr). logp(x)=log(exp(−2σ2(x−μ1)2)+exp(−2σ2(x−μ2)2)).
第 2 步:计算梯度
对数梯度为: ∇ x log p ( x ) = − x − μ 1 σ 2 exp ( − ( x − μ 1 ) 2 2 σ 2 ) + − x − μ 2 σ 2 exp ( − ( x − μ 2 ) 2 2 σ 2 ) exp ( − ( x − μ 1 ) 2 2 σ 2 ) + exp ( − ( x − μ 2 ) 2 2 σ 2 ) . \nabla_x \log p(x) = \frac{ -\frac{x - \mu_1}{\sigma^2}\,\exp\!\bigl(-\tfrac{(x - \mu_1)^2}{2\,\sigma^2}\bigr) \;+\; -\frac{x - \mu_2}{\sigma^2}\,\exp\!\bigl(-\tfrac{(x - \mu_2)^2}{2\,\sigma^2}\bigr) }{ \exp\!\bigl(-\tfrac{(x - \mu_1)^2}{2\,\sigma^2}\bigr) \;+\; \exp\!\bigl(-\tfrac{(x - \mu_2)^2}{2\,\sigma^2}\bigr) }. ∇xlogp(x)=exp(−2σ2(x−μ1)2)+exp(−2σ2(x−μ2)2)−σ2x−μ1exp(−2σ2(x−μ1)2)+−σ2x−μ2exp(−2σ2(x−μ2)2). 只要能写个函数来计算它就行了。第 3 步:迭代更新 我们从一个随机 x 0 ∼ N ( 0 , 1 ) x_0 \sim \mathcal{N}(0,1) x0∼N(0,1) 开始,每一步: x t + 1 = x t + α 2 ∇ x log p ( x t ) + α η t , η t ∼ N ( 0 , 1 ) . x_{t+1} = x_t + \frac{\alpha}{2}\,\nabla_x \log p(x_t) + \sqrt{\alpha}\,\eta_t, \quad \eta_t \sim \mathcal{N}(0,1). xt+1=xt+2α∇xlogp(xt)+αηt,ηt∼N(0,1).
举个更“数值化”一点的例子(Python 假想伪代码):
import numpy as np
def logp(x, mu1=-3, mu2=3, sigma=1.0):
# 返回 log [exp(-(x - mu1)^2 / 2sigma^2) + exp(-(x - mu2)^2 / 2sigma^2)]
val1 = np.exp(-(x - mu1)**2 / (2*sigma**2))
val2 = np.exp(-(x - mu2)**2 / (2*sigma**2))
return np.log(val1 + val2)
def grad_logp(x, mu1=-3, mu2=3, sigma=1.0):
# 上面的梯度公式
val1 = np.exp(-(x - mu1)**2 / (2*sigma**2))
val2 = np.exp(-(x - mu2)**2 / (2*sigma**2))
num = -(x - mu1)/sigma**2 * val1 - (x - mu2)/sigma**2 * val2
den = val1 + val2
return num/den
# Langevin 动力学采样示例 alpha = 0.01 T = 2000 x_samples = [] x = np.random.normal(0, 1) # 初始化 for t in range(T):
g = grad_logp(x)
x = x + alpha/2 * g + np.sqrt(alpha) * np.random.normal(0,1)
x_samples.append(x)
# 现在 x_samples 就是一步步迭代得到的样本序列,
# 后期 (比如 t>500) 的样本会大概率分布在 ~ -3 和 ~ +3 两个峰附近。
最终你会看到,采样的大部分时间会在 − 3 -3 −3 附近或 + 3 +3 +3 附近切换,从而反映了这个双峰分布的特征。如果没有随机噪声项 α η t \sqrt{\alpha}\,\eta_t αηt,那么样本只会被梯度“推”向某一个局部峰并停在那里,无法跳到另一个峰。
3.3 示例:高维复杂分布
在现实中,我们往往面对高维、多模态、没有显式归一化常数的分布。此时,我们只能拿到 ∇ log p ( x ) \nabla \log p(\mathbf{x}) ∇logp(x)(或能量函数的负梯度),而无法直接采样。
- 比如: 在「Diffusion Policy」中, x \mathbf{x} x 就是动作或动作序列;我们只知道这个动作在专家数据或训练数据中出现的“似然”(或者一个能量函数),但没有明确的分布公式。
- 做法: 依旧可以用 Langevin 动力学把动作“从噪声中逐步去噪”并朝着高概率的动作区域移动,同时带有随机性去探索各种可能动作(这就能表达多模态)。
3.4 二维、混合高斯分布示例
再来一个“二维、双峰”例子(更贴近实际场景,因为动作往往是多维的)。假设: p ( x ) = 1 2 N ( x ∣ m 1 , σ 2 I ) + 1 2 N ( x ∣ m 2 , σ 2 I ) , p(\mathbf{x}) = \frac{1}{2}\,\mathcal{N}(\mathbf{x}\mid \mathbf{m}_1, \sigma^2 \mathbf{I}) + \frac{1}{2}\,\mathcal{N}(\mathbf{x}\mid \mathbf{m}_2, \sigma^2 \mathbf{I}), p(x)=21N(x∣m1,σ2I)+21N(x∣m2,σ2I), 这里 x ∈ R 2 \mathbf{x}\in \mathbb{R}^2 x∈R2, m 1 = ( − 3 , − 3 ) \mathbf{m}_1=(-3, -3) m1=(−3,−3), m 2 = ( + 3 , + 3 ) \mathbf{m}_2=(+3, +3) m2=(+3,+3)。 同理,令 log p ( x ) = log ( 1 2 exp ( − ∥ x − m 1 ∥ 2 / ( 2 σ 2 ) ) + 1 2 exp ( − ∥ x − m 2 ∥ 2 / ( 2 σ 2 ) ) ) . \log p(\mathbf{x}) = \log\!\Bigl(\tfrac{1}{2}\exp(-\|\mathbf{x}-\mathbf{m}_1\|^2/(2\sigma^2)) + \tfrac{1}{2}\exp(-\|\mathbf{x}-\mathbf{m}_2\|^2/(2\sigma^2))\Bigr). logp(x)=log(21exp(−∥x−m1∥2/(2σ2))+21exp(−∥x−m2∥2/(2σ2))).
可以手工或在程序里写出它的梯度 ∇ log p ( x ) \nabla \log p(\mathbf{x}) ∇logp(x),再用同样的公式进行 Langevin 更新,即可得到逼近该混合分布的样本,分散在 m 1 \mathbf{m}_1 m1 和 m 2 \mathbf{m}_2 m2 两个聚集区。
4. 与 Diffusion Policy 的关系
在 Diffusion Policy 中,Langevin 动力学的角色可以理解为:
- 我们的“目标分布”是给定状态下的动作(或动作序列)的分布 p ( a ∣ s ) p(\mathbf{a}|\mathbf{s}) p(a∣s)。
- 传统能量模型或基于评分函数(score function, 即 ∇ log p ( a ∣ s ) \nabla \log p(\mathbf{a}|\mathbf{s}) ∇logp(a∣s))的扩散模型思路可以让我们不必显式计算归一化常数。
- 在推断(Inference)或生成时,就像上面的一维/二维例子那样,我们从随机初始化的动作出发,一步步地按照“梯度+噪声”进行更新,直到收敛到较高概率的动作区域。
- 由于有随机噪声,模型可以兼顾多模态(不同抓取方式、不同运动轨迹等),而不是被“定死”在一个局部峰。
5. 总结
- 原理:Langevin 动力学在物理上是粒子在势能场中的随机运动;在概率学中,用于在复杂分布上进行采样,结合了“梯度驱动 + 随机噪声”的思想。
- 离散过程:常用的离散更新方式是 x t + 1 = x t + α 2 ∇ x log p ( x t ) + α η t , η t ∼ N ( 0 , I ) . \mathbf{x}_{t+1} = \mathbf{x}_t + \frac{\alpha}{2} \nabla_{\mathbf{x}} \log p(\mathbf{x}_t) + \sqrt{\alpha}\,\boldsymbol{\eta}_t, \quad \boldsymbol{\eta}_t \sim \mathcal{N}(0, I). xt+1=xt+2α∇xlogp(xt)+αηt,ηt∼N(0,I).
- 作用:它能在未知归一化常数的情况下,使用 ∇ x log p \nabla_{\mathbf{x}} \log p ∇xlogp 来逐步得到来自 p ( x ) p(\mathbf{x}) p(x) 的采样,从而在能量模型(例如 EBM、Diffusion Model)中得到所需的样本或动作。
- 举例:在一维高斯分布中,Langevin 动力学能逐步地把样本移动到靠近 μ \mu μ 的区域,但保留一定的噪声,使得分布与真高斯分布一致;在高维场景下也可以类似操作。
- 应用:在「Diffusion Policy」等基于能量或基于评分函数的模型里,Langevin 动力学被当作一种 “去噪”过程,从随机动作出发,逐渐朝着高似然动作区域移动,同时保持多模态的可能性,实现对复杂(甚至多模态)动作分布的采样。
- 扩散模型的一个重要特征是它能逼近任意可归一化分布。换言之,你可以认为在足够的训练数据下,Diffusion Policy 可以学习到各种复杂形状的动作分布,包含多个“峰”,从而自然地支持多模态。
示例: 在一个抓取任务中,给定机器人的相机观测图像,Diffusion Policy 学到的多模态动作分布可能对应:
- 从左侧绕行抓取(一个动作序列模态)
- 从右侧绕行抓取(另一个动作序列模态)
- 正面抓取(第三个动作序列模态) 在推理时,Diffusion Policy 根据当前视觉输入通过其扩散采样过程,能够在多个合理动作方案中进行采样,而非收敛到一个单一(可能次优)的动作。
2. 高维输出空间
背景: 在许多决策场景中,动作并不是单步的、简单的标量或低维向量;尤其在机器人操作或复杂策略中,动作可能是高维的,或者我们关心的并不只是“一步动作”,而是一整段动作序列。这就要求模型能在高维空间里对动作进行联合推断。为什么要联合推断未来动作序列?
- 在复杂场景下,如果仅仅根据单步动作进行规划,可能会导致“短视规划”(greedy approach),忽略长远的动作效果。
- 同时推断多个时间步的动作能够让策略“先想好一小段时间里每一步要怎么做”,在动作之间保持时间上的一致性,避免出现前后矛盾的行为。
Diffusion Policy 如何解决:
- 扩散模型在图像生成中的成功经验已经证明了其对高维数据(如 256×256,甚至更大分辨率的图像)的生成能力。这种可扩展性同样可以应用在高维动作序列上:
- 可以把未来 H H H 步的动作拼接成一个长向量或张量(例如维度为 H × d H \times d H×d,其中 d d d 是单步动作的维度)。
- Diffusion Policy 就可以像“生成图像”一样,对这个长向量/张量进行训练和采样,学习到联合分布。
示例: 假设一个机器人需要执行一个 5 步的操作(抓取、移动、放置等),每一步的动作维度是 7(比如机械臂 7 个关节的角度变化)。那么整个未来动作的维度就是 5 × 7 = 35 5 \times 7 = 35 5×7=35。Diffusion Policy 会直接在 35维的空间中学习分布,从而一次性对这 5 步动作进行采样,而不仅仅是单步预测。这样做能够保证动作序列内部的衔接。
3. 稳定的训练
背景:
一些基于能量的策略(Energy-Based Models, EBM)在理论上可以表示复杂分布,但往往在实际训练中很不稳定,原因之一在于需要对不可处理的归一化常数进行近似,通常要用到“负样本”或对抗训练等技巧。
这些近似在训练过程中可能会引入梯度估计偏差或不稳定,导致模型难以收敛。
Diffusion Policy 如何解决:
- Diffusion Policy 采用了学习能量函数的梯度而不是直接学习能量函数本身的数值,这就绕过了对归一化常数的显式估计。
- 以Langevin 动力学为例:我们可以在噪声空间不断迭代地更新动作,利用当前的梯度信息朝着“更高的动作概率”方向移动,逐渐去噪,最终得到一个采样动作。
- 这样,模型只需要提供“该动作的概率梯度”即可,而无需在训练中显式估计“这个分布的总体积分”是多少,从而在保持分布表达能力的同时,获得了相对稳定的训练过程。
示例: 在真实的机器人控制任务中,如果我们尝试使用“基于能量的行为克隆(EBM BC)”来学习策略,通常会在训练时需要负样本(即机器人不应该执行的动作),并通过对比损失或对抗训练来估计能量函数的归一化常数。这种做法在实践中常常不稳定或效率较低。而在 Diffusion Policy中,通过训练一个“去噪网络”或“梯度网络”,我们只需要正向数据(专家演示),让模型学会“从随机噪声到正确动作分布”的映射,不需要显式构造负样本,因而训练更稳定。
总结
- 多模态动作分布:Diffusion Policy 能够表达任意可归一化分布,在面向有多种合理动作选择的场景时,不会简单地退化成“平均动作”,而是可以保留各种模态的可能性。
- 高维输出空间:借助于扩散模型在高维数据上的强大生成能力,Diffusion Policy 可以学习到对多个时间步的动作序列进行联合预测,避免短视规划,保证动作在时间维度上的一致性。
- 稳定训练:通过学习动作评分函数的梯度并利用随机Langevin动力学采样,Diffusion Policy 绕开了对归一化常数的显式估计,不需要负样本对抗训练,因而在实际应用中训练更加稳定。
这些特性使得「Diffusion Policy」在机器人学、强化学习以及模仿学习的场景中都具有相当的潜力和应用价值。
我们的主要贡献是将上述优势引入机器人领域,并展示它们在复杂的现实世界机器人操作任务中的有效性。为了成功将扩散模型应用于视动策略学习,我们提出了以下技术贡献,这些贡献提升了Diffusion Policy的性能,并充分释放了其在物理机器人上的潜力:
- 闭环动作序列。 我们将策略预测高维动作序列的能力与递进视界(receding-horizon)控制相结合,以实现稳健的执行。该设计使策略能够以闭环方式持续重新规划其动作,同时保持时间上的动作一致性,达到长远规划与响应能力之间的平衡。
- 视觉条件。 我们引入了一个视觉条件扩散策略,其中视觉观测被视为条件,而不是联合数据分布的一部分。在这种形式中,策略在去噪迭代中只提取一次视觉表示,这大大减少了计算量并实现实时动作推断。
- 时间序列扩散transformer。 我们提出了一种新的基于transformer的扩散网络,旨在最小化典型CNN模型的过平滑效应,并在需要高频率动作变化和速度控制的任务中实现了最先进的性能。
下面我们从三个方面,对这几个关键点进行更深入的解释,并结合示例帮助理解它们在机器人控制或决策任务(如抓取、搬运、导航等)中是如何发挥作用的。
1. 闭环动作序列
1.1 什么是闭环动作序列?
闭环(closed-loop):指的是策略会不断根据新的感知信息(例如视觉观测、传感器反馈)来更新或修正后续动作,从而形成一个“感知-动作-再感知-再动作”的循环。
动作序列:相对“单步动作”而言,这里策略要一次性输出多步动作(例如未来 H H H 步的控制命令),或者说在每个时间步上都保留一个“短时程的动作计划”。
在结合了 递进视界控制(receding horizon control) 的场景下,Diffusion Policy(或其他策略模型)可以:
- 在每个时刻规划出一段未来动作序列(比如接下来 5~10 步),保证动作之间的连贯性和合理性;
- 执行其中一个或几个动作后,根据传感器/相机的最新观测再更新规划,如此循环往复,实现闭环与长短期规划的平衡。
1.2 为什么需要闭环动作序列?
- 长远规划:如果只做单步动作决策,往往容易短视;但如果一次性规划非常长的动作序列,又容易对环境变化反应不及时。闭环设计可在保证短期计划的基础上,不断滚动更新,兼顾长远目标和实时反馈。
- 时间上的动作一致性:Diffusion Policy在高维动作空间学习到“未来多步动作的联合分布”,不同时间步的动作不再是独立预测,有利于避免“前后不连贯”、“抖动”等问题。
1.3 举例:机器人抓取与放置
- 机器人在桌子面前,每次基于摄像头观察当前桌面物体摆放位置,然后预测接下来 5 步机械臂动作(如抓取物体、抬升、移动……)。
- 执行前 1~2 步后,会再次读取新的相机图像,若物体被碰动或位置变化,则重新规划接下来 5 步动作序列。
- 整个过程中,Diffusion Policy 每一次都输出一个“短时序列”,保证动作在时间上是连续且合理的(抓取一定要先对准,然后再闭合机械爪等),并且对环境变化有快速反馈。
2. 视觉条件
2.1 视觉条件扩散策略
在传统的扩散模型中,经常会同时对图像和其他信号进行“联合建模”。但在视觉条件的Diffusion Policy里,视觉信息(例如相机图像、语义特征、点云等)被视为一个条件(condition),而动作才是我们真正要生成的目标。
也就是说,模型并不需要对“(图像 + 动作)”的联合分布进行完全的扩散建模,而是对“动作”的分布进行扩散,并在扩散过程(去噪过程)里用到一次从图像中提取的高层视觉表示。
2.2 为什么这样做能减少计算量?
- 如果在每一步扩散迭代都要对图像进行卷积/特征提取,计算量会很大,特别是每一步扩散网络都很深的时候。
- 通过把视觉信息“单独抽取”,只做一次或少量几次视觉特征提取:
- 先用一个卷积网络或 Transformer 编码器,对当前图像提取一个紧凑的视觉特征向量(或特征图)。
- 在整个去噪(采样)过程中,扩散网络只需要把这个特征向量当作条件输入(如拼接/加性融合)即可,而无需对完整图像做重复的卷积操作。
- 因此,就算扩散迭代有十几、几十步,视觉推断只做一次,大幅节省计算开销。
2.3 举例:机器人在执行抓取时
- 相机拍摄当前桌面画面,提取特征(如物体位置、姿态、外形等)的向量表示 v \mathbf{v} v。
- Diffusion Policy 的动作生成网络每步迭代时,都把 v \mathbf{v} v 当作输入条件,指导“如何去噪”到合理的动作序列,但不再对原图进行卷积。
- 这样,在实时(real-time)应用里,推理开销更低,响应更快,同时能在每一步都“看”着最新的视觉特征来规划动作。
3. 时间序列扩散 Transformer
3.1 背景
- 扩散模型常见的“去噪网络”包括 U-Net(常用于图像生成)或者一些 CNN 架构。但在时间序列数据(比如动作序列)中,如果用普通的CNN,有时会出现“过平滑”问题,尤其在需要高频变化或精细控制(速度、加速度)时,CNN的局部感受野可能无法充分捕捉长程依赖或者精细的时序模式。
- Transformer 由于自注意力机制(self-attention),在捕捉长时依赖和多模态变化上非常灵活,对序列建模通常表现更好。
3.2 时间序列扩散 Transformer 做了什么?
- 输入: 将未来 H H H 步的动作(或动作+状态)看成一个长度为 H H H 的序列,用向量或张量表示。
- 扩散过程: 在“去噪”每个时间步的动作时,可以通过跨时间步的注意力,让网络同时考虑到之前/之后各步的动作噪声状态,学到全局一致的修正。
- 避免过平滑: 相对于 CNN 可能的局部卷积平滑效应,Transformer 能根据不同时间步之间的相关性灵活加权,从而保留一些需要剧烈变化的动作信号(例如快速旋转机械臂、急转弯的移动机器人等)。
- 高频控制场景:在那些对速度或频率要求高的任务中(如流畅地跟踪移动目标,或者执行高速运动轨迹),时间序列扩散 Transformer 可以更好地学习到相邻时刻间的精细变化关系,提高控制性能。
3.3 举例:移动机器人高速避障
- 机器人要在狭窄空间内快速穿梭,动作每个时间步都需要根据周围障碍物位置进行大幅度修正。
- 用传统 CNN 可能把整个轨迹做得很平滑,结果导致机器人来不及做急转弯或闪避。
- 换成时间序列扩散 Transformer 后,模型会在去噪时注意到:
- “下一时刻与再下几时刻的障碍物距离已经非常小,需要做大幅度转向”
- “某些时刻保持速度快,某些时刻放慢速度”
- 由于 Transformer 跨时刻关联的注意力机制,它能够更轻松地生成“先直行后快速拐弯再加速”的复杂动作序列,并且在推理过程中仍保持与视觉条件的闭环。
4. 总结
- 闭环动作序列:将一次性预测多步动作与递进视界控制相结合,让策略既能做短期序列规划又能在每个新状态下及时更新,形成闭环自适应。
- 视觉条件:把图像编码到一个紧凑特征向量里,作为扩散模型的条件输入,减少在每步迭代中重复做卷积计算的开销,并在实时推理中依旧保持高效。
- 时间序列扩散 Transformer:用 Transformer 来对时间序列去噪,避免普通 CNN 可能的过平滑问题,特别适合需要高频动作变化的场景(如速度/加速度控制、高速机动、精准轨迹跟踪等)。
这些设计思路结合在一起,使得「Diffusion Policy」在机器人、强化学习以及多步决策问题中能兼顾实时性、长短期规划和复杂多模态分布表达能力,最终在各种高难度任务中取得更好的稳定性和执行效果。
我们在行为克隆框架下,系统地评估了Diffusion Policy在来自4个不同基准测试的15个任务中的表现【Florence et al., 2021; Gupta et al., 2019; Mandlekar et al., 2021; Shafiullah et al., 2022】。评估包括模拟和现实环境、2自由度到6自由度的动作、单任务和多任务基准测试、全驱动和欠驱动系统,以及刚性和流体物体,使用由单个和多个用户收集的示范数据。
通过实验,我们发现该策略在所有基准测试中表现出一致的性能提升,平均提高46.9%,这为Diffusion Policy的有效性提供了有力的证据。我们还提供了详细的分析,仔细检查了该算法的特性以及关键设计决策的影响。
这项工作是会议论文【Chi et al., 2023】的扩展版。我们在以下方面扩展了本文的内容:
- 增加了关于扩散策略与控制理论之间联系的新讨论章节,见第4.5节。
- 在模拟中加入了额外的消融研究,涉及替代网络架构设计以及不同的预训练和微调范式,见第5.4节。
- 扩展了现实世界实验结果,增加了三个双手操作任务,包括搅蛋器、垫子展开和折衬衫,见第7节。
代码、数据和训练细节已公开,可用于复现我们的结果,访问链接为 https://diffusion-policy.cs.columbia.edu/
2. 扩散策略的公式化
我们将视动机器人策略表述为去噪扩散概率模型(Denoising Diffusion Probabilistic Models:DDPMs)【Ho et al., 2020】。关键是,扩散策略能够表达复杂的多模态动作分布,并且具有稳定的训练行为,几乎不需要针对任务的超参数调整。以下部分将详细介绍DDPMs,并解释如何将其适应用于表示视动策略。
2.1 去噪扩散概率模型
DDPMs是一类生成模型,其输出生成过程被建模为去噪过程,通常称为随机Langevin动力学【Welling and Teh, 2011】。
从高斯噪声采样得到初始的 x K \text{x}^K xK,DDPM执行 K K K次去噪迭代,生成一系列噪声逐渐减少的中间动作 x k , x k − 1 , . . . , x 0 \text{x}^k, \text{x}^{k−1}, ..., \text{x}^0 xk,xk−1,...,x0,直到形成所需的无噪声输出 x 0 \text{x}^0 x0。该过程遵循以下方程:
x k − 1 = α ( x k − γ ε θ ( x k , k ) + N ( 0 , σ 2 I ) ) , (1) \mathbf{x}^{k-1} = \alpha (\mathbf{x}^{k} - \gamma \varepsilon_{\theta} (\mathbf{x}^{k}, k) + \mathscr{N}(0, \sigma^2 {I})), \tag{1} xk−1=α(xk−γεθ(xk,k)+N(0,σ2I)),(1)
其中 ε θ ε_θ εθ 是噪声预测网络,其参数 θ θ θ 将通过学习进行优化,而 N ( 0 , σ 2 I ) \mathscr{N}(0, \sigma^2 \mathbf{I}) N(0,σ2I) 是在每次迭代中添加的高斯噪声。
1. 背景复述
- 从高斯噪声采样得到初始的 x K \mathbf{x}^K xK:在 DDPM 采样阶段,一般先从一个纯噪声分布(高斯分布)中取样,记为 x K \mathbf{x}^K xK。这里 K K K 往往是扩散过程的总步数(或者说“扩散时长”)。
- 执行 K K K 次去噪迭代:在采样时,DDPM 会从 x K \mathbf{x}^K xK逐步去噪,得到 x K − 1 , x K − 2 , … , x 0 \mathbf{x}^{K-1}, \mathbf{x}^{K-2}, \dots, \mathbf{x}^0 xK−1,xK−2,…,x0。最终的 x 0 \mathbf{x}^0 x0 就是我们想要的无噪声输出(或相对噪声很小、可视为“干净”样本)的结果。
- 去噪迭代的更新方程: x k − 1 = α ( x k − γ ε θ ( x k , k ) + N ( 0 , σ 2 I ) ) , (1) \mathbf{x}^{k-1} = \alpha \bigl(\mathbf{x}^{k} - \gamma \,\varepsilon_{\theta} (\mathbf{x}^{k}, k) + \mathcal{N}\bigl(0, \sigma^2 \mathbf{I}\bigr)\bigr), \tag{1} xk−1=α(xk−γεθ(xk,k)+N(0,σ2I)),(1) 其中:
- ε θ ( x k , k ) \varepsilon_{\theta}(\mathbf{x}^{k}, k) εθ(xk,k) 是 DDPM 中的噪声预测网络(或称去噪网络),其参数 θ \theta θ 是通过训练学到的;
- N ( 0 , σ 2 I ) \mathcal{N}(0, \sigma^2 \mathbf{I}) N(0,σ2I) 表示在每次迭代中添加的高斯噪声;
- α \alpha α 和 γ \gamma γ 则是一些与扩散过程和模型设计相关的超参数/系数,决定了每次去噪如何进行缩放和步长。
下面我们从原理和公式推导两个角度来具体说明。
2. DDPM 的基本原理
2.1 前向扩散(Forward Process)
在训练阶段,DDPM 定义了一个前向扩散过程:
- 从真实数据 x 0 \mathbf{x}^0 x0 出发,每一步都往样本里注入一定量的高斯噪声,迭代 K K K 次,得到 x 1 , x 2 , … , x K \mathbf{x}^1, \mathbf{x}^2, \dots, \mathbf{x}^K x1,x2,…,xK。
- 最终 x K \mathbf{x}^K xK 通常接近于各向同性的高斯分布(几乎失去原有数据结构)。
这个前向过程可以写作: q ( x k ∣ x k − 1 ) = N ( x k ; 1 − β k x k − 1 , β k I ) , q(\mathbf{x}^{k} \mid \mathbf{x}^{k-1}) = \mathcal{N}\bigl(\mathbf{x}^{k}; \sqrt{1-\beta_k}\,\mathbf{x}^{k-1}, \,\beta_k \mathbf{I}\bigr), q(xk∣xk−1)=N(xk;1−βkxk−1,βkI), 其中 β k \beta_k βk 是一个控制“在第 k k k 步注入多少噪声”的系数。
2.2 反向去噪(Reverse Process)
DDPM 的目标是在采样阶段从随机噪声 x K ∼ N ( 0 , I ) \mathbf{x}^K \sim \mathcal{N}(0,\mathbf{I}) xK∼N(0,I) 开始,一步步地逆转前向扩散过程,得到无噪声的样本 x 0 \mathbf{x}^0 x0。根据“马尔可夫链逆推”原理,存在一个反向分布: p θ ( x k − 1 ∣ x k ) , p_{\theta}(\mathbf{x}^{k-1} \mid \mathbf{x}^{k}), pθ(xk−1∣xk),
它在理想情况下可以逆转前向过程。但直接建模很困难,所以 DDPM 提出了逐步去噪网络 ε θ \varepsilon_{\theta} εθ,它尝试在每个扩散阶段 k k k 预测当前样本中的噪声分量,从而实现去噪。
3. 采样时的去噪迭代公式
3.1 核心思路
在采样时(也叫“反向扩散推理”),我们已经有一个噪声预测模型 ε θ \varepsilon_{\theta} εθ,可以输入 x k \mathbf{x}^k xk 并输出估计的噪声。
- 如果我们把 ε θ ( x k , k ) \varepsilon_{\theta}(\mathbf{x}^k, k) εθ(xk,k) 当作“该时刻 x k \mathbf{x}^k xk 含有多少噪声”的预测,
- 那么 “ x k − ε θ ( x k , k ) \mathbf{x}^k - \varepsilon_{\theta}(\mathbf{x}^k, k) xk−εθ(xk,k)” 就可以被视作“此刻去掉噪声后的数据信号”的近似。
然而,为了保证在采样时仍带有一点随机性(而不是 deterministic 过程),以及符合马尔可夫链的概率一致性,需要在每次去噪中再注入一点噪声。这正是公式中的 N ( 0 , σ 2 I ) \mathcal{N}(0, \sigma^2 \mathbf{I}) N(0,σ2I) 一项。
3.2 公式解释
x k − 1 = α ( x k − γ ε θ ( x k , k ) + N ( 0 , σ 2 I ) ) . \mathbf{x}^{k-1} = \alpha \bigl(\mathbf{x}^{k} - \gamma \,\varepsilon_{\theta} (\mathbf{x}^{k}, k) + \mathcal{N}\bigl(0, \sigma^2 \mathbf{I}\bigr)\bigr). xk−1=α(xk−γεθ(xk,k)+N(0,σ2I)).
x k − γ ε θ ( x k , k ) \mathbf{x}^k - \gamma\,\varepsilon_{\theta}(\mathbf{x}^k, k) xk−γεθ(xk,k)
- 这里 ε θ ( x k , k ) \varepsilon_{\theta}(\mathbf{x}^k, k) εθ(xk,k) 就是“对第 k k k 步样本中的噪声分量”的预测。
- γ \gamma γ 是一个与训练过程/扩散计划相关的系数,可以理解为去噪步长。
- 因此 x k − γ ε θ ( x k , k ) \mathbf{x}^{k} - \gamma\,\varepsilon_{\theta}(\mathbf{x}^k, k) xk−γεθ(xk,k) 就是“把噪声减掉 γ \gamma γ 倍”之后得到的估计干净样本。
N ( 0 , σ 2 I ) \mathcal{N}(0, \sigma^2 \mathbf{I}) N(0,σ2I)
- 在每一步反向采样时注入的少量随机噪声,使得采样过程保持随机性并与前向过程的概率结构相匹配。
- 如果 σ 2 \sigma^2 σ2 在后期收敛到 0,那么最后几步可能变成近似确定性去噪;如果 σ 2 \sigma^2 σ2 保持一定幅度,就会有较强随机性,也能帮助模型表达多样化的输出。
α ( … ) \alpha (\dots) α(…)
- α \alpha α 可能是另一个缩放系数,用来平衡在当前阶段要对样本做多大幅度的更新/保留多少信息。
- 有时,在 DDPM 的原始论文或后续变体中,你会看到与 α ˉ k \sqrt{\bar{\alpha}_k} αˉk 类似的项(表示累积噪声比例),具体形式可能与论文中选定的噪声调度 ( β 1 , … , β K \beta_1, \dots, \beta_K β1,…,βK) 有关。
3.3 原理依据
3.3.1 马尔可夫链逆推 + Variational Lower Bound
在 DDPM 原始论文(Ho et al., 2020)中,通过定义前向过程 q ( x k ∣ x k − 1 ) q(\mathbf{x}^k|\mathbf{x}^{k-1}) q(xk∣xk−1) 与反向过程 p θ ( x k − 1 ∣ x k ) p_{\theta}(\mathbf{x}^{k-1}|\mathbf{x}^k) pθ(xk−1∣xk),并基于变分推断 (Variational Inference) 的思路,把去噪网络 ε θ \varepsilon_{\theta} εθ 的训练目标设定成近似最小化 ∥ ε θ ( x k , k ) − ε true ∥ 2 , \|\varepsilon_{\theta}(\mathbf{x}^k, k) - \boldsymbol{\varepsilon}_{\text{true}}\|^2, ∥εθ(xk,k)−εtrue∥2, 即让模型去逼近“在第 k k k 步时真正注入的噪声 ε true \boldsymbol{\varepsilon}_{\text{true}} εtrue”。在采样时,使用这一步步“去噪 + 注噪”的马尔可夫链就可以近似地从高斯分布逆推到数据分布。
3.3.2 吸收了高斯条件的线性更新
在原论文或后续的一些变体(如 DDIM)里,还会出现一些显式的线性或非线性系数,把 “去噪结果” 与 “当前样本 x k \mathbf{x}^k xk” 做插值,再加上新的高斯噪声,实现一步步递推。 这些系数(在你的公式里用到的 α \alpha α 和 γ \gamma γ)可以看做是把前向过程中的 β k \beta_k βk、 α ˉ k \bar{\alpha}_k αˉk 等参数结合起来,然后在推导得到反向条件分布时,出现了“缩放 + 平移 + 注入噪声”的结构。
4. 直观理解
初始完全是噪声: x K ∼ N ( 0 , I ) \mathbf{x}^K \sim \mathcal{N}(0,\mathbf{I}) xK∼N(0,I)。
一步步“去噪”:在每一步 k k k,我们先用网络 ε θ \varepsilon_{\theta} εθ 估计当前样本里的噪声,再减掉一部分;但为了保证随机性,我们又注入一点新噪声(这保证了最终采样出来的样本会多样,而不是每次都一样)。
最终得到“干净”样本:反复迭代后(共 K K K 步), x 0 \mathbf{x}^0 x0 就是接近真实数据分布的样本,比如图像、动作向量等。
对应“正向注噪”的逆过程:因为我们训练时知道每个阶段有多少噪声被注入,现在就能在反向阶段把它挨个“去掉”——只要网络能正确估计出“当前有多少噪声”。
5. 小结
- 这段文字描述了 DDPM 在采样阶段的一般迭代公式: x k − 1 = α ( x k − γ ε θ ( x k , k ) + N ( 0 , σ 2 I ) ) . \mathbf{x}^{k-1} = \alpha \Bigl(\mathbf{x}^{k} - \gamma \,\varepsilon_{\theta}(\mathbf{x}^{k}, k) + \mathcal{N}(0, \sigma^2 \mathbf{I})\Bigr). xk−1=α(xk−γεθ(xk,k)+N(0,σ2I)).
- 含义:从初始高斯噪声 x K \mathbf{x}^K xK 开始,依次去噪并注入少量新噪声,直到得到最终的 x 0 \mathbf{x}^0 x0,即我们想要的采样。
- 原理依据:
- 在训练阶段,前向过程向数据逐步注入噪声;
- 在推理阶段,通过反向过程(去噪网络)把噪声一步步去掉;
- 注入高斯噪声项是为了保证和前向过程的马尔可夫链结构相匹配,从而可以近似恢复原始数据分布。
- 数学基础:来自对前向-后向马尔可夫链分布的推导和变分下界的优化(Ho et al., 2020)。
这样,就完整地回答了这段去噪迭代文字的来龙去脉:它是 DDPM 采样时的反向扩散更新方程,通过学到的噪声预测网络,在每次迭代中将当前样本的噪声成分减去,同时再注入适量随机噪声,从而一步步生成高质量、无噪声的样本。
上述方程1也可以被解释为一次带噪声的梯度下降步骤:
x ′ = x − γ ∇ E ( x ) , (2) \mathbf{x}^′ =\mathbf{x}−γ∇E(x), \tag{2} x′=x−γ∇E(x),(2)
噪声预测网络 ε θ ( x , k ) \varepsilon_\theta(\mathbf{x}, k) εθ(x,k) 有效地预测梯度场 ∇ E ( x ) \nabla E(\mathbf{x} ) ∇E(x),其中 γ \gamma γ 是学习率。
选择 α \alpha α、 γ \gamma γ、 σ \sigma σ 作为迭代步骤 k k k 的函数,也被称为噪声调度,可以被解释为梯度下降过程中的学习率调度。Ho 等人 (2020) 证明,选择略小于 1 的 α \alpha α 可以提高稳定性。关于噪声调度的详细信息将在第 3.3 节中讨论。
2.2 DDPM 训练
训练过程从数据集中随机抽取未经修改的样本 x 0 \mathbf{x}^0 x0 开始。对于每个样本,我们随机选择一个去噪迭代步骤 k k k,然后为迭代步骤 k k k 采样具有适当方差的随机噪声 ε k \varepsilon^k εk。接下来,噪声预测网络需要从添加了噪声的数据样本中预测该噪声。
L = M S E ( ε k , ε θ ( x 0 + ε k , k ) ) (3) \mathscr{L} = MSE(\varepsilon^k, \varepsilon_\theta(\mathbf{x}^0 + \varepsilon^k, k)) \tag{3} L=MSE(εk,εθ(x0+εk,k))(3)
如 Ho 等人 (2020) 所示,最小化公式 (3) 中的损失函数也同时最小化了数据分布 p ( x 0 ) p(\mathbf{x}^0) p(x0) 和从 DDPM q ( x 0 ) q(\mathbf{x}^0) q(x0) 分布中抽取样本的分布之间的 KL 散度的变分下界(见公式 (1))。
1. 背景概述
DDPM(去噪扩散概率模型):由 Ho et al. (2020) 提出,属于扩散模型的一种。在训练时,DDPM 定义了一个“前向扩散”过程:从真实数据逐步加噪,直到完全变成近似各向同性高斯噪声;训练的核心是学一个“反向去噪”网络,能在每个加噪步骤下,准确地从“加噪样本”中预测出噪声,从而为推理阶段(采样时)一步步“去噪”做准备。
变分下界(Variational Lower Bound, VLB):DDPM 的目标可以理解为最小化从“模型采样”到“数据分布”的距离。由于显式写出联合分布的归一化项很复杂,常通过变分推断来给出一个可优化的下界。Ho 等人(2020)证明了,对噪声预测的 MSE(均方误差)做最小化,就等价于最小化这个变分下界(同时也最小化KL散度)。
2. 训练过程的描述
“训练过程从数据集中随机抽取未经修改的样本 x 0 \mathbf{x}^0 x0 开始。对于每个样本,我们随机选择一个去噪迭代步骤 k k k,然后为迭代步骤 k k k 采样具有适当方差的随机噪声 ε k \varepsilon^k εk。接下来,噪声预测网络需要从添加了噪声的数据样本中预测该噪声。”
2.1 随机抽取原始样本 x 0 \mathbf{x}^0 x0
- 从数据集中拿到一个干净样本 x 0 \mathbf{x}^0 x0,例如一张真实图像(在图像生成场景)或一个真实动作序列(在动作生成场景)。
- 不加任何修改时,它就是“第 0 步”的样本(无噪声)。
2.2 随机选择一个扩散步骤 k k k
- 在 DDPM 的训练中,我们有一个最大扩散步数 K K K(例如 1000 步)。
- 在训练时,并不是每次都把 x 0 \mathbf{x}^0 x0 加噪到 x K \mathbf{x}^K xK 再做预测,而是随机抽取一个中间步骤 k ∈ { 1 , 2 , … , K } k \in \{1, 2, \dots, K\} k∈{1,2,…,K}。
- 这样可使模型在所有扩散阶段都能获得足够的训练监督,而不是只在最后一步。
2.3 采样具有适当方差的随机噪声 ε k \varepsilon^k εk
- 对于第 k k k 步加噪,需要往 x 0 \mathbf{x}^0 x0 注入一定强度(方差)的噪声——这在原论文或后续介绍里通常写作: x k = α ˉ k x 0 + 1 − α ˉ k ε k , \mathbf{x}^k = \sqrt{\bar{\alpha}_k}\,\mathbf{x}^0 + \sqrt{1 - \bar{\alpha}_k}\,\varepsilon^k, xk=αˉkx0+1−αˉkεk, 其中 ε k ∼ N ( 0 , I ) \varepsilon^k \sim \mathcal{N}(0, \mathbf{I}) εk∼N(0,I), α ˉ k \bar{\alpha}_k αˉk 是由 β k \beta_k βk 递推得到的参数(累积噪声调度)。 β k \beta_k βk是什么?怎么得到的? β k \beta_k βk和 α ˉ k \bar{\alpha}_k αˉk的关系是什么?
- 在直观上,这表示“将原数据衰减到某个系数,再加上一定量高斯噪声”,这样就得到了当前第 k k k 步所对应的“加噪样本” x k \mathbf{x}^k xk。
2.4 训练目标:让网络 ε θ \varepsilon_{\theta} εθ 从加噪样本中预测出 ε k \varepsilon^k εk
- 也就是说,我们在训练时会把 x k \mathbf{x}^k xk 和对应的步数 k k k 一并输入到网络 ε θ ( x k , k ) \varepsilon_{\theta}(\mathbf{x}^k, k) εθ(xk,k),让它输出一个估计的噪声 ε ^ \hat{\varepsilon} ε^。
- 训练损失就直接对比 ε ^ \hat{\varepsilon} ε^ 和我们实际注入的噪声 ε k \varepsilon^k εk。两者的差异用 MSE(均方误差)度量。
3. 训练损失函数
文中给出的公式 (3):L = M S E ( ε k , ε θ ( x 0 + ε k , k ) ) = ∥ ε k − ε θ ( x k , k ) ∥ 2 . \mathscr{L} = MSE\bigl(\varepsilon^k,\; \varepsilon_\theta(\,\mathbf{x}^0 + \varepsilon^k,\,k)\bigr) = \bigl\|\varepsilon^k - \varepsilon_\theta(\,\mathbf{x}^k,\,k)\bigr\|^2. L=MSE(εk,εθ(x0+εk,k))= εk−εθ(xk,k) 2.
- 其中 ε k \varepsilon^k εk 是真实加到样本上的噪声;
- x k = x 0 + ε k \mathbf{x}^k = \mathbf{x}^0 + \varepsilon^k xk=x0+εk(此处是简化写法,实际加噪通常有个缩放系数 α ˉ k \sqrt{\bar{\alpha}_k} αˉk 和 1 − α ˉ k \sqrt{1-\bar{\alpha}_k} 1−αˉk,但本质相同);
- ε θ ( x k , k ) \varepsilon_\theta(\mathbf{x}^k, k) εθ(xk,k) 是网络对噪声的预测。
这个 MSE 损失衡量了 “网络预测的噪声” 和 “真正注入到数据中的噪声” 之间的差距。最小化这个差距就意味着,“在第 k k k 步里,网络能准确知道当前加噪样本里有多少噪声”,从而能够在采样时把这部分噪声减掉(实现去噪)。
4. 与变分下界的关系
“如 Ho 等人 (2020) 所示,最小化公式 (3) 中的损失函数也同时最小化了数据分布 p ( x 0 ) p(\mathbf{x}^0) p(x0) 和从 DDPM q ( x 0 ) q(\mathbf{x}^0) q(x0) 分布中抽取样本的分布之间的 KL 散度的变分下界(见公式 (1))。”
4.1 数据分布 vs. 模型采样分布 ε k \varepsilon^k εk
- 我们最终希望:从模型(DDPM)生成的样本分布 和 真实数据分布 尽量相似,通常用 KL 散度或其他度量来衡量两者差异。
- 直接最小化两者 KL 散度往往难以操作,因为我们无法显式写出模型采样分布的归一化常数;因此借助变分推断给出的变分下界(VLB) 来进行优化。
4.2 Ho 等人 (2020) 的证明思路
- 在 DDPM 原始论文中,通过一系列马尔可夫链和变分推断的分解,作者展示: L VLB = E [ − log p θ ( x 0 ) ] ≈ ∑ k = 1 K (KL散度项或重构项) ⏟ 与噪声预测相关 \mathcal{L}_{\text{VLB}} = \mathbb{E}\bigl[-\log p_{\theta}(\mathbf{x}^0)\bigr] \;\approx\; \sum_{k=1}^{K} \underbrace{\text{(KL散度项或重构项)}}_{\text{与噪声预测相关}} LVLB=E[−logpθ(x0)]≈k=1∑K与噪声预测相关 (KL散度项或重构项)
- 将这些 KL 散度项显式展开后,可以在每个扩散步骤 k k k 上写成一个与 “噪声预测误差” 相关的项。
- 最后可以归结为:最小化噪声预测误差(MSE),就等价于最小化变分下界中每一步对 KL 散度的贡献。这样,训练过程就变得简单直观:“让网络学会精确预测噪声” 即可。
4.3 简化理解
- 可以把它理解成“网络要会分辨:在第 k k k 步,这个样本里有多少是真实信号、多少是噪声。只要学会了拆分,就能正确地往回(反向扩散)恢复原数据。”
- 从数学角度,这是对“数据分布与模型分布差异最小”这一目标的一个等价或近似实现。
5. 举例说明
5.1 图像生成场景
- 你有一张猫的图片 x 0 \mathbf{x}^0 x0。
- 在训练中,你把它加一点噪声: x k = x 0 + ε k \mathbf{x}^k = \mathbf{x}^0 + \varepsilon^k xk=x0+εk。
- 训练时,你告诉网络 “这幅加噪后的图片里,我实际加了哪些噪声 ε k \varepsilon^k εk ” ,网络输出的预测如果很接近 ε k \varepsilon^k εk,则损失就小。
- 反复训练后,网络就能很好地在 “加噪图片” 中拆分出猫的结构和噪声的结构。
效果:一旦训练好,当我们在推理时从纯噪声开始,网络就会一步步把 “噪声” 扣掉,还原出 “猫” 的形状和纹理,从而生成一张全新的、符合数据分布的猫图。
5.2 动作/控制序列生成
- 你有一个机器人的轨迹序列 x 0 \mathbf{x}^0 x0(例如多步关节角度),作为干净数据。
- 在训练中,对它加噪 ε k \varepsilon^k εk 得到 x k \mathbf{x}^k xk。
- 让网络学 “在第 k k k 步,这个序列里哪部分是噪声 ε k \varepsilon^k εk ”;
- 训练收敛后,推理时从随机噪声初始化就能一步步 “去噪” 并生成一条看起来合理、平滑的运动轨迹。
6. 小结
文字内容含义
- 从数据集中取干净样本 x 0 \mathbf{x}^0 x0;
- 随机选一个扩散步 k k k 并注入噪声 ε k \varepsilon^k εk,得到 x k \mathbf{x}^k xk;
- 训练的噪声预测网络 ε θ \varepsilon_{\theta} εθ 输入 x k \mathbf{x}^k xk 和 k k k,输出对噪声的预测;
- 用 MSE( ∥ ε k − ε θ ( x k , k ) ∥ 2 \|\varepsilon^k - \varepsilon_{\theta}(\mathbf{x}^k,k)\|^2 ∥εk−εθ(xk,k)∥2)作为损失进行学习。
原理依据
- 来自 Ho et al. (2020) 对扩散模型中“前向加噪 - 反向去噪”的变分推断分析;
- 证明了“最小化噪声预测的 MSE” 等价于“最小化分布差异(KL散度)的变分下界”,也就保证了训练好后,模型采样分布会逼近真实数据分布。
举例
- 图像生成:加噪猫图,网络学会在加噪猫图中识别出哪部分是噪声。
- 动作序列生成:加噪机器人轨迹,网络学会识别并还原轨迹的真实形态。
这样就说明了为什么公式 (3) 的 MSE 损失能够同时最小化 KL 散度的变分下界——这是 DDPM
训练的核心理念:让网络在每个扩散步骤学会“把噪声剥离出来”,就能在推理阶段顺利“去噪”并复原真实数据分布。
2.3 用于视觉运动策略学习的扩散模型
虽然 DDPM 通常用于图像生成 ( x \mathbf{x} x 为图像),我们使用 DDPM 来学习机器人视觉运动策略。这需要在公式中进行两个主要的修改:
- 将输出 x \mathbf{x} x 改为表示机器人的动作。
- 使去噪过程依赖于输入的观察 O t O_t Ot。
接下来的段落将讨论这些修改,图 2 展示了概述。
图 2. 扩散策略概述. a) 通用公式。在时间步
t
t
t,策略使用最近
T
o
T_o
To 步的观察数据
O
t
O_t
Ot 作为输入,并输出
T
a
T_a
Ta 步的动作
A
t
A_t
At。 b) 在基于 CNN 的扩散策略中,使用 Perez 等人 (2018) 提出的 FiLM(特征线性调制)对观察特征
O
t
O_t
Ot 进行条件化处理,应用于每个卷积层的通道维度(提取图片的特征)
。开始时从高斯噪声中抽取
A
t
K
A^K_t
AtK,并逐步减去噪声预测网络
ε
θ
\varepsilon_\theta
εθ 的输出,重复
K
K
K 次,直到得到
A
t
0
A^0_t
At0,即去噪后的动作序列。c) 在基于 Transformer 的扩散策略中,Vaswani 等人 (2017) 提出的 Transformer 架构中,观察
O
t
O_t
Ot 的嵌入被传递到每个 Transformer 解码器块的多头交叉注意力层中。每个动作嵌入被限制为只能关注自身和之前的动作嵌入(因果注意力),并使用图中展示的注意力掩码进行约束。
“图 2. 扩散策略概述” 给出了一个高层视图,说明在每个时间步 t t t,策略(Diffusion Policy)如何使用最近 T o T_o To 步的观察数据 O t O_t Ot 生成未来 T p T_p Tp 步的动作序列 A t A_t At,其中只有前 T a T_a Ta 步动作会被实际执行,然后(可选地)再次进行规划:
观察(Observation)
- 这里的 O t O_t Ot 可能包括机器人当前相机图像、传感器读数、机器人自身状态(位置/姿态)等。
- 观察视野 T o T_o To 表示在一次规划时,模型会看最近多少步的观测。
动作(Action)
- 策略的输出是一个多步动作序列 A t = ( a t , a t + 1 , … , a t + T p − 1 ) A_t = (a_t, a_{t+1}, \dots, a_{t+T_p-1}) At=(at,at+1,…,at+Tp−1)。但是看图片貌似生成的多部动作序列是: A t = ( a t − n , a t − n + 1 , . . . , a t , a t + 1 , … , a t − n + T p − 1 ) A_t = (a_{t-n}, a_{t-n+1},..., a_t, a_{t+1}, \dots, a_{t-n+T_p-1}) At=(at−n,at−n+1,...,at,at+1,…,at−n+Tp−1),这里我们需要注意一下。我们需要知道的就是生成未来 T p T_p Tp 步的动作序列 A t A_t At。
- 其中 T p T_p Tp 称为动作预测视野(Prediction Horizon);
- 但是实际只执行前 T a T_a Ta 步(动作执行视野),剩余的预测动作可以在下一次规划中作为参考或热启动。
Diffusion Model
- 利用扩散模型(DDPM)的去噪采样思想,从高斯噪声初始化一个动作序列 A t K A^K_t AtK,然后通过多轮迭代逐步去噪,得到最终动作序列 A t 0 A^0_t At0。
CNN-based 与 Transformer-based 两种变体
文中图 2(b, c) 描述了两种实现方式:
CNN-based:
- 使用 FiLM(Feature-wise Linear Modulation,Perez et al., 2018)为观察特征进行条件化,把观察到的图像/状态特征施加到每一层卷积上,以调制通道。
- 动作序列则通过 Conv1D 或 MLP 等方式生成/去噪。
Transformer-based:
- 使用 Vaswani 等人 (2017) 的多头注意力框架,把观察嵌入作为“cross-attention”输入,让动作序列在“decoder”里通过交叉注意力读取观察信息。
- 动作序列内部使用“因果注意力”保证时间顺序(只关注当前及过去的动作 embedding)。
无论 CNN 还是 Transformer,本质都是在去噪网络里融合观察信息,以便在每一步预测“噪声”时考虑到环境状态。
闭环动作序列预测: 有效的动作规划应该鼓励长时间规划中的时间一致性和平滑性,同时允许对意外观察结果做出快速反应。为了实现这一目标,我们承诺在重新规划之前采用扩散模型生成的动作序列预测,持续固定时间。具体而言,在时间步 t t t,策略以最新的 T o T_o To步观察数据 O t O_t Ot为输入,预测 T p T_p Tp步动作,其中 T a T_a Ta步动作在机器人上执行而不进行重新规划。在这里,我们定义 T o T_o To为观察视野, T p T_p Tp为动作预测视野, T a T_a Ta为动作执行视野。这鼓励了时间上的动作一致性,同时保持响应性。关于 T a T_a Ta的影响的更多细节将在第4.3节中讨论。我们的公式还允许后退视野控制(Mayne和Michalska,1988)进一步改善动作的平滑性,通过用先前的动作序列预测来为下一个推理设置进行热启动。
闭环动作序列预测
1. 为什么需要闭环 + 短期固定动作
“有效的动作规划应该鼓励长时间规划中的时间一致性和平滑性,同时允许对意外观察结果做出快速反应。”
- 平滑、一致性:一次性规划出的动作序列能够确保动作之间在时间上连贯,不会出现剧烈抖动。
- 快速响应:如果环境出现了意外变化,就要尽快更新动作计划,而不是固执地把所有预先规划的动作都执行完。
因此,作者选择了折衷:在每一次规划时,先预测 T p T_p Tp 步动作,但只强制执行前 T a T_a Ta 步;若中间出现意外或新的观察,就能在执行完这 T a T_a Ta 步之后迅速再规划,从而兼顾“长时间规划”与“实时响应”。
2 变量解释
- T o T_o To:观察视野,表示向前看的历史观测数量,用于在当前时刻 t t t 提供给扩散模型作输入。
- T p T_p Tp:动作预测视野,模型从当前时刻开始预测多少步动作。
- T a T_a Ta:动作执行视野,这里只实际执行其中前 T a T_a Ta 步,其余的动作可以在下次规划时被覆盖/修正。
3 举例
- 假设机器人以每 0.2 秒执行一次新规划(闭环频率 5Hz),每次都预测未来 10 步动作(这可能覆盖 2 秒时间),但实际上只执行前 2 步动作(0.4 秒)。执行完 0.4 秒后,再次获得新观测,再次预测新动作。
- 这样,动作之间更连续(预测 10 步提供了长程约束),又能每 0.4 秒快速更新。
视觉观察条件化: 我们使用DDPM来近似条件分布 p ( A t ∣ O t ) p(\mathbf{A}_t|\mathbf{O}_t) p(At∣Ot),而不是Janner等人(2022a)中用于规划的联合分布 p ( A t , O t ) p(\mathbf{A}_t, \mathbf{O}_t) p(At,Ot)。这种公式化允许模型根据观察结果预测动作,而不需要推断未来状态的成本,从而加快扩散过程并提高生成动作的准确性。为了捕捉条件分布 p ( A t ∣ O t ) p(\mathbf{A}_t|\mathbf{O}_t) p(At∣Ot),我们修改了方程1为:
A t k − 1 = α ( A t k − γ ε θ ( O t , A t k , k ) + N ( 0 , σ 2 I ) ) , (4) \mathbf{A}^{k-1}_t = \alpha (\mathbf{A}^{k}_t - \gamma \varepsilon_{\theta} (\mathbf{O}_t, \mathbf{A}^{k}_t, k) + \mathscr{N}(0, \sigma^2 {I})), \tag{4} Atk−1=α(Atk−γεθ(Ot,Atk,k)+N(0,σ2I)),(4)
训练损失从公式 3 修改为:
L = M S E ( ε k , ε θ ( O t , A t 0 + ε k , k ) ) (5) \mathscr{L} = MSE(\varepsilon^k, \varepsilon_\theta(\mathbf{O}_t,\mathbf{A}^0_t + \varepsilon^k, k)) \tag{5} L=MSE(εk,εθ(Ot,At0+εk,k))(5)
从去噪过程中输出中排除观察特征 O t O_t Ot 显著提高了推理速度,并更好地适应实时控制。它还使得视觉编码器的端到端训练成为可能。关于视觉编码器的详细信息在第 3.2 节中进行了描述。
视觉观察条件化
在传统的(如 Janner 等人, 2022a)方法中,有时会对 ( A t , O t ) (A_t, O_t) (At,Ot) 的联合分布 p ( A t , O t ) p(A_t, O_t) p(At,Ot) 进行建模,意味着既要预测未来动作,也要尝试对未来观察做推断。 文中指出,此次工作选择的是条件分布 p ( A t ∣ O t ) p(A_t \mid O_t) p(At∣Ot),即直接在已有观察 O t O_t Ot 的条件下生成动作序列:
优势:
- 只需预测动作,不用再去推断未来观察(状态)会变成什么样。
- 这样,扩散过程只在 “动作空间” 里执行去噪,减少了维度和推理量,也提高了生成速度和动作准确性。
对应的修改:
- 公式 (1)(传统的无条件扩散)要改成条件扩散公式 (4);
x k − 1 = α ( x k − γ ε θ ( x k , k ) + N ( 0 , σ 2 I ) ) , (1) \mathbf{x}^{k-1} = \alpha (\mathbf{x}^{k} - \gamma \varepsilon_{\theta} (\mathbf{x}^{k}, k) + \mathscr{N}(0, \sigma^2 {I})), \tag{1} xk−1=α(xk−γεθ(xk,k)+N(0,σ2I)),(1) ⇓ \Downarrow ⇓ A t k − 1 = α ( A t k − γ ε θ ( O t , A t k , k ) + N ( 0 , σ 2 I ) ) , (4) \mathbf{A}^{k-1}_t = \alpha (\mathbf{A}^{k}_t - \gamma \varepsilon_{\theta} (\mathbf{O}_t, \mathbf{A}^{k}_t, k) + \mathscr{N}(0, \sigma^2 {I})), \tag{4} Atk−1=α(Atk−γεθ(Ot,Atk,k)+N(0,σ2I)),(4)- 训练损失也从“无条件 MSE”改为“在观察条件下的 MSE”(公式 (5))。
L = M S E ( ε k , ε θ ( x 0 + ε k , k ) ) (3) \mathscr{L} = MSE(\varepsilon^k, \varepsilon_\theta(\mathbf{x}^0 + \varepsilon^k, k)) \tag{3} L=MSE(εk,εθ(x0+εk,k))(3) ⇓ \Downarrow ⇓ L = M S E ( ε k , ε θ ( O t , A t 0 + ε k , k ) ) (5) \mathscr{L} = MSE(\varepsilon^k, \varepsilon_\theta(\mathbf{O}_t,\mathbf{A}^0_t + \varepsilon^k, k)) \tag{5} L=MSE(εk,εθ(Ot,At0+εk,k))(5)
公式 (4) 和 (5) 的推导意义
a. 去噪采样方程 (4)A t k − 1 = α ( A t k − γ ε θ ( O t , A t k , k ) + N ( 0 , σ 2 I ) ) . (4) \mathbf{A}^{k-1}_t = \alpha \Bigl(\mathbf{A}^{k}_t \;-\; \gamma\,\varepsilon_{\theta}(\mathbf{O}_t, \mathbf{A}^{k}_t, k) \;+\; \mathcal{N}(0, \sigma^2 \mathbf{I})\Bigr). \tag{4} Atk−1=α(Atk−γεθ(Ot,Atk,k)+N(0,σ2I)).(4)
这是条件扩散在动作空间里的 “反向去噪” 步骤。对比此前无条件的 x k − 1 = α ( x k − γ ε θ ( x k , k ) + N ( … ) ) . \mathbf{x}^{k-1} = \alpha \bigl( \mathbf{x}^k - \gamma\,\varepsilon_\theta(\mathbf{x}^k, k) + \mathcal{N}(\dots)\bigr). xk−1=α(xk−γεθ(xk,k)+N(…)).
现在多了 O t \mathbf{O}_t Ot 作为额外输入——网络 ε θ \varepsilon_{\theta} εθ 能根据当前视觉观察来判断 “动作序列 A t k \mathbf{A}^k_t Atk 里有哪些部分是噪声” ,从而帮助去噪得更准确。
物理直观:从纯噪声中慢慢“生成”一个动作序列,每一步迭代都看看当前观察 O t O_t Ot(例如桌面上物体位置),以及当前的临时动作序列 A t k \mathbf{A}^k_t Atk,预测出动作里哪些分量是无意义的噪声,然后将其减掉,同时在采样中保留一定的随机性。
b. 训练损失 (5)L = M S E ( ε k , ε θ ( O t , A t 0 + ε k , k ) ) . (5) \mathscr{L} = MSE\bigl( \varepsilon^k,\; \varepsilon_\theta(\mathbf{O}_t,\,\mathbf{A}^0_t + \varepsilon^k,\,k) \bigr). \tag{5} L=MSE(εk,εθ(Ot,At0+εk,k)).(5)
- 训练时,为了模拟第 k k k 步的加噪过程,会把干净动作 A t 0 \mathbf{A}^0_t At0(通常是专家示教或离线收集到的真实动作)加入噪声 ε k \varepsilon^k εk,得到 A t k \mathbf{A}^k_t Atk。
- 网络 ε θ \varepsilon_{\theta} εθ 输入这个 “加噪动作” A t k \mathbf{A}^k_t Atk 及对应的观测 O t \mathbf{O}_t Ot、步骤标号 k k k,输出对噪声 ε k \varepsilon^k εk 的预测。
- 用 MSE 让其逼近真实加噪量 ε k \varepsilon^k εk。
- 这样就等价于在做条件扩散下的变分下界优化(由 DDPM 理论可知,最小化噪声预测误差 ⇔ \Leftrightarrow ⇔ 最大化对真实分布的逼近)。
关于将观察从“去噪过程”输出中排除
“从去噪过程中输出中排除观察特征 O t O_t Ot 显著提高了推理速度,并更好地适应实时控制。”
- 在一些早期工作中,可能会把 ( A , O ) (A, O) (A,O) 都视作联合随机变量,做“联合扩散”或“联合去噪”,这意味着每一步迭代都要在 (动作 + 观察) 的大维度空间里采样。
- 但作者选择只在动作空间去噪,而观察 O t O_t Ot 在每次迭代仅用作条件,不把它也当作需要去噪的输出。
- 好处:
- 每一步扩散迭代都不必重复对图像做卷积/特征提取,节约计算;
- 模型也无需尝试去生成未来图像(这本就难度大、维度高),而是直接生成动作;
- 可以端到端地训练视觉编码器,前向就一次提取视觉特征,在多步扩散迭代中复用这些特征。
小结 & 示例
核心思想:
- 将动作序列视作扩散模型的“采样目标”,通过多步去噪从高斯噪声生成合理动作;
- 在去噪网络中引入视觉观测 O t O_t Ot 作为条件,使得生成的动作与环境相匹配;
- 只在动作维度做去噪,不对观察进行生成,减少计算量、提升实时性;
- 通过 “ T p T_p Tp 步预测,但只执行 T a T_a Ta 步” 的闭环方式平衡长程规划与快速反馈。
示例:假设机器人想抓起桌面上一块形状不规则的拼图板:
摄像头图像、机器人手臂姿态等构成 O t O_t Ot。
扩散策略从随机动作序列开始(比如关节角度一系列噪声),在每一步去噪时,看着图像特征( O t \mathbf{O}_t Ot),知道目标在哪、障碍物在哪,从而把噪声逐渐减掉,形成一条平滑、有效的抓取路径。
执行其中前几步动作,如果抓取姿态偏差较大,可以在执行完这一小段后再次拍图、再次做扩散采样,得到新的动作序列补偿误差。
通过以上过程,便能理解文中提出的几项关键改动与其背后的原理:闭环控制下的动作序列扩散模型,在实时性与时间一致性上找到了平衡,并且通过将观察视为条件,避免了高维度联合生成带来的计算负担。
3 关键设计决策
本节描述了 Diffusion Policy 的关键设计决策,以及 ε θ \varepsilon_{\theta} εθ 的神经网络架构的具体实现。
3.1 网络架构选项
第一个设计决策是选择 ε θ \varepsilon_{\theta} εθ 的神经网络架构。在这项工作中,我们考察了两种常见的网络架构类型,即卷积神经网络(CNNs)(Ronneberger 等,2015)和 Transformer(Vaswani 等,2017),并对它们的性能和训练特性进行了比较。需要注意的是,噪声预测网络 ε θ \varepsilon_{\theta} εθ 的选择是独立于视觉编码器的,视觉编码器将在 3.2 节中描述。
基于CNN的Diffusion Policy: 我们采用了来自Janner等人(2022b)的1D时间卷积神经网络(CNN),并做了一些修改:首先,我们通过对观察特征 O t \mathbf{O}_t Ot 进行条件化,使用Feature-wise Linear Modulation(FiLM)(Perez等,2018)以及去噪迭代 k k k 来建模条件分布 p ( A t ∣ O t ) p(\mathbf{A}_t | \mathbf{O}_t) p(At∣Ot),如图2(b)所示。其次,我们只预测动作轨迹,而不是拼接观察动作轨迹。第三,我们删除了基于修补的目标状态条件化,因为它与我们使用递归预测范围的框架不兼容。然而,目标条件化仍然可以使用与观测相同的FiLM条件化方法。
在实践中,我们发现基于CNN的骨干网络在大多数任务上无需大量超参数调整即可良好运行。然而,当所需的动作序列随时间迅速而剧烈变化时(例如速度命令动作空间),其表现较差,这可能是由于时间卷积的归纳偏向更倾向于低频信号(Tancik等,2020)。
时序扩散transformer 为了减少CNN模型中的过度平滑效应(Tancik等,2020),我们引入了一种新型基于transformer的DDPM,采用minGPT(Shafiullah等,2022)的transformer架构用于动作预测。带有噪声的动作 A t k A^k_t Atk作为输入令牌传递给transformer解码器模块,扩散迭代 k k k 的正弦嵌入作为第一个令牌预处理。观察值 O t \mathbf{O}_t Ot 通过一个共享的MLP转换为观察嵌入序列,然后作为输入特征传递给transformer解码器堆栈。每个解码器堆栈输出的对应令牌预测出“梯度” ε θ ( O t , A t k , k ) \varepsilon_{\theta}(\mathbf{O}_t, \mathbf{A}^k_t, k) εθ(Ot,Atk,k)。
在基于状态的实验中,transformer骨干网络在大多数任务中表现最佳,尤其是在任务复杂性和动作变化率较高时。然而,我们发现transformer对超参数更加敏感。这种训练难度(Liu 等,2020)并非扩散策略独有的问题,未来有可能通过改进的transformer训练技术或增加数据规模来解决。
建议。 通常情况下,我们建议在尝试新任务时,首先使用基于CNN的扩散策略实现。如果由于任务复杂性或高频率动作变化导致性能较低,则可以考虑使用时序扩散transformer方法来提高性能,但需付出额外的参数调整成本。
1. 背景与动机
在 Diffusion Policy 中,核心是一个噪声预测网络 ε θ \varepsilon_{\theta} εθ,用于在每个扩散迭代中根据 “加噪动作” 输出所含的噪声。这一网络的选择与视觉编码器(负责提取图像或状态观测的特征)是相互独立的:
- 视觉编码器(第 3.2 节)专门处理观察 O t \mathbf{O}_t Ot,将其转换成嵌入或特征;
- 噪声预测网络 ε θ \varepsilon_{\theta} εθ 则在 “动作维度” 上工作,通过将观察特征和加噪动作作为输入,输出每个时间步动作中的噪声残差。
作者考察了两类常见的骨干网络(Backbone):
- 卷积神经网络(CNN):通常在处理图像、时间序列等结构化数据时有良好表现。
- Transformer:在自然语言处理、时序数据、以及高维控制等领域中日益广泛应用,具有更灵活的长程依赖建模能力。
2. 基于 CNN 的 Diffusion Policy
2.1 采用 1D 时间卷积网络(TCN)
- 作者参考了 Janner 等人(2022b)的做法,用 1D 时间卷积 来处理动作序列。这与常见的图像 2D 卷积不同,这里只在时间维度上进行卷积操作。
- 这样做的好处是:
- CNN 在时间维度上具有 “局部感受野”,对相邻时间步的动作做卷积,能够学习到平滑的、连续的时间依赖。
- 训练往往比较稳定,对超参数要求相对没那么苛刻。
2.2 关键修改
FiLM 条件化
- 使用 FiLM(Perez 等,2018)对观察特征 O t \mathbf{O}_t Ot 进行 “特征线性调制(Feature-wise Linear Modulation)”,同时也结合了去噪迭代步 k k k 的信息。
- 具体做法:在 CNN 的每层卷积后,对通道维度施加一个与 O t \mathbf{O}_t Ot 和 k k k 相关的缩放和偏置,实现 “条件分布 p ( A t ∣ O t ) p(\mathbf{A}_t \mid \mathbf{O}_t) p(At∣Ot)” 的调制。
只预测动作轨迹,不再拼接观察
- 传统上可能把 “观察 + 动作” 拼在一起,让网络一起回归。这里选择只在动作空间上做去噪,减少了网络需要输出的维度,提高了效率和准确性。
删除基于修补(patch-based)的目标状态条件化
- 原本在一些工作中,会对目标状态(Goal)进行 patch 拼接来指导动作规划。但因为本研究使用 “递归预测范围(Receding Horizon)” 的框架,不再需要或不兼容该方式,于是改为在需要目标信息时,也可以用 FiLM 方式对其进行条件化。
2.3 适用场景与局限
- 优点:在大多数任务上,基于 CNN 的扩散策略训练稳定、对超参数不敏感,容易上手。
- 缺点:当动作序列在时间上快速且剧烈变化时(比如速度命令,频繁大幅度加减速),CNN 的归纳偏置(更偏好平滑低频信号)可能导致 “过度平滑” 问题,无法准确捕捉高频动作变化。
2.4 示例
想象一个机器人需要快速摆动手臂来抓取移动中的物体:
- 时间卷积网络可能倾向于输出平滑轨迹,对突发加速度的捕捉力不足;
- 结果就是在高频调整时容易出现跟不上、抖动或滞后的情况。
3. 时序扩散 Transformer
3.1 动机:减少过度平滑
- Tancik 等(2020)指出,CNN 在坐标/时间输入上的一个常见局限是容易出现低频或过度平滑倾向。
- 当任务复杂、动作变化率高时,需要灵活捕捉远距离时间步之间的依赖,以及能处理快速的局部变化,这就让作者考虑用 Transformer 来替代 CNN。
3.2 具体做法
采用 minGPT 架构(Shafiullah 等,2022):
- GPT 类似结构非常适合序列预测,每个时间步的动作 A t k \mathbf{A}^k_t Atk 被视作“序列令牌(token)”。
- 在训练或去噪推理时,向 Transformer Decoder 输入一串 “带噪声的动作向量”,并以 “因果注意力” 约束确保只能关注过去和当前的动作,避免信息泄露。
扩散迭代步作为正弦嵌入
- 把当前扩散迭代步 k k k 也看作一个令牌(或额外特征),用正弦位置编码(类似于原始 Transformer 的位置编码)注入网络,引导模型区分自己在哪个去噪阶段。
观察 O t \mathbf{O}_t Ot 通过共享 MLP 转成“观察嵌入序列”
- 然后在 Transformer 的多头交叉注意力层中,与动作令牌做交互。
- 相当于,每个动作时间步可以“查阅”环境观察嵌入,以判断接下来该如何去噪。
3.3 训练效果
- 优点:在基于状态的实验中(动作随时间剧烈变化),Transformer 往往取得更好成绩,能够学到更高频率、复杂的动作模式。
- 缺点:对超参数更敏感、训练不稳定,需要仔细调节诸如学习率、批大小、层数、注意力头数等。(这是 Transformer 在很多任务中的共同问题,Liu 等,2020)。
3.4 示例
如果机器人在高速移动场景中需连续闪避障碍(每几帧就要做大动作转向),Transformer 能更好地捕捉到远近时间步的相关性,学习到“一系列连续闪避动作”的精妙衔接。但在实际训练时,若超参数没调好,可能收敛困难,或者注意力机制导致梯度不稳定。
4. 使用建议
“通常情况下,建议先使用基于CNN的扩散策略;如果复杂度或动作频率高导致性能较差,再考虑时序扩散transformer。”
原因是:
- CNN 架构易上手、超参少,对大多数中等难度任务就能较好地工作。
- Transformer 拥有更强的灵活性,可以处理高复杂度/高频动作,但代价是训练敏感度更高、调参难度更大。
- 若再加上更多数据或使用改进的 Transformer 训练技巧,则有望进一步提升效果。
5. 小结
- 为什么需要不同骨干网络?
- 核心是 ε θ \varepsilon_{\theta} εθ 的噪声预测功能,但不同的时间序列建模架构(CNN vs. Transformer)在偏好、能力和难度方面都有区别。
- CNN 优势:易于训练、对平滑场景效果好;局限:高频动作场景下可能力不从心。
- Transformer 优势:灵活捕捉复杂长短期依赖,尤其适合高频变化;局限:对超参敏感、训练更难。
- 建议:先试 CNN,再视需求切换到 Transformer,以平衡性能与训练开销。
从原理上说,扩散模型的效果取决于去噪网络在每个时间步(或者说,每个扩散迭代)对加噪动作进行准确分解噪声的能力。CNN 和 Transformer 都能完成这个任务,只是具备不同的归纳偏置和学习特性。在实际部署时,需根据任务要求(动作变化速度、数据规模、算力等)选择合适的网络骨干。
3.2 视觉编码器
视觉编码器将原始图像序列映射到潜在嵌入 O t O_t Ot,并与扩散策略一起进行端到端训练。不同的摄像头视角使用独立的编码器,每个时间步的图像独立编码,然后将它们连接起来形成 O t O_t Ot。我们使用了标准的 ResNet-18(未进行预训练)作为编码器,并进行了以下修改:1) 将全局平均池化替换为空间 softmax 池化,以保留空间信息(Mandlekar 等,2021);2) 将 BatchNorm 替换为 GroupNorm(Wu 和 He,2018),以确保稳定的训练。这在与指数移动平均(He 等,2020)(通常用于 DDPMs)结合使用时非常重要。
1. 背景:为什么需要视觉编码器?
在前文中提到,Diffusion Policy 需要根据机器人摄像头(或其他视觉传感器)获取的图像来预测未来动作序列,即构建 p ( A t ∣ O t ) p(\mathbf{A}_t \mid \mathbf{O}_t) p(At∣Ot)。然而,原始图像的维度往往很高,直接把 RGB像素输入到扩散模型的噪声预测网络 ε θ \varepsilon_\theta εθ 里会非常昂贵,且不利于学习。因此,视觉编码器的角色就是:
- 将一系列原始图像(可能来自多个摄像头、多个时间步)编码成低维或中维度的潜在特征嵌入(embedding),记为 O t \mathbf{O}_t Ot。
- 这些潜在嵌入能够保留任务所需的语义空间信息,同时大幅减少后续网络的输入尺寸。
- 与扩散策略一起端到端训练,让视觉编码器学到对机器人控制最有用的视觉特征。
2. 具体做法
2.1 独立的编码器、独立处理每个时间步
“不同的摄像头视角使用独立的编码器,每个时间步的图像独立编码,然后将它们连接起来形成 O t O_t Ot。”
- 多个摄像头视角:如果机器人有多个相机(例如俯视摄像头、手眼摄像头等),每个相机就用一个独立的 ResNet-18 来提取特征。这样可以避免把多视角图像简单拼在一起,造成网络混淆或通道爆炸。
- 多个时间步:在时间步 t t t 时,如果要使用过去 T o T_o To 步的图像观测,则每一步图像都经过同一个(或同结构的)编码器处理,然后将这些特征串联或堆叠,形成最终的观察嵌入 O t \mathbf{O}_t Ot。
这样做能够让网络意识到过去几帧图像之间的时序关联,但在最底层的视觉编码阶段,各帧是独立提取的,避免了过于复杂的时空卷积。
2.2 基于 ResNet-18 的骨干网络(未预训练)
- ResNet-18:一个比较小巧的、常用的 CNN 主干架构(He 等,2016)。
- 未预训练:并未使用在 ImageNet 上训练的权重,而是从头开始(Random Initialization)进行训练,让视觉编码器在“机器人场景”中学到更相关、更贴合任务的视觉特征。
3. 两项关键修改
文中提到对 ResNet-18 做了两处改动,以更好地适应机器人视觉控制场景和 DDPM 的训练需求:
3.1 将全局平均池化替换为空间 softmax 池化
- 原理:
- 常规的 ResNet 在最后会把特征图做“全局平均池化”,得到一个单一的向量。这会在很大程度上丢失空间位置信息 —— 例如,如果你想知道物体在视野中靠左还是靠右,做全局平均就会混合所有空间位置。
- 空间 softmax 池化(Mandlekar 等,2021)可以让网络在保留空间信息的同时,学到更灵活的“注意力”分布:它会对特征图上的激活值做一个
softmax,然后再求加权平均,从而保留更多局部差异信息。- 直观理解:
- 假设机器人需要知道抓取目标在图像中的具体位置和大小 —— 全局平均池化不易保留这些信息。
- 通过空间 softmax,网络可以对“物体所在区域”赋予更大权重,进而在输出向量中融入一定的空间位置信息(相当于生成了“质心”或“重心”坐标特征)。
3.2 将 BatchNorm 替换为 GroupNorm
- BatchNorm(批量归一化)在许多 CNN 中很常见,但当 batch size 很小(例如机器人实时控制时可能一次只能放进几张图)或者在分布变化频繁的场景中,BatchNorm 的统计量估计就会变得不稳定。
- GroupNorm(Wu 和 He,2018)不依赖于 batch 维度,而是在通道维度进行归一化,能在小批量甚至 batch size = 1 的情况下保持稳定。
- 与指数移动平均(EMA)结合:在 DDPM 训练中,常会对模型参数使用 EMA 来稳定生成质量(He 等,2020)。如果同时使用 BatchNorm,可能出现额外的统计量不一致问题;但 GroupNorm 不再依赖全局 batch 统计量,更容易结合 EMA。
4. 原理依据
空间位置信息的重要性
机器人要对具体位置、方位、目标物体形状做出决策,需要网络保留局部空间特征。换言之,对整张图做平均,网络可能难以区分目标在左上角还是右下角,从而影响动作预测。
Mandlekar 等(2021)等工作已经验证,“空间软池化”或类似注意力机制可以显著提升对空间结构的感知能力。
GroupNorm 在小批量场景的稳定性
- Wu 和 He(2018)在提出 GroupNorm 时就指出,相比 BatchNorm 对 batch size 敏感,GroupNorm 在小批量极端情况下(甚至 batch size = 1)依旧稳定。
- 机器人或强化学习环境中,训练可能是在线/自适应,或者数据采样的 batch 尺寸小,并且分布多变,GroupNorm 能减轻这些问题。
与 DDPM 训练的结合
- 在 DDPM 中往往对模型使用 EMA(exponential moving average)来在推理阶段获得更平滑、更稳定的参数。
- 如果还使用 BatchNorm,就会出现“BatchNorm 的统计量也需要在推断时固定或调整”的复杂问题。GroupNorm 则免除了这个负担,可搭配 EMA 顺畅地进行。
5. 举例说明
5.1 抓取任务
- 假设机器人要在桌上抓取红色立方体:摄像头看到桌面场景,含有其他杂物。
- 使用 ResNet-18 做视觉编码:
- 空间 softmax 让网络对“红色立方体所在的特征激活区域”给予更高权重,编码器输出的向量 O t \mathbf{O}_t Ot 就包含“红色立方体位置”这一信息。
- 接下来在扩散模型中, O t \mathbf{O}_t Ot 会条件化动作去噪网络,最终生成 “机械臂移动并抓取” 这一序列动作。
- 若使用全局平均池化,网络可能难以区分红色立方体具体位置;抓取精度也会下降。
5.2 小批量训练
- 在机器人训练中,有时我们每次收集数据并更新网络的 batch size 只有 8 或者 16。
- BatchNorm 的估计在如此小 batch 下可能不稳定,而 GroupNorm 无需依赖 batch 统计量,能保持一致的归一化效果。
- 结合 EMA,可以在训练结束时拿到更优的视觉编码器参数,以提高生成动作的质量和一致性。
6. 小结
- 功能:视觉编码器从原始图像序列提取紧凑且包含空间位置信息的特征嵌入。
- 实现:采用未预训练的 ResNet-18,修改了池化方式(空间 softmax)和归一化方式(GroupNorm)以更好地处理小批量、需要空间信息的机器人视觉任务。
- 效果:
- 空间 softmax 池化帮助网络在输出特征中保留位置线索;
- GroupNorm 结合 EMA 确保训练稳定性,尤其在“批量小、分布变化大”的机器人场景下。
- 终端意义:与扩散策略端到端训练,使得机器人能够在实时推断时快速、准确地把视觉信息映射到动作序列上。
3.3 噪声计划
噪声计划由 σ \sigma σ、 α \alpha α、 γ \gamma γ 以及添加的高斯噪声 ε k \varepsilon_k εk 作为 k k k 的函数来定义,这一领域已被 Ho 等人(2020)和 Nichol 与 Dhariwal(2021)深入研究。基础的噪声计划控制了扩散策略在捕捉动作信号中的高频和低频特性的能力。在我们的控制任务中,我们通过实验发现 iDDPM 中由 Nichol 和 Dhariwal(2021)提出的平方余弦计划(Square Cosine Schedule)在我们的任务中效果最佳。
1. 噪声计划(Noise Schedule)是什么?
在 DDPM(Denoising Diffusion Probabilistic Model) 或类似扩散模型中,每一个“前向扩散”或“逆向去噪”的步骤 k k k 都会注入(或移除)一定量的高斯噪声。这个注入/去除噪声的强度随步数 k k k 的变化规律,就称为噪声日程表(noise schedule)。在文中提到的公式中,你会看到如下符号:
- σ \sigma σ
- α \alpha α
- γ \gamma γ
- ε k \varepsilon_k εk(表示第 k k k 步时所加的噪声量,或噪声采样)
这些参数和函数一起定义了在每个扩散迭代 k k k 上该往样本里加多少噪声(或在去噪阶段移除多少噪声),从而平衡模型在高频特征(快变成分)与低频特征(平滑成分)上的学习能力。
2. 为什么噪声计划很重要?
2.1 高频 vs. 低频
- 高频成分:在动作空间中,代表动作快速变化的部分,比如激烈的速度或加速度命令。
- 低频成分:代表平缓变化的部分,比如动作姿态的缓慢演化。
如果噪声计划不当,模型可能过度关注低频成分(导致“过度平滑”),或对高频成分注入噪声太快/太慢(导致学习不稳定或难以恢复)。一个合适的噪声计划,会使模型能够同时学习到长程平滑趋势和短时剧烈变化,尤其对机器人控制任务十分关键。
2.2 与扩散采样稳定性的关系
- 在扩散过程里,每一步都会“往数据里注入”或者“从数据里去除”噪声。
- 如果在早期步数就注入过多噪声,模型可能难以区分信号与噪声;
- 在后期如果加噪/去噪不够,也可能无法捕捉到精细结构。
- 因此,如何调度噪声量,能在全程保持模型学习和推理的有效性。
3. 现有研究:Ho 等人(2020)与 Nichol 和 Dhariwal(2021)
- Ho 等人(2020)(DDPM 原始论文)曾探讨过不同形式的 β k \beta_k βk(如线性增大、指数增大等)来定义噪声计划。
- Nichol 和 Dhariwal(2021)(Improved Denoising Diffusion Probabilistic Models, iDDPM)则进一步研究了更灵活、更平滑的调度策略,比如 “平方余弦计划(Square Cosine Schedule)”,并在图像生成等任务上报告了更好的结果。
4. 平方余弦计划(Square Cosine Schedule)是什么?
在 iDDPM 中,Square Cosine Schedule 是一种在 [ 0 , 1 ] [0,1] [0,1] 或 [ 1 , K ] [1,K] [1,K]( K K K 为总步数)区间里,用余弦曲线控制噪声注入的比例,让噪声量在整个扩散过程中呈现出一种 “先平缓、后陡峭” 或 “先陡峭、后平缓” 的变化方式。其核心思路是:
α ˉ t = f ( t ) f ( 0 ) , 其中 f ( t ) = cos ( ( t + c ) π 2 ( 1 + c ) ) 2 \bar{\alpha}_t = \frac{f(t)}{f(0)}, \quad \text{其中 } f(t) = \cos\Bigl(\frac{(t + c)\pi}{2(1 + c)}\Bigr)^{2} αˉt=f(0)f(t),其中 f(t)=cos(2(1+c)(t+c)π)2 (上式是示意形态,具体公式细节可在原论文中找到。)
- α ˉ t \bar{\alpha}_t αˉt 是在第 t t t 步的“保留系数”累积乘积(类似 ∏ k = 1 t ( 1 − β k ) \prod_{k=1}^t (1-\beta_k) ∏k=1t(1−βk));
- 通过余弦函数使得噪声注入在前期和后期的速度不同,为模型在学习不同频段的特征时都能保持适当的平衡。
优点:
- 相比线性或指数调度更平滑,在不同区段对噪声的增减更温和或更有针对性;
- 在图像生成和一些连续控制任务上往往能带来更好的收敛效果。
5. 在机器人控制任务中的效果
“在我们的控制任务中,我们通过实验发现 iDDPM 中由 Nichol 和 Dhariwal(2021)提出的平方余弦计划(Square Cosine Schedule)在我们的任务中效果最佳。”
机器人控制任务往往需要在平滑动作和高频变化之间取得平衡。
平方余弦计划能让扩散模型在初期“慢加噪”,更容易学习到大的整体动作趋势(低频),在后期再根据余弦曲线迅速加噪或去噪,从而捕捉高速变化(高频)也不会被过度破坏。
实验表明,这种调度在高维动作空间里(尤其是带速度/加速度等快变信号)能得到更稳定、更高精度的去噪和动作生成效果。
6. 示例:机器人运动规划
- 情景:假设我们要在 50 步内规划机器人从 A 点到 B 点的手臂运动,其中在 30~40 步这段需要一个快速的弧线挥动。
- 噪声调度的影响:
- 如果噪声在初期就突然“放得很大”,模型难以记住主要的运动轨迹;
- 如果噪声后期维持得太小,又无法给高频动作留出足够的灵活性去调整那些快速挥动。
- 平方余弦计划:
- 让前面若干步的噪声提升比较温和,模型先抓住整体轨迹;
- 随着迭代推进,噪声在中后期逐渐加大一些,允许对动作序列的高频成分进行精细微调。
- 结果:最终训练好的扩散策略,既能保留连续性又能在关键时刻“快动作”到达目标,稳定且有效。
7. 小结
- 噪声计划( σ , α , γ , ε k \sigma, \alpha, \gamma, \varepsilon_k σ,α,γ,εk 的调度)对扩散策略捕捉动作信号的各个频段至关重要。
- Ho 等人(2020)初步提出了多种调度策略;Nichol 与 Dhariwal(2021) 的 iDDPM 引入了平方余弦计划,在图像和控制任务上都展现出更佳性能。
- 在机器人控制中,平方余弦计划常能更好地兼顾高频/低频动作模式,使得扩散模型在去噪时既能学到平稳规划,又能适应快速变化的控制指令。
- 示例如机器人抓取或移动时,动作中既有缓慢移动段又有高频转向段,平方余弦计划带来更平滑和灵活的学习过程。
3.4 加速实时控制的推理
我们将扩散过程用作机器人策略,因此对闭环实时控制来说,快速推理速度至关重要。去噪扩散隐式模型(DDIM)方法(Song 等,2021)将训练和推理中的去噪迭代次数解耦,从而允许算法在推理时使用更少的迭代次数以加快速度。在我们的现实实验中,使用100次训练迭代和10次推理迭代的DDIM,可以在Nvidia 3080 GPU上实现0.1秒的推理延迟。
1. 背景与需求:实时闭环控制
在闭环实时控制的场景下,机器人需要在每个时间步(例如每 0.1 秒或更高频率)迅速计算出下一段或下一步动作。如果计算延迟过高,机器人将无法及时响应环境变化,导致性能下降或出现安全问题。因此,推理速度(在这里指从“当前观测”到“输出动作序列”这整个过程的计算时间)至关重要。但是,标准的扩散模型(DDPM)往往需要很多步(几十、上百步)才能从随机噪声“去噪”到最终输出,这对于实时控制来说可能过于缓慢。为此,需要一种既能保证生成质量又能减少推理迭代数的技术手段。
2. DDIM:去噪扩散隐式模型
文中提到的“去噪扩散隐式模型(DDIM)”来自于 Song 等人(2021)的工作,它的核心思路是:
- 在训练时,依然使用完整的 K K K 步扩散步骤(例如 100 步),这样可以让模型学到足够丰富的去噪能力;
- 在推理/采样时,可以选择更少的迭代次数(例如 10 步,甚至更少)来生成样本,大幅度降低推理开销。
与传统的 DDPM 相比,DDIM提出了一个非马尔可夫(Non-Markovian) 推理过程,使得在少量迭代内依然能取得较好的生成质量,而不必逐步经过所有的扩散时刻。
2.1 训练与推理的解耦
- DDPM(Ho 等人,2020):通常要求训练和推理都用相同的扩散步数 K K K,因为每步都依赖前一步的结果(马尔可夫链)。
- DDIM:通过在训练时记录下每个扩散阶段的噪声变换规则,推理时可以“跳过”或“合并”部分步骤,使得推理步数 < 训练步数。这在图像生成任务中已经被证实可以极大加快采样速度,同时保持较好的质量。
3. 在机器人控制中的应用
3.1 闭环策略推理
Diffusion Policy 将去噪扩散过程视为机器人策略:从噪声初始化的动作序列出发,多步迭代去噪,到达最终的干净动作序列。每次闭环规划都需要这么做一遍。如果在推理时还要执行几十或上百步去噪,延迟会大到无法满足实时控制需求。
3.2 使用 DDIM 加速
- 训练:模型仍可以使用 100 步或更多的扩散阶段进行训练,以充分学习到复杂的动作分布;
- 推理:在实际执行时,只用 10 步(或更少)就完成从噪声到动作的采样,推理时间显著减少。
- 速度指标:文中指出,在 Nvidia 3080 GPU 上,用 DDIM 做 10 步推理,只需约 0.1 秒,就能输出新的动作序列。这意味着以 10 Hz 的频率做闭环控制是可行的。
4. 原理依据:DDIM 如何在更少迭代下保持效果?
4.1 非马尔可夫推理过程
Song 等人(2021)提出,前向扩散可以表示为对数据分布逐步加入高斯噪声,而反向去噪则是相应的逆过程。在标准 DDPM中,这个逆过程是马尔可夫链:第 k k k 步结果严格依赖第 k + 1 k+1 k+1 步。然而,DDIM发现可以引入一个非马尔可夫条件,允许在少量关键步中就能逼近最终结果,而不必细粒度地走完所有步。从数学上看,这是通过对前向和反向过程的分解,引入了可变步长或子集采样策略,使得生成序列可以 “跳跃” 若干扩散时刻。
4.2 质量-速度折衷
- 当推理步数减少时,采样质量或多样性可能略有下降;但在许多任务(特别是机器人控制)中,这个幅度是可接受的。
- 对于实时闭环控制来说,速度比轻微的质量损失更关键。并且实验表明,DDIM 在 10 步左右依然能产生与 100 步类似的动作分布。
5. 举例说明
5.1 实验室中的机械臂抓取
- 场景:机械臂需要每 0.1 秒更新一次动作策略,根据摄像头看到的物体位置进行抓取。
- 训练:在离线阶段,使用 100 步扩散(DDPM/DDIM 训练)来学会如何把随机噪声动作序列去噪到“正确抓取动作序列”。
- 推理:实际执行时,如果仍用 100 步去噪,可能花费 0.5~1 秒(只是举例),延迟过大,导致抓取目标已移动。
- 改用 DDIM:将推理步数减到 10 步,只需 0.1 秒即可完成动作生成,能跟上环境变化。虽然在动作质量上略有牺牲,但足以成功抓取物体,并且能实时适应目标位置变化。
5.2 移动机器人导航
- 场景:移动机器人在动态环境中,需要快速规划下一段路径;
- 要求:每 0.05~0.1 秒更新一次方向或速度命令;
- 做法:使用 DDIM 的 5~10 步推理,就可以在 0.05~0.1 秒内生成新的动作序列,保持闭环。
6. 小结
- 为什么需要快速推理
- 实时闭环控制要求在短时间内完成策略推理,否则机器人无法及时响应变化。
- DDIM 的贡献
- 将训练和推理时的扩散迭代数解耦,允许在训练中使用充分多的步骤来学习到高质量的去噪过程,
- 而在推理时使用较少的步骤来快速生成动作序列,达到实时性。
- 实验结果
- 用 100 步训练 + 10 步推理,可以在 3080 GPU 上达成 0.1 秒/轮的推理延迟,让机器人以约 10 Hz 的频率闭环更新动作。
- 背后原理
- DDIM 提供了一种非马尔可夫反演,允许“跳过”扩散过程的一些中间时刻,从而减少推理步数,但仍保留大部分生成质量。
4. 扩散策略的四个引人入胜的特性
在本节中,我们提供了一些关于扩散策略的见解和直觉,以及它相较于其他政策表征形式的优势。
4.1 建模多模态动作分布
在人类示范中建模多模态分布的挑战在行为克隆文献中被广泛讨论。扩散策略能够自然且精确地表达多模态分布,是其主要优势之一。
直观上,扩散策略中动作生成的多模态性来源于两个方面:基础的随机采样过程和随机初始化。在随机兰氏动力学中,初始样本 A t K \mathbf{A}^K_t AtK 是在每个采样过程开始时从标准高斯分布中抽取的,这有助于指定最终动作预测 A t 0 A^0_t At0 的不同可能收敛基。这一动作随后经过进一步随机优化,并在大量迭代中添加高斯扰动,使得个别动作样本能够收敛并在不同的多模态动作盆之间移动。图3展示了扩散策略在没有显式示范的情况下,在平面推送任务(Push T,下面会介绍)中的多模态行为示例。
图3. 多模态行为。 在给定状态下,末端执行器(蓝色)可以向左或向右推块。扩散策略学习了两种模式,并在每次滚动中仅承诺一种模式。相比之下,LSTM-GMM(Mandlekar等,2021)和IBC(Florence等,2021)都倾向于一种模式,而BET(Shafiullah等,2022)由于缺乏时间动作一致性而未能承诺单一模式。所生成的动作是从最佳表现的检查点滚动40步得到的。
1. 背景:多模态分布在行为克隆中的挑战
- 什么是多模态动作分布? 在很多机器人或控制场景下,同一个环境状态下可能存在多条截然不同但都很合理的动作轨迹。这被称为“多模态”。
例如:在桌面上推一个方块,机器人可以从左侧推动或从右侧推动,这两种策略都能把方块移动到目标位置。- 为什么难以建模? 传统的单峰(如高斯)假设或一般神经网络往往只会“平均化”这些动作,结果可能得到一个折中的次优动作(如在左推和右推之间胡乱选择)。在人类示范中(模仿学习/行为克隆),真实示范可能包含多种操作方式,如何让模型保留这些不同的动作模式,避免退化到“单一均值策略”,是一个大挑战。
2. Diffusion Policy 如何产生多模态动作
文中提到,Diffusion Policy 的多模态性主要来自两方面:
随机初始化(初始样本 A t K \mathbf{A}^K_t AtK)
- 在扩散采样时,每次都从标准高斯分布中抽取一个噪声向量,作为初始动作序列 A t K \mathbf{A}^K_t AtK。
- 由于这个初始化是随机的,因此最终收敛到的动作序列 A t 0 \mathbf{A}^0_t At0 也会有所不同。
- 换句话说,不同的初始噪声会把去噪过程引向不同的动作模态。
随机兰氏动力学(Langevin dynamics)采样过程
在迭代去噪阶段,模型一边沿着“高概率动作区域”前进,一边还会不断加入噪声(随机扰动),因此有机会在不同的模态盆地(basin) 之间跳转。
这就类似一个带随机抖动的能量最小化过程,如果存在多个局部极小值(多个动作模式),采样就有可能在不同执行中收敛到不同的局部极小点,产生多样化的动作。
直观理解:
- 初始随机噪声会把起点 “丢” 到动作空间的某个位置;
- 迭代时朝着“高概率方向”去噪,但由于途中还在不断加噪声,所以每次都有一定概率去到左推模式或右推模式;
- 最终得到一个完整的动作序列,代表一次具体的推杆方案。
3. 与其他方法的对比
图 3 给出了一个示例:在同一个平面推块任务(Push T)中,不同方法的滚动轨迹表现各异:
- LSTM-GMM(Mandlekar 等,2021)
- 采用长短期记忆网络(LSTM)+ 高斯混合模型(GMM) 来表示多模态。
- 实践中往往会收敛到主导模态,容易忽略较少出现的模式,或“塌缩”到一个单峰,导致行为偏单一。
- IBC(Florence 等,2021)
- 基于隐式行为克隆(Implicit BC)的思想,也可学习多模态,但在一些场景中依然倾向某一主模态,无法自然地探索并收敛到另一模式。
- BET(Shafiullah 等,2022)
- 行为能量模型(Behavior Energy-based model)也能表示多模态,但作者指出,在“时间动作一致性”方面表现不足,会出现频繁切换、动作不连贯的问题。
与之相比,Diffusion Policy 则能够学到明显的 “双峰” 或多峰动作分布:在有些采样中选择左推,在另一些采样中选择右推,并且在时间上保持一个相对一致的推行动作,而不会中途来回抖动。
4. 多模态行为示例
图 3 中可见,Diffusion Policy 在同一个初始状态下的若干次滚动执行,路径五颜六色地围绕圆弧分布:
- 有些回合选择绕左侧弧线去推;
- 有些回合选择绕右侧弧线去推;
- 这些策略都能成功把方块推到目标位置,而不会像单模态方法那样只学到“右推”或者只学到“左推”。
5. 原理依据
5.1 扩散模型能表示任意可归一化分布
Ho 等人(2020)的 DDPM 理论上可以逼近任意复杂分布,包括多模态分布。
- 在动作空间应用时,就能够“保留多种可能动作模式”的峰值,而不必退化成单一高斯峰。
5.2 Langevin 动力学允许随机跳转
通过在每次迭代都注入高斯噪声,采样有机会跨过局部能量障碍,最终在多峰分布的某一个峰处收敛。因此,在多次独立采样中就能显现多模态行为。
5.3 与人类示范中的多样性相匹配
人类演示数据往往包含多条不同的策略,Diffusion Policy 在学习时就能捕捉到这些差异性,并在推断时随机选择一个模态进行“完整的动作展开”。
6. 简化示例
想象一个简单场景:机器人手臂要抓取一个杯子,它可以从左侧绕行或右侧绕行,两者都行得通。
- 收集示范:人类演示 10 次抓取里,有 6 次从左侧抓,4 次从右侧抓。
- 训练:Diffusion Policy 在动作空间做去噪学习,会发现“左侧”与“右侧”两个峰;
- 采样:在推理时,如果初始噪声把动作序列随机引到“左侧”模态,更大概率就收敛为左抓方案;换个随机初始,则收敛到右抓方案。
- 结果:模型会以大约 60% 的概率选择左抓、40% 选择右抓,符合人类示范分布,并且动作序列在时间上是完整连续的,不会半途左抓转右抓。
7. 小结
- 多模态分布的重要性:在机器人和行为克隆中,多条不同可行策略常并存。捕捉并保留这些差异性能让策略更灵活、多样化。
- Diffusion Policy 的优势:
- 随机初始化和随机兰氏采样过程,让动作空间可以在多个模态盆地间收敛。
- 无需特意设计混合模型(如 GMM)或额外的模式分类器,就能自然地在去噪阶段表现多模态。
- 时间一致性好,不会频繁切换不同模态导致动作抖动。
- 对比结果:LSTM-GMM、IBC 等方法往往“塌缩”到一个主要模式或动作更乱,Diffusion Policy 则能更平衡地表达、采样出各种示范中出现的动作模式。
4.2 与位置控制的协同作用
我们发现,使用位置控制动作空间的扩散策略(Diffusion Policy)在性能上始终优于使用速度控制的扩散策略,如图4所示。这个令人惊讶的结果与最近的行为克隆研究大多数依赖于速度控制的情况形成对比(Mandlekar等,2021;Shafiullah等,2022;Zhang等,2018;Florence等,2019;Mandlekar等,2020b,a)。我们推测,这一差异主要有两个原因:首先,动作的多模态性在位置控制模式下比在速度控制下更为明显。由于扩散策略比现有方法更好地表达了动作多模态性,我们推测它固有地不受这一缺陷的影响。此外,位置控制比速度控制更少受到累积误差影响,因此更适合于动作序列预测(如下一节讨论)。因此,扩散策略不仅较少受到位置控制主要缺陷的影响,而且更能利用位置控制的优势。
图4. 速度控制与位置控制。 切换从速度控制到位置控制时的性能差异。虽然BCRNN和BET的性能下降,但扩散策略能够利用位置控制的优势,从而提升其性能。
1. 背景:位置控制 vs. 速度控制
位置控制(Positional Control)
- 指的是策略直接输出下一步或下一段时间机器人末端执行器/关节所要到达的目标位置(或姿态)。
- 控制器(硬件或低层软件)会自动将当前状态调整到该目标位置,往往带有内置的反馈环节,可使得累积误差相对较小。
速度控制(Velocity Control)
- 策略输出的是机械臂/机器人在下一个时间步的速度或速度增量。
- 如果存在环境扰动、精度误差或延迟,速度控制可能在后续时间步里继续叠加误差,导致整体轨迹偏离目标。
在许多模仿学习或行为克隆研究中(Mandlekar 等,2021;Shafiullah 等,2022;Zhang 等,2018;Florence 等,2019;Mandlekar 等,2020b,a),常见做法是直接学习速度命令,原因包括:
- 人类示教或示范中常见速度信号(如手臂运动速度、操纵对象速度);
- 部分低层控制器仅能接收速度指令。
但文中却发现,在位置控制模式下,Diffusion Policy 的性能始终优于速度控制,并且与其他基于速度控制的方法相比更具优势。
2. Diffusion Policy 在位置控制下表现更好的原因
2.1 动作多模态性更易在位置控制下体现
“由于扩散策略比现有方法更好地表达了动作多模态性,我们推测它固有地不受这一缺陷的影响。”
多模态性:当机器人以位置方式控制手臂时,“下一步位置”可以存在多种合理选择(例如向左伸手或向右伸手),而且这些不同位置往往是截然不同的命令。
在速度控制下,不同行动模式可能只是 “速度向左” 和 “速度向右” 的连续拼接,不同模态的分界线没那么清晰,很容易 “平均化” 或塌缩到一个中间速度。
Diffusion Policy 以扩散采样方式生成整段动作序列,尤其擅长表达离散而明显的多模态行为(如左推 vs. 右推)。在位置控制模式里,模态之间的差距更显著,模型因此更容易保持各个模态的独立性,而不混在一起。
2.2 累积误差在位置控制中相对更小
“位置控制比速度控制更少受到累积误差影响,因此更适合于动作序列预测。”
- 累积误差(Drift):在速度控制中,一旦某一时刻的速度偏差大了,后续时刻的状态就会逐步积累更多偏移——因为每次都基于“当前实际位置 + velocity 命令”去更新,如果没及时补偿,偏差会越滚越大。
- 位置控制的好处:当策略给出一个目标位置,低层控制器或硬件 PID/MPC 会力图把机器人真正移动到那个目标点,这会自动消除一部分误差。对高层策略而言,每一步动作都更接近“期望状态”。
- Diffusion Policy 在做多步动作序列预测时,更容易在位置命令模式下保持“所见即所得”,减少对历史小误差的敏感性。
3. 实验结果(图 4)
图 4 显示了从“速度控制”切换到“位置控制”后,各种方法相对于“速度控制版”在成功率上的变化(Relative Success Rate Change)。可以看到:
- LSTM-GMM(灰黑色)和 BET(浅灰色)在切换到位置控制后,性能反而下降(负值),说明它们在位置控制上并未受益;
- DiffusionPolicy-C(蓝色,CNN-based)和 DiffusionPolicy-T(浅蓝色,Transformer-based)都出现正向提升,其中在 Kitchen p4 任务中,“DiffusionPolicy-C”甚至有接近 +100% 的性能提升;
- 这说明:同样是从速度改成位置控制,Diffusion Policy 能更好地利用其优势,而其他方法却反而适应不良,由此突显了位置控制和扩散策略的“协同作用”。
4. 原理依据
4.1 多模态分布更易保留
Diffusion Policy 的采样方式(随机初始 + 多步去噪 + 保留多峰)使得各条路径(不同位置) 在动作空间中能自然共存。在位置空间,这些路径(如向左伸手 vs. 向右伸手)相互之间差异更明显,更容易成为不同的模态峰;在速度空间,不同模态的差异容易在多次积分中被冲淡或抹平。
4.2 累积误差与高维序列预测
对多步动作序列(如 10~20 步)的预测,若动作为“速度”,则每步都会对后续状态产生累积影响;若动作为“目标位置”,则存在一个低层闭环,从而减少高层策略对每步误差的放大效应。
4.3 行业惯例 vs. 新发现
尽管很多工作(Mandlekar 等、Zhang 等、Florence 等等)基于速度控制取得一定成功,但他们可能侧重短时或单步预测,再加上一些特定网络结构或补偿机制来减小偏差。 文中新发现表明:对于 Diffusion Policy 这样的多步序列生成方法,位置控制能显著提升性能,可能是以前研究中未充分验证的一个角度。
5. 示例:机械臂搬运任务
- 任务:机器人需要从桌面中央抓起一个杯子,然后移到右边托盘。
- 速度控制场景:
- 策略输出关节角速度或末端执行器速度;
- 如果有一点偏差,机械臂就可能逐渐偏离目标路线,除非策略专门学会纠偏。
- 多模态“绕前抓 vs. 绕后抓”可能只呈现不同速度片段,容易互相冲突,导致塌缩成“某个中间”速度路线。
- 位置控制场景:
- 策略直接输出下一步想要机械臂在空间中的目标点;
- 内部低层控制器自动完成精确移动,对高层策略的小偏差也可以纠正;
- “绕前抓”与“绕后抓”在位置空间是两个明显不同的目标位置序列,不会混为一谈,Diffusion Policy 更易保留两种模式。
- 最终成功率显著提升。
6. 小结
- 核心发现:Diffusion Policy 的性能在位置控制模式下显著优于速度控制,这与以往文献“多用速度控制”形成对比。
- 原因:
- 位置控制下的多模态差异更明显,Diffusion Policy 擅长捕捉并保持不同峰值;
- 位置控制具备先天的误差闭环补偿,累积误差小,更适合多步预测。
- 实验结果:在图 4 中,切换到位置控制后,Diffusion Policy 成功率有明显提升,而 LSTM-GMM 或 BET 则未能受益,显示了位置控制与扩散策略的协同增益。
4.3 动作序列预测的好处
在大多数策略学习方法中,序列预测往往被避免,原因在于高维输出空间的有效采样存在困难。例如,IBC在有效采样高维动作空间时可能会遇到非平滑的能量景观。类似地,BC-RNN和BET在确定动作分布中存在的模式数量时也会遇到困难(这对于GMM或k-means步骤是必要的)。
相比之下,DDPM能够很好地扩展输出维度,而不牺牲模型的表现力,这在许多图像生成应用中得到了证明。利用这一能力,Diffusion Policy将动作表示为高维动作序列,自然地解决了以下问题:
-
时间动作一致性:以图3为例。为了从底部将T块推入目标,策略可以从左侧或右侧绕过T块。然而,如果序列中的每个动作都被预测为独立的多模态分布(如BC-RNN和BET所做),那么连续的动作可能会从不同的模式中抽取,导致颤动的动作在两个有效轨迹之间交替。
-
对闲置动作的鲁棒性:闲置动作发生在演示暂停时,导致一系列相同的位移动作或近零速度动作。这在远程操作中很常见,有时在像液体倒出这样的任务中是必需的。然而,单步策略容易过拟合这种暂停行为。例如,BC-RNN和IBC在真实世界实验中往往会卡住,当闲置动作没有被显式移除时,情况尤为严重。
图5. Diffusion Policy消融研究。每个任务相对于最大值的成功率变化(差异)显示在Y轴上。左侧:在选择动作视野时,时间一致性与响应性之间的权衡。右侧:具有位置控制的Diffusion Policy对延迟具有鲁棒性。延迟定义为从最后一帧观测到第一个可执行动作之间的步骤数。
1. 背景:高维动作序列预测的难点
在很多行为克隆或策略学习方法里,序列预测往往被“避免”或“弱化”,因为:
高维输出空间采样困难
- 当一次性预测多个时间步的动作序列时,输出维度可能是 T × d T \times d T×d(其中 T T T 是动作序列长度, d d d 是单步动作维度)。维度一旦变大,采样/建模变得十分复杂。
- 例如,IBC(Implicit Behavior Cloning)在高维空间里遇到“非平滑能量景观”问题,导致采样难以收敛。
需要显式指定模态数量
- 像 BC-RNN、BET 这类方法,有时依赖 GMM 或 k-means 做聚类,以捕捉多模态动作分布,需要手动指定或自适应地确定“有多少个模态”。这对于高维、多步的动作更是难上加难。
因此,许多传统算法只做单步动作预测,或者在输出维度上进行强约束,避免触及“多步序列的高维”问题。
2. 为什么 Diffusion Policy 适合预测高维动作序列?
DDPM(Denoising Diffusion Probabilistic Model) 已被大量图像生成任务证明,能在非常高维的像素空间扩散采样,同时保持强大的表达力。
- 动作序列与图像在结构上类似:都是高维张量(如图像是 Width × Height × Channels \text{Width} \times \text{Height} \times \text{Channels} Width×Height×Channels,动作序列是 Time × ActionDim \text{Time} \times \text{ActionDim} Time×ActionDim)。
- 因此,Diffusion Policy 能够“自然地”把多个时间步的动作合并成一个大向量或矩阵,在高维空间里进行扩散去噪,不需要额外指定模态数或对输出做显式限制。
3. 主要好处:时间动作一致性 & 闲置动作鲁棒性
3.1 时间动作一致性
“如果序列中的每个动作都被预测为独立的多模态分布,那么连续动作可能会从不同模式中抽取,导致颤动地在两条有效轨迹之间切换。”
单步多模态的缺陷
比如在任务中,机器人可以从左或右绕行目标块,但如果每一步动作都独立地采样一个多模态分布,就有可能前一帧选了“左”模态,后一帧又跳到“右”模态。
导致整体轨迹出现抖动、来回折返,无法形成一条连贯的操作路径。
多步序列预测的优势
- 在 Diffusion Policy 里,一次性生成完整动作序列,把多步动作联合建模。
- 这样,采样时就会在动作空间搜索“整条可行轨迹”,保证时间上的“前后动作”是相互连贯而非独立抽取的。
- 最终在一个滚动执行或闭环执行过程中,Diffusion Policy 会坚守某一条有效线路(左绕或右绕),避免中途切换。
想象一个“Push T”的平面推块任务:
- 如果机器人动作是一步步多模态地独立采样,就像每一帧都问“要往左绕还是右绕?”
- 可能出现“前两步左绕、第三步又右绕”,来回摆动。
- 但在序列预测中,Diffusion Policy 会在去噪过程中找到“一条左绕路线”或“一条右绕路线”,整条推块轨迹前后一致。
3.2 对闲置动作(Idling Actions)的鲁棒性
“单步策略容易过拟合这种暂停行为,导致实际执行卡住;而序列预测能更好地忽略或正确处理这些闲置动作。”
闲置动作是什么?
- 在许多远程操作或人类示教中,演示者可能中途暂停、保持机械臂不动(位移或速度接近 0),等待下一步机会或场景变化。
- 这些“连续相同动作”或“长时间不动”在数据上很常见,但对实际策略执行不一定有益。
单步方法的弊端
- 如果只做单步学习,模型可能过度记忆到“0 速度”或“相同位移动作”,一旦遇到某状态就僵住不动。
- BC-RNN、IBC 等都曾在真实实验中观察到“机器人卡住不动”的情况,尤其当闲置动作没有在训练数据中被显式剔除。
序列预测的优势
当 Diffusion Policy 生成多步动作序列时,可以把这段“闲置期”看作某一段时间的动作子序列。如果策略的目标是推进任务,它可以学习到“什么时候真正需要停留,什么时候只是演示者在等待”。
在去噪过程中,若连续闲置动作对完成任务无帮助,模型可以在多步层面上“跳过”或“缩短”闲置时段,而不会因为单帧特征诱使它卡住。
倒液体任务:人类演示里常有“拿起容器后等待液体流出”的阶段,机械臂姿态几乎不变。但在实际场景里,如果情况不完全吻合,继续长时间僵住就会浪费时间甚至错误执行。
- 多步策略能够学到“闲置只是一段子序列,若当前观测不同,就不必完全复制那段等待动作”。
4. 对比图 5:Diffusion Policy 的消融研究
文中(图 5)提到两方面测试:
Action Horizon(动作视野)
- 从 1~128 步不等,观察性能变化。
- 推论:如果动作视野太小(只预测 1~2 步),就难以保持时间一致性;如果太大(如 128 步)又可能在实际中反应滞后。适度选择能达成最好平衡。
Latency Robustness(延迟鲁棒性)
- 测试当观测到执行之间存在 0~7 步延迟时的性能。
- 结果显示,Diffusion Policy 对较小的时延有很强鲁棒性(因为已经学习到多步序列,可以在局部做修正),延迟很大时性能开始下降。
整体而言,这些实验印证了:
- 多步序列预测(合适的行动视野)可以在“时间一致性”和“快速响应”之间取得平衡;
- 与位置控制相结合,能让策略对延迟或闲置动作的异常情况也更具鲁棒性。
4.4 训练稳定性
虽然理论上IBC应具备与扩散政策类似的优势,但在实际操作中,IBC由于固有的训练不稳定性而难以实现可靠和高性能的结果(Ta等,2022)。图6显示了训练过程中错误的剧烈波动和评估性能的不稳定性,使得超参数调整变得至关重要,而检查点选择也变得困难。因此,Florence等(2021)评估了每个检查点,并报告最佳表现检查点的结果。在实际环境中,这一工作流程需要在硬件上评估多个策略以选择最终策略。在这里,我们讨论了为什么Diffusion Policy在训练中表现出明显更高的稳定性。
隐式策略使用基于能量的模型(EBM)表示动作分布(详情请查看这篇文章:论文笔记(六十一)Implicit Behavioral Cloning):
p θ ( a ∣ o ) = e − E θ ( o , a ) Z ( o , θ ) (6) p_θ(\mathbf{a}|\mathbf{o}) = \frac{e^{-E_θ(\mathbf{o},\mathbf{a})}}{Z(\mathbf{o},θ)} \tag{6} pθ(a∣o)=Z(o,θ)e−Eθ(o,a)(6)
其中 Z ( o , θ ) Z(\mathbf{o},θ) Z(o,θ) 是关于 a \mathbf{a} a 的难以处理的归一化常数。
为了训练用于隐式策略的 EBM,使用了类似 InfoNCE 的损失函数,这相当于第 6 式的负对数似然:
L i n f o N C E = − log ( e − E θ ( o , a ) e − E θ ( o , a ) + ∑ j = 1 N n e g e − E θ ( o , a ~ j ) ) (7) \mathscr{L}_{infoNCE} = -\log( \frac{e^{-E_θ(\mathbf{o},\mathbf{a})}}{e^{-E_θ(\mathbf{o},\mathbf{a})}+∑_{j=1}^{N_{neg}} e^{-E_θ(\mathbf{o},\mathbf{\tilde{a}}^j)} }) \tag{7} LinfoNCE=−log(e−Eθ(o,a)+∑j=1Nnege−Eθ(o,a~j)e−Eθ(o,a))(7)
其中一组负样本 { a ~ j } j = 1 N n e g \{\mathbf{\tilde{a}^j}\}^{N_{neg}}_{j=1} {a~j}j=1Nneg 被用来估计难以处理的归一化常数 Z ( o , θ ) Z(\mathbf{o},θ) Z(o,θ)。在实践中,负采样的不准确性已知会导致 EBM 训练的不稳定性(Du 等,2020;Ta 等,2022)。
扩散策略和 DDPM 避免了对 Z ( a , θ ) Z(\mathbf{a},θ) Z(a,θ) 的估计,通过建模同一动作分布的评分函数(Song 和 Ermon,2019)来实现第 6 式:
∇ a log p ( a ∣ o ) = − ∇ a E θ ( a , o ) − ∇ a log Z ( o , θ ) ⏟ = 0 ≈ − ε θ ( a ∣ o ) (8) \nabla_\mathbf{a} \log p(\mathbf{a}|\mathbf{o}) = - \nabla_\mathbf{a} E_\theta (\mathbf{a},\mathbf{o}) - \underset{= 0}{\underbrace{\nabla_\mathbf{a} \log Z(\mathbf{o}, \theta) }_{\text{}}} \approx - \varepsilon_\theta (\mathbf{a}|\mathbf{o}) \tag{8} ∇alogp(a∣o)=−∇aEθ(a,o)−=0 ∇alogZ(o,θ)≈−εθ(a∣o)(8)
其中噪声预测网络 ε θ ( a ∣ o ) \varepsilon_\theta (\mathbf{a}|\mathbf{o}) εθ(a∣o) 近似于评分函数的负值 ∇ a log p ( a ∣ o ) \nabla_\mathbf{a} \log p(\mathbf{a}|\mathbf{o}) ∇alogp(a∣o)(Liu 等,2022),该评分函数与归一化常数 Z ( o , θ ) Z(\mathbf{o}, \theta) Z(o,θ) 无关。因此,扩散策略的推断(第 4 式)和训练(第 5 式)过程均不涉及评估 Z ( o , θ ) Z(\mathbf{o}, \theta) Z(o,θ),从而使扩散策略的训练更加稳定。
图 6. 训练稳定性。左侧:尽管训练损失平滑下降,但 IBC 难以以逐渐增加的准确性推断训练动作。右侧:IBC 的评估成功率波动,使得检查点选择变得困难(在模拟中使用策略回合进行评估)。
1. 背景:为什么要关注训练稳定性?
’
在机器人或强化学习场景中,我们希望所学到的策略在训练过程中可以平稳收敛,并且能方便地根据训练曲线或验证表现来选择最佳检查点(checkpoint)。如果训练损失和评估性能经常出现大幅波动,就会给超参数调节和最终策略选择带来很大困难:
- 训练过程不稳定 → 很难知道何时停止训练或如何调整学习率、batch 大小等超参数。
- 评估性能波动 → 不知道哪个 epoch 的模型最优,也可能在真实机器人上需要频繁测试多个模型,既费时又容易造成硬件磨损或安全风险。
’
在文中所述的对比中,IBC(Implicit Behavioral Cloning)常出现不稳定,而Diffusion Policy 基于 DDPM 的方法在实践中却表现出显著更高的稳定性。
2. IBC(Implicit BC)训练为什么不稳定?
2.1 IBC 的核心:基于能量函数(EBM)
IBC 采用能量模型(Energy-Based Model, EBM)来表示条件动作分布:p θ ( a ∣ o ) = exp ( − E θ ( o , a ) ) Z ( o , θ ) , p_\theta(\mathbf{a} \mid \mathbf{o}) = \frac{\exp\!\bigl(-E_\theta(\mathbf{o}, \mathbf{a})\bigr)} {Z(\mathbf{o}, \theta)}, pθ(a∣o)=Z(o,θ)exp(−Eθ(o,a)),
其中
- a \mathbf{a} a 是动作, o \mathbf{o} o 是观察/状态;
- E θ E_\theta Eθ 是能量函数;
- Z ( o , θ ) Z(\mathbf{o},\theta) Z(o,θ) 是归一化常数(又称配分函数,partition function),需要对动作空间做积分/求和,往往难以显式计算。
2.2 难点:如何估计 Z ( o , θ ) Z(\mathbf{o}, \theta) Z(o,θ)
因为 Z ( o , θ ) Z(\mathbf{o},\theta) Z(o,θ) 很难直接计算或微分,通常采用负样本(negative samples) 来近似处理。比如 InfoNCE 风格的损失:L i n f o N C E = − log ( exp [ − E θ ( o , a ) ] exp [ − E θ ( o , a ) ] + ∑ j = 1 N n e g exp [ − E θ ( o , a ~ j ) ] ) , \mathscr{L}_{\mathrm{infoNCE}} = -\log\!\Bigl( \frac{\exp\!\bigl[-E_\theta(\mathbf{o},\mathbf{a})\bigr]} {\exp\!\bigl[-E_\theta(\mathbf{o},\mathbf{a})\bigr] + \sum_{j=1}^{N_{\mathrm{neg}}} \exp\!\bigl[-E_\theta(\mathbf{o}, \tilde{\mathbf{a}}^j)\bigr]} \Bigr), LinfoNCE=−log(exp[−Eθ(o,a)]+∑j=1Nnegexp[−Eθ(o,a~j)]exp[−Eθ(o,a)]),
其中 { a ~ j } \{\tilde{\mathbf{a}}^j\} {a~j} 是采样得到的一批负例动作。
- 若这些负例不能准确代表整体动作分布,或者采样策略不佳,就会引入强烈的估计偏差。
- 训练阶段每次迭代都要依赖这样的负例,导致梯度不稳定。
- 此外,EBM 本身也容易出现训练振荡或“模式塌陷”,需非常谨慎地调参(例如负样本大小、学习率等)。
2.3 实验现象
文中图 6 显示了 IBC 在训练过程中的波动现象:
- 即使训练损失看起来“平滑下降”,实际动作预测误差却一直上下抖动;
- 在评估阶段(比如在模拟器中跑完整回合),成功率也大起大落。 这就使得“哪个 epoch 的模型最好”不明确,且需要大量人工实验或每次都在硬件上评估多个 checkpoint。
3. Diffusion Policy 为什么更稳定?
3.1 避免对 Z ( o , θ ) Z(\mathbf{o},\theta) Z(o,θ) 的显式估计
扩散模型(DDPM)用的是“学习评分函数”的思路(Song 和 Ermon,2019):∇ a log p ( a ∣ o ) = − ∇ a E θ ( a , o ) − ∇ a log Z ( o , θ ) ≈ − ε θ ( a ∣ o ) . \nabla_{\mathbf{a}} \log p(\mathbf{a} \mid \mathbf{o}) = -\nabla_{\mathbf{a}} E_\theta(\mathbf{a}, \mathbf{o}) - \nabla_{\mathbf{a}} \log Z(\mathbf{o}, \theta) \;\approx\; -\varepsilon_\theta(\mathbf{a} \mid \mathbf{o}). ∇alogp(a∣o)=−∇aEθ(a,o)−∇alogZ(o,θ)≈−εθ(a∣o).
但由于 ∇ a log Z ( o , θ ) \nabla_{\mathbf{a}} \log Z(\mathbf{o}, \theta) ∇alogZ(o,θ) 与 a \mathbf{a} a 无关,它在对动作做梯度时为 0,于是不必显式求 Z ( o , θ ) Z(\mathbf{o},\theta) Z(o,θ)。
- 也就是说,DDPM 并不直接去计算能量函数本身的数值或者对数归一化常数,而是去学该分布的梯度场(评分函数)。
- 这样大幅减轻了对负样本或对抗训练的依赖,不需要在每一步去估计动作分布的全局积分,从而训练更平滑、更稳定。
3.2 训练过程更简单:仅做“噪声预测”MSE
如同 DDPM 在图像生成中做的那样,Diffusion Policy 在动作维度里只需要做噪声预测(公式 (5))的均方误差。这种回归型损失往往比对比损失(如 InfoNCE)更易收敛,也更少出现梯度爆炸或塌陷。
3.3 实验表现:无需频繁切换超参或筛选 checkpoint
从图 6 也能看到,Diffusion Policy 的训练误差随 epoch 稳定下降,最终得到的策略在模拟评估时成功率也更平稳,并迅速达到高水平,之后浮动较小。这意味着在实际机器人或模拟环境里,我们可以更快地找到一个好的 checkpoint,无需对训练曲线进行反复观测和大量试验。
4. 举例说明:机器人推块
IBC 版:
- 利用 EBM 表达 “给定状态 o \mathbf{o} o,动作 a \mathbf{a} a 的分布”;
- 在训练时,需要选一批负例动作 { a ~ j } \{\tilde{\mathbf{a}}^j\} {a~j} 做对比学习;
- 如果这些负例不恰当(比如分布过于集中或与真实分布偏差大),能量函数的梯度就会不稳定。
- 结果:训练损失波动大,或者训练精度不随 epoch 提升,评估成功率上下浮动。
Diffusion Policy 版:
- 采用类似 DDPM 的去噪思路,只需要对“加噪动作”做 MSE 逼近,就能学到动作评分函数;
- 训练曲线通常比较平滑,评估成功率随着 epoch 推进稳定上升或收敛;
- 在真实机器人上试验时,不需要频繁地在几十或上百个 checkpoint 中反复筛选,因为训练本身就没有大起大落。
结果是,Diffusion Policy 最终在推块任务里更容易得到一致且高质量的策略,避免了大量的负样本对比不准确带来的不稳定性。
5. 小结
- IBC(Implicit BC)
- 采用能量模型 (EBM) 表达分布,需要显式近似难以处理的归一化常数 (Z(\cdot));
- 通常用对比/负采样来估计,容易受负例分布、采样数、不平滑能量景观等因素影响,导致训练不稳定。
- Diffusion Policy(基于 DDPM)
- 不直接估计归一化常数,而是学习动作分布的评分函数;
- 训练只需做“噪声预测误差”MSE,避免了对能量与负采样的复杂依赖;
- 更稳定,训练中很少出现剧烈振荡,也不需要在众多 checkpoint 中苦苦甄别最佳模型。
- 图 6 展示了两者在训练损失曲线、评估成功率上的对比:IBC 波动很大,Diffusion Policy 则平滑且可预期地上升。
4.5 与控制理论的联系
当任务非常简单时,扩散策略具有简单的极限行为;这可能使我们能够运用控制理论中的一些严格理解。考虑一个我们希望控制的线性动态系统,标准状态空间形式如下:
s t + 1 = A s t + B a t + w t , w t ∼ N ( 0 , Σ w ) . ( ) \mathbf{s}_{t+1} = \mathbf{As}_t + \mathbf{Ba}_t + \mathbf{w}_t, \mathbf{w}_t ∼ \mathscr{N} (0,Σ_w). \tag{} st+1=Ast+Bat+wt,wt∼N(0,Σw).()
现在假设我们从一个线性反馈策略中获得演示(回放): a t = − K s t \mathbf{a}_t = -\mathbf{Ks}_t at=−Kst。这个策略可以通过解决线性最优控制问题(例如线性二次调节器)来获得。模仿这个策略不需要扩散的建模能力,但作为一个理智检查,我们可以看到扩散策略是正确的。
特别地,当预测时域为一个时间步时, T p = 1 T_p = 1 Tp=1,可以看出,最优去噪器可以最小化
L = M S E ( ε k , ε θ ( s t , − K s t + ε k , k ) ) (9) \mathscr{L} = MSE(\varepsilon^k, \varepsilon_\theta(\mathbf{s}_t,\mathbf{-Ks}_t + \varepsilon^k, k)) \tag{9} L=MSE(εk,εθ(st,−Kst+εk,k))(9)
由
ε θ ( s , a , k ) = 1 σ k [ a + K s ] , ( ) \varepsilon_\theta(\mathbf{s}, \mathbf{a}, k) = \frac{1}{\sigma_k}[\mathbf{a+Ks}], \tag{} εθ(s,a,k)=σk1[a+Ks],()
给出,其中 σ k \sigma_k σk 是去噪迭代 k k k 的方差。此外,在推断时,DDIM 采样将收敛到全局最小值 a = − K s \mathbf{a} = -\mathbf{K s} a=−Ks。
轨迹预测( T p > 1 T_p > 1 Tp>1)是自然而然的。为了预测 a t + t ′ \mathbf{a}_{t+t'} at+t′ 作为 s t \mathbf{s}_t st 的函数,最优去噪器将产生 a t + t ′ = − K ( A − B K ) t ′ s t \mathbf{a}_{t+t'} = -\mathbf{K(A - BK)}^{t'} \mathbf{s}_t at+t′=−K(A−BK)t′st;所有涉及 w t \mathbf{w}_t wt 的项在期望上为零。这表明,为了完美克隆依赖于状态的行为,学习者必须隐式学习一个(与任务相关的)动态模型(Subramanian 和 Mahajan,2019;Zhang 等,2020)。请注意,如果植物或策略是非线性的,那么预测未来动作可能会变得显著更具挑战性,再次涉及多模态预测。
1. 背景:为什么要和控制理论联系起来?
在许多机器人或控制任务里,线性最优控制(如线性二次调节器 LQR)能给出解析解,或者我们可以通过某种线性反馈策略对系统进行控制。文中想说明的是:当任务足够简单(例如真实策略就是一个线性反馈),即使我们使用了看似复杂的扩散策略(Diffusion Policy),也能正确地“模仿”线性反馈控制的演示,并在该简单场景下收敛到与线性控制一致的行为。
这是一个“理智检查”(sanity check):如果系统是线性的、演示来自线性策略,那么对扩散策略而言,这并不需要多模态或非线性的建模能力,仍然能把它学好。
2. 线性系统与线性反馈策略
2.1 线性动态系统
文中给出了标准状态空间形式:s t + 1 = A s t + B a t + w t , w t ∼ N ( 0 , Σ w ) . \mathbf{s}_{t+1} = \mathbf{A}\,\mathbf{s}_t + \mathbf{B}\,\mathbf{a}_t + \mathbf{w}_t, \quad \mathbf{w}_t \sim \mathcal{N}(0, \Sigma_w). st+1=Ast+Bat+wt,wt∼N(0,Σw).
- s t \mathbf{s}_t st 是系统状态(例如位置、速度的拼接向量);
- a t \mathbf{a}_t at 是控制输入/动作(如力或加速度);
- A \mathbf{A} A 和 B \mathbf{B} B 是常数矩阵;
- w t \mathbf{w}_t wt 是高斯噪声。
2.2 线性反馈策略
如果我们在此系统上做线性二次调节器(LQR)或别的线性最优控制问题,常见会得到一个线性反馈形式:a t = − K s t , \mathbf{a}_t = -\mathbf{K}\,\mathbf{s}_t, at=−Kst,
其中 K \mathbf{K} K 是一个增益矩阵。从而在每个时刻 t t t 都是直接用状态 s t \mathbf{s}_t st 乘上一个常数矩阵 − K -\mathbf{K} −K 来得到动作。当我们用这种线性策略(LQR)去生成专家演示数据(即 a t \mathbf{a}_t at),自然就获得了一个“简单又正确”的数据分布。文中说“扩散策略在这种场景下并不需要所谓多模态或复杂非线性能力,也能学到同样的映射”。
1. 线性反馈策略: a t = − K s t \mathbf{a}_t = -\mathbf{K}\,\mathbf{s}_t at=−Kst
1.1 线性系统与线性最优控制(LQR)
- 在经典控制理论中,如果系统是线性的(比如 s t + 1 = A s t + B a t \mathbf{s}_{t+1} = \mathbf{A}\,\mathbf{s}_t + \mathbf{B}\,\mathbf{a}_t st+1=Ast+Bat),且我们要最小化一个二次型代价函数(如 ∑ t [ s t ⊤ Q s t + a t ⊤ R a t ] \sum_t [\mathbf{s}_t^\top Q \,\mathbf{s}_t + \mathbf{a}_t^\top R \,\mathbf{a}_t] ∑t[st⊤Qst+at⊤Rat]),那么可以通过求解线性二次调节器(LQR)来得到最优控制策略。
- 这个最优策略往往呈现出线性反馈形式: a t = − K s t \mathbf{a}_t = -\mathbf{K}\,\mathbf{s}_t at=−Kst,其中 K \mathbf{K} K 是一块固定的增益矩阵(线性二次调节器(LQR)是什么?)。
1.2 用 LQR 策略生成专家演示
- 想象我们运行这个最优控制策略,采集 { ( s t , a t ) } \{(\mathbf{s}_t, \mathbf{a}_t)\} {(st,at)} 数据对,其中 a t = − K s t \mathbf{a}_t = -\mathbf{K}\mathbf{s}_t at=−Kst。
- 这样就得到了一组“专家示范”,而且这个示范非常“干净”:动作对状态是线性的、无多模态情况。
2. 专家示范的分布为何“简单”?
2.1 单峰、线性关系
- 在这个场景中,动作 a t \mathbf{a}_t at 对状态 s t \mathbf{s}_t st 的映射是线性的且通常只有一个模式:不管 s t \mathbf{s}_t st 取什么值,你都把它乘上 − K -\mathbf{K} −K,就得到唯一的动作 a t \mathbf{a}_t at。
- 没有什么“左绕、右绕”这种多模态选择,一般是一个清晰、单一的最佳解。
2.2 数据分布很规律
- 采集到的 ( s t , a t ) (\mathbf{s}_t, \mathbf{a}_t) (st,at) 数据,会在高维空间里展现出线性映射( a \mathbf{a} a 大小正比于 s \mathbf{s} s),没有复杂的非线性或多峰分布。
因此,这种数据非常简单、易于学习。对于任何能表征“从状态到动作”的函数近似方法来说,不需要多模态或高阶非线性就能复现它。
3. 与 Diffusion Policy 的关系
3.1 扩散策略能学到这个线性映射
- 即使 Diffusion Policy(基于扩散模型)在理论上能表达多模态、非线性复杂分布,也能在这种“简单、线性单模态”的数据分布下轻松收敛到“ a t = − K s t \mathbf{a}_t = -\mathbf{K}\,\mathbf{s}_t at=−Kst”的解。
- 这是一个 “理智检查(sanity check)” :表明在非常简单的情形下,扩散策略并不会因为其强大而出错或偏移,反而能很好地兼容最基本的线性场景。
3.2 不用多模态或复杂非线性
- 因为数据本身并不要求模型去区分不同动作模式(只有一条最佳轨迹),也不需要高阶特征来拟合。从而“扩散”并不发挥在多模态上才需要的能力,但并不妨碍它学得正确。
4. 为什么这很重要?
4.1 说明扩散策略在“简单场景”不会退化
- 一些强大的模型(如大型神经网络、生成模型)在极简问题上,反而可能出现过拟合或训练不稳定等异常情况。
- 这里表明:当环境/策略是线性、单模态时,扩散策略也能收敛到与 LQR 相同的反馈映射,不会“瞎编”多模态或出现崩溃。
4.2 为更复杂场景提供基础
- 真实机器人或控制系统常常是非线性的、多模态的,但在最简单情形下扩散策略依然正常工作,这就让我们对在更复杂场景中使用扩散策略有了基础信心。
- 如果连最简单的线性反馈都学不好,那就更别提应对多模态或非线性分布了。
5. 举例小案例
- 二维简化系统
- 状态 s t = [ x t , x ˙ t ] ⊤ \mathbf{s}_t = [x_t, \dot{x}_t]^\top st=[xt,x˙t]⊤,动作 a t \mathbf{a}_t at 是加速度。
- 用 LQR 找到 a t = − K x t − D x ˙ t \mathbf{a}_t = -K x_t - D \dot{x}_t at=−Kxt−Dx˙t 这样一个固定线性反馈。
- 生成示范
- 在不同初始条件下,运行该 LQR 策略收集 ( s t , a t ) (\mathbf{s}_t,\mathbf{a}_t) (st,at) 数据。
- 训练扩散策略
- 结果发现:扩散策略最终学到的也是近似线性的映射,对应 a ≈ − K x − D x ˙ \mathbf{a} \approx -K x - D\dot{x} a≈−Kx−Dx˙。
- 没有出现对该简单问题“学习不收敛”或“臆想多模态”的现象。
6. 总结
- 当用线性反馈策略(如 LQR)生成演示时,动作分布非常简单:对状态 s t \mathbf{s}_t st 唯一对应动作 − K s t -\mathbf{K}\mathbf{s}_t −Kst。
- 扩散策略(Diffusion Policy)虽然能建模多模态或非线性,但在这种情况下,只需要学到该单一线性关系即可;它也确实能够收敛到正确映射。
- 这表明在最简单的线性场景中,扩散策略具备正确性和兼容性,而不至于因为自身的复杂度或多模态潜力而出现不当表现。
因此,这段话想传达的要点是:对线性反馈产生的示范数据,Diffusion Policy 并不会画蛇添足地学出多模态或奇怪非线性,反而能和线性策略的效果保持一致。这是一个保证模型“在简单问题上保持简单解”的验证。
3. 为什么扩散策略能在此简化场景下也学到正确映射?
3.1 单步预测( T p = 1 T_p = 1 Tp=1)情形
当只预测下一步动作(时间视野 T p = 1 T_p = 1 Tp=1)时,扩散策略的训练目标之一(公式 (9))是:L = M S E ( ε k , ε θ ( s t , − K s t + ε k , k ) ) . \mathscr{L} = MSE\Bigl(\varepsilon^k,\;\varepsilon_\theta\bigl(\mathbf{s}_t,\;-\mathbf{K}\mathbf{s}_t + \varepsilon^k,\;k\bigr)\Bigr). L=MSE(εk,εθ(st,−Kst+εk,k)).
这个 MSE 约束说:网络 ε θ \varepsilon_\theta εθ(去噪网络)要将加噪动作 − K s t + ε k -\mathbf{K}\mathbf{s}_t + \varepsilon^k −Kst+εk “去噪” 回 “无噪动作 − K s t -\mathbf{K}\mathbf{s}_t −Kst” ——其中 ε k \varepsilon^k εk 代表加到动作上的噪声。在最优情况下,网络学到:
ε θ ( s , a , k ) = 1 σ k [ a + K s ] . \varepsilon_\theta(\mathbf{s},\,\mathbf{a},\,k) = \frac{1}{\sigma_k}\bigl[\mathbf{a} + \mathbf{K}\mathbf{s}\bigr]. εθ(s,a,k)=σk1[a+Ks].
也就是说,如果真实动作是 a ∗ = − K s \mathbf{a}^*=-\mathbf{K}\mathbf{s} a∗=−Ks,网络就把剩余 “ a − a ∗ \mathbf{a}-\mathbf{a}^* a−a∗” 视为噪声成分,由此进行“去噪”。
加噪动作的形式为:
a t k = − K s t + ε k , \mathbf{a}_t^k = -\mathbf{K}\mathbf{s}_t + \varepsilon^k, atk=−Kst+εk,其中:
- − K s t -\mathbf{K}\mathbf{s}_t −Kst 是“真实动作”;
- ε k ∼ N ( 0 , σ k 2 I ) \varepsilon^k \sim \mathcal{N}(0, \sigma_k^2 \mathbf{I}) εk∼N(0,σk2I) 是高斯噪声。
网络 ε θ ( s t , a t k , k ) \varepsilon_\theta(\mathbf{s}_t, \mathbf{a}_t^k, k) εθ(st,atk,k) 被设计成输入当前状态 s t \mathbf{s}_t st、加噪动作 a t k \mathbf{a}_t^k atk、以及扩散阶段 k k k,输出噪声 ε k \varepsilon^k εk。通过 MSE 损失函数:L = M S E ( ε k , ε θ ( s t , a t k , k ) ) , \mathscr{L} = \mathrm{MSE}\bigl(\varepsilon^k, \varepsilon_\theta(\mathbf{s}_t, \mathbf{a}_t^k, k)\bigr), L=MSE(εk,εθ(st,atk,k)),
网络被逼迫去学会 “预测噪声 ε k \varepsilon^k εk”。将 a t k = − K s t + ε k \mathbf{a}_t^k = -\mathbf{K}\mathbf{s}_t + \varepsilon^k atk=−Kst+εk 代入,我们有:
ε k = a t k − ( − K s t ) . \varepsilon^k = \mathbf{a}_t^k - (-\mathbf{K}\mathbf{s}_t). εk=atk−(−Kst).
因此,理想情况下( L \mathscr{L} L为 0 0 0),网络的预测应该为:
ε θ ( s t , a t k , k ) = a t k + K s t . \varepsilon_\theta(\mathbf{s}_t, \mathbf{a}_t^k, k) = \mathbf{a}_t^k + \mathbf{K}\mathbf{s}_t. εθ(st,atk,k)=atk+Kst.
从扩散模型的理论来看,网络预测的噪声会除以当前扩散阶段 k k k 的噪声强度 σ k \sigma_k σk。这是因为训练目标的实际形式是对“标准化噪声”的预测,而不是直接的 ε k \varepsilon^k εk。将这一点考虑进去,网络学到的形式变为:
ε θ ( s t , a t k , k ) = 1 σ k [ a t k + K s t ] . \varepsilon_\theta(\mathbf{s}_t, \mathbf{a}_t^k, k) = \frac{1}{\sigma_k} \bigl[\mathbf{a}_t^k + \mathbf{K}\mathbf{s}_t\bigr]. εθ(st,atk,k)=σk1[atk+Kst].
这正是公式中的结果:
ε θ ( s , a , k ) = 1 σ k [ a + K s ] . \varepsilon_\theta(\mathbf{s}, \mathbf{a}, k) = \frac{1}{\sigma_k} \bigl[\mathbf{a} + \mathbf{K}\mathbf{s}\bigr]. εθ(s,a,k)=σk1[a+Ks].
3.2 推理时(DDIM 采样收敛)
一旦网络学到这个“去噪器”,在推理/采样阶段也会收敛到 a = − K s \mathbf{a}=-\mathbf{K}\mathbf{s} a=−Ks 这个全局最小值(因为系统不需要多模态分布——这里实际上是单模态线性分布),最后等效于直接执行线性反馈。直观理解:
把动作视作被噪声扰动的“理想动作 − K s -\mathbf{K}\mathbf{s} −Ks”,网络学会如何去掉噪声。推理时,多步去噪迭代会逐渐把动作矫正回那条线性反馈策略上。
4. 轨迹预测( T p > 1 T_p>1 Tp>1)与隐式学习动态模型
文中还提到:当我们要预测未来多步动作(不只是下一步),比如 T p > 1 T_p>1 Tp>1,则a t + t ′ = − K ( A − B K ) t ′ s t , \mathbf{a}_{t+t'} = -\mathbf{K}(\mathbf{A} - \mathbf{B}\mathbf{K})^{t'}\,\mathbf{s}_t, at+t′=−K(A−BK)t′st,
在期望意义上忽略随机噪声 w t \mathbf{w}_t wt。这正是对“在未来 t ′ t' t′ 步后的状态 s t + t ′ \mathbf{s}_{t+t'} st+t′ 会是多少”做了一个线性推断,然后再乘 − K -\mathbf{K} −K 给出预测动作。要得到这个结果,意味着策略模型在多步预测时,隐式地学到系统的动态矩阵 A \mathbf{A} A 与反馈矩阵 − K -\mathbf{K} −K 如何在时序上推演——也就相当于学习了一个(与任务相关的)动态模型。
4.1 为什么要隐式学到动态模型?
- 如果我们只知道“一步 a t = f ( s t ) \mathbf{a}_t = f(\mathbf{s}_t) at=f(st)”,想预测“ a t + 1 \mathbf{a}_{t+1} at+1, a t + 2 \mathbf{a}_{t+2} at+2, … \dots …”就要先知道下一步状态 s t + 1 \mathbf{s}_{t+1} st+1。
- 对线性系统,有 s t + 1 = A s t + B a t \mathbf{s}_{t+1} = \mathbf{A}\mathbf{s}_t + \mathbf{B}\mathbf{a}_t st+1=Ast+Bat。
- 因此,多步预测公式中出现了 ( A − B K ) t ′ (\mathbf{A} - \mathbf{B}\mathbf{K})^{t'} (A−BK)t′ 这样的项,表示反复迭代系统动态。
- Diffusion Policy 若能准确地多步预测,就说明它“某种程度上”学到了这个递推关系。
- 对非线性或多模态系统,未来动作可能分布就更复杂(多个可能轨迹),扩散策略那时就需要更高的建模能力。
5. 示例
5.1 一个简单的 2D 线性系统
- 系统: s t = [ x t , x ˙ t ] ⊤ \mathbf{s}_t = [x_t,\,\dot{x}_t]^\top st=[xt,x˙t]⊤, a t \mathbf{a}_t at = scalar 加速度; A \mathbf{A} A 和 B \mathbf{B} B 是二维离散化矩阵。
- 线性策略: a t = − K x t − D x ˙ t \mathbf{a}_t = -K x_t - D \dot{x}_t at=−Kxt−Dx˙t(相当于 PD 控制),收敛到零点。
- 演示:用此 PD 控制器跑出多条轨迹,记录 ( s t , a t ) (\mathbf{s}_t, \mathbf{a}_t) (st,at)。
- 训练:Diffusion Policy 来模仿这些演示;
- 单步时:学习“ x ˙ \dot{x} x˙- K x Kx Kx”这样一个简单映射;
- 多步时:能预测出后续时刻的加速度也都会遵循这个线性反馈形式。
结果:如果系统确实是线性的,Diffusion Policy(不管看起来多强大、多模态)都能学到一致的、单模态的线性关系,真正收敛到 a = − K s \mathbf{a}=-\mathbf{K}\mathbf{s} a=−Ks。
5.2 若系统/策略是非线性的
- 如果在真实场景中, A \mathbf{A} A 或 B \mathbf{B} B并非常数矩阵,或者策略并不只是线性反馈,那么多步预测会出现更复杂的依赖关系。
- 同样地,如果存在多模态(比如有不同路径可以到达目标),Diffusion Policy就要切换到“多模态”功能来正确学习并预测不同未来轨迹——这就是文中说的“再次涉及多模态预测”。
6. 小结
与控制理论的衔接
- 在简单的线性系统 + 线性反馈策略场景下,扩散策略等价于学到“在动作空间里,从噪声中去噪回线性反馈解”。
- 这说明在这种简单场合下,“扩散”并不会破坏正确性或引入不必要的复杂性,它能收敛到与 LQR 等价的策略。
多步视野 ( T p > 1 ) (T_p>1) (Tp>1)
- 需要隐式地“学到”系统动态、甚至多模态可能性;
- 线性系统中表现为 a t + t ′ = − K ( A − B K ) t ′ s t \mathbf{a}_{t+t'} = -\mathbf{K}(\mathbf{A}-\mathbf{B}\mathbf{K})^{t'}\mathbf{s}_t at+t′=−K(A−BK)t′st;
- 非线性或多模态时,未来动作可能需要更丰富的预测能力。
意义
- 这是一个 sanity check:在一个可解析的场景(线性最优控制),扩散策略也会学到正确的线性映射。
- 与此同时,如果系统/策略更复杂,扩散策略也能发挥其强大的非线性或多模态建模潜力。
因此,这段阐述了当任务非常简单、用线性系统和线性反馈策略来生成演示时,Diffusion Policy 依然能轻松地学习到与 LQR 等价的行为,并在多步预测时隐式蕴含了系统的动态演化关系。这既为扩散策略在简单任务下的合理性作了背书,也为处理复杂非线性、多模态任务提供了扩展思路。
接下一篇:
论文笔记(四十七)Diffusion policy: Visuomotor policy learning via action diffusion (下)