第七章:n-step Bootstrapping
这一章中我们把蒙特卡洛算法(MC)和一步差分算法(one-step TD)统一起来。MC算法和一步TD算法都不可能永远是最好的。这两个方法都是比较极端的形式,可能使用它们中间形式会更好一些。另一个看待n步TD算法的优势的角度是它解决了固定时间步骤的缺点。比如一步TD算法固定了每次选择动作和更新值的时间间隔。很多应用中想要把发生的改变快速更新到值函数中,但是bootstrap方法对于一个长时间段发生的重大状态变化又是最好的方法。一步TD法中固定了更新时间间隔是一步,所以需要妥协更新的速度和bootstrap的优势。但是n步TD算法可以在多步后进行bootstrap,这就解决了固定一步时间间隔的缺点。
n步更新的方法通常是eligibility traces方法的一个介绍。这里我们只考虑n步更新方法本身,后面再介绍资格迹(eligibility traces)。和以前一样先介绍prediction的方法然后介绍control的算法。
7.1 n-step TD Prediction
先考虑更新V值函数的蒙特卡洛算法。MC算法根据一个完整的episode序列,观察当前状态以后所有状态的反馈来用作对当前状态值函数的更新。一步TD算法确实基于下一步的反馈以及对一步后的状态的自举作为再往后状态的一个估计而用来更新值函数。而它们俩之间的算法会是基于大于一步的反馈加上剩下的自举作为值更新的目标。比如两步TD算法会基于采取动作后的两个反馈值以及两步后的值函数作为更新目标。三步更新也是类似。可以把他们的backup diagrams画出来如下:
这种使用了n步更新的方法依然是TD算法因为它使用了对之前某个状态的估计与其的差来更新那个状态的值函数。这种方法叫做n步TD法。更正式的,考虑一个状态值序列,,MC方法中对值函数的估计是从时间t之后所有R的discounting的和也就是。而一步TD算法是使用下一步的反馈和下一个状态的估计值,即。下标t:t+1表示的是只计算到t+1时间的反馈值。对于n步TD算法而言,其估计值为:
这个值也就是n步TD算法对于状态值函数的估