深度⏱ ~4 min
里程碑
⭐ 为何重要

大规模离线 RL 抓取的代表(580k 抓取尝试),是 Google 真机抓取工业级里程碑。它是『大规模分布式 RL + 真机抓取』的奠基性工作,OpenAI Hand 同期引用,启发了后续大规模 robot RL 工作。

机器人Kuka
上真机
实时
输入模态vision
📍 演进位置
建立在
  • Learning Hand-Eye Coordination for Robotic Grasping with Deep Learning and La…
  • Dex-Net 2.0
  • PPO
催生

论文:Kalashnikov, Irpan, Pastor, Ibarz, Herzog, Jang, Quillen, Holly, Kalakrishnan, Vanhoucke, Levine(Google Brain + Google X + UC Berkeley). QT-Opt: Scalable Deep Reinforcement Learning for Vision-Based Robotic Grasping. CoRL 2018. arXiv:1806.10293. 🌐 · 闭源(数据/模型/代码均未公开)。

一句话直觉

让 7 个机械臂自己抓 58 万次,从失败里学会怎么抓。

秘诀是 off-policy Q-learning——历史抓取全保留反复用。

QT-Opt 之于抓取,就像实习生反复试错学手艺。

靠海量练习和从失败里学。

是什么·为什么

要解决的问题:让机械臂仅凭单目摄像头,从乱堆物体里抓东西。📎

而且要做闭环动态抓取。

机器人基于最新观测持续更新策略

优化长程抓取成功,不是看一眼选个抓姿就完事。

老办法:抓取有两条传统路线。

一是分析式(如 Dex-Net)。

用点云算 force-closure metric,选最佳抓取。

需要精确点云,open-loop(抓之前决策一次)。

二是行为克隆:从人类演示学。

但人类演示贵且不一致。📎

QT-Opt 的转身:直接用强化学习加大规模真机试错。

机器人自己抓几十万次,从失败里学。

做 closed-loop dynamic grasping。

绕过精确建模。

但要求真机能承受大量试错 + 算法能稳定 scale 到大数据集。

QT-Opt 之于抓取,就像投篮——投几千次,肌肉自然学会。

方法核心(大白话):让机械臂自己试错几十万次,所有数据都留着反复用。📎

算法核心是 Q-learning。

学一个函数 Q:给定当前画面和候选动作,打一个分。

分高表示"做这个动作,长程看能拿到多少累计奖励"。

动作空间是连续的(夹爪位置增量、方位、开/关)。

没法枚举所有动作求最大值。

所以用 CEM(交叉熵方法)来选最优动作:

先随机采一批动作样本。

用 Q 给它们打分。

选分数最高的几个。

用这几个估一个新高斯分布(更集中在好的方向)。

再从这个新高斯分布采一批。

重复两轮,最后选出来的动作就是当前的"最优抓"。

训练时所有 58 万次抓取都进 replay buffer

QT-Opt 反复重用(off-policy 的好处)。

策略本身不是单独的网络。

策略 = "拿当前 Q 函数,用 CEM 找 argmax"。

所以没有不稳的 actor 网络。

关键工程贡献·分布式异步系统

58 万次抓取数据量大,单机训不动。

Google 搭了分布式系统:

1000 个 Bellman updater 任务(算 target Q)。

10 个 training worker(算 gradient)。

一个大 replay buffer 数据库。

一个 parameter server。

最终训了约 1500 万 gradient step。

涌现的高阶策略:所有以下行为都自动从"优化抓取成功"涌现。

没有 reward shaping

singulation & pre-grasp manipulation

把物体从堆里拨出来再抓。

regrasping(检测到 grasp 不稳就松开重抓)。

handling dynamic objects(球滚出夹爪就跟)。

grasping in clutter(训练时 10 个物体,部署能抓更密集堆)。

📎

你会看到:96% 的抓取成功率(之前 Levine 2016 同类工作 78%)。

failure rate 降 4 倍。

且用更少数据。

off-policy 单独就 87%。

加 28k on-policy 数据联合 fine-tune 到 96%。📎

确立了"真机试错 + off-policy"范式。

后续 RT-1 等大规模真机工作都建立在这套范式上。

一句话类比:QT-Opt 之于抓取,就像老练的抓娃娃机师傅。

他试过几千次,知道哪个角度、哪个力度最稳。

还能"抓不住就重新抓"——这技能不是被教的,是练出来的。

怎么做

核心机制·off-policy continuous-action Q-learning + CEM📎

Bellman 目标(Eq.1):最小化 Q 的预测与 target 之间的距离。

