目录

强化学习(6):资格迹与 TD(λ)

从多步时序差分到资格迹

上一篇已经讨论过,多步时序差分(Temporal Difference, TD)方法之所以重要,在于它不再把价值更新严格限制在“一步奖励 + 一步后的价值估计”这种最局部的形式上,而是允许我们向后显式展开若干步真实奖励,再在第 $n$ 步接上当前的价值估计。这样一来,价值更新就不再只有两个极端:既不是只能像 TD(0) 那样只看一步,也不是只能像蒙特卡洛(Monte Carlo)方法那样一直等到整段回合结束,而是在两者之间得到了一整族更灵活的目标。

如果用状态价值的情形来表述,上一篇引入的 $n$-step 回报本质上是在回答这样一个问题:如果一步方法看到的未来太短,那么能否适当多看几步,再开始自举(Bootstrap)。 这个思路确实比一步方法更一般,也更能体现“短期真实奖励”和“后续价值估计”之间的折中。

但沿着这条思路继续往前看,很快又会遇到一个新的限制。

虽然 $n$-step 方法比一步方法更灵活,但它仍然要求我们事先固定一个步数 $n$。一旦 $n$ 被选定,之后每一次更新就都按照这个固定长度来构造目标。比如,取 $n=3$ 时,我们总是使用三步真实奖励再接一个自举项;取 $n=5$ 时,我们总是使用五步真实奖励再接一个自举项。这样做当然清晰,也便于实现,但它背后隐含着一个假设:似乎存在一个统一的步长,能够在所有状态、所有时刻都恰到好处地平衡“更新及时性”和“未来信息利用范围”。

而这件事并不总是自然成立。

一步目标的优点是更新快、在线性强,但它对未来信息的显式利用非常短;较大的 $n$-step 目标能够更直接地把较远处的奖励纳入当前更新,但同时也会带来更长的等待、更强的随机波动,以及更弱的即时性。换句话说,不同步长各自都有优点,也各自都有代价。于是这里最自然的问题就变成了:

如果不同的 $n$-step 回报各有长处,是否一定只能从中选一个?

也许真正更合理的想法不是“固定选择某一个 $n$”,而是进一步追问:能不能把多个不同步长的回报结合起来,让一步、两步、三步,直到更长步长的信息共同参与当前的学习目标构造?

这正是资格迹(Eligibility Trace)与 TD($\lambda$) 要解决的问题。

从逻辑上看,它们并不是跳出多步方法之后另起炉灶的一套新机制,而是顺着上一篇的主线继续向前推进。既然 $n$-step 方法已经说明,目标不必局限于一步,那么下一步最自然的推广就是:不再固定只使用某一个 $n$-step 回报,而是考虑把许多个不同长度的回报统一起来。

λ-return:不同 n-step 回报的加权组合

如果不希望只固定使用某一个 $n$-step 回报,那么最自然的做法就是把多个不同步长的回报组合起来,构造一个更一般的目标。

先回顾在状态价值估计中,$n$-step 回报的形式:

$$ G_t^{(n)} = r_t + \gamma r_{t+1} + \cdots + \gamma^{n-1} r_{t+n-1} + \gamma^n V_\pi(s_{t+n}) $$

它表示:先向后展开 $n$ 步真实奖励,再在第 $n$ 步接上一个自举项 $V_\pi(s_{t+n})$。

既然每一个 $G_t^{(n)}$ 都可以看成一种合理的目标,那么进一步就可以考虑:不是从中选一个,而是把

$$ G_t^{(1)},\; G_t^{(2)},\; G_t^{(3)},\; \dots $$

按某种权重加起来,形成新的目标。

这就引出了 $\lambda$-return。它的思想是:对不同步长的 $n$-step 回报做衰减加权,使较短步长和较长步长的信息都能够进入当前更新目标。常见写法为

$$ G_t^\lambda = (1-\lambda)\sum_{n=1}^{\infty}\lambda^{n-1} G_t^{(n)} $$

其中

$$ 0 \le \lambda \le 1 $$

参数 $\lambda$ 用来控制不同步长回报的相对权重,因此它通常被称为 迹衰减参数 或更一般地理解为一种“多步混合系数”。

