淘优惠

淘优惠

深度强化学习入门到精通--资料综述

热门文章 0

淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】

强化学习

深度强化学习实验室报道

作者:岳龙飞?,编辑:DeepRL

更多资料查看Github

https://github.com/neurondance/deeprl

人工智能是21世纪最激动人心的技术之一。人工智能,就是像人一样的智能,而人的智能包括感知、决策和认知(从直觉到推理、规划、意识等)。其中,感知解决what,深度学习已经超越人类水平;决策解决how,强化学习在游戏和机器人等领域取得了一定效果;认知解决why,知识图谱、因果推理和持续学习等正在研究。强化学习,采用反馈学习的方式解决序贯决策问题,因此必然是通往通用人工智能的终极钥匙。我特别喜欢强化学习,深深被其框架所吸引,智能体通过与环境交互来成长,这不就是生命的进化规律嘛!个人作为一名AI独立研究员,一路也是通过知乎、b站、GitHub、公众号和各类博客学习过来,非常感谢网络时代大家的分享,同时将自己在强化学习方面的经验总结整理分享,既是方便自己学习,也希望能帮助一点刷到这条知乎的朋友们。当然,强化学习也面临很多问题,希望我们一起解决,让强化学习变得更好![1]

1.1 腾讯_周沫凡_强化学习、教程、代码

  • https://www.bilibili.com/video/av16921335?from=search&seid=7037144790835305588

  • https://morvanzhou.github.io/

  • https://github.com/AndyYue1893/Reinforcement-learning-with-tensorflow 1.2 DeepMind_David Silver_UCL深度强化学习课程(2015)、PPT、笔记及代码

  • https://www.bilibili.com/video/av45357759?from=search&seid=7037144790835305588

  • https://blog.csdn.net/u_say2what/article/details/89216190

  • https://zhuanlan.zhihu.com/p/37690204 1.3 台大_李宏毅_深度强化学习(国语)课程(2018)、PPT、笔记

  • https://www.bilibili.com/video/av24724071?from=search&seid=7037144790835305588

  • http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLDS18.html

  • https://blog.csdn.net/cindy_1102/article/details/87904928 1.4 UC Berkeley_Sergey Levine_CS285(294)深度强化学习(2019)、PPT、代码

  • https://www.bilibili.com/video/av69455099?from=search&seid=7037144790835305588

  • http://rail.eecs.berkeley.edu/deeprlcourse/

  • https://github.com/berkeleydeeprlcourse/homework

2.1 强化学习圣经_Rich Sutton_中文书、英文电子书、代码 ★★★★★(基础必读,有助于理解强化学习精髓)

  • https://item.jd.com/12696004.html

  • http://incompleteideas.net/book/the-book-2nd.html

  • https://github.com/AndyYue1893/reinforcement-learning-an-introduction

2.2 Python强化学习实战_Sudharsan Ravichandiran、代码 ★★★★★(上手快,代码清晰)

  • https://item.jd.com/12506442.html

  • https://github.com/AndyYue1893/Hands-On-Reinforcement-Learning-With-Python

2.3 强化学习精要_冯超 ★★★★(从基础到前沿,附代码)

  • https://item.jd.com/12344157.html

2.4 Reinforcement Learning With Open AI TensorFlow and Keras Using Python_OpenAI(注重实战)

  • https://pan.baidu.com/share/init?surl=nQpNbhkI-3WucSD0Mk7Qcg(提取码: av5p)

3.1 OpenAI Spinning Up英文版、中文版、介绍by量子位(在线学习平台,包括原理、算法、论文、代码)

  • https://spinningup.openai.com/en/latest/

  • https://spinningup.readthedocs.io/zh_CN/latest/index.html

  • https://zhuanlan.zhihu.com/p/49087870

3.2 莫烦Python(?通俗易懂)

  • https://morvanzhou.github.io/

4.1 Reinforcement learning_Nando de Freitas_DeepMind_2019

  • https://pan.baidu.com/s/1KF10W9GifZCDf9T4FY2H9Q

4.2 Policy Optimization_Pieter Abbeel_OpenAI/UC Berkeley/Gradescope

  • https://pan.baidu.com/s/1zOOZjvTAL_FRVTHHapriRw&shfl=sharepset

请问DeepMind和OpenAI身后的两大RL流派有什么具体的区别?

  • https://www.zhihu.com/question/316626294/answer/627373838 三大经典算法

5.1 DQN

Mnih. Volodymyr, et al. "Human-level control through deep reinforcement learning." Nature 518.7540 (2015): 529. (Nature版本)

  • https://storage.googleapis.com/deepmind-data/assets/papers/DeepMindNature14236Paper.pdf

5.2 DDPG

David. Silver, et al. "Deterministic policy gradient algorithms." ICML. 2014.

  • http://proceedings.mlr.press/v32/silver14.pdf

5.3 A3C

Mnih. Volodymyr, et al. "Asynchronous methods for deep reinforcement learning." International conference on machine learning. 2016.

  • https://www.researchgate.net/publication/301847678_Asynchronous_Methods_for_Deep_Reinforcement_Learning

6.1 OpenAI Gym

  • http://gym.openai.com/

6.2 Google Dopamine 2.0

  • https://github.com/google/dopamine

6.3 Emo Todorov Mujoco

  • http://www.mujoco.org/

6.4 通用格子世界环境类

  • https://zhuanlan.zhihu.com/p/28109312

  • https://cs.stanford.edu/people/karpathy/reinforcejs/index.html

7.1 OpenAI Baselines(代码简洁,使用广泛)

  • https://github.com/openai/baselines

7.2 百度 PARL(?扩展性强,可复现性好,友好)

  • https://github.com/paddlepaddle/parl

7.3 DeepMind OpenSpiel(仅支持Debian和Ubuntu,28种棋牌类游戏和24种算法)

  • https://github.com/deepmind/open_spiel

8.1 清华张楚珩博士 ★★★★★[2]

  • https://zhuanlan.zhihu.com/p/46600521 张楚珩:强化学习论文汇总

8.2 NeuronDance ★★★★

  • https://github.com/AndyYue1893/DeepRL-1/tree/master/A-Guide-Resource-For-DeepRL

8.3 paperswithcode ★★★★

  • https://www.paperswithcode.com/area/playing-games

  • https://github.com/AndyYue1893/pwc

8.4 Spinning Up推荐论文 ★★★★★

  • https://zhuanlan.zhihu.com/p/50343077

9.1 会议:AAAI、NIPS、ICML、ICLR、IJCAI、 AAMAS、IROS等

9.2 期刊:AI、 JMLR、JAIR、 Machine Learning、JAAMAS等

9.3 计算机和人工智能会议(期刊)排名

  • https://www.ccf.org.cn/xspj/rgzn/

  • https://mp.weixin.qq.com/s?__biz=Mzg4MDE3OTA5NA==&mid=2247490957&idx=1&sn=b9aa515f7833ba1503be298ac2360960&source=41#wechat_redirect

  • https://www.aminer.cn/ranks/conf/artificial-intelligence-and-pattern-recognition

10.1 深度强化学习实验室 ★★★★★

10.2 机器之心 ★★★★★

10.3 AI科技评论 ★★★★

10.4 新智元 ★★★

11.1 用户

  • 许铁-巡洋舰科技(微信公众号同名)、Flood Sung(GitHub同名)

  • 田渊栋、周博磊、俞扬、张楚珩、天津包子馅儿、JQWang2048 及其互相关注大牛等

11.2 专栏

  • David Silver强化学习公开课中文讲解及实践(叶强,很经典)

  • 强化学习知识大讲堂(《深入浅出强化学习:原理入门》作者天津包子馅儿)

  • 智能单元(杜克、Floodsung、wxam,聚焦通用人工智能,Flood Sung:深度学习论文阅读路线图 Deep Learning Papers Reading Roadmap很棒)

  • 深度强化学习落地方法论(西交 大牛,实操经验丰富)

  • 深度强化学习(知乎:JQWang2048,GitHub:NeuronDance,C


    深度强化学习入门到精通-2020最全资料综述

    强化学习
    本文对强化学习的相关资料从视频,书籍,PPT等做了非常全面的整理,必须关注。报道:深度强化学习实验室作者:岳龙飞 编辑:DeepRL

    人工智能是21世纪最激动人心的技术之一。人工智能,就是像人一样的智能,而人的智能包括感知、决策和认知(从直觉到推理、规划、意识等)。其中,感知解决what,深度学习已经超越人类水平;决策解决how,强化学习在游戏和机器人等领域取得了一定效果;认知解决why,知识图谱、因果推理和持续学习等正在研究。强化学习,采用反馈学习的方式解决序贯决策问题,因此必然是通往通用人工智能的终极钥匙。我特别喜欢强化学习,深深被其框架所吸引,智能体通过与环境交互来成长,这不就是生命的进化规律嘛!个人作为一名AI独立研究员,一路也是通过知乎、b站、GitHub、公众号和各类博客学习过来,非常感谢网络时代大家的分享,同时将自己在强化学习方面的经验总结整理分享,既是方便自己学习,也希望能帮助一点刷到这条知乎的朋友们。当然,强化学习也面临很多问题,希望我们一起解决,让强化学习变得更好![1]

    • (提取码: av5p)

    3.2 莫烦Python( 通俗易懂)

    请问DeepMind和OpenAI身后的两大RL流派有什么具体的区别? 三大经典算法

    • Mnih. Volodymyr, et al. "Human-level control through deep reinforcement learning." Nature 518.7540 (2015): 529. (Nature版本)
    • David. Silver, et al. "Deterministic policy gradient algorithms." ICML. 2014.
    • Mnih. Volodymyr, et al. "Asynchronous methods for deep reinforcement learning." International conference on machine learning. 2016.
    • 张楚珩:强化学习论文汇总
    • 许铁-巡洋舰科技(微信公众号同名)、Flood Sung(GitHub同名)
    • 田渊栋、周博磊、俞扬、张楚珩、天津包子馅儿、JQWang2048 及其互相关注大牛等
    • David Silver强化学习公开课中文讲解及实践(叶强,很经典)
    • 强化学习知识大讲堂(《深入浅出强化学习:原理入门》作者天津包子馅儿)
    • 智能单元(杜克、Floodsung、wxam,聚焦通用人工智能,Flood Sung:深度学习论文阅读路线图 Deep Learning Papers Reading Roadmap很棒)
    • 深度强化学习落地方法论(西交 大牛,实操经验丰富)
    • 深度强化学习(知乎:JQWang2048,GitHub:NeuronDance,CSDN:J. Q. Wang)
    • 神经网络与强化学习(《Reinforcement Learning: An Introduction》读书笔记)
    • 强化学习基础David Silver笔记(陈雄辉,南大,DiDi AI Labs)

    作者简介:岳博士,西交大博士研究生,研究多智能体协同控制领域。知乎:

    更多资料查看Github

    推荐阅读

    AAAI-2020 || 52篇深度强化学习accept论文汇总

    专注深度强化学习前沿技术干货,论文,框架,学习路线等,欢迎关注微信公众号。


    深度强化学习入门资料推荐

    强化学习

    强化学习是人工智能的分支,这种方法能够让机器在无需任何确定性规则或带标签样本的情况下自主学习某项技能。因为打败柯洁而被世人所熟知的人工智能Alpha Go便是强化学习最有名的应用之一,2019年问世的Alpha Star更是在星际争霸中打败了顶尖职业玩家......近年来强化学习的迅猛发展似乎在强势地宣告着:强化学习是人工智能的未来。

    XuanAxuan:【深度强化学习】初学者入门介绍(通俗易懂)

    我在开题文献阅读阶段第一次接触到【强化学习】,经过一段时间的调研,我被这一学科所蕴含的深厚理论基础以及它在人工智能领域所展现出来的巨大潜能所吸引,最终在与老师商议后将课题定为强化学习在无人机通信中的应用。作为非强化学习专业的研究者,我们需要在尽可能短的时间内入门这一学科,熟悉掌握应用强化学习所需要具备的各种基础知识。然而,网上的资料五花八门,要在这些资料中选择一部分进行学习甚至比学习强化学习本身还要困难。因此,在这里我想将我从半年前开始学习强化学习以来个人认为比较好的资料写下来,希望能够给像我一样想要自学强化学习的同学带来一些帮助~

    P.S 以下我推荐的资料都是我自己确实看过的,我的需求是短时间入门,所以我基本上只会去学习最经典最必要的资料,如果大家有什么其他好的推荐也欢迎在评论里留言呀~

    强化学习包含了大量的理论基础,掌握这些理论基础对于后续理解算法非常重要,每每当我阅读算法论文时就会发现,无论多新的算法,里边的理论推导永远都离不开入门阶段所学习到的那些基础知识,因此,入门的第一件事,掌握基础知识!

    • 《Reinforcement learning: an introduction》――非常重要,必读,推荐指数:★★★★★
    Reinforcement Learning: An Introduction

    这是入门强化学习的必读书目,内容涵盖了学习强化学习所必备的所有基础知识。虽然很多人都强调这本书深奥难懂,但其实如果真的认认真真地从头到尾读一遍,就会发现这本书真的写得非常清楚,每一句话都有严格的理论推导和物理意义解释,整本书看下来会让人有一种醍醐灌顶的感觉。我在入门阶段花了大概2周的时间读完了整本书,并且做了阅读笔记,之后就一直将这本书当做工具书,每当我有什么知识忘记了或不明白的时候,就会再次翻阅我的阅读笔记或者直接把原书的对应章节再次理解一遍。

    p.s. 在入门阶段,千万不要把时间全部花在刷帖子上,一定一定要踏踏实实地把这本书理解明白,因为网上的帖子大部分也是根据书加入了自身的理解,为了精简,通常不会解释得那么详细和全面,因此光靠刷帖子肯定没有办法建立起对强化学习的整体认识,甚至很多时候可能因为缺乏某些先验知识根本没有办法看懂。只有通过系统地阅读书籍,才能对强化学习的背景、框架、分类、基础知识产生最全面的理解,也只有这样,才能帮助自己后续灵活地应用各类算法。

    • 【李宏毅】强化学习课程――可作为补充资料,推荐指数:★★★
    【李宏毅】2020 最新课程 (完整版) 强化学习 - 71.作I十五 ML Lecture 23-1 - Deep Re_哔哩哔哩_bilibili

    这是台大李宏毅教授的课程,这门课以Sutton的书籍作为教材,对强化学习里比较重要的概念和算法进行了教授。我很喜欢李宏毅老师的讲课风格,将基础知识娓娓道来,还会穿插许多有趣的举例,能够很好地帮助加深对各种概念的理解,可以作为入门资料的一个补充。但毕竟看视频是一个比较费时间的事儿,我认为如果能够完全理解Sutton的书,就没有必要再把视频从头看一遍了。我个人的话,一般会在看书或看算法时遇到难以理解的地方,才会打开b站看看李宏毅老师的讲解。

    • OpenAI Spinning Up――非常推荐,推荐指数:★★★★★
    Welcome to Spinning Up in Deep RL!

    这是OpenAI推出的针对强化学习新手的入门教程,该教程首先梳理了强化学习中最重要的一部分基础知识,然后着重对策略梯度定理进行了推导,最后介绍了几类最经典的策略梯度算法(VPG,TRPO,PPO,DDPG,TD3,SAC),并给出了十分新手友好的源代码。我强烈推荐各位在阅读完Sutton的书之后,反复食用该教程,一方面它可以帮助我们梳理强化学习的基本框架,另一方面我们可以借此初步认识各类算法。最重要的是,我们还可以直接使用spinning up提供的算法代码,真的非常非常实用!

    在掌握了基础知识之后,我们就可以开始了解各类算法了。在强化学习中,没有最好的算法,只有最适合的算法,因此在最开始的时候,我们应该广泛了解各类经典算法,经过实验之后再选出我们最终使用的算法。为了了解各个算法的机理,最好的方法就是直接阅读算法对应的论文,不明白的地方可以在网上查找各类资料。

    以下我在介绍各类算法时,提到的off-policy/on-policy,确定性策略/随机策略等概念,都是强化学习的基础知识,在Sutton的书中都有详细地介绍,在这里我就不一一展开介绍了。如果不懂的话可以首先去把基础概念搞明白,然后再来学习这些具体的算法~

    • DQN――离散,off-policy
    Human-level control through deep reinforcement learning | Nature

    DQN算法是深度强化学习中最经典的算法,它适用于离散问题,是一种off-policy的算法。DQN将Q-learning算法与深度学习结合起来,标志着深度强化学习的开端。尽管有些人觉得DQN已经过时了,但我认为它是DRL中最重要的算法之一,并且仍然能够在许多问题中展现出比较好的效果。另外,之后的DDPG、TD3以及SAC等off-policy算法实际上都是在DQN算法的基础上做各种类型的改进,因此在入门时掌握DQN算法是十分必须的。

    • REINFORCE(VPG)――离散/连续,on-policy,随机策略

    REINFORCE是直接根据策略梯度定理所得到的算法,该算法所涉及的理论推导在Sutton的书以及Spinning up中均有详细介绍。尽管在实际应用中,我们一般不会再使用REINFORCE这一较老的算法,但是它所涉及到的理论推导是所有on-policy算法的基础,十分重要。

    • TRPO――离散/连续,on-policy,随机策略
    [1502.05477]Trust Region Policy Optimization (arxiv.org)

    TRPO的采用了信任域策略优化的方法,相较于REINFORCE,样本利用率更高。但是TRPO算法较为复杂,大家一般使用TRPO的简化版本,PPO。

    • PPO――离散/连续,on-policy,随机策略
    [1707.06347]Proximal Policy Optimization Algorithms (arxiv.org)

    PPO对TRPO算法进行了简化,在不降低算法性能的情况下使得算法操作性更强,是目前大家用得比较多的一个算法。

    XuanAxuan:【深度强化学习】PPO 算法理解
    • DPG――DDPG的基础
    Deterministic policy gradient algorithms | Proceedings of the 31st International Conference on International Conference on Machine Learning - Volume 32 (acm.org)

    上面提到的策略梯度算法均基于策略梯度定理,适用于随机策略。而在DPG中,作者针对确定性策略,提出了确定性策略梯度定理,并相应地提出了DPG算法。尽管我们一般不用DPG算法,但是该算法涉及到的理论推导是DDPG的基础,对于理解DDPG算法以及区分确定性策略与随机策略十分重要,因此我十分推荐大家阅读这篇论文。

    XuanAxuan:【深度强化学习】确定性策略梯度:DPG 阅读笔记
    • DDPG――连续,off-policy,确定性策略
    Continuous control with deep reinforcement learning

    DDPG算法是DPG算法与深度学习的结合,同时也是DQN算法与确定性策略梯度定理的结合,是一种适用于连续动作空间的off-policy算法。尽管目前许多人反映DDPG已经有些过时了,在许多问题上效果并不是特别好,但是我依然推荐大家入门时学习甚至尝试着跑一跑这个算法,毕竟它也是十分经典的算法之一。

    XuanAxuan:【深度强化学习】确定性策略梯度:DDPG算法理解
    • TD3――连续,off-policy,确定性策略

    TD3算法是DDPG的进阶版,也是目前大家比较推荐的算法,我尝试过感觉该算法超参数比较多,适合调参经验丰富的同学使用。

    XuanAxuan:【深度强化学习】升级版 DDPG:TD3 阅读笔记
    • SQL――连续/离散,off-policy,随机策略

    SQL是SAC的前身,实际应用中一般不会使用该算法,但是为了读懂SAC的论文,必须首先阅读SQL的论文。

    • SAC――连续/离散,off-policy,随机策略
    [1801.01290]Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor (arxiv.org)[1812.11103]Learning to Walk via Deep Reinforcement Learning (arxiv.org)

    SAC(soft actor-critic)基于最大熵(maximum entropy)框架,是一类特殊的off-policy的随机策略算法(一般随机策略算法都是on-policy的),兼具探索能力强(随机策略)与样本效率高(off-policy)的特点,是目前公认比较好的算法(在我个人的任务中,SAC的表现最好,无需调参就能很快收敛)。SAC算法涉及到很多篇论文,单看一篇很难看明白,需要仔细地把作者同一时期写的好几篇论文都阅读一遍,才能捋清楚背后所涉及的原理。目前就我用SAC达到的效果来看,在原理学习阶段所花的时间是十分值得的。

    XuanAxuan:【深度强化学习】最大熵 RL:从Soft Q-Learning到SAC

    接下来就是实践部分啦!在熟悉掌握了强化学习的基础知识并且了解了一些经典算法之后,我们就可以着手开始我们的实验了。GitHub上有许多大神的代码,但我们肯定没有办法把每个人的都学习一遍,而是应当选择一到两个代码进行学习,与此同时通过阅读好的代码来行成自己良好的代码习惯。我个人推荐在入门阶段,尽量多看官方提供的代码,因为官方提供的代码通常都是写法最规范,逻辑最清晰,出错概率最低的。

    我实际上是从完全不会Python开始入门强化学习的,所以对我来说,写代码第一个要做的事情就是学习Python的基础知识。我们不是程序员,不需要精通Python,我们要做的只是用Python实现一些课题需要的功能,因此在网上找一些基础的教程就完全足够了!

    • Python官方文档
    BeginnersGuide - Python Wiki

    学习一个东西最简单的方法就是看官方提供的文档,我看了一些教程之后,发现它们大多数都是对官方文档的翻译,因此我推荐英文还可以的同学直接看官方文档。

    • 廖雪峰 Python教程
    Python教程

    这一套教程的特点是讲得比较生动,但是我认为系统性有些欠缺,看完我就忘了。

    • 菜鸟教程 Python3
    Python3 教程 | 菜鸟教程

    菜鸟教程说不上写得多好,但对我来说用它来对Python语言产生一个较为初步的认识已经完全足够,看完菜鸟教程之后我基本上就能够入门Python语言了。

    • pytorch 官方 Tutorial
    Welcome to PyTorch Tutorials ― PyTorch Tutorials 1.10.1+cu102 documentation

    我使用的是pytorch框架,因此在最开始的时候,我选择先将pytorch官方提供的教程全部学习了一遍,让我对pytorch框架有初步的了解。在这一份tutorial中,pytorch官方还提供了2个DQN算法的代码示例,都还比较具有可读性,尽管我不推荐在真正实践时借鉴这两个代码的写法,但是在入门阶段通过阅读这两个代码可以在一定程度上了解强化学习编程的方法和一般流程。

    • Spinning up
    GitHub - openai/spinningup: An educational resource to help anyone learn deep reinforcement learning.

    OpenAi的spinning up不仅对经典的策略梯度算法进行了介绍,还提供了这些算法对应的源代码。我个人觉得这些代码都写得特别好,注释清晰,接口明确,使用方便,每个参数都有详细的介绍,十分适合入门者阅读与学习。我个人的代码就是在这一套代码的基础上进行修改的。

    • Stable Baseline3
    GitHub - DLR-RM/stable-baselines3: PyTorch version of Stable Baselines, reliable implementations of reinforcement learning algorithms.

    Stable Baseline3 对各大经典DRL算法进行了复现,代码中包含了许多结果复现所必需而论文中也许没有提到的tricks,我会在算法实现中有地方不确定的时候参考stable baseline3的代码。这套代码集成度高,但对我来说阅读起来有些费劲,所以我并没有花太多工夫研究它。

    以上就是我学习强化学习过程中使用的资料,我个人觉得能够把它们看完至少就可以算是入门强化学习了~接下来就得靠多看论文,多和其他人交流来不断提升自己的知识储备和实践经验了~

    最后,希望大家都能够越来越强啊~