前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Open AI小数据模仿学习指向通用 AI,软注意力提高神经网络泛化能力

Open AI小数据模仿学习指向通用 AI,软注意力提高神经网络泛化能力

作者头像
新智元
发布2018-03-27 16:42:42
9250
发布2018-03-27 16:42:42
举报
文章被收录于专栏:新智元

【新智元导读】 为了向通用 AI 迈进,神经网络“举一反三”的能力最近成为了研究热点,OpenAI 和 UC-Berkley 的这一研究使用 “软注意力”提高神经网络泛化能力,提出了“小数据模仿学习”(one-shot Imitation Learning)。实验里,神经网络看了一次例子,就能在新的情况下完成类似的任务。研究人员表示,经过更多训练,他们的模型完全可以将任何场景都转化为具有鲁棒性的策略,从而完成各种不同的任务。作者包括 OpenAI 研究负责人 Ilya Sutskever,还有 UC-Berkley 的Pieter Abbeel。

模仿学习通常用于解决孤立的不同任务,这通常需要细致的特征工程或大量样本。但这远不是我们所期望的:理想情况下,机器人应该能够从任何给定任务的少量范例中学习,并且可以立即泛化到相同任务的新情况中,而不需要任务特定化的工作。这篇论文提出了一种实现这种能力的元学习框架,研究者将其称为小数据模仿学习(one-shot imitation learning)。

具体来说,任务集很大(可能是无限的),每个任务都有许多实例。例如,一个任务可能是将桌子上所有的块堆叠成一个塔,另一个任务可能是将桌子上的所有块堆成两个塔,等等。在这种情况下,任务的不同实例包括了具有不同初始状态的不同块组。在训练时,研究者为算法提供了一组所有任务子集的范例。训练一个神经网络时,将一个范例和其现有状态作为输入,并输出动作,以求所得到的状态和动作序列尽可能地与第二次示范相匹配。在测试时,研究者向神经网络提供了新任务的单个实例的示范,希望神经网络在新任务的新实例上有良好表现。实验表明,软注意力(soft attention)的使用使得模型能够泛化到训练数据中未出现的条件和任务上去。研究者预计,通过在更多种类的任务和设置上训练这一模式,可以获得一个通用系统,将任何范例转变成可以实现多种任务的具有鲁棒性的策略。

小数据学习策略。一个可训练用于解决多种任务的单一策略。

左侧:特定任务策略。策略被训练用于将块堆叠成两个塔,每个高度为3; 右侧:分离特定任务策略。策略被训练用于将块堆叠成三个塔,每个高度为2。

图1.传统上,策略是特定于任务来说的。例如,通过模仿或增强学习,一个策略被训练出来,可以将块堆叠成高度为 3 的塔,然后另一种策略被训练出来,可以将块堆叠成高度为 2 的塔,等等。而这篇论文对不是针对于某一个特定任务的策略感兴趣,本文理想的策略是,可以通过一个范例了解当前的新任务是什么,并在这个新任务中取得成功。作为说明性的样本,我们希望能够为每个任务提供一个单一的范例,从中得到的小数据策略可以知道如何应对该任务的新情况(比如块被重新随机摆放)。

研究介绍

研究者对能够执行各种复杂且有用的任务的机器人系统感兴趣,例如收拾屋子或准备一顿饭。机器人应该能够快速学习新任务,而不需要长时间的系统交互。要做到这一点,必须解决两个问题:

•第一个问题是灵活性:机器人应该学习如何接近、抓住和拾取复杂的未激活对象,以及如何将它们放置或摆放成所需的样子;

•第二个问题是沟通:如何传达当前任务的意图,以便机器人可以在更广泛的初始条件下复制。

示范是一种非常方便的信息形式,我们可以用它来教导机器人应对这两个挑战。使用示范,我们可以明确地传达任何操作任务,同时提供执行任务所需的具体运动技能的线索。我们可以将其与沟通方式进行比较,即自然语言。虽然语言具有高度通用性,又有效又高效,但是自然语言处理系统尚未达到我们可以轻松地使用语言来精确描述机器人复杂任务的水平。与语言相比,示范有两个根本的优点:第一,它不需要语言知识,因为将复杂的任务传达给没有掌握某种语言的人是可能的;第二,即使系统具有完美的语言能力,有很多任务非常难以用语言解释,比如解释如何游泳,如果没有示范和经验,似乎很具有挑战性。

然而,到目前为止,模仿学习并没有成为人们寄予厚望的新技术。模仿学习的实际应用需要细致的特征工程,或大量的系统交互时间。这远不是我们想要的:理想情况下,我们希望仅对机器人展示一次或几次特定任务,而它可以立即泛化到相同任务的新情况上,而无需长时间的系统交互或关于具体任务的背景知识。

本文探讨了小数据模仿学习的设定,其目标是在面临新的、未曾见过的任务时,且在只收到该任务一次范例输入的条件下,最大限度提高策略的性能。一旦接收到任务范例,该策略不需要任何额外的系统交互,就能实现良好的性能。

研究者在广泛分布的任务集上训练策略,任务的潜在数量是无限的。对于每个训练任务,都假设存在一系列成功的范例。训练策略的输入是:(i)目前的观察结果;(ii)成功解决了同一个任务的不同实例的范例。该策略的输出是当前的控件。值得注意的是,同一任务的任何一对范例都为神经网络策略提供了一个有监督的训练样本,其中一个范例被视为输入,另一个作为输出。

为了使这个模型正常工作,研究者使用了软注意力来处理范例相应的状态和行动序列,以及处理具化了环境中各种块位置的矢量组件。对这两种类型的输入,软注意力的使用都使得泛化成为可能。特别地,在图1所示的块堆叠系列任务中。论文提出的神经网络策略在创新的块堆叠任务上表现良好,这些不存在于任何训练数据中。

如果能够在各种各样的任务和示范中进行训练,得到适当扩展,这种方法很有可能成功地学习一个模型,可以将复杂任务传达给机器人,使其在许多真实环境中表现良好。

两个任务:目标点到达和块堆叠

为了说明样本设置问题,我们将描述两个具体案例:一个是目标点到达任务,另一个是块堆叠任务。

  • 目标点到达任务

目标点到达是一项非常简单的任务。在每一任务中,我们控制一个机器人到达一个特定的地标,不同的任务由不同的标识来标识,如图2所示。一项任务是达到橙色区域,而另一项任务是到达绿色三角形区域。智能体可以接收自己的二维位置和每个标识的二维位置。在每个任务中,智能体的初始位置以及所有地标的位置,可以在不同的任务中发生变化。

若没有示范,机器人不知道应该到达哪个地标,也不能完成任务。因此,这一设置是小数据模仿的本质,即通过示范来传达任务。在学习之后,智能体应该能从演示中识别目的地标识,并在新的任务中到达同样的地标。

图2.机器人是一个用二维力量控制的点。这一系列任务是到达目标地标。每一个任务的地标特征均有所不同,模型必须根据示范找到所要追寻的目标。(左)图示机器人;(中)任务是到达橙色的盒子;(右)任务是到达绿色三角形。

  • 块堆叠任务

我们现在考虑一系列更具挑战性的任务,需要更高级的操作技能使得不同任务可以共享一个组合结构,这使得我们能够研究重要的未见任务的泛化问题。在块堆叠系列任务中,目标是控制一个 7-DOF Fetch 的机器人臂,将各种数量的立方体块堆叠成为用户指定的结构。每个结构由排列成不同高度的塔的块状物体组成,并可以由诸如 ghij 或 ab cd ef gh 的字符串标识,如图3所示。每一个结构对应不同的任务。在一个典型任务中,观察相对于夹具的一系列对象位置(x,y,z),以及夹具打开或关闭的信息。对象的数量可以在不同任务中不断变化。

初始状态。块被随意摆放在桌子上。

堆叠成 4 个塔的过程,每个高度为 2。其中 A 块置于 B 块上,C 块置于 D 块上,E 块置于 F 块上,G 块置于 H块上。任务被标识为ab cd ef gh。

堆叠成 1 个塔的过程,高度为 4。其中 G 块置于 H 块上,H 块置于 I 块上,I 块置于 J 块上。任务被标识为 ghij。

