深度学习(三十九)——深度强化学习(2)概述, Deep Q-learning Network(1)
概述
上图是深度强化学习的脉络图,参考文献中还有该领域的关键论文列表。
原图地址:
http://louiskirsch.com/maps/reinforcement-learning
参考:
https://mp.weixin.qq.com/s/781fVvKr4yuq4q2GI1Y1gA
从Zero到Hero,OpenAI重磅发布深度强化学习资源
https://spinningup.openai.com/en/latest/spinningup/keypapers.html
深度强化学习关键论文列表
DeepMind vs OpenAI
DeepMind和OpenAI算是DRL的两大重镇。
DeepMind主要是David Silver和他导师Richard Sutton一脉,最初来源于control theory,代表作是Deep Q-learning, DDPG。
OpenAI背后的派别是Berkeley帮,主要工作是围绕Pieter Abbeel以及他的两位superstar博士生Sergey Levine和John Schulman,最初来源于Robotics,代表作是TRPO以及后来的PPO。
某牛的点评:
现在的研究发现policy gradient的方法效果比Q-learning这种单纯基于value的方法好,所以选择policy gradient,事实上是把两者结合起来的actor-critic效果最好!只是说actor-critic的关键在于policy gradient。
然后呢,说说目前DeepMind和OpenAI的研究情况,DeepMind在Q-Learning上造诣太深,OpenAI的Pieter Abbeel派很难从中弄成什么新的东西,因此从改进policy gradient的方法入手,得到TRPO+GAE等方法。(然后DeepMind基本不鸟,论文根本不比较他们的方法,而OpenAI这边到现在也不敢和A3C比较,估计必败)
现在OpenAI又因为有一些Deep Generative Model的大神,又把这方面也结合进来了。OpenAI这边的优势在于机器人控制上之前做的多,把传统控制和深度学习结合的方法也能搞出一些东西比如GPS,其他的团队比如Satinder Singh, Honglak Lee那就更只能从边边上去做了,比如做了Atari视频预测,给网络加上memory network。
最后还是从方法上说一下,Policy Gradient显然比基于Value的方法更直接,输入感知,输出控制。按道理来说是更符合人类行为的方法。特别在控制上。但是在一些离散的决策上,人类也是评估各方好坏value来做选择的,所以这一块Q-Learning应该会做的更好。事实上,DeepMind也将DQN的Gorila分布式系统用在了Google的推荐系统上。还有,就是接下来机器人控制将会是深度学习要占领的一块地盘,在连续控制上,基于value的方法本身就不好做,连续DQN比如那个NAF方法使用了很多小技巧。而基于Policy的方法则很直接。
参考:
https://www.zhihu.com/question/316626294
请问DeepMind和OpenAI身后的两大RL流派有什么具体的区别?
https://www.zhihu.com/question/49787932
RL两大类算法的本质区别?(Policy Gradient和Q-Learning)
参考
https://www.nervanasys.com/demystifying-deep-reinforcement-learning/
深度强化学习揭秘
https://zhuanlan.zhihu.com/p/24446336
深度强化学习Deep Reinforcement Learning学习整理
https://mp.weixin.qq.com/s/K82PlSZ5TDWHJzlEJrjGlg
深度学习与强化学习
http://mp.weixin.qq.com/s/lLPRwInF5qaw7ewYHOpPyw
深度强化学习资料
http://lamda.nju.edu.cn/yangjw/project/drlintro.html
深度强化学习初探
https://zhuanlan.zhihu.com/p/21498750
深度强化学习导引
https://mp.weixin.qq.com/s/RnUWHa6QzgJbE_XqLeAQmg
深度强化学习,决策与控制
https://mp.weixin.qq.com/s/SckTPgEw7KWmfKXWriNIRg
浅谈强化学习的方法及学习路线
https://mp.weixin.qq.com/s/-JHHOQPB6pKVuge64NkMuQ
DeepMind主攻的深度强化学习3大核心算法及7大挑战
https://mp.weixin.qq.com/s/2SOHQElaYbplse3QqG9tYw
强化学习介绍
https://mp.weixin.qq.com/s/R30quVGK0TgjerLpiIK9eg
从算法到训练,综述强化学习实现技巧与调试经验
https://www.zhihu.com/question/49230922
强化学习(reinforcement learning)有什么好的开源项目、网站、文章推荐一下?
https://zhuanlan.zhihu.com/p/75913329
深度强化学习简介
DRL和Robotics
虽然,DRL似乎生来就是为了Robotics,然而现实中的无人系统,目前基本还是使用传统的控制方法。
例如:
https://www.zhihu.com/question/50050401
如何看待百度无人车, 三千多个场景,一万多个if?
不止国内,就连业界标杆Boston Dynamics也是这样:
https://www.zhihu.com/question/29871410
波士顿动力Boston Dynamics的大狗Big Dog用的了哪些控制、估计等算法?
直到最近才终于有了改观:
https://mp.weixin.qq.com/s/xSODAGf3QcJ3A9oq6xP11A
真的超越了波士顿动力!深度强化学习打造的ANYmal登上Science子刊
此外,还有一些论文:
《Learning to Drive in a Day》
参考:
https://zhuanlan.zhihu.com/p/59197798
那些个端到端的自动驾驶研发系统
https://mp.weixin.qq.com/s/yU-6r-7l50y5msw8gUWnUQ
美团技术部解析:无人车端到端驾驶模型概述
Deep Q-learning Network
基本思想
Deep Q-learning Network是DL在RL领域的开山之作。它的思想主要来自于Deepmind的两篇论文:
《Playing Atari with Deep Reinforcement Learning》
《Human-level control through deep reinforcement learning》
Deepmind是当今DL领域最前沿的科研机构,尤其在RL领域更是领先同行一大截,是当之无愧的RL王者。
上图是DQN的网络结构图。由于这里的任务是训练Atari游戏的AI,因此网络的输入实际上就是游戏的画面。而理解游戏画面,就需要一定的CNN结构。所以DQN的结构实际上和一般的CNN是一致的,其关键要害在于loss函数的设定。
由《机器学习(三十三)》中的“价值函数的近似表示”可知:
老套路,我们可以用一个神经网络来拟合f函数,这也就是所谓的Q网络(Q-Network)。
对于Atari游戏而言,这是一个高维状态输入(原始图像),低维动作输出(只有几个离散的动作,比如上下左右)。那么怎么来表示这个函数f呢?
Deepmind采取的方法是:只把状态s作为输入,但是输出的时候,会输出每一个动作的Q值,也就是输出一个向量。这样我们只要输入状态s,就可以得到所有的动作Q值。
在《机器学习(二十七)》中,我们指出Q-Learning算法的transition rule为:
这时就存在两个Q值了:
-
根据当前的<s,a>,由Q网络计算得到的Q值,被称为current Q-value。
-
使用transition rule,也由Q网络计算得到的Q值,被称为target Q-value。
显然从Q函数的定义来看,这两者是等价的。因此,我们的目标就是使这两者尽可能的一致,即:
上式中蓝色的部分即为target Q-value。
DQN虽然是model-free的,但是也有难点,那就是Reward的定义。好在在Atari游戏的例子里,这个问题比较简单,直接采用游戏得分即可。但得分奖励过于肤浅,在动作类游戏中或许没啥问题,但对于《Montezuma’s Revenge》这样的解谜游戏,就不太好使了。
此外,Deepmind在Atari游戏中,采用了连续4帧图像作为DQN的输入。这样的行为也被称作状态的表示。状态的表示会严重影响学习的效果,然而目前来说,它还是一门艺术,而非科学。例如,AlphaGo采用了过去八手棋局作为状态的表示。