DQN若干种变型及实现

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试环境 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.youkuaiyun.com/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)

libpng warning: tRNS: invalid with alpha channel libpng warning: tRNS: invalid with alpha channel libpng warning: tRNS: invalid with alpha channel libpng warning: tRNS: invalid with alpha channel libpng warning: tRNS: invalid with alpha channel Traceback (most recent call last): File "C:\Users\你爹\PyCharmMiscProject\DQN.py", line 248, in <module> main() File "C:\Users\你爹\PyCharmMiscProject\DQN.py", line 206, in main train(env,dqn) File "C:\Users\你爹\PyCharmMiscProject\DQN.py", line 141, in train a = dqn.choose_action(s, EPSILON) #选择动作 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\你爹\PyCharmMiscProject\DQN.py", line 76, in choose_action actions_value = self.eval_net.forward(x) #将场景输入Q估计神经网络 ^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\你爹\PyCharmMiscProject\DQN.py", line 54, in forward x=self.f1(x) ^^^^^^^^^^ File "D:\wdnmd\proteus\Proteus 8 Professional\Tools\Python\Lib\.venv\Lib\site-packages\torch\nn\modules\module.py", line 1751, in _wrapped_call_impl return self._call_impl(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\wdnmd\proteus\Proteus 8 Professional\Tools\Python\Lib\.venv\Lib\site-packages\torch\nn\modules\module.py", line 1762, in _call_impl return forward_call(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\wdnmd\proteus\Proteus 8 Professional\Tools\Python\Lib\.venv\Lib\site-packages\torch\nn\modules\linear.py", line 125, in forward return F.linear(input, self.weight, self.bias) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ RuntimeError: mat1 and mat2 shapes cannot be multiplied (1x900 and 100x16)
05-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值