Q1:QT-Opt 开源吗?能复现吗?
不能。数据、模型、代码都没公开。🌐学术复现需 7 机械臂农场(4 个月 24/7),门槛极高。想理解算法本身可跑 sim 版(PyBullet + 简化 QT-Opt,CEM N=64/M=6/2 iter 是关键超参)。
论文: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 network(Polyak averaging + clipped double Q-learning 的组合):
类似 TD3 思路但早于 TD3。
clipped double Q 防 overestimation。
为何不用 actor-critic(DDPG/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):
数据量大 → 单机训不动 → 分布式异步系统:
跑 CEM 算 target Q,存进第二个 training ring buffer。
算 gradient,异步发给 parameter server。
异步副作用:部分样本是 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):
为什么是 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:
磨损、电力、人工重置,只有大公司做得到。
图谱定位:QT-Opt 是 T14 抓取线索转折 2 的代表——真机大规模 RL 抓取的开山。📎
它和 Dex-Net 形成"RL 式 vs 规划式"对偶路线。
第一次证明真机大规模 RL(58 万次)+ off-policy 重用 + on-policy finetune 能学到 96% 成功率。
继承 / 催生:
副产品·确立两个范式:
Open problems:
能否用仿真预训练 + 少量真机 fine-tune 把数据成本压下去?OpenAI Hand 走的是这条路。
24 DoF 抓取空间太大,CEM 的 N=64/M=6 可能不够。
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)。
QT-Opt 的策略不是单独的 actor 网络。那它怎么决定"下一步做什么动作"?CEM 在这里干什么?
💡 参考答案
QT-Opt 训了 58 万次真机抓取。off-policy 数据重用是什么意思?为什么"早期失败策略产生的抓取"也能拿来训?
💡 参考答案
off-policy 单独 87%,加 28k on-policy 联合 fine-tune 到 96%。这 9 个百分点的提升全靠 5% 的数据量。作者认为这 28k 提供了什么机制?
💡 参考答案
用"投篮"或"实习生学手艺"或你自己举的类比,向一个没学过机器人的朋友解释 QT-Opt 是怎么让机械臂学会抓东西的。
💡 参考答案
QT-Opt 涌现了 regrasping(抓不住就松开重抓)等高阶技能。为什么传统"看一眼选 grasp、open-loop 执行"的 Dex-Net 式方法学不出这些技能?
💡 参考答案
不能。数据、模型、代码都没公开。🌐学术复现需 7 机械臂农场(4 个月 24/7),门槛极高。想理解算法本身可跑 sim 版(PyBullet + 简化 QT-Opt,CEM N=64/M=6/2 iter 是关键超参)。
不是。DDPG/TD3 是 actor-critic,有显式 actor 网络。QT-Opt 没有显式 actor,policy 由 Q 隐式诱导(CEM 找 argmax)。📎论文明确说 actor-critic 在大规模 RL 里 notoriously unstable。
论文实测这组配置效果好。更多 iter / 更多样本边际收益小但延迟变长。低维 action space(QT-Opt 是 7 维)不需要太多 iter。📎高维问题(如灵巧手 24 DoF)可能不够。
test 协议:每 robot 102 次抓取,物体扔回 bin。episode 末"夹爪含物体 + 高于阈值"判成功,用 background subtraction。📎另有 bin emptying 协议(清空含 28 物体的 bin,最多 30 次抓取)。
单臂 parallel-jaw 抓取的"真机 RL"路线上仍是奠基工作。但现代抓取系统常结合规划式(Dex-Net/AnyGrasp 出候选姿态)和学习式(RL/IL 微调)。[未确认]大规模数据 benchmark 如 GraspNet-1Billion 把数据推到 10 亿+ 来扩泛化。