target = r + γV(s')。

关键选择:D 用 cross-entropy 而非 MSE

因为 total returns 有界 [0,1],作者发现 cross-entropy 更稳(Appendix C)。

target networkPolyak averaging + clipped double Q-learning 的组合):

类似 TD3 思路但早于 TD3。

  • 第一个 target:θ 的 EMA,averaging constant 0.9999。
  • 第二个 target:第一个 target 的 lagged 版本,lag 约 6000 gradient steps。
  • target value:取两个 target network 的 min。

clipped double Q 防 overestimation。

为何不用 actor-criticDDPG/TD3 风格)

论文明确:actor-critic 在大规模 RL 任务里 notoriously unstable。

Henderson 2017 [18] 有论述。

跑 hyperparameter sweep 太贵。

QT-Opt dispenses with the need to train an explicit actor。

只训 Q-function,policy 由 Q 隐式诱导。

CEM 做 arg max(核心,Sec.4.2):

连续动作空间下 $\arg\max_a Q(s,a)$ 不可解析。

DDPG 用 amortized actor network(不稳)。

NAF 要求 Q 凸(grasping 远非凸——"抓物体方向 Q 高,物体间隙方向 Q 低")。

QT-Opt 用 CEM 随机优化:

每 iter 采 N 个样本 → 选 top-M → fit Gaussian → 下一 iter 从该 Gaussian 采 N 个。

配置:N=64, M=6, 2 iterations。

简单、易并行、对低维问题抗局部最优。

同时用于训练时算 target + 真机部署时选 action。

恢复的 policy:$\pi(s) = \arg\max_a Q_{\bar\theta_1}(s,a)$(CEM 实现)。

MDP for grasping·精确 state/action/reward(Sec.5):

State s

RGB image 472×472。

PDF 明确 over-the-shoulder monocular RGB,无 depth。

gripper 二值状态(open/closed)。

gripper 离地高度。

附录 ablation:image only 53% / +gripper status 58% / +height 70%。

加 height +5 个点,证明 low-dim state feature 关键。

Action a:3D Cartesian 夹爪位置增量。

2D 方位角变化的 sine-cosine 编码。

二值 open/close 命令。

终止 episode 命令。

Reward:episode 末"夹爪含物体 + 高于阈值"→ r=1,否则 0。

稀疏 + delayed。

成功判定用 background subtraction。

另加 per-step penalty r=−0.05(鼓励快速抓取),最多 20 步。

Q-network:1.2M 参数 large CNN

image 进 conv stack 底部。

action + gripper status + height 喂进 stack 中间层。

mid-stack fusion,不是简单 concatenate。

大规模真机训练·工程细节(Sec.5):

7 个 KUKA LBR IIWA + 二指夹爪。

7×24 不间断。

每个 cell 头顶 over-the-shoulder RGB 相机。

训练 bin 4–10 个物体。

物体每 4 小时(营业时间)人工替换,夜间/周末不动。

数据规模:4 个月,约 800 robot hours。

累计 580k+ grasps(off-policy 全保留)+ 28k on-policy。

Bootstrap:完全随机策略在 unconstrained action space 下成功率太低。

用一个 weak scripted exploration policy(偏向好抓姿,约 15–30% 成功率)启动。

当学到的 QT-Opt 策略达 50% 成功率时切换。

测试物体与训练物体严格分离。

Distributed Asynchronous QT-Opt(Sec.4.3):

数据量大 → 单机训不动 → 分布式异步系统:

  • Distributed replay buffer database:load 历史 disk 数据 + 接收 7 个真机在线数据。
  • 1000 个 Bellman updater jobs:从 replay buffer 抽 transition。

跑 CEM 算 target Q,存进第二个 training ring buffer。

  • 10 个 training worker:从 ring buffer 抽 labeled transition。

算 gradient,异步发给 parameter server。

  • 训练步数:经验上需最多 15M gradient steps。

异步副作用:部分样本是 lagged Q 网络标的(Appendix F.4 讨论)。

关键 trick·off-policy 数据重用 + joint finetune

所有 580k grasps(含早期失败策略产生的)进 replay buffer。

QT-Opt 持续重用。

Joint finetune = 在 off-policy 训练后期。

同时用最新 policy 在真机采 on-policy 数据(28k grasps)联合训练。

作者认为这提供 hard negative mining 机制。

让 policy 快速纠正错误的乐观外推。

off-policy 单独 87% → +on-policy 28k 后 96%。📎

常见误区(先抛一个,完整版见末尾):"QT-Opt 是 DDPG 的应用吧?"

不是。DDPG 是 actor-critic,有显式 actor 网络。

QT-Opt 没有显式 actor,policy 由 Q 隐式诱导(CEM 找 argmax)。

论文明确说 actor-critic 在大规模 RL 里 notoriously unstable。📎

深度

Loss 选择 cross-entropy 的精确推导(Appendix C):

total returns 有界 [0,1]。

作者实测 cross-entropy 比 MSE 更稳。

直觉:cross-entropy 对极端错误预测惩罚更重,更适合稀疏 reward 场景。

双 target network 的细节

$\bar\theta_1$:$\theta$ 的 EMA,averaging constant 0.9999。

$\bar\theta_2$:$\bar\theta_1$ 的 lagged 版本,lag 约 6000 gradient steps。

target:$V(s') = \min_{i=1,2} Q_{\bar\theta_i}(s', \arg\max_{a'} Q_{\bar\theta_1}(s', a'))$。

min 是 clipped double Q-learning(van Hasselt),防 overestimation bias。

EMA + lagged 的组合像 TD3(但早于 TD3 发表)。

CEM 的精确步骤(Sec.4.2):

  1. 初始化搜索分布 $\mathcal{N}(\mu_0, \Sigma_0)$(通常均匀或先验)。
  2. 每 iter:从当前 Gaussian 采 N=64 个动作样本。
  3. 用 Q 给它们打分。
  4. 选分数最高的 M=6 个(top-M)。
  5. 用 top-M 重新估 $\mu_{t+1}, \Sigma_{t+1}$(maximum likelihood)。
  6. 重复 2 iterations。
  7. 输出 $\mu_2$ 作为最终动作。

为什么是 2 iterations,N=64, M=6

论文实测这组配置效果好。

更多 iter / 更多样本边际收益小,但延迟变长。

低维 action space(QT-Opt 是 7 维)不需要太多 iter。

CEM 同时用于训练 target 和部署 action

训练时算 $V(s') = \max_a Q(s',a)$,CEM 找 max。

部署时算 $\pi(s) = \arg\max_a Q(s,a)$,CEM 找 argmax。

统一机制,无额外架构。

State ablation 的关键发现(Appendix A):

image only:53%。

+gripper status:58%。

+gripper status + height:70%。

height 最关键 +12 个点。

为什么?height 告诉 Q "夹爪离地多高"——是抓后抬起判成功的核心信号。

没 height,Q 学不会"成功抓起"这个 reward 条件。

Joint finetune 的机制(Tab.1):

off-policy 单独:87%。

off-policy + on-policy 28k joint finetune:96%。

作者认为 on-policy 数据提供 hard negative mining。

最新 policy 在某些状态乐观外推。

on-policy 在这些状态采到失败样本,纠正外推。

9 个百分点的提升全部来自这 28k on-policy(约 5% 数据量)。

实验结果(Sec.6,PDF Tab.1 关键数字)

评估协议:每 robot 102 次抓取(test 协议)+ 单 robot 清空含 28 物体的 bin(bin emptying)。

QT-Opt(off + on-policy)580k off + 28k on:96%(test),88%/88%/76%(bin empty 10/20/30)。

Levine et al. 2016 原数据 900k:78%(test),76%/72%/72%(bin empty 10/20/30)。

QT-Opt(off-policy only)580k off:87%。

Levine 2016 改用 QT-Opt 数据 400k:67%。

关键结论

96% vs 78%:QT-Opt(on-policy finetune 版)比 Levine 2016(同类 self-supervised)failure rate 降 4 倍,且用更少数据。

off-policy 87% > Levine 78%:连纯 off-policy(无新数据采集)都超 Levine。

off-policy 重用是核心价值,能快速 iter 超参/架构无需重采数据。

与 Dex-Net 的对偶关系

Dex-Net(规划式):点云 → 物理 metric → 选最佳。

QT-Opt(RL 式):试错学 Q。

Dex-Net 数据是合成的(上亿),QT-Opt 是真机(58 万)。

Dex-Net 用 depth camera,QT-Opt 用 monocular RGB。

Dex-Net 是 open-loop(一次决策),QT-Opt 是 closed-loop dynamic。

Dex-Net 无涌现能力,QT-Opt 自动涌现 regrasp/pre-grasp/singulation。

现代抓取系统常结合两者:用 Dex-Net/AnyGrasp 出候选姿态,用 RL/IL 微调

Limitations

  1. 数据成本极高:58 万次真机抓取 = 7 机械臂 × 4 个月 × 24/7。

磨损、电力、人工重置,只有大公司做得到。

  1. 只针对 parallel-jaw:没扩展到灵巧手(24 DoF 抓取空间太大)。
  2. 闭源:数据、模型、代码都没公开。学术复现困难。
  3. 物体多样性受限:bin 里是预设物体,未见物体泛化有限。
  4. 单臂、固定 bin:没扩展到 mobile manipulator / 人形。

研究者视角

图谱定位:QT-Opt 是 T14 抓取线索转折 2 的代表——真机大规模 RL 抓取的开山。📎

它和 Dex-Net 形成"RL 式 vs 规划式"对偶路线。

第一次证明真机大规模 RL(58 万次)+ off-policy 重用 + on-policy finetune 能学到 96% 成功率。

继承 / 催生

  • 建立在:Q-learning、CEM(Rubinstein & Kroese)、double Q-learning(van Hasselt)、Polyak averaging、Dex-Net 系列、Levine 2016 hand-eye coordination(QT-Opt 前作,直接对比 baseline)。
  • 同期/前作:Pinto 2016(50K tries grasping)、Zeng 2018(push+grasp Q-learning)。
  • 引出:RT-1(Google 大规模真机 IL);GraspNet-1Billion(数据 benchmark);AnyGrasp(工业化);QT-Opt 的 distributed 系统范式被 IMPALA/Seed RL 继承。
  • 与 P-OpenAIHand-2018(同年的 sim2real 抓取工作)形成对照:QT-Opt 走真机试错,OpenAI Hand 走仿真 + DR

副产品·确立两个范式

  1. "真机试错 + off-policy"范式:之后 Google 后续 grasping 工作、RT-1(大规模真机 IL)都建立在这个范式上。证明"数据 > 算法"——足够多的真机数据,简单算法(CEM-based Q-learning)也能超越复杂规划。
  2. closed-loop dynamic grasping > open-loop planning:传统"看一眼选 grasp → open-loop 执行"无法做 pre-grasp manipulation / regrasp / 响应扰动。RL closed-loop 自动学到这些,且这些行为不可从静态 grasp selection 涌现。

Open problems

  1. 数据成本的根治:58 万次真机抓取的代价只有 Google 这种大公司付得起。[未确认]

能否用仿真预训练 + 少量真机 fine-tune 把数据成本压下去?OpenAI Hand 走的是这条路。

  1. 扩展到灵巧手:原 paper 只 parallel-jaw。[未确认]

24 DoF 抓取空间太大,CEM 的 N=64/M=6 可能不够。

  1. 未见物体泛化:训练 bin 是预设物体,test 集虽分离但仍属 Google 物体分布。[未确认]

GraspNet-1Billion、AnyGrasp 把数据规模推到 10 亿+ 来扩泛化。

常见误区

"QT-Opt 是 DDPG 的应用" —— 错。

DDPG 是 actor-critic,有显式 actor 网络。

QT-Opt 没有显式 actor,policy 由 Q 隐式诱导(CEM 找 argmax)。

论文明确说 actor-critic 在大规模 RL 里 notoriously unstable。

QT-Opt 是只训 Q-function 的 value-based 方法,CEM 替代 actor。📎

"QT-Opt 用 depth camera" —— 错。

PDF 明确 over-the-shoulder monocular RGB(472×472),无 depth。

QT-Opt 用单目 RGB,与 Dex-Net 那种依赖 depth camera 的规划式路线形成对比。

"96% 全靠 58 万次 off-policy 数据" —— 部分错。

off-policy 单独是 87%。

96% 来自 off-policy 580k + on-policy 28k 联合 fine-tune。

那 9 个百分点全靠这 28k on-policy(约 5% 数据量)。

off-policy 重用是底座,joint finetune 的 hard negative mining 是关键 +9 提升。

"regrasp / pre-grasp manipulation 是 reward shaping 教出来的" —— 错。

论文最强论点之一:所有这些行为都自动从"优化抓取成功"涌现,无任何 reward shaping。

closed-loop dynamic grasping 的最大价值就是涌现这些技能;open-loop planning 学不出来。

"QT-Opt 能扩展到灵巧手" —— 未必。

原 paper 只 parallel-jaw(7 维动作)。

CEM N=64/M=6 在 7 维工作良好;24 DoF 灵巧手的抓取空间太大,CEM 可能不够。

扩展到灵巧手需要新的 action selection 机制(如 diffusion policy)。

检查点

Q1

QT-Opt 的策略不是单独的 actor 网络。那它怎么决定"下一步做什么动作"?CEM 在这里干什么?

💡 参考答案

  • QT-Opt 只训 Q-function(一个给状态-动作打分的函数),没有显式 actor。
  • 策略 = 拿当前 Q 函数,用 CEM 找 argmax:随机采一批动作 → 用 Q 打分 → 选 top 几个 → 用它们估新高斯分布(更集中在好方向)→ 再采 → 重复两轮。
  • CEM 在这里替代了 actor 网络的角色——连续动作空间没法枚举求 max,CEM 是一种随机优化方法。
Q2

QT-Opt 训了 58 万次真机抓取。off-policy 数据重用是什么意思?为什么"早期失败策略产生的抓取"也能拿来训?

💡 参考答案

  • off-policy 重用:所有历史抓取(不管哪个版本的策略产生的)都进 replay buffer,QT-Opt 后续训练时反复抽出来用。
  • 失败也算数据:Q-function 学的是'状态-动作→累计奖励'的映射;失败样本提供'这样做拿不到 reward'的信号,是 Q 学习负梯度来源。
  • 对比 on-policy:on-policy 只能用当前策略采的数据,旧策略数据要丢;off-policy 全保留,数据效率高得多。
Q3

off-policy 单独 87%,加 28k on-policy 联合 fine-tune 到 96%。这 9 个百分点的提升全靠 5% 的数据量。作者认为这 28k 提供了什么机制?

💡 参考答案

  • 机制:hard negative mining。最新 policy 在某些状态乐观外推(认为某些动作好但实际不行)。
  • on-policy 数据在这些'乐观外推的状态'上采到失败样本,直接纠正 Q 的错误外推。
  • 关键:28k 是少量但精准——专门针对当前 policy 的盲点;不能光靠 off-policy 旧数据补,因为旧数据没覆盖到这些状态。
Q4

用"投篮"或"实习生学手艺"或你自己举的类比,向一个没学过机器人的朋友解释 QT-Opt 是怎么让机械臂学会抓东西的。

💡 参考答案

  • 靠海量练习(58 万次)而非精巧算法:简单 Q-learning + CEM 在大规模真机数据上跑通,证明'数据 > 算法'。
  • regrasp/pre-grasp 等技能是涌现的、不是教的:reward 只奖励'抓起来',但 policy 自动学会'抓不住就松开重抓'、'把物体从堆里拨出来'。
  • off-policy 重用——失败也算数据反复学:所有 58 万次(含早期失败策略产生的)进 replay buffer 反复用。
Q5

QT-Opt 涌现了 regrasping(抓不住就松开重抓)等高阶技能。为什么传统"看一眼选 grasp、open-loop 执行"的 Dex-Net 式方法学不出这些技能?

💡 参考答案

  • open-loop planning 的本质缺陷:看一眼、决策一次、闭眼执行——执行过程中如果物体滑动或抓姿不对,没法修正。
  • closed-loop dynamic:基于最新观测持续更新策略,发现 grasp 不稳就松开重抓,物体滚出夹爪就跟。
  • 关键:这些行为不可从静态 grasp selection 涌现——必须给 policy 一个'持续观察+持续决策'的闭环,让它自己从 reward 信号里悟出来。

FAQ

Q1:QT-Opt 开源吗?能复现吗?

不能。数据、模型、代码都没公开。🌐学术复现需 7 机械臂农场(4 个月 24/7),门槛极高。想理解算法本身可跑 sim 版(PyBullet + 简化 QT-Opt,CEM N=64/M=6/2 iter 是关键超参)。

Q2:QT-Opt 是 DDPG/TD3 的变体吗?

不是。DDPG/TD3 是 actor-critic,有显式 actor 网络。QT-Opt 没有显式 actor,policy 由 Q 隐式诱导(CEM 找 argmax)。📎论文明确说 actor-critic 在大规模 RL 里 notoriously unstable。

Q3:为什么 CEM 只用 2 iterations、N=64、M=6?

论文实测这组配置效果好。更多 iter / 更多样本边际收益小但延迟变长。低维 action space(QT-Opt 是 7 维)不需要太多 iter。📎高维问题(如灵巧手 24 DoF)可能不够。

Q4:96% 成功率怎么算的?

test 协议:每 robot 102 次抓取,物体扔回 bin。episode 末"夹爪含物体 + 高于阈值"判成功,用 background subtraction。📎另有 bin emptying 协议(清空含 28 物体的 bin,最多 30 次抓取)。

Q5:QT-Opt 现在还是 SOTA 吗?

单臂 parallel-jaw 抓取的"真机 RL"路线上仍是奠基工作。但现代抓取系统常结合规划式(Dex-Net/AnyGrasp 出候选姿态)和学习式(RL/IL 微调)。[未确认]大规模数据 benchmark 如 GraspNet-1Billion 把数据推到 10 亿+ 来扩泛化。