状态:
几个星期以来,我一直在为PongDeterministic-v4
环境开发一个 Double DQN 代理,您可以在此处找到它。
在 Google Collab(K80 Tesla GPU 和 13 GB RAM)上,单次训练运行持续大约 7-8 百万个时间步(大约 7000 集),大约需要 2 天。起初,我认为这很正常,因为我看到很多帖子都在谈论 DQN 如何花费很长时间来训练 Atari 游戏。
启示录:
但是在克隆了 OpenAI 基线repo之后,我尝试运行python -m baselines.run --alg=deepq --env=PongNoFrameskip-v4
,这需要大约 500 集和一两个小时才能收敛到 +18 的好分数,而且毫不费力。现在我确信我做错了什么,但我不知道到底是什么。
调查:
在浏览了 OpenAI 的 DQN 基线代码后,我注意到了一些差异:
- 我使用
PongDeterministic-v4
环境,但他们使用PongNoFrameskip-v4
环境 - 我认为更大的重播缓冲区大小很重要,所以我努力(通过内存优化)确保将其设置为70000但他们将其设置为仅10000,并且仍然得到了惊人的结果。
- 我使用的是普通的Double DQN,但他们似乎使用的是Dueling Double DQN。
结果/结论
我对仅通过这些很少的更改就能大幅提高性能表示怀疑。所以我知道我现有的实现可能有问题。有人能指出我正确的方向吗?
任何形式的帮助将不胜感激。谢谢!