Deep Reinforcement Learning with Double Q-learning(Double DQN)论文学习和公式推导

最近刚开始使用DQN,也会用DDQN,但是背后的原理不理解,所以读了这篇论文,下面以翻译并附带一些解释和公式推导的方式讲讲我个人的理解,有疑问可以多交流。

Abstract

Q-learning算法会在某些情况下存在对action values的过估计(overestimation)问题,但这种过估计是否普遍存在,是否影响性能,是否可避免,以前尚不清楚。作者在本文回答了这些问题,且证明了用于解决表格式问题(状态动作是一个一个离散的)的Double Q-learning算法背后的思想可以推广用于大规模函数逼近。作者提出了一种改进的DQN算法,减少了过估计现象。

 

Q-learning有时学到不切实际的高action value,原因是在估计action value时包含了max操作。以前的工作中,overestimation被归因于不够灵活的函数逼近(Thrun and Schwartz, 1993)和噪声(van Hasselt, 2010, 2011)。本文作者统一了这些观点,证明了当action value不准确时,无论逼近误差来源如何,都会产生overestimation问题。在实际学习过程中,不精确的价值估计是经常见到的,所以overestimation问题会经常出现。

overestimation是否会产生负面影响是未知的,但过度乐观的价值(overoptimistic value )本身不一定是问题,如果所有value均匀地提高了,那每个动作的相对好坏并不会改变,对应的策略也不会受到影响。但是如果overestimation不是均匀产生,那它可能会对学习到的策略产生负面影响。

为了检验实践中overestimation是否大规模出现,作者研究了最新的DQN算法(Mnih et al., 2015)。从某种程度上讲(针对前面提到的逼近函数不够灵活和噪声),DQN的设计是最佳方案,因为神经网络提供了灵活的函数逼近功能,并且有较低的渐近逼近误差,同时环境(Atari 2600)的确定性也防止了噪声的影响。在即使在这样有利的条件下,DQN依然存在overestimation问题(这也就说明了前面Thrun and Schwartz和van Hasselt的观点都是片面的)。

本文证明了Double Q-Learning 算法背后的思想(最初在表格形式的环境中提出)可以推广到任意函数逼近,包括神经网络。将该思想应用到DQN上提出Double DQN,并证明了该算法不仅可以估计出更准确的value,而且在游戏中获得了更高的分数。这也反映出DQN中的overestimation确实导致policy变差,减少overestimation有益于学习到更好的policy。

 

Background

对于state和action数量过大的问题,由于参数量巨大,Q-learning无法学习到所有状态下所有动作的Q值,所以引入参数\theta,用Q\left ( s,a;\theta \right )近似Q\left ( s,a \right ),以此来用少量的参数\theta拟合实际的价值函数,公式(1)是参数\theta的更新公式,公式(2)是目标Y{_{t}}^{Q}的定义。

公式(1)和(2)的推导:

目标是确定参数\theta最小化近似函数Q\left ( S,A;\theta \right )和实际函数Q\left ( S,A \right )之前的均方误差(MSE),令均方误差为J\left ( \theta \right )

                                                                           J\left ( \theta \right )= \mathbb{E}\left [ \left ( Q\left ( S,A \right )-Q\left ( S,A;\theta \right ) \right )^{2} \right ]

\theta需要朝着J\left ( \theta \right )梯度负方向调整来最小化J\left ( \theta \right )

                                                                            \begin{aligned} \Delta \theta &= -\frac{1}{2}\alpha \nabla_{\theta }J\left ( \theta \right )\\ &=\alpha \mathbb{E}\left [\left ( Q\left ( S,A \right )-Q\left ( S,A;\theta \right ) \right )\nabla_{\theta }Q\left ( S,A;\theta \right ) \right ] \end{aligned}

\alpha是更新步长,可以理解为学习率,使用随机梯度进行更新来近似该期望(取一批样本计算平均值当作期望),

                                                                            \Delta \theta=\alpha \left ( Q\left ( S,A \right )-Q\left ( S,A;\theta \right ) \right )\nabla_{\theta }Q\left ( S,A;\theta \right )

