DQN若干种变型及实现

本文探讨了DQN的不同变体,包括Nature DQN、Double DQN、Prioritized Experience Replay、Dueling DQN和DRQN。分别解释了它们的设计原理,如Nature DQN的延迟目标网络更新、Double DQN的选择与评估分离、PER的优先级重放策略,以及Dueling DQN的动作优势和值函数分离。此外,还提到了DRQN如何结合LSTM处理部分观测状态,并链接到相关的代码实现和资料。
摘要由CSDN通过智能技术生成

测试环境 gym cartPole-vo

代码实现

https://github.com/cuixuage/Reinforcement_Learning/tree/master/Pytorch_basic

1.Nature DQN
延迟target NetWork更新
相当于用前期一定步数的reward来计算当前真实值

2.Double DQN

为什么我测试效果不如DQN好?

https://blog.csdn.net/u010214210/article/details/53791315
https://zhuanlan.zhihu.com/p/38434432
目的:selection和evaluation分离,减少overestimation
如果Q函数估值不准,那么每次取max会引起高估,因此用两个Q网络来解决这个问题,一个网络选择最优的action,另一个网络对其估值
Current Q_NN is used to select actions
Older Q_NN is used to evaluate actions(固定次数回合后,delayed θ更新predict NN)

<
  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DQN和DDQN都是强化学习中的经典算法,用于解决深度强化学习中的探索-利用困境问题,其原理和实现方式有一些相似之处,但也存在一些差异。下面我会分别介绍它们的原理、实现和应用。 DQN(Deep Q-Network) DQN是一种基于Q-learning的深度强化学习算法,其主要思想是通过神经网络来学习Q值函数,从而实现对环境的控制。其主要的优点是可以处理大规模的离散状态和动作空间,同时还可以处理连续状态和动作空间。 DQN实现过程主要包括以下步骤: 1. 定义神经网络结构:通常采用卷积神经网络(CNN)或全连接神经网络(FCN)作为DQN的模型,神经网络的输入是状态,输出是每个动作的Q值。 2. 选择动作:根据当前状态和Q值函数,选择一个动作。 3. 执行动作:执行所选的动作,观察环境的反馈。 4. 记录经验:将当前状态、所选动作、环境反馈和下一个状态存储起来,作为经验。 5. 训练网络:从经验池中随机采样一批经验,计算损失函数并更新网络参数。损失函数通常采用均方误差(MSE)或Huber误差。 6. 更新目标网络:定期更新目标网络,目的是减少目标Q值与实际Q值之间的误差。 DQN算法的应用非常广泛,例如在游戏AI、机器人控制、自动驾驶等领域都得到了广泛的应用。 DDQNDouble Deep Q-Network) DDQNDQN的改进版,主要是为了解决DQN在处理高维状态空间时容易出现过度估计Q值的问题。DDQN采用了一种双Q学习的方式,通过使用一个网络选择动作,另一个网络评估这个动作的Q值,从而减少了过度估计。 DDQN算法的实现过程与DQN类似,只是在计算Q值时,使用的是评估网络(eval network)而不是选择网络(target network),从而避免了过度估计。 DDQN算法同样具有广泛的应用场景,例如在游戏AI、机器人控制、自动驾驶等领域都得到了广泛的应用。 总结 DQN和DDQN都是深度强化学习中的经典算法,其原理和实现方式有一些相似之处,但也存在一些差异。DQN主要采用单个Q网络来选择动作和评估Q值,而DDQN通过使用两个网络来评估Q值,从而减少了过度估计的问题。在应用方面,这两种算法都得到了广泛的应用,例如在游戏AI、机器人控制、自动驾驶等领域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值