枢纽
机器人Kuka
上真机
实时
输入模态vision

PI-QT-Opt:让机器人「学会预测下一步」以掌握 297 项任务

Kuang-Huei Lee, Ted Xiao, Adrian Li, Paul Wohlhart, Ian Fischer, Yao Lu(Google Research)。CoRL 2022 / arXiv:2210.08217v2 (2022-11-25)。 foundation_modelsRL × 表征学习多任务泛化

🧠 一句话心智模型:训练一个能同时做 297 项家务任务(move/pick/knock × 17 个厨房对象)的机器人策略,与其只让它学「这个动作好不好」(Q 值),不如顺带让它预测「我做完这个动作后,下一帧会变成什么样」——这个「预测能力」(predictive information)作为辅助损失,强迫 CNN 学出真正理解物理动态的视觉表征,结果 Q-learning 也跟着起飞。

🎯 为什么重要:通用机器人需要「举一反三」,而不仅仅是「熟能生巧」

2022 年 Google 的 QT-Opt 已经能在仿真 + 真机上抓取数千对象。但当任务从「一个抓取」扩展到「3 类技能(move/pick/knock)× 17 个厨房对象 = 297 个任务」时,传统 Q-learning 表征开始崩:

多任务 RL 的核心矛盾:用一个网络同时学 297 个任务,最怕的是「表征过拟合到某个任务的 Q 值」——网络只学会了「这件事在任务 A 里好还是坏」,而不是「物理上发生了什么」。一旦换成 unseen 任务或 unseen 对象,Q 值估计就崩。

PI-QT-Opt 的回答来自信息论:「预测信息」$I(\text{past}; \text{future})$——过去和未来之间的互信息。如果一个表征能从「当前状态 + 动作」预测出「下一状态 + 下一最优动作 + 奖励」,那它一定抓住了环境的动态结构(dynamics),而不是某个任务专用的 trick。这种表征天然可以迁移到新任务、新对象、甚至 sim→real。

纯 QT-Opt(基线) 视觉 CNN 只被一个信号驱动: TD-error(Q 值误差) → 表征只为「这个任务好/坏」服务 → 新任务、新对象、sim→real 全崩 "过拟合到 Q 函数" PI-QT-Opt(本文) 视觉 CNN 被两个信号驱动: ① TD-error(Q 值) ② CEB 对比损失(预测信息) → 表征抓的是「物理动态」 "理解世界" 而非 "理解任务"
图 1:差别就一个辅助损失——但表征的「语义粒度」从「任务相关」提升到「世界动态」。

💡 核心思想:用 Conditional Entropy Bottleneck 学「压缩的预测信息」

「预测信息」$I(X; Y)$ 中,过去 $X = (s_t, a_t)$,未来 $Y = (s_{t+1}, a_{t+1}^*, r)$。直接最大化这个互信息有个坑:表征会偷懒复制整个过去(因为 $H(X)$ 增长比 $I(X; Y)$ 快)。所以论文沿用 Lee et al. 2020 的做法,用 Conditional Entropy Bottleneck (CEB) 强迫表征 $Z$ 关于 $X$ 被压缩:

$$ \text{CEB} = \min_Z \, \beta \, I(X; Z | Y) - I(Y; Z) $$
X(过去) 状态 s_t + 动作 a_t 共享 Conv 图像 → 特征 所有 conv 参数 在两路损失间 共享 Q-head MLP 输出 Q(s,a) → TD-error 损失 Forward Encoder e(z|x) → CEB 损失 Y(未来) s_{t+1}, a*_{t+1}, r Backward Enc. b(z|y) 📋 任务上下文(图像 overlay 或语言)做条件
图 2:PI-QT-Opt 系统结构。共享 conv 提特征,两个头各司其职:Q-head 学「值」,Forward encoder 学「压缩的预测信息」。后者通过 InfoNCE 对比损失拉近 (s_t,a_t) 与 (s_{t+1},r),推远 batch 内其他样本。

🛠️ 三个工程上必须搞对的细节

设计心智为什么必要
① 任务上下文条件化给 Q 函数和 PI 头都注入一个「任务向量」——可以是图像 overlay(在初始图上叠颜色块标对象位置),也可以是语言嵌入一套参数管 297 个任务,必须有任务信号;论文发现简单的 additive conditioning 就够用,不需要 MT-Opt 那种「每任务一个 head」的复杂架构
② 共享 conv、分头 MLP两个损失共享 conv 参数(强制表征同时服务两个目标),但各有一个 MLP 让损失能 specialize共享太少→PI 失去对视觉表征的影响力;共享太多→两目标相互干扰。MLP 解耦是经验上的甜蜜点
③ CEB 而非 plain InfoNCE用 Conditional Entropy Bottleneck,多了一个 $\beta I(X;Z|Y)$ 项强迫 $Z$ 关于 $X$ 压缩避免表征「复制整个过去」偷懒——这是 plain 互信息最大化的常见 bug。$\beta$ 小=压缩弱、信息多;论文用 von Mises-Fisher 分布参数化 $e(z|x), b(z|y)$
🔮 直觉:为什么「预测信息」对多任务/泛化这么关键?
单任务 RL 里,表征只要能区分「这个 (s,a) 在这个任务里值多少分」就够。但多任务 RL 里,同一个 (s,a) 在不同任务里值差异巨大——表征必须抽象出「物理上发生了什么」(抓到了吗?对象移动了吗?),才能在 Q 头前加个任务条件就给出正确 Q 值。预测信息正是这种「物理抽象」的最大化。论文 §5.3 用数据验证:成功 episode 的 $I(X;Y)$ 估计显著高于失败 episode;TD-error 高的 episode 几乎都失败且 PI 低。