由于真实的价值函数Q\left ( S,A \right )是未知的,上述公式无法直接使用,因此需要找到真实价值函数的替代TD\left ( 0\right )使用的是R_{t+1}+\gamma Q\left ( S_{t+1},A_{t+1};\theta_{t} \right )作为替代,而基于TD\left ( 0\right )的Q-learning进一步改进,用当前策略(greedy策略)去选择下一状态的动作,

                                     \begin{aligned} R_{t+1}+\gamma Q\left ( S_{t+1},A_{t+1};\theta_{t} \right ) &=R_{t+1}+\gamma Q\left ( S_{t+1},\underset{a_{t+1}}{\textup{argmax}}\ Q\left ( S_{t+1},a_{t+1} ;\theta_{t} \right );\theta _{t}\right ) \\ &=R_{t+1}+\underset{a_{t+1}}{\textup{max}}\ \gamma Q\left ( S_{t+1},a_{t+1};\theta_{t} \right ) \end{aligned}

上述推导结果就是论文里的公式(2),再用上述结果替代真实的Q\left ( S,A \right ),就得到了论文里的公式(1)。

 

Deep Q Network

对于DQN网络\theta就是多层神经网络的参数,参数对于n维状态空间,包含m个动作的问题,DQN可以就相当于从\mathbb{R}_{n}\mathbb{R}_{m}的映射函数,Mnih et al. (2015)等人提出的DQN有两个重要的部分,一是使用target network,另一个是experience replay。target network结构和policy network一样,参数为\theta^-,每隔\tau步将policy network的参数复制到target network,然后保持不变直到下次复制。target network用来估计目标,公式(2)里的目标就变为公式(3),

experience replay就是将观察到的状态转换样本存储起来,并随机均匀取样来更新网络参数。

 

Double Q-learning

