强化学习工具包-OpenAI Gym

730 阅读10分钟

作者:OpenAi

翻译:suntiger

1.摘要

OpenAI Gym 是一个用于强化学习研究的工具包。它包含了一个不断增长的基准问题集合,这些问题通过一个通用接口暴露出来,还有一个网站,人们可以在那里分享他们的结果并比较不同算法的性能。本篇白皮书讨论了 OpenAI Gym 的组成部分以及在软件设计过程中做出的决策。

2.工具简介

(1). 环境:OpenAI Gym 提供了多种环境,涵盖从经典控制问题到游戏和模拟器等多个领域。这些环境为研究人员提供了一个标准化的平台,以便在相同条件下对比不同的强化学习算法。

(2). 接口:OpenAI Gym 设计了简洁、易用的接口,使得研究人员可以轻松实现和测试他们的算法。主要接口包括 reset()(重置环境)和 step()(执行动作并返回观测、奖励等信息)。

(3). 评估:为了公平地比较不同算法,OpenAI Gym 强调了评估方法的重要性。用户需要报告算法的性能分数以及评估过程中的不确定性。这有助于研究人员了解算法在不同环境中的性能,并找到改进的方法。

(4). 透明度与复现性:OpenAI Gym 鼓励研究人员共享代码、环境和结果,以提高研究的透明度和复现性。这有助于加速算法和环境的发展,以及识别强化学习中的关键挑战。

OpenAI Gym 通过提供一系列环境、简洁接口和评估方法,为强化学习研究人员提供了一个共享基础设施。这种设计使得研究人员能够更容易地对比和评估各种算法,并在公开的平台上分享他们的成果。

3.介绍

强化学习(RL)是机器学习的一个分支,关注的是决策序列的制定。强化学习具有丰富的数学理论,并在许多实际应用中取得了成功。近年来,将深度学习与强化学习相结合的研究进展引发了领域内的极大兴趣,因为人们发现像策略梯度和Q-learning这样的通用算法可以在困难问题上取得良好性能,而无需针对特定问题进行工程优化。

为了在强化学习方面取得更多进展,研究界需要良好的基准来比较算法。已经发布了各种基准,如Arcade Learning Environment (ALE) ,将一系列Atari 2600游戏作为强化学习问题进行暴露,最近还有RLLab关于连续控制的基准。关于其他强化学习基准的概述。OpenAI Gym旨在将这些先前基准集合的最佳元素结合起来,打造一个尽可能方便且易于访问的软件包。它包括具有通用接口的各种任务(称为环境),这个任务集合将随着时间的推移不断扩大。环境的版本管理方式可确保在软件更新时,实验结果仍具有意义且可复现。

除了软件库外,OpenAI Gym还有一个网站(gym.openai.com),在这个网站上,人们可以找到所有环境的计分板,展示用户提交的结果。鼓励用户提供源代码链接和详细的复现结果的指南。

4.背景

强化学习假定存在一个位于环境中的智能体。在每个时间步,智能体采取一个动作,并从环境中获得观测和奖励。强化学习算法试图最大化智能体与环境交互过程中总奖励的某种度量。在强化学习文献中,环境被形式化为部分可观测的马尔可夫决策过程。

OpenAI Gym关注强化学习的情景设置,其中智能体的经验被划分为一系列情景。在每个情景中,智能体的初始状态从一个分布中随机抽样,交互会持续到环境达到终止状态。情景强化学习的目标是最大化每个情景的总奖励期望,并在尽可能少的情景中实现高水平的性能。

图1.png

5.设计决策

OpenAI Gym的设计基于作者在开发和比较强化学习算法方面的经验,以及我们使用先前基准集合的经验。以下将总结我们的一些设计决策。

(1).环境而非智能体

两个核心概念是智能体和环境。我们选择仅为环境提供抽象,而不是智能体。这样做是为了最大化用户的便利性,允许他们实现不同风格的智能体接口。首先,可以想象一种“在线学习”风格,其中智能体在每个时间步以(观测,奖励,完成)作为输入,并逐步进行学习更新。在另一种“批量更新”风格中,智能体使用观测作为输入进行调用,RL算法单独收集奖励信息,稍后用于计算更新。通过仅指定智能体接口,我们允许用户以这两种风格编写智能体。

(2).强调样本复杂度,而不仅仅是最终性能

一个RL算法在环境上的性能可以沿着两个轴进行衡量:首先是最终性能;其次是学习所需的时间,即样本复杂度。更具体地说,最终性能是指学习完成后每个情景的平均奖励。学习时间可以用多种方式衡量,一种简单的方案是在超过平均性能阈值之前的情景数量。这个阈值是针对每个环境以特设的方式选择的,例如,作为一个经过大量训练的智能体所能达到的最大性能的90%。

最终性能和样本复杂度都很有趣,但是,可以使用任意数量的计算来提高最终性能,从而使其成为计算资源的比较,而非算法质量的比较。

(3).鼓励同行评审,而不是竞争

OpenAI Gym网站允许用户比较他们算法的性能。其灵感之一是Kaggle,Kaggle托管了一组有排行榜的机器学习竞赛。然而,OpenAI Gym计分板的目的并不是创造竞争,而是激发代码和想法的分享,并作为评估不同方法的有意义的基准。

强化学习带来了基准测试的新挑战。在监督学习中,性能是通过在测试集上的预测精度衡量的,其中正确的输出对参赛者是隐藏的。在强化学习中,衡量泛化性能的方式不那么直接,除非在一组未见过的环境上运行用户的代码,这将是计算成本很高的。在没有隐藏测试集的情况下,必须检查算法是否在其测试过的问题上“过拟合”(例如,通过参数调整)。