将这个式子拆开来看:

  • $G_t^{(1)}$ 的权重是 $1-\lambda$
  • $G_t^{(2)}$ 的权重是 $(1-\lambda)\lambda$
  • $G_t^{(3)}$ 的权重是 $(1-\lambda)\lambda^2$
  • 更长步长的权重继续按几何形式衰减

因此,$\lambda$-return 本质上就是一个几何加权的多步回报平均。它不是完全偏向某一个固定步长,而是把多个时间尺度的信息合在了一起。

这个定义背后有两个重要的含义:

第一,$\lambda$-return 仍然延续了多步时序差分方法的基本思想。它并没有脱离 $n$-step 回报,而是把原本离散地“选一个 $n$”改成了连续地“给所有 $n$ 分配权重”。

第二,权重是递减的。这意味着较短步长通常占更大比重,而较长步长虽然也被保留,但影响会逐渐减弱。这样做的结果是,目标既不会退化成只看一步,也不会无条件地把特别长的展开都等权纳入。

从直观上说,$\lambda$-return 回答的是这样一个问题:

如果不同步长都提供了关于未来的有用信息,那么当前更新目标就不必只听从某一个步长,而可以把这些信息按照由近到远逐渐衰减的方式统一起来。

λ 的作用:从 TD(0) 到蒙特卡洛

有了 $\lambda$-return 的定义之后,下一步最关键的问题就是:参数 $\lambda$ 到底在控制什么。

从形式上看,

$$ G_t^\lambda = (1-\lambda)\sum_{n=1}^{\infty}\lambda^{n-1} G_t^{(n)} $$

式中的 $\lambda$ 决定了不同 $n$-step 回报的权重分配方式。由于这些权重按几何级数衰减,因此 $\lambda$ 的大小会直接影响:当前目标更偏向短步长回报,还是更愿意保留长步长回报。

如果 $\lambda$ 较小,那么权重会更快衰减,较短步长的 $n$-step 回报占主导地位。这样构造出来的目标会更接近一步时序差分方法,因为它主要依赖较短范围内的真实奖励和更早出现的自举项。

如果 $\lambda$ 较大,那么权重衰减得更慢,较长步长的回报也会占据更明显的位置。这样一来,目标就会更多吸收较远未来的真实奖励信息,整体上更接近长步长方法,甚至接近蒙特卡洛回报。

因此,$\lambda$ 的本质作用可以概括为一句话:

它控制了更新目标中“短步长自举信息”和“长步长真实回报信息”之间的相对比重。

为了更清楚地说明,可以考察两个极端情形。

当 λ = 0 时

把 $\lambda=0$ 代入

$$ G_t^\lambda = (1-\lambda)\sum_{n=1}^{\infty}\lambda^{n-1} G_t^{(n)} $$

可以发现,除了 $n=1$ 这一项之外,其余所有高阶项的权重都会变成 $0$。因此有

$$ G_t^\lambda = G_t^{(1)} $$

而一步回报正是

$$ G_t^{(1)} = r_t + \gamma V_\pi(s_{t+1}) $$

这说明,当 $\lambda=0$ 时,$\lambda$-return 就退化为一步 TD 目标。也就是说,此时的 TD($\lambda$) 与 TD(0) 是一致的。

所以,$\lambda=0$ 对应的是最强的自举形式:只看一步真实奖励,之后的未来全部交给下一状态的当前估计去承担。

当 λ → 1 时

再看另一端。如果 $\lambda$ 不断接近 $1$,那么较长步长回报的权重就不会很快衰减,目标会越来越重视更长范围内的真实奖励。

在分幕式任务中,如果一直展开到回合结束,那么 $n$-step 回报最终会走向完整回报 $G_t$。因此,当 $\lambda$ 取接近 $1$ 的值时,$\lambda$-return 就会越来越接近蒙特卡洛目标。通常会把这一端理解为:当 $\lambda=1$ 时,对应蒙特卡洛形式。

这说明,在这一端,目标中的自举成分越来越弱,而真实采样到的长程奖励信息越来越强。

需要注意的是,即使 $\lambda$ 非常接近 $1$,例如 $\lambda=0.99$,在

$$ G_t^\lambda = (1-\lambda)\sum_{n=1}^{\infty}\lambda^{n-1}G_t^{(n)} $$

