强化学习——环境库OpenAI Gym
前言
前段时间各大新闻媒体都在报道SpaceX的马斯克,因为其公司成功发射“猎鹰9号”火箭。马斯克是一个极具传奇色彩的人物,其成就也足以让他名垂青史。但今天我们要讨论的不是马斯克这个人,而是马斯克牵头建立的人工智能非营利组织OpenAI下一个强化学习工具库Gym,它可以被用来开发和比较强化学习算法。
简单的说,gym就是提供了强化学习中与agent交互的environments,gym中的环境都留出了供我们设计算法的相应接口,这为我们节省了不少事。下面就来看看这个gym库里有哪些东西吧~
安装
要求Python版本大于3.5,使用pip可以简单安装。
pip install gym
这种安装方法并没有安装gym中的全部环境,只包括了
- algorithmic
- toy_text
- classic_control
这三种类型的环境,另外还有Atari,Box2d和MuJoCo。按照自己的需要可以按照github上的指导进行安装。
环境(Environments)
下面是一个CarPole的例子,运行下面的代码就可以完成1000步:
import gym
env = gym.make('CartPole-v1')
env.reset()
for _ in range(1000):env.render()env.step(env.action_space.sample()) # take a random action
当我们需要使用别的环境时,只需将第二行代码中的CartPole-v1替换成别的,不知道有哪些可供选择?看看这里的环境列表。
观测(Observations)
上面的例子中,我们采取的是随机选取的动作(action),但实际中我们肯定希望更为合理的动作,所以我们希望知道动作作用以后会对环境造成上面影响,即需要一个反馈。环境的step函数正是我们所需要的,它执行以后会返回四个参数:
- Observations(object):代表您对特定环境的观测值。 例如,来自相机的像素数据,机器人的关节角度和关节速度,或棋盘游戏中的棋盘状态。
- reward (float):前一次行动所获得的奖励值。其范围在不同的环境中有所不同,但目标总是提高总奖励。
- done (boolean):一个布尔型数据,表示是否需要reset环境,即是否完成一个episode。比如上一个例子中我们杆是不是偏的太远,玩游戏时是不是丧命等
- info (dict): 用于调试的诊断信息。 它有时对学习有用(例如,它可能包含环境最后状态变化的原始概率)。 但是,agent的评估不能用这个信息去学习。
import gym
env = gym.make('CartPole-v0')
for i_episode in range(20):observation = env.reset()for t in range(100):env.render()print(observation)action = env.action_space.sample()observation, reward, done, info = env.step(action)if done:print("Episode finished after {} timesteps".format(t+1))break
空间(Spaces)
在上面的CarPole的例子中,我们使用了随机的action,这些随机的action就来自环境的动作空间(action space)。每一个环境都有一个动作空间(action space)和观测空间(observation space)。具体是什么情况可以查看属性action_space和observation_space,至于其含义就要去看代码注释和官网的一些说明啦。
import gym
env = gym.make('CartPole-v0')
print(env.action_space)
#> Discrete(2)
print(env.observation_space)
#> Box(4,)
参考
Gym: A toolkit for developing and comparing reinforcement learning algorithms
《Reinforcement Learning: An Introduction 第二版》PDF书籍与David Silver课程,欢迎关注我的公众号“野风同学”,回复“RL”即可获取。
一个程序员的自我成长之路,持续分享机器学习基础与应用、LeetCode面试算法和Python基础与应用等技术干货文章,同时也经常推荐高质量软件工具、网站和书籍。
强化学习——环境库OpenAI Gym相关推荐
- 强化学习环境库 Gym 发布首个社区发布版,全面兼容 Python 3.9
作者:肖智清 来源:AI科技大本营 强化学习环境库Gym于2021年8月中旬迎来了首个社区志愿者维护的发布版Gym 0.19.该版本全面兼容Python 3.9,增加了多个新特性. 强化学习环境库的事 ...
- dqn在训练过程中loss越来越大_强化学习笔记:OpenAI Gym+DQN+Tensorflow2实现
参考了一些文章,针对OpenAI gym环境,使用tf2.x实现了DQN算法:加上了一些没有太大必要(?)的小功能,比如:自动保存视频,保存训练日志从而利用TensorBoard实现数据可视化,保存和 ...
- 强化学习:使用OpenAI Gym Toolkit进行蒙特卡洛学习简介
Introduction 当你听到"强化学习"这个词时,你首先想到的是什么? 最常见的想法是 - 太复杂而且数学太多. 但我在此向您保证,这是一个非常迷人的研究领域 - 我的目标是 ...
- openai的gym baseline spiningup 深度强化学习环境安装 手撸gym环境demo
按照spiningup我们学习DRL,链接 https://github.com/openai/gym https://github.com/openai/baselines 1. 安装anacond ...
- 强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例
强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例 1. 引言 在这个部分补充之前马尔科夫决策和动态规划部分的代码.在以后的内容我会把相关代码都附到相关内容的后面.本部 ...
- 强化学习环境全库安装(从mujoco到spinningup)
强化学习环境全库安装 从mujoco200到spinningup (上篇) 前言 一: 安装Mujoco200物理引擎 二. 创建conda虚拟环境 1:选择python版本 2.创建conda虚拟环 ...
- 强化学习快餐教程(1) - gym环境搭建
强化学习快餐教程(1) - gym环境搭建 欲练强化学习神功,首先得找一个可以操练的场地. 两大巨头OpenAI和Google DeepMind都不约而同的以游戏做为平台,比如OpenAI的长处是DO ...
- 强化学习——蛇棋游戏gym环境搭建
强化学习--蛇棋游戏gym环境搭建 学习强化学习精要核心算法与Tensorflow实现这本书中,关于蛇棋游戏利用gym搭建.游戏的规则非常简单,详细请参考冯超的书<<强化学习精要核心算 ...
- 几行代码轻松实现,Tensorlayer 2.0推出深度强化学习基准库
2019-11-11 16:37:04 机器之心发布 机器之心编辑部 强化学习通过使用奖励函数对智能体的策略进行优化,深度强化学习则将深度神经网络应用于强化学习算法.深度强化学习由于其可扩展性,受到科 ...
最新文章
- 从超链接调用ActionScript
- Android的Fragment中onActivityResult不被调用
- 关于MVC框架和spring
- python3(十五)np.linalg.norm
- dp 树状数组 逆序元组
- 查询空缺_携程旅行2021校招开启,9大类职位,1000+岗位空缺,本科及以上学历...
- Oracle学习总结(2)——Oracle数据库设计总结(三大范式)
- C使用递归实现前N个元素的和
- 应用随机过程张波商豪_学术简报五相逆变器非正弦双随机空间矢量脉宽调制策略...
- rs232读取智能电表_预付费电表高性价比型号推荐 预付费抄表系统免费安装
- 台式计算机usb口接触不良,usb鼠标接触不良,手把手教你usb鼠标接触不良
- JMS消息服务 API解析
- php session fixation,Session Fixation 攻防实战
- 自我营销(转帖自 	 TI E2E 工程师社区 (Beta))
- mysql 改列定义_如何更改MySQL列定义?
- php微信公众号报警,Zabbix之微信订阅号平台报警
- Pycharm 报错 Environment location directory is not empty的解决方法
- 综述天分、标网、矢网、扫频仪的异同
- pandas学习笔记—agg()函数详解
- ie firefox 点flash 卡死解决方案