强化学习 第7章

第七章
n-step引导

在本章中,我们统一了蒙特卡罗(MC)方法和前两章中介绍的one-step临时(TD)方法。 MC方法和one-step TD方法都不是最好的。在本章中,我们将介绍n-step TD方法,这个方法概括了两种方法,以便可以根据需要平滑地从一种方法转换到另一种方法,以满足特定任务的需求。n-step方法在一端采用MC方法,在另一端采用one-step TD方法。最好的方法通常介于两个极端之间。
另一种看待n-step方法的好处的方法是让它们摆脱时间步骤的暴政。使用one-step TD方法,同一时间步骤确定可以更改操作的频率以及完成引导的时间间隔。在许多应用程序中,人们希望能够非常快速地更新动作以考虑已经发生变化的任何事情,但是如果引导在一段时间内发生了重大且可识别的状态变化时,则引导效果最佳。使用one-step TD方法,这些时间间隔是相同的,因此必须做出妥协。n-step方法使bootstrapping能够在多个步骤中发生,使我们摆脱单一时间步骤的暴政。
n步方法的概念通常用作eligibility traces(第12章)算法思想的介绍,它可以同时实现多个时间间隔的自举。 在这里,我们反过来考虑n步引导的想法,将资格跟踪机制的处理推迟到以后。 这使我们能够更好地分离问题,在更简单的n步设置中处理尽可能多的问题。
像往常一样,我们首先考虑预测问题,然后考虑控制问题。 也就是说,我们首先考虑n步方法如何帮助预测作为固定策略的状态函数的回报(即,估计vπ)。 然后我们将想法扩展到行动价值和控制方法。
7.1 n步TD预测
蒙特卡罗和TD方法之间的方法空间是什么?考虑使用π生成的样本集估计vπ。蒙特卡罗方法基于从该状态到episode结束的观察到的奖励的整个序列来执行每个状态的更新。另一方面,一步法TD方法的更新仅基于下一个奖励,一步之后从状态值引导作为剩余奖励的代理。然后,一种中间方法将基于中间数量的奖励执行更新:多于一个,但是在终止之前少于所有奖励。例如,两步更新将基于前两个奖励以及两个步骤后的状态估计值。
同样,我们可以进行三步更新,四步更新等。图7.1显示了vπ的n步更新频谱的备份图,左侧是一步TD更新,右侧是直到最后终止的Monte Carlo更新。
在这里插入图片描述
图7.1:n步方法的备份图。 这些方法形成从一步TD方法到蒙特卡罗方法的范围。
使用n步更新的方法仍然是TD方法,因为它们仍然根据它从后来的估计中如何变化来改变先前的估计。 现在后来的估计不是一步之后,而是后来的n步。 时间差在n个步骤上延伸的方法称为n步TD方法。 前一章介绍的TD方法都使用了一步更新,这就是我们称之为一步法TD方法的原因。
更正式地,考虑状态St的估计值的更新,作为状态奖励序列St,Rt + 1,St + 1,Rt + 2,…,RT,ST(省略动作)的结果。 我们知道在蒙特卡洛更新中,vπ(St)的估计值会在完全返回的方向上更新:
在这里插入图片描述
其中T是剧集的最后一个步骤。 我们将此数量称为更新的目标。 而在蒙特卡洛更新目标是返回,在一步更新中,目标是第一个奖励加上下一个状态的折扣估计值,我们称之为一步返回:
在这里插入图片描述
这里的Vt:S→R是vπ的t时刻的估计值。 Gt:t + 1上的下标表示它是时间t的截断回报,使用奖励直到时间t + 1,折扣估计γVt(St + 1)取代其他项γRt+ 2+γ2Rt+3 +•••+γT-t-1RT的完全返回,如前一章所述。 我们现在的观点是,这个想法在经过两个步骤之后就像在一个步骤之后一样有意义。 两步更新的目标是两步返回:在这里插入图片描述
现在γ2Vt+1(St+2)纠正了条款γ2Rt+3 +γ3Rt+4 +…+ γT-t-1RT的缺失。 同样,任意n步更新的目标是n步返回:在这里插入图片描述
对于所有n,t使得n≥1和0≤t<T-n。 所有n步返回可以被认为是完全返回的近似值,在n个步骤之后被截断,然后通过Vt+n-1(St+n)校正剩余的缺失项。 如果t+n≥T(如果n步返回延伸到或超出终止),那么所有缺失的项都被视为零,并且n步返回被定义为等于普通的完全返回(Gt:t + n= Gt,如果t+n≥T)。
请注意,n> 1的n步返回涉及将来的奖励以及在从t到t + 1转换时不可用的状态。在看到Rt + n和计算Vt + n-1之后,真正的算法才能使用n步返回。 这些可用的第一次是t + n。 因此,使用n步返回的自然状态值学习算法是
在这里插入图片描述
而所有其他状态的值保持不变:Vt + n(s)= Vt + n-1(s),对于所有s≠ St。我们将此算法称为n步TD。请注意,在每集的前n-1步中没有任何变化。为了弥补这一点,在剧集结束后,终止后和开始下一集之前,会进行相同数量的额外更新。完整的伪代码在下一页的框中给出。
在这里插入图片描述
练习7.1在第6章中,我们注意到如果值估计值不是逐步变化,则蒙特卡罗误差可写为TD误差之和(6.6)。证明(7.2)中使用的n步误差也可以写为总和TD误差(如果值估计值没有改变则再次),推广早期结果。
练习7.2(编程)使用n步法,值估计值会逐步变化,因此使用TD误差之和(参见上一个练习)代替(7.2)中的误差的算法实际上是略有不同的算法。它会是一个更好的算法还是更糟糕的算法?设计和编写一个小实验来根据经验回答这个问题。
n步返回使用值函数Vt + n-1来校正超出Rt + n的缺失奖励。 n阶回归的一个重要特性是,在最恶劣的意义上,它们的期望被保证是比Vt+n-1更好的vπ估计。也就是说,预期的n步返回的最差错误保证小于或等于Vt + n-1下最差错误的γn倍:
在这里插入图片描述
对于所有n≥1.这称为n步返回的错误减少属性。由于误差减少属性,可以正式显示所有n步TD方法在适当的技术条件下收敛到正确的预测。因此,n步TD方法形成一系列好的方法,一步法TD方法和蒙特卡罗方法作为极端成员。
例7.1:随机游走的n步TD方法 考虑对例6.2(第125页)中描述的5-状态随机游走任务使用n步TD方法。假设第一集直接从中心状态C向右进行,通过D和E,然后在右边终止,返回1.回想所有状态的估计值从中间值开始V(s)= 0.5。作为这种经验的结果,一步法只改变最后一个状态V(E)的估计值,该值将增加到1,观察到的返回值。另一方面,两步法将增加终止前两个状态的值:V(D)和V(E)都将增加到1.三步法或任何n> 2的n步法,将所有三个访问状态的值增加到1,全部增加相同的量。
哪个n的值更好?图7.2显示了一个较大的随机游走过程的简单经验测试的结果,其中有19个状态而不是5个(左边是a-1个结果,所有值都初始化为0),我们在此章节使用它作为运行示例。显示了n步TD方法的结果,其中n和α的值范围。垂直轴上显示的每个参数设置的性能度量是19个状态的情节结束时预测与其真实值之间的平均平方误差的平方根,然后是前10集中的平均值和整个实验重复100次(所有参数设置都使用相同的步行组)。请注意,中间值为n的方法效果最好。这说明了TD和蒙特卡罗方法对n步方法的推广能够比两种极端方法中的任何一种方法表现更好。
在这里插入图片描述
练习7.3你认为为什么在本章的例子中使用了更大的随机游走任务(19个状态而不是5个)?较小的步行会将优势转移到不同的n值吗?在较大的步行中左侧结果从0变为-1怎么样?你认为这对n的最佳价值有任何不同吗? ⇤

7.2 n-step Sarsa
如何使用n步方法不仅用于预测,还用于控制?在本节中,我们将展示如何以简单的方式将n步方法与Sarsa结合以产生一种策略上的TD控制方法。 Sarsa的n步版本我们称之为n步Sarsa,而前一章中提到的原始版本我们称之为一步Sarsa或Sarsa(0)。
主要思想是简单地切换动作状态(状态 - 动作对),然后使用ε-greedy策略。n步Sarsa的备份图(如图7.3所示),就像n步TD一样(图7.1) ),是交替状态和动作的字符串,除了Sarsa所有都以动作而不是状态开始和结束。我们根据估计的动作值重新定义n步返回(更新目标):
在这里插入图片描述
而所有其他状态的值保持不变:Qt+ n(s,a)= Qt+n-1(s,a),对于所有s,a使得s ≠ St或a≠At。这就是所谓的Sarsa的算法。 伪代码显示在下一页的框中,图7.4给出了与一步法相比可以加速学习的原因示例。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
练习7.4证明Sarsa(7.4)的n步返回可以完全按照新的TD误差编写,如
在这里插入图片描述
那么预期的Sarsa呢? 预期Sarsa的n步版本的备份图显示在图7.3的最右侧。 它由一系列样本动作和状态线性组成,就像在n步Sarsa中一样,除了它的最后一个元素是所有动作可能性的分支,一如既往地通过它们在π下的概率加权。 该算法可以用与n步Sarsa(上面)相同的等式来描述,除了将n步返回重新定义为
在这里插入图片描述
在本书的其余部分中,使用预期的近似值来开发许多动作值方法。 如果s是终端,则其预期的近似值被定义为0。

7.3 n步off-policy学习
回想一下,off-policy学习正在学习一项政策π的价值函数,同时遵循另一项政策,b。 通常,π是当前行动-价值函数估计的贪婪政策,b是一个更具探索性的政策,也许是ε-greedy。为了使用b中的数据,我们必须考虑到两个政策之间的差异, 使用它们采取所采取行动的相对概率(参见第5.5节)。在n步法中,返回是在n个步骤上构建的,因此我们对这些n个动作的相对概率感兴趣。例如, 简单的off-policy版本的n步TD,时间t的更新(实际在时间t + n进行)可以简单地用ρt:t+n-1加权:
在这里插入图片描述
其中ρt:t+n-1称为重要性抽样比率,是两个政策中采用从At到At+n-1的n个动作的相对概率(参见方程5.3):
在这里插入图片描述
例如,如果任何一个动作永远不会被π占用(即,π(Ak | Sk)= 0),那么n步返回应该被赋予零权重并被完全忽略。 另一方面,如果偶然以比b更大的概率采取行动π,那么这将增加否则将给予回报的权重。 这是有道理的,因为该动作是π的特征(因此我们想要了解它),但很少被b选择,因此很少出现在数据中。 为了弥补这一点,我们必须在它发生时加权重。 请注意,如果这两个策略实际上是相同的(在策略情况下),则重要性采样率始终为1.因此,我们的新更新(7.9)概括并可以完全取代我们之前的n步TD更新。 同样,我们之前的n步Sarsa更新可以完全被简单的off-policy形式取代:
在这里插入图片描述
对于0≤t≤T。注意,此处的重要性采样率比n步TD(7.9)晚一步开始和结束。 这是因为我们正在更新状态-动作对。 我们不必关心我们选择行动的可能性; 现在我们选择了它,我们希望从发生的事情中充分学习,只对后续行动进行重要性采样。 完整算法的伪代码如下面的框所示。
在这里插入图片描述
n步预期Sarsa的off-policy版本将使用与上述相同的更新为n步Sarsa,除了重要性采样率将少一个因素。也就是说,上面的等式将使用ρt+1:t+n-1而不是ρt+1:t+n,当然它将使用n步返回(7.7)的预期Sarsa版本。这是因为在预期的Sarsa中,在最后一个状态中考虑了所有可能的行为;实际采取的那个没有效果,不需要纠正。

*7.4 具有控制变量的Per-decision方法
上一节中介绍的多步骤策略方法简单且概念清晰,但可能效率最高。更复杂的方法将使用per-decision重要性抽样的想法,如第5.9节中介绍的那样。要理解这种方法,首先要注意普通的n步返回(7.1),就像所有返回一样,可以递归写入。对于以地平线h结束的n个步骤,可以写入n步返回
。。。。。。

