强化学习是如何解决问题的?

2020-06-11 16:05:37 浏览数 (1)

小编说:强化学习离我们有多远?2016年和2017年最具影响力的AlphaGo大胜世界围棋冠军李世石和柯洁事件,其核心算法就用到了强化学习算法。如今,强化学习继深度学习之后,成为学术界和工业界追捧的热点。从目前的形式看,强化学习正在各行各业开花结果,前途一片大好。 本文选自《深入浅出强化学习:原理入门》一书

什么是强化学习算法呢?要回答这个问题,必须先回答强化学习可以解决什么问题,强化学习如何解决这些问题。

  • 强化学习可以解决什么问题

如下图1是强化学习算法的成功案例。其中的A图为典型的非线性二级摆系统。该系统由一个台车(黑体矩形表示)和两个摆(红色摆杆)组成,可控制的输入为台车的左右运动,该系统的目的是让两级摆稳定在竖直位置。两级摆问题是非线性系统的经典问题,在控制系统理论中,解决该问题的基本思路是先对两级摆系统建立精确的动力学模型,然后基于模型和各种非线性的理论设计控制方法。一般来说,这个过程非常复杂,需要深厚的非线性控制理论的知识。而且,在建模的时候需要知道台车和摆的质量,摆的长度等等。基于强化学习的方法则不需要建模也不需要设计控制器,只需要构建一个强化学习算法,让二级摆系统自己去学习就可以了。当学习训练结束后,二级摆系统便可以实现自平衡。图1.1中的B图是训练好的AlphaGo与柯洁对战的第二局棋,C图则为机器人在仿真环境下自己学会了从摔倒的状态爬起来。这三个例子能很好地说明,强化学习算法在不同的领域能够取得令人惊艳的结果。当然,强化学习除了应用到非线性控制、下棋、机器人等方向,还可以应用到其他领域,如视频游戏、人机对话、无人驾驶、机器翻译、文本序列预测等。

图1 强化学习成功案例

例子是举不完的,可以用一句话来说明强化学习所能解决的问题:智能决策问题。更确切地说是序贯决策问题。什么是序贯决策问题呢?就是需要连续不断地做出决策,才能实现最终目标的问题。如图1.1中图A的二级摆问题,它需要在每个状态下都有个智能决策(在这里智能决策是指应该施加给台车什么方向、多大的力),以便使整个系统逐渐收敛到目标点(也就是两个摆竖直的状态)。图B中的AlphaGo则需要根据当前的棋局状态做出该下哪个子的决策,以便赢得比赛。图C中,机器人需要得到当前状态下每个关节的力矩,以便能够站立起来。一句话概括强化学习能解决的问题:序贯决策问题。那么,强化学习是如何解决这个问题的呢?

  • 强化学习如何解决问题

在回答强化学习如何解决序贯决策问题之前,我们先看看监督学习是如何解决问题的。从解决问题的角度来看,监督学习解决的是智能感知的问题。

我们依然用一个图来表示。如图2所示,监督学习最典型的例子是数字手写体识别,当给出一个手写数字时,监督学习需要判别出该数字是多少。也就是说,监督学习需要感知到当前的输入到底长什么样,当智能体感知到输入长什么样时,智能体就可以对它进行分类了。如图2所示,输入手写体长得像4,所以智能体就可以判断它是4了。智能感知其实就是在学习“输入”长得像什么(特征),以及与该长相一一对应的是什么(标签)。所以,智能感知必不可少的前提是需要大量长相差异化的输入以及与输入相关的标签。因此,监督学习解决问题的方法就是输入大量带有标签的数据,让智能体从中学到输入的抽象特征并分类。

图2 强化学习与监督学习的区别

强化学习则不同,强化学习要解决的是序贯决策问题,它不关心输入长什么样,只关心当前输入下应该采用什么动作才能实现最终的目标。再次强调,当前采用什么动作与最终的目标有关。也就是说当前采用什么动作,可以使得整个任务序列达到最优。如何使整个任务序列达到最优呢?这就需要智能体不断地与环境交互,不断尝试,因为智能体刚开始也不知道在当前状态下哪个动作有利于实现目标。强化学习解决问题的框架可用图1.3表示。智能体通过动作与环境进行交互时,环境会返给智能体一个当前的回报,智能体则根据当前的回报评估所采取的动作:有利于实现目标的动作被保留,不利于实现目标的动作被衰减。具体的算法,我们会在后面一一介绍。用一句话来概括强化学习和监督学习的异同点:强化学习和监督学习的共同点是两者都需要大量的数据进行训练,但是两者所需要的数据类型不同。监督学习需要的是多样化的标签数据,强化学习需要的是带有回报的交互数据。由于输入的数据类型不同,这就使得强化学习算法有它自己的获取数据、利用数据的独特方法。我们在这里先简单地了解下这些强化学习算法的发展历史。

图3 强化学习基本框架

