介绍
OpenAI Gym是一款用于研发和比较强化学习算法的工具包,它支持训练智能体(agent)做任何事——从行走到玩Pong或围棋之类的游戏都在范围中。
OpenAI Gym 是一个用于开发和比较RL 算法的工具包,与其他的数值计算库兼容,如tensorflow 或者theano 库。现在主要支持的是python 语言,以后将支持其他语言。官方提供的gym文档。
OpenAI Gym包含两部分:
gym 开源 包含一个测试问题集,每个问题成为环境(environment),可以用于自己的强化学习算法开发,这些环境有共享的接口,允许用户设计通用的算法,例如:Atari、CartPole等。
OpenAI Gym 服务
提供一个站点和api ,允许用户对自己训练的算法进行性能比较。
强化学习介绍
强化学习是机器学习的一个分支,目的是开发出智能体(Agent)做出决策和控制。
RL涵盖了所有涉及制定一系列决策的问题,如控制机器人的动作,玩游戏 video games , board games
RL甚至可以应用于序列与结构化输出的问题上。
RL已经有很长的历史,随着深度学习的出现近些年已经在许多复杂的问题上有着很好的表现,比如DeepMind’s Atari results, BRETT from Pieter Abbeel’s group, and AlphaGo,这些工作没有对环境做过多的假设,都运用了RL。
但是,RL也面临以下挑战:
更好的benchmarks:在监督学习中有ImageNet,而强化学习只有庞大的环境集合。但是目前这些环境还是缺少多样性。
缺少标准化的环境 :环境中很小的差异将大大改变问题的难度,因此发表过的研究工作无法重现和比较。
然后——OpenAI Gym出现了。
OpenAI Gym 环境
OpenAI Gym提供了多种多样的环境,从简单到困难,并涉及到许多不同类型的数据:
Classic control and toy text:
提供了一些RL相关论文中的一些小问题,开始学习Gym从这开始!
Algorithmic:
提供了学习算法的环境,比如翻转序列这样的问题,虽然能很容易用直接编程实现,但是单纯用例子来训练RL模型有难度的。这些问题有一个很好的特性: 能够通过改变序列长度改变难度。
Atari:
这里提供了一些小游戏,比如我们小时候玩过的小蜜蜂,弹珠等等。这些问题对RL研究有着很大影响!
Board games:
提供了Go这样一个简单的下棋游戏,由于这个问题是多人游戏,Gym提供有opponent与你训练的agent进行对抗。
2D and 3D robots:
机器人控制环境。 这些问题用 MuJoCo 作为物理引擎。
当然还有很多好玩的问题,比如CNN的自动调参、Minecraft等。
OpenAI Gym 评估平台
用户可以记录和上传算法在环境中的表现,生成评估报告。
用户可以使用Monitor Wrapper包装自己的代码环境,Gym记录算法的性能。
用户上传自己模型的Gist,可以生成评估报告,还能录制模型玩游戏的小视频。
在每个环境下都有一个排行榜,用来比较大家的模型表现。