图3.任务是控制一个 Fetch 机器人臂将块状物堆叠成不同的布局。整个过程需要数千个时间步长。我们将一个阶段定义为将一个块状物堆叠到另一个块状物上的单次操作。上面显示的第一项任务有4个阶段,而第二项任务有3个阶段。

算法

为了训练神经网络策略,我们可以在序列决策问题中使用任何算法进行策略学习。例如,如果在训练任务中,可以获得奖励,我们可以使用强化学习来优化策略。唯一需要修改的是在每一阶段开始之前,对随机选择的示范限定策略。在本文中,我们将重点放在模仿学习算法,诸如行为克隆和 DAGGER(Ross 等,2011),这些算法只需要示范而非指定奖励函数。这具有更大的可扩展潜力,因为示范一项任务比指定一个精心设计的奖励函数更容易(Ng 等,1999)。

我们首先为每个任务收集一组示范,在行动中添加噪音以便在轨迹空间中有更广泛的覆盖。在每个训练迭代中,我们对任务列表进行抽样(带替换)。对于每个抽样任务,我们对示范以及一小批观察行为进行抽样。根据当前的观察和示范情况,通过根据行为是连续还是离散的最小化 l2 或交叉熵损失来对策略进行训练,以复原到所期望的行为。在所有实验中,我们使用Adamax(Kingma&Ba,2014)进行优化,学习率为0.001。

架构

虽然原则上通过神经网络可以从示范和现场观察来调节行为,学习映射,但我们发现使用适当的架构很重要。我们学习块状物体堆叠的架构是本文的主要贡献之一,我们相信它代表了未来更具复杂性的小数据模拟学习。虽然,目标点到达任务更简单,但我们发现结构的抉择也至关重要,我们考虑以下的几个选择。

  • 目标点到达任务架构

对于这一问题,我们考虑三个架构

a. 普通 LSTM:第一个架构是一个简单的LSTM(Hochreiter & Schmidhuber, 1997),有512个隐藏单元。它读取示范轨迹,然后其输出与当前状态连接,并馈送至多层感知器(MLP) 来产生动作。

b. 带注意力的 LSTM:在本结构中,LSTM 从示范序列中输出不同地标的权重。然后,它在测试场景中应用该权重,并且在当前给定状态下,对于地标位置产生加权组合。然后,将此做二维输出,与当前智能体的位置相连接,以馈送至 MLP 以产生该动作。

c. 带注意力的最后状态:这一架构不是看整个示范轨迹,只是看示范的最终状态(已经足以交流任务),并且产生了对于地标的权重。接下来就像以前的架构一样运行。

请注意,这三种架构越来越专门针对特定的目标点到达设置,这表明在表达能力与泛化能力中存在潜在的权衡。我们会尝试将这一权衡量化。

  • 块堆叠任务架构

对于块堆叠任务,策略结构应具有以下属性:

• 应用于具有不同块数的任务实例应该很容易。

• 应该可以自然地泛化到相同任务的不同排列种。例如,该策略应该在任务 dcba 上运行良好,即使它只接受任务 abcd 的训练。

• 它应该可以适应不同长度的示范。

我们提出的架构包括三个模块:示范网络、上下文网络和操纵网络。

a. 示范网络

如图4所示,示范网络接收示范轨迹作为输入,并生成示范嵌入以供策略使用。该嵌入的大小随着示范的长度以及环境中块的数量而线性增长。

图4 示范网络

b. 上下文网络

上下文网络是我们模型的核心。如图5所示,它处理由示范网络产生的当前状态和嵌入,并输出上下文嵌入,其维度不依赖于示范的长度,或环境中的块数。因此,它被强制要求仅捕捉有相关性的信息,该信息将由操纵网络使用。

图5 上下文网络

c. 操纵网络

操纵网络是最简单的组件。如图6所示,在提取源信息和目标块的信息之后,使用简单的MLP 网络计算完成当前阶段中堆叠块所需的动作。这种分工开辟了模块化训练的可能性:可以训练操纵网络来完成这一简单的过程,而无需获知示范或多于两个块的相关信息。这一可能性我们将在未来的工作中探究。

