如何加速评估?
下面介绍关于如何加快通用机器人系统评估的想法。
方法之一是分别对泛化问题和机器人进行研究。其实深度学习社区已经做到了这一点。大多数计算机视觉和生成建模研究人员并不直接在实际机器人上测试他们的想法,而是期盼一旦他们的模型获得强大的泛化能力,那么它将快速地迁移到机器人上。在计算机视觉领域开发的 ResNets 极大地简化了许多机器人视觉运动建模选择。想象一下,如果一名研究人员每次想尝试不同的神经网络架构时都必须在真实的机器人上测试他们的想法!另一个成功案例是 CLIPort,它将图像 - 文本模型强大的多模式泛化能力与用于抓取规划的基本几何推理解耦。
我们可以进一步将 RL 的技术堆栈分为「模拟玩具环境」、「模拟机器人」和「真实机器人」三层(按评估难度的增加顺序排列)。
在金字塔的底层,是一般的基准,比如 Kaggle 竞赛的基准。往上走,是一组「玩具控制问题」,以「裸机」的方式研究问题,只有模拟器和神经网络运行,所有与真实世界机器人相关的代码,如电池管理等都不存在。沿着金字塔再向上走,就来到更特定领域,与你试图解决的问题更相关。例如「模拟机器人」和「真实机器人」可能用于相同的任务,并重用相同的底层机器人代码。模拟玩具环境可用于研究一般算法,但与最终机器人领域重叠的较少。在「评估金字塔」的顶部,是我们试图解决的真实机器人任务。直接迭代这个过程非常慢,因此我们都希望在这里花费尽可能少的时间。我们希望,在较低层次上训练和评估的基础模型能够帮助了解哪些想法有效,而不必在顶层进行每一次评估。
同样,该领域已经以这种解藕的方式运作。大多数有兴趣为机器人做出贡献的人不一定会操控机器人。他们可能会训练最终可能对机器人有用的视觉表示和架构。当然,去耦合的缺点是感知基准的改进并不总是对应于机器人能力的改进。例如正在改进语义分割或视频分类准确性的 mAP 指标,甚至是无损压缩基准(理论上最终应该有所贡献),我们不知道表示目标的改进在实际上如何与下游任务的改进产生映射。所以最终必须在端到端系统上进行测试,以了解真正的瓶颈在哪里。
Google 曾发表过一篇很酷的论文《Challenging Common Assumptions in Unsupervised Learning of Disentangled Representations》,他们证明了许多完全无监督的表示学习方法不会在下游任务中带来显著的性能改进,除非我们正在执行评估和选择模型使用的是自己关心的最终下游标准。
论文地址:https://arxiv.org/pdf/1811.12359.pdf
另一种降低评估成本的方法是确保数据收集和评估过程一致。我们可以同时收集评估数据和专家操作数据。我们可以通过一定的干预来收集 HG-dagger 数据,这样就可以收集有用的训练数据。同时,每个 episode 的平均干预次数大致可以告诉我们该策略是否够好。我们还可以观察标量指标,而不是二项式指标,因为这些指标的每个 episode 产生的信息比单次成功 / 失败更多。
使用 RL 算法进行自主数据收集是将评估和数据收集相结合的另一种方法,但该方法需要我们对 episode 进行人工评分,或者使用精心设计的奖励函数。所有这些方法都需要在现实世界中部署大量机器人,这仍然会陷入在现实世界中不断迭代的泥潭。
让评估算法更快的方法是改进 sim-to-real 的迁移算法。我们可以并行模拟许多机器人,这样就不会再受约束。Mohi Khansari、Daniel Ho 和 Yuqing Du 等人开发了一种被称为「任务一致性损失(Task Consistency Loss)」的技术,该技术将来自 sim 和 real 的表示正则化为不变量,因此策略在 sim 和 real 下的行为应该类似的。当我们将 sim 中评估的策略迁移到 real 时,我们希望确保 sim 中的较高性能指标也确实对应于 real 中的较高性能指标。sim2real 差距越小,就越可信任模拟实验中的指标。
表达性
让我们看看现代生成模型可以输出多少位。每通道 8 位的 64x64x3 RGB 图像为 36864bits。语言模型可以生成任意数量的 tokens,但如果我们将输出窗口固定为 2048 个 tokens,每个 token 有 17bits,总共 36793bits。因此,图像和文本生成模型都可以合成大约 37kbits。随着模型的表现力越来越强,人们对这些模型的感知会发生质的飞跃。甚至有人开始认为语言模型是部分有意识的,因为它们的表达能力太强大!
相比之下,当下机器人的表达性如何?这里我们设计一个简化现实世界的环境,桌上有 6 个物品,机器人的任务是必须将一个物品移动到另一个物品的顶部或运送某几个物品,总共 100 个任务。log2(100)大约是 7 个 bits,也就是说“给定世界的状态,机器人能够将原子移动到 N 个状态中的一个,其中 N 可以用 7bits 来描述”。谷歌的 SayCan 算法可以用一个神经网络完成大约 550 个操作任务,这在当前的机器人深度学习标准中是相当令人印象深刻的,总共只有大约 10 个 bits。
这种比较并不是完美合理的,因为信息的定义在两者之间是不同的,这里只是提供一个粗略的直觉,当人们衡量一组任务与另一组任务的相对复杂性时,需要弄明白什么是重要的。
我们遇到的挑战之一是机器人的功能仍然有限。如果你看一下 Ego4D 数据集,很多任务都需要双手操作,但现在大多数机器人仍然使用带轮底座、单臂的移动机械手。他们无法移动不能去任何地方,显然我们拥有的只是「机械臂」,这排除了很多有趣的任务。我们需要研究更具表达性的机器人,但是机器人学习算法的表现力是受硬件限制的。下面是机器人开门、打包行李箱、拉上拉链、给植物浇水以及翻转水瓶瓶盖的画面。随着机器人硬件越来越接近真实的人类,在以人类为中心的世界里,你可以做的事情的数量呈指数级增长。随着机器人变得更具表达性,我们不仅需要互联网规模的训练数据,还需要互联网规模的评估过程。如果你看一下大型语言模型 (LLMs) 的进展,现在有很多论文研究调优以及现有模型可以做什么和不能做什么。
比如,BigBench 的基准编译了一系列任务,并询问我们可以从这些模型中获得什么。OpenAI 面向互联网用户评估他们的 DALLE-2 和 GPT-3 模型。他们的工程和产品团队可以从用户参与的人工智能试验中学习,因为任何一位研究人员都很难掌握 LLMs 模型的细节。
最后向读者提个问题,机器人领域中与 GPT-3 或 DALLE-2 API 等价的技术是什么?通过这个等价技术,互联网社区的研究人员可以对机器人研究进行质疑、并了解它到底可以做什么吗?
最后用表格总结优化、评估和表达性之间的比较: