One-Shot Imitation Learning
项目·地址:Robots that Learn (openai.com)
一眼模仿学习
Imitation learning has been commonly applied to solve different tasks in isolation. This usually requires either careful feature engineering, or a significant number of samples. This is far from what we desire: ideally, robots should be able to learn from very few demonstrations of any given task, and instantly generalize to new situations of the same task, without requiring task-specific engineering. In this paper, we propose a meta-learning framework for achieving such capability, which we call one-shot imitation learning.
Specifically, we consider the setting where there is a very large (maybe infinite) set of tasks, and each task has many instantiations. For example, a task could be to stack all blocks on a table into a single tower, another task could be to place all blocks on a table into two-block towers, etc. In each case, different instances of the task would consist of different sets of blocks with different initial states. At training time, our algorithm is presented with pairs of demonstrations for a subset of all tasks. A neural net is trained such that when it takes as input the first demonstration demonstration and a state sampled from the second demonstration, it should predict the action corresponding to the sampled state. At test time, a full demonstration of a single instance of a new task is presented, and the neural net is expected to perform well on new instances of this new task. Our experiments show that the use of soft attention allows the model to generalize to conditions and tasks unseen in the training data. We anticipate that by training this model on a much greater variety of tasks and settings, we will obtain a general system that can turn any demonstrations into robust policies that can accomplish an overwhelming variety of tasks.
模仿学习已普遍用于孤立地解决不同任务。 这通常需要仔细的特征工程或大量的样本。 这远非我们所期望的:理想情况下,机器人应该能够从很少的任何给定任务演示中学习,并能立即推广到同一任务的新情况,而无需进行特定于任务的工程。 在本文中,我们提出了一种用于实现这种能力的元学习框架,我们将其称为一次性模仿学习。
具体来说,我们考虑存在非常大(可能是无限)任务集的设置,并且每个任务都有许多实例化。例如,一项任务可能是将表上的所有块堆叠到单个塔中,另一项任务可能是将表上的所有块放置到两块塔中,依此类推。在每种情况下,任务的不同实例将包括具有不同初始状态的不同块集。在训练时,我们的算法会以成对的演示形式展示所有任务的子集。训练神经网络,使得当将第一演示示范和从第二演示采样的状态作为输入时,它应预测与采样状态相对应的动作。在测试时,将展示新任务的单个实例的完整演示,并且神经网络有望在该新任务的新实例上表现良好。我们的实验表明,使用软注意力可以使模型推广到训练数据中看不到的条件和任务。我们期望通过在更多种类的任务和设置上训练此模型,我们将获得一个通用系统,该系统可以将任何演示转化为可以完成大量任务的强大策略。
2.Related Work
模仿学习考虑了通过观察示范获得技能的问题。 调查文章包括[48,11,3]。模仿学习中的两个主要工作是行为克隆,它是从观察到行动的监督学习(例如[41,44])。 逆向强化学习[37],其中奖励函数[1,66,29,18,22]被估计为解释了示范行为(接近最佳行为)。 尽管过去的工作产生了许多令人印象深刻的机器人技术成果,但它分别考虑了每种技能,并且学会模仿一种技能并不能加快学习模仿另一项技能的速度。已针对图像识别[61、26、47、42],生成建模[17、43]和通过循环策略学习“快速”强化学习代理,研究了单发和少发学习。 快速适应还可以通过快速权重实现[5]。 像我们的算法一样,许多上述方法都是元学习的一种形式[58,49,36],其中算法本身是在学习中。 还研究了元学习来发现神经网络权重优化算法[8、9、23、50、2、31]。 但是,有关单次学习和元学习的先前工作是针对各个领域(图像识别,生成模型,强化学习,优化)量身定制的,不适用于模仿学习环境。 最近,[19]提出了一种跨上述几个领域进行元学习的通用框架。 但是,他们不考虑模仿学习设置。强化学习[56,10]通过反复试验学习,提供了另一种获取技能的途径。 强化学习取得了许多成功,包括步步高[57],直升机控制[39],雅达利[35],围棋[52],模拟[51,21,32]和真实机器人[40,30]的连续控制。 但是,强化学习往往需要大量的尝试,并且需要指定奖励函数来定义手头的任务。 前者可能很耗时,而后者通常比提供示范要困难得多[37]。多任务和转移学习考虑了学习策略的适用性和重用问题,超出了单个任务。 成功案例包括计算机视觉领域的领域适应[64、34、28、4、15、24、33、59、14]和控制[60、45、46、20、54]。 但是,虽然比独立获得每种技能要快得多,但这些方法并不能提供从单个演示中轻松掌握新技能的能力。
我们的方法在很大程度上依赖于演示的注意力模型和当前观察的注意力模型。 我们使用[6]中提出的软注意力模型进行机器翻译,该模型也已经成功地用于图像字幕[63]。 在[7,12]中提出的交互网络在学习中也利用了物理交互的局部性。 我们的模型还与序列模型[55,13]有关,因为在两种情况下,我们都消耗很长的演示序列,并且有效地发出了很长的动作序列。
3.2块堆叠任务
为了阐明问题的设置,我们描述了一个块堆叠任务分布的具体示例,稍后我们还将在实验中进行研究。 这些任务之间共享的组成结构使我们能够研究对看不见的任务的非平凡归纳。对于每个任务,目标是控制7自由度Fetch机械臂,以将各种数量的立方体形块堆叠到用户指定的特定配置中。 每种配置都由排列成不同高度的塔的一系列块组成,并且可以通过字符串来标识。例如,ab cd ef gh表示我们要堆叠4个塔,每个塔有两个区块,并且我们希望区块A位于区块B的顶部,区块C位于区块D的顶部,区块E位于区块F的顶部, 这些配置中的每一个都对应于一个不同的任务。 此外,在每个情节中,块的开始位置可能会变化,这甚至在训练任务内也需要学习的策略来概括。在典型任务中,观察值是相对于抓手的(x,y,z)对象位置的列表,以及抓手是打开还是关闭的信息。 对象的数量可能会因不同的任务实例而异。 我们将阶段定义为将一个块堆叠在另一个块上的单个操作。 例如,任务ab cd ef gh有四个阶段。
4 Architecture
原则上,虽然通用神经网络可以学习从演示和当前观察到适当动作的映射,但我们发现使用适当的体系结构很重要。 我们用于学习块堆叠的体系结构是本文的主要贡献之一,并且我们认为,这代表了当考虑更复杂的任务时,用于一站式模仿学习的体系结构将来会是什么样子。
我们提出的体系结构由三个模块组成:演示网络,上下文网络和操作网络。 图2给出了该架构的图示。我们将在下面的每个模块中描述主要操作,附录中提供了完整的规范。
4.1 Demonstration Network
演示网络接收演示轨迹作为输入,并生成要由策略使用的演示的嵌入。 嵌入的大小随演示的长度以及环境中的块数而线性增长。
4.2 Context network
上下文网络是我们模型的关键。 它处理当前状态和演示网络产生的嵌入,并输出上下文嵌入,其大小不取决于演示的长度或环境中的块数。 因此,被迫仅捕获将由操纵网络使用的相关信息。
注意演示:上下文网络首先根据当前状态计算查询向量,然后将其用于演示嵌入的不同时间步骤。 将同一时间步长内不同块的注意权重相加,以每个时间步长产生单个权重。 这种暂时注意的结果是一个向量,其大小与环境中的块数成正比。 然后,我们施加邻域注意,以在每个块的嵌入中传播信息。 重复此过程多次,在此状态下使用具有不固定权重的LSTM单元提高状态。
注意当前状态:先前的操作会生成一个嵌入,嵌入的大小与演示的长度无关,但仍取决于块的数量。 然后,我们在当前状态上施加标准的软注意力以生成固定维向量,其中内存内容仅由每个块的位置组成,这些位置与机器人的状态一起形成上下文嵌入,然后传递到操纵网络 。
直观地,尽管环境中的物体的数量可以变化,但是在操纵操作的每个阶段,相关物体的数量很小并且通常是固定的。 特别是对于块堆叠环境,机器人只需要注意它要拾取的块(源块)的位置,以及它试图放置在()顶部的块的位置。 目标块)。 因此,经过适当训练的网络可以学习将当前状态与演示中的相应阶段进行匹配,并推断源块和目标块的标识,表示为不同块上的软注意力权重,然后将其用于提取相应位置以 被传递到操纵网络。 尽管我们没有在培训中强制执行这种解释,但是我们的实验分析支持了对所学政策如何在内部起作用的这种解释。
4.3 Manipulation network
操纵网络是最简单的组件。 在提取了源块和目标块的信息之后,它使用一个简单的MLP网络计算完成将一个块堆叠在另一个块之上的当前阶段所需的动作。 这种分工开辟了模块化培训的可能性:可以对操纵网络进行培训以完成此简单过程,而无需了解环境中的演示或两个以上的模块。 我们将这种可能性留给以后的工作。
6 Conclusions
在这项工作中,我们提出了一个简单的模型,该模型将任务的单个成功演示映射到在新情况下解决该任务的有效策略。 我们证明了此方法在一系列块堆叠任务中的有效性。 未来的工作有很多令人兴奋的方向。 我们计划将框架以图像数据的形式扩展到演示,这将允许更多的端到端学习,而无需单独的感知模块。 我们也有兴趣让该政策以多次示威为条件,以防一次示威无法完全解决目标中的歧义。 此外,最重要的是,我们希望在更大更广泛的任务分配上扩展我们的方法,并探索其在通用机器人模仿学习系统上的潜力,该系统将能够实现压倒性的各种任务。