图6 操纵网络

实验

  • 目标点到达任务

为了示范小数据模仿学习框架基础的关键概念,我们使用了之前描述的简单的2D 目标点到达任务进行实验。我们考虑采用难度渐进的多组任务,其中目的地的数量从2至10。我们从每个任务组收集10000个轨迹用于训练,其中目的地的位置和圆点机器人的起始位置是随机的。我们使用硬编码的专家策略来高效生成示范。我们通过在将计算动作应用于环境之前扰乱计算的动作来增加轨迹的噪声,我们使用简单的行为克隆来训练神经网络策略。该训练策略在新的场景下被评估,并依据训练中未曾出现过的新的演示轨迹调试。

我们评估之前描述的三种架构的表现。对于基于LSTM 的架构,我们通过在训练期间以0.1的概率清零激活,将停用(Srivastava et al.,2014)应用于全连接层。

结果如图7所示。我们观察到,随着架构变得越来越专业化,我们实现了更好的泛化性能。对于这个简单的任务来说,看起来,对整个示范的调节会损害泛化性能,即便没有明确的的规范,在最终状态进行的调节效果最好。这是不无道理的,因为最终状态已经足以反映整个任务。

图7 对于目标点到达任务,不同架构的成功率。“训练”曲线显示了网络“看”了示范后的成功率,训练过程中,策略在初始状态下运行;“测试”曲线显示了在新情况中的成功率。所有基于注意力的架构都取得了完美的训练成功率,曲线部分重叠。

  • 块堆叠任务

在块堆叠任务中,我们比较了下列架构的性能:

• DAGGER:我们使用了之前描述的架构,并使用DAGGER 对策略进行训练。

•BC:我们使用之前描述的架构,但是使用行为克隆训该策略。

•Final state:这种架构在最终状态而不是整个示范轨迹上自我调节。块堆叠任务类中的最终状态完全体现了这一任务的性质,因而不需要额外信息。然而,包含任务解决方案中间阶段信息的完整轨迹可以使训练最佳策略变得更容易,因为它可以直接基于示范学习,而无需将中间步骤记录到其参数中。这与在加强学习中奖励设计显著影响学习效果的方式有关。两种策略之间的比较将告诉我们这个假设是否合理。我们使用DAGGER 训练这一策略。

•Snapshot:这一架构基于轨迹的“快照“,包括示范轨迹中每个阶段的最后一帧。这就假设在测试期间示范的一个组成部分的不同阶段都可以获取,相比较其他调整策略就更具优势,因而比基于整个轨迹的调整应该表现出更好的性能。这同时也能给我们提供参考以判断,如果示范被清晰地分为若干区域,基于整个轨迹调整的策略是否可以表现得同样好。同样地,我们使用 DAGGER 训练这一策略。

图 8 展现了不同架构的性能。训练及测试任务的结果是分开列出的,其中的任务依据完成所需阶段的数量分组。这是因为需要更多阶段完成的任务难度更高。我们在100个不同的组合中使用贪婪策略来计算成功率,每一个组合都基于训练中未出现过的一种不同的示范。我们记录同一组中成功率的平均值。注意训练任务中并无具备8个阶段的任务,而测试任务中并无只有1个或3个步骤的任务,因而这些任务对应的项都被忽略了。

小结

在本文中,我们展示了一个简单的模型,该模型将单一一个成功完成的任务的演示演绎成为一种有效的策略,用于在新的场景下完成同一任务。我们通过目标点到达和块堆叠这两类任务演示了这种方式的有效性。我们计划将这一框架延伸至图形数据的演示,这将在无需单独的认知模块的情况下实现更多的端到端学习。我们同时也希望实现此策略在多个演示中自我调节,以避免单一演示无法消除任务目标中的歧义的问题。此外,最重要的是,我们希望将我们的方法应用到扩大及更广泛的任务范围,以探索该方法在实现一个可完成大量及多种类任务的机器人模拟学习系统的潜力。

论文下载:https://arxiv.org/pdf/1703.07326.pdf

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档