Deep Reinforcement Learning with Double Q-learning

Deep Reinforcement Learning with Double Q-learning

文章地址:
https://arxiv.org/abs/1509.06461

摘要

写这篇文章的原因:流行的Q-Learning算法在某些条件下会产生高估动作值。然而,这种高估是否是普遍存在、是否影响算法的结果、是否可以预防,都没有被研究。

论文干了什么:文章通过使用Q-Learning算法在Atari 2600进行实验,证明了高估确实普遍存在,并且产生了消极影响。通过Double Q-learning的对比,证明这种高估可以被解决,实验部分提出了Double DQN,与DQN做对比,结果是不仅减少了高估,而且有更好的表现。

因为文章是针对Q-Learning算法中的高估问题写的,因此文章从介绍Q-Learning高估问题起笔:

高估产生的原因是在估计动作价值时,使用了maxization操作。之前的研究将高估归因于函数近似不够灵活,以及噪声(函数近似不够灵活:即由于函数的拟合能力有限,造成对动作价值的估计不够准确。噪声:由于环境原因造成我们对动作价值的估计不够准确。在下文的实验中也针对这两个方面进行了实验探究。)本文则将这两个原因统一起来,找到了根本原因:动作价值预测不准确。(即不管你是什么原因导致动作价值预测不准确,都会产生高估)但学习过程中,动作价值预测不准确是常见的,因此高估也是普遍的。

过估计是否会在实践中产生负面影响也是一个悬而未决的问题,乐观的价值估计本事不一定是一个问题,如果所有估计都一致地被高估,那么算法对每个操作的相对偏好就会被保留,结果就不一定会变得糟糕。在另外一篇论文中提到乐观主义在面对不确定性时是一种常用的技术。(在探索时,我们使用贪心策略,即以 1 − ϵ 1-\epsilon 1ϵ的概率选取最优动作,以 ϵ \epsilon ϵ的概率随机选择动作,如果以乐观主义(即某个动作的价值较高),那么它成为最优动作的概率就较高,被选择的概率也就越高,即会用更多轮次的交互对该动作的价值进行估计)可是如果过估计是不一致的并且不是集中在我们想要学习更多的状态,那就可能对最终策略产生消极影响(收敛到次优策略)。

为了测试过估计的发生规模,作者研究了DQN算法的表现。DQN是Q-learning和灵活的深度神经网络的结合,并且在Atari2600游戏中达到了人类水平。这样的设置对Q-learning而言是从最佳情况下考虑的,因为深度神经网络有较小的渐进近似误差,确定性的环境防止了噪声的有害影响。(即尽量减少之前提到的两种情况)但即使在这种场景下,DQN仍然会产生对动作价值的高估。

论文在Double Q-learning的基础上,使用深度神经网络近似Q函数构造了一个新的算法Double DQN。

Background

在给定策略 π \pi π的情况下,在状态 s s s下动作 a a a的真实价值是:
Q π ( s , a ) ≡ E [ R 1 + γ R 2 + . . . ∣ S 0 = s , A 0 = a , π ] Q_\pi (s,a)\equiv \mathbb{E} [R_1+\gamma R_2+...|S_0=s,A_0=a,\pi] Qπ(s,a)E[R1+γR2+...∣S0=s,A0=a,π]最优价值 Q ∗ ( s , a ) = max ⁡ π Q π ( s , a ) Q_*(s,a)=\max_\pi Q_\pi (s,a) Q(s,a)=maxπQπ(s,a),选择每个状态中的价值最高的动作就能得到最优策略。

DQN

定义一个参数化Q函数: Q ( s , a ; θ t ) Q(s,a;\theta_t) Q(s,a;θt),参数 θ \theta θ的更新公式如下:
θ t + 1 = θ t + α ( Y t Q − Q ( S t , A t ; θ t ) ) ∇ θ t Q ( S t , A t ; θ t ) \theta_{t+1}=\theta_t + \alpha (Y_t^Q-Q(S_t,A_t;\theta_t))\nabla_{\theta_t}Q(S_t,A_t;\theta_t) θt+1=θt+α(YtQQ(St,At;θt))θtQ(St,At;θt) 其中 α \alpha α是更新步长。 Y t Q Y_t^Q YtQ是更新目标,公式表示为: Y t Q = R t + 1 + γ max ⁡ a Q ( S t + 1 , a ; θ t ) Y_t^Q = R_{t+1}+\gamma \max_a Q(S_{t+1},a;\theta_t) YtQ=Rt+1+γamaxQ(St+1,a;θt)(原文中并没有直接说是DQN而是说Q-learning,因为函数近似的方式有很多,不一定是DQN(深度神经网络),此处简单起见直接写DQN(最流行,本文用到的也是这个))

