OpenAI Gym介绍
2017-09-20 13:56
316 查看
上篇博客介绍了OpenAI Gym、OpenAI Gym与强化学习以及OpenAI Gym的安装,接下来运行一个demo体验一下OpenAIGym这个平台,以CartPole(倒立摆)为例,在工作目录下建立一个python模块,代码如下:
import gym env = gym.make('CartPole-v0') env.reset() for _ in range(1000): env.render() env.step(env.action_space.sample()) # take a random action123456其中env.reset()重置环境的状态,、env.render()重绘环境的一帧 由动画结果可以看出随机控制算法发散,系统很快失去稳定。如果想查看其他一些环境,请尝试用MountainCar-v0,MsPacman-v0(需要Atari依赖关系)或Hopper-v1(需要MuJoCo依赖项)替换上述CartPole-v0,这些环境都来自Env基类。最近在学习强化学习,在师兄的推荐下,自学了一款用于研发和比较强化学习算法的工具包——OpenAI Gym,它支持训练智能体(agent)做任何事——从行走到玩Pong或围棋之类的游戏都在范围中。OpenAI Gym 是一个用于开发和比较RL 算法的工具包,与其他的数值计算库兼容,如tensorflow 或者theano 库。现在主要支持的是python语言,以后将支持其他语言。官方提供的gym文档。
1.OpenAI Gym组成
Openai gym 包含2 部:gym 开源 包含一个测试问题集,每个问题成为环境(environment),可以用于自己的强化学习算法开发,这些环境有共享的接口,允许用户设计通用的 算法,例如:Atari、CartPole等。OpenAI Gym 服务 提供一个站点和api ,允许用户对他们训练的算法进行性能比较。2.强化学习与OpenAI Gym
强化学习(reinforcement learning,RL)是机器学习的一个分支,考虑的是做出一系列的决策。它假定有一个智能体(agent)存在于环境中。在每一步中,智能体(agent)采取一个行动,随后从环境中收到观察与回报。一个RL算法寻求的是,在一个原先毫无了解的环境中通过一段学习过程——通常包括许多试错——让智能体(agent)收到的总体回报最大化。 在强化学习中有2 个基本概念,一个是环境(environment),称为外部世界,另一个为智能体agent(写的算法)。agent 发送action 至environment,environment返回观察和回报。而OpenAI Gym 的核心接口是Env,作为统一的环境接口。Env 包含以下核心方法:env.reset(self):重置环境的状态,返回观察env.step(self,action):推进一个时间步长,返回observation,reward,done,infoenv.render(self,mode=’human’,close=False):重绘环境的一帧。默认模式一般比较友好,如弹出一个窗口3.OpenAI Gym安装
安装依赖包$ apt-get install -y python-numpy python-dev cmake zlib1g-dev libjpeg-dev xvfb libav-tools xorg-dev python-opengl libboost-all-dev libsdl2-dev swig1git安装
$ git clone https://github.com/openai/gym $ cd gym $ pip install -e . # minimal install or $ pip install -e .[all] # full install (this requires cmake and a recent pip version)12345pip安装
$ pip install gym #minimal install or $ pip install gym[all] #full install, fetch gym as a package上篇博客介绍了OpenAI Gym、OpenAI Gym与强化学习以及OpenAI Gym的安装,接下来运行一个demo体验一下OpenAI Gym这个平台,以CartPole(倒立摆)为例,在工作目录下建立一个python模块,代码如下:
import gym env = gym.make('CartPole-v0') env.reset() for _ in range(1000): env.render() env.step(env.action_space.sample()) # take a random action123456其中env.reset()重置环境的状态,、env.render()重绘环境的一帧 由动画结果可以看出随机控制算法发散,系统很快失去稳定。如果想查看其他一些环境,请尝试用MountainCar-v0,MsPacman-v0(需要Atari依赖关系)或Hopper-v1(需要MuJoCo依赖项)替换上述CartPole-v0,这些环境都来自Env基类。
相关文章推荐
- OpenLayer 介绍
- 开源GIS介绍(openlayer,leaflet,mapbox,cesium)
- JS中open()函数介绍
- OpenCPN介绍及编译
- 网络-----open switch 介绍
- Android OMAP4 Ducati 和 OpenMax IL介绍
- ActiveXObject对象的OpenTextFile方法介绍
- NDIS的NDIS_PROTOCOL_BLOCK和NDIS_OPEN_BLOCK的介绍
- Recordset.Open方法参数介绍
- OpenStreetMap地图数据介绍(转)
- Recordset.Open方法参数介绍
- open_input_file()函数介绍
- iModel插件介绍之FormOpenForFunc
- Open vSwitch介绍
- openssl之EVP系列之13---EVP_Open系列函数介绍
- openssl之EVP系列之13---EVP_Open系列函数介绍
- 一步一步学习openfire+spark(2)——介绍几个概念
- C++开源代码覆盖率工具OpenCppCoverage介绍(Windows)
- 开放设计联盟介绍 ODA (Open Design Alliance) Introduction
- 【Stanford Machine Learning Open Course】2. 线性回归问题介绍