这两者都是机器人策略模型,用于从观测(如图像)预测动作,但采用了完全不同的技术路线。
Diffusion Policy(扩散策略)
核心思想
将动作生成视为去噪过程:
随机噪声 → 逐步去噪 → 精确动作序列
工作流程
-
训练阶段:
- 向真实动作数据逐步添加噪声(前向扩散)
- 学习一个神经网络来逆向预测并去除噪声
-
推理阶段:
输入: 视觉观测 o_t 初始化: 随机噪声 a_T ~ N(0,I) 迭代去噪: a_{T-1}, a_{T-2}, ..., a_0 输出: 去噪后的动作序列
特点
- ✅ 能建模多模态分布(一个观测对应多种合理动作)
- ✅ 生成的动作轨迹平滑连贯
- ✅ 对噪声数据鲁棒
- ❌ 推理速度较慢(需多步去噪迭代)
Transformer Policy(Transformer 策略)
核心思想
利用自注意力机制建模序列依赖关系:
历史观测-动作序列 → Transformer编码器 → 预测下一动作
典型架构(如 ACT、Octo)
视觉编码器(CNN/ViT) → 观测token
历史动作 → 动作token
↓
Transformer层(自注意力 + 交叉注意力)
↓
动作解码器 → 预测动作
特点
- ✅ 推理速度快(单次前向传播)
- ✅ 长时序建模能力强
- ✅ 可以处理多模态输入(视觉 + 本体感知 + 语言)
- ❌ 对多模态动作分布建模能力较弱
- ❌ 可能生成不连贯的动作
关键区别对比
| 维度 | Diffusion Policy | Transformer Policy |
|---|---|---|
| 生成方式 | 迭代去噪(多步) | 直接回归(单步) |
| 多模态能力 | 强(天然支持) | 弱(需特殊设计) |
| 推理速度 | 慢(10-100 步) | 快(1 步) |
| 动作平滑性 | 优秀 | 需额外正则化 |
| 长期依赖 | 一般 | 强(注意力机制) |
| 典型应用 | UMI, 精细操作 | ACT, 长序列任务 |
实际应用场景
选择 Diffusion Policy:
- 需要生成平滑轨迹的任务(如绘画、倒水)
- 存在多种合理解的任务(如抓取可以从不同方向进行)
- UMI 项目就是典型案例
选择 Transformer Policy:
- 需要长时序规划的任务(如多步骤组装)
- 实时性要求高的场景
- 需要整合语言指令的任务(如 RT-2)
混合方案
最新研究也在探索结合两者优势:
- 用 Transformer 处理长序列上下文
- 用 Diffusion 生成短期精细动作
例如:Transformer编码历史 → Diffusion解码动作序列