这个表达式里,较短步长回报的单项权重仍然比更长步长回报更大。比如 $G_t^{(1)}$ 的权重仍然大于 $G_t^{(2)}$,而 $G_t^{(2)}$ 又大于 $G_t^{(3)}$。所以这里说“$\lambda$ 趋近于 $1$ 时更接近蒙特卡洛”,并不是说某一个最长步长项 suddenly 变成了最大的权重,而是说:权重衰减变得更慢了。 这意味着较长步长的回报不再像 $\lambda$ 较小时那样迅速被压低,而是能够在整体加权和中保留更显著的影响。换句话说,当 $\lambda$ 接近 $1$ 时,目标不是由某一个长步长回报单独主导,而是由一串较长步长回报共同提供更大的总体贡献,因此整体上才更接近完整回报,也更接近蒙特卡洛方法。

由此就可以看出,$\lambda$-return 不是单独插在 TD 和蒙特卡洛之间的某个点上,而是提供了一条连续过渡路径:

  • $\lambda=0$ 时,对应 TD(0);
  • $0<\lambda<1$ 时,对应不同程度的多步混合;
  • $\lambda$ 越接近 $1$,目标越接近蒙特卡洛。

这件事很重要,因为它说明 TD(0)、固定 $n$-step 方法和蒙特卡洛方法,并不是彼此孤立的若干算法,而可以放在同一个连续框架里理解。区别不再只是“公式不同”,而是:它们对未来信息的利用范围不同,自举程度也不同。

从这个角度看,TD($\lambda$) 的意义就在于,它把前面几篇文章里逐步出现的几种目标形式进一步统一了起来:

  • 一步 TD 强调尽早更新;
  • 多步方法强调显式利用更长的真实奖励序列;
  • 蒙特卡洛强调直接使用完整回报;
  • 而 $\lambda$-return 则把这些目标放到同一族加权组合中。

到这里,前向视角(forward view)下的核心目标已经基本清楚了:TD($\lambda$) 想要更新的,并不是某一个固定的 $n$-step 回报,而是这个由多种 $n$-step 回报加权形成的 $\lambda$-return。

但这里还留着一个实际问题:从定义上看,$\lambda$-return 依赖一系列不同长度的未来回报,因此它仍然像是一个“看完整段后果”的目标。这样的话,它似乎还不适合在线实现。这就引出了下一步的问题:如果前向视角中的目标是由许多未来步长共同组成的,那么它怎样才能在交互过程中被高效地实现出来?

前向视角:TD(λ) 的目标是怎样定义出来的

到这里,可以从一个更统一的角度来理解 TD($\lambda$) 。它最初并不是从某条“资格迹更新公式”直接出发的,而是先从一个更容易理解的目标构造开始:如果不同步长的 $n$-step 回报都值得利用,那么就把它们加权组合成一个新的学习目标。 这个目标就是前面得到的 $\lambda$-return。

这种理解方式通常被称为 前向视角(Forward View)。所谓“前向”,意思是:当我们站在时刻 $t$ 看当前状态 $s_t$ 时,目标的定义是沿着时间向后看,去考虑未来一步、两步、三步,直到更长范围内可能提供的信息。也就是说,前向视角关心的核心问题是:

从当前时刻往未来看,应该把哪些长度的回报纳入目标,以及怎样加权。

在这个视角下,TD($\lambda$) 对状态价值的更新目标不是某一个固定的 $G_t^{(n)}$,而是

$$ G_t^\lambda $$

于是对应的更新可以写成

$$ V_\pi(s_t)\leftarrow V_\pi(s_t)+\alpha\big(G_t^\lambda - V_\pi(s_t)\big) $$

从形式上看,这和前面几篇文章里的更新结构其实完全一致,仍然是“当前估计朝某个目标移动一步”。真正变化的只是目标本身:这里的目标不再是一步 TD 目标,也不是某一个固定长度的多步目标,而是 $\lambda$-return。

所以,如果只讨论“TD($\lambda$) 想学到什么”,那么前向视角已经把这件事说得很清楚了。它告诉我们:

  • TD(0) 只用一步目标;
  • 固定 $n$-step 方法只用某一个固定长度的目标;
  • TD($\lambda$) 则用一组不同步长目标的加权组合。

从概念上说,这个定义是很自然的,因为它正好延续了上一篇的主线:从一步推广到多步,再从“固定选一个步长”推广到“组合多个步长”。

