Deep Q-learning Network(续)

Nature DQN

DQN最早发表于NIPS 2013,该版本的DQN,也被称为NIPS DQN。NIPS DQN除了提出DQN的基本概念之外,还使用了《机器学习(三十三)》中提到的Experience Replay技术。

2015年初,Deepmind在Nature上提出了改进版本,是为Nature DQN。它改进了Loss函数:

L=(r+γmax⁡a′Q(s′,a′,w−)−Q(s,a,w))2L=(\color{blue}{r+\gamma \max_{a'}Q(s',a',w^-)}-Q(s,a,w))^2L=(r+γa′max​Q(s′,a′,w−)−Q(s,a,w))2

上式中,计算目标Q值的网络使用的参数是w−w^-w−,而不是w。也就是说,原来NIPS DQN的target Q网络是动态变化的,跟着Q网络的更新而变化,这样不利于计算目标Q值,导致目标Q值和当前的Q值相关性较大。

因此,Deepmind提出可以单独使用一个目标Q网络。那么目标Q网络的参数如何来呢?还是从Q网络中来,只不过是延迟更新。也就是每次等训练了一段时间再将当前Q网络的参数值复制给目标Q网络。

个人理解这里的机制类似于进化算法。变异既可以是进化,也可以是退化,只有进化的Q网络才值得保留下来。

这在下文介绍的Leela Zero项目的训练过程中体现的很明显:一开始我们只训练一个简单的AI,然后逐渐加深加大网络,淘汰废物AI,得到更优秀的AI。

为了使进化生效,在一段时间内保持目标Q网络不变就是很显然的了——你过不了我这关,就没资格继续下去了。

参考

https://zhuanlan.zhihu.com/p/21262246

DQN从入门到放弃1 DQN与增强学习

https://zhuanlan.zhihu.com/p/21292697

DQN从入门到放弃2 增强学习与MDP

https://zhuanlan.zhihu.com/p/21340755

DQN从入门到放弃3 价值函数与Bellman方程

https://zhuanlan.zhihu.com/p/21378532

DQN从入门到放弃4 动态规划与Q-Learning

https://zhuanlan.zhihu.com/p/21421729

DQN从入门到放弃5 深度解读DQN算法

https://zhuanlan.zhihu.com/p/21547911

DQN从入门到放弃6 DQN的各种改进

https://zhuanlan.zhihu.com/p/21609472

DQN从入门到放弃7 连续控制DQN算法-NAF

https://zhuanlan.zhihu.com/p/56023723

通过Q-learning深入理解强化学习(上)

https://mp.weixin.qq.com/s/0HukwNmg3k-rBrIBByLhnQ

深度Q学习:一步步实现能玩《毁灭战士》的智能体

https://mp.weixin.qq.com/s/x-qCA0TzoVUtZ8VAf8ey0A

深度Q学习介绍

https://mp.weixin.qq.com/s/SqU74jYBrjtp9L-bnBuboA

教你完美实现深度强化学习算法DQN

https://mp.weixin.qq.com/s/Vdt5h8APAFoeVxFYKlywpg

用DeepMind的DQN解数学题,准确率提升15%

https://mp.weixin.qq.com/s/RH4ifA46njdC7fyRI9kVMg

深度Q网络与视觉格斗类游戏

https://mp.weixin.qq.com/s/uymKtR_7IgMpfXcekfkCDg

从强化学习基本概念到Q学习的实现,打造自己的迷宫智能体

https://mp.weixin.qq.com/s/9ZvaZQ1yumhr75okBxNyeA

优化强化学习Q-learning算法进行股市交易

https://mp.weixin.qq.com/s/QkRdv0xMoqwaXsNAMAHR0A

一图尽展视频游戏AI技术,DQN无愧众算法之鼻祖

https://zhuanlan.zhihu.com/p/35882937

强化学习——从Q-Learning到DQN到底发生了什么?

DQN进化史

上图引用自论文:

《Deep Learning for Video Game Playing》

该论文最早发表于2017年,但是作者每年都会更新论文的内容。


在Nature DQN出来之后,肯定很多人在思考如何改进它。那么DQN有什么问题呢?

  • 目标Q值的计算准确吗?全部通过max Q来计算有没有问题?

  • 随机采样的方法好吗?按道理不同样本的重要性是不一样的Q值代表状态,动作的价值,那么单独动作价值的评估会不会更准确?

  • DQN中使用ϵ\epsilonϵ-greedy的方法来探索状态空间,有没有更好的做法?

  • 使用卷积神经网络的结构是否有局限?加入RNN呢?

  • DQN无法解决一些高难度的Atari游戏比如《Montezuma’s Revenge》,如何处理这些游戏?

  • DQN训练时间太慢了,跑一个游戏要好几天,有没有办法更快?

  • DQN训练是单独的,也就是一个游戏弄一个网络进行训练,有没有办法弄一个网络同时掌握多个游戏,或者训练某一个游戏后将知识迁移到新的游戏?

  • DQN能否用在连续动作输出问题?

Double DQN

L=(r+γQ(s′,arg⁡max⁡a′Q(s′,a′,w),w−)−Q(s,a,w))2L=\left(\color{blue}{r+\gamma Q(s',\color{red}{\mathop{\arg\max}_{a'}Q(s',a',w)},w^-)}-Q(s,a,w)\right)^2L=(r+γQ(s′,argmaxa′​Q(s′,a′,w),w−)−Q(s,a,w))2

Nature DQN的两个Q网络分离的还不够彻底,Double DQN用当前的Q网络来选择动作(公式中红色部分所示),而用目标Q网络来计算目标Q。

参考:

https://mp.weixin.qq.com/s/NkWj1bV7uMjACxAvxhPJXw

DQN系列(1):Double Q-learning

https://mp.weixin.qq.com/s/WGxodXAxcgsz61VnuSF5aQ

DQN系列(2): Double DQN算法原理与实现

Prioritised replay

采样优先级采用目标Q值与当前Q值的差值来表示:

∣r+γmax⁡a′Q(s′,a′,w−)−Q(s,a,w)∣| \color{blue}{r+\gamma \max_{a'}Q(s',a',w^-)}-Q(s,a,w) |∣r+γa′max​Q(s′,a′,w−)−Q(s,a,w)∣

优先级越高,那么采样的概率就越高。

Dueling Network

Dueling Network将Q网络分成了两个通道:

  • Action无关的值函数:V(s,v)V(s,v)V(s,v)

  • Action相关的值函数:A(s,a,w)A(s,a,w)A(s,a,w)

Q(s,a)=V(s,v)+A(s,a,w)Q(s,a)=V(s,v)+A(s,a,w)Q(s,a)=V(s,v)+A(s,a,w)

NAF

传统RL任务:低维输入,低维离散输出。

Atari游戏:高维输入,低维离散输出。

通常的控制系统,除了离散控制之外,还有连续控制,然而DQN并不能直接用于连续域:因为它根本就没办法穷举每一个动作,也就无法计算最大的Q值对应的动作。

论文:

《Continuous Deep Q-Learning with Model-based Acceleration》

对于连续控制,由于我们已经无法选择动作,因此只能设计一种方法,使得我们输入状态,然后能够输出动作,并且保证输出动作对应的Q值是最大值。

这个时候,我们有两种选择:

  • 弄两个神经网络,一个是Policy网络,输入状态,输出动作,另一个是Q网络,输入状态,输出Q值。这种做法其实就是Actor-Critic算法。

  • 只弄一个神经网络,既能输出动作也能输出Q值。这就是本节所要使用的方法。

在《机器学习(三十五)》中,我们已经指出advantage function不改变策略梯度,但能有效约束variance。这里沿用了A函数定义:

A(s,a)=Q(s,a)−V(s)A(s,a)=Q(s,a)-V(s)A(s,a)=Q(s,a)−V(s)

作者设计了如下A函数:

A(x,μ∣θA)=−12(u−μ(x∣θμ))TP(x∣θP)(u−μ(x∣θμ))A(x,\mu | \theta^A)=-\frac{1}{2}(u-\mu(x | \theta^\mu))^T P(x | \theta^P)(u-\mu(x | \theta^\mu))A(x,μ∣θA)=−21​(u−μ(x∣θμ))TP(x∣θP)(u−μ(x∣θμ))

其中x是状态,u是动作,μ\muμ是神经网络的输出动作。

它的一阶矩阵形式等价于:A(a)=−P(a−x)2A(a)=-P(a-x)^2A(a)=−P(a−x)2

因此,这是一个正定二次型的相反数,即A≤0A\le 0A≤0。

我们的目标就是优化A函数,使之尽可能最大(即等于0)。这时A函数对应的动作即为最优动作。

以下是具体的网络结构图。

其流程如下:

  • 状态经过两层MLP之后(注意:第2层没有RELU),生成三个tensor:V、μ\muμ、L0。

  • 将L0转化为L。也就是将一个列向量转换为下三角矩阵,就是从新排列,然后把对角线的数exp对数化。

  • 使用Cholesky分解构建P。

若A为n阶对称正定矩阵,则存在唯一的主对角线元素都是正数的下三角阵L,使得A=LLTA=LL^TA=LLT,此分解式称为正定矩阵的乔列斯基(Cholesky)分解

  • 按照上图的步骤,依此构建A和Q。其中的Q正好可用于DQN的训练。

综上,NAF既可以输出action,也可产生Q值,而Q值可用于DQN训练,从而使算法可以进行下去。

这里的构造逻辑和VAE很相似,都是假定构造方法成立,然后再用神经网络拟合构造所需的各要素,最后通过训练以达成构造的效果。

Distributional DQN

Distributional DQN也叫做Categorical DQN。

cumulated reward(累计奖励)是一个孤立的值,它无法完全反映reward的全貌,比如上图中的两个reward,其累计值完全相同,但分布却有很大的差异。这一定程度上会对策略的选择产生影响。

传统DQN最后一层输出的是一个N维的向量,表示N个动作对应的价值,Categorical DQN输出的是N×M维的向量,表示的是N个动作在M个价值分布的支撑上的概率。(以上图为例,N=3,M=5。)

总结一下就是:传统价值函数的目标是近似地估计价值的期望,而Distributional RL的目标是近似地估计价值的分布(概率密度函数)。

Distributional RL不仅可用于DQN,亦可应用于Actor-Critic,这也就是D4PG的主要idea了。

参考:

https://zhang-yi-chi.github.io/2018/09/19/DistributionalRL/

Distributional Reinforcement Learning

Rainbow

论文:

《Rainbow: Combining Improvements in Deep Reinforcement Learning》

Rainbow算是2017年比较火的一篇DRL方面的论文了。它没有提出新方法,而只是整合了6种DQN算法的变种,达到了SOTA的效果。

这6种DQN算法是:

  • Double DQN
  • Prioritized Experience Replay
  • DuelingNet
  • NoisyNet
  • Distributional DQN(Categorical DQN)
  • N-step Learning

参考:

https://mp.weixin.qq.com/s/SZHMyWOXHM8T3zp_aUt-6A

DeepMind提出Rainbow:整合DQN算法中的六种变体

https://github.com/Curt-Park/rainbow-is-all-you-need

手把手教你从DQN到Rainbow

https://zhuanlan.zhihu.com/p/36375292

最前沿:当我们以为Rainbow就是Atari游戏的巅峰时,Ape-X出来把Rainbow秒成了渣!

参考

https://mp.weixin.qq.com/s/o27U97Y7BmMUXe3zAToHSQ

强化学习DQN初探之2048

https://mp.weixin.qq.com/s/SJd-3qH4W4GMMLZSmvFk1w

利用DQN玩吃豆人(Pacman)小游戏

https://mp.weixin.qq.com/s/snNvN4FFP0VEZwDA0TAp1w

强化学习训练Chrome小恐龙Dino Run:最高超过4000分

深度学习(四十)——深度强化学习(3)Deep Q-learning Network(2), DQN进化史相关推荐

  1. 深度学习之强化学习(1)强化学习案例

    深度学习之强化学习(1)强化学习案例 强化学习案例 1. 平衡杆游戏 2. 策略网络 3. 梯度更新 4. 平衡杆游戏实战 完整代码 人工智能=深度学习+强化学习--David Silver  强化学 ...

  2. 46.深度解密四十六:微信KOl、微博大V等“移动营销资源”全揭秘

    网络营销推广技术.技巧深度解密(四十六)指南: 1.本文档适合零基础以及互联网营销推广工作者,主要讲解移动资源的相关问题. 2.原创版权文档,任何抄袭或者全部.部分模仿都是侵权行为. 3.敬畏法律,尊 ...

  3. 40.深度解密四十:百度贴吧发广告图不删除(防删)的方法揭秘

    网络营销推广技术.技巧深度解密(四十)指南: 1.本文档适合零基础以及互联网营销推广工作者,主要讲解百度贴吧发广告图不删除的方法问题. 2.原创版权文档,任何抄袭或者全部.部分模仿都是侵权行为. 3. ...

  4. 45.深度解密四十五:网站盈利模式和私域流量的变现方式细致讲解

    网络营销推广技术.技巧深度解密(四十五)指南: 1.本文档适合零基础以及互联网营销推广工作者,主要讲解网站的盈利模式和私域流量变现的方式问题. 2.原创版权文档,任何抄袭或者全部.部分模仿都是侵权行为 ...

  5. 机器学习笔记(十六)强化学习

    16.强化学习 16.1任务与奖赏 强化学习(reinforcementlearning)的过程就是机器通过一系列的动作和环境交互,从而得到最佳的动作序列.图示: 强化学习任务用马尔可夫决策(Mark ...

  6. 强化学习笔记4:强化学习分类

    1 model-free & model-based model-based(有模型) RL agent,它通过学习环境的状态转移来采取动作. model-free(免模型) RL agent ...

  7. 百度强化学习框架PARL入门强化学习

    1.什么是强化学习? 强化学习(Reinforcement Learning, RL),又称再励学习.评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互 ...

  8. 【强化学习】什么是强化学习算法?

    [强化学习]什么是强化学习算法? 一.强化学习解决什么问题? 二.强化学习如何解决问题? 2.1.强化学习的基本框架 2.2.强化学习系统的要素 2.3.强化学习与监督学习的区别 2.4.强化学习与非 ...

  9. 强化学习—— 多智能体强化学习

    强化学习-- 多智能体强化学习 1. 多智能体关系分类 1.1 合作关系(Fully Cooperative) 1.2 竞争关系(Fully Competitive) 1.3 混合关系(Mixed C ...

  10. 推荐系统遇上深度学习(十五)--强化学习在京东推荐中的探索

    强化学习在各个公司的推荐系统中已经有过探索,包括阿里.京东等.之前在美团做过的一个引导语推荐项目,背后也是基于强化学习算法.本文,我们先来看一下强化学习是如何在京东推荐中进行探索的. 本文来自于pap ...

最新文章

  1. Java锁优化思路及JVM实现
  2. 常用HiveQL总结
  3. vue学习(十五) 过滤器简单实用
  4. 显示部分x_i5 9400F+GTX 1030+23.8英寸,攀升迁跃者X上手简评
  5. 论文提交数量爆炸式增长,最大规模NLP会议ACL 2019放榜
  6. dreamweaver网页设计作业制作 学生个人网页单页 WEB静态网页作业模板 大学生个人主页博客网页代码 dw个人网页作业成品简单页面
  7. java+poi在Excel中生成二维码
  8. tkmybatis简单教程
  9. 齐治 堡垒机 mysql_齐治堡垒机:让数据库运维审计无死角
  10. 当Top-k遇到深度学习
  11. VS2022背景图片设置
  12. 对VC++下Debug模式和Release模式的简要分析
  13. PaddleNLP系列课程一:Taskflow、小样本学习、FasterTransformer
  14. 停课不停学,腾讯云助力在线教育!
  15. c语言protect,PROTECT应该包含什么作业?
  16. nginx已经启动 无法访问页面
  17. jquery日历之昨天--今天--明天
  18. Java JDK中几个经典的版本
  19. 【寒假学习】考研高数第四章-不定积分
  20. 基于Echarts插件的省市区多级地图下钻和返回功能实现

热门文章

  1. CTF个人总结指南(更新中)
  2. window点location(仅介绍window点location对象,不介绍属性,因标题不能含有非法字符,.用点来代替)
  3. 简单理解Tomasulo算法与重加载缓冲区
  4. c++ 枚举与字符串 比较
  5. [收藏] 微软850位顶级人才不做Windows研发
  6. 浅析 React Fiber
  7. linux中grep基本用法
  8. ubuntu16.04 配置nginx支持redis
  9. elasticsearch 6.1.1 transport jar
  10. node多版本管理--nvmw