【论文阅读】BC-Z: Zero-Shot Task Generalization with Robotic Imitation Learning

Abstract

在这篇论文中,我们研究了使基于视觉的机器人操纵系统能够泛化到新任务的问题,这是机器人学习中的一个长期挑战。我们从模仿学习的角度来应对这一挑战,旨在研究如何扩展和扩大收集的数据来促进这种泛化。为此,我们开发了一个交互式和灵活的模仿学习系统,该系统可以从演示和干预中学习,并可以根据传达任务的不同形式的信息进行调节,包括预训练的自然语言嵌入或人类执行任务的视频。当将真实机器人上的数据收集扩展到100多个不同的任务时,我们发现该系统可以执行24个看不见的操作任务,平均成功率为44%,而无需对这些任务进行任何机器人演示。

Keywords: Zero-Shot Imitation Learning, Multi-Task Imitation, Deep Learning

1 Introduction

机器人技术面临的一大挑战是创建一个通用机器人,该机器人能够根据任意用户命令在非结构化环境中执行多种任务。这项工作的关键挑战是泛化:机器人必须处理新的环境,识别和操纵以前从未见过的物体,并理解从未被要求执行的命令的意图。从像素进行端到端学习是对这种多面手机器人行为建模的一种灵活选择,因为它对世界的状态表示有最小的假设。有了足够的真实世界数据,这些方法原则上应该使机器人能够在新的任务、对象和场景中进行泛化,而不需要手工编码的、特定于任务的表示。然而,实现这一目标总体上仍然难以实现。在本文中,我们研究了使机器人能够将零样本或少速 few-shot 推广到新的基于视觉的操纵任务的问题。

 我们使用模仿学习的框架来研究这个问题。先前关于模仿学习的工作已经显示了对新对象[1,2,3,4,5]和新对象目标配置[6,7]的一次或零样本泛化。然而,对新任务的零样本概括仍然是一个挑战,特别是当考虑到基于视觉的操作任务时,这些任务涵盖了不同对象的各种技能(例如擦拭、推动、拾取和放置)。实现这种泛化取决于解决与扩大数据收集和学习不同数据算法相关的挑战。

我们开发了一个具有两个关键属性的交互式模仿学习系统,可以实现高质量的数据收集和对全新任务的泛化。首先,我们的系统将共享自主性融入远程操作中,使我们能够收集原始演示数据和人为干预,以纠正机器人当前的policy。其次,我们的系统根据不同形式的任务规范灵活地调整policy,包括语言指令或执行任务的人的视频。与离散单热任务标识符[8]不同,这些连续形式的任务规范原则上可以通过在测试时提供新任务的语言或视频命令,使机器人能够将零样本或少量样本推广到新任务。这些特性之前已经被探索过;我们的目的是实证研究这些想法是否适用于广泛的现实世界任务。

我们的主要贡献是对大规模交互式模仿学习系统的实证研究,该系统解决了广泛的任务,包括零样本和对训练中未看到的任务的少量泛化。使用该系统,我们通过专家远程操作和共享自主过程的组合收集了100个机器人操纵任务的大型数据集,在该过程中,人类操作员通过修复错误来“指导”学习到的policy。在12个机器人中,7名不同的操作员收集了25877个机器人演示,总计125小时的机器人时间,以及18726个相同任务的人类视频。在测试时,该系统能够在以前从未出现在同一场景中的对象之间执行24个看不见的操纵任务。这些闭环视觉运动器policies以10hz的频率执行异步推理和控制,每集的决策量远远超过100个。我们开源了用于训练policy的演示athttps://www.kaggle.com/google/bc-z-robot.

2 Related Work

模仿学习在从低维状态学习抓握和选择位置任务方面取得了成功[9,10,11,12,13,14,15]。深度学习已经实现了直接从原始图像观察中进行模仿学习[8,16,17]。在这项工作中,我们专注于在模仿学习框架中实现对新任务的零样本和少搜索泛化

多个先验模仿学习作品已经实现了不同形式的泛化,包括对新对象的一次 one-shot泛化[1,2,3,4,18],对新对象配置的一次概括[19],和对新目标配置的6,7、20],以及对新对象[5]、场景[21]和目标配置的零样本泛化[22]。其中许多作品通过机器人演示[1,2]、人类视频[3,4]、语言指令[23,24]或目标图像[21]来适应新的场景。我们的系统灵活地对人类的视频或语言指令进行调节,我们专注于实现零样本(语言)和少热点(视频)泛化,以在真实机器人上完成全新的7-DoF操作任务,包括没有目标图像的场景,以及在训练数据中从未一起遇到任务相关对象的场景。

通过远程操作[25]或动觉教学[10]收集演示的标准,dagger[26]等主动学习方法有助于减少学习者的分布转移。不幸的是,dagger 及其一些变体 [27, 28] 是众所周知的难以应用于机器人操作,因为它们需要一个接口,其中专家必须在不控制机器人 policy 时注释正确的动作。受最近自动驾驶工作的启发,hg dagger[29]和eil[30],我们的系统只需要专家在认为policy可能出错时进行干预,并允许专家暂时完全控制policy,使其重回正轨。由此产生的数据收集方案易于使用,有助于解决分布转移问题。此外,数据收集期间的专家干预率可以用作实时评估指标,我们实证发现这与policy的成功率相关

除了模仿学习,泛化在许多其他机器人学习工作中也得到了研究。这包括将技能推广到新对象[31,32,33,34,35]、新环境[36]、从模拟到现实[37,38,39,40,41]以及新的操作技能和对象[42,43,44,45]的作品。我们专注于推广到新任务的最后一个案例,但与这些先前的工作不同,我们处理了100个具有挑战性的任务,这些任务涉及10 Hz的7 DoF控制,并在一个事件中涉及100多个决策来解决任务。

3 Problem Setup and Method Overview

我们的模仿学习系统的概述如图1所示。我们的目标是训练一个条件policy,它可以解释rgb图像,表示为,以及任务命令,它可能对应于一个人的语言字符串或视频。不同的任务对应于完成不同的目标;图2中显示了一些示例任务和相应的命令。policy是从图像和命令到动作的映射,可以写成,其中动作空间A由末端执行器的6-dof姿态以及用于连续控制平行夹爪的第7自由度组成。


图1:bc-z概述。我们收集了100个不同操纵任务的大规模数据集(25877集),并训练了一个基于任务语言字符串或人类视频的7-dof多任务policy。我们展示了该系统产生的policy能够将零样本推广到新的看不见的任务。

图2:用于评估零射击任务泛化的训练任务子集(顶行)和搁置任务子集(底两行)。左上角:给定一个根据人类视频或文本计算的预训练任务嵌入,BC-Z充当任务嵌入的“动作解码器”。

policy使用通过基于vr的遥操作设备(见图1,左)收集的大规模数据集进行训练,通过直接演示和人在环共享自主性相结合。在后者中,训练有素的policies被部署在机器人上,当机器人出错时,人类操作员会进行干预以提供纠正。该过程类似于人类门控dagger(hg dagger)算法[26,29],并为学习的policy提供迭代改进,以及可用于跟踪policy性能的连续信号。

policy架构分为编码器和控制层π,编码器q将命令w处理为嵌入,控制层π处理(s,z)以产生动作a,即。这种分解如图2所示,更多细节见第5节。它为我们的方法提供了整合辅助监督的能力,如预训练的语言嵌入,这有助于构建潜在的任务空间并促进泛化。在我们的实验中,我们将证明这能够泛化到训练中没有看到的任务,包括动词和宾语的新颖组合。

4 Data Collection and Workflow

为了使模仿学习系统能够推广到零演示的新任务,我们必须能够轻松收集各种数据集,提供纠正反馈,并大规模评估许多任务。在本节中,我们将讨论系统的这些组件。

