DQL: Dueling Double DQN, Prioritized Experience Replay, and fixed Q-targets(三下)

https://www.freecodecamp.org/news/improvements-in-deep-q-learning-dueling-double-dqn-prioritized-experience-replay-and-fixed-58b130cc5682/

DQL是2014年提出的。自那以后提出了很多改进。所以,今天我们来看看四种极大提升DQN agents的训练和结果的方法:

  • fixed Q-targets
  • double DQNs
  • dueling DQN (aka DDQN)
  • Prioritized Experience Replay (aka PER)

Fixed Q-targets

Theory

在Deep Q Learning的文章中,当我们想要计算TD error(loss)的时候,我们是通过计算TD target(Q_target)和当前Q value(Q的估计)的差来得到的。
在这里插入图片描述
但是其实对于真实的TD target,我们是不知道的,没有概念的。我们也是需要预测的。使用Bellman 方程,我们发现TD target仅仅是当前动作的reward加上通过衰减的下一个state的最高Q value。
在这里插入图片描述
然而,问题是我们使用同样的参数(网络权重)来估计target和Q value。这就使得网络权重和TD target具有很强的相关性。
因此,这就意味着训练的每一步,我们的Q value偏移了,同时Q target也偏移了。所以,我们离我们的目标更近了,但是目标同时又移动了。就像是在追逐一个移动的目标!这就导致了训练过程中的振荡。
就像假设你是一个牛仔(Q估计),然后你想要抓住牛(Q target),你必须不断缩小与牛的距离(减小error)。
在这里插入图片描述
在每个时间步,你努力去接近牛,但是牛同时也在移动(因为使用了同样的参数)。
在这里插入图片描述
在这里插入图片描述
这就导致会有一个奇怪的追逐路径(训练时的振荡)
在这里插入图片描述
为了解决这个问题,我们使用DeepMind提出的fixed Q-targets的思想:

  • 使用一个单独的固定参数的网络(w-)来预测TD target
  • 在每个 τ \tau τ步骤,我们复制我们DQN网络的参数来更新目标网络。

在这里插入图片描述
由于添加了这个步骤,我们的学习过程更加稳定,因为目标函数会固定一段时间。

Implementation

fixed Q-targets 的实现是很直接的:

  • 首先,我们创建两个网络(DQNetwork,TargetNetwork)
  • 然后,我们创建一个函数来复制我们的DQNetwork的参数给TargetNetwork
  • 最后,在训练的时候,我们使用TargetNetwork计算TD target。每 τ
  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值