我正在尝试实现DQN和DDQN(都有经验的答复)来解决OpenAI AI-GymCart极地环境.这两种方法有时都能够学习和解决这个问题,但并非总是如此。
我的网络只是一个前馈网络(我尝试使用1和2个隐藏层)。在DDQN中,我在DQN中创建了一个网络,在DDQN中创建了两个网络,一个评估Q值的目标网络和一个选择最佳动作的主网络,训练主网络,并在一些事件发生后将其复制到目标网络。
DQN的问题是:
DDQN的问题是:
我试过调整批处理大小、学习速度、隐藏层中神经元的数量、隐藏层的数量、探测速率,但是不稳定仍然存在。
关于网络的大小和批处理的大小有什么经验法则吗?我认为合理的更大的网络和更大的批量将增加稳定性。
是否有可能使学习稳定?如有任何评论或参考,敬请见谅!
发布于 2018-10-19 12:36:00
这种问题经常发生,你不应该放弃。首先,当然,您应该再检查一到两次代码是否正常--尝试将您的代码与其他实现进行比较,查看丢失函数的行为等等。如果您非常确定您的代码都很好--而且,正如您说的那样,模型可以不时地学习该任务,很可能--您应该开始对超参数进行实验。
你的问题似乎与超参数有关,如探索技术、学习速度、更新目标网络的方式以及经验回放记忆。我不会玩弄隐藏的图层大小--找到模型学习过一次的值,并将它们固定下来。
发布于 2018-10-16 19:28:20
也许这能帮你解决你在这个环境中的问题。
发布于 2020-03-26 19:30:42
我还认为问题是不稳定的(D)DQN,或者"CartPole“是被窃听的,或者是”不稳定的可解决的“!
在搜索了几个星期之后,我检查了我的代码好几次,除了一个.
我还删除了一行:# reward = np.random.normal(1.0, RANDOM_REWARD_STD)
这样,它得到了正常的+1每步奖励和“稳定”7的10分。
其结果是:

https://stackoverflow.com/questions/52770780
复制相似问题