14-一段插曲:强化学习扩展库-gymnasium简介

2024-01-09 19:43:58

1. 引言

最近工作有点忙,读了一下强化学习扩展库,初步了解了gym。分享一下。

当前,强化学习的发展,推动了强化学习相关的python扩展库的开发。开源Gym(目前已经迁移到Gymnasium)已经实现了一个抽象的环境类Gym.Env,并且在扩展库中,已经包含了多种具体环境类,可以模拟诸如飞船着陆,击球游戏等环境。本篇目前对实验一中的格子世界寻宝游戏的智能体的设计有一定的借鉴作用,但不太大,因为Gym.Env是假设智能体不知道环境模型,而实验一则假设智能体能获知环境模型的MDP描述(五元组)。
不过,暂时了解,有助于提高咱们的学习兴趣

2 python强化学习库-Gymnasium简介

(1)Gymnasium的前身是Gym,Gym已经不再更新,迁移到Gymnasium后,未来的发展将以Gymnasium为新起点。
(2)Gymnasium是一个为所有单智能体强化学习环境提供API的项目(python扩展库),包括常见环境的实现:cartpole、钟摆、mountain-car、mujoco、atari等。
(3)Gymnasium的核心是Env类(是对强化学习中环境的建模框架类),这是一个高级python类,代表了强化学习理论中的马尔可夫决策过程(MDP)。
(4)在Gymnasium中,环境(MDP)与Wrappers(包装类)一起实现为Env类,它们提供了有用的实用程序,并可以更改传递给用户的结果。
本实验将会使用Env类。

3 了解gymnasium.Env类

3.1 简介

它是实现强化学习智能体所处环境的主要类:通过两个对象方法(step()和reset())封装了具有任意动力学特性的环境。单个智能体能部分或全部地观测到环境的状态(注:若要使用多智能体环境,参阅 P e t t i n g Z o o  ̄ \underline{PettingZoo} PettingZoo?

3.2 方法与属性

以下概括性地介绍一下gymnasium.Env的方法与属性,具体使用时,需要用户参考相关文档(单击此处访问

3.2.1 方法
  • step(): 输入为智能体施加的行为,返回智能体能观测到的由于该行为导致的环境改变后的状态,以及环境反馈给智能体的立即回报。这个step方法模仿了智能体与环境的实际交互过程。
  • reset():将环境状态重置为初始值,在调用step()前应先调用该方法;
  • render():渲染环境,以便可视化代理所看到的内容,常用的渲染模式有“human”、“rgb_array”、“ansi”;
  • close():关闭环境,此操作用于释放资源,特别是调用了外部程序,如pygame用来渲染,链接了外部数据库;
3.2.2 属性
  • action_space:行为空间,它的类型为类Space
  • observation_space:智能体可观测到的环境的状态空间,类型也为Space
  • reward_range:一个元组,给出立即回报的最小值和最大值,默认为 ( ? ∞ , + ∞ ) (-\infty,+\infty) (?,+)
  • spec:包含了使用gymnasium.make()方法创建环境对象时的初始化信息
  • metadata:环境的元数据,如渲染模式,渲染频率(帧/秒)
  • np_random:环境的随机数发生器,当调用super().reset(seed=seed)时会自动分配,后续可通过self.np_random进行访问。

文章来源:https://blog.csdn.net/caijungan/article/details/135420053
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。