用深度强化学习玩atari游戏_深度强化学习入门进阶实战之路

e3f972e7e7097b5be521c2c822bfe61e.png

开篇序

如今机器学习发展如此迅猛,各类算法层出不群,特别是深度神经网络在计算机视觉、自然语言处理、时间序列预测等多个领域更是战果累累,可以说这波浪潮带动了很多人进入深度学习领域,也成就了其一番事业。而强化学习作为一门灵感来源于心理学中的行为主义理论的学科,其内容涉及概率论、统计学、逼近论、凸分析、计算复杂性理论、运筹学等多学科知识,难度之大,门槛之高,导致其发展速度特别缓慢。围棋作为人类的娱乐游戏中复杂度最高的一个,它横竖各有19条线,共有361个落子点,双方交替落子,状态空间高达

(注:宇宙中的原子总数是
,即使穷尽整个宇宙的物质也不能存下围棋的所有可能性),但是
  • 2015年10月,由Google DeepMind公司开发的AlphaGo程序击败了人类高级选手樊麾,成为第一个无需让子即可在19路棋盘上击败围棋职业棋手的计算机围棋程序,并写进了历史,论文发表在国际顶级期刊《Science》上。
  • 2016年3月,透过自我对弈数以万计盘进行练习强化,AlphaGo在一场五番棋比赛中4:1击败顶尖职业棋手李世石。
  • Master(AlphaGo版本)于2016年12月开始出现于弈城围棋网和腾讯野狐围棋网,取得60连胜的成绩,以其空前的实力轰动了围棋界。
  • DeepMind 如约公布了他们最新版AlphaGo论文(Nature),介绍了迄今最强最新的版本AlphaGo Zero,使用纯强化学习,将价值网络和策略网络整合为一个架构,3天训练后就以100比0击败了上一版本的AlphaGo。AlphaGo已经退休,但技术永存。DeepMind已经完成围棋上的概念证明,接下来就是用强化学习创造改变世界的价值。

围棋被攻克证明了强化学习发展的威力,作为AlphoGo的带头人,强化学习界的大神,David Sliver及其团队可以说盛名远扬,其以前沿的目光发表了人工智能的终极目标是:

在深度学习已经取得了很大的进步的基础上,深度强化学习真正的发展归功于神经网络、深度学习以及计算力的提升,David就是使用了神经网络逼近值函数后,开启了一门新的研究方向:深度强化学习(Deep Reinforcement Learning,DRL),又一发不可收拾的证明了确定性策略等。纵观近四年的ICML,NPIS等顶级会议论文,强化学习的理论进步,应用领域逐渐爆发式增广,目前已经在如下领域有了广泛使用:

  • 自动驾驶:自动驾驶载具(self-driving vehicle)
  • 控制论(离散和连续大动作空间): 玩具直升机、Gymm_cotrol物理部件控制、机器人行走、机械臂控制。
  • 游戏:Go, Atari 2600(DeepMind论文详解)等
  • 理解机器学习:自然语言识别和处理, 文本序列预测
  • 超参数学习:神经网络参数自动设计
  • 问答系统:对话系统
  • 推荐系统:阿里巴巴黄皮书(商品推荐),广告投放。
  • 智能电网:电网负荷调试,调度等
  • 通信网络:动态路由, 流量分配等
  • 财务与财经系统分析与管理
  • 智能医疗
  • 智能交通网络及网络流
  • 物理化学实验:定量实验,核素碰撞,粒子束流调试等
  • 程序学习和网络安全:网络攻防等

以上是强化学习的发展史及应用领域,可以说世界出名研究机构,诸如:DeepMind、OpenAI、伯克利、CMU等都是强化学习的领跑者,他们并发明了很多最新前沿技术。强化学习作为机器学习的一个子领域,涉及内容的广泛、难度之高、研究的参考资料之少等因素让其一直处于不温不火的状态。但在国外研究比较热门,特别是2013年以来,国内也开始广泛的研究。一方面各个大公司掌握了核心技术,一方面培训机构高额的费用,让我等普通人查资料、学习出现重重障碍。本文的使命是 "让人人都可以享受强化学习带来的乐趣,让人人都可以用强化学习改变现有科技"

强化学习

强化学习是什么?与我们所学习的机器学习算法(SVM, 贝叶斯、决策树)、深度学习(CNN、RNN、LSTM、GAN)等算法之间的又是什么关系呢?这可以说是每一个初学者的疑惑。其实,强化学习类似于人类的学习方法(小孩学走路例子,如图所示),其通过不断试错和尝试的进行学习,并以做某件事带来的奖励作为指导其行为改善的基础进行学习。

421e5ccad5cdc76aa662a04e602e2e80.png

它从根本上打破以前利用处理数据、选取算法模型、训练与测试这种思维,而是从策略、值函数、模型等角度进行解决问题。为了能够利用数学的进行通用表达,以序列决策问题为典型的马尔科夫决策过程被广泛的使用。此外,动态规划、蒙特卡罗、时序控制三种方法是探索马尔科夫序列最佳策略的重要方法而被使用,并从控制的角度教智能体如何在有限的状态下进行探索和利用。在以上的基础上,策略梯度及神经网络被广泛的应用于策略和值函数的逼近过程中。

通常情况下,人类的学习是在真实的环境下,但强化学习目前还不能普及到高复杂,具有逻辑推理与情感分析的阶段,所以拥有一个仿真环境是强化学习学习的重要基础。可以说强化学习的成功来自于其在游戏领域的成功,因为游戏只涉及策略的决策,而不需要复杂的逻辑推理(围棋计算落子概率)。目前仿真环境比较多,著名的有OpenAI开发的Gym游戏, Google DeepMind开发的dm_control套件等,Gym中有很多直接可以训练强化学习算法的小游戏,其包括了经典的Atari, Box2D,Classic Control、MuJoCo、Robotics和Toy text等大类,每个类中又包含很多小游戏,例如:CartPole-V1等,在没有人工干预的前提下,可以用强化学习算法让一个小车自己学会如何爬上山坡、也可以让一个看起来傻乎乎的多关节机器人跑起来(在没有任何人类知道下完成)、还可以让一个打砖块游戏一路通关,让机器人手臂拿起东西挪动在固定区域(搬东西)、让游戏小人教会如何滑雪得分以及很多文字生成的游戏等。但俗话说:"工欲善其事,必先利其器",安装一个属于自己的强化学习仿真环境是一件多么炫酷的事,再也不用在youtube上看别人家的游戏,而是真正的在自己的机器上完成各种打怪升级,完成自己梦想。然而幸运中的不幸是,这些环境只能为我们提供一个特定的,验证和提高算法、开发算法的基础,这已经满足了大多数人的需要,对于那些想要在自己从事的领域、感兴趣的领域做点事的同学来说还远远不够,需要独立自定义一个真正属于自己的开发环境,设置一个合理的奖励方式、来解决一些实际的问题才能真正的有成就感。

神经网络助推剂

随着计算力的提升,深度学习发展势头特别猛,深度学习三驾马车(Yann LeCun、Geoffrey Hinton和Yoshua Bengio)出版的花书(Deep Learning)可以说是每个深度学习者必备的圣经,也正是深度学习的发展促使了深度强化学习的发展。2013年DeepMind使用了神经网络在Atari游戏中完成了多个游戏超越人类玩家的水平而名声大噪,其通过策略梯度和深度神经网络逼近了值函数和策略,使用了神经网络逼近一定程度上避免了表格存储序列空间大,查询慢等令人窒息的诟病,成为了强化学习发展的新的方向。同时使用Actor-Critic的学习方式巧妙的实现了将值函数和策略分开进行学习的方法,让策略达到最优的时候去指导值函数的更新。从此,深度强化学习成为了一个解决问题的标配,利用神经网络实现了鸟枪换大炮的跨越。同时Actor-Critic思想的重要性更是在Q-learning的实际问题开发中发挥了中流砥柱的作用。

百花齐放的DRL算法

深度学习的学习元素是数据、算法模型和计算力,同样对于深度强化学习来说也是需要对应的基础,而深度强化学习则和深度学习大不相同,它需要的是仿真模拟环境、算法模型和计算力,这也是深度强化学习算法区别于其他人工智能算法的独特点,在强化学习原理与基础、强化学习的仿真模拟环境以及深度强化学习算法基础上,真正的深度强化学习算法是什么样的?它是如何训练地?如何确定模型以及如何调整超参数等一系列的问题接踵而来。最作为深度强化学习领域里程碑式的标志算法,DQN(Deep Q Network,如图)完成了Atari游戏登上Nature宝座的使命。