不过,前向视角虽然把目标定义清楚了,却也立刻暴露出一个实现上的问题。

因为 $G_t^\lambda$ 不是只依赖一步转移,也不是只依赖一个固定短窗口,而是依赖许多不同长度的未来回报。换句话说,要精确构造当前时刻 $t$ 的 $\lambda$-return,就必须知道从 $t$ 开始之后一段相当长的未来信息,甚至在分幕式任务里,通常要一直等到后续轨迹充分展开之后,才能把这个目标真正算出来。

这意味着,前向视角更像是在回答“正确目标是什么”,而不是直接给出“怎样在线实现这个目标”。

这点可以和前面的方法做个对比:

  • 对于 TD(0),在观察到一步转移

    $$ s_t \to s_{t+1} $$

    和奖励 $r_t$ 之后,就可以立刻更新 $V_\pi(s_t)$;

  • 对于固定 $n$-step 方法,只要再多等待 $n-1$ 步,就能构造对应的 $n$-step 回报;

  • 但对于 $\lambda$-return,它同时混合了许多不同长度的目标,因此从直接定义上看,并不适合按同样方式简单在线更新。

所以,前向视角的价值主要在于两点。

第一,它给出了 TD($\lambda$) 最清楚的目标解释。也就是说,TD($\lambda$) 不是某个看起来复杂的递推技巧,而是在努力逼近一个明确的、多步混合的目标。

第二,它也说明了为什么后面还需要进一步引入新的实现方式。因为如果只停留在前向视角,我们虽然知道要逼近什么,却还没有真正解决“怎样在交互过程中边走边更新”的问题。

也正是在这里,资格迹(Eligibility Trace)才真正变得必要。它的作用不是重新定义目标,而是提供一种**后向视角(Backward View)**下的实现机制,使前向视角里那个依赖多步未来信息的 $\lambda$-return,能够以一种在线、递推的方式近似实现出来。

后向视角:为什么需要资格迹

前向视角已经把 TD($\lambda$) 的目标说明清楚了:对于当前状态 $s_t$,我们希望更新所逼近的,不是某一个固定步长的 $n$-step 回报,而是由多个 $n$-step 回报加权形成的 $\lambda$-return。这样一来,TD($\lambda$) 在概念上就变成了一种很自然的多步统一形式。

但正如上一节最后指出的那样,前向视角更像是在说明“目标应该是什么”,却没有直接回答“这个目标怎样在线实现”。因为 $\lambda$-return 的定义本身依赖未来许多步的信息,而在线学习希望做到的是:每经历一步交互,就尽可能立刻利用这一步的信息更新已有估计。

这时,问题就需要换一个角度来重新表述。

如果前向视角是在问:

从当前时刻往未来看,应该怎样把不同长度的回报组合起来形成目标?

那么后向视角(Backward View)问的则是:

当当前这一步产生了新的时序差分误差时,这个误差信息应当向过去哪些状态传播,以及传播多强?

这个视角转换很重要。因为它把注意力从“未来回报的构造”转移到了“当前误差如何分配给过去的状态”。

先回忆一步 TD 中的时序差分误差:

$$ \delta_t = r_t + \gamma V_\pi(s_{t+1}) - V_\pi(s_t) $$

这个量表示的是:在时刻 $t$,当前对状态 $s_t$ 的估计,与基于一步转移得到的新目标之间存在多大偏差。对于 TD(0) 来说,这个误差只用来更新当前状态 $s_t$ 本身,因此更新是非常局部的。

但如果站在多步方法的角度看,当前这一步观测到的奖励和后继状态信息,其实不仅与 $s_t$ 有关。它也可能在某种程度上为更早之前访问过的状态提供了新的信息。因为那些更早状态的价值,本来就包含“未来会经历当前这一步及其之后过程”的长期效果。既然当前对未来的认识变了,那么这种变化理论上也应当反馈给先前访问过的状态。

于是就会产生一个很自然的想法:

当前时刻产生的 TD 误差,不一定只应该修正当前状态,也可以向前面最近访问过的一些状态传播。

但是,传播也不能是毫无区分的。直觉上,刚刚访问过的状态,与当前这一步的关系更直接,因此更应该被更新;而很久之前访问过的状态,与当前误差的关联相对更弱,因此它们受到的影响通常应当更小。

