当前位置: 首页 > 科技观察

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

时间:2023-03-18 18:13:24 科技观察

机器人领域取得了显着进展,这些进步表明机器人在未来可以做更多的事情。但也有令人不安的事情,因为机器人技术的进步相对于生成模型还是有点乏力,尤其是随着GPT-3等模型的出现,这种差距更加突出。生成模型产生的结果非常好。上图左边是谷歌推出的Imagen的输出。你可以给它提供一段文字,比如“一只戴着橙色帽子的仓鼠,拿着一张我喜欢JAX的纸”,Imagen会根据给定的文字渲染出合理的图像。此外,谷歌还训练了一个大型语言模型PaLM,可以用来解释笑话为什么好笑等。他们用像TPUv4这样的高级硬件来训练模型,在计算机视觉方面,研究人员正在开发一些非常复杂的架构,比如VisionTransformers和更多。随着生成模型发展如此迅速,与机器人技术相比,两者之间的联系如何?在这篇文章中,来自挪威机器人公司“HalodiRobotics”的人工智能副总裁EricJang介绍了《我们如何让机器人更像生成模型?》。以下是文章的主要内容。作为机器人领域的专家,在生成模型领域的进展让人有点羡慕。因为在机器人领域,大多数研究人员可能还在使用ResNet18这种有7年历史的深度学习架构。我们当然不会像生成模型那样在庞大的数据集上训练模型,因此很少有机器人研究工作成为“耀眼”的头条新闻。我们知道Moravec的悖论:与认知任务相比,灵巧地操纵机器人是困难的,而且从直觉上讲,让机器人捡起和运输物体似乎并不像将文字变成图像或解释笑话那么重要。感人的。首先我们定义一个生成模型。生成模型不仅仅是渲染图片或生成大量文本。它也是一个框架,我们可以用它来理解概率机器学习的所有事物。生成模型有两个核心问题:1.你要建模的数据类别有多少位?2.你能把模型建多好?2012年,AlexNet取得突破。它可以预测1000个类别,Log2(1000个类别)大约是10个类别位。您可以将AlexNet视为包含10位信息的基于图像的生成模型。如果将建模任务的难度升级为MS-CoCo字幕任务,那么模型包含了大约100比特的信息。如果你正在做图像生成,例如使用DALLE或Imagen从文本到图像,它包含大约1000位的信息。通常,建模的类别越多,计算其中包含的条件概率所需的计算能力就越大,这也是为什么模型会随着类别的增加而变得庞大的原因。随着我们训练越来越大的模型,可以利用数据中的特征来学习更丰富的结构。这就是为什么生成模型和自我监督学习已成为无需大量人工标记即可对大量输入进行深度学习的流行方法。RichSutton在他的文章《The Bitter Lesson》中指出:人工智能的大部分进展似乎都是在这次计算热潮中取得的,除此之外几乎没有其他进展。视觉算法、NLP和YannLeCun的LeCake都从这次计算热潮中受益。这种趋势告诉我们什么?如果你有一个可以处理更多数据的超参数化模型,并且该模型可以掌握网络中的所有特征,再加上强大的计算能力和训练目标,那么深度学习几乎总是可行的。让DALL-E2生成一个图像:巨浪上的骡子,展示了生成模型如何在计算热潮的帮助下取得显著成果。你拥有强大的计算能力(transformer、Resnet等),可以选择VQVAE、Diffusion、GAN、Autoregressive等算法进行建模。目前每个算法的细节都很重要,但是未来一旦计算机的计算能力足够强大,这些细节可能就不那么重要了。但从长远来看,模型大小和良好的架构是所有这些进步的基础。相比之下,下图显示了机器人学泛化研究的现状。目前很多机器人研究人员还在训练小模型,还没有用到VisionTransformer!对于从事机器人研究的人来说,都希望机器人能够在现实世界中得到更广泛的应用,发挥更大的作用。在生成模型领域,研究人员面临的问题相对较少,而在机器人研究领域,他们经常遇到机器人部署困难、数据嘈杂等问题,而这些问题是从事生成模型的研究人员不会遇到的。我们接下来从三个不同的维度比较生成模型和机器人技术,包括优化、评估和表达能力。优化先来看一个简单的生成模型:PixelRNN。从第一个像素的红色通道开始(红色通道的先验概率已知),模型告诉画布(顶行)它想要绘制哪些像素。画布将完全按照指示绘制,因此它将像素值复制到画布上,然后将画布读回模型以预测下一个通道,即绿色通道。然后将R、G画布上的值反馈给RNN,以此类推,最终生成一个RGBRGBRGB...序列。在实际的图像生成任务中,可以使用diffusion或者transformer。但为简单起见,我们仅使用前向执行的RNN。现在让我们将一般控制问题转换为PixelRNN。我们不想生成图像,而是想生成MDP(马尔可夫决策过程):一系列状态、动作和奖励。我们想要生成一个MDP,它对应于执行某些任务的代理(如机器人)。在这里,我们也从先验知识开始,模型对强化学习(RL)环境的初始状态进行采样。这是模型的第一个输入,RNN对第一个像素(A)进行采样,画布完全按照指示生成A。但是与生成图像不同的是,canvas总是返回之前的RNN输出,现在的操作是接下来的两个像素(R,S)由当前环境决定:即它取动作和之前的所有状态,并且以某种方式计算R,S。我们可以将RL环境想象成一个画家对象,它执行RNN动作,而不是直接在画布上绘制我们想要的东西,它使用任意复杂的函数来绘制像素。如果我们将其与之前绘制图像的PixelRNN进行比较,则此任务显然更具挑战性,因为当您尝试对想要的图像进行采样时,会出现一个黑框,而这个黑框会导致难以绘制。绘制过程中遇到的一个典型问题:如果环境绘制到了一个意想不到的状态,那么就有一个问题是如何下达纠正指令,让我们能够回到我们试图绘制的图像。此外,与图像生成不同,我们实际上必须按顺序生成MDP图像,并且不能回溯编辑它们,这也带来了优化挑战。如果我们想了解像PPO这样的RL方法如何泛化,我们应该在不受控制的设置中对它们进行基准测试,将它们应用于图像生成技术,并将它们与现代生成模型进行比较。在2006年Hinton和Nair的工作中,他们使用弹簧系统对MNIST数字合成进行建模。DeepMind使用RL方法复制了一些图像合成工作。图像生成是研究优化和控制的一个很好的基准,因为它真正强调了在数千种不同场景中进行泛化的必要性。DecisionTransformer、TrajectoryTransformer和Multi-GameDecisionTransformer等近期作品表明,颠倒的RL技术在泛化方面做得很好。那么倒置强化学习技术与在线(PPO)或离线强化学习算法(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年时间里,研究人员已经取得了很多进展和成果。在生成建模的其他领域,研究人员一直在降低语言模型的复杂性,以及图像生成模型的每维比特数。让我们大致比较一下常见基准测试的评估速度。2012ImageNet物体识别测试集有150,000张图像。假设每张图像的推理速度为10毫秒,并且一次依次评估每张图像,则评估每个测试示例大约需要25分钟(实际上评估要快得多,因为可以进行批处理)。但这里假设我们只有一个机器人用于评估操作,并且必须连续处理图像。由于图像数量众多,我们可以获得0.1%以内的标准误差估计。事实上我们不需要0.1%的标准误差来在这个领域取得进展,也许1%就足够了。在评估复杂性方面,端到端性能也是一个重要的部分。让我们来看看如何评估神经网络在模拟任务中的端到端性能。HabitatSim是最快的模拟器之一,旨在最大限度地减少神经网络推理和环境步进之间的开销。模拟器每秒可以执行10000步,但由于神经网络的前向传递大约为10毫秒,这个瓶颈导致每集评估时间为2秒(假设典型的导航集为200步)。这比运行真正的机器人要快得多,但比评估单个计算机视觉样本要慢得多。如果要评估一个端到端的机器人系统,其多样性水平与我们对ImageNet所做的相似,则典型的评估需要1周的时间来处理数十万个评估场景。这并不是一个合理的比较,因为每一集实际上有200次左右的推理过程,但我们不能将单集内的图像视为独立的验证集。没有任何其他情节指标,我们只知道任务是否成功,因此情节内的所有推理仅对二项式估计的单个样本有贡献。我们要根据几万集来估计成功率,而不是图像。当然,我们可以尝试其他策略评估方法,但这些算法还不够可靠,无法开箱即用。在下一阶段,我们将对真实机器人进行实地评估。在现实世界中,每集评估大约需要30秒,如果由10名操作员组成的团队进行评估,并且每个操作员每天可以完成300集,那么每天可以进行大约3000次评估。如果评估一个模型需要一整天,那么在生产力方面可能会受到很大限制,因为每天只能尝试一个想法。因此,我们不能再致力于将性能逐步提高0.1%的小想法或非常极端的想法。我们必须弄清楚如何在性能上取得重大飞跃。虽然这看起来不错,但实际上很难做到。在考虑机器人学习的迭代过程时,很容易让评估试验的数量远远超过训练数据!几个月的不间断评估产生了大约数万集,这已经超过了大多数机器人深度学习演示数据集。几年前,研究人员仍在解决诸如让机械臂开门之类的问题,但这些策略并没有很好地推广。研究人员通常按大约10集的顺序进行评估。但10-50次试验实际上不足以保证统计稳健性。为了达到好的效果,实际可能要进行1000次以上的试验才能最终评价。但是,当实验进一步扩展时会发生什么?如果我们最终需要训练一个具有O(100,000)行为的极其通用的机器人系统,那么我们需要进行多少次试验才能评估这样一个通用系统?这里的评估成本变得非常昂贵。又来了:数据充足,评价有瓶颈!如何加快评估速度?下面介绍了有关如何加快通用机器人系统评估的想法。一种方法是分别研究泛化问题和机器人技术。事实上,深度学习社区已经做到了这一点。大多数计算机视觉和生成建模研究人员并不直接在实际机器人上测试他们的想法,而是希望一旦他们的模型实现了强大的泛化能力,就可以快速迁移到机器人上。在计算机视觉领域开发的ResNets大大简化了机器人视觉的许多运动建模选项。想象一下,如果研究人员每次想尝试不同的神经网络架构时都必须在真实的??机器人上测试他们的想法!另一个成功案例是CLIPort,它将图像-文本模型强大的多模态泛化能力与用于掌握规划的底层几何推理分离。我们可以进一步将强化学习的技术栈分为“模拟玩具环境”、“模拟机器人”和“真实机器人”三层(按照评估难度递增的顺序)。位于金字塔底部的是通用基准,例如Kaggle竞赛的基准。往上走,有一组“玩具控制问题”,以“裸机”方式研究。只有模拟器和神经网络运行,所有与真实世界机器人相关的代码,如电池管理,都不存在。在金字塔的更上方,您会进入更具体的领域,与您要解决的问题更相关。例如,“模拟机器人”和“真实机器人”可能用于同一任务并重用相同的底层机器人代码。模拟玩具环境可用于研究通用算法,但与最终机器人领域的重叠较少。在“评估金字塔”的顶端是我们试图解决的真正的机器人任务。直接迭代这个过程是很慢的,所以我们都希望在这里花的时间越少越好。我们希望在较低层训练和评估的基础模型可以帮助理解哪些想法有效,而不必在顶层进行每次评估。同样,该领域已经以这种分离的方式运作。大多数有兴趣为机器人做贡献的人不一定会控制机器人。他们可能会训练最终可能对机器人有用的视觉表示和架构。当然,解耦的缺点是感知基线的改进并不总是与机器人能力的改进相对应。例如提高语义分割或视频分类准确性的mAP指标,甚至是无损压缩基准(理论上最终应该有所贡献),我们不知道表示目标的改进实际上如何映射到下游任务的改进。因此,最终您必须在端到端系统上对其进行测试,以了解真正的瓶颈在哪里。Google曾经发表过一篇很酷的论文?,他们在文中证明,许多完全无监督的表示学习方法不会导致下游任务的性能显着提高,除非我们使用您关心的最终下游标准来执行评估和选择模型。论文地址:https://arxiv.org/pdf/1811.12359.pdf降低评估成本的另一种方法是确保数据收集和评估过程的一致性。我们既可以收集评估数据,也可以收集专家操作数据。我们可以通过一些干预来收集HG-dagger数据,以便收集有用的训练数据。此外,每集的平均干预次数粗略地告诉我们该策略是否足够好。我们还可以观察标量指标而不是二项式指标,因为这些指标的每一集都会产生比一次成功/失败更多的信息。使用RL算法的自主数据收集是另一种结合评估和数据收集的方法,但这种方法需要我们手动对情节进行评分,或者使用精心设计的奖励函数。所有这些方法都需要在现实世界中部署大量的机器人,而这些机器人仍然会在现实世界中不断迭代。使评估算法更快的一种方法是改进sim-to-realtransfer算法。我们可以并行模拟很多机器人,这样我们就不再受约束了。MohiKhansari、DanielHo和YuqingDu等人。开发了一种称为“任务一致性损失”的技术,该技术将来自sim和real的表示正则化为不变量,从而使策略在sim和real下的行为应该相似。当我们将在sim中评估的策略迁移到real时,我们希望确保sim中的更高性能指标也确实对应于更高的性能指标。sim2real差距越小,模拟中的指标越可信。表现力让我们看看现代生成模型可以输出多少位。每个通道8位的64x64x3RGB图像是36864位。一个语言模型可以生成任意数量的token,但是如果我们将输出窗口固定为2048个token,则每个token有17位,总共36793位。因此,图像和文本生成模型都可以合成大约37kbits。随着模型的表现力越来越强,人们对这些模型的认知会发生质的飞跃。有些人甚至开始认为语言模型是部分有意识的,因为它们的表现力太强了!相比之下,今天的机器人表现力如何?这里我们设计了一个简化的真实世界环境,桌子上有6件物品,机器人的任务是必须将一件物品移动到另一件物品上面或运输某些物品,总共100个任务。log2(100)大约是7位,这意味着“给定世界状态,机器人能够将原子移动到N种状态之一,其中N可以用7位来描述”。谷歌的SayCan算法可以用单个神经网络执行大约550个操作任务,这在当前的机器人深度学习标准中是相当可观的,而且总共只有大约10位。这种比较并不完全合理,因为两者之间信息的定义不同,这里只是提供一个粗略的直觉,当人们衡量一组任务相对于另一组任务的相对复杂性时,他们需要弄清楚知道什么是重要的。我们遇到的挑战之一是机器人的能力仍然有限。如果你看一下Ego4D数据集,很多任务需要两只手,但今天大多数机器人仍然使用轮式底座,单臂移动机械手。它们不能移动也不能去任何地方,显然我们只有一个“机械臂”,这排除了很多有趣的任务。我们需要研究更具表现力的机器人,但机器人学习算法的表现力受到硬件的限制。下面是机器人开门、打包行李箱、拉上拉链、浇花和翻转水瓶盖的镜头。随着机器人硬件越来越接近真人,你在以人类为中心的世界中可以做的事情数量呈指数级增长。随着机器人变得更具表现力,我们不仅需要互联网规模的训练数据,还需要互联网规模的评估程序。如果你看看大型语言模型(LLM)的进展,现在有很多论文都在研究调优以及现有模型可以做什么和不能做什么。例如,BigBench基准编译了一系列任务,并询问我们可以从这些模型中得到什么。OpenAI针对互联网用户评估了他们的DALLE-2和GPT-3模型。他们的工程和产品团队可以从用户参与的AI实验中学习,因为LLM模型的细节对于任何一个研究人员来说都很难掌握。读者的最后一个问题是,机器人技术中GPT-3或DALLE-2API的技术等价物是什么?有了这种等效技术,互联网社区的研究人员能否质疑机器人研究并了解它实际上能做什么?最后一张表总结了优化、评估和表现力的对比: