简单说明Double DQN的改进意义

DQN依靠其神经网络的梯度下降进行训练,所采用的损失值一般为eval_q和target_q之间的偏差,而Double DQN相较DQN的变化仅存在于target_q的计算方式,其余一概照搬。对于这种计算方式改变的意义此处做一个简单记录。

DQN与Double DQN的target_q计算方法如下:

Q^{DQN}_{t}=R_{t+1}+\gamma \mathop{max} \limits_{a}Q(S_{t+1}, a; \theta^{-}_{t})

Q^{DoubleDQN}_{t}=R_{t+1}+\gamma Q(S_{t+1}, \mathop{argmax} \limits_{a}Q(S_{t+1}, a; \theta_{t}); \theta^{-}_{t})

对比一下不难发现,只有最后一项关于状态S_{t+1}的计算不同。公式里面的\theta_{t}\theta^{-}_{t}对应的是DQN用于决策和评估的两个网络(或许因为评估网络的权重间歇性更新,是决策网络的某个历史版本,因此带个减号),这两个参数填在Q函数里面表示此处使用哪个网络来进行计算。

在DQN中,关于S_{t+1}的Q值计算方式为,使用评估网络\theta^{-}_{t}遍历所有action,计算各自对应的Q_{t+1}后选取最大值。而在Double DQN中,使用决策网络\theta_{t}遍历所有action,找到对应Q_{t+1}最大的那个,然后使用评估网络\theta^{-}_{t}来计算这个action所对应的Q值。对比起来就是,DQN中,\theta^{-}_{t}来给出最佳动作,然后\theta^{-}_{t}计算其Q值;Double DQN中,\theta_{t}给出最佳动作,然后\theta^{-}_{t}计算其Q值。所以Double DQN与DQN的不同其实可以总结为“关于下一时刻状态的最佳动作,是由决策网络来选还是评估网络来选”。

查资料的时候,关于Double DQN的作用说法基本为“抑制Q值的过度估计”。在网络训练初期,对于Q值计算尚不准确时,一味遍历取最大值,容易使target_q偏高,因为target_q是由reward和S_{t+1}的q组成的,而S_{t+1}的q理论上又是由reward和S_{t+2}的q组成,以此类推,Q值的overestimate就会叠加,造成过高估计(例如此时网络对于某个action的Q值估计偏高,而由于不加限制的max方法,这个overestimation就被引进来了)。\theta^{-}_{t}的出现为的是参数固定,即解决梯度下降时目标值频繁变化造成难以收敛的问题,而参数固定带来的结果是\theta^{-}_{t}没有\theta_{t}那么新,在上文所述选择最佳动作时,没有\theta_{t}合理。因此使用\theta_{t}来更合理地选择动作,而使用\theta^{-}_{t}来计算Q值保证梯度下降目标值的稳定,就是Double DQN的效果。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值