这正是资格迹(Eligibility Trace)要表达的核心思想。

资格迹可以先从直观上理解为:它为每个状态维护一个“最近被访问过的程度”或“当前仍然应当为后续误差承担多少更新资格”的量。某个状态如果刚刚被访问过,那么它的资格迹较大;如果已经很久没有再访问,那么它的资格迹会逐渐衰减。这样一来,当新的 TD 误差 $\delta_t$ 出现时,就不必只更新当前状态,而可以按照各个状态资格迹的大小,把这次误差信息分配给一串过去访问过的状态。

从这里可以看出,资格迹并不是额外添加的一个装饰性变量,它解决的是一个非常具体的问题:

怎样把前向视角里“多个未来步长共同作用”的效果,转化成一种在线的、沿时间向后的误差传播机制。

也就是说,在前向视角中,当前状态的目标之所以会包含一步、两步、三步直到更长步长的信息,是因为我们显式把这些未来回报都写进了 $\lambda$-return;而在后向视角中,同样的多步信息则体现为:每当当前时刻出现 TD 误差时,这个误差会按照一定衰减规则,反过来影响一串过去访问过的状态。两者看的方向不同,但要表达的是同一类多步效应。

所以,后向视角的关键意义不在于重新发明了一个不同目标,而在于它提供了一种更适合在线学习的实现方式。前向视角强调“当前状态应当逼近什么目标”,后向视角强调“当前误差应当怎样向过去传播”。而连接这两者的桥梁,就是资格迹。

资格迹的直观意义

在进入具体更新公式之前,需要先把资格迹(Eligibility Trace)本身的含义讲清楚。

从直观上说,资格迹描述的是这样一件事:

某个状态之所以应当在当前时刻被更新,不只是因为它现在被访问到了,还因为它在最近这段时间内曾经参与了当前这条轨迹。

也就是说,当系统在时刻 $t$ 产生了一个新的时序差分误差 $\delta_t$ 时,这个误差不一定只和当前状态 $s_t$ 有关。因为当前这一步本来就是整条轨迹的一部分,而较早访问过的那些状态,正是沿着这条轨迹一步步走到现在的。既然当前我们对未来的判断出现了修正,那么这种修正就有理由反馈给之前那些“仍然和当前结果相关”的状态。

但这种反馈显然不能对所有过去状态一视同仁。直觉上:

  • 刚刚访问过的状态,与当前误差关系最直接;
  • 稍早访问过的状态,关系还存在,但已经弱一些;
  • 很久之前访问过的状态,与当前误差的联系通常更弱,因此不应当被同样强烈地更新。

资格迹正是用来刻画这种“相关程度随时间衰减”的。

可以把它理解成:对每个状态,都维护一个随时间变化的痕迹值。某个状态一旦被访问,这条痕迹就会被“点亮”或增强;而随着时间继续推进,如果这个状态没有再次出现,它的痕迹就会逐渐衰减。于是,在任意时刻 $t$,那些痕迹值较大的状态,表示它们在最近的轨迹中出现得更近、与当前更相关,因此更有资格接受当前误差带来的更新;而痕迹值较小的状态,则表示它们虽然也属于过去经历的一部分,但与当前的联系已经减弱。

所以,资格迹之所以叫“资格迹”,可以从下面这个角度理解:

它不是直接表示状态价值本身,而是在表示这个状态当前还保留多少“接受新误差信息”的资格。

这样一来,当新的 TD 误差 $\delta_t$ 出现时,就不再只是更新当前状态,而是按照各个状态资格迹的大小,把这次误差分配给一串过去状态。于是,“最近访问过的状态更应该被更新”这件事,就不再只是口头上的直觉,而变成了一种可以递推实现的机制。

在前向视角中,我们说当前状态的目标不应只看一步,而应综合一步、两步、三步直到更长步长的信息。那种说法强调的是“从当前往未来看”。

而在后向视角中,资格迹表达的则是同一件事的另一面:因为未来的多步信息最终会在后续若干时刻逐渐体现为一连串 TD 误差,所以当前以及后续时刻产生的这些误差,应该能够沿着轨迹反向作用到过去访问过的状态,而且越近的状态作用越强,越远的状态作用越弱。

后向视角下的更新形式

有了前面的直观解释之后,现在就可以把资格迹(Eligibility Trace)写成一个更明确的递推量了。

