我开始研究双 DQN (DDQN)。显然,DDQN 和 DQN 的区别在于,在 DDQN 中,我们使用主值网络进行动作选择,使用目标网络输出 Q 值。
但是,与标准 DQN 相比,我不明白为什么这会有所帮助。那么,简单来说,DDQN相对于DQN到底有什么优势呢?
我开始研究双 DQN (DDQN)。显然,DDQN 和 DQN 的区别在于,在 DDQN 中,我们使用主值网络进行动作选择,使用目标网络输出 Q 值。
但是,与标准 DQN 相比,我不明白为什么这会有所帮助。那么,简单来说,DDQN相对于DQN到底有什么优势呢?
在- 学习存在所谓的最大化偏差。那是因为更新目标是. 如果你稍微高估你的-value 然后这个错误变得复杂(在 Sutton 和 Barto 的书中有一个很好的例子说明了这一点)。表格双精度背后的想法-学习是有两个-网络,,然后你选择一个动作从他们那里,例如从. 然后,您掷硬币决定更新哪个。如果您选择更新那么更新目标变为.
这个想法是,如果你超过你的估计网络然后拥有第二个将有望在您获得最大值时控制这种偏差。
在深双-学习这个想法本质上是相同的,但不必维护和训练两个-networks,他们使用来自 vanilla DQN 的目标网络来提供目标。为了使这一点更具体,他们使用的更新目标是
和以前一样,这个想法是,如果我们高估了我们作为状态的价值在我们当前的网络中,当采取最大行动时,使用目标网络提供目标将有助于控制这种偏差。
我将在这里从 Sutton 和 Barto 书中给出的简单示例中解释最大化偏差。
图像中的马尔可夫决策过程定义如下:我们从状态 A 开始,可以采取“正确”的行动,这给我们 0 奖励并立即导致终止。如果我们选择“左”,我们会立即获得 0 奖励,然后我们会移动到状态 B。从那里,我们可以采取任意数量的动作,它们都导致最终状态,奖励来自 Normal(- 0.1,1) 分布。
显然,最优动作总是从状态 A 向右移动,因为这给出了 0 的预期未来回报。采取左行动将给出预期未来回报(是我们的折扣系数)。
现在,如果我们进入状态并采取一些随机行动,我们的初始奖励可能大于 0——毕竟它是从 Normal(-0.1,1) 分布中得出的。
现在,考虑我们正在更新我们的- 状态 A 的函数并采取左侧动作。我们的更新目标将是. 因为我们对所有可能的行动采取了最大的行动,这将导致积极的回报,因此我们支持这样的信念,即采取行动留在状态 A 中的预期未来回报是积极的——显然这是错误的,因为我们知道它应该是-0.1。这就是所谓的最大化偏差,因为它给了我们一种对动作价值的“乐观”估计!
我在下面附上了一张图片,显示了代理选择左侧动作的时间百分比,它不应该选择)。如您所见,它需要正常-随着时间的推移学习甚至开始纠正自己,而加倍-learning 几乎可以立即纠正错误。