总计10785字,预计阅读时间30分钟
文章目录
第一章:强化学习是什么?
前言
对于初学者来说,第一章肯定是要讲强化学习到底是一个什么东西,如果已经了解的话,可以直接跳过。原作的内容非常详实,我在这里提炼作者的观点,并给出一些自己的理解。这章不涉及代码,主要是一些概念的理解的东西。如果你觉得看原文很繁琐,也可以考虑看一下我写的这一篇。
首先强化学习它是属于机器学习的一个子类,是属于机器学习的范畴。强化学习可以随着时间的推移自动学习最佳决策,这让它在最近几年,在许多科学和工程领域活跃起来。
机器学习还包括了有监督学习和无监督学习,下面主要分三点讲:
- 强化学习(后面用RL代替)与其他机器学习类别(后面用ML代替):有监督学习和无监督学习,之间的关系;
- RL的主要形式是什么以及它们如何相互关联;
- RL的理论基础——马尔科夫决策过程(MDP)
1. RL与有监督和无监督学习的区别
这个内容在一般的介绍强化学习的书上都会比较详细的说明。在这里简要说明一下。
有监督学习,这是研究最多,最著名的机器学习问题。它的基本问题是,在给定一组示例对的情况下,如何自动构建一个将某些输入映射到某些输出的函数?用这些术语听起来很简单,但是问题包括许多棘手的问题,而计算机直到最近才开始成功地解决这些问题。有监督学习问题的例子很多,包括以下内容:
- 文字分类:是否为垃圾邮件
- 图像分类和物体定位:此图像是否包含猫,狗或其他东西的图片
- 回归问题:给定天气传感器的数据,预测明天的天气
- 情绪分析:此评论的客户满意度水平是多少
以上问题有一个共同点:从“ground truth”的数据源提供的已知答案中来学习。
在另一个极端,我们有所谓的无监督学习,它假设没有监督并且没有为我们的数据分配已知的标签。主要目的是学习手头数据集的一些隐藏结构。这种学习方法的一个常见示例是数据聚类。当我们的算法尝试将数据项组合到一组可以揭示数据关系的簇时,就会发生这种情况。例如,您可能想要查找相似的图像或具有常见行为的客户端。
另一种越来越受人们欢迎的无监督学习方法是生成对抗网络(GAN)。当我们有两个相互竞争的神经网络时,第一个网络正试图生成伪造的数据来欺骗第二个网络,而第二个网络正试图从数据集中采样的数据中区分出人工生成的数据。随着时间的流逝,这两个网络都通过捕获数据集中的细微特定模式而变得越来越熟练。
RL是第三个阵营,介于完全监督和完全缺少预定义标签之间。一方面,它使用许多完善的监督学习方法,例如用于函数逼近,随机梯度下降和反向传播的深度神经网络来学习数据表示。另一方面,它通常以不同的方式应用它们。
在这一章的后面,我们将探索RL方法的具体细节,包括严格数学形式的假设和抽象。
在探索RL的细节之前,说一下RL面临的三个困境
- 首先要注意的是,RL中的观察(observation)取决于代理(agent)的行为(behavior),并且在某种程度上是这种行为的结果。如果代理人决定做低效率的事情,那么观察将不会告诉你它做错了什么以及应该采取什么措施来改善结果(代理人始终会得到负面反馈)。如果代理人固执己见并不断犯错,那么这种观察就会给人一种错误的印象,那就是没有办法获得更大回报,life is suffering,这可能是完全错误的。
- 第二个困境是,代理人(agent)不仅需要利用其学到的知识(exploitation),而且还需要积极探索环境(exploration),因为也许做不同的事情会大大改善结果。问题在于,过多的探索也可能会严重降低奖励(更不用说代理商实际上可以忘记以前学到的东西了),因此我们需要以某种方式在这两项活动之间找到平衡。这种**探索-开发困境(exploration-exploitation dilemma)**是RL中的基本问题之一。人们一直在面对这种选择,比如我应该去一个已经广为人知的地方吃饭还是尝试这家高档的新餐厅?我应该多久换一次工作?我应该学习一个新领域还是继续在我的领域工作?这些问题尚无普遍答案。
- 第三个困境在于,在采取行动后的回报可能会严重延迟。例如,在国际象棋中,游戏中途的一次强力移动可以改变胜负平衡。在学习过程中,我们需要发现这种因果关系,但是这些因果关系在时间流逝和我们的行动中很难辨别。
然而,尽管存在所有这些障碍和困境,但RL在近年来已取得了巨大的进步,并且在研究和实际应用领域中正变得越来越活跃。机器学习领域的很多顶会,RL作为关键词的越来越多,这个领域方兴未艾!
2. RL的主要形式
图中我们可以看到RL一般由5个部分组成:Agent(代理人),Environment(环境),Actions(动作),Observations(观察)和Reward(回报)组成。
Reward(回报)
让我们回到奖励的概念。在RL中,它只是我们从环境中定期获取的标量值。如前所述,奖励可以是正面的或负面的,或大或小的,但这仅仅是一个数字。奖励的目的是告诉我们的代理人表现如何。我们没有定义代理人获得奖励的频率;尽管为方便起见,在每个固定的时间戳记或在每次环境交互时都会获得奖励,但这是代理人的一生中一次或者每秒一次。对于一生一次的奖励系统,除最后一个奖励外,所有奖励均为零。
正如我所说,奖励的目的是向代理人提供有关其成功的反馈,这是RL中的核心。基本上,强化一词来自这样一个事实,即代理人所获得的回报应以积极或消极的方式加强其行为。奖励是本地(local)的,这意味着它反映了代理最近活动的成功,而不是代理人迄今为止获得的所有成功。当然,获得某项行动的丰厚回报并不意味着一秒钟后您将不会因先前的决定而面临重大后果。这就像抢劫银行一样,在您思考后果之前似乎是个好主意。代理人试图达到的目标是在其操作序列上获得最大的累积奖励。下面举出一些具体的例子,来帮忙理解:
- 金融交易:一定数量的利润是交易员买卖股票的报酬。
- 国际象棋:奖励是在游戏结束时以赢,输或平局的方式获得的。
当然,这取决于解释。例如,对我而言,在与国际象棋大师的比赛中平局将是巨大的回报。实际上,我们需要指定确切的奖励值,但这可能是一个相当复杂的表达式。例如,在国际象棋的情况下,奖励可能与对手的力量成正比。 - 大脑中的多巴胺系统:大脑的一部分(边缘系统)每次需要向大脑的其余部分发送阳性信号时都会产生多巴胺。高浓度的多巴胺会带来愉悦感,从而增强该系统认为良好的活动。不幸的是,边缘系统在其认为良好的事物(食物,繁殖和主导地位)方面是古老的,但这是一个完全不同的故事!
- 电脑游戏:它们通常会向玩家提供明显的反馈,即杀死的敌人数量或得分。请注意,在此示例中,奖励已经累积,因此,街机游戏的RL奖励应为分数的导数,即,每当有新敌人被击杀时+1,而在其他所有时间步长均为0。
- 网页导航:存在一些具有较高实用价值的问题,需要自动提取Web上可用的信息。搜索引擎通常会尝试解决此任务,但是有时,要获取所需的数据,您需要填写一些表格或浏览一系列链接或完整的验证码,这对于搜索而言可能很困难。对于那些任务,有一种基于RL的方法,其中奖励是您需要获得的信息或结果。
- 神经网络(NN)架构搜索:RL已成功应用于NN架构优化领域,其目的是通过调整层数或其参数,添加额外的旁路连接或在某些数据集上获得最佳性能指标对NN体系结构进行其他更改。在这种情况下,奖励是性能(准确性或显示NN预测的准确性的其他度量)。
- 训练狗:如果你曾经尝试训练狗,那么你知道每次执行要求的操作时都需要给它一些美味(但不要过多)。当宠物不遵从你的命令时,通常会对其稍加惩罚(负奖励),尽管最近的研究表明,这种方法不如正奖励有效。
- 学校打分机制:我们所有人都在这里有经验!打分机制是一种奖励系统,旨在向学生提供有关其学习的反馈。
这样的例子还是有许多的,可以将RL人为的注入我们周围的许多实际问题中来。
The Agent(代理人)
代理人是指通过执行某些操作,进行观察并最终获得回报,并与环境互动的人或事物。在大多数实际的RL场景中,代理是我们的软件程序,它以某种或多或少有效的方式解决某些问题。对于我们前面列举的几个示例,代理人分别如下:
- 金融交易:对订单执行做出决定的交易系统或交易者
- 国际象棋:玩家或者电脑程序
- 多巴胺系统:大脑本身,它根据感官数据,决定这是否是一种良好的体验。
- 电脑游戏:喜欢游戏或计算机程序的玩家。
(安德烈·卡帕蒂(Andrej Karpathy)曾在推特上发文说:“我们本应让AI完成所有工作,然后玩游戏,但是我们完成所有工作,而AI在玩游戏!”)
- 网页导航:软件程序,告诉浏览器单击哪个链接,将鼠标移至何处或输入哪些文本。
- 神经网络(NN)架构搜索:控制正在评估的NN具体架构的软件。
- 训练狗:训犬师,他对动作(进食、惩罚)做出决定。
- 学校打分机制:学生
The Environment(环境)
环境是除代理人之外的所有事物。从最一般的意义上讲,它是宇宙的其余部分,但这有点过分,甚至超过了未来的计算机的容量,因此我们通常在这里遵循一般意义。
代理与环境的通信仅限于奖励(从环境中获得),动作(由代理执行并提供给环境)和观察(代理从环境中获得的奖励以外的一些信息)。我们已经讨论了奖励,因此接下来让我们讨论一下动作和观察。
注;环境的具体例子在observation那一节会一起解释
Actions(动作)
动作是代理人可以在环境中执行的操作。例如,动作可以是游戏规则(如果是游戏)或做作业(在学校的情况下)允许的动作。它们既可以简单地只做一步移动,也可以复杂到填写一张复杂的表格(包含各种信息)。
在RL中,我们区分两种类型的动作——离散动作(discrete)或连续动作(continuous)。
离散动作形成了代理人可以执行的有限的互斥集合,例如向左或向右移动;
连续动作具有一定的附加代价,例如汽车的动作使车轮具有一定的转向角度和方向。不同的角度可能会在一秒钟后导致不同的情况,因此仅转动方向盘绝对是不够的。
Observations(观察)
对环境的观察形成了代理人的第二个信息渠道,第一个是奖励。您可能想知道为什么我们需要一个单独的数据源,答案是方便。观察是环境为代理人提供的信息,其中说明了代理人周围的情况。
观察结果可能与即将到来的奖励有关(例如,看到有关付款的银行通知),也可能无关。观察甚至可以包含某种模糊或模糊形式的奖励信息,例如计算机游戏屏幕上的分数。分数只是个像素,但是我们有可能将其转换为奖励值。对于现代DL(深度学习)来说,这也很好处理了。
另一方面,奖励不应被视为次要的或不重要的事情——奖励是驱动代理学习过程的主要力量。如果奖励是错误的,嘈杂的或偏离主要目标的,则培训很可能会朝错误的方向发展。
区分环境状态(environment’s state)和观察结果也很重要。环境的状态可能包括宇宙中的每个原子,这使得无法测量与环境有关的所有事物。即使我们在大多数情况下将环境的状态限制为足够小,也将无法获得有关该状态的完整信息,否则我们的测量结果将包含噪声。不过,这完全没问题,并且创建了RL是为了支持此类情况。让我们返回一组示例以了解不同之处:
- 金融交易:在这里,环境是整个金融市场以及所有影响金融市场的因素。这包含巨大的信息量,例如最新消息,经济和政治状况,天气,食品供应和Twitter趋势。即使你今天决定留在家里,也可能会间接影响世界的金融体系(如果你相信“蝴蝶效应”)。但是,我们的观察仅限于股价,新闻等。我们无权访问大多数环境状态,否则会使问题更加复杂。
- 国际象棋:这里的环境是你的棋盘加上你的对手,其中包括他们的国际象棋技巧,情绪,大脑状态,选择的战术等等。观察就是你所看到的(你当前的国际象棋位置),但是在某些游戏级别上,心理学知识和阅读对手情绪的能力可能会增加你获胜的几率。
- 多巴胺系统:这里的环境是你的大脑加上您的神经系统,器官的状态以及您可以感知的整个世界。观察是大脑的内部状态,是来自你的感官的信号。
- 电脑游戏:在这里,环境是计算机的状态,包括所有内存和磁盘数据。对于联网游戏,你需要包括其他计算机以及它们与你的计算机之间的所有Internet基础结构。观察结果仅是屏幕的像素和声音。
这些像素不是很小的信息,有人计算得出,可能的中等大小图像(1024×768)的总数显着大于我们银河系中的原子数),但是整个环境状态肯定更大。
- 网页导航:这里的环境是Internet,包括我们的代理所使用的计算机与Web服务器之间的所有网络基础结构,Web服务器是一个非常庞大的系统,其中包含数百万个不同的组件。通常,观察结果是在当前导航步骤中加载的网页。
- 神经网络(NN)架构搜索:在此示例中,环境相当简单,并且包括执行特定NN评估的NN工具包以及用于获取性能指标的数据集。与Internet相比,这看起来像一个很小的玩具环境。观察结果可能有所不同,并包含一些有关测试的信息,例如损耗收敛动态(loss convergence dynamics)或从评估步骤获得的其他指标。
- 训练狗:在这里,环境就是你的狗(包括几乎无法观察到的内在反应,情绪和生活经历)以及周围的一切,包括其他狗,甚至是藏在灌木丛中的猫。观察是来自你的感官和记忆的信号。
- 学校打分机制:这里的环境是学校本身,国家的教育制度,社会和文化遗产。观察结果与训练狗的情况相同,即学生的感官和记忆力。
这是我们的场景,在本书的其余部分中我们将继续进行研究。你已经注意到RL模型非常灵活和通用,并且可以应用于各种场景。在深入探讨RL模型的细节之前,现在让我们看一下RL与其他学科之间的关系。
当然,除了图中列出的,还有许多其他领域可以与RL相关或相关。下图中显示了最重要的内容,其中包括六个大的领域,这些领域在与决策相关的方法和特定主题上彼此重叠(显示在内部的灰色圆圈内)。
RL位于所有相关但仍然不同的科学领域的交汇处,它是如此的通用和灵活,可以从这些不同的领域中获取最佳的可用信息:
- ML:RL是ML的一个子领域,它从ML借用了很多机理,技巧和技术。基本上,RL的目标是了解在给定不完整观察数据的情况下代理人应如何表现。
- 工程(特别是optimal control):这有助于采取一系列最佳操作来获得最佳结果。
- 神经科学:我们以多巴胺系统为例,结果表明人脑的行为与RL模型类似。
- 心理学:这研究了在各种条件下的行为,例如人们的反应和适应方式,这与RL主题很接近。
- 经济学:重要主题之一是如何在信息不完善和现实世界不断变化的条件下最大限度地提高回报。
- 数学:这适用于理想化的系统,并且还非常重视在运筹学领域中寻找并达到最佳条件。
通过以上分析,你会发现强化学习是目前为止最为接近人工智能的终极目标——强人工智能(Artificial General Intelligence)
在本章的下一部分,您将熟悉RL的理论基础,这将使开始着手解决RL问题的方法成为可能。接下来的部分对于理解本书的其余部分很重要。
3. RL的理论基础
在本节中,我将向你介绍我们刚刚讨论的奖励(reward),代理人(agent),动作(action),观察(observation)和环境(environment)的数学表示形式和表示法。然后,将其作为基础,我们将探索RL语言的二阶概念,包括状态(state),情节(episode),历史(history),价值(value)和收益(gain),这将在本书稍后的部分中重复使用以描述不同的方法。
马尔科夫决策过程(Markov Decison Processes)MDP
关于MDP,一般是在信息工程和计算机科学领域研究的内容,有专门的书籍很详细的介绍马尔科夫决策过程。在这里我做简要的介绍,让你理解MDP到底是一个什么东西,并且为什么可以作为RL的理论基础。
在讲MDP之前,先得说一下MP(Markov Processes)——即马尔科夫过程,和加了奖励之后变为MRP(Markov Reward Processes),再进一步,加上动作,就可以自然而然的到MDP。从已知推及未知,虽然不是一等的学习方法,但对于理论的解释总是一定程度上能让大多数理解。一等的学习方法如同种植一棵树,不停的滋养其树根,而不是对枝叶的装饰。
马尔科夫过程(MP)
让我们从Markov家族中最简单的孩子开始:MP,也称为Markov链。假设你面前有一些只能观察的系统。你观察到的称为状态,系统可以根据某些动力学定律在状态之间切换。同样,你不能影响系统,而只能观察状态的变化。
系统的所有可能状态形成一个称为状态空间的集合。对于MP,我们要求这组状态是有限的(但是为了补偿这种限制,状态可能会非常大)。你的观察结果形成一个状态序列或一条链(这就是为什么MP也被称为Markov链)的原因。例如,查看某个城市的最简单的天气模型,我们可以观察到当天是晴天还是下雨天,这是我们的状态空间。随着时间的推移,一系列观察形成了一系列状态,例如[晴天,晴天,雨天,晴天……],这被称为历史。
要将这样的系统称为MP,它需要满足Markov性,这意味着将来任何状态的系统动力学都仅取决于该状态。Markov性的要点是使每个可观察状态,自成体系,可以描述系统的未来情况。换句话说,马尔可夫性要求系统的状态彼此可区分且唯一。在这种情况下,只需要一个状态就可以对系统的未来动态进行建模,而不是整个历史或最后N个状态。
在我们的上面天气的示例中,Markov性将我们的模型限制为仅代表晴天和多雨的可能性相同的情况,而不管我们过去看过多少晴天。这不是一个非常现实的模型,因为根据常识,我们知道明天下雨的机会不仅取决于当前的状况,还取决于许多其他因素,例如季节,纬度以及山海的存在附近。最近证明,即使太阳活动也对天气有重大影响。因此,我们的示例确实很幼稚,但是了解限制并做出有意识的决定很重要。
当然,如果我们想使模型更复杂,我们总是可以通过扩展状态空间来做到这一点,这将使我们能够以更大的状态空间为代价在模型中捕获更多的依赖关系。例如,如果你要分别捕获夏季和冬季下雨天的概率。
在这种情况下,您的状态空间将为[晴天+夏季,晴天+冬季,下雨+夏季,下雨+冬季],依此类推。
由于您的系统模型符合Markov属性,因此您可以使用过渡矩阵捕获过渡概率,过渡矩阵是大小N×N的方阵,其中N是模型中的状态数。矩阵中行i和列j中的每个单元格都包含系统从状态i转换为状态j的概率。
例如,在我们的晴天/雨季示例中,转换矩阵可以如下:
再举一个例子:
这是一个在美国的上班族的状态转换图。
根据上图的转换矩阵可得下面的转换图(百分数代表概率):
注意每个状态向外箭头的和为1.
我们也可以用episodes(情节)来表示如下:
马尔科夫奖励过程(Markov Reward Processes:MRP)
马尔科夫奖励过程就是在马尔科夫过程的基础上加上每一步的奖励,对于上面的介绍的过程,给出一个直观理解的图如下:
图中黑色圈为转移概率,橘色圈则为每一步的奖励。
我们可以直观的把某一步奖励定义为:
其中,
γ
\gamma
γ为一个0到1之间的数。
然而上式对于每一个状态的奖励计算特别繁琐,而且稳定性很差(每一次计算的结果都可能不一样),所以常用以下的数学期望来代替,称为状态的价值(value of the state):
下面我们以以上的具体例子说明:
假设
γ
=
0
\gamma=0
γ=0的情况,四个状态的价值如下:
可以看到“computer”的价值最大,为2.8。
关于 γ \gamma γ为0到1之间(不包括0)的情况会在之后说(涉及贝尔曼方程,这是最优控制的知识,所以也进一步说明了强化学习方法的诞生,是多个领域以及多学科交叉的结果)。
动作
前面所说的马尔科夫过程,可以表示成如下图的形式:
行表示的是目标状态,列表示源状态。
马尔科夫决策过程则必须包含第三维:动作(action)
其中转移概率类似于条件概率形式,也就是说选择不同的动作,转移到target state的概率也不相同,这符合现实世界的情况。所以要想学好强化学习,概率论也是不可或缺的知识点。
策略
大部分的策略是一个如下的概率分布:
π ( a ∣ s ) = P [ A t = a ∣ S t = s ] \pi(a|s)=P[A_t=a|S_t=s] π(a∣s)=P[At=a∣St=s]
即为在某一状态下,采取某一些动作的概率分布。
如果Policy(策略)是固定的话,那么马尔科夫决策过程(MDP)则会降级为马尔科夫奖励过程(MRP)
后记
这一章主要是一些概念的讲解,尽量用一些通俗易懂的话和具体的例子来帮助大家理解。下一章会主要讲一些简单的可实现的代码。敬请期待!