先只讨论状态价值的情形,并继续采用表格型设定。对每个状态 $s$,在时刻 $t$ 维护一个资格迹

$$ e_t(s) $$

它表示:到当前时刻为止,状态 $s$ 对新产生误差信息还保留多少更新资格。

如果当前访问到的状态是 $s_t$,那么最基本的累积式资格迹可以写成

$$ e_t(s)= \begin{cases} \gamma\lambda e_{t-1}(s)+1, & s=s_t\\ \gamma\lambda e_{t-1}(s), & s\neq s_t \end{cases} $$

这个式子可以分成两部分理解。

第一部分是

$$ \gamma\lambda e_{t-1}(s) $$

它表示旧资格迹会随时间衰减。这里同时乘上 $\gamma$ 和 $\lambda$,说明随着时间推移,过去状态对当前误差的关联会逐渐减弱。

第二部分是对当前访问状态加上的 $1$。这表示:如果状态 $s$ 在当前时刻被访问到了,那么它的“更新资格”会被重新增强。也就是说,刚刚访问到的状态在当前时刻最应该接收后续误差信息。

在这个基础上,每一步先计算时序差分误差

$$ \delta_t = r_t + \gamma V_\pi(s_{t+1}) - V_\pi(s_t) $$

然后不只更新当前状态,而是对所有状态同时更新:

$$ V_\pi(s)\leftarrow V_\pi(s)+\alpha\,\delta_t\,e_t(s), \qquad \forall s $$

这就是 TD($\lambda$) 在后向视角下最核心的更新形式。

它的含义其实很直接:当前这一步产生了一个 TD 误差 $\delta_t$,这个误差不会只作用在 $s_t$ 上,而是会按照各个状态当前资格迹的大小,被分配给一串过去访问过的状态。哪个状态最近被访问、资格迹更大,它得到的更新就更强;哪个状态已经离当前较远、资格迹衰减得更小,它受到的更新就更弱。

这样一来,资格迹就把“最近访问过的状态更应该被更新”这一直觉,变成了一个可以在线递推实现的规则。

这里还可以和 TD(0) 做一个对比,帮助看清两者关系。

在 TD(0) 中,更新是

$$ V_\pi(s_t)\leftarrow V_\pi(s_t)+\alpha \delta_t $$

只有当前状态 $s_t$ 会被更新。

而在 TD($\lambda$) 中,更新变成了

$$ V_\pi(s)\leftarrow V_\pi(s)+\alpha\,\delta_t\,e_t(s) $$

于是当前误差 $\delta_t$ 会沿着资格迹向过去传播。可以说,TD(0) 是“当前误差只修正当前状态”,而 TD($\lambda$) 是“当前误差按衰减强度修正一串过去状态”。

从这个角度看,资格迹真正带来的变化,不是把 TD 误差换掉了,而是改变了 TD 误差的作用范围

  • TD(0):误差局部作用;
  • TD($\lambda$):误差沿轨迹向后传播;
  • $\lambda$ 越大,传播得越远;
  • $\lambda$ 越小,传播越快衰减,行为越接近 TD(0)。

前向视角与后向视角的对应关系

前向视角与后向视角的对应,关键在于下面这个恒等式:

$$ G_t^\lambda - V(s_t) = \delta_t+\gamma\lambda\,\delta_{t+1}+(\gamma\lambda)^2\delta_{t+2}+\cdots $$

其中

$$ \delta_k = r_k+\gamma V(s_{k+1})-V(s_k) $$

这个式子说明:前向视角中“当前状态应当朝 $\lambda$-return 修正多少”,恰好等于后续各时刻 TD 误差按 $\gamma\lambda$ 逐步衰减后的加权和。因此,后向视角中资格迹所做的事情,本质上就是在线地实现这个加权和。

下面分两步推导。

先看 $n$-step 回报与 TD 误差的关系

定义

$$ G_t^{(n)} = r_t+\gamma r_{t+1}+\cdots+\gamma^{n-1}r_{t+n-1}+\gamma^n V(s_{t+n}) $$

我们想把

$$ G_t^{(n)}-V(s_t) $$

改写成一串 TD 误差之和。

$$ \delta_t=r_t+\gamma V(s_{t+1})-V(s_t) $$

可得

$$ r_t=\delta_t+V(s_t)-\gamma V(s_{t+1}) $$

