资格迹是强化学习的基本机制之一。几乎所有的TD算法,都可以与资格迹结合,获得一个更加有效的一般性方法。
资格迹是时序差分方法和蒙特卡洛方法的统一。当TD方法使用资格迹来增强后,就产生了一系列的算法。蒙特卡洛方法( λ \lambda λ =1)和单步TD方法( λ \lambda λ =0)是其中的两个极端。 λ \lambda λ 取中间比取极端表现要好。资格迹也提供了一种在线实施蒙特卡洛方法的方法,并且可以在没有分幕的持续问题上使用。
资格迹 z t \mathbf{z}_t zt:一个短时记忆向量; w t \mathbf{w}_t wt:长时权重向量。当参数 w t \mathbf{w}_t wt 的一个分量参与计算并产生一个估计值时,对应的 z t \mathbf{z}_t zt 的分量会骤然升高,然后逐渐衰减。在迹归零前,如果出现了非零的TD误差,那么相应的 w t \mathbf{w}_t wt 的分量将会得到学习。迹衰减参数 λ \lambda λ 决定了迹的衰减率。
资格迹相比于 n 步算法的优势。
前向视图和后向视图。本章从现代视角介绍相关内容。
本章主要关注使用线性函数逼近的情况,此时使用资格迹的效果较好。状态聚合是线性函数逼近的特例。
n 步回报的函数逼近形式。
复合更新:用不同 n 的平均 n 步回报作为更新目标。通过平均单步与无限步的回报,可以得到一种将TD和MC结合的方式。理论上,还可以将基于经验的更新与动态规划的更新进行平均,得到一个简单的结合基于经验的更新和基于模型的更新的算法(参见第8章)。
一个复合更新只能在它的组分中最长的那个更新完成后完成(它决定了更新的延迟)。
TD( λ \lambda λ)算法可以被视为平均 n 步更新的一种特例。 λ \lambda λ-回报。当 λ \lambda λ=0 时,为单步TD更新;当 λ \lambda λ=1 时,为MC更新。
练习 12.1
练习 12.2: λ \lambda λ 确定了在更新时算法可以看多远。
The offline λ \lambda λ-return algorithm. Its overallperformance is comparable with the n-step algorithms.
目前为止,我们采用的所有算法都是前向的。
TD( λ \lambda λ) 是强化学习中最古老、使用也最广泛的算法之一。
TD( λ \lambda λ) 通过三种方式改进了the offline λ \lambda λ-return algorithm。首先它在每一步对权重向量进行更新;其次它将计算平均分配在整个过程上;第三它也适用于持续性问题。本节将介绍 the semi-gradient version of TD( λ \lambda λ) with function approximation.
基于函数逼近,资格迹是一个和权值向量同维度的向量 z t z_t zt 。相对权值向量来说,资格迹是一个短期记忆,其持续时间通常少于一幕。资格迹的唯一作用是影响权值向量。
在 TD( λ \lambda λ) 中,资格迹向量被初始化为零,然后在每一步以 γ λ \gamma \lambda γλ 衰减,并累加价值函数的梯度。资格迹记录了权重向量的哪些成分对最近的状态估值有积极或消极的贡献,其中 “最近” 是以 γ λ \gamma \lambda γλ 定义的。当一个强化学习事件出现时,我们认为这些 “痕迹” 展示了权值向量对应分量有多少 “资格” 可以接受学习过程引起的变化。我们关注的强化学习事件是每时每刻的单步TD误差。
价值函数预测的TD误差。
在 TD( λ \lambda λ) 中,权值向量每一步的更新正比于标量TD误差和资格迹向量。
半梯度 TD( λ \lambda λ) 算法。
TD( λ \lambda λ) 在时间上往回看。
λ \lambda λ=0,TD(0); λ \lambda λ=1,TD(1) 。
TD(1) 相比MC方法的优点:在线更新,在幕中立即调整智能体的行为。
比较 TD( λ \lambda λ) 算法和 offline λ \lambda λ-return 算法。在 α \alpha α 的值比最优值大时,TD( λ \lambda λ) 变差很多,甚至可能不稳定。
如果 α \alpha α 遵循随机逼近理论的条件(式2.7),那么线性 TD( λ \lambda λ) 会在同轨策略的情况下收敛。
误差边界公式。
根据公式, λ \lambda λ=1 时上界接近最小误差。然而,实际上 λ \lambda λ=1 通常是一个最差的选择。
练习 12.3:将offline λ \lambda λ-return 算法的误差项写为 TD误差的和 的形式。
练习 12.4:当 λ \lambda λ=1 时,
截断一定步数之后的序列,缺少的收益用估计值来代替。
可以通过增加计算复杂度来获得截断参数 n 过大和过小的两种好处。
一个想法:每次得到新的数据增量的同时,回到当前幕的开始重做所有更新。
The online λ \lambda λ-return algorithm:一个完全在线的算法,仅仅使用时刻 t 获取的信息确定新的权值向量。在线算法比离线算法更好,不仅仅是因为在幕中进行更新,而且也是因为权值向量获得了更多数量的有意义的更新。这是效果最好的时序差分算法,但是很复杂。
True Online TD( λ \lambda λ):比在线 TD( λ \lambda λ) 算法更加符合 online λ \lambda λ-return algorithm 的理想。
由于从 online λ \lambda λ-return algorithm 到 true online TD( λ \lambda λ) 的推导过于复杂而被省略。
这个算法被证明能够产生和 online λ \lambda λ-return algorithm 完全相同的权值向量,但是代价却没有原来昂贵。True online TD( λ \lambda λ) 的内存需求与在线 TD( λ \lambda λ) 相同,每一步的计算量增加了50%,不过总体上计算复杂度仍然是 O ( d ) O(d) O(d) 。
True Online TD( λ \lambda λ) 伪代码。
荷兰迹,累积迹和替换迹:true online TD( λ \lambda λ) 的资格迹被称为荷兰迹。荷兰迹完全取代了替换迹,它有更好的性能和更清晰的理论基础。积累迹对于荷兰迹不可用的非线性函数逼近仍有意义。
资格迹也会出现在蒙特卡洛学习中。这是书中唯一明确表明前向视图和后向视图等价性的地方。它给出了 online λ \lambda λ-return algorithm 和 true online TD( λ \lambda λ) 的等价性证明的一些味道,但要简单得多。
回顾线性版本的蒙特卡洛预测算法。采用荷兰迹的蒙特卡洛算法,这是一个增量算法,每一步的时间和内存复杂度为O(d)。它得到了和MC/LMS算法相同的结果。这说明了资格迹可以被应用于时序差分学习以外的情景。
将资格迹拓展到动作价值函数方法中。
例 12.1:资格迹的使用可以大大提升控制算法的效率。资格迹方法会从幕的开始,不同程度地更新所有的动作价值,更新程度根据时间远近衰减。采用衰减策略一般是最好的做法。
为了以最一般的形式展示最终的算法,将 自举和折扣的程度 从恒定参数推广到依赖于状态和行动的函数。
引入重要度采样。
Expected Sarsa( λ \lambda λ) algorithm.
单指令多数据流的并行计算机,传统的串行计算机。早期的计算机是串行逐位处理的,称为串行计算机。随着计算机技术的发展,现代计算机均具有不同程度的并行性1。
通过更新那些显著大于零的资格迹的值,可以对原始算法有很好的近似。
真实在线方法。增量式后向视图方法,通过推导,我们获得了增量式的非时序差分实现。
资格迹是针对长延迟的收益和非马尔可夫任务的首选方法。
调整 λ \lambda λ 的经验参考。
虽然资格迹带来了更多的计算,但是它们的学习速度显著加快。因此在数据稀缺的在线应用中,资格迹是有意义的。