System Setup.

我们的远程操作系统使用Oculus VR头戴式耳机,该耳机通过USB电缆连接到机器人的机载计算机上,并跟踪两个手持控制器。远程操作员站在机器人后面,使用控制器以第三人视线操作机器人。机器人在10Hz的非实时控制回路中对操作员的动作做出响应。相对快速的闭环控制允许操作员轻松演示各种任务,并在机器人在自主执行过程中即将进入不安全状态时快速干预。用户界面和数据收集的更多详细信息见附录A和B。

Environment and Tasks.

我们将每个机器人放在一张桌子前,桌子上有6到15个随机姿势的家用物品。我们收集了100项预先指定的任务(如表7和表8所示)的演示和视频,这些任务涵盖了推、挑、放等9项基本技能。然后,使用该任务的新语言描述或视频对29个新任务进行模型评估。为了使该方法在这些搁置的任务上表现良好,它必须正确解释新的任务命令,并输出与该任务一致的操作。

Shared Autonomy Data Collection.

数据收集从最初的专家阶段开始,在这个阶段,人类从头到尾演示任务。在从仅限专家的数据中学习到初始多任务policy后,我们继续在“共享自治”模式下收集演示,其中当前的policy在人类监督下尝试执行任务。在任何时候,人类都可以通过抓握“超控”开关来接管,这允许他们在policy即将进入不安全状态时,或者如果他们认为当前的policy无法成功完成任务时,短暂地完全控制机器人并执行必要的纠正。此设置启用hgdagger[29],然后将干预数据与现有数据聚合,并用于重新训练policy。对于多任务操作任务,我们收集了11108个仅限专家的初始policies演示,然后收集了另外14769个hg dagger演示,涵盖了policy部署的16次迭代,其中每次迭代都部署了在聚合数据集上训练的最新policy。总共有25877个机器人演示。我们在表4中发现,当控制相同的总发作次数时,hg dagger显著提高了性能。

Shared Autonomy Evaluation.

当成功率较低时,最好将资源用于收集更多数据以改进policy;但是评估对于调试工作流中的问题也很重要。随着预期泛化程度的提高,我们需要更多的试验来评估policy的泛化程度。这造成了资源的权衡:在测量policy成功率和收集额外的演示以改进policy之间,应该如何分配机器人时间?幸运的是,共享自主数据收集带来了额外的好处:干预率,即每集所需的平均干预次数,可以作为policy表现的指标。在图5中,我们发现干预率与总体policy成功率呈负相关

5 Learning Algorithm

上述数据收集过程产生了一个大型的多任务数据集。对于每个任务i,该数据集包含专家数据、人类视频数据和一个语言命令。我们现在讨论如何使用这些数据来训练编码器和控制层。 

5.1 Language and Video Encoders

我们的编码器q(z|w)接收语言命令或人类的视频作为输入,并生成任务嵌入z。如果命令是语言命令,我们使用预训练的多语言句子编码器[46]1作为编码器,为每个任务生成512维的语言向量。尽管简单,我们发现这些编码器在我们的实验中工作良好。

当任务命令是人类执行任务的视频时,我们使用卷积神经网络来生成z,特别是基于resnet-18的模型。受最近工作的启发[2,3],我们以端到端的方式训练这个网络。我们收集了18726个视频数据集,这些视频记录了人类在各种家庭和办公室位置、相机视角和对象配置下执行每项训练任务的情况。使用人类视频和相应演示demo的配对示例,我们对人类视频进行编码,然后将嵌入传递给控制层π(a|s,zi),然后将行为克隆损失的梯度反向传播给policy和编码器参数。

附录E中可学习嵌入的可视化表明,就其本身而言,这种端到端的方法往往会过度适应初始对象场景,学习较差的嵌入,并表现出较差的任务泛化能力。为了帮助视频嵌入在语义上更加一致,我们进一步引入了辅助语言回归损失。具体来说,这种辅助损失训练视频编码器预测具有余弦损失的任务语言命令的嵌入。最终的视频编码器目标如下:

