增强学习笔记 第十二章 资格迹

资格迹Eligibility Traces是RL中一项基本技术,Sarsa, Q-Learning等一切TD类方法,都可以用资格迹来提升学习效率。提升效率的方式是不用等到n-step再去更新n步前的value。

资格迹和n-步Bootstrap一样,将MC和TD进行了统一。

12.1 λ回报

在第七章中我们有

我们可以采用不同n值的任意线性组合来对参数进行更新,只要它们权和为1。

我们定义

对应参数的更新迭代式

 

不同λ的值和不同的n-step值产生的效果类似:

这是一个离线算法,因为需要一个episode执行完才能更新θ。

执行完之后,回头在每一步观察后面各步的回报,并通过更新 heta校正对应的v/q值:

 12.2 TD(λ)算法

根据上面的off-line算法,我们做一些改进,我们在每一步都更新参数θ,而不是等到最后一步。早更新效率通常会更好,另外也把计算量均匀地分摊了。

这里我们引入资格迹向量,称为accmulative trace:

TD误差为:

迭代更新式为:

理解上面的式子,我们把$oldsymbol e_t$展开为

$oldsymbol e_t= ablahat v(S_t,oldsymbol heta_t)+gammalambda ablahat v(S_{t-1},oldsymbol heta_{t-1})+gamma^2lambda^2 ablahat v(S_{t-2},oldsymbol heta_{t-2})+cdots+gamma^{t-1}lambda^{t-1} ablahat v(S_1,oldsymbol heta_1)$

然后代入至$oldsymbol heta$的迭代式中,有:

$ heta_{t+1}= heta_t+alpha(delta_t ablahat v(S_t,oldsymbol heta_t)+gammalambdadelta_t ablahat v(S_{t-1},oldsymbol heta_{t-1})+gamma^2lambda^2delta_t ablahat v(S_{t-2},oldsymbol heta_{t-2})+cdots+gamma^{t-1}lambda^{t-1}delta_t ablahat v(S_1,oldsymbol heta_1))$

观察式子,实际上更新了每一步的v值。并且和12.1中的式子近似,只是更新θ的时机顺序不同导致最后结果会有细微差别。

12.3 在线观点

我们定义h截断λ回报

可以理解为在h就终止的λ回报。

对每个episode,我们定义 heta_0^h$均为上一episode更新完之后的 heta值,然后计算每个截断点的$ heta_t^h$

 12.4 真在线TD(λ)

将上一节的θ序列排成三角形:

我们需要的只是对角线上的值。在episode中,每走一步,就计算出一排。但这样计算太繁琐了。对于线性近似,我们可以用下面的式子来简化计算:

其中

可以证明由此可以正确产生对角线上的θ值。

上面的$oldsymbol e_t$我们成为dutch trace,是为了和12.2中的$oldsymbol e_t$作区分(accumulating trace)。之前对tile coding中的binnary features还出现过replacement trace,但是现在已经被dutch trace替代

12.5 蒙特卡洛学习中的dutch trace(略)

原文地址:https://www.cnblogs.com/milaohu/p/7638516.html