传统的DQN算法会导致overestimate。因为在训练开始时,最大的Q值并不一定是最好的行为。 也就是说较差的行为Q值相对较大,较好的行为Q值相对较小。这时我们在更新Q值时用最大期望来计算我们作为标签的Q值期望,会进一步导致上一个状态的Q值虚高。当然因为有explorating, 所以最后还是会收敛到最优解的, 但是在环境比较复杂时,学习速度会变得很慢。我们来看看这个问题的本质原因,比如说 Q(S1,a1) 虚高,那就会导致 Q(S2,a21)虚高,从而连锁导致 Q(S3,a32)虚高。也就是说一个Q(S1,a1)的虚高会导致agent更倾向于走整个S 3-2-1的状态。如果我们用两个不同的网络分别来采取行动和更新Q值可以解决这个问题,这两个网络中一个是freeze的,为target网络,另一个是不断更新的DQN,在限定的步数之后会同步整个网络。如果我们一直按照target网络来更新DQN,会有overestimate,因为每次的目标都是根据target网络中期望值最高的行为来更新的。更好的做法是,用DQN来选择行动,也就是说选择一个在DQN中期望值最高的行为(在target中显然这个行为不一定是期望最高的),用target网络计算这个Q值并得出DQN的标签。

为了解状态本身的好坏与行为带来的好坏,将Q值分为状态量V(s)与行为量A(s,a)。其中V(s)应为所有Q(s,a)的均值,这样我们就能得出Q(s,a1) = V(s) + A(s,a1) - ave(A(s,a))...

记reinforcement learning double DQNS的更多相关文章

  1. 论文笔记之:Deep Reinforcement Learning with Double Q-learning

    Deep Reinforcement Learning with Double Q-learning Google DeepMind Abstract 主流的 Q-learning 算法过高的估计在特 ...

  2. (zhuan) Deep Reinforcement Learning Papers

    Deep Reinforcement Learning Papers A list of recent papers regarding deep reinforcement learning. Th ...

  3. 论文笔记之:Dueling Network Architectures for Deep Reinforcement Learning

    Dueling Network Architectures for Deep Reinforcement Learning ICML 2016 Best Paper 摘要:本文的贡献点主要是在 DQN ...

  4. Awesome Reinforcement Learning

    Awesome Reinforcement Learning A curated list of resources dedicated to reinforcement learning. We h ...

  5. 论文笔记之:Playing Atari with Deep Reinforcement Learning

    Playing Atari with Deep Reinforcement Learning <Computer Science>, 2013 Abstract: 本文提出了一种深度学习方 ...

  6. Reinforcement Learning: An Introduction读书笔记(3)--finite MDPs

     > 目  录 <  Agent–Environment Interface Goals and Rewards Returns and Episodes Policies and Val ...

  7. 论文笔记系列-Neural Architecture Search With Reinforcement Learning

    摘要 神经网络在多个领域都取得了不错的成绩,但是神经网络的合理设计却是比较困难的.在本篇论文中,作者使用 递归网络去省城神经网络的模型描述,并且使用 增强学习训练RNN,以使得生成得到的模型在验证集上 ...

  8. 18 Issues in Current Deep Reinforcement Learning from ZhiHu

    深度强化学习的18个关键问题 from: https://zhuanlan.zhihu.com/p/32153603 85 人赞了该文章 深度强化学习的问题在哪里?未来怎么走?哪些方面可以突破? 这两 ...

  9. [转]Introduction to Learning to Trade with Reinforcement Learning

    Introduction to Learning to Trade with Reinforcement Learning http://www.wildml.com/2018/02/introduc ...

随机推荐

  1. SQL运行优化收藏

    如何让你的SQL运行得更快(转贴) ---- 人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境 ...

  2. Jenkins自动构建gitlab项目(jenkins+maven+giltlab+tomcat)

    环境准备: System:CentOS 7.3 (最小化安装) JDK: 8u161 (1.8_161) tomcat: 8.5.29 Jenkins: Jenkins 2.107.1 Gitlab: ...

  3. flex布局设置width无效

    子元素设置 : flex: 0 0 85px; 参数: flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto.后两个属性可选. 该属性有 ...

  4. 关于C++中Hash的应用

    本文只介绍我们在C++中如何使用Hash这种数据结构达到我们编程的目的,有关Hash的概念和实现不做详谈. C++11新增了一类散列容器包括unordered_set, unordered_map, ...

  5. dubbo服务暴露

    想熟悉dubbo源码,首先要知道dubbo extensionLoader,而dubbo的这种扩展机制,是根据java spi衍生而来. 这是基础,但是我放在后面说明. 一:dubbo demo pr ...

  6. C# Thread Lock 笔记

    多线程, 当使用共有变量时, 保持计算结果正确很重要: 看下面的例子: ; //private static object objlock = new object(); public static ...

  7. 寄存器(cpu工作原理)(一)

    cpu概述 一个典型的cpu由运算器.控制器.寄存器等器件组成,这些器件靠内部总线相连. 区别 内部总线实现cpu内部各个器件之间的联系 外部总线实现cpu外部和主板上其他器件的联系 8060cpu有 ...

  8. 'Tensorboard.util' has no attribute 'Retrier' - 'Tensorboard.util'没有属性'Retrier'

    Here is a popular issue when you want to use tensorbard with your upgraded tensorflow and tensorboar ...

  9. Python3的string库模板的应用

    模板 字符串模板将作为内置的拼接语法的替代用法.使用Template拼接时,要在名字前加前缀$来标识变量(例如,$var).或者,如果有必要区分变量和周围的文本,可以用大括号包围变量(例如,${var ...

  10. fastreport窗口重置(适用于属性、数据等窗口显示不出来)

    找到如下路径: C:/Users/账户名/AppData/Local/FastReport/FastReport.config 删除即可. 记得先退出使用FastReport的程序,再删除