与生成模型相比,为何机器人研究还在用几年前的老方法?

2022-08-25 19:42:28 浏览数 (1)

选自evjang.com

作者:Eric Jang

机器之心编译 编辑:rome rome

Eric Jang 表示:「作为一名机器人专家,在训练 ResNet18 时,很难不对 NLP 研究人员正在训练的大模型产生嫉妒。」 

目前机器人领域取得了显著进展,这些进展预示着未来机器人可以做更多事情。但是也有让人困扰的事情,因为与生成模型相比,机器人的进展还是有点逊色,尤其是 GPT-3 等模型的出现,这一差距更加突出。

生成模型产生的结果好到令人震惊。如上图左侧是谷歌推出的 Imagen 的输出结果。你可以提供一段文字给它,如「一只仓鼠戴着橙色的小帽,手里拿着我爱 JAX 的纸片」,根据给定的文字,Imagen 会渲染出合理的图像。此外,谷歌还训练了一个大型语言模型 PaLM,可以用来解释为什么笑话很有趣等。他们用 TPUv4 等先进硬件训练模型,并且在计算机视觉领域,研究人员正在开发一些非常复杂的架构,如 Vision Transformers 等。

生成模型发展如此迅猛,与机器人技术相比,两者之间有什么联系呢?

本文中,来自挪威机器人公司「Halodi Robotics」的 AI 副总裁 Eric Jang 介绍了《我们如何让机器人更像生成模型?》。以下为文章主要内容。

作为一名机器人领域专家,生成模型领域的进展让人有点羡慕。因为在机器人领域中,大多数研究者可能仍在使用 ResNet18,这个已有 7 年历史的深度学习架构。我们当然不会像生成模型那样在巨大的数据集上训练模型,所以很少有机器人方面的研究工作成为「耀眼」的头条新闻。

我们知道莫拉维克悖论:相较于认知型任务,灵活的操纵机器人很困难,从直觉上看,让机器人拿起并运送物体这些操作,似乎没有把文字变成图像或解释笑话那么令人印象深刻。

首先我们给生成模型下一个定义。生成模型不仅仅是渲染图片或生成大量的文本。它还是一个框架,我们可以用它来理解所有的概率机器学习。生成模型有两个核心问题:

1、你要建模的数据类别有多少 bits?

2、你能把模型建的多好?

2012 年 AlexNet 取得突破,它可以对 1000 个类别进行预测,Log2(1000 classes)大约是 10 class bit。你可以把 AlexNet 想象成基于图像的生成模型,包含 10bits 信息。如果你把建模任务的难度升级到 MS-CoCo 字幕任务,这时模型包含大约 100bits信息。如果你正在进行图像生成,例如使用 DALLE 或 Imagen 从文本到图像生成,大约包含 1000bits信息。

通常对越多的类别进行建模,就需要越多的算力来计算其中蕴含的条件概率,这就是为什么随着类别的增多模型会变的庞大。当我们训练越来越大的模型时,就有可能利用数据中的特征,从而可以学习更丰富的结构。这就是为什么生成模型和自监督学习已经成为流行的方法,可以在不需要大量人工标签的情况下对大量的输入进行深度学习。

Rich Sutton 在其文章《The Bitter Lesson》中指出:人工智能的大部分进展似乎都是在这股计算热潮中取得的,而其他方面几乎没有发展。Vision 算法、NLP 和 Yann LeCun 的 LeCake 等都受益于这股计算热潮。

这种趋势给我们什么启示?如果你有过渡参数化的模型,其能够处理更多数据,并且模型能够掌握网络中的所有特征,加上很强的算力和训练目标,深度学习几乎总是可行的。

下面让 DALL-E 2 生成一副图像:一头踏在巨浪上的骡子,这幅图展示了生成模型是如何借助计算热潮取得不凡的成绩。你手握强大的算力(transformer、Resnet 等),并且可以选择 VQVAE、Diffusion、GAN、Autoregressive 等算法来建模。当前每种算法细节很重要,但未来一旦计算机的算力足够强大,这些细节可能就不重要了。但从长远来看,模型规模和良好的架构是所有这些进步的基础。