同理,

$$ r_{t+1}=\delta_{t+1}+V(s_{t+1})-\gamma V(s_{t+2}) $$

一直到

$$ r_{t+n-1}=\delta_{t+n-1}+V(s_{t+n-1})-\gamma V(s_{t+n}) $$

把这些代入 $G_t^{(n)}$:

$$ \begin{aligned} G_t^{(n)} &= \big[\delta_t+V(s_t)-\gamma V(s_{t+1})\big] \\ &\quad + \gamma\big[\delta_{t+1}+V(s_{t+1})-\gamma V(s_{t+2})\big] \\ &\quad + \gamma^2\big[\delta_{t+2}+V(s_{t+2})-\gamma V(s_{t+3})\big] \\ &\quad + \cdots \\ &\quad + \gamma^{n-1}\big[\delta_{t+n-1}+V(s_{t+n-1})-\gamma V(s_{t+n})\big] \\ &\quad + \gamma^n V(s_{t+n}) \end{aligned} $$

把同类项整理后,可以看到中间所有价值项都会两两抵消:

  • $-\gamma V(s_{t+1})$ 和 $+\gamma V(s_{t+1})$ 抵消;
  • $-\gamma^2 V(s_{t+2})$ 和 $+\gamma^2 V(s_{t+2})$ 抵消;
  • 一直到最后 $-\gamma^n V(s_{t+n})$ 和 $+\gamma^n V(s_{t+n})$ 抵消。

最后只剩下

$$ G_t^{(n)} = V(s_t)+\delta_t+\gamma\delta_{t+1}+\gamma^2\delta_{t+2}+\cdots+\gamma^{n-1}\delta_{t+n-1} $$

因此

$$ G_t^{(n)}-V(s_t) = \delta_t+\gamma\delta_{t+1}+\gamma^2\delta_{t+2}+\cdots+\gamma^{n-1}\delta_{t+n-1} $$

这一步很重要,它说明:一个 $n$-step 回报相对当前估计的修正量,等于之后连续 $n$ 个 TD 误差的折扣和。

再代入 $\lambda$-return

前向视角中,

$$ G_t^\lambda=(1-\lambda)\sum_{n=1}^{\infty}\lambda^{n-1}G_t^{(n)} $$

所以

$$ G_t^\lambda - V(s_t)=(1-\lambda)\sum_{n=1}^{\infty}\lambda^{n-1}\big(G_t^{(n)}-V(s_t)\big) $$

把上一步结果代入:

$$ \begin{aligned} G_t^\lambda - V(s_t) &=(1-\lambda)\Big[ (\delta_t) \\ &\quad + \lambda(\delta_t+\gamma\delta_{t+1}) \\ &\quad + \lambda^2(\delta_t+\gamma\delta_{t+1}+\gamma^2\delta_{t+2}) \\ &\quad + \cdots \Big] \end{aligned} $$

现在按 $\delta_t,\delta_{t+1},\delta_{t+2}$ 分组:

对于 $\delta_t$,系数是

$$ (1-\lambda)(1+\lambda+\lambda^2+\cdots)=1 $$

对于 $\gamma\delta_{t+1}$,系数是

$$ (1-\lambda)(\lambda+\lambda^2+\lambda^3+\cdots)=\lambda $$

所以整体系数是

$$ \gamma\lambda $$

对于 $\gamma^2\delta_{t+2}$,系数是

$$ (1-\lambda)(\lambda^2+\lambda^3+\cdots)=\lambda^2 $$

所以整体系数是

$$ (\gamma\lambda)^2 $$

依此类推,就得到

$$ G_t^\lambda - V(s_t) = \delta_t+\gamma\lambda\,\delta_{t+1}+(\gamma\lambda)^2\delta_{t+2}+\cdots $$

这个恒等式表明,$\lambda$-return 相对当前估计的修正量,本质上就是后续一连串 TD 误差的衰减加权和。于是,前向视角中“把不同 $n$-step 回报加权组合起来”的效果,完全可以换一种方式理解:不是一次性显式写出所有未来步长的目标,而是让未来各时刻逐步出现的 TD 误差,按 $\gamma\lambda$ 的衰减规律不断回传给当前状态。资格迹的作用,正是在在线学习中实现这种误差回传机制。也就是说,它并不是额外附加的经验技巧,而是前向视角中多步目标在后向视角下的自然实现形式。这样一来,前向视角负责说明“目标为什么这样定义”,后向视角负责说明“这个目标怎样被在线实现”,两者也就在同一个逻辑框架中闭合起来了。

