PDF 物理页索引 220
文件中的第 221 页 · 印刷页码:未识别
强化学习是通过使罗茜在一系列学习片段 <sup>(27)</sup> 中采取动作来实现的,每个学习片段都包含一定数量的迭代。在每次迭代中,罗茜会先确定当前的状态,然后选择要采取的动作。如果罗茜获得了一个奖励,它就会学习到一些东西,这点我将在后文进行说明。在此处,每一个片段会持续到罗茜成功踢到球为止,那时它将得到一个奖励。这可能需要花费很长时间,就像训练一只真正的狗一样,我们必须要有耐心。
图8-2解释了这个学习过程中的第一个片段。开始时,教练将罗茜和球放置在球场的某个初始位置,罗茜面对着球[见图8-2(A)]。罗茜判定自己目前的状态为:距离球12步远。由于它还没有学到任何东西,所以目前还是一张纯洁的“白纸”,不知道应该选择哪个动作,所以它从前进、后退、踢球这三种可能的动作中随机选择了一个。我们假设它选择了后退并且后退了一步。我们可以看出后退不是一个好的选择,但请记住,我们要让罗茜自己想办法完成这项任务。
PDF 物理页索引 221
文件中的第 222 页 · 印刷页码:未识别
在第2次迭代中[见图8-2(B)],罗茜判定了它的新状态为:距离球13步远。然后它又随机选择了一个新的动作:前进。在第3次迭代中[见图8-2(C)],罗茜判定它的新状态为:距离球12步远。它又回到了原点,但罗茜甚至不知道它以前曾处于这种状态过!在最原始版本的强化学习过程中,智能体不记得它之前的状态。一般来说,记住以前的状态可能会占用大量的内存,而且事实证明这并无必要。
PDF 物理页索引 222
文件中的第 223 页 · 印刷页码:未识别
在第3次迭代中,罗茜再次随机选择动作,这次选择的是踢球,但因为它并没有踢到球,所以它没有得到奖励。它还没有学到:只有踢到球时才会得到奖励。
罗茜继续选择随机动作,在没有任何反馈的情况下,迭代多次。终于在某一时刻,让我们假设是在第351次迭代中,仅仅是由于偶然的运气,罗茜来到了球的旁边并且选择了踢球这个动作[见图8-2(D)],这个片段才算结束。于是,它得到了一个奖励并从中学到了一些东西。
罗茜学到了什么?在这里,我们采用最简单的强化学习方法来说明:在获得一个奖励后,罗茜只学到了使它立即获得奖励的那一步的状态和行为。具体而言,罗茜学到:如果它处于某种状态(如离球0步),那么采取某种动作(如踢球)是一个好主意,但这就是它学到的全部内容了。它并没有学到,若它离球0步,后退将是一个糟糕的选择,毕竟它还没有试过。它可能会认为,在那种状态下后退一步或许会获得更大的奖励呢!罗茜同样也没有学到,如果它距离球只有一步之遥,前进将会是一个不错的选择,它必须经过更多的训练才能知晓。一次性学习太多对其可能是有害的,如果罗茜在离球2步远的地方踢了一脚,我们不想让它学习到这一无效的踢球动作实际上是获得奖励的必要步骤。从人类的角度来看,我们常常会有一种“迷信”,即认为某种特定的行为将能帮助引发特定的好的或坏的结果。比如,在罗茜的例子中,我们可能以为,如果它学习到那个无效的踢球动作实际上是获得奖励的必要步骤,这将有利于它更快获得奖励,然而事实并非如此。在强化学习的过程中,这种迷信是你必须要小心避免的。
PDF 物理页索引 223
文件中的第 224 页 · 印刷页码:未识别
强化学习的一个关键概念是:在一个给定的状态下执行一个特定动作的值。状态S下动作A的值是一个数字,表示在状态S下,如果执行动作A,智能体预测最终将获得多少奖励,智能体只需执行高值的动作即可。让我解释一下,如果你当前的状态是:手里拿着一块巧克力,那么一个高值的动作就是把你的手送到嘴边,接下来的高值动作就是张开嘴巴,把巧克力放入口中并咀嚼,你得到的奖励是巧克力的美味。把手送到嘴边并不能让你立即获得这种奖励,但这一动作的方向是正确的,如果你之前吃过巧克力,你就能预测出即将获得的奖励强度。强化学习的目标是:让智能体自己学习并获得能对即将到来的奖励进行更好的预测的值,前提是智能体在采取相关行动后一直在做正确的选择。 <sup>2</sup> 正如我们将看到的,习得给定状态下特定动作的值通常需要经过许多次的试错。
罗茜在其计算机内存里用一个大表格对各种动作的值进行追踪,图8-3列出了罗茜的所有可能的状态,即它距离球的所有可能的距离,以及在每个状态下它可能的动作。给定一个状态,该状态下的每个动作都有一个值,这些数值将会随着罗茜不断学习而变得越来越能准确地预测出是否会获得奖励。这个由状态、动作和值组成的表被称为Q表(Q-table)。这种形式的强化学习有时被称为“Q学习”(Q-learning)。之所以使用字母“Q”,是因为在Q学习的原始论文中字母“V”(value,值)已被用于表示其他的内容了 <sup>3</sup> 。
PDF 物理页索引 224
文件中的第 225 页 · 印刷页码:未识别
在训练开始时,将Q表中所有初始值设为0,此时的罗茜就是一个“白板”。当罗茜在第一个片段的结尾因踢到球而获得奖励时,踢球这一动作的值在“0步距”状态下被更新为10,即奖励的值。之后,罗茜在处于“0步距”状态时可以查看Q表,发现踢球这个动作的值最高(预示着最高的奖励),于是它选择踢球而不是随机选择一个动作,这就是“学习”在这个过程中的全部含义!
第一个片段以罗茜最后踢到球而告终。现在我们进入第二个片段(见图8-4),以罗茜和球处于新位置开始[见图8-4(A)]。同以前一样,在每次迭代中,罗茜会先判定自己当前的状态,然后通过查看Q表来选择一个动作。此时,在它当前状态下所有动作的值仍然为0,目前还没有信息可以帮助它做出选择,所以罗茜仍旧随机选择了一个动作——后退,并且,在下一次迭代中,它又选择了后退[见图8-4(B)]。可见,我们对罗茜的训练还需要经历很长的过程。
PDF 物理页索引 225
文件中的第 226 页 · 印刷页码:未识别
一切都像之前一样继续进行,直到罗茜漫无目的地碰巧走到距球1步的位置[见图8-4(C)],又碰巧选择了前进,这时,罗茜发现它的脚靠近球了[图8-4(D)],并且Q表有对这种状态的说明——在它当前的状态(离球0步距)下执行一个动作(踢一脚球)预计将获得10的奖励。现在它可以利用在上一片段中习得的这个信息来选择此时要执行的动作,即踢一脚球。在这个过程中Q学习的本质是:罗茜现在能够从与它踢球紧接着的之前的状态(距球1步)中,学到关于要执行的动作(前进)的一些信息了。具体而言,在距球1步的状态下前进动作的值会在Q表中更新为较高的值,该值小于距球0步时踢一脚球这个动作的值,因为后者将直接导致获得奖励。在这里,我将该值更新为8(见图8-5)。
PDF 物理页索引 226
文件中的第 227 页 · 印刷页码:未识别
Q表现在告诉罗茜:在距球0步的状态下踢一脚球确实是非常好的选择,在距球1步的状态下执行前进的动作也几乎同样有利。当下一次罗茜发现自己处于距球1步的状态时,它将获得一些有助于判断应该采取哪种动作的信息,并可以将当下的上一步动作,即在距球2步远的状态下执行前进的动作的值进行更新。需要注意的是,这些新学到动作的值要随着步距的增加而递减,并比直接获得奖励的动作的值更低,这样才会使系统学习到一条获得实际奖励的有效途径。
强化学习持续进行,Q表中的值也逐步得到更新,一个片段接一个片段,直到罗茜最终学会从任意初始点起步都能完成踢球的任务。Q学习算法是一种为给定状态下的动作赋值的方法,包括那些不直接获得奖励但能帮助智能体经历相对较少的状态就获得奖励的动作。
PDF 物理页索引 227
文件中的第 228 页 · 印刷页码:未识别
我写了一个程序来模拟如上所述的罗茜的Q学习过程。在每一片段的开始,罗茜被放在面向球、随机步距之外(最大步距25,最小步距0)的位置。正如我在前面所提到的,如果罗茜走出了边界,程序会让它重新退回界内,每个片段都以罗茜成功踢到球结束。我发现它大约用了300个片段来学会无论从何处开始都能完美地执行这项任务。
这个“训练罗茜”的例子涵盖了强化学习的大部分要点,但我省去了强化学习研究人员在处理更复杂的任务时会面临的许多问题。 <sup>4</sup> 例如,在实际的任务中,智能体对其状态的感知常常是不确定的,不像罗茜对它自己距离球有多少步有清晰的认知。一个真正的足球机器人可能只会对此有一个粗略的距离估计,甚至不确定球场上哪个对象是足球。执行一项动作的效果也可能是不确定的。例如,机器人的前进动作可能因为地形差异而导致其移动不同的距离,或者甚至会导致机器人摔倒又或是撞上未发现的障碍物。强化学习该如何处理像这样的不确定性?
此外,智能体在每个状态下应该如何选择一个动作?一个朴素的策略是在当前状态下始终选择Q表中值最高的动作,但是这种策略存在一个问题:有可能其他还未探索过的动作将会带来更高的奖励。是应该多去探索从未尝试过的动作,还是更多地选择那些确定能带来回报的动作?比如,去饭店吃饭的时候,你是会一直点之前已经吃过并觉得还不错的菜呢,还是会尝试一些新的菜式,因为菜单里可能包含一个更好的选择?决定在多大程度上去探索新动作和在多大程度上坚持已证实有效的动作,被称为探索与坚持的平衡,如何实现这两者的适当平衡是使强化学习获得成功的一个核心问题。
PDF 物理页索引 228
文件中的第 229 页 · 印刷页码:未识别
这些是在日渐壮大的强化学习阵营中正在进行的几个研究课题的例子。正如在深度学习领域中的情况,设计成功的强化学习系统仍然是一种很难的但有时却很赚钱的技巧,只有一小部分像深度学习领域的同行一样,花费大量时间调节超参数的专家才能掌握。他们往往需要考虑以下问题:应允许系统学习多少个片段?每个片段应允许多少次迭代?一个奖励在系统中进行反向传播时应该被“打折”多少?
现实世界中的两大绊脚石
暂且不提这些问题,让我们来看下在把“训练罗茜”的例子推广到现实世界任务中的强化学习时可能出现的两块主要的绊脚石。首先是Q表,在复杂现实世界任务中,不可能定义一小组能够罗列在一个表格中的“状态”。例如,一辆自动驾驶汽车在拥挤的城市中学习驾驶,这辆汽车在给定时间的一个单独状态可能是来自其摄像头和其他传感器的全部数据。这意味着一辆自动驾驶汽车实际上面临着无数种可能的状态,通过类似于罗茜例子中的Q表来进行学习是不可行的。鉴于这一原因,大多数当下的强化学习方法使用的是神经网络而非Q表。神经网络负责学习在一个给定状态下应给动作分配什么值。具体而言,神经网络将当前状态作为输入,其输出是智能体在当前状态下能够采取的所有可能动作的估计值。网络学习的目标是将相关状态组成通用概念。例如,向前行驶是安全的或应立即停车以避免撞上一个障碍物。
PDF 物理页索引 229
文件中的第 230 页 · 印刷页码:未识别
第二块绊脚石是,在现实世界中,使用真的机器人通过许多片段来真正地执行学习过程的难度很大,甚至已经被我们简化了的罗茜案例也不可行。想象一下,你自己正在初始化一个新的片段,你要在场上来来回回地设置机器人和足球数百次,更不用说等待机器人执行每一个片段中的数百个动作了,这些都需要耗费大量的时间。此外,你可能会让机器人面临选择错误动作以至于伤害到它自身的风险,例如,踢水泥墙,或者在“悬崖”边上向前走一步。
就像我对罗茜所做的一样,强化学习的实践者几乎都会构建机器人和环境的模拟,然后在模拟世界而非在现实世界中执行所有的学习片段,我们都是这样来处理这个问题的,有时这种方法很有效。机器人已经使用模拟训练学会了行走、跳跃、抓取对象、驾驶一辆远程控制汽车,以及其他任务,这些机器人能够在不同程度上成功地将在模拟世界中学到的技能转移到现实世界中。 <sup>5</sup> 然而,环境愈复杂和不可预测,将机器人在模拟中学到的技能转移到现实世界的尝试就愈加难以成功。由于这些难点的存在,迄今为止强化学习最大的成功不是在机器人领域,而是在那些能够在计算机上进行完美模拟的领域。目前,强化学习最知名的成功是在游戏领域,这也是我们下一章的主题。