【问题标题】:RL PPO action space clipping in openai's spinningupopenai 旋转中的 RL PPO 动作空间裁剪
【发布时间】:2021-07-08 06:30:04
【问题描述】:
我目前正在使用 openai 制作的“spinningup”。
在 spinup 中,实现了 PPO 和其他 RL 算法。但是,只有 DDPG、SAC 和 TD3 具有名为“action_limit”的变量。
我现在正在使用 PPO,我还需要剪辑(给出下限和上限)动作,因为我的机器人只在 [0, 200.0] 范围内工作。
是因为 PPO 算法不需要与 DDPG、SAC、TD3 不同的 action_limit 吗?
要么
他们没有在 PPO 上设置 action_limit 是 spinup 的错误吗?
或者还有其他聪明的方法可以在这里做一些限制吗?
【问题讨论】:
标签:
reinforcement-learning
openai-gym
openai
【解决方案1】:
我也认为在使用“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 和使用操作本身时考虑限制可能很有用。如果您不使用此限制,则经过训练的策略可能会导致高于您的限制的操作,尽管它们可能会接近该限制。
干杯!!