reinforcement-learning - openai spinup 中的 RL PPO Action 空间裁剪

标签 reinforcement-learning openai-gym openai-api

我目前正在使用由 openai 制作的“spinningup”。 在 spinningup 中,实现了 PPO 和其他 RL 算法。但是,只有 DDPG、SAC 和 TD3 具有名为“action_limit”的变量。

我现在正在使用 PPO,我还需要剪辑(给出下限和上限) Action ,因为我的机器人只在 [0, 200.0] 范围内工作。 是因为 PPO 算法不需要与 DDPG、SAC、TD3 不同的 action_limit 吗? 或者 他们没有对 PPO 设置 action_limit 是 spinningup 的错误吗?

或者是否有其他聪明的方法可以在此处进行一些限制?

最佳答案

我还认为当您使用“spaces.Box”创建环境时应该考虑它,但是在运行策略时它也会获得比我输入的框更高的值。

如果您查看 Continuous_MountainCarEnv ,它在 self.step() 中使用以下代码来使用操作(第 74 行):

force = min(max(action[0], self.min_action), self.max_action)

因此,它限制了步骤中的力输入,尽管它已经创建了具有相同限制的 action_space(第 51 行):

self.action_space = spaces.Box(
        low=self.min_action,
        high=self.max_action,
        shape=(1,),
        dtype=np.float32

因此,在创建 action_space 和使用操作本身时考虑限制可能很有用。如果您不使用此限制,经过训练的策略可能会导致高于您的限制的操作,尽管它们可能接近该限制。

干杯!

关于reinforcement-learning - openai spinup 中的 RL PPO Action 空间裁剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67070862/

相关文章:

javascript - Tensorflow JS,自定义损失函数,将各个部分放在一起

python - 如何从 GYM 制作手推车游戏,用户可以使用键盘玩

python - 使用 ChatGPT API 仅使用自定义知识而非一般知识来训练聊天机器人

machine-learning - 在google colab 上运行openai gym 环境时遇到问题

discord.js - Discord GPT-3.5-Turbo 抛出未定义的错误

python - 如何同时使用Python openai客户端与Azure和OpenAI?

python - 在自定义环境(python、强化学习、openai)中应用 q-learning 的问题

使用 .detach() 的 Pytorch DQN、DDQN 导致非常大的损失(呈指数增长)并且根本不学习

machine-learning - 最优 epsilon(ε-贪婪)值

python - Matplotlib 绘制比例三角形