此为《强化学习》第七章 n-step Bootstrapping 。
n n 步Bootstrapping是MC和TD(0)的综合。随着对参数 的调整,我们可以看到TD是如何过渡到MC的。而最佳的方法往往就是介于TD和MC之间。
n n 步TD估计
在上一章的TD(0)方法中,我们有
并且,我们使用了一步后的状态值函数来估计 Gt G t ,从而得到
v(St)←v(St)+α[Rt+1+γv(St+1)−v(St)] v ( S t ) ← v ( S t ) + α [ R t + 1 + γ v ( S t + 1 ) − v ( S t ) ]
那么如果我们考虑 n n 步,那么显然
也可以使用以下等式进行估计:
Gt=Rt+1+γv(St+1)=Rt+1+γRt+2+γ2v(St+2)=Rt+1+γRt+2+⋯+γn−1Rt+n+γnv(St+n) G t = R t + 1 + γ v ( S t + 1 ) = R t + 1 + γ R t + 2 + γ 2 v ( S t + 2 ) = R t + 1 + γ R t + 2 + ⋯ + γ n − 1 R t + n + γ n v ( S t + n )
在书本中,上面每个 v v 都会有一个下标,表示此处的值函数是哪一步迭代的值函数。 但实际上,我们只有一个表格用来存值函数,所以实践上应该很容易知道到底是哪一步迭代的,因此这里省略不写(可见下文伪代码即可知)。令上述表达式为
,则算法TD(n)为
v(St)←v(St)+α[Gt:t+n−v(St)]