📊 结果:训练 +20~28%,真机 +46~64%

实验(仿真,训练任务)QT-OptPI-QT-Opt相对提升
Move Skill(246 任务)baseline+20% (rel.)训练全程一致领先
SayCan 297 任务(全技能合一)baseline+25% (rel.)最复杂的设定,PI 收益最大
Pick / Knock / Instance Grasping / 6-Objectbaseline一致提升见 Fig.3 各曲线
Zero-shot 泛化(仿真,未见任务)QT-OptPI-QT-Opt相对提升
Move Skill held-out 任务显著高Fig.4(a)
Pick Skill held-out 对象显著高Fig.4(b) — 验证「对象泛化」
Knock Skill held-out 对象显著高Fig.4(c)
SayCan 297 任务 held-out+28% (rel.)Fig.4(d) — 大综合设定

真机部署(sim→real,Table 1)——只在仿真训练(用 RetinaGAN/CycleGAN 做图像翻译),直接部署到 Everyday Robots 机械臂:

真机任务PI-QT-Opt 成功率QT-Opt 成功率相对提升
SayCan Move("把 A 移到 B 旁")22.9 ± 8.4%13.93 ± 3.2%+64.4%
SayCan Pick(拾取对象)42.0 ± 9.9%28.7 ± 8.0%+46.6%
SayCan Knock(敲倒罐子)54.6 ± 2.4%36.2 ± 11.6%+50.7%
关键洞察:PI-QT-Opt 在仿真上的提升是「一致 +20%」级别,但到了真机变成「一致 +50~64%」级别——差距被 sim-to-real 放大了。这说明:基线 QT-Opt 的瓶颈不是「容量不够」而是「表征抓的是仿真特有的纹理/统计」;PI 损失强迫表征抓物理动态,而物理动态在 sim 和 real 是不变的,所以泛化得更远。

🌐 在领域中的位置

QT-Opt(单任务大规模抓取) MT-Opt(多任务,多头 + 数据路由) PI-QT-Opt(多任务,单头 + 表征学习)⭐ RT-1 / RT-2(Transformer + 大数据多任务) RT-X / Open X-Embodiment(跨形态跨数据)

PI-QT-Opt 是 Google 「机器人通用智能」路线的关键中间节点。它验证了一个核心论点:表征学习是规模化的瓶颈,而非 RL 算法本身。这条思路后来被 RT 系列(RT-1 用 Transformer 作骨干、RT-2 用 VLM 作骨干)进一步推向极端——本质上都是「更好的表征 + 大规模数据」。PI-QT-Opt 也证明:在 VLA 出现之前,纯 RL + 表征学习就能做到 297 个真机任务,这是当时单一策略覆盖任务数的天花板。

❓ 常见误区

PI-QT-Opt 是新 RL 算法吗?

不是。它就是 QT-Opt(off-policy actor-critic + CEM)+ 一个辅助损失。RL 算法部分一字未改。它证明的是「表征质量比 RL 算法的细节更重要」——论文甚至提到 SAC 和 PI-SAC 在这些任务上成功率接近 0,说明「选对基础算法(QT-Opt)+ 加对表征损失(PI)」缺一不可。

「预测信息」是不是就是「世界模型」/model-based RL?

不是。世界模型(Dreamer、PlaNet)显式重建未来状态并在 rollout 时用它规划。PI-QT-Opt 只学一个压缩的潜在表征 $Z$,最大化它与未来 $Y$ 的互信息,不重建、不 rollout——它只是用 PI 作「表征正则」。这相当于「不开世界模型的引擎,但偷它的表征学习信号」。所以推理时无额外开销。

为什么必须用 CEB?plain InfoNCE 不行吗?

plain InfoNCE 只最大化 $I(Y; Z)$,会让 $Z$ 把 $X$ 全部「塞进去」(因为 $H(X)$ 增长比 $I(X; Y)$ 快,把 $X$ 整个复制进 $Z$ 总是有用的)。这等于表征退化成原图的副本,丧失压缩和泛化。CEB 加的 $\beta I(X; Z | Y)$ 项就是惩罚 $Z$ 携带太多与 $Y$ 无关的 $X$ 信息——「只保留对预测未来有用」的过去信息。

297 个任务是不是太少了?现在 RT-X 都几百万 episode。

2022 年的 297 个真机任务是当时单策略的上限。RT-1 (2022-12) 之后用了 Transformer 骨干 + 大规模真机数据,覆盖更广。但 PI-QT-Opt 的论点(「表征是瓶颈」)被后续工作完全继承——RT-2 用 VLM 表征、π0 用 VLM + flow matching,本质都是把表征做得更好。PI 辅助损失是这条路线的早期证据。