Deep Reinforcement Learning with Double Q-Learning 论文剖析 Hado van Hasselt 、Arthur Guez 、 David Silver from Google DeepMind 〇. 文章信息 Deep Reinforcement Learning with Double Q-learning 作者:Hado van Hasselt 、Arthur Guez 、 David Silver from Google DeepMind ,2015 https://arxiv.org/abs/1509.06461 一.
Hado van Hasselt 、Arthur Guez 、 David Silver from Google DeepMind
Deep Reinforcement Learning with Double Q-learning
作者:Hado van Hasselt 、Arthur Guez 、 David Silver from Google DeepMind ,2015
https://arxiv.org/abs/1509.06461
高估问题(overestimation)一直是强化学习中存在的问题,但是一直以来其来源有多种说法,一是归因于不灵活的函数近似(Thrun和Schwartz, 1993),一是来自噪声(van Hasselt, 2010, 2011)。通过实验也表明,高估问题的普遍性相较之前认识的要普遍的多,需要找到方法缓解其影响。
本文的写作动机就是探索高估的产生,验证高估问题对于Q-Learning是否不利,并寻找缓解高估问题的方法。
本文中,作者总结了DQN的发展:
Q-Learning是一种时序差分方法,很好的被用在时序决策问题中(Watkins, 1989),其通过估计最优动作价值函数
具体请参考Q-Learning文章,此处给出迭代公式方便后续说明。
因为状态过多或者连续,无法遍历所有状态,需要使用参数化函数 Q(s,a;\theta _t)对现有值进行拟合,并对未知状态的价值函数进行预测,通过公式
完成参数更新,其中Y_t^Q =R_{t+1}+\gamma \substack{max\\a}Q(S_{t+1},a;\theta _t)是TD-target, 主要思想就是使用类似梯度下降的方法,使得拟合出的参数化函数更加接近目标,也就是说更加符合真实值。
解决了传统Q-Learning中的无法解决的未知状态问题,即欠鲁棒的问题。
(Mnih et al. ,2015))——神经网络+Q-Learning
说到函数拟合就不得不提到神经网络,它具有极强的函数拟合能力,DQN应运而生。
DQN针对传统Q-Learning有以下三点改进,提高了算法的性能:
使用一个异步更新的目标网络,网络参数用\theta^-表示(每\tau次将Q-net的参数\theta赋值给目标网络)用来进行目标的计算。
本文的重点,下一章介绍
更换计算目标的方式,公式为:
在传统DQN中,TD-target的计算可以分为两个步骤:最优动作的选取 与 最优动作价值函数的计算 。该公式可以变形为以下分解形式:
计算目标的任务就转换到了目标网络上:
使用上面提到的Double Q-Learning,则变为以下形式:
其实Q-Learning也有Double的形式,分别训练两个模型\theta,\theta' 操作一样,只是这里Double DQN巧妙地使用了目标网络\theta^- 作为第二个网络
为了方便观看,使用表格形式展示
| DQN | DQN+target network | Double DQN | |
|---|---|---|---|
| 最优动作的选取 | 策略网络\theta | 目标网络\theta^- | 目标网络\theta^- |
| 最优动作价值函数的计算 | 策略网络\theta | 目标网络\theta^- | 策略网络\theta |
由此可以看出如何解耦,在传统的DQN+目标网络的方法上,最优动作的选取 与 最优动作价值函数的计算 两步是耦合的,但是Double DQN解耦二者,达到了缓解高估的效果。至于为什么要这么做,就需要清晰的了解高估问题是如何产生的,作者在下一部分明确的证明了高估现象的发生与高估的上下限,并使用实验验证了理论。
本文另一贡献就是系统的分析了高估问题产生的原因和如何影响了Q-Learning。
简单来说,因为神经网络等估计方法存在误差,导致估计出的在某一固定状态s下,不同动作的动作价值函数Q(A_t=a_i, S_t=s)相对真实值Q_*(A_t=a_i, S_t=s)估计误差。假设估计噪声为高斯,无偏均值为0,误差可正可负,到此并无大碍,但是接下来的更新时的操作计算TD-target的时候,如公式(3),使用了max操作,这导致在这一步的误差始终为正的,造成正的偏差,这就是导致高估的原因。
举个形象生动的例子:每天食堂拿盒饭,每盒的量500g大致相等,但是有的稍多为530g,有的稍少为470g。你每天随机选择一盒作为午餐,一个月下来你的体重没有变化,因为吃到的盒饭期望是每盒的平均值500g。但是第二个月你通过灵敏的视觉,每天都挑最多的那一盒,一个月下来胖了三斤,因为这时候吃到盒饭的期望为最大值530g。
选择最多的盒饭的过程就是max操作,你吃进去的饭通过公式(1)消化(更新),更新了你的体重,也就是动作价值函数的估值。
Thrun and Schwartz (1993)首先发现了高估的现象,表明如果动作值包含均匀分布在区间[-\epsilon,\epsilon]中的随机误差,则每个目标被高估到上限 \gamma \in \frac{m-1}{m+1} ,其中 m 是动作的数量。
由贝尔曼最优方程可以得出最优动作价值函数与最优状态价值函数之间的关系:
即使定义估计是无偏的,平均误差为零,但不是每个估计的误差均为零,也会有以下情况的产生:
在这种假设下,使用(3)中的max操作,利用(2)进行价值函数的更新时,max_aQ_t(s,a) \geq V_*(s)+ \sqrt{\frac{C}{m-1}} ,得到了高估的下限。
文中特意提到,Double Q-Learning的高估下限为0。
证明可以参考原文附录,很详细,在此不赘述。
接着盒饭说。此时你感觉自己有点胖,命令你的室友替你拿盒饭,无论你的室友怎样拿,肯定不会比你自己拿的时候(挑最重的拿)多,即Q(s,a_*;\theta^-) \leq \substack{max\\a}Q(s,a),也就减少了目标的高估影响,从而减少了对动作价值函数的估计。
本文共做两次实验验证以上理论推导