我们希望鼓励对用户提交的结果进行同行评审的过程。因此,OpenAI Gym要求用户创建一个撰写文档并描述他们的算法、使用的参数并链接到代码。撰写文档应允许其他用户重现结果。有了源代码,就有可能对算法是否“过拟合”到手头的任务进行细致的判断。

(4).对环境进行严格的版本控制

如果环境发生变化,变化前后的结果将无法比较。为避免这个问题,我们保证对环境的任何更改都将伴随着版本号的增加。例如,CartPole任务的初始版本名为Cartpole-v0,如果其功能发生变化,名称将更新为Cartpole-v1。

(5).默认情况下进行监控

默认情况下,环境配备了一个监视器,该监视器跟踪每次调用时间步(一个仿真步骤)和重置(抽样一个新的初始状态)。监视器的行为是可配置的,可以定期录制视频。它还足以生成学习曲线。视频和学习曲线数据可以轻松发布到OpenAI Gym网站。

下图是当前OpenAI Gym中一些环境的图像:

图2.png

6.环境

OpenAI Gym包含一系列环境(POMDPs),这些环境将随着时间的推移而增长。请参见上图示例。在Gym初始beta版发布时,包含了以下环境:

• 经典控制和玩具文本:来自RL文献的小规模任务。

• 算法:执行诸如添加多位数和反转序列等计算。这些任务中的大多数都需要记忆,通过改变序列长度可以选择其难度。

• Atari:经典Atari游戏,使用屏幕图像或RAM作为输入,基于Arcade Learning Environment 。

• 棋盘游戏:目前,我们包括了9x9和19x19棋盘上的围棋游戏,其中Pachi引擎作为对手。

• 2D和3D机器人:在仿真环境中控制机器人。这些任务使用MuJoCo物理引擎,该引擎专为快速、准确的机器人仿真设计。其中一些任务改编自RLLab 。

自初始发布以来,已经创建了更多的环境,包括基于开源物理引擎Box2D或通过VizDoom的Doom游戏引擎的环境。

7.参考文献

[1] Dimitri P Bertsekas, Dimitri P Bertsekas, Dimitri P Bertsekas, and Dimitri P Bertsekas. Dynamic programming and optimal control. Athena Scientific Belmont, MA, 1995.

[2] V. Mnih, K. Kavukcuoglu, D. Silver, A. A. Rusu, J. Veness, M. G. Bellemare, A. Graves, M. Riedmiller, A. K. Fidjeland, G. Ostrovski, S. Petersen, Sadik Beattie, C., Antonoglou A., H. I., King, D. Kumaran, D. Wierstra, S. Legg, and D. Hassabis. Human-level control through deep reinforcement learning. Nature, 518(7540):529–533, 2015.

[3] J. Schulman, S. Levine, P. Abbeel, M. I. Jordan, and P. Moritz. Trust region policy optimization. In ICML, pages 1889–1897, 2015.

[4] Volodymyr Mnih, Adria Puigdomenech Badia, Mehdi Mirza, Alex Graves, Timothy P Lillicrap, Tim Harley, David Silver, and Koray Kavukcuoglu. Asynchronous methods for deep reinforcement learning. arXiv preprint arXiv:1602.01783, 2016.

[5] M. G. Bellemare, Y. Naddaf, J. Veness, and M. Bowling. The Arcade Learning Environment: An evaluation platform for general agents. J. Artif. Intell. Res., 47:253–279, 2013.

[6] Yan Duan, Xi Chen, Rein Houthooft, John Schulman, and Pieter Abbeel. Benchmarking deep reinforcement learning for continuous control. arXiv preprint arXiv:1604.06778, 2016.

[7] A. Geramifard, C. Dann, R. H. Klein, W. Dabney, and J. P. How. RLPy: A value-function-based reinforcement learning framework for education and research. J. Mach. Learn. Res., 16:1573–1578, 2015.

[8] B. Tanner and A. White. RL-Glue: Language-independent software for reinforcement-learning experiments. J. Mach. Learn. Res., 10:2133–2136, 2009.

[9] T. Schaul, J. Bayer, D. Wierstra, Y. Sun, M. Felder, F. Sehnke, T. Ruckstieß, and J. Schmidhuber. PyBrain. ¨ J. Mach. Learn. Res., 11:743–746, 2010.

[10] S. Abeyruwan. RLLib: Lightweight standard and on/off policy reinforcement learning library (C++). web.cs.miami.edu/home/samind…, 2013.

[11] Christos Dimitrakakis, Guangliang Li, and Nikoalos Tziortziotis. The reinforcement learning competition 2014. AI Magazine, 35(3):61–65, 2014.

[12] R. S. Sutton and A. G. Barto. Reinforcement Learning: An Introduction. MIT Press, 1998.

[13] Petr Baudis and Jean-loup Gailly. Pachi: State of the art open source go program. In ˇ Advances in Computer Games, pages 24–38. Springer, 2011.

[14] Emanuel Todorov, Tom Erez, and Yuval Tassa. Mujoco: A physics engine for model-based control. In Intelligent Robots and Systems (IROS), 2012 IEEE/RSJ International Conference on, pages 5026–5033. IEEE, 2012.

[15] Michał Kempka, Marek Wydmuch, Grzegorz Runc, Jakub Toczek, and Wojciech Jaskowski. Vizdoom: A ´ doom-based ai research platform for visual reinforcement learning. arXiv preprint arXiv:1605.02097, 2016