[归纳]强化学习导论 - 第七章:n-step自举(Bootstrapping)

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} GtRt+1+γRt+2+γ2Rt+3++γTt1RT

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+1Rt+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+2Rt+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+n1作为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+nRt+1+γRt+2++γn1Rt+n+γnVt+n1(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 &lt; 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&lt;T Vt+n(St)Vt+n1(St)+α[Gt:t+nVt+n1(St)],0t<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+n1这个value function来更正missing rewards,可以证明,n-step的最坏error比 V t + n − 1 V_{t+n-1} Vt+n1的最坏误差的 γ 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| maxsEπ[Gt:t+nSt=s]vπ(s)γnmaxsVt+n1(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 &lt; 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&lt;T-n Gt:t+nR

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值