【发布时间】:2019-06-19 15:24:55
【问题描述】:
鉴于 OpenAI Gym 环境 MountainCar-v0 总是返回 -1.0 作为奖励(即使达到目标),我不明白 DQN 与体验回放如何收敛,但我知道它确实如此,因为我有 @ 987654322@ 证明了这一点。通过工作,我的意思是当我训练代理时,代理很快(在 300-500 集内)学会了如何解决山地车问题。下面是我训练有素的代理人的一个例子。
据我了解,最终需要找到一个“稀疏奖励”。然而据我从 openAI Gym code 看到的,除了-1 之外,没有任何奖励。感觉更像是一个“没有奖励”的环境。
几乎回答了我的问题,但实际上并没有:当任务快速完成时,这一集的回报(奖励总和)更大。因此,如果汽车永远找不到标志,则返回 -1000。如果汽车快速找到标志,则返回可能是 -200。这不能回答我的问题的原因是因为使用 DQN 和体验重放,这些返回(-1000,-200)永远不会出现在体验重放记忆中。所有的记忆都是(状态、动作、奖励、下一个状态)形式的元组,当然要记住,元组是随机从记忆中提取的,而不是逐集的。
这个特殊的 OpenAI Gym 环境的另一个元素是完成状态在两种情况下返回:击中标志 (yay) 或在一些步数后超时 (boo)。但是,代理对两者一视同仁,接受 -1 的奖励。因此,就内存中的元组而言,从奖励的角度来看,这两个事件看起来是相同的。
所以,我在记忆中没有看到任何表明这一集表现良好的东西。
因此,我不知道为什么此 DQN 代码适用于 MountainCar。
【问题讨论】:
-
我不明白为什么这个问题被否决了。这是一个完全有效的问题。我也需要一个答案。
标签: machine-learning keras reinforcement-learning openai-gym q-learning