Double DQN

Double DQN

Abstract

Q-learning算法在特定情况下会存在过估计action values的情况。这种情况在实际应用中很普遍,而且会影响算法效果。之前并不知道原因以及能不能避免这种情况。本文我们会回答这两个问题。首先我们会在Atari领域中展示近期DQN算法出现的过估计问题,然后阐释Double Q-learning算法的思想。

Introduction

强化学习的目的是针对序列决策问题通过优化累积未来回报,来学会一个好的策略。Q-learning是其中一种流行的强化学习算法,但是已知有时候会学习到不现实的高动作价值,这是因为在估计动作价值的时候包含了一步最大值操作,这会使得agent倾向于过估计。
在之前的研究中,过估计的原因是不足够灵活的函数逼近以及噪声。本文,我们统一下这些观点,然后证明过估计会发生在动作价值不准确的时候,与函数逼近误差无关。当然,学习过程中不准确的价值预测是很常见的,这就说明过估计的发生可能比我们认为的还要普遍。
过估计的发生是否会对实际中的算法性能产生不良影响是一个开放问题。过分乐观的价值估计其实本质上并不是一个问题。如果所有的values都均匀的高于相对的参考actions,那么对于policy来说并不会有影响。甚至,有些时候乐观估计是有好处的:在面对不确定的时候,乐观主义是一种知名的探索方法。然而问题就是过估计是不均匀的,而且并不集中在我们想要更多去学习的states里。因此,它们会对policy性能产生坏影响。Thrun和Schwartz给出了具体的例子来证明这会导致最后渐进的收敛于次优。
我们证明Double Q-learning算法的思想可以泛化到任意的函数逼近的方法中,包括深度神经网络。我们使用该算法构建了一种新的算法,叫做Double DQN。该算法不仅得到更准确的价值预测,还在多个游戏中取得了更高的分数。

Background

这部分以及DQN部分我就不重复了,Dueling Network有类似的部分,就列一下会用到的方程
Q-learning的Q-target
(2) Y t Q ≡ R t + 1 + γ max ⁡ a Q ( S t + 1 , a ; θ t ) Y^Q_t \equiv R_{t+1}+\gamma \max_a Q(S_{t+1},a;\theta_t) \tag 2 YtQRt+1+γamaxQ(St+1,a;θt)(2)
DQN的Q-target
(3) Y t D Q N ≡ R t + 1 + γ max ⁡ a Q ( S t + 1 , a ; θ t − ) Y^{DQN}_t \equiv R_{t+1}+\gamma \max_a Q(S_{t+1},a;\theta^-_t) \tag 3 YtDQNRt+1+γamaxQ(St+1,a;θt)(3)

Double Q-learning

在标准Q-learning和DQN,也就是公式(2)和(3)中,使用了相同的value来选择和评估一个action。这就会使得大概率选择过估计的value,进而导致value的过乐观估计。为了防止这个问题,我们将评估和选择解耦合。这就是Double Q-learning(van Hasselt 2010)背后的核心思想。
在原始的Double Q-learning算法中,一共要学习两个价值函数( θ \theta θ θ ′ \theta' θ),每次学习都是将样本随机的用来更新其中一个价值函数。每一次更新,其中一套参数用来决定贪心策略(选择动作),另一个来确定value(评估动作)。为了作一个清晰的对比,我们可以先将Q-learning的选择和评估分解开,重新书写公式(2):
Y t Q = R t + 1 + γ Q ( S t + 1 , arg ⁡ max ⁡ a Q ( S t + 1 , a ; θ t ) ; θ t ) Y^Q_t=R_{t+1}+\gamma Q(S_{t+1}, \arg\max_aQ(S_{t+1},a;\theta_t);\theta_t) YtQ=Rt+1+γQ(St+1,argamaxQ(St+1,a;θt);θt)
对比Double Q-learning的target是:
(4) 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^{DoubleQ}_t=R_{t+1}+\gamma Q(S_{t+1}, \arg\max_aQ(S_{t+1},a;\theta_t);\theta'_t) \tag 4 YtDoubleQ=Rt+1+γQ(St+1,argamaxQ(St+1,a;θt);θt)(4)
注意到动作的选择仍然是使用在线权重 θ t \theta_t θt。这意味着,就像在Q-learning里,我们仍然是根据当前value( θ t \theta_t θt)来估计贪心策略的value。然而,使用第二套参数( θ t ′ \theta'_t θt)来评价policy的value。通过变换 θ t \theta_t θt θ t ′ \theta'_t θt的角色,第二套参数也可以被更新。

Overoptimism due to estimation errors

Q-learning的过估计首先被Thrun和Schwartz发现的,他们发现如果一个action values含有均匀分布在区间 [ − ϵ , ϵ ] [-\epsilon,\epsilon] [ϵ,ϵ]内的随机误差,那么每个target就会被过估计 γ ϵ m − 1 m + 1 \gamma\epsilon\frac{m-1}{m+1} γϵm+1m1,这里 m m m代表动作的数量。此外,他们还给出了一个具体的例子,这个例子里过估计会导致算法渐进地收敛到次优策略。后续 van Hasselt认为env里的噪声也会导致过估计,甚至在运用表格的时候,然后提出Double Q-learning是一个解决办法。
本节,我们会更加一般化地来说明任何的估计误差都会导致一个向上的偏置,不论这个误差是因为环境噪声,函数逼近,非平稳性还是什么源头。这非常重要,因为实际中任意方法在学习过程中都会引起一些不准确,因为最初我们对真值是一无所知的。
Thrun和Schwartz给出了在具体步骤中的过估计的上限,同时也可能可以推导出下限。
Theorem 1. 考虑一个state s,在这个state上,所有的真最优动作价值都等于某个 V ∗ ( s ) V_*(s) V(s) Q ∗ ( s , a ) = V ∗ ( s ) Q_*(s,a)=V_*(s) Q(s,a)=V(s)。定义Q_t是一个任意的价值估计,该估计整体上来说是无偏的,也就是 ∑ 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,这里 C > 0 C>0 C>0,且 m ≥ 2 m\ge2 m2是s里的actions的数量。在这样的条件下, max ⁡ a Q t ( s , a ) ≥ V ∗ ( s ) + C m − 1 \max_aQ_t(s,a)\ge V_*(s)+\sqrt{\frac{C}{m-1}} maxaQt(s,a)V(s)+

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值