OpenAI开发的分级强化学习算法旨在解决高级操作

我们已经开发了一种分层强化学习算法,它学习用于解决一组任务的高级操作,可以快速解决需要数千个时间步长的任务。我们的算法应用于一组导航问题时,会发现一组用于在不同方向上进行走路和爬行的高级动作,这使智能体能够快速掌握新的导航任务。

视频一:http://imgcdn.atyun.com/2017/10/videoplayback-5.mp4

人类解决复杂挑战的方法是将它分解成很多小的易于控制的部分。例如,煎饼由一系列高层次的行动组成,如和面,加蛋,入锅等。人类能够通过对这些已经学会的部分进行排序来快速学习新的任务,即使这个任务可能需要数百万个的低级动作,如肌肉收缩等。

另一方面,现在的强化学习方法是通过对低级别行动的暴力搜索来进行的,它需要大量的尝试来解决新的任务。当你需要处理拥有大量时间步的任务时,这种方法效率极低。

我们的解决方案是基于分成强化学习的思想,智能体将复杂的操作表示为一个高级操作的简短序列。这样我们的智能体可以解决更难的任务:尽管解决方案可能需要2000个低级别的操作,但分成策略将其转换为10个高级操作的序列,这比搜索2000步序列效率高多了。

元学习共享分层

我们的算法,元学习共享分层(MLSH)学习了主策略在一组子策略之间切换的分层策略。主策略每N个时间步长选择一个动作,我们假设N = 200。执行N个时间步的子策略构成高级动作,就我们的导航任务而言,子策略对应于不同方向的爬行。

在以前的大多数工作中,分层政策都被明确地手工设计。而我们的目标是通过与环境的交互自动发现这种分层结构。从元学习的角度来看,我们定义一个好的分层结构可以很快的在未知的任务上获得高回报。因此,MLSH算法是在学习在未知的任务中实现快速学习的子策略。

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

实验

视频二:http://imgcdn.atyun.com/2017/10/dfgh.mp4

经过一夜之后,经过训练的智能体解决了九个不同的迷宫,发现了与向上,向右和向下运动相对应的子策略,然后自己导航走出了迷宫。

在我们的AntMaze环境中,Mujoco Ant机器人被放置在9个不同的迷宫中,要求它必须独立从入口走到出口。我们的算法能够成功地找到一组不同的子策略,这些子策略可以通过与环境的交互来解决迷宫任务。然后可以使用这组子策略来完成更大的任务。

视频三:http://imgcdn.atyun.com/2017/10/tyui.mp4

在单独的迷宫环境下进行训练,可以自动学习子策略来解决任务。

  • 代码:https://github.com/openai/mlsh

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2017-11-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏闻道于事

商城项目整理(三)JDBC增删改查

商品表的增加,修改,删除,订单表的增加,确认,用户表的查看,日志表的增加,查看 商品表建表语句: 1 create table TEST.GOODS_TABL...

5415
来自专栏xingoo, 一个梦想做发明家的程序员

windows程序设计-第四章 system1.c

/*---------------------------------------------------- SYSMETS1.C -- System M...

22810
来自专栏谈补锅

记录C#常用的代码片段

using Newtonsoft.Json; using Newtonsoft.Json.Linq;

882
来自专栏码匠的流水账

聊聊spring cloud的AbstractLoadBalancingClient

本文主要研究一下spring cloud的AbstractLoadBalancingClient

812
来自专栏跟着阿笨一起玩NET

[C#]工具类—FTP上传下载

  不错的文章:http://www.cnblogs.com/greatverve/archive/2012/03/03/csharp-ftp.html

1081
来自专栏成长道路

JDBC动态SQL语句连接orcale数据库的工具类

import java.sql.Connection; import java.sql.DriverManager; import java.sql.P...

2430
来自专栏积累沉淀

Hive2.0.0操作HBase 1.2.1报错解决

首先看错  org.apache.hive.service.cli.HiveSQLException: Failed to open new session: ...

2319
来自专栏菩提树下的杨过

winform中linkLabel的用法(示例)

private void Form1_Load(object sender, EventArgs e)         {             this...

1905
来自专栏听雨堂

想修改CSS

      下载了一个“通用”的CSS文件,本来想偷懒的,结果发现有问题,就是它用的颜色是变量定义的,无法识别。我又找不到在哪里可以定义。 BODY{     ...

20110
来自专栏码匠的流水账

聊聊EurekaRibbonClientConfiguration

spring-cloud-netflix-eureka-client-2.0.0.RELEASE-sources.jar!/org/springframewor...

1121

扫码关注云+社区