作者实验证明,上图中横坐标为动作数,纵坐标为估计的Q值与最优值的误差(重复100次取平均),橙色为Q-learning,蓝色为Double Q-learning,可以看出随着动作数增加,Q-learning误差逐渐增大,而Double Q-learning基本无偏。

证明了Double Q-learning能够减少过拟合后,作者做了三组实验模仿参数拟合,以验证高估产生。
图表中横坐标为状态,共有13个状态,纵坐标为Q值的大小。共有十个动作。
通过实验,发现不够灵活的函数逼近对Q值的估计不精确,但是足够灵活的函数逼近在未知状态中会产生更大误差,导致更高的高估,DQN就是一种非常灵活的函数逼近,使用了神经网络来逼近价值函数。而高估最终会阻止学习到最优策略,作者后面也通过Atari上的实验证明了这点,且通过Double Q-Learning减少高估最终策略也会得到改善。
选择是相对的,均匀的高估不会对动作的选择造成影响。
真正造成影响的是:高估是非均匀的,回到吃盒饭的例子。你和我有一样的体质(吃-涨的比例相同),我比你稍微重,我们每次都只拿最多的盒饭530g,一个月涨的体重都一样,一个月之后还是我比你稍微重。但是你吃的是A种盒饭,我吃的是B种盒饭,这就会导致非均匀高估,导致你可能长胖更快一点,一个月之后甚至超过我,导致次最优解。
重要的事情说三遍:均匀高估无影响,真正产生影响的是非均匀高估,此后将高估一词指代非均匀高估。
网络架构是一个卷积神经网络(Fukushima, 1988; LeCun et al., 1998),具有 3 个卷积层和一个全连接隐藏层(总共大约 150 万个参数)。网络将最后四帧作为输入,输出每个动作的动作值。在每场游戏中,网络都在单个 GPU 上训练 200M 帧,或大约 1 周。

作者在6款游戏上重复进行实验,得出以下结果
最后,为了证明算法的稳定性,采用了不同的时间点开始切入学习(让人先玩一段时间,智能体再接手),发现DDQN的结果更加稳定,并且DDQN的解并没有利用到环境的相关特性。
这篇论文有五个贡献。
于天琪,男,20多岁,单身,就读于哈尔滨工程大学陈赓实验班
知乎主页:https://www.zhihu.com/people/Yutianqi
qq:2206422122
欢迎交流,互相学习