雷锋网 AI 科技评论按:强化学习是学到一个策略解决智能体与环境间互动问题的重要学习范式。不过以往的强化学习过程都常常很低效,在复杂环境中往往难以收敛。这一方面由于简单的策略难以完善、细致地描述各种不同环境状态下的不同行为,另一方面也有由于可能的行为的组合太多所以要探索的空间太大了。
OpenAI的研究人员们这次就开发了一个层次化的强化学习算法,它可以学习到高阶的行动,用来解决一系列不同的任务,同时也可以快速学会解决总共需要上千个步骤的任务。当这个算法用来解决导航问题时,它能够为不同方向的走或者爬行学到一系列高级别的动作,这也让智能体能够快速掌握新的导航任务。
雷锋网 AI 科技评论把OpenAI博客的介绍文章编译如下。
人类应对复杂问题的方法是把它们分解成一系列小的、可控的步骤。比如“做馅饼”就是由一系列高级别的行为组成的,取面粉、打鸡蛋、摊在平底锅内、设定烤箱等等。人类能够快速学到新任务,靠的就是把已经学过的步骤组合起来,即便每个步骤都可能需要百万个低级别的行动组成,像让不同的肌肉做不同的动作这样。
然而,当前的强化学习算法的运行方式都是在低层次的行动中做暴力搜索,解决新问题的时候需要大量的尝试。对于那些需要依次执行很多个步骤的任务来说,这种搜索方法的效率就会变得非常低。
OpenAI的研究人员们提出了一种基于层次化强化学习的解决方案。这种方法中,智能体用几个高层次动作组成的序列表征复杂的行为。这样一来,智能体就可以解决复杂得多的任务:整个解决方案中可能需要2000步左右的低层次动作,层次化策略就可以把它们转化成10个高层次动作组成的序列,那么在这个10步动作的序列中进行搜索就比在2000步的序列中进行搜索高效得多。
在最开始的研究中,层次化策略都是显式地手工编写的。后来,他们把研究方向转变为让模型在与环境的互动中自动学到层次化结构。从元学习的角度,研究者们把好的层次结构定义为能够在以前未见过的任务中迅速达到高回报的结构。这样,MLSH算法的目标就变成了学到能够在以前未见过的任务中快速学习的子策略。
研究员们在许多不同的任务中训练算法,其中的子策略是共享的,然后对于每个样本任务学到一个新的主策略。在反复训练新的主策略的过程中,它也能自动找到与主策略的学习表现最符合的子策略。
在训练一整晚后,一个训练用于解决9种不同迷宫的MLSH的智能体就学到了分别对应着向上、向右和向下的动作,然后它就可以用这些动作帮它走出迷宫。
在“蚂蚁迷宫”环境中,一个 Mujoco 蚂蚁机器人被放在了9种不同的迷宫中,然后要从开始位置找到出口。OpenAI的新算法仅仅通过与环境互动就成功找到了一组各有不同的子策略,把它们组成序列后走出迷宫。这些训练得到的子策略之后就可以用来解决更大的任务。
雷锋网 AI 科技评论编译。
论文地址:https://arxiv.org/abs/1710.09767
GitHub地址:https://github.com/openai/mlsh (包含训练智能体的代码和评估算法用到的Mujoco环境)