不过要说明准确一点:这里证明的是目标层面的等价关系。在经典表格型、回合式设定下,前向视角和后向视角在一整个回合上的 总更新结果 是一致的;但如果要求“每一步在线更新后参数都严格与前向视角一致”,经典 TD($\lambda$) 一般并不逐步完全等价,这也是 true online TD($\lambda$) 后来被提出的原因。

总结

这一篇的主线可以概括为:在一步时序差分与多步时序差分之后,如何进一步把不同时间尺度的更新目标统一起来。

上一篇已经看到,$n$-step 方法相较于一步方法更灵活,因为它允许显式利用更长范围的真实奖励信息。但它仍然要求预先固定一个步数 $n$。这意味着,一旦步长被选定,之后所有更新都只能按照这一种固定尺度来构造目标。资格迹与 TD($\lambda$) 则进一步推进了一步:既然不同步长的 $n$-step 回报各有优缺点,那么就不必只选其中一个,而可以把它们组织成同一个加权目标。

由此就得到了前向视角中的 $\lambda$-return。它表明,TD($\lambda$) 的目标不是单独的一步回报,也不是某一个固定的 $n$-step 回报,而是多个 $n$-step 回报的几何加权组合。参数 $\lambda$ 控制的,本质上就是短步长自举信息与长步长真实回报信息之间的相对比重:当 $\lambda=0$ 时,方法退化为 TD(0);当 $\lambda$ 增大时,更长步长的信息逐渐占据更重要的位置;当 $\lambda$ 取到另一端时,它又与蒙特卡洛形式连接起来。于是,TD(0)、多步方法与蒙特卡洛不再是彼此割裂的若干技巧,而是被放进了同一条连续谱系中。

但前向视角虽然给出了清楚的目标定义,却不适合直接在线实现。因为 $\lambda$-return 依赖未来多步信息,而在线学习希望做到的是每经历一步交互,就尽可能及时地利用这一步的新信息。也正是在这里,后向视角与资格迹变得必要。后向视角不再直接问“当前状态的未来目标是什么”,而是转而问“当前这一步产生的 TD 误差应当向过去哪些状态传播”。资格迹所表示的,正是过去状态在当前时刻仍然保留多少更新资格。某个状态如果刚刚被访问,它的资格迹较大;如果已经隔了较久,它的资格迹就会逐渐衰减。因此,当前误差不会只更新当前状态,而会沿着轨迹向后传播,并且越近的状态更新越强,越远的状态更新越弱。

从理论上看,前向视角与后向视角之所以能够对应,关键在于:$\lambda$-return 相对当前估计的修正量,可以展开成一串后续 TD 误差按 $\gamma\lambda$ 衰减后的加权和。也就是说,前向视角中“多步目标的加权组合”,在后向视角中等价地表现为“后续误差沿资格迹不断回传”。前者是从当前向未来组织目标,后者是从当前向过去传播误差;它们看的方向不同,但表达的是同一类多步信息整合机制。

因此,从更整体的角度看,TD($\lambda$) 的意义不只是“在 TD 更新里再加一个 $\lambda$”这么简单。它真正完成的是三件事:

第一,它说明多步信息不必通过固定单一的步长来利用,而可以通过连续加权的方式统一起来。
第二,它说明这种统一目标不仅可以在前向视角下定义出来,还可以通过资格迹在后向视角下在线实现。
第三,它把 TD(0) 与蒙特卡洛进一步连接到同一个框架中,使“自举”和“完整回报”不再只是两个对立端点,而成为一条可以连续调节的谱系。

从这一点来说,资格迹与 TD($\lambda$) 可以看成是对多步时序差分方法的一次进一步统一:它保留了 TD 方法边交互边学习的优点,又吸收了多步目标对更长未来信息的利用能力。

到这里,这一篇的核心概念已经完整了。再往后继续展开,一个自然方向就是进入更具体的方法层面,例如:在动作价值框架下如何得到 Sarsa($\lambda$),以及在实际实现中,不同形式的资格迹和在线更新会带来哪些差异。