e3c982aeaa05a1e0296bc10ee8b2c20b.png

它通过神经网络逼近值函数,利用了experience-replay和独立Target网络的思路解决了两个独立分布的问题,为后文的深度确定性策略等算法的发展奠定了基础,继而在DeepMind、OpenAI等大佬公司的推动一下,一系列的诸如DDQN等算法刷新了新的游戏记录,最终综合了各种算法优势的RainBow刷新的三观。除此之外,在诸如MuJoCo的游戏中,由于机器人的关节都是连续性变量控制,普通的DQN等由于大规模的存储很难进行学习,由David sliver提出的确定性策略解决了很难收敛等问题,成功的在连续性控制中发挥了重要作用,从此深度确定性策略得到了进一步发展,分布式的深度确定性策略等算法进一步提升了效率,但确定性策略只是确保了能够尽快的收敛,而不能够确保最优,就像深度学习中的SGD,有可能会进入局部最优。于是伯克利大学的John Schulman提出了一种置信域策略优化方法,该方法给出了一个单调的策略改善方法,效率得到了进一步的提升。然而大佬们并不满足,OpenAI和DeepMind几乎同一时间提出了PPO和DPPO算法,同样PPO的思想是限制新策略的更新幅度,不要被冲昏头脑,避免了"物极必反",技术上采用采用了单线程,而DeepMind的DPPO则是采用了多线程解决。说起多线程,可以说大家目前追随的是GPU加速了,其性能也是非常明显的,甚至可以说在深度学习的发展过程中发挥了助推剂作用,然而高昂的价格让很多人开始思考,到底有没有方法可以使得CPU也可以玩起深度强化学习算法,答案是肯定的。A2C,A3C异步方法就是利用了CPU多核的属性完成了在Atari游戏中的性能,其以模型能力好、训练时间断短赢得了美誉,同时Nvida为了进一步提升性能,实现了GPU版的加速A3C,可以说整个算法发展史百花齐放。

进化之路

随着深度强化学习在Atari游戏等领域的成功应用的逐渐活跃,各行各业领域的专家开始探索在其所在行业中的应用,并硕果累累,比如无人车、空调电力控制等。然而普通的深度强化学习在解决复杂的问题的时候,仍然有时候会显得力不从心,包括很多譬如奖励函数等使得学习效果并不是特别的明显。于是,科学家们提出了许多新的高级深度强化学习算法。当环境维度特别大的时候,传统的强化学习算法会出现维度灾难,导致很难学习,分层强化学习借鉴了我们以前在数据结构与算法中学过的分治法的思想,将一个复杂的强化学习问题分解为几个子问题并分别解决,并取得良好效果,解决了大规模的强化学习问题。此外,面对大多数强化学习算法从头开始学习的方法,新的一种将meta learning学习应用到强化学习中的算法应用而生,其通过大量的学习任务,获得先验知识,使得面对新的的任务的时候学习起来更快、效果更好、同时又能使得泛化能力更强。目前元强化学习(meta-Reinforcement Learning)已经取得了非常不错的成果。然而基于以上所有的强化学习算法,回报函数仍然大多数是人为根据情况设定的,具有很强的主观性和经验性,回报函数(奖励、回报函数后文单独章节讲解)直接影响了模型的收敛等,而逆向强化学习是为了解决回报函数的问题而被提出了的,紧接着学徒学习、最大边际分割规划将会详细进行解释。除此之外,受博弈论二人对弈的思想影响产生的生成对抗网络(Generative Adversarial Network,GAN),其利用一个生成一个评判的思想使得模型能够在很多领域,特别是图像生成方面做到天衣无缝的水平,成为强化学习以后发展的一个重要借鉴之处而被本文进行提及。并且,模仿学习和进化学习作为比较古老经典的算法也是重中之重,因为其根据原始的学习模仿人类操作和自然进化规律的原理是当今其他算法发展的基础,而且基于在近年来计算力的提升,AutoML自动学习在深度强化学习的策略网络、值函数网络等网络结构方面发挥不可估量的潜力。

分布式计算应用

深度强化学习算法的发展与进步让各个行业享受了科技带来的乐趣与进步,然而一个复杂的应用场景和大规模的工业应用对算法的要求也特别高,然而深度强化学习试错学习的模式需要大量的进行探索学习,在建模方面的计算时间长、收敛速度慢导致整个模型的迭代速度慢而抑制了行业的快速发展,传统的单机CPU、GPU等计算已经远远不能够满足大数据时代的要求,经典的分布式集群(多机)、GPU集群运算开始进入了深度强化学习领域。幸运的是诸如RLlib、Raylib、IMPALA(如图)等开源分布式强化学习框架让每个人都可以在云上(购买云服务)进行计算并训练自己的复杂模型。在计算力得到进一步解决后,多个智能体之间的协作与竞争可以说是生活的直接体现,而这种竞争或者协作的直接目的就是取得最大收益,以博弈论为基础的协作与竞争对多智能体的研究起了很多的指导作用。

410a94130e0afaf2ed0ecf132fb9e421.png

当万事俱备的时候,奖励函数的设置成为影响强化学习发展的一个重要的因素,目前在Gym游戏中的很多奖励规则或者机制都是人工根据经验或者主观判断进行设定的,因为这种带有经验性的奖励导致深度强化学习模型有可能很难收敛,甚至直接发散,即使逆向强化学习解决了一部分问题,然而还有更多的关于奖励函数的问题需要解决,稀疏奖励、平均奖励等不同的形式进行仍然需要详解,如果并不能解决行业的痛点,但能从侧面来减少对模型的训练影响。

最后,深度强化学习的复杂不仅体现在模型的建立,奖励函数的设置等方面,作为深度学习或者说人工智能建模最重要的一个环节 "调超参" 一直是一个头疼的事,很多人在调节参数的时候可以说是"玄学调参",其不仅浪费了大量的时间和计算力,而且效果也一般。对于深度强化学习调节参数,无非需要从两个角度说明: 一方面,观察loss等曲线图进行分析,另外一方面需要从根本上解决问题,即深度强化学习的14个关键问题研究。

AlphaGo的终极突破

AlphoGo是Google DeepMind于2014年开发的一款人工智能围棋软件,其使用了蒙特卡洛树搜索与两个深度神经网络相结合的方法,其中一个是以估值网络来评估大量的选点,而以走棋网络来选择落子。在这种设计下,计算机可以结合树状图的长远推断,又可像人类的大脑一样自发学习进行直觉训练,以提高下棋实力,后使用了强化学习进行自我博弈,最终达到了战胜世界一流的人类围棋选手的成绩。其背后的原理成为每个人工智能爱好者都想了解的秘密。本文将深入浅出,从原理到实践带领大家走入程序围棋世界。

以上是整个强化学习生态概述,下面本文将会从强化学习原理及以上相关应用例子开始逐渐庖丁解牛,最终让每个人都能够享受DRL带来的乐趣、享受实战编码带来的乐趣,并完成世界最著名的围棋程序"Alpha Zero"编码,成为一个Alpha Zero-er。 课程整体规划如下:

  • 1、讲解强化学习原理,并带领大家开始迷宫编码实战
  • 2、带领大家安装强化学习常用环境以及自定义环境创建。
  • 3、过渡到深度强化学习,并从深度强化学习算法(6类22种算法)原理入手,深入浅出到实战代码。继而阐述高级深度强化学习算法、GAN、博弈论、进化算法等前沿技术。
  • 4、大规模计算力上的实验,分布式强化学习与涉及博弈论的多智能体的原理与实战。
  • 5、强化学习最关键的问题之一,深入理解奖励塑造(reward shaping)。
  • 6、回顾以上课程,总结及深入探讨深度强化学习的难点及处理技巧。
  • 7、从原理到实战最强围棋Alpha Zero

课程撰写团队:武博士、J.Q.Wang强化学习团队

参考文献:

1、https://storage.googleapis.com/deepmind-media/dqn/DQNNaturePaper.pdf

2、https://deepmind.com/blog/impala-scalable-distributed-deeprl-dmlab-30/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值