DDQN 和 DQN 有什么区别?

2025年4月26日 | 阅读 8 分钟

深度 Q 网络 (DQN) 和双深度 Q 网络 (DDQN) 是深度强化学习中著名的技术。虽然它们都旨在处理具有复杂状态和动作空间的环境中的决策问题,但它们在结构和学习技术上有所不同。让我们分解一下 DQN 和 DDQN 之间的关键区别。

什么是 DQN (深度 Q 网络)?

深度 Q 网络 (DQN) 是 DeepMind 在 2015 年推出的一种深度强化学习算法。它通过使用深度神经网络来近似 Q 值函数,从而扩展了传统的 Q 学习算法。这一突破使得强化学习模型能够在高维输入(例如视频游戏)的环境中表现出色

在传统的 Q 学习中,算法维护一个 Q 表来存储每个状态-动作对的 Q 值。然而,在具有大量可能状态的复杂环境中,这种方法变得不切实际。DQN 通过用深度神经网络替换 Q 表来解决这个可伸缩性问题。

DQN 的工作原理

深度 Q 网络 (DQN) 通过将传统 Q 学习与深度神经网络相结合来处理复杂的状态空间。DQN 不依赖 Q 表来存储每个状态的动作值,而是使用深度神经网络来近似 Q 值函数。该神经网络将当前状态作为输入,并预测所有可能动作的 Q 值。在训练过程中,DQN 采用经验回放缓冲区,该缓冲区以(状态、动作、奖励、下一个状态)元组的形式存储过去的经验。通过在训练过程中从该缓冲区中随机采样,DQN 打破了连续经验之间的相关性,从而提高了学习稳定性。

为了进一步提高稳定性,DQN 引入了目标网络。该网络模仿主 DQN 模型,但更新频率较低。目标网络通过在固定步数内冻结其权重来计算更稳定的 Q 值目标,从而降低不稳定更新的风险。主网络的权重通过最小化其预测 Q 值与目标 Q 值之间的差异来更新。目标 Q 值使用贝尔曼方程计算,其中下一个状态的最大 Q 值使用目标网络进行预测。

DQN 还采用 epsilon-greedy 方法进行动作选择。在探索过程中,智能体有时会采取随机动作来发现新策略,而随着学习的进行,会逐渐倾向于选择具有最高预期 Q 值的动作。epsilon 值会随着时间的推移而降低,以鼓励在后期阶段进行更多利用。通过集成经验回放、目标网络和深度神经网络,DQN 实现了稳定高效的学习,使其非常适合具有复杂和高维数据的环境。这种架构使 DQN 能够在各种 Atari 游戏中达到人类水平的性能,证明了其在强化学习任务中的有效性。

什么是 DDQN (双深度 Q 网络)?

双深度 Q 网络 (DDQN) 是深度 Q 网络 (DQN) 的改进版本,旨在解决 Q 学习中过高估计偏差的问题。在传统的 DQN 中,同一个网络用于选择和评估最佳动作,这通常会导致过于乐观的 Q 值估计。DDQN 通过使用两个独立的神经网络将动作选择与动作评估解耦来解决此问题:主 Q 网络和目标 Q 网络。DDQN 不使用目标网络的最大 Q 值进行更新,而是使用主网络选择最佳动作,但使用目标网络对其进行评估。这种方法可以防止过高估计,从而实现更稳定的学习和更好的覆盖性能。

DDQN 中的核心更新方程通过将目标 Q 值计算替换为两步过程来修改 DQN 更新:首先,使用主网络执行动作选择,然后目标网络提供该动作的 Q 值。

通过防止 Q 值过高估计,DDQN 提高了复杂强化学习任务中的收敛性、学习稳定性和整体性能。它已广泛应用于深度强化学习应用程序,尤其是在准确成本估计至关重要的环境中,例如机器人技术、自主系统和战略决策场景。

DDQN (双深度 Q 网络)

双深度 Q 网络 (DDQN) 建立在深度 Q 网络 (DQN) 的基础上,同时解决了其主要限制——过高估计偏差。在 DQN 中,同一个网络负责选择和评估动作,这通常会导致过于乐观的 Q 值估计。DDQN 通过使用单独的网络将这两个步骤解耦来解决此问题:主 Q 网络(也称为在线网络)和目标 Q 网络。

在 DDQN 中,主网络负责选择动作,而目标网络评估所选动作的 Q 值。这种差异至关重要,因为它可以防止网络过高估计动作值。在每个训练步骤中,智能体首先观察当前状态,并使用主网络预测所有可能动作的 Q 值。选择具有最高预测 Q 值的动作执行。执行动作后,智能体获得奖励并观察下一个状态。

DDQN (双深度 Q 网络) 是如何工作的?

双深度 Q 网络 (DDQN) 通过改进传统深度 Q 网络 (DQN) 来减少 Q 值预测中的过高估计偏差。它通过引入单独的神经网络(主网络和目标网络)并将动作选择和评估步骤解耦来实现这一点。

在 DDQN 中,主网络用于选择动作,而目标网络用于评估该动作的价值。这种分离可以防止网络过高估计 Q 值,这是 DQN 中的一个常见问题。

以下是 DDQN 的逐步操作方式:

经验收集:智能体与环境交互,并将其经验(状态、动作、奖励、下一个状态)存储在经验回放缓冲区中。此缓冲区有助于打破连续经验之间的相关性,从而提高学习稳定性。

动作选择:在训练过程中,智能体观察当前状态并使用主网络预测所有可能动作的 Q 值。根据 epsilon-greedy 策略选择具有最高预期 Q 值的动作,该策略平衡了探索和利用。

动作评估:为了计算目标 Q 值,DDQN 使用两步过程:

DDQN 损失函数最小化主网络的预期 Q 值与计算出的目标 Q 值之间的差异。

通过解耦动作选择和评估过程,DDQN 有效地缓解了过高估计偏差。这种改进可以带来更准确的 Q 值预测、更快的收敛和更复杂环境中的增强性能。因此,DDQN 通常在具有动态环境或稀疏奖励的任务中优于 DQN。

DQN 和 DDQN 之间的关键区别

DQN 和 DDQN 都是有效的强化学习算法,它们利用深度神经网络来近似 Q 值。虽然它们共享许多核心组件,但 DDQN 引入了关键改进来解决 DQN 的局限性。以下是它们差异的详细比较:

动作选择与评估

DQN 和 DDQN 之间最根本的区别在于它们如何处理动作选择和评估:

在 DQN 中,同一个网络用于选择动作(通过确定具有最高预测 Q 值的动作)和评估所选动作的 Q 值。这会产生偏差,因为网络可能会错误地提高 Q 值,导致过高估计。

在 DDQN 中,这些步骤是解耦的,以提高准确性。主网络选择最佳动作,而目标网络评估所选动作的 Q 值。这种分离可以防止网络过于乐观地估计其值。

示例

想象一个智能体必须在动作之间进行选择的游戏:

  • 动作 1 似乎会产生高额奖励,但具有显著的不确定性。
  • 动作 2 具有更稳定的奖励,但似乎略不那么有希望。

在 DQN 中,网络可能会错误地过高估计动作 1 的价值,导致智能体过于频繁地偏爱这种选择。DDQN 通过单独评估所选动作的 Q 值来缓解这种情况,从而降低过高估计不稳定动作的风险。

过高估计偏差

当 Q 网络始终预测高于其真实预期奖励的值时,就会发生过高估计,这可能会误导学习过程。

DQN 容易出现这种偏差,因为同一个网络负责选择和评估动作。因此,DQN 可能会促使智能体采取基于膨胀 Q 值的看似最优的动作,从而导致不稳定的学习。

DDQN 通过解耦动作选择和评估有效地减少了这种过高估计。通过依赖主网络进行动作选择和目标网络进行评估,DDQN 计算出更保守和准确的 Q 值。这一变化显著增强了学习稳定性。

影响:在未来奖励不确定或稀疏的环境中,减少过高估计尤为重要,因为过度乐观会导致糟糕的决策。

训练稳定性

训练稳定性是评估 DQN 和 DDQN 时的主要考虑因素:

DQN 可能会表现出不稳定的学习,特别是在具有高维状态或延迟奖励的复杂环境中。过高估计的 Q 值可能会导致智能体偏爱看似有希望但实际上次优的动作。

DDQN 通过生成更准确的 Q 值估计来提高稳定性。因此,模型收敛速度更快,并且不易出现突然的性能下降。

示例:在具有嘈杂或随机奖励的环境中(例如赌博情况或实际决策),DDQN 往往更可靠,因为它避免了高估不稳定动作。

性能

虽然 DQN 和 DDQN 都显示出令人印象深刻的结果,但 DDQN 在复杂任务中始终优于 DQN:

DQN 在更简单的环境中表现良好,但在需要精确值估计的环境中会遇到困难。

DDQN 在具有多个决策分支、稀疏奖励或长期依赖性的环境中表现出色。由于其改进的学习动力学,它通常能获得更好的累积奖励。

示例:在 Pong、Breakout 或 Space Invaders 等 Atari 游戏中,DDQN 比 DQN 表现出更快的收敛速度和更好的最终性能。

实际考虑

计算复杂度:DDQN 引入的开销最小,因为主网络和目标网络已存在于 DQN 中。额外的计算仅在于修改后的 Q 值计算,这使得 DDQN 在相似的训练时间内高效。

实现:DDQN 只需要对 DQN 算法进行少量修改,使其成为一个简单而强大的升级。