文章目录
1.本章内容概要
这一章将结合MC方法和 one-step TD 方法,使之表现得更好,该方法称为n-step TD方法,而MC与one-step则是这种新方法的特殊情况。
有时,我们希望能更新快一些,而one-step只利用了当前信息 ( V ( S t ) ) (V(S_t)) (V(St))和下一步信息 ( R t + 1 , V ( S t + 1 ) (R_{t+1}, V(S_{t+1}) (Rt+1,V(St+1),n-step则可以利用后续多步信息,还可以根据变动大小决定向后迭代多少,加速学习过程。
n-step方法通常用来作为例子引入资格迹(eligibility traces)思想,使得bootstrapping能同时工作于多个时间步上。这里只讨论单纯的n-step bootstrapping思想,而eligibility-trace则推迟到后面讨论。
同样地,我们也先研究prediction问题,然后再研究control问题。即首先研究n-step方法如何预测fixed policy的returns(作为state的函数),然后扩展到action-value与control方法。
2.n-step TD预测
n-step TD prediction的过程:差分更新时,考虑后面的n步。例如,two-step更新需要当前step和下一个rewards以及下两步状态的估计值。因此,n-step是MC方法与TD(0)方法的折中。下图给出了示意。

n-step方法仍然是TD方法,因为它们还是用了bootstrapping的思想。
考虑从t到T的S和R的序列,我们分别列出MC、TD(0)以及n-step的公式。
MC:更新的target就是return,也叫full return;
G t ≐ R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ + γ T − t − 1 R T G_{t} \doteq R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+\cdots+\gamma^{T-t-1} R_{T} Gt≐Rt+1+γRt+2+γ2Rt+3+⋯+γT−t−1RT
one-step TD:target是第一个reward加上折扣的后面第一个状态的值的估计;
G t : t + 1 ≐ R t + 1 + γ V t ( S t + 1 ) G_{t : t+1} \doteq R_{t+1}+\gamma V_{t}\left(S_{t+1}\right) Gt:t+1≐Rt+1+γVt(St+1)
two-step TD:target是前两个reward加上折扣的后面第二个状态的值的估计;
G t : t + 2 ≐ R t + 1 + γ R t + 2 + γ 2 V t + 1 ( S t + 2 ) G_{t : t+2} \doteq R_{t+1}+\gamma R_{t+2}+\gamma^{2} V_{t+1}\left(S_{t+2}\right) Gt:t+2≐Rt+1+γRt+2+γ2Vt+1(St+2)
n-step TD:n-step return是full return的近似,但是截短到n steps,并用 V t + n − 1 V_{t+n-1} Vt+n−1作为remaining missing terms。注意如果t+n >= T,则把式子中相应的V和R变成0就行了。
G t : t + n ≐ R t + 1 + γ R t + 2 + ⋯ + γ n − 1 R t + n + γ n V t + n − 1 ( S t + n ) G_{t : t+n} \doteq R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^{n-1} R_{t+n}+\gamma^{n} V_{t+n-1}\left(S_{t+n}\right) Gt:t+n≐Rt+1+γRt+2+⋯+γn−1Rt+n+γnVt+n−1(St+n)
V t + n ( S t ) ≐ V t + n − 1 ( S t ) + α [ G t : t + n − V t + n − 1 ( S t ) ] , 0 ≤ t < T V_{t+n}\left(S_{t}\right) \doteq V_{t+n-1}\left(S_{t}\right)+\alpha\left[G_{t : t+n}-V_{t+n-1}\left(S_{t}\right)\right], \quad 0 \leq t<T Vt+n(St)≐Vt+n−1(St)+α[Gt:t+n−Vt+n−1(St)],0≤t<T
注意,如果要更新t时刻的V,必须要到t+n时刻才行,这样我们才有足够的信息。注意每个episode的前n-1个steps无法更新(导致少更新了n-1次),为了弥补这个问题,则在episode尾部,下个episode之前附加n-1次更新,按照不存在就取0的原则。n-step TD算法如下:

n-step return使用 V t + n − 1 V_{t+n-1} Vt+n−1这个value function来更正missing rewards,可以证明,n-step的最坏error比 V t + n − 1 V_{t+n-1} Vt+n−1的最坏误差的 γ n \gamma ^ n γn倍小,因此n大一些可以加快收敛速度。这叫做n-step的error reduction property。因此n-step TD方法可以收敛到正确的predictions。
max s ∣ E π [ G t : t + n ∣ S t = s ] − v π ( s ) ∣ ≤ γ n max s ∣ V t + n − 1 ( s ) − v π ( s ) ∣ \max _{s}\left|\mathbb{E}_{\pi}\left[G_{t : t+n} | S_{t}=s\right]-v_{\pi}(s)\right| \leq \gamma^{n} \max _{s}\left|V_{t+n-1}(s)-v_{\pi}(s)\right| maxs∣Eπ[Gt:t+n∣St=s]−vπ(s)∣≤γnmaxs∣Vt+n−1(s)−vπ(s)∣
example 7.1 n-step TD Methods on the Random Walk
用 n-step TD 分析五个状态的随机游走问题。初始时每个V(s)都是0.5。从中间C位置开始,随机选择两个方向。对于第一个episode,one-step只能传递最后的reward到V(E),而只有第二次episode才能传递到V(D)。对于two-step方法,则可以一次传递到V(D)和V(E)。
那么n-step中的n如何选择呢?对于一个19 states的问题,可以分析下不同n时,前十个episodes的平均RMS随着α的变化。可以看到当n处于中间某个值时效果最好,因此证明了n-step比两个极端MC和Sarsa都要好。
注意一个episode中的实际steps个数,可能会比states数目要长很多的。所以n可以取很大的数,仍然有一定的效果,但是这会导致方差放大,变成了求MSE而不是MLE了。注意贝叶斯公式中的先验知识在这里的体现。
还要注意,这里实际上分析的是收敛速度快慢(前10个episodes,interim)而不是最后收敛到效果(asymptotic)的RMS。
3.n-step Sarsa
本节讨论如何把 n-step 方法用于control,我们采用把n-step方法和Sarsa结合的方式,因此之前的Sarsa就叫做one-step Sarsa,或者Sarsa(0)。

这里首先给出 state-action 对的n-step更新公式。n-step Sarsa的backup diagram与n-step TD类似,但是以action节点(实心)开始,也以action节点终止,是个单向的链。因此得到估计action values的n-step returns的公式:
G t : t + n ≐ R t + 1 + γ R t + 2 + ⋯ + γ n − 1 R t + n + γ n Q t + n − 1 ( S t + n , A t + n ) , n ≥ 1 , 0 ≤ t < T − n G_{t : t+n} \doteq R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^{n-1} R_{t+n}+\gamma^{n} Q_{t+n-1}\left(S_{t+n}, A_{t+n}\right), n \geq 1,0 \leq t<T-n Gt:t+n≐R