7.5没有重要性抽样的off-policy学习:n步树备份算法
是否可以在没有重要抽样的情况下进行策略学习? 第6章中的Q-learning和Expected Sarsa针对一步式案例进行了此操作,但是是否有相应的多步算法? 在本节中,我们将介绍一种称为树备份算法的n步方法。
右侧显示的3步树备份备份图表明了该算法的思想。向下中央脊柱并在图中标记为三个样本状态和奖励,以及两个样本动作。这些是表示在初始状态-动作对St,At之后发生的事件的随机变量。悬挂在每个状态两侧的是未选择的动作。 (对于最后一个状态,所有操作都被认为尚未被选中。)因为我们没有未选择操作的样本数据,所以我们引导并使用它们的值估计值来形成更新目标。这略微扩展了备份图的概念。到目前为止,我们总是将图表顶部节点的估计值更新为一个目标,其中包括沿途的奖励(适当打折)和底部节点的估计值。在树备份更新中,目标包括所有这些内容以及悬挂在各个层面的悬空操作节点的估计值。这就是它被称为tree-backup更新的原因;它是整个估计动作值树的更新。在这里插入图片描述
更确切地说,更新来自树的叶节点的估计动作值。内部的动作节点对应于所采取的实际动作,不参与。每个叶节点对目标的贡献与其在目标策略π下发生的概率成比例。因此,每个第一级动作a的权重为π(a | St + 1),除了实际采取的动作,At + 1,根本没有贡献。它的概率π(At + 1 | St + 1)用于加权所有第二级动作值。因此,每个未选择的第二级动作a’贡献权重π(At + 1 | St + 1)π(a’| St + 2)。每个第三级动作都有权重π(At + 1 | St + 1)π(At + 2 | St + 2)π(a’’ | St + 3),依此类推。就好像图中动作节点的每个箭头都被动作在目标策略下被选中的概率加权,如果动作下面有一棵树,则该权重适用于树中的所有叶节点。
我们可以将3步树备份更新视为由6个半步骤组成,在从动作到后续状态的样本半步骤之间交替,以及从该状态考虑所有可能的动作及其概率的预期半步骤根据政策发生。
现在让我们开发n步树备份算法的详细方程。 一步返回(目标)与预期的Sarsa相同,
在这里插入图片描述
对于0≤t<T,而所有其他状态-动作对的值保持不变:Qt + n(s,a)= Qt + n-1(s,a),对于所有s,a使得s≠St或a≠At。 该算法的伪代码显示在下一页的框中。
练习7.11 证明如果近似动作值不变,则树备份返回(7.16)可以写为基于期望的TD错误的总和:
在这里插入图片描述
在这里插入图片描述
*7.6 统一算法:n步Q(σ)
到目前为止,在本章中我们已经考虑了三种不同类型的动作值算法,对应于图7.5中所示的前三个备份图。 n步Sarsa具有所有样本转换,树备份算法将所有状态 - 动作转换完全分支而不进行采样,并且n步预期Sarsa具有除最后一个状态到动作之外的所有样本转换,这是完全分支,具有预期值。这些算法在多大程度上可以统一?
图7.5中的第四个备份图表明了统一的一个想法。这是一个想法,人们可以逐步决定是否想要将操作作为样本,如在Sarsa中,或者考虑对所有操作的期望,如树备份更新。然后,如果一个人总是选择采样,那么就会获得Sarsa,而如果一个人选择永远不会采样,那么就会得到树备份算法。预期的Sarsa就是这样一种情况,即除了最后一步之外,所有步骤都选择采样。
在这里插入图片描述
。。。。。。

7.7总结
在本章中,我们开发了一系列时间差异学习方法,它们位于前一章的一步法TD方法和前一章的蒙特卡罗方法之间。 涉及中间量引导的方法很重要,因为它们通常比任何一个极端都要好。
我们在本章中的重点是n步方法,它们展望下一个n奖励,状态和行动。右边的两个4步备份图总结了大多数介绍的方法。所示的状态值更新用于具有重要性采样的n步TD,并且动作值更新用于n步Q(σ),其概括了预期的Sarsa和Q学习。所有n步方法都涉及在更新之前延迟n个时间步骤,因为只有这样才能知道所有必需的未来事件。另一个缺点是它们涉及每个时间步骤比先前方法更多的计算。与一步法相比,n步法还需要更多内存来记录最后n个时间步骤中的状态,动作,奖励以及有时其他变量。最后,在第12章中,我们将看到如何使用合格性跟踪以最小的内存和计算复杂性实现多步TD方法,但除了一步方法之外总会有一些额外的计算。这样的成本非常值得为逃避单一时间步骤的暴政而付出代价。在这里插入图片描述
尽管n步法比使用合格性痕迹的方法更复杂,但它们具有概念上清晰的巨大好处。我们试图通过在n步案例中开发两种off-policy学习方法来利用这一点。一种是基于重要性抽样在概念上很简单,但可能具有很大的差异。如果目标和行为策略非常不同,它可能需要一些新的算法思想才能高效和实用。另一种是基于树形备份更新,是Q学习到具有随机目标策略的多步骤情况的自然延伸。它不涉及重要性采样,但是,如果目标和行为策略基本上不同,即使n很大,自举也可能只跨越几个步骤。

书目和历史评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值