跳至主要内容
OpenAI
正在加载…

我们开发了一种分层强化学习算法,可学习对解决一系列任务有用的高级操作,从而快速解决需要数千个时间步的任务。当我们的算法应用于一组导航问题时,它能发现一组用于不同方向行走和爬行的高级操作,从而使智能体快速掌握新的导航任务。

人类通过将复杂的挑战分解成易于处理的小部分来解决它们。烤煎饼由一系列高级动作组成,如测量面粉、搅拌鸡蛋、将混合物倒入锅中、打开炉灶等。人类能够通过将这些已学过的部分进行排序来快速学习新任务,尽管这项任务可能需要数百万个低级动作,即单个肌肉收缩。

另一方面,当今的强化学习方法是通过对低级操作进行蛮力搜索来运行的,这就需要大量的尝试才能解决一个新任务。这些方法在解决需要大量时间步的任务时效率非常低。

我们的解决方案基于分层强化学习的理念,即智能体将复杂的行为表现为一连串简短的高级操作。这样,我们的智能体就能解决难度更大的任务:虽然解决方案可能需要 2000 个低级操作,但分层策略将其转化为 10 个高级操作序列,而且搜索 10 步序列比搜索 2000 步序列更有效。

元学习共享层次结构

观察结果经过策略处理并转化为操作的流程图

我们的算法——元学习共享分层 (MLSH)——学习一种分层策略,其中主策略在一组子策略之间切换。主策略每 N 个时间步选择一次操作,我们可以取 N=200。在 N 个时间步内执行的子策略构成一个高级操作,对于我们的导航任务来说,子策略对应于向不同方向行走或爬行。

在之前的大多数工作中,分层策略都是明确的手工设计。而我们的目标是通过与环境的交互自动发现这种分层结构。从元学习的角度出发,我们将一个好的分层结构定义为:当在未见过的任务上进行训练时,能迅速达到高回报的分层结构。因此,MLSH 算法旨在学习子策略,以便在以前未见过的任务上快速学习。

我们在任务分布上进行训练,共享子策略,同时在每个抽样任务上学习新的主策略。通过反复训练新的主策略,这一过程会自动找到适应主策略学习动态的子策略。

实验

正在加载...

在我们的蚂蚁迷宫环境中,Mujoco 蚂蚁机器人被放置在 9 个不同的迷宫中,必须从起始位置导航到目标。我们的算法仅通过与环境的交互,就能成功地找到一组不同的子策略,并将其排序在一起,从而解决迷宫任务。然后,这套子策略可以用来完成比训练时更大的任务(见文章开头的视频)。

正在加载...

代码

我们将发布用于训练 MLSH 智能体的代码(在新窗口中打开),以及用于评估这些算法的 MuJoCo 环境。

作者

Kevin Frans、Jonathan Ho、Peter Chen、Pieter Abbeel