其中Dcos表示余弦距离。由于机器人演示既是任务的视频,我们还训练编码的机器人视频以匹配语言向量。这种语言损失对于学习更有组织的嵌入空间至关重要。其他架构和培训细节见附录E。

5.2 Policy Training

给定一个固定的任务嵌入,我们通过XYZ和轴角度预测的Huber损失以及夹具角度的对数损失来训练π(a|s,z)。在训练过程中,图像会被随机裁剪、降采样,并接受标准的光度增强。下面我们描述了我们发现有帮助的另外两个设计选择。附录D中讨论了其他训练细节,如学习率、批处理大小、伪代码和其他超参数。

Open-Loop Auxiliary Predictions.        

policy预测机器人将采取的行动,以及如果以开环方式操作,policy将采取的下一个10个行动的开环轨迹。在推理时,policy闭环运行,仅基于当前图像执行第一个动作。开环预测提供了一个辅助训练目标,并提供了一种以离线方式直观检查闭环计划质量的方法(见图1,右)。

State Differences as Actions.

在标准的模仿学习实现中,在演示时采取的行动被直接用作从状态预测的目标标签。然而,以10hz的频率克隆专家动作会导致policy学习非常小的动作以及抖动行为。为了解决这个问题,我们将动作定义为未来N>1步的目标姿势的状态差异,使用自适应算法根据手臂和夹具的移动量选择N。我们在第6.3节中提供了该设计选择的消融研究,并在附录c中提供了更多详细信息

5.3 Network Architecture

我们使用深度神经网络对policy进行建模,如图3所示。policy网络使用resnet18“躯干”处理相机图像[48],该躯干从最后一个平均池层分支为多个“动作头”。每个头部都是一个多层感知器,有两个大小为256的隐藏层和relu激活,并对末端执行器动作的一部分进行建模,特别是增量xyz、增量轴角度和归一化夹持器角度。policy的条件是通过film层嵌入z的512维任务[47]。根据perez等人[47]的研究,任务调节被线性投影到4个resnet块中每个块的每个通道的通道尺度和偏移上

