第九章 深度强化学习-Double DQN

在这里插入图片描述

获取更多资讯,赶快关注上面的公众号吧!

第九章 深度强化学习-Double DQN

  目前流行的Q-learning算法会过高的估计在特定条件下的动作值。实际上,在实践中,这种过高的估计是否常见,是否会损害性能,以及是否可以预防,这些以前都不知道。于是Hado van Hasselt在2015年发表论文《Deep Reinforcement Learning with Double Q-learning》[1]回答了上述的问题,特别的,文章中指出最近的DQN算法,的确存在在玩Atari 2600时会存在严重的过高估计问题,并提出了Double Q-learning algorithm,可以很好的降低观测到的过高估计问题,而且在多个游戏上取得了更好的效果。

9.1 回顾

  为了解决序列决策问题,可以学习每个动作最优值的估计值,大多数问题的规模比较大,从而导致无法分别学习所有状态下的所有动作,相反,可以通过参数化的方式来近似拟合值函数,在状态St执行At,返回即时奖励Rt+1,并进入下一状态St+1,标准的Q学习参数更新如下:

θ t + 1 = θ t + α ( Y t Q Q ( S t , A t ; θ t ) ) θ t Q ( S t , A t ; θ t ) (1) \boldsymbol{\theta}_{t+1}=\boldsymbol{\theta}_{t}+\alpha\left(Y_{t}^{\mathrm{Q}}-Q\left(S_{t}, A_{t} ; \boldsymbol{\theta}_{t}\right)\right) \nabla_{\boldsymbol{\theta}_{t}} Q\left(S_{t}, A_{t} ; \boldsymbol{\theta}_{t}\right)\tag {1}
其中α为标量步长,目标YtQ定义如下:

Y t Q R t + 1 + γ max a Q ( S t + 1 , a ; θ t ) Y_{t}^{\mathrm{Q}} \equiv R_{t+1}+\gamma \max _{a} Q\left(S_{t+1}, a ; \boldsymbol{\theta}_{t}\right)

  该更新就类似于随机梯度下降,将当前值Q(St,Att)朝目标值YtQ更新。

  在上一章中我们介绍了Nature DQN,为了保证算法具有更高的稳定性,Nature DQN中引入了带有参数θ-的目标网络,该网络与在线更新网络结构相同,只是目标网络的参数更新存在延迟,即每隔C步使用在线网络更新目标网络的参数,更新的目标为:

Y t D Q N R t + 1 + γ max a Q ( S t + 1 , a ; θ t ) (3) Y_{t}^{\mathrm{DQN}} \equiv R_{t+1}+\gamma \max _{a} Q\left(S_{t+1}, a ; \boldsymbol{\theta}_{t}^{-}\right)\tag {3}

9.2 过高估计

  其实早在1993年Thrun和Schwartz就已经对Q学习的过高估计进行了研究,他们认为如果动作值中包含在[-ε, ε]上均匀分布的随机误差,那么每个目标可以过高估计达 γ ϵ m 1 m + 1 \gamma \epsilon \frac{m-1}{m+1} ,其中m为动作数量。之后 van Hasselt在2010年就指出使用表格型方法环境中的噪声也会导致过高估计,并提出了Double Q学习。

  但实际上任何形式的估计误差都可能引起上偏差,而不轮这是误差是由环境噪声、函数近似、不平稳性或其他误差源导致的。Thrun和Schwartz给出了特定设置下过高估计的上界,van Hasselt试图寻找下界。

  定理1:考虑一个状态s,在该状态下所有的最优动作值函数 Q ( s , a ) = V ( s ) Q_{*}(s, a)=V_{*}(s) ,设Qt为任意值函数估计,其为真实值函数整体上的无偏估计,即 a ( Q t ( s , a ) V ( s ) ) = 0 \sum_{a}\left(Q_{t}(s, a)-V_{*}(s)\right)=0 ,但由于估计误差的存在,设 1 m a ( Q t ( s , a ) V ( s ) ) 2 = C \frac{1}{m} \sum_{a}\left(Q_{t}(s, a)-V_{*}(s)\right)^{2}=C ,C>0且m≥2,m为状态s下的动作数。在这种条件下满足 max a Q t ( s , a ) V ( s ) + C m 1 \max _{a} Q_{t}(s, a) \geq V_{*}(s)+\sqrt{\frac{C}{m-1}} ,但是采用Double Q-learning,则绝对误差为0。

  更典型的是,过高估计会随着动作数量的增加而增加,如图1所示。Q-learning的过估计确实会随着动作数量而增加,而Double Q-Learning是无偏的。
在这里插入图片描述

图1 橙色条当动作值函数Q(s,a)=V*(s)+ε~a~,且{ε~a~}~a=1~^m^为独立标准正态随机变量时,单次Q学习更新的偏差。蓝色表示的第二组动作值Q’,是独立同分布的。所有的条都是100次重复的平均值。

9.3 Double DQN

  Double Q-learning的思想是通过将目标函数的最大值操作分解为动作选择和动作评估。尽管不是完全的解耦合,DQN框架中的目标网络提供了一个天然的对于第二个价值函数的候选,这就不需要我们再引入一个额外的网络了。因此,建议使用在线网络来评估贪心策略,然后使用目标网络来估计值函数。同时考虑Double Q-learning和DQN,可以得到算法Double DQN。它的更新和DQN一样,只不过使用下式代替YtDQN

Y t DoubleDQN  R t + 1 + γ Q ( S t + 1 , argmax a Q ( S t + 1 , a ; θ t ) , θ t ) (4) Y_{t}^{\text {DoubleDQN }} \equiv R_{t+1}+\gamma Q\left(S_{t+1}, \underset{a}{\operatorname{argmax}} Q\left(S_{t+1}, a ; \boldsymbol{\theta}_{t}\right), \boldsymbol{\theta}_{t}^{-}\right)\tag {4}

  和Double Q学习相比,用目标网络θt-代替第二个网络θt’的权重,用来评估当前贪婪策略。目标网络的更新跟DQN里一样,都是周期性地复制在线网络的参数。

References

[1] H. van HasseltA. Guez and D. Silver, “Deep Reinforcement Learning with Double Q-learning,” Computer Science, 2015.

发布了42 篇原创文章 · 获赞 56 · 访问量 5718

猜你喜欢

转载自blog.csdn.net/hba646333407/article/details/103532438
今日推荐