深度学习(四十)——深度强化学习(3)Deep Q-learning Network(2), DQN进化史
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+γmaxa′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′maxQ(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′,argmaxa′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+γmaxa′Q(s′,a′,w−)−Q(s,a,w)∣| \color{blue}{r+\gamma \max_{a'}Q(s',a',w^-)}-Q(s,a,w) |∣r+γa′maxQ(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. 平衡杆游戏 2. 策略网络 3. 梯度更新 4. 平衡杆游戏实战 完整代码 人工智能=深度学习+强化学习--David Silver 强化学 ...
- 46.深度解密四十六:微信KOl、微博大V等“移动营销资源”全揭秘
网络营销推广技术.技巧深度解密(四十六)指南: 1.本文档适合零基础以及互联网营销推广工作者,主要讲解移动资源的相关问题. 2.原创版权文档,任何抄袭或者全部.部分模仿都是侵权行为. 3.敬畏法律,尊 ...
- 40.深度解密四十:百度贴吧发广告图不删除(防删)的方法揭秘
网络营销推广技术.技巧深度解密(四十)指南: 1.本文档适合零基础以及互联网营销推广工作者,主要讲解百度贴吧发广告图不删除的方法问题. 2.原创版权文档,任何抄袭或者全部.部分模仿都是侵权行为. 3. ...
- 45.深度解密四十五:网站盈利模式和私域流量的变现方式细致讲解
网络营销推广技术.技巧深度解密(四十五)指南: 1.本文档适合零基础以及互联网营销推广工作者,主要讲解网站的盈利模式和私域流量变现的方式问题. 2.原创版权文档,任何抄袭或者全部.部分模仿都是侵权行为 ...
- 机器学习笔记(十六)强化学习
16.强化学习 16.1任务与奖赏 强化学习(reinforcementlearning)的过程就是机器通过一系列的动作和环境交互,从而得到最佳的动作序列.图示: 强化学习任务用马尔可夫决策(Mark ...
- 强化学习笔记4:强化学习分类
1 model-free & model-based model-based(有模型) RL agent,它通过学习环境的状态转移来采取动作. model-free(免模型) RL agent ...
- 百度强化学习框架PARL入门强化学习
1.什么是强化学习? 强化学习(Reinforcement Learning, RL),又称再励学习.评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互 ...
- 【强化学习】什么是强化学习算法?
[强化学习]什么是强化学习算法? 一.强化学习解决什么问题? 二.强化学习如何解决问题? 2.1.强化学习的基本框架 2.2.强化学习系统的要素 2.3.强化学习与监督学习的区别 2.4.强化学习与非 ...
- 强化学习—— 多智能体强化学习
强化学习-- 多智能体强化学习 1. 多智能体关系分类 1.1 合作关系(Fully Cooperative) 1.2 竞争关系(Fully Competitive) 1.3 混合关系(Mixed C ...
- 推荐系统遇上深度学习(十五)--强化学习在京东推荐中的探索
强化学习在各个公司的推荐系统中已经有过探索,包括阿里.京东等.之前在美团做过的一个引导语推荐项目,背后也是基于强化学习算法.本文,我们先来看一下强化学习是如何在京东推荐中进行探索的. 本文来自于pap ...
最新文章
- Java锁优化思路及JVM实现
- 常用HiveQL总结
- vue学习(十五) 过滤器简单实用
- 显示部分x_i5 9400F+GTX 1030+23.8英寸,攀升迁跃者X上手简评
- 论文提交数量爆炸式增长,最大规模NLP会议ACL 2019放榜
- dreamweaver网页设计作业制作 学生个人网页单页 WEB静态网页作业模板 大学生个人主页博客网页代码 dw个人网页作业成品简单页面
- java+poi在Excel中生成二维码
- tkmybatis简单教程
- 齐治 堡垒机 mysql_齐治堡垒机:让数据库运维审计无死角
- 当Top-k遇到深度学习
- VS2022背景图片设置
- 对VC++下Debug模式和Release模式的简要分析
- PaddleNLP系列课程一:Taskflow、小样本学习、FasterTransformer
- 停课不停学,腾讯云助力在线教育!
- c语言protect,PROTECT应该包含什么作业?
- nginx已经启动 无法访问页面
- jquery日历之昨天--今天--明天
- Java JDK中几个经典的版本
- 【寒假学习】考研高数第四章-不定积分
- 基于Echarts插件的省市区多级地图下钻和返回功能实现