我们不去深究强化学习算法的具体发展历史,只给出两个关键的时间点。第一个关键点是1998年,标志性的事件是Richard S. Sutton出版了他的强化学习导论第一版,即Reinforcement Learning : An Introduction(该书第二版的中文版将由电子工业出版社出版),该书系统地总结了1998年以前强化学习算法的各种进展。在这一时期强化学习的基本理论框架已经形成。1998年之前,学者们关注和发展得最多的算法是表格型强化学习算法。当然,这一时期基于直接策略搜索的方法也被提出来了。如1992年R.J.Williams提出了Rinforce算法直接对策略梯度进行估计。第二个关键点是2013年DeepMind提出DQN(Deep Q Network),将深度网络与强化学习算法结合形成深度强化学习。从1998年到2013年,学者们也没闲着,发展出了各种直接策略搜索的方法。2013年之后,随着深度学习的火热,深度强化学习也越来越引起大家的注意。尤其是2016年和2017年,谷歌的AlphaGo连续两年击败世界围棋冠军,更是将深度强化学习推到了风口浪尖之上。如今,深度强化学习算法正在如火如荼地发展,可以说正是百家争鸣的年代,或许再过几年,深度强化学习技术会越来越普及,并发展出更成熟、更实用的算法来,我们拭目以待。

  • 强化学习算法分类及发展趋势

已有的强化学习算法种类繁多,一般可按下列几个标准来分类。

(1)根据强化学习算法是否依赖模型可以分为基于模型的强化学习算法和无模型的强化学习算法。这两类算法的共同点是通过与环境交互获得数据,不同点是利用数据的方式不同。基于模型的强化学习算法利用与环境交互得到的数据学习系统或者环境模型,再基于模型进行序贯决策。无模型的强化学习算法则是直接利用与环境交互获得的数据改善自身的行为。两类方法各有优缺点,一般来讲基于模型的强化学习算法效率要比无模型的强化学习算法效率更高,因为智能体在探索环境时可以利用模型信息。但是,有些根本无法建立模型的任务只能利用无模型的强化学习算法。由于无模型的强化学习算法不需要建模,所以和基于模型的强化学习算法相比,更具有通用性。

(2)根据策略的更新和学习方法,强化学习算法可分为基于值函数的强化学习算法、基于直接策略搜索的强化学习算法以及AC的方法。所谓基于值函数的强化学习方法是指学习值函数,最终的策略根据值函数贪婪得到。也就是说,任意状态下,值函数最大的动作为当前最优策略。基于直接策略搜索的强化学习算法,一般是将策略参数化,学习实现目标的最优参数。基于AC的方法则是联合使用值函数和直接策略搜索。具体的算法会在后面介绍。

(3)根据环境返回的回报函数是否已知,强化学习算法可以分为正向强化学习和逆向强化学习。在强化学习中,回报函数是人为指定的,回报函数指定的强化学习算法称为正向强化学习。很多时候,回报无法人为指定,如无人机的特效表演,这时可以通过机器学习的方法由函数自己学出来回报。

为了提升强化学习的效率和实用性,学者们又提出了很多强化学习算法,如分层强化学习、元强化学习、多智能体强化学习、关系强化学习和迁移强化学习等。

强化学习尤其是深度强化学习正在快速发展,从当前的论文可以初步判断强化学习的发展趋势如下。

第一,强化学习算法与深度学习的结合会更加紧密。

机器学习算法常被分为监督学习、非监督学习和强化学习,以前三类方法分得很清楚,而如今三类方法联合起来使用效果会更好。所以,强化学习算法其中一个趋势便是三类机器学习方法在逐渐走向统一的道路。谁结合得好,谁就会有更好的突破。该方向的代表作如基于深度强化学习的对话生成等。

第二,强化学习算法与专业知识结合得将更加紧密。

如果将一般的强化学习算法,如Qlearning算法直接套到专业领域中,很可能不工作。这时一定不能灰心,因为这是正常现象。这时需要把专业领域中的知识加入到强化学习算法中,如何加?这没有统一的方法,而是根据每个专业的内容而变化。通常来说可以重新塑造回报函数,或修改网络结构(大家可以开心地炼丹灌水了)。该方向的代表作是NIPS2016的最佳论文值迭代网络(Value Iteration Networks)等。

第三,强化学习算法理论分析会更强,算法会更稳定和高效。

强化学习算法大火之后,必定会吸引一大批理论功底很强的牛人。这些牛人不愁吃穿,追求完美主义、又有很强的数学技巧,所以在强化学习这个理论还几乎是空白的领域,他们必定会建功立业,名垂千史。该方向的代表作如基于深度能量的策略方法,值函数与策略方法的等价性等。

第四,强化学习算法与脑科学、认知神经科学、记忆的联系会更紧密。

脑科学和认知神经科学一直是机器学习灵感的源泉,这个源泉往往会给机器学习算法带来革命性的成功。人们对大脑的认识还很片面,随着脑科学家和认知神经科学家逐步揭开大脑的神秘面纱,机器学习领域必定会再次受益。这个流派应该是以DeepMind和伦敦大学学院为首,因为这些团体里面不仅有很多人工智能学家还有很多认知神经科学家。该方向的代表作如DeepMind关于记忆的一列论文。

0 人点赞