前言

前段时间各大新闻媒体都在报道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相关推荐

  1. 强化学习环境库 Gym 发布首个社区发布版,全面兼容 Python 3.9

    作者:肖智清 来源:AI科技大本营 强化学习环境库Gym于2021年8月中旬迎来了首个社区志愿者维护的发布版Gym 0.19.该版本全面兼容Python 3.9,增加了多个新特性. 强化学习环境库的事 ...

  2. dqn在训练过程中loss越来越大_强化学习笔记:OpenAI Gym+DQN+Tensorflow2实现

    参考了一些文章,针对OpenAI gym环境,使用tf2.x实现了DQN算法:加上了一些没有太大必要(?)的小功能,比如:自动保存视频,保存训练日志从而利用TensorBoard实现数据可视化,保存和 ...

  3. 强化学习:使用OpenAI Gym Toolkit进行蒙特卡洛学习简介

    Introduction 当你听到"强化学习"这个词时,你首先想到的是什么? 最常见的想法是 - 太复杂而且数学太多. 但我在此向您保证,这是一个非常迷人的研究领域 - 我的目标是 ...

  4. openai的gym baseline spiningup 深度强化学习环境安装 手撸gym环境demo

    按照spiningup我们学习DRL,链接 https://github.com/openai/gym https://github.com/openai/baselines 1. 安装anacond ...

  5. 强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例

    强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例 1. 引言 在这个部分补充之前马尔科夫决策和动态规划部分的代码.在以后的内容我会把相关代码都附到相关内容的后面.本部 ...

  6. 强化学习环境全库安装(从mujoco到spinningup)

    强化学习环境全库安装 从mujoco200到spinningup (上篇) 前言 一: 安装Mujoco200物理引擎 二. 创建conda虚拟环境 1:选择python版本 2.创建conda虚拟环 ...

  7. 强化学习快餐教程(1) - gym环境搭建

    强化学习快餐教程(1) - gym环境搭建 欲练强化学习神功,首先得找一个可以操练的场地. 两大巨头OpenAI和Google DeepMind都不约而同的以游戏做为平台,比如OpenAI的长处是DO ...

  8. 强化学习——蛇棋游戏gym环境搭建

    强化学习--蛇棋游戏gym环境搭建   学习强化学习精要核心算法与Tensorflow实现这本书中,关于蛇棋游戏利用gym搭建.游戏的规则非常简单,详细请参考冯超的书<<强化学习精要核心算 ...

  9. 几行代码轻松实现,Tensorlayer 2.0推出深度强化学习基准库

    2019-11-11 16:37:04 机器之心发布 机器之心编辑部 强化学习通过使用奖励函数对智能体的策略进行优化,深度强化学习则将深度神经网络应用于强化学习算法.深度强化学习由于其可扩展性,受到科 ...

最新文章

  1. 从超链接调用ActionScript
  2. Android的Fragment中onActivityResult不被调用
  3. 关于MVC框架和spring
  4. python3(十五)np.linalg.norm
  5. dp 树状数组 逆序元组
  6. 查询空缺_携程旅行2021校招开启,9大类职位,1000+岗位空缺,本科及以上学历...
  7. Oracle学习总结(2)——Oracle数据库设计总结(三大范式)
  8. C使用递归实现前N个元素的和
  9. 应用随机过程张波商豪_学术简报五相逆变器非正弦双随机空间矢量脉宽调制策略...
  10. rs232读取智能电表_预付费电表高性价比型号推荐 预付费抄表系统免费安装
  11. 台式计算机usb口接触不良,usb鼠标接触不良,手把手教你usb鼠标接触不良
  12. JMS消息服务 API解析
  13. php session fixation,Session Fixation 攻防实战
  14. 自我营销(转帖自 TI E2E 工程师社区 (Beta))
  15. mysql 改列定义_如何更改MySQL列定义?
  16. php微信公众号报警,Zabbix之微信订阅号平台报警
  17. Pycharm 报错 Environment location directory is not empty的解决方法
  18. 综述天分、标网、矢网、扫频仪的异同
  19. pandas学习笔记—agg()函数详解
  20. ie firefox 点flash 卡死解决方案

热门文章

  1. onMeasure学习笔记
  2. 小i机器人软件工程师揭秘机器人的“脑细胞”NLU
  3. 2022单片机筑基教程
  4. 最全面的Android资料大全
  5. springboot学习(五)自动配置原理及@Conditional派生注解
  6. HTML期末作业课程设计期末大作业——电影网页制作
  7. 进程管理之进程优先级
  8. Java8-Stream流整合(1)
  9. 数字化原住民|ONES 人物
  10. 开源协同办公平台部署教程:O2OA PAAS平台部署