对DQN的两个提升方法是:
(1)加入目标网络 Q θ − Q_{\theta^-} Qθ,使用目标网络后的DQN的目标的计算公式为:
Y t D Q N = R t + 1 + γ max ⁡ a Q ( S t + 1 , a ; θ t − ) Y_t^{DQN} = R_{t+1}+\gamma \max_a Q(S_{t+1},a;\theta_t^-) YtDQN=Rt+1+γamaxQ(St+1,a;θt)(2)经验回放(此处略,之后会再专门写关于阅读经验回放的博客)

Double Q-learning

在原来的Q-learning和DQN算法中,因为计算目标值 Y t Y_t Yt时用到了最大化的操作,导致产生高估的可能性变大。
上面的目标值(没有使用目标网络)的计算公式可以展开为:
Y t Q = R t + 1 + γ Q ( S t + 1 , arg max ⁡ a Q ( S t + 1 , a ; θ t ) ; θ t ) Y_t^Q = R_{t+1}+\gamma Q(S_{t+1},\argmax_a Q(S_{t+1},a;\theta_t);\theta_t) YtQ=Rt+1+γQ(St+1,aargmaxQ(St+1,a;θt);θt)公式中使用同一个Q网络选择一个最好的动作,再使用同一个Q网络计算其Q值(就相当于一个体操运动员,自己上场表演了一场,然后自己给自己的动作打了一个分,如果这个运动员的动作已经是最好的,那他给自己打了一个最高分是合理的,但如果这个运动员的动作不是最好的,但他认为自己是最好的,就产生了高估),目标值偏大就会导致Q网络向一个高估的方向更新,导致最终策略的高估。
在Double Q-learning中目标值的公式如下:
Y t D o u b l e Q = R t + 1 + γ Q ( S t + 1 , arg max ⁡ a Q ( S t + 1 , a ; θ t ) ; θ t ′ ) Y_t^{DoubleQ} = R_{t+1}+\gamma Q(S_{t+1},\argmax_a Q(S_{t+1},a;\theta_t);\theta_t^{'}) YtDoubleQ=Rt+1+γQ(St+1,aargmaxQ(St+1,a;θt);θt)从公式中可以看到,Double Q-learning使用了参数为 θ t \theta_t θt的网络选取了值最大的动作(这个网络就是真实在环境中探索时选取动作所使用的网络),使用参数为 θ t ′ \theta_t^{'} θt的网络对动作的价值进行估计(相当于不再让运动员给自己打分,而是让另一个人给他打分)。可以交换 θ t \theta_t θt θ t ′ \theta_t^{'} θt的角色来对称更新两个网络的参数。

Overoptimism due to estimation errors

Thrun 和 Schwartz 提出了当随机误差均匀分布在区间 [ − ϵ , ϵ ] [-\epsilon,\epsilon] [ϵ,ϵ]时,Q-learning算法每个目标值的过估计可达到 γ ϵ m − 1 m + 1 \gamma\epsilon\frac{m-1}{m+1} γϵm+1m1,其中m是动作数。

在本节中,更普遍地证明证明了任何类型的偏差都可能导致高估偏差,无论偏差是由什么原因引起的。然而由于在训练开始时,动作的初始值是未知的,因此误差是普遍存在的,因此高估也是普遍存在的。上面给出了对于特定设置下的高估上限,本文推导出了高估的下限。

理论1:考虑一个状态s,对于一些 V ∗ ( s ) V_*(s) V(s),所有真实最优动作在 Q ∗ ( s , a ) = V ∗ ( s ) Q_*(s,a)=V_*(s) Q(s,a)=V(s)相等。令 Q t Q_t Qt是任意价值估计,这个价值估计在 ∑ a ( Q t ( s , a ) − V ∗ ( s ) ) = 0 \sum_a (Q_t(s,a)-V_*(s))=0 a(Qt(s,a)V(s))=0的意义上是总体无偏的,但并不是全部正确,例如: 1 m ∑ a ( Q t ( s , a ) − V ∗ ( s ) ) 2 = C \frac{1}{m}\sum_a(Q_t(s,a)-V_*(s))^2=C m1a(Qt(s,a)V(s))2=C,其中 m ≥ 2 m \geq 2 m2是在状态s下的动作数, C > 0 C>0 C>0。在这些条件下, 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}} maxaQt(s,a)V(s)+m1C 。这个下界是紧的。在相同条件下,Double Q-learning的绝对误差下界是0。
(我的理解这个定理的意思是: Q t ( s , a ) Q_t(s,a) Qt(s,a)的均值是无偏的,但方差是有偏的,在这个情况下,Q-learning在状态s最优动作的Q值比真实的最优Q值高 C m − a \sqrt{\frac{C}{m-a}} maC ,而Double Q-learning的估计的绝对误差下限为0,即 max ⁡ a Q t ( s , a ) = V ∗ ( s ) + C m − 1 \max_a Q_t(s,a) = V_*(s) + \sqrt{\frac{C}{m-1}} maxaQt(s,a)=V(s)+m1C

这个定理不需要假设不同动作的估计误差是独立的,即使值估计的平均值是正确的,任何来源的估计错误都会使估计值比真正的最优值大。

从理论1可以推导出:对Q-learning来说动作数越多,这个误差的下限越低。但这个只是一个假象,需要非常特殊的值才能够到达这个下限。然后作者进行了一个实验来推翻这个说法,证明了Q-learning的高估误差随着动作数增加而增加。而Double Q-learning是无偏的(动作数增加对误差的影响不大)
在这里插入图片描述
因此另一个说法是:在状态s,对于所有真实最优动作价值在 Q ∗ ( s , a ) = V ∗ ( s ) Q_*(s,a)=V_*(s) Q(s,a)=V(s)处相等,假设估计误差 Q t ( s , a ) − Q ∗ ( s , a ) Q_t(s,a)-Q_*(s,a) Qt(s,a)Q(s,a)独立均匀分布在[-1,1]上,则
E [ max ⁡ a Q t ( s , a ) − V ∗ ( s ) = m − 1 m + 1 ] \mathbb{E}[\max_aQ_t(s,a)-V_*(s)=\frac{m-1}{m+1}] E[amaxQt(s,a)V(s)=m+1m1]

下面的一大部分都在讲解作者进行的一项实验,这里简单介绍:
在这里插入图片描述
作者设计了这样一个实验:每个状态有10个离散的动作,但每个状态的真实最优动作值函数仅仅取决于状态,即每个动作在该状态下的真实Q值都是相同的,并使用函数近似来拟合每个状态的真实最优Q值,这个函数是一个d维的多项式。上图中,第一行和第二行使用的是d=6的多项式,第三行使用的是d=9的多项式,第一行的真实最优Q函数定义为 Q ∗ ( s , a ) = sin ⁡ ( s ) Q_*(s,a)=\sin(s) Q(s,a)=sin(s),第二行和第三行真实最优Q函数定义为 Q ∗ ( s , a ) = 2 exp ⁡ ( − s 2 ) Q_*(s,a)=2\exp(-s^2) Q(s,a)=2exp(s2),左图紫线显示了真实的最优Q值,绿点显示了用于拟合真实最优Q函数采样的点,绿线是函数对单个动作价值的估计。中间的图显示的是对多个动作的值估计以及最大的值估计。最后一张图是显示偏差。
左图显示了在d较小时,函数近似不够灵活,因此不能很好拟合造成偏差;当d较大时,由于左侧采样的间隔较大,因此左侧的偏差较大。实验主要揭示了上面所提到的,不论值估计的误差是由什么原因产生的,都会造成高估。

Double DQN

Double Q-learning减少过估计的方法是将目标值计算时的最大化运算分解为动作选择和动作价值估计。可以使用DQN中的目标网络来作为动作价值估计的网络。最终的目标值计算公式为:
Y t D o u b l e D Q N = R t + 1 + γ Q ( S t + 1 , arg max ⁡ a Q ( S t + 1 , a ; θ t ) ; θ t − ) Y_t^{DoubleDQN} = R_{t+1}+\gamma Q(S_{t+1},\argmax_a Q(S_{t+1},a;\theta_t);\theta_t^{-}) YtDoubleDQN=Rt+1+γQ(St+1,aargmaxQ(St+1,a;θt);θt)目标网络的更新和DQN中相同,即周期性地从选择动作的网络中copy。

Empirical result

这一章主要讲了实验。实验主要是验证DQN的高估并验证Double DQN的高估较弱。
在这里插入图片描述

主要心得:
(1)离散环境中获取真实价值的方法:通过运行几个最优学习策略,并计算实际累积奖励来获得真实价值的平均值。(最上方四个图中蓝线的计算方式)
(2)作者的算法比较简单,理论部分也不多,但实验讲解的很详细,设计的也很巧妙,尤其是指明了在哪个论文实验的基础上进行的。
(3)一个评估鲁棒性的方法:从人类专家序列中选择起始点(其实是作者参考另一篇论文),并证明了DoubleDQN有更强的鲁棒性。
(4)Good solutions must therefore rely heavily on the learning algorithm — it is not practically feasible to overfit the domain by relying only on tuning.

我认为这篇文章的主要看点在于对过估计问题的分析,以及实验方法(虽然这篇文章的实验方法也是借鉴之前的论文)。文末的证明使用了反证法,但因为我看的一知半解的,就没有写。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答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学习为现代人工智能领域的研究和应用提供了一些有益的思路和方法。在实际应用中,需要结合具体问题的特点和实际情况进行选择。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值