Python 强化学习 - 元组观察 Space

Python Reinforcement Learning - Tuple Observation Space

我创建了一个自定义的 openai gym 环境,其中包含离散动作 space 和有点复杂的状态 space。状态 space 被定义为元组,因为它结合了一些连续的维度和其他离散的维度:

import gym
from gym import spaces

class CustomEnv(gym.Env):
    def __init__(self):
        self.action_space = spaces.Discrete(3)
        self.observation_space = spaces.Tuple((spaces.Discrete(16),
                                               spaces.Discrete(2),
                                               spaces.Box(0,20000,shape=(1,)),
                                               spaces.Box(0,1000,shape=(1,)))
    ...

我很幸运地使用 keras-rl 训练了一个代理,特别是 DQNAgent,但是 keras-rl 的支持不足并且文档很少。对可以处理此类观察的 RL 包有什么建议 space? openai baselines 和 stable-baselines 目前似乎都无法处理它。

或者,是否有其他方法可以定义我的状态 space 以便使我的环境适合这些定义更好的包之一?

您可能想尝试 rllibray 中的强化学习包,它在加州大学伯克利分校得到扩展。

https://rise.cs.berkeley.edu/projects/ray/

它包含了很多实现的算法:

而且它很容易使用。您只需要添加您的环境,该环境在以下位置得到了充分解释: https://ray.readthedocs.io/en/latest/rllib-env.html