图3:BC-Z网络架构。来自头戴式相机的单眼RGB图像通过ResNet18编码器,然后通过两层MLP来预测每种动作模态(增量XYZ、增量轴角度和夹持器角度)。FiLM层[47]根据从语言w`或视频wh计算的任务嵌入z来调节架构。

6 Experimental Results

我们的实验旨在评估bc-z在大规模模仿学习环境中的表现。我们从bc-z在单任务视觉模仿学习中的初步验证开始。然后,我们的实验将旨在回答以下问题:

(1)bc-z是否能够从语言或人类视频形式的命令中实现对新任务的零样本和少搜索泛化?

(2) bc-z的性能瓶颈是任务嵌入还是policy?

(3) bc-z的不同组件有多重要,包括hg dagger数据收集和自适应状态差异?

我们在本节中介绍了针对这些问题的实验。 

6.1 BC-Z on Single-Task Imitation Learning

我们的首要目标是在考虑更具挑战性的多任务设置之前,验证BC-Z可以学习基于视觉的单个任务。我们选择了两个任务:一个是清空垃圾箱的任务,机器人必须从垃圾箱中抓取物体并将其放入相邻的垃圾箱;另一个是开门任务,机器人在打开门的同时必须避免碰撞。这两个任务都使用图3中的架构,除了开门任务涉及预测底座的前进和偏航速度,而不是控制手臂。清空垃圾箱数据集有2759个演示,而开门数据集有12000个演示,分布在24个会议室,36000个演示分布在5个会议室。更多任务和数据集详细信息见附录I。

在表1中,我们看到BC-Z模型能够达到每分钟3.4次拾取的拾取率,超过人类遥操作器速度的一半。进一步地,我们观察到BC-Z在训练门场景中的成功率达到87%,在室外场景中达到94%。这些结果验证了BC-Z模型和数据采集系统在单任务设置下的训练和保持场景上都能取得良好的性能。附录H提供了额外的分析。

表1:单任务箱和门的性能、平均值和标准偏差。

6.2 Evaluating Zero-Shot and Few-Shot Task Generalization

接下来,我们的目标是测试BC-Z是否可以实现对新任务的泛化。演示是在100个不同的操作任务中收集的,包括两组不相交的对象。使用不相交的对象集,我们可以专门测试对训练过程中看不到的对象-对象对和对象-动作对组合的泛化能力。对于第一组对象,我们收集了21个不同任务的演示,如表7所示,这些任务涵盖了广泛的技能,从拾取和放置任务到需要以某种方式定位对象的技能,比如“将瓶子直立”。对于第二组对象,收集了79个不同任务的演示,包括拾取和放置、表面擦拭和对象堆叠。后一个家族的操纵行为种类较少,但定义在一个更大的对象集上,对象集更杂乱。对象集如附录B所示,训练任务句的完整列表如附录J所示。

我们对29个未完成 held-out的任务进行了bc-z评估。语言条件下的policies被赋予一个新的句子,而视频条件下的policies被给予新任务的一些人类视频的平均嵌入。四个未完成的任务使用79任务族中的对象,而25个任务是通过在21任务族和79任务族之间混合对象生成的。因此,前4个任务不需要跨对象集泛化,因此更容易泛化。即便如此,我们发现这4个任务中的每一个都具有足够的挑战性,以至于在300多个带有dagger干预的演示上训练单个任务policies完全失败,任务成功率为0%。这为这些任务的难度提供了一定程度的校准。我们假设,造成这一挑战的一个主要因素是技能必须在我们的环境中推广到的广泛的位置、对象和干扰因素,以及训练数据中这些因素的广泛范围。 

在表2中,我们看到,语言条件bc-z能够将零样本推广到两种搁置任务,平均成功率为32%,在24个搁置任务上显示出非零成功。在24个成功率为非零的任务中,bc-z在以从未见过的语言嵌入为条件时,平均成功率为44%。当对人类视频进行条件化处理时,我们发现泛化要困难得多,但bc-z仍然能够以非零的成功率泛化到九个新任务,特别是当任务不涉及新的对象组合时。从定性上讲,我们观察到语言制约的policy通常会向正确的对象移动,这清楚地表明任务嵌入反映了正确的任务,正如我们在补充视频中进一步说明的那样。最常见的故障源是“最后一厘米”错误:未能关闭夹具,未能松开物体,或者在松开夹具中的物体时差点错过目标物体。

表2:对不在训练数据集中的任务进行零样本(语言)和少搜索(视频)泛化的成功率。前4个任务仅使用79任务族中的对象。其余的任务混合了21个任务和79个任务族之间的对象,需要进一步概括。括号内的数字为1单位标准偏差。语言条件反射可以推广到几个拒绝的任务,而视频条件反射在任务族之间不混合对象的任务上显示出希望。随着干扰对象的减少,整体性能略有提高。

Is Performance Bottlenecked on the Encoder or the Policy? 

现在我们看到bc-z可以在一定程度上推广到大量被搁置的任务,我们问性能是否更多地受到编码器q(z|w)、控制层π(a|s,z)或两者的推广的限制。为了理清这些因素,我们通过三种方式测量了policy在训练任务上的成功率:one-hot task identifier、训练任务命令的语言嵌入和训练任务的人类视频的视频嵌入。该比较见表3。one-hot和语言之间的相似性能表明,潜在的语言空间是足够的,在执行任务时,语言条件下的性能在控制层比嵌入层更受阻碍。视频条件policies的性能下降更为显著,这表明从视频中推断任务要困难得多,特别是对于held-out的任务。 

 

表3:21项训练任务和所有28项执行任务的平均训练与泛化性能。

6.3 Ablation Studies and Comparisons

我们使用(训练)21任务族验证了几个bc-z设计决策的重要性。我们的第一组消融评估基于“将瓶子放入陶瓷碗中”命令,该命令具有任何任务中最多的演示(1000)。我们首先测试多任务训练是否有助于提高性能:我们将在所有任务的25877个演示上训练的多任务系统与仅在1000个演示上为目标任务训练的单个任务policy进行了比较。在表4(左)中,单任务基线仅取得了5%的成功。这一低数字与第6.2节中抵制任务的低单任务绩效是一致的:在多个机器人和操作员身上收集数据可能会使任务更难学习。只有在跨多个任务汇集数据时,bc-z才能学会解决任务。我们消除了第5.3节中描述的自适应状态差分方案,发现它很重要;当天真地选择n=1的未来状态来计算专家动作时,policy会适应噪声并移动得太慢,导致状态偏离良好的轨迹。 

接下来,我们将取消hg dagger的使用,同时保持数据总量不变。具体来说,我们比较了使用50%专家演示和50%hg-dagger干预训练的policies的性能,与使用100%专家演示的性能。在表4(右)中,我们发现hg dagger在“将瓶子放在陶瓷碗中”任务和其他7个训练任务上都比克隆专家演示显著提高了任务绩效。关于这种比较的更多细节见附录k。最后,在图5中,我们评估了测量hg dagger干预是否可以为我们提供policy性能的实时代理。我们发现,干预频率与policy的成功率呈负相关,这是通过不需要干预的成功发作的比例来衡量的。这一结果表明,我们确实可以将这一指标与hg dagger一起用于开发目的。

 

图5:平均干预次数与任务成功率。每个点代表hg dagger数据收集期间评估的policy。干预的平均次数与成功率之间存在明显的相关性,这表明干预可以作为绩效的实时指标。

表4:消融研究。左:“把瓶子放在陶瓷碗里”任务中的多任务模型与单任务模型。跨任务和具有自适应状态差异的训练对于良好的训练效果非常重要。右:DAgger对“将瓶子放在陶瓷碗中”(1-Task)和表7中的8-Task子集的比较。在数据量相同的情况下,DAgger可以更快地达到更高的成功率。

7 Discussion

我们提出了一种多任务模仿学习系统,该系统将灵活的任务嵌入与100个任务演示数据集上的大规模训练相结合,使其能够泛化到基于用户提供的语言或视频命令的训练中没有看到的全新任务。我们的评估涵盖了29个看不见的基于视觉的操纵任务,涉及各种物体和场景。我们实证研究的关键结论是,简单的模仿学习方法可以以一种促进新任务泛化的方式进行扩展,而无需这些任务的额外机器人数据。也就是说,我们了解到,我们不需要更复杂的方法来实现任务级的泛化。通过实验,我们还了解到,100个训练任务足以实现对新任务的泛化,HG DAgger对于良好的性能很重要,冻结的、预训练的语言嵌入可以在不进行任何额外训练的情况下实现出色的任务调节器。 

我们的系统确实有一些局限性。首先,新任务的表现差异很大。然而,即使对于不太成功的任务,机器人也经常表现出至少理解部分任务的行为,伸手去拿正确的物体或执行语义相关的动作。这表明,未来工作的一个令人兴奋的方向是将我们的policies用作对下游任务进行微调的通用初始化,在这种情况下,额外的训练,也许是自主rl,可能会带来更好的性能。我们语言命令的结构遵循简单的“(动词)(名词)”结构。解决这一限制的一个方向是用各种人类提供的注释重新标记数据集[24],这可以使系统能够处理语言结构中的更多变化。另一个限制是视频条件policy的性能较低,这鼓励了未来研究如何提高基于视频的任务表示的泛化能力,并提高模仿学习算法的整体性能,因为低级控制错误也是一个主要瓶颈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值