Python强化学习-元组观察空间

Jef*_*eff 6 python machine-learning reinforcement-learning openai-gym keras-rl

我创建了一个自定义的 openai 健身房环境,其中包含离散的动作空间和稍微复杂的状态空间。状态空间被定义为元组,因为它结合了一些连续的维度和其他离散的维度:

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,)))
    ...
Run Code Online (Sandbox Code Playgroud)

我很幸运地使用 keras-rl(特别是 DQNAgent)训练​​了一个代理,但是 keras-rl 的支持不足且文档很少。对于可以处理此类观察空间的强化学习包有什么建议吗?目前看来 openai 基线和 stable-baselines 都无法处理它。

或者,是否有一种不同的方式可以定义我的状态空间,以便将我的环境适应这些定义更好的包之一?

Afs*_*ooy 2

您可能想尝试rllib,它是 中的一个强化学习包ray,它在伯克利加州大学得到了扩展。

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

它包括许多实现的算法:

在此输入图像描述 而且它非常容易使用。您只需要添加您的环境,该环境在以下位置有完整解释: https: //ray.readthedocs.io/en/latest/rllib-env.html