美文网首页深度强化学习
深度强化学习(一):概论

深度强化学习(一):概论

作者: fromeast | 来源:发表于2019-04-18 22:05 被阅读375次

    一、起源与发展

    1.1、思想基础

    强化学习(Reinfrocement Learning)的思想源于行为心理学(behavioural psychology)的研究。1911年Thorndike提出了效用法则(Law of Effect):一定情境下让动物感到愉快的行为,就会与此情景加强联系,当此情景再现时,动物的这种行为也更易再现;相反,让动物感觉不愉快的行为,会减弱与此情景的联系,此情景再现时,此行为将很难再现。
    换句话说,那种行为会被记住取决于该行为产生的效用。例如:在主人扔出飞盘时,狗叼回飞盘给主人的行为获得了肉骨头,将会使得“狗叼回扔出的飞盘”这个行为和“主人扔出飞盘时”这个情景加强了联系,“获得肉骨头”的效用将使狗记住“叼回扔出的飞盘”的行为。
    这样一种生物智能模式使得动物可以从不同行为尝试获得的奖励或惩罚学会在该情境下选择训练者最期望的行为。这就是强化学习的核心机制:用试错(trail-and-error)来学会在给定的情境下选择最恰当的行为。Sutton定义强化学习为:通过试错学习如何最佳地匹配状态(states)和动作(actions),以期获得最大的回报(rewards)。

    1.2、重要节点事件

    1956年Bellman提出了动态规划方法。
    1977年Werbos提出只适应动态规划算法。
    1988年sutton提出时间差分算法。
    1992年Watkins 提出Q-learning 算法。
    1994年rummery 提出Saras算法。
    1996年Bersekas提出解决随机过程中优化控制的神经动态规划方法。
    2006年Kocsis提出了置信上限树算法。
    2009年kewis提出反馈控制只适应动态规划算法。
    2014年silver提出确定性策略梯度(Policy Gradents)算法。
    2015年Google-DeepMind提出Deep-Q-Network算法。
    2016年Google-DeepMind开发的基于RL的AlphaGo战胜围棋高手李世石。
    2018年Open AI 在DOTA 5v5 比赛中战胜职业选手

    1.3、强化学习的地位

    强化学习是一个交叉学科,与计算机科学、脑神经科学、数学、工程学、心理学、经济学都有密切关系。例如:数学中的Markov决策过程和Bellman方程是其理论基础;工程学中的优化控制提供了动作选择的策略;脑神经科学为DQN算法的提出提供了诸多灵感;经济学的目标同样是根据不完全信息以获取最大化回报,等等,不一而足。 强化学习与其他学科的关系

    强化学习是机器学习的一个分支,具有以下特点:
    a. 无特定数据,只有奖励信号
    b. 奖励信号不一定实时
    c. 主要研究时间序列的数据,而不是独立同分布的数据
    d. 当前行为影响后续数据
    对比其他机器学习方法,监督学习和无监督学习都需要静态的数据,不需要与环境交互,数据输入到相关函数训练就行。而且对于有监督学习和无监督学习来说,有监督学习强调通过学习有标签的数据,预测新数据的标签,无监督学习更多是挖掘数据中隐含的规律。强化学习不需要给出“正确”标签作为监督信息,只需要给出策略的(延时)回报,并通过调整策略来取得最大化的期望回报。


    强化学习与机器学习的关系

    1.4、深度学习与强化学习

    深度强化学习框架

    深度强化学习是深度学习和强化学习的结合,利用了深度学习的感知能力,来解决策略和值函数的建模问题,然后使用误差反向传播算法来优化目标函数;同时利用了强化学习的决策能力,来定义问题和优化目标。深度强化学习在一定程度上具备了解决复杂问题的通用智能,并在一些领域取得了成功。
    下图的例子说明了深度学习和强化学习的关系,即深度学习能够识别图片中的对象,而不会进行任何决策;而强化学习能够在识别对象的基础上进一步提供决策信息。


    深度学习 强化学习

    2、算法种种

    在介绍具体结构和理论之前,不妨先了解一下算法目前的发展状况。

    2.1、算法家族

    到目前为止,(深度)强化学习已经发展出了多种算法,从模型的角度看,可分为基于模型和无模型;从优化的角度看,可分为基于值函数和基于策略梯度的。每种下又有多种具体的算法,其关系如下图所示,在之后的帖子中多数算法的原理都会被介绍并加以实践,在此不再赘述。 深度强化学习算法

    2.2、强化学习家族

    由于具体问题、场景、算法、组成的不同,强化学习又可以被分为多个子分支,这些分支表现了不同行业的研究者对于问题的不同认知方式,同时也代表了一个或多个研究和发展的方向。 强化学习种种

    最后附上与强化学习有关的多种因素,其中涉及算法、概念、学科、思想等多方面,能够充分理解和运用这些因素足以表明在此领域的较高水平(当然,笔者此刻还远未达到,尚需努力~)。


    概念、算法及其它

    3、现状与不足

    3.1、一些有意思的应用

    众所周知,(深度)强化学习已经在一些领域取得了很好的成果。目前而言,至少在运动控制、自动驾驶、推荐系统、市场交易、智能电网等领域取得了实验室级的应用成果,本节仅简要展示其中一小部分。

    心塞塞的柯洁 FlappyBird小游戏
    (由于简书还无法插入视频,故仅附上链接)
    自动驾驶
    Learning to drive in a day
    Self-supervised Deep Reinforcement Learning with Generalized Computation Graphs for Robot Navigation
    运动控制
    Robot Learns to Flip Pancakes
    Socially Aware Motion Planning with Deep Reinforcement Learning
    游戏
    Google DeepMind's Deep Q-learning playing Atari Breakout
    Dota 2 Reinforcement Learning
    市场交易
    reinforcement learning in online stock trading: Strategy 2000$ in 10 minutes never loses very easy trick 2019
    Applying Deep Reinforcement Learning to Trading with Dr. Tucker Balch
    推荐系统
    Reinforcement Learning for Recommender Systems: A Case Study on Youtube
    智能电网
    Distributed Reinforcement Learning for Electricity Market Bidding
    Machine Learning Applications for Energy Efficiency and Customer Care
    (友情提供YouTube视频下载工具:https://www.onlinevideoconverter.com/youtube-converter)

    3.2、从劝退文说起

    尽管深度强化学习取得了一些成果,但不可避免地也会出现一些问题。随着论文Deep Reinforcement Learning That Matters和帖子Deep Reinforcement Learning Doesn't Work Yet的出现,深度强化学习一度受到了巨大的质疑,知乎上也出现了一些类似的讨论这里有一篇深度强化学习劝退文和专栏强化学习从入门到放弃。同时流行一句名言:

    Whenever someone asks me if reinforcement learning can solve their problem, I tell them it can’t. I think this is right at least 70% of the time.


    质疑指出的问题包括但不仅仅限于以下方面:
    1. 样本利用率低。即需要极为大量的训练样本。
    2. 最终表现往往不够好。甚至常常不如传统的方法。
    3. 好的奖励函数很重要。而奖励函数往往很难设计。
    4. 探索-利用困境。可能陷入局部最优。
    5. 对环境的过拟合。几乎无法进行场景迁移。
    6. 不稳定性。模型的表现易受影响。 不同强化学习算法在 Atari 中的表现

    举个例子来说,通过为 57 个 Atari 游戏中的每一个训练一个 DQN 模型,然后将每个智能体的得分进行标准化,使得人类的性能是 100%,然后将模型在 57 款游戏上的中值得分画出来。RainbowDQN 模型的训练数据达到约 1800 万帧的时候突破了 100% 的阈值。这相当于玩了 83 小时的游戏,再加上训练模型所花的时间。而人类通常能够在几分钟之内学会一款 Atari 游戏。
    必须承认以上的问题是客观存在的,而正因如此,深度强化学习才更有继续研究的必要,同时问题或许也指明了未来的研究方向。

    4、一些有用的学习资料

    (笔者在研究强化学习时走过不少弯路,也看过一些文献和资料,在此列举出一些重要的部分,希望对后来的研究者有所帮助)

    4.1、论文汇编

    https://github.com/muupan/deep-reinforcement-learning-papers
    https://github.com/junhyukoh/deep-reinforcement-learning-papers

    4.2、教材和参考书

    Sutton R S, Barto A G. Reinforcement learning: An introduction[M]. MIT press, 2018.
    http://incompleteideas.net/book/RLbook2018.pdf
    中文翻译版:https://github.com/rl-cn/rl-cn/releases
    Wiering M, Van Otterlo M. Reinforcement learning. 2012
    https://link.springer.com/book/10.1007%2F978-3-642-27645-3
    Szepesvári C. Algorithms for reinforcement learning. 2010
    https://www.morganclaypool.com/doi/abs/10.2200/S00268ED1V01Y201005AIM009

    4.3、网上课程

    CS 234 at Stanford

    http://web.stanford.edu/class/cs234/index.html

    CS 294-112 at UC Berkeley

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

    Deep Reinforcement Learning and Control , CMU

    https://katefvision.github.io/

    Udemy高级教程

    https://www.udemy.com/deep-reinforcement-learning-in-python/

    莫烦教程

    https://www.bilibili.com/video/av16921335/

    4.4、会议论坛

    NIPS 2016 Deep RL workshop

    http://rll.berkeley.edu/deeprlworkshop/

    4.5、函数库与工具包

    RL-Glue:提供了一个将强化学习智能体、环境和程序连接起来的标准界面,且可进行跨语言编程。
    http://glue.rl-community.org/wiki/Main_Page
    Gym:由OpenAI开发,是一个用于开发强化学习算法和性能对比的工具包,它可以训练多种任务,包括步行和玩乒乓球游戏等。
    https://gym.openai.com/
    RL4J:是集成在deeplearning4j库下的一个强化学习框架,已获得Apache 2.0开源许可。
    https://github.com/deeplearning4j/rl4j
    TensorForce:一个用于强化学习的TensorFlow库。
    https://github.com/reinforceio/tensorforce
    DeeR:主要用于深度强化学习的开发,易于学习和上手。
    https://deer.readthedocs.io/en/master/

    不同包特点和性能的对比

    参考资料

    [1] Barto A G, Sutton R S. Reinforcement Learning: An Introduction.MIT press, 2018.
    [2] 冯超著 强化学习精要:核心算法与TensorFlow实现. ----北京:电子工业出版社 2018.
    [3] 郭宪,方纯勇编著 深入浅出强化学习:原理入门. ----北京:电子工业出版社 2018.
    [4] http://baijiahao.baidu.com/s?id=1596735818711610939&wfr=spider&for=pc
    [5] 邱锡鹏著,神经网络与深度学习. https://nndl.github.io/ 2019.
    [6] Maxim Lapan. Deep Reinforcement Learning Hands-On. 2018.
    [7] Li, Yuxi. Deep Reinforcement Learning[J]. 2018.
    [8] Henderson P , Islam R , Bachman P , et al. Deep Reinforcement Learning that Matters[J]. 2017.
    [9] François-Lavet V, Henderson P, Islam R, et al. An introduction to deep reinforcement learning[J]. Foundations and Trends® in Machine Learning, 2018, 11(3-4): 219-354.

    一点态度,一种进取精神

    相关文章

      网友评论

        本文标题:深度强化学习(一):概论

        本文链接:https://www.haomeiwen.com/subject/geqawqtx.html