双 DQN 相对于 DQN 到底有什么优势?

人工智能 比较 q学习 dqn 深度学习 双dqn
2021-11-01 17:40:49

我开始研究双 DQN (DDQN)。显然,DDQN 和 DQN 的区别在于,在 DDQN 中,我们使用主值网络进行动作选择,使用目标网络输出 Q 值。

但是,与标准 DQN 相比,我不明白为什么这会有所帮助。那么,简单来说,DDQN相对于DQN到底有什么优势呢?

1个回答

Q- 学习存在所谓的最大化偏差。那是因为更新目标是r+γmaxaQ(s,a). 如果你稍微高估你的Q-value 然后这个错误变得复杂(在 Sutton 和 Barto 的书中有一个很好的例子说明了这一点)。表格双精度背后的想法Q-学习是有两个Q-网络,Q1,Q2,然后你选择一个动作a从他们那里,例如从Q1+Q2. 然后,您掷硬币决定更新哪个。如果您选择更新Q1那么更新目标变为r+γQ2(s,argmaxaQ1(s,a)).

这个想法是,如果你超过你的估计Q网络然后拥有第二个将有望在您获得最大值时控制这种偏差。

在深双Q-学习这个想法本质上是相同的,但不必维护和训练两个Q-networks,他们使用来自 vanilla DQN 的目标网络来提供目标。为了使这一点更具体,他们使用的更新目标是

r+γQ(s,argmaxaQ(s,a;θ);θ),
在哪里Q(s,a;θ)表示目标网络,其参数仅更新到当前网络C时间步长。

和以前一样,这个想法是,如果我们高估了我们作为状态的价值s在我们当前的网络中,当采取最大行动时,使用目标网络提供目标将有助于控制这种偏差。

最大化偏差

我将在这里从 Sutton 和 Barto 书中给出的简单示例中解释最大化偏差。

在此处输入图像描述

图像中的马尔可夫决策过程定义如下:我们从状态 A 开始,可以采取“正确”的行动,这给我们 0 奖励并立即导致终止。如果我们选择“左”,我们会立即获得 0 奖励,然后我们会移动到状态 B。从那里,我们可以采取任意数量的动作,它们都导致最终状态,奖励来自 Normal(- 0.1,1) 分布。

显然,最优动作总是从状态 A 向右移动,因为这给出了 0 的预期未来回报。采取左行动将给出γ×0.1预期未来回报(γ是我们的折扣系数)。

现在,如果我们进入状态B并采取一些随机行动,我们的初始奖励可能大于 0——毕竟它是从 Normal(-0.1,1) 分布中得出的。

现在,考虑我们正在更新我们的Q- 状态 A 的函数并采取左侧动作。我们的更新目标将是0+γmaxaQ(B,a). 因为我们对所有可能的行动采取了最大的行动,这将导致积极的回报,因此我们支持这样的信念,即采取行动留在状态 A 中的预期未来回报是积极的——显然这是错误的,因为我们知道它应该是-0.1。这就是所谓的最大化偏差,因为它给了我们一种对动作价值的“乐观”估计!

我在下面附上了一张图片,显示了代理选择左侧动作的时间百分比,它应该选择)。如您所见,它需要正常Q-随着时间的推移学习甚至开始纠正自己,而加倍Q-learning 几乎可以立即纠正错误。

在此处输入图像描述