在Q-learning和DQN的参数更新目标中(公式2和3),max操作使用相同的value来选择动作并评估动作,拿公式(2)举例子,公式中a的选择是通过\underset{a}{\textup{argmax}}\ Q\left ( S_{t+1},a ;\theta_{t} \right )得到的,即令Q\left ( S_{t+1},a ;\theta_{t} \right )最大的a;而选择a后Q值的估算也是通过Q\left ( S_{t+1},a ;\theta_{t} \right )得到的,都使用了参数为\theta _{t}的动作值函数Q,所以说动作的选择和评估使用了相同的value。而正是这个原因,使得overestimated value更容易被选择,从而导致overestimation。为了避免这种情况,将动作的选择和评估分离(decouple),这就是Double Q-learning的思想。具体的实现方法是:设置两个结构相同价值函数,每次将样本随机分配给某一个价值函数学习,从而学到两组权重,\theta\theta^{'},在每次更新时,一组权重用来确定贪婪策略(选择动作),另一组权重用于评估动作(计算Q值得到更新目标)。为了更清晰的比较,本文作者将公式(2)(Q-learning的目标)拆分重写为

Double Q-learning的目标可以表示为公式(4),

其实这个拆分在上面的推导过程中已经用到了,这里应该很好理解了,Q-learning中动作的选择和评估都是使用的权重\theta_{t},而Double Q-learning中动作的选择和评估分别使用了权重\theta_{t}\theta_{t}^{'}

 

Overoptimism due to estimation errors

Q-learning的overestimation问题首先由Thrun and Schwartz (1993)研究,他们发现如果action value包含在\left[-\epsilon ,\epsilon \right]内均匀分布的随机误差,则每个目标被过估计到\gamma \epsilon \frac{m-1}{m+1}m是动作数量。此外,Thrun and Schwartz给出了一个具体的示例,其中这些overestimation甚至导致了此优策略,并在使用函数逼近的测试问题中显示了overestimation。后来,van Hasselt (2010) 提出,即使使用表格表示形式,环境中的噪声也可能导致overestimation,并提出了Double Q-learning。

作者将在本节证明,无论是环境噪声,函数逼近,不稳定,还是其他来源,任何类型的估计误差都可能导致向上偏差(upward bias)。在实践中,由于真实值是未知的,任何方法都会在学习过程中产生一些不准确的地方。上面提到的Thrun and Schwartz(1993)的结果给出了特定设置下Q-learning的overestimation上限,还需要进一步推导出Q-learning的overestimation下限

作者给出了定理1,这里大概解释一下:在状态s下所有最优action value都相等,即对任意动作a,Q_{*}\left ( s,a \right )=V_{*}\left ( s \right ),也就是说s状态下最优Q值与动作无关。令Q_{t}V_{*}\left ( s \right )无偏估计\sum_{a} \left (Q_{t}\left ( s,a \right )-V_{*}\left ( s \right ) \right )=0,平均误差为0但不是每个动作的Q值误差都为0,\frac{1}{m}\sum_{a} \left (Q_{t}\left ( s,a \right )-V_{*}\left ( s \right ) \right )^{2}=C,C> 0,m是状态s下可执行动作数量,m\geq 2。在上述条件下,\textup{max}_{a}\ Q_{t}\left ( s,a \right )\geq V_{*}\left ( s \right )+\sqrt{\frac{C}{m-1}},这就是Q-learning的tight下限(不等式能放缩次数越多,不等式越松弛,作者也证明了这个不等式是tight)。在相同的条件下,Double Q-learning估计的绝对误差下限为0。

证明:记动作a的Q值的绝对误差为\epsilon _{a}=Q_{t}\left ( s,a \right )-V_{*}\left ( s \right ),每个动作的误差构成一个集合\left \{ \epsilon _{a} \right \},假设\textup{max}_{a}\ \epsilon _{a}< \sqrt{\frac{C}{m-1}}\left \{ \epsilon _{a} \right \}中的正误差记为\left \{ \epsilon _{i}^{+} \right \},大小为n严格负误差记为\left \{ \epsilon _{i}^{-} \right \},大小为m-n(注意作者用了positive和strictly negative,也就是说在正误差集合里可以取到0,负误差集合里不能取到0)。

如果n=m,即没有负的误差,已知平均绝对误差\sum _{a}\epsilon _{a}=0,且绝对误差都非负,所以所有的\epsilon _{a}都必须取0。而条件中已经说了不是每个误差都为0,\sum _{a}\epsilon _{a}^{2}=mC,此时就与条件矛盾,所以n\leq m-1。由于\sum _{i=1}^{n}\epsilon _{i}^+\leq n\textup{max}\epsilon _{i}^{+}<n\sqrt\frac{C}{m-1},且\sum _{a}\epsilon _{a}=0,可以推出\sum _{j=1}^{m-n}\left|{\epsilon _{j}^-}\right|<n\sqrt\frac{C}{m-1}m-n个绝对值加起来小于n\sqrt\frac{C}{m-1},那么单个绝对值的最大值一定小于n\sqrt\frac{C}{m-1},即\textup{max}_{j}\left|\epsilon _{j}^{-}\right|<n\sqrt\frac{C}{m-1},然后有

                                                                \begin{aligned} \sum _{j=1}^{m-n}\left ( \epsilon _{j}^{-} \right )^{2} &=\sum _{j=1}^{m-n}\left|\epsilon _{j}^{-} \right|\left|\epsilon _{j}^{-} \right| \\ &\leq \sum _{j=1}^{m-n}\left|\epsilon _{j}^{-} \right|\cdot \textup{max}_{j}\left|\epsilon _{j}^{-} \right| \\ &=\textup{max}_{j}\left|\epsilon _{j}^{-} \right| \cdot \sum _{j=1}^{m-n}\left|\epsilon _{j}^{-} \right| \\ &<n\sqrt\frac{C}{m-1}n\sqrt\frac{C}{m-1} \end{aligned}

此时可以推出\sum _{a=1}^{m}\left ( \epsilon _{a} \right )^2< mC(这一步中间过程论文里有我就省略了),然而推出的这个结果与条件\sum _{a}\epsilon _{a}^{2}=mC矛盾。此时在假设\textup{max}_{a}\ \epsilon _{a}< \sqrt{\frac{C}{m-1}}下,无论n=m还是n\leq m-1都不成立,所以这个该假设不成立,即\textup{max}_{a}\ \epsilon _{a}\geq \sqrt{\frac{C}{m-1}}。当

\epsilon _{a}=\sqrt{\frac{C}{m-1}},a=1,...,m-1,and \ \epsilon _{m}=-\sqrt{\left ( m-1 \right )C}时(\textup{max}_{a}\ \epsilon _{a}取到下限),满足条件\sum _{a}\epsilon _{a}^{2}=mC\sum _{a}\epsilon _{a}=0,也就是说这个不等式不能再放缩了,即下限\textup{max}_{a}\ \epsilon _{a}\geq \sqrt{\frac{C}{m-1}}是tight的。

以上是Q-learning的overestimation下限推导,而Double Q-learning的overestimation下限\left| Q_{t}^{'}\left ( s,\textup{argmax} _{a}Q_{t}\left ( s,a \right ) \right) -V_{*}\left ( s \right )\right|=0

证明:取Q_{t}\left ( s,a_{1} \right )=V_{*}\left ( s \right )+\sqrt{C\frac{m-1}{m}}Q_{t}\left ( s,a_{i} \right )=V_{*}\left ( s \right )+\sqrt{C\frac{1}{m\left ( m-1 \right )}},\textup{for}\ i>1,满足定理1中的假设条件\sum _{a}\epsilon _{a}^{2}=mC\sum _{a}\epsilon _{a}=0,此时只需Q_{t}^{'}\left ( s,a_{1} \right )=V_{*}\left ( s \right )那么误差就是0,因为a_{1}的Q值最大所以argmax操作取出a_{1},所以只需令Q_{t}^{'}\left ( s,a_{1} \right )=V_{*}\left ( s \right ),其他Q_{t}^{'}\left ( s,a_{i} \right ),\textup{for}\ i>1可以取任意值,只要保证通过Q函数取出来的a_{1}的价值估计是正确的,误差就是0。

其实推导完也就懂了为什么Double Q-learning能够减少overestimation,就是在评估动作时使用了新的Q^{'}函数,不受已知条件限制。

定理1也表明,即使价值评估平均误差为0,任何来源的误差都会造成评估最大价值高于真实最优价值。根据定理1中的结论,Q-learning的\textup{max}_{a}\ \epsilon _{a}\geq \sqrt{\frac{C}{m-1}},虽然随着动作数m的增大下限减小,但这仅仅代表的是下限,真正取到下限是要满足特定条件的,而实际操作中,随着m的增大,overestimation整体上在不断增加。

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

证明了Double Q-learning能够减少overestimation后,现在将其应用到函数逼近上。作者做了三组实验,分别对应上图中三行图片,第一行Q_{*}\left ( s,a \right )=\sin \left ( s \right ),后两行Q_{*}\left ( s,a \right )=2\textup{exp}\left ( -s^{2} \right ),状态在\left [-6,6\right ]连续取值,每个状态下有10个离散的动作,为简单起见,真实的最优Q值仅取决于状态,也就是在每个状态下所有动作均有相同的真实最优Q值。

先分析左边的三行图,紫色的线代表每个状态真实的最优Q值,绿线为状态s下单个动作Q值的估计Q_{t}\left ( s,a \right ),绿点为采样点,直接从真实数据中采样,不含噪声,也就是样本中的Q值就是实际最优的Q值。总共有10个动作,每个动作仅仅在13个采样点中的11上采样,这样在未采样的点上可以更好反映函数逼近的效果,实际中也常会遇到这样的样本数据不足的问题。第一行和第二行实验使用6阶多项式去拟合Q_{*}\left ( s,a \right ),第三行实验使用9阶多项式。可以看出左图第二行在采样点上的逼近也不精确,是由于多项式阶数低不够灵活;左图第三行可以看出,虽然在采样点上逼近都很好,但在未采样的的地方误差很大,应该是过拟合了。

再看中间三行图,每幅图中10条绿线是10个动作分别对应的动作值函数,黑色虚线是每个状态下最大动作值。可以看出最大动作值基本都比左边图中的真实最优Q值大,也就是出现了overestimation。

最后看右边三行图,橙线是中间图中黑色虚线与左边图中紫线作差的结果,即\textup{max}_{a}\ Q_{t}\left ( s,a \right )-\textup{max}_{a}\ Q_{*}\left (s,a \right ),蓝线是使用了Double Q-learning的估计效果,蓝线的平均值更接近0,这表明Double Q-learning确实可以减少Q-learning在函数逼近中的overestimation问题。

通过实验,发现不够灵活的函数逼近对Q值的估计不精确,但是足够灵活的函数逼近在未知状态中会产生更大误差,导致更高的overestimation,DQN就是一种非常灵活的函数逼近,使用了神经网络来逼近价值函数。而overestimation最终会阻止学习到最优策略,作者后面也通过Atari上的实验证明了这点,且通过Double Q-learning减少overestimation最终策略也会得到改善。

 

Double DQN

Double DQN思想就是将目标中的max操作分解为使用不同的网络来进行动作选择和动作评估,以此来减少overestimation。而DQN中本来就使用了policy network和target network两个网络,所以无需再引入新的网络,只需改进DQN算法中的目标设计,即将公式(3)中的目标改为下面公式中的目标,

target network的更新方式并不改变,仍然是每隔固定步数从policy network复制。后面一部分就是作者做的DQN和Double DQN的对比实验了,比较简单易懂这里就不赘述了,里面倒是有一句话我很喜欢:“Good solutions must therefore rely heavily on the learning algorithm — it is not practically feasible to overfit the domain by relying only on tuning.

 

Discussion

本文共有五个贡献。首先说明了为什么Q-learning会出现overestimation。其次通过实验分析,证明了overestimation在实践中比以前认识到的更加普遍和严重。第三,证明了可以通过Double Q-learning减少overestimation,使学习更稳定可靠。第四,基于DQN提出了Double DQN,无需新的网络结构或参数。最后证明Double DQN可以学习到更好的策略,在Atari 2600上获得state-of-the-art结果。

 

 

  • 13
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: “使用双重Q学习的深度强化学习”是一种强化学习算法,它使用双重(double)Q学习来解决传统Q学习中的估计误差问题。通过使用两个独立的Q网络来计算状态-行为值函数,可以减少估计误差,提高学习效率和稳定性。在深度强化学习中,该算法可以应用于诸如游戏、机器人控制等复杂任务。 ### 回答2: Deep Reinforcement Learning with Double Q-Learning(双Q学习的深度强化学习)是一种利用深度学习技术进行增强学习的方法。在传统的强化学习中,Q-Learning是最常用的算法。然而,传统的Q-Learning存在着过高估计(overestimation)的问题,即它会过度估计某些动作的价值,这会使得智能体在实际运用过程中效果下降。 Double Q-Learning便是为了克服这一问题而被提出的算法。 Double Q-Learning是将Q-Learning算法分解成两个独立的网络,并通过互相交替使用这两个网络的方式来消除过高估计。具体来说,Double Q-Learning的基本思想是采用一对Q函数,将它们互相制约,使每个Q函数只估计另一个Q函数所做出的贪心策略的Q值。因此,这种方法将学习由另一个Q函数选择的最佳动作。 Deep Reinforcement Learning with Double Q-Learning所做的改进是将双Q学习应用于深度神经网络中。这样可以在复杂的环境中获得更好的性能。深度学习网络可以自主提取及学习输入数据的特征,然后利用这些特征来预测下一个状态的价值。因此,深度学习网络可以训练出更好的Q值函数,从而使得智能体的决策更加准确和稳定。同时,使用双Q学习技术使得网络更加稳定,从而更容易训练出更加准确和高效的智能体。 总体来说,Deep Reinforcement Learning with Double Q-Learning是一种高效的增强学习方法,可以帮助智能体在复杂环境下学习最佳策略。Double Q-Learning技术可以有效地消除过高估计的问题并提高点估计Q函数的准确性。同时,深度神经网络可以在处理高维度状态空间时提高学习效率。 ### 回答3: 深度强化学习是一种通过不断试错的方式,使机器在特定环境下学习并改进其决策能力的算法。其中,双重Q学习是一种基于Q-learning强化学习算法,其通过双重估计目标函数,从而提高学习的效率和稳定性。下面将详细介绍深度强化学习与双重Q学习的原理及其优缺点。 深度强化学习简介: 深度强化学习依赖于神经网络模型和回报函数来指导决策。该方法通过梯度下降算法来不断更新参数以优化模型。其中,Q-learning是一种基于值函数的学习方式,其依赖于动作价值Q函数来指导决策。在深度强化学习中,可以通过深度Q网络来实现Q函数的学习。 双重Q学习的原理: 在Q-learning算法中,估计Q函数的时候会涉及到目标值的计算,目标值即为当前状态下的最大Q值。由于这个最大值来自于学习目标的网络,因此它本身也是训练数据中的最大值。而事实上,Q-learning很容易会高估这些值,从而导致学习的波动性增强和性能的下降。为了解决这个问题,双重Q学习引入了两个Q网络,并通过一定的策略来选择其中的一个网络计算Q值。对于目标函数的计算,与之前不同的是,双重Q学习将估计Q值和选择动作的过程分开进行,从而减少了Q值的高估。 双重Q学习的优缺点: 优点: 1.双重Q学习可减少估计Q函数时的波动,从而提高了学习的稳定性和性能。 2.该算法可以避免Q值函数过高或过低的问题,从而提高学习效果。 3.可针对复杂的决策任务和环境设计较为复杂的网络结构以提高效率。 缺点: 1. 双重Q学习需要建立两个Q网络,因此需要的计算资源较大。 2. 该算法对于环境动态变化较大的任务较难优化。 总之,深度强化学习与双重Q学习为现代人工智能领域的研究和应用提供了一些有益的思路和方法。在实际应用中,需要结合具体问题的特点和实际情况进行选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值