相比之下,下图展示的是机器人领域泛化研究的现状。目前很多机器人研究人员仍在进行的是小模型训练,并且还没有用过 Vision Transformer!

对于从事机器人研究的人来说,他们都希望机器人能更广泛的应用在现实世界中,并且发挥更大的作用。在生成模型领域,研究者面临的问题相对较少,而在机器人研究领域,经常遇到机器人部署难、噪声数据等问题,这些从事生成模型的研究者都不会遇到。

接下来我们从三个不同的维度比较生成模型和机器人技术,这三个方面包括优化、评估和表达能力。

优化

首先让我们看一个简单的生成模型:PixelRNN。

从第一个像素的红色通道开始(红色通道的先验概率是已知的),模型告诉 canvas(顶行)它要绘制的像素。canvas 将完全按照指令绘制,因此它将像素值复制到 canvas 上,然后将 canvas 读回模型中,以预测下一个通道即绿色通道。然后将 R、G canvas 上的值反馈给 RNN,依此类推,最终生成 RGBRGBRGB… 序列。

在实际的图像生成任务中,可以使用 diffusion 或 transformer。但为了简单起见,我们仅使用前向执行的 RNN。

现在让我们将一般控制问题转换为 PixelRNN。与生成图像不同的是,我们要生成 MDP(马尔可夫决策过程):状态、动作和奖励的序列。我们希望生成 MDP,这个 MDP 对应于完成某些任务的智能体(如机器人)。这里我们也是从先验知识开始,模型对强化学习 (RL) 环境的初始状态进行采样。这是模型的第一个输入,RNN 对第一个像素 (A) 进行采样,canvas 完全按照指令的要求生成 A。但是,与生成图像不同的是,canvas 总是将之前的 RNN 输出返回,现在的操作是接下来的两个像素(R,S)由当前环境决定:即它接受动作和所有之前的状态,并以某种方式计算 R,S。

我们可以把 RL 环境视为绘制对象(painter object),它执行 RNN 动作,而不是直接在 canvas 上绘制想要的内容,它会使用任意复杂的函数绘制像素。

如果我们将其与前面绘制图像的 PixelRNN 进行对比,这个任务显然更具挑战,因为当你尝试对想要的图像进行采样,会有一个黑盒,这个黑盒会对要绘制内容造成困难。

绘制过程中会碰到一个典型的问题:如果环境绘制了一个非预期内的状态,就会有问题,即如何发出纠正指令,以便可以返回到我们尝试绘制的图像。此外,与图像生成不同,我们实际上必须按顺序生成 MDP 图像,并且不能回溯进行编辑,这也带来了优化挑战。

如果想理解 PPO 这样的 RL 方法是如何泛化的,我们应该在非控制环境下对其进行基准测试,将其应用于图像生成技术,并将其与现代生成模型进行比较。Hinton 和 Nair 在 2006 年的工作中,他们使用 springs 系统对 MNIST 数字合成进行建模。DeepMind 使用 RL 方法复现这种图像合成的部分工作。

图像生成是研究优化和控制的很好的基准,因为它真正强调了在成千上万个不同场景中进行泛化的必要性。

近期如 Decision Transformer、Trajectory Transformer 以及 Multi-Game Decision Transformer 表明,upside-down RL 技术在泛化方面做得很好。那么 upside-down RL 技术与在线(PPO)或离线 RL 算法(CQL)相比如何?其实要进行评估也很简便,我们可以评估密度(专家完全观察的似然模型)并验证给定的 RL 算法选择是否可以在测量测试似然度时泛化到大量图像。

评估

如果想估量机器人在某些任务上的成功率,我们可以使用二项分布。

二项分布的方差为 p(1−p)/N,p 为样本均值(估计的成功率); N 为试验次数。在最坏的情况下,如果 p=50%(最大方差),那么需要 3000 个样本才能使标准差小于 1%!

如果我们从计算机视觉的角度来看,0.1-1% 范围内的提升是前进的重要驱动力。ImageNet 目标识别问题,自 2012 年以来取得了很大进步,2012 到 2014 年的错误率降低了 3%,然后每年大约降低 1%,有很多人在研究如何使这项工作发挥作用。也许今年 (2022 年) 在基准提升上已经达到瓶颈,但在 2012-2018 年的这 7 年间,研究人员取得了很多进展和成果。

在生成建模的其他领域,研究人员一直在降低语言模型的复杂性,以及生成模型在图像上的每维 bit 数(bits-per-dimension)。

下面大致比较一下通用基准的评估速度。2012 年 ImageNet 目标识别测试集中有 150000 个图像。假设每个图像的推理速度为 10ms,并且每次是连续评估每个图像,这样评估每个测试示例大约需要 25 分钟(实际上评估速度要快得多,因为可以进行批量处理)。但这里假设我们只有单台机器人进行评估操作,并且必须连续处理图像。

因为有海量图像,所以我们可以得到标准误差估计在 0.1% 以内。事实上我们不需要 0.1% 的标准误差才能在该领域取得进展,可能 1% 就够了。

在评估复杂性方面,端到端的性能也是重要的一块。下面我们来看看怎样进行神经网络在模拟任务中的端到端性能评估。Habitat Sim 是目前速度最快的模拟器之一,其设计目的是最大限度地减少神经网络推理和环境步进之间的开销。模拟器可以每秒 10000 step,但由于神经网络的正向传递约为 10ms,该瓶颈导致每个 episode 的评估时间为 2 秒(假设典型的 navigation episode 为 200 step)。这比运行真正的机器人快得多,但比评估单个计算机视觉样本慢得多。

如果要评估端到端的机器人系统,其多样性水平与我们使用 ImageNet 所做的相似,普通的评估需要 1 周时间来处理数十万个评估场景。这并不完全是合理的比较,因为每个 episode 实际上有 200 个左右的推理过程,但我们不能将单个 episode 内的图像视为独立的验证集。如果没有任何其它 episode 度量,我们只知道任务是否成功,因此 episode 内的所有推理只对二项式估计的单个样本有贡献。我们必须根据数万个 episode 而不是图片来估计成功率。当然,我们可以尝试使用其他策略评估方法,但这些算法还不够可靠,无法开箱即用。

接下来阶段,我们对真实机器人进行现场评估。在现实世界中每个 episode 大约需要 30 秒的时间进行评估,如果一个由 10 名操作员组成的团队进行评估,每个操作员每天可以完成 300 个 episode,那么每天可以进行大约 3000 次评估。

如果评估模型需要一整天的时间,这会对工作效率造成很大的限制,因为这样每天只能尝试一种想法。所以我们不能再研究那些将性能逐步提高 0.1% 的小想法,或者非常极端的想法。我们必须想办法在性能上实现大飞跃。虽然这看起来不错,但在实践中很难做到。

当考虑进行机器人学习迭代过程时,很容易让评估试验的数量远远超过你的训练数据!几个月的不间断评估产生了约数万个 episode,这已经超过了大多数机器人深度学习演示数据集。

几年前,研究人员仍在解决类似让机械臂开门的问题,但这些策略不能进行很好的泛化。研究人员通常按照 10 个 episode 左右的顺序进行评估。但 10-50 次试验实际上不足以保证统计鲁棒性。为了取得好的效果,实际可能要进行超过 1000 次试验以进行最终评估。

但当进一步扩展试验时会发生什么呢?假如我们最终需要训练具有 O(100,000)种行为、极其通用的机器人系统,我们需要多少次试验来评估这样的通用系统?这里的评估成本变得极其高昂。

这里再强调一次:数据是足够的,评估存在瓶颈!

如何加速评估?

下面介绍关于如何加快通用机器人系统评估的想法。

方法之一是分别对泛化问题和机器人进行研究。其实深度学习社区已经做到了这一点。大多数计算机视觉和生成建模研究人员并不直接在实际机器人上测试他们的想法,而是期盼一旦他们的模型获得强大的泛化能力,那么它将快速地迁移到机器人上。在计算机视觉领域开发的 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 等价的技术是什么?通过这个等价技术,互联网社区的研究人员可以对机器人研究进行质疑、并了解它到底可以做什么吗?

最后用表格总结优化、评估和表达性之间的比较:

原文链接:https://evjang.com/2022/07/23/robotics-generative.html

© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

0 人点赞