OpenAI Gym入门与实操(2)

news/2024/5/19 1:12:21 标签: 人工智能, OpenAI Gym, 强化学习

本文内容参考:

Getting Started With OpenAI Gym | Paperspace Blog,

强化学习OpenAI Gym入门:基础组件(Getting Started With OpenAI Gym: The Basic Building Blocks)_iioSnail的博客-CSDN博客

3. 环境(Environments)

Environment是Gym最核心的一个概念,OpenAI Gym的基本构建块是Env类。它是一个Python类,基本上实现了一个模拟器,该模拟器运行你希望在其中培训智能体的环境。OpenAI Gym有很多环境,一个Environment可以理解为一个游戏,比如你可以把车开到山上、平衡摆动的钟摆、在雅达利游戏中得分,等等。Gym也为你提供了创建自定义环境的能力。

我们从一个名为MountainCar的环境开始,目标是将车开到山顶上。车在一条一维的轨道上,位于两座“山”之间,目标是将车开到右边的山顶上。然而,这辆车的发动机不足以一次翻过这座山,因此,成功的唯一途径是来回推动以建立动量。

The goal of the Mountain Car Environment is to gain momentum and reach the flag.

这个让小车到达山顶就是一个简单的游戏。你可以通过一个如下代码来加载该Environment:

import gym
env = gym.make('MountainCar-v0')

其返回的是一个Env对象。 

环境的基本结构由Gym Env类的observation_space和action_space属性描述。observation_space定义了环境状态观测的结构和合法值。对于不同的环境,观察可以是不同的事物。最常见的形式是游戏的屏幕截图。也可以有其它形式的观测,例如以矢量形式描述的环境的某些特征。

类似地,Env类还定义了一个名为action_space的属性,该属性描述了可以应用于环境的合法操作的数字结构。

  • Action

Action就是Agent可以做出的动作,通常分为离散和连续两种。

  • Observation

游戏Observation的状态。

通过以下命令查看env对象的observation_spaceaction_space属性值:

# Observation and action space 
obs_space = env.observation_space
action_space = env.action_space
print("The observation space: {}".format(obs_space))
print("The action space: {}".format(action_space))

结果如下:

The observation space: Box(2,)
The action space: Discrete(3)

Observation Shape为(2, ) 表示该Environment的Observation是一个2维向量;Discrete(3)表示该Agent可以做3种不同的动作。

对mountain car环境的Observation是一个表示速度和位置的两个数字的矢量。以两山的中点为原点,右为正方向,左为负方向。

Observation空间和Action空间分别由称为Box和Discrete的类表示。这些是Gym提供的多种数据结构之一,用于实现不同场景(离散动作空间、连续动作空间等)的观察和动作空间。

我们将在后续文章进一步探讨这些问题。


http://www.niftyadmin.cn/n/1191357.html

相关文章

State状态模式

1、简介 在日常开发中,某些对象的状态如果发生改变,对应的行为也将发生改变,那么如何在运行时根据对象的状态动态的改变对象的行为,同时不产生紧耦合关系(即使用if else或者swith所带来的紧耦合关系).即对扩展开放,对修改关闭一开闭原则. 2、案例 假设用户提出了一个需求,有三类…

建设数据安全平台,助力政府大数据应用发展

政务数据安全面临的问题 随着政务数据资源的大量汇聚、共享开放,衍生出一系列数据安全相关问题。 一.含个人身份信息等敏感数据未按照敏感等级,分级分类管理并建立脱密脱敏管理体系; 二.数据高度集中导致数据更容易成为攻击的目标&#xf…

Windows批处理中获取日期和时间

编写Windows bat 批处理时经常会需要使用到日期和时间作为文件名,所以是非常重要的。 如何获取日期呢? 格式: %date% 结果: 2012-07-31 如何获取时间呢? 格式: %time% 结果: 10:21:21.68 这是获取的系统标准格式…

Java面试常见知识点总结(三)

21.volatile关键字: 一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义: (1) 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新…

居民消费价格指数变化新鲜出炉,这类商品同比涨幅最大

对比分析2022年10月份全国居民消费价格数据发现,今年10 月份CPI 同比增2.5%,维持近8个月新高; PPI 同比增3.3%,同比涨幅较上个月回落 2.2 个百分点。 ​ | CPI同比增2.5%,维持近8个月新高 全国居民消费价格涨跌幅情…

今天加班,所以就早上不买菜了

晚上还是到外面吃饭算了,如果回得早还是回来买点菜。 转载于:https://www.cnblogs.com/bkchengzheng/p/5789570.html

MybatisMapper 动态映射(增删改查)

//接口内容以及注意事项 1 package cn.jy.mybatis.mapper;2 3 import java.util.List;4 5 import cn.jy.mybatis.pojo.User;6 7 public interface UserMapper {8 //四个原则9 //1 .xml中的名称空间要绑定此接口 <mapper namespace"cn.jy.mybatis.mapper.…

房产|1-10月全国房地产开发投资数据解读

2022年1—10月份&#xff0c;全国房地产开发投资113945亿元&#xff0c;同比下降8.8%&#xff1b;其中&#xff0c;住宅投资86520亿元&#xff0c;下降8.3%。 1—10月份&#xff0c;房地产开发企业房屋施工面积888894万平方米&#xff0c;同比下降5.7%。 其中&#xff0c;住宅…