增強學習筆記 第十二章 資格跡


資格跡Eligibility Traces是RL中一項基本技術,Sarsa, Q-Learning等一切TD類方法,都可以用資格跡來提升學習效率。提升效率的方式是不用等到n-step再去更新n步前的value。

資格跡和n-步Bootstrap一樣,將MC和TD進行了統一。

 

12.1 λ回報

在第七章中我們有

我們可以采用不同n值的任意線性組合來對參數進行更新,只要它們權和為1。

 

我們定義

對應參數的更新迭代式

 

不同λ的值和不同的n-step值產生的效果類似:

這是一個離線算法,因為需要一個episode執行完才能更新θ。

執行完之后,回頭在每一步觀察后面各步的回報,並通過更新\theta校正對應的v/q值:

 

 12.2 TD(λ)算法

根據上面的off-line算法,我們做一些改進,我們在每一步都更新參數θ,而不是等到最后一步。早更新效率通常會更好,另外也把計算量均勻地分攤了。

這里我們引入資格跡向量,稱為accmulative trace:

TD誤差為:

迭代更新式為:

理解上面的式子,我們把$\boldsymbol e_t$展開為

$\boldsymbol e_t=\nabla\hat v(S_t,\boldsymbol \theta_t)+\gamma\lambda\nabla\hat v(S_{t-1},\boldsymbol \theta_{t-1})+\gamma^2\lambda^2\nabla\hat v(S_{t-2},\boldsymbol \theta_{t-2})+\cdots+\gamma^{t-1}\lambda^{t-1}\nabla\hat v(S_1,\boldsymbol \theta_1)$

然后代入至$\boldsymbol\theta$的迭代式中,有:

$\theta_{t+1}=\theta_t+\alpha(\delta_t\nabla\hat v(S_t,\boldsymbol \theta_t)+\gamma\lambda\delta_t\nabla\hat v(S_{t-1},\boldsymbol \theta_{t-1})+\gamma^2\lambda^2\delta_t\nabla\hat v(S_{t-2},\boldsymbol \theta_{t-2})+\cdots+\gamma^{t-1}\lambda^{t-1}\delta_t\nabla\hat v(S_1,\boldsymbol \theta_1))$

觀察式子,實際上更新了每一步的v值。並且和12.1中的式子近似,只是更新θ的時機順序不同導致最后結果會有細微差別。

 

12.3 在線觀點

我們定義h截斷λ回報

可以理解為在h就終止的λ回報。

對每個episode,我們定義\theta_0^h$均為上一episode更新完之后的\theta值,然后計算每個截斷點的$\theta_t^h$

 

 12.4 真在線TD(λ)

將上一節的θ序列排成三角形:

我們需要的只是對角線上的值。在episode中,每走一步,就計算出一排。但這樣計算太繁瑣了。對於線性近似,我們可以用下面的式子來簡化計算:

其中

可以證明由此可以正確產生對角線上的θ值。

 

上面的$\boldsymbol e_t$我們成為dutch trace,是為了和12.2中的$\boldsymbol e_t$作區分(accumulating trace)。之前對tile coding中的binnary features還出現過replacement trace,但是現在已經被dutch trace替代

 

12.5 蒙特卡洛學習中的dutch trace(略)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM