赞
踩
如今机器学习发展如此迅猛,各类算法层出不群,特别是深度神经网络在计算机视觉、自然语言处理、时间序列预测等多个领域更是战果累累,可以说这波浪潮带动了很多人进入深度学习领域,也成就了其一番事业。而强化学习作为一门灵感来源于心理学中的行为主义理论的学科,其内容涉及概率论、统计学、逼近论、凸分析、计算复杂性理论、运筹学等多学科知识,难度之大,门槛之高,导致其发展速度特别缓慢。
此后一段时间,强化学习被监督学习(supervised learning)的光芒所遮掩,像统计模式识别,人工神经网络均属于监督学习,这种学习是通过外部有知识的监督者提供的例子来进行学习的,但这种学习已经完全违背了强化学习的宗旨,因为监督学习有了“导师”(supervisor),有了预备知识(examples)的,这也是强化学习发展缓慢的原因,
在2013年,DeepMind发表了利用强化学习玩Atari游戏的论文,至此强化学习开始了新的十年。
围棋作为人类的娱乐游戏中复杂度最高的一个,它横竖各有19条线,共有361个落子点,双方交替落子,状态空间高达
1
0
171
10^{171}
10171 (注:宇宙中的原子总数是
1
0
80
10^{80}
1080,即使穷尽整个宇宙的物质也不能存下围棋的所有可能性),但是
围棋被攻克证明了深度强化学习发展的潜力,作为AlphoGo的带头人,强化学习界的大神,David Sliver及其团队可以说盛名远扬,其以前沿的目光发表了人工智能的终极目标是: 人工智能 = DL(Deep Learning)+ RL(reinforcement learning) ==DRL
在深度学习已经取得了很大的进步的基础上,深度强化学习真正的发展归功于神经网络、深度学习以及计算力的提升,David就是使用了神经网络逼近值函数后,开启了一门新的研究方向:深度强化学习(Deep Reinforcement Learning,DRL),又一发不可收拾的证明了确定性策略等。纵观近6年的ICML,NPIS等顶级会议论文,强化学习的理论进步,应用领域逐渐爆发式增广,目前已经在如下领域有了广泛使用:
以上是深度强化学习的部分发展例子,要说先进的技术,必然离不开顶尖的研究结构,而诸如:DeepMind、OpenAI、伯克利、CMU等都是强化学习的领跑者,他们并发明了很多最新前沿技术。强化学习作为机器学习的一个子领域,涉及内容的广泛、难度之高、研究的参考资料之少等因素让其一直处于不温不火的状态。但在国外研究比较热门,特别是2013年以来,国内也开始广泛的研究。一方面各个大公司掌握了核心技术,一方面培训机构高额的费用,让我等普通人查资料、学习出现重重障碍。本文的使命是 “让人人都可以享受强化学习带来的乐趣,让人人都可以用强化学习改变现有科技”。
与我们所学习的机器学习算法(SVM, 贝叶斯、决策树)、深度学习(CNN、RNN、LSTM、GAN)等算法之间的又是什么关系呢?这可以说是每一个初学者的疑惑。其实,强化学习类似于人类的学习方法(小孩学走路例子,如图所示),其通过不断试错和尝试的进行学习,并以做某件事带来的奖励作为指导其行为改善的基础进行学习。它从根本上打破以前利用处理数据、选取算法模型、训练与测试这种思维,而是从策略、值函数、模型等角度进行解决问题。为了能够利用数学的进行通用表达,以序列决策问题为典型的马尔科夫决策过程被广泛的使用。此外,动态规划、蒙特卡罗、时序控制三种方法是探索马尔科夫序列最佳策略的重要方法而被使用,并从控制的角度教智能体如何在有限的状态下进行探索和利用。在以上的基础上,策略梯度及神经网络被广泛的应用于策略和值函数的逼近过程中。
通常情况下,人类的学习是在真实的环境下,但强化学习目前还不能普及到高复杂,具有逻辑推理与情感分析的阶段,所以拥有一个仿真环境是强化学习学习的重要基础。可以说强化学习的成功来自于其在游戏领域的成功,因为游戏只涉及策略的决策,而不需要复杂的逻辑推理(围棋计算落子概率)。目前仿真环境比较多,著名的有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的实际问题开发中发挥了中流砥柱的作用。
深度学习的学习元素是数据、算法模型和计算力,同样对于深度强化学习来说也是需要对应的基础,而深度强化学习则和深度学习大不相同,它需要的是仿真模拟环境、算法模型和计算力,这也是深度强化学习算法区别于其他人工智能算法的独特点,在强化学习原理与基础、强化学习的仿真模拟环境以及深度强化学习算法基础上,真正的深度强化学习算法是什么样的?它是如何训练地?如何确定模型以及如何调整超参数等一系列的问题接踵而来。最作为深度强化学习领域里程碑式的标志算法,DQN(Deep Q Network,如图)完成了Atari游戏登上Nature宝座的使命。它通过神经网络逼近值函数,利用了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(如图)等开源分布式强化学习框架让每个人都可以在云上(购买云服务)进行计算并训练自己的复杂模型。在计算力得到进一步解决后,多个智能体之间的协作与竞争可以说是生活的直接体现,而这种竞争或者协作的直接目的就是取得最大收益,以博弈论为基础的协作与竞争对多智能体的研究起了很多的指导作用。
在以上强化学习进步的基础上,未来强化学习的道路到底怎么样?
这个谁也说不明白,但技术的发展总是有趋势,我相信,未来强化学习的发展在于解决以下18个问题关键问题的情况:
更多关于深度强化学习文章请移步: 深度强化学习知识总结
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。