【问题标题】:openai-gym pong: How can i make reset() more randomopenai-gym pong:我怎样才能让 reset() 更随机
【发布时间】:2023-04-05 08:20:01
【问题描述】:
我实现了一个 dqn 代理,经过几个小时的学习后,奖励在 20-21 稳定。
当我想看代理玩时,我可以看到同样的动作一次又一次地玩。重置时的 env 总是朝同一个方向射球,我的经纪人学会了准确的移动并且从不松动。
这是健身房乒乓球环境的行为吗?如何使环境重置更加随机?
我正在使用 NoopResetEnv 包装器,它没有帮助!
【问题讨论】:
标签:
reinforcement-learning
openai-gym
pong
【解决方案1】:
可以从两个原因跟踪代理以相同方式的行为:模型本身和 pong env。
对于模型,如果您正在训练 DQN 模型,普通 DQN 模型实际上是一个确定性模型,这意味着它将根据相同的情况给出相同的操作。您可以尝试为模型设置一点“随机性”,例如使用 0.1 概率随机获取动作。例如,在stable baselines 中,您可以选择通过将“确定性”设置为 True 来预测确定性行为。
作为env的角度,我自己没试过,但是openai gym atari env中有一个seed参数,你可以为openai gym atari env设置种子(env.seed(your_seed))。查看here 和github 了解更多信息。