首页 > 解决方案 > 具有稳定基线的自定义 Openai 健身房环境

问题描述

我正在尝试创建一个简单的 2D 网格世界 Openai Gym 环境,代理从网格世界的任何地方前往终端单元。例如,在 5x5 网格世界中,X 是当前代理位置,O 是代理前往的终端单元。

.....
.....
..X..
.....
....O 

我的动作空间被定义为离散值 [0,4),分别代表上、左、下和右。并且,观察空间是一个 1D 框,表示代理在网格世界中的当前位置,例如 [12](索引从 0 开始到 size*size-1)。我想知道定义观察空间的方式之间有什么区别。例如,除了我目前的定义,同一环境的观察空间可以定义如下,仅举几例。

  1. i 的离散值,其中 i 代表 agent 的当前位置。
  2. 一个除代理当前位置为 1 外全为零的二维矩阵。
  3. 也许其他人在稳定基线算法或其他方面有什么不同?

标签: reinforcement-learningopenai-gymstable-baselines

解决方案


定义观察空间的方式之间有什么区别?

我认为更好的问题是:

定义观察空间的方式之间存在差异的原因是什么?

为了定义观察空间,需要确定两件事:

  1. 需要什么信息算法?

    这在很大程度上取决于您可以收集哪些信息和代理目标,例如,如果您希望代理在迷宫中到达目标,那么您可以提供代理当前位置、代理周围障碍物方向、目标方向等信息。

  2. 输入信息应该是什么形式?这在很大程度上取决于您使用的信息和代理解决方案(即算法本身),有时您有多种选择,您需要运行实验以找出最适合给定算法的方法,就像您列出的少数几个一样。

所以一般来说,定义观察空间的不同方式的原因是为了更好地适应不同的目标和算法。


推荐阅读