《白话强化学习与python》笔记——第八章DQN 算法族

发布于:2024-04-19 ⋅ 阅读:(27) ⋅ 点赞:(0)

《白话强化学习与python》笔记——第八章DQN 算法族

DQN算法是深度强化学习领域的一种核心算法,属于DRL(深度强化学习)的范畴

DQN,即Deep Q-Network,是一种结合了深度学习和Q学习的算法。以下是DQN算法的一些关键特点:

  1. 深度神经网络:DQN使用深度神经网络来近似Q函数,这允许它在高维的状态空间中进行学习,解决了传统Q学习在面对复杂环境时的局限性。
  2. 经验回放(Experience Replay):这是DQN的一个重要组成部分,它指的是让智能体先探索环境并累积经验(记忆),然后从这些经验中随机抽取样本进行训练。这种方法打破了数据之间的相关性,提高了学习的稳定性和效率。
  3. 目标网络(Target Network):为了防止在更新Q值时产生过度波动,DQN使用了目标网络。该网络会定期复制主网络的参数,但在更新过程中保持不变,从而提供了一个稳定的目标Q值。
  4. 有损函数近似:由于深度神经网络的复杂性,DQN通常采用有损函数近似,这意味着网络输出的Q值只是最优Q值的一个近似。
  5. 探索与利用:DQN平衡了探索(探索未知的状态-动作对)和利用(利用已知的知识采取行动)的策略,这通常通过ε-贪婪策略来实现。
  6. 适应性:DQN算法具有很强的适应性,可以应用于多种不同的强化学习任务,包括游戏、机器人控制等领域。
  7. 算法改进:研究人员基于DQN提出了许多改进算法,如Double DQN、Duelling DQN等,以解决特定的问题或提高性能。
  8. 稳定性和鲁棒性:尽管DQN在许多任务中表现出色,但它仍然存在一些挑战,如过度估计Q值、对噪声敏感等问题,研究人员正在不断探索新的方法来提高其稳定性和鲁棒性。
  9. 实际应用:DQN及其变体已经被应用于实际问题中,如自动驾驶、股市交易、医疗诊断等,展示了其在现实世界中的潜力。

一、2013年DQN

2013年提出的DQN是深度强化学习领域的一个开创性工作,它成功地将深度学习与Q学习算法相结合,在处理高维状态空间的决策问题方面取得了重大突破。

DQN的核心贡献在于:

  1. 结合深度学习:DQN将传统的Q-learning算法与深度神经网络结合起来,使得智能体能够在复杂的游戏环境中进行有效的学习和决策制定。
  2. 使用经验回放:DQN通过引入经验回放机制,打破了数据之间的相关性,提高了学习的稳定性和效率。
  3. 引入目标网络:为了解决Q值过度波动的问题,DQN使用了目标网络,该网络定期复制主网络的参数,但在更新过程中保持不变,从而提供了一个稳定的目标Q值。
  4. 有损函数近似:由于深度神经网络的复杂性,DQN通常采用有损函数近似,这意味着网络输出的Q值只是最优Q值的一个近似。

此外,DQN的成功不仅在于其算法本身的创新,还在于它的实际应用效果。2013年,DeepMind的研究团队利用DQN让计算机玩Atari游戏,并达到了人类的水平。这一成就不仅展示了DQN在理论和实践上的重要性,也为后续的深度强化学习研究奠定了基础。

二、2015年DQN

2015年的DQN算法是DeepMind提出的一种改进型算法,它在原有的DQN基础上进行了优化,以提高学习的稳定性和效果

2015年DQN的核心改进包括:

  • 引入了目标网络(target network):这是2015年DQN的一个重要改进。目标网络的参数会定期从主网络(main network)复制,但在更新过程中保持不变。这样做的目的是提供一个稳定的目标Q值,以解决Q值过度波动的问题。
  • 使用经验回放(experience replay):这一机制允许智能体存储过去的经验,并从中随机抽取样本进行训练,打破了数据之间的相关性,提高了学习的稳定性和效率。
  • 有损函数近似:由于深度神经网络的复杂性,DQN通常采用有损函数近似,这意味着网络输出的Q值只是最优Q值的一个近似。
  • 探索与利用:DQN平衡了探索(探索未知的状态-动作对)和利用(利用已知的知识采取行动)的策略,这通常通过ε-贪婪策略来实现。

此外,2015年的DQN在实际应用中取得了显著成果,如在玩Atari游戏方面达到了人类的水平,这一成就展示了DQN在理论和实践上的重要性,并为后续的深度强化学习研究奠定了基础。

综上所述,2015年的DQN算法通过引入目标网络和经验回放等机制,成功地解决了一些原有DQN算法面临的问题,并在实际应用中取得了显著的成果。

三、Double DQN

Double DQN 是 Deep Q-Network(DQN)算法的一个改进版本,它旨在解决标准 DQN 在执行 Q 学习时可能遇到的过估计(overestimation)问题。过估计是指 Q 值函数往往高估了真实值,这会导致在选取动作时偏向于选择具有稍微高于实际的回报预期的动作,而不是更稳妥或准确的动作。

以下是 Double DQN 的主要特点和创新:

  1. 双网络结构:Double DQN 使用了两个独立的 Q 网络,而不是像传统的 DQN 那样使用一个网络同时作为目标网络和主网络。这两个网络分别用于选择和评估动作。
  2. 去极值化:Double DQN 在选择动作时使用一个网络(称为在线网络或主网络),而在评估所选动作的价值时使用另一个网络(称为目标网络)。这种分离有助于减少过估计的问题,因为目标网络不总是偏向于选择最大 Q 值的动作。
  3. 软更新机制:Double DQN 中的目标网络参数不是硬更新(即完全替换),而是通过软更新机制逐渐接近主网络的参数。这种方法可以提供更平滑、更稳定的学习过程。
  4. 降低方差:由于 Double DQN 在评估时使用了一个与选择动作不同的网络,这有助于降低方差,并提高训练过程中的稳定性。
  5. 探索策略:与 DQN 类似,Double DQN 也采用了ε-贪婪策略来平衡探索和利用,但在实际应用中,可以根据具体任务调整探索策略的细节。
  6. 适用性:虽然 Double DQN 主要针对解决过估计问题而设计,但它也可以应用于各种类型的强化学习任务,包括游戏、机器人控制等。

四、Dueling DQN

Dueling DQN是一种改进的深度强化学习算法,它通过将Q函数分解为状态值(state value)和动作优势(action advantage)两个部分来提高学习效果

Dueling DQN的核心在于其网络结构的设计,这种结构有助于解决标准DQN中的某些问题,如难以区分不同动作的相对价值。以下是Dueling DQN的主要特点:

  1. 网络结构:Dueling DQN的网络结构包括两个分支,一个用于估计状态值(V(s)),另一个用于估计动作优势(A(a))。这种结构在数学上可以表示为 Q(s, a) = V(s) + A(s, a)。
  2. 提高预测效果:由于分别处理了状态值和动作优势,Dueling DQN能够更精细地区分不同动作的价值,从而在某些情况下提高了预测的准确性。
  3. 解决可识别问题:在传统的DQN中,由于Q值包含状态和动作的全部信息,有时难以区分不同动作的贡献。Dueling DQN通过分离这两部分,解决了这个问题。
  4. 性能提升:实践表明,Dueling DQN在一些任务中相比标准的DQN能够获得更好的性能。
  5. 兼容性:Dueling DQN的网络结构可以与其他强化学习算法结合,以进一步提升效果。

五、优先回放DQN

优先回放(Prioritized Experience Replay,PER)是一种改进的强化学习算法,它结合了经验回放和重要性采样的思想。在传统的经验回放中,样本被随机抽取并用于更新模型,而在PER中,每个样本都有一个优先级,根据其对学习的贡献程度进行排序。

以下是优先回放DQN(PER-DQN)的主要特点:

  1. 优先级分配:PER-DQN通过计算每个样本的重要性来分配优先级。重要性通常与样本对目标网络的影响程度相关,例如,如果一个样本导致较大的Q值变化,则其优先级较高。
  2. 样本选择:在训练过程中,根据优先级分布从经验回放缓冲区中选择样本进行学习。具有高优先级的样本更有可能被选中,从而提供更好的学习效果。
  3. 调整重要性:随着学习的进行,样本的重要性可能会发生变化。PER-DQN会动态地调整每个样本的优先级,以反映其在当前学习阶段的重要性。
  4. 性能提升:实验表明,PER-DQN在一些任务中能够获得比标准DQN更好的性能,特别是在处理稀疏奖励或长期回报的任务时。
  5. 兼容性:PER-DQN可以与其他强化学习算法结合使用,如Dueling DQN等,以进一步提升效果。