Double DQN(深度 Q 网络)通过解决传统 DQN 中的一个关键缺陷(Q 值高估)来改进 Q-learning。在标准 DQN 中,使用相同的网络来选择和评估目标 Q 值计算的最佳动作,这可能导致过于乐观的价值估计。这是因为 Q-learning 更新中的 max 运算符会放大网络预测中的误差。Double DQN 通过使用两个网络将动作选择和评估分离开来:在线网络选择动作,而目标网络估计其价值。这种分离减少了偏差,从而产生更准确的 Q 值更新。
核心改进在于 Double DQN 如何计算目标 Q 值。在标准 DQN 中,目标值计算为 ( r + \gamma \cdot \max_{a’} Q(s’, a’; \theta^{-}) ),其中 ( \theta^{-} ) 表示目标网络。Double DQN 将其修改为 ( r + \gamma \cdot Q(s’, \text{argmax}_{a’} Q(s’, a’; \theta); \theta^{-}) )。在这里,在线网络 ( \theta ) 为下一个状态 ( s’ ) 选择最佳动作,而目标网络 ( \theta^{-} ) 评估该动作的价值。例如,如果在线网络由于噪声错误地偏向了次优动作,目标网络的评估会充当校正过滤器,防止高估值传播到训练中。这种方法受到 Double Q-learning 的启发,但适用于神经网络。
实际上,Double DQN 对标准 DQN 实现只需要做最小的修改。目标网络的更新规则保持不变(例如,与在线网络周期性同步),但目标计算逻辑进行了调整。在 Atari 游戏等环境中的实验表明,Double DQN 通常以相似的计算成本获得更好的性能。例如,在动作具有相似长期奖励的游戏中,Double DQN 减少的高估有助于代理学习更稳定的策略。通过减轻 DQN 的一个关键弱点,Double DQN 为旨在改进强化学习代理的开发者提供了一种简单但有效的升级方案。