強化學習(RLAI)讀書筆記第十章On-Policy Control with Approximation
目前繼續考慮on-policy的帶逼近的control演算法。這章主要介紹半梯度Sarsa演算法,也就是半梯度TD(0)演算法對於動作值估計以及on-policy control演算法的自然延伸。雖然這個延伸對於episodic的情況是很自然的,但是對於continuing的情況,我們需要再次考慮對於discounting方法來定義一個最優策略的方式。而當我們使用函式逼近的時候需要放棄discounting並且轉到一個新的平均反饋的控制機制。
這章顯示將上一章中的函式逼近方法延伸到episodic形勢下的動作值函式。然後又拓展到泛化收斂機制on-policy GPI下的控制演算法。接著展示了n步線性Sarsa演算法在mountain car問題中的結果。之後又轉向了continuing的情況,並且複述了使用差值來建立平均反饋的想法的發展過程。
10.1 Episodic Semi-gradient Control
將上節中的函式逼近從狀態值函式形式延伸到狀態動作值函式是很直接的。直接將相應的更新目標從狀態值函式估計更改為狀態動作值函式估計即可,比如可以使用MC反饋或者任意的n步Sarsa反饋值。對於引數,更新的迭代公式為:
比如對於一步Sarsa演算法來說更新公式為:
這個方法叫做episodic semi-gradient one-step Sarsa。對於一個固定策略來說,演算法會收斂到和TD(0)一樣的形式以及一樣的上界。為了組成control演算法,我們需要將這個更新過程和對於策略的改進以及動作的選擇結合起來。對於連續的動作或者大型的離散動作集合來說,還沒有一個清晰的解決方式。但是對於離散且非大型的動作集合,可以直接使用前面章節使用的方法。也就是說,對於特定狀態
10.2 Semi-gradient n-step Sarsa
直接把上一節的演算法更新估計值的部分改變成n步反饋就可以得到episodic 半梯度Sarsa演算法。從表格型n步反饋可以泛化得到函式逼近的形式如下:
這樣那麼n步形式的更新公式為:
完整的虛擬碼如下:
和之前看到的一樣,演算法效果最好的是n選擇不大不小的時候。
練習10.1 因為MC法是n取無窮的特例,不用專門寫。
練習10.2 把值估計的部分改為期望的形式即可。
練習10.3 因為使用更大的n表示使用更長的取樣軌跡,相對於較短的軌跡來說方差就會變大。
10.3 Average Reward: A New Problem Setting for Continuing Tasks
現在介紹episodic和discounted之外的第三個經典的對於MDP問題目標的形式化設定。和discounted設定一樣,平均反饋(average reward)是應用於continuing形式的問題。但是這裡沒有discounting係數,而是對於每個反饋都像當前反饋一樣關注。平均反饋的設定是動態規劃經典理論的一個主要設定,但是在強化學習裡相對較少使用。下一節會講到,discounted的設定對於函式逼近是病態的,因此需要平均反饋來替代。
在平均反饋設定裡,策略的質量被定義為遵循當前策略每個反饋的平均值,使用表示。
其中期望是依賴於初始狀態以及遵循策略時後面採取的動作的。是一個平穩狀態的分佈,定義為。假定這個分佈依賴於採取的策略但是獨立於初始狀態。這個假設叫做ergodicity。這說明初始狀態以及早期的動作都只有暫時的效果,長期來看一個狀態的期望反饋只依賴於策略以及MDP的狀態轉移。Ergodicity保證了上述公式極限的存在。
或許對於不同種類的undiscounted continuing形式的最優方案有細微的差別,但是簡單的根據他們每一步的期望反饋來組織策略是足夠的。平穩狀態分佈是一個特殊分佈,在這個分佈下根據當前策略選擇動作,還會依然留在當前分佈裡。也就是
在平均反饋的設定裡,反饋值被定義為獎勵值與獎勵期望差值的形式:
這種叫做差值反饋,相應的值函式叫做差分值函式。他們具有和之前相似的形式,即,以及,對於相應的最優形式也是一樣。他們的貝爾曼等式也是類似,只是移去了discounting係數並且把獎勵值替換為獎勵與期望獎勵的差值。:
同樣也有兩個差分形式的TD誤差:
其中是時間t時對於平均期望的估計。使用這些替代的定義,就可以使用前面大部分的演算法以及大部分的理論分析結果而不需要修改。比如對於平均反饋版本的半梯度Sarsa演算法,除了使用差分版本的TD誤差其他都一樣,也就是:
練習10.4 把值更新的部分改寫為差分形式。
練習10.5 只需要值更新的時候改變TD error
練習10.6 2/3 -1/3 -1/3
練習10.7 0 0
練習10.8 使用更穩定,因為是非取樣形式而是估計的形式。
10.4 Deprecating the Discounted Setting
對於連續問題,discounted的問題設定在表格情形中很有用,這種設定下每個狀態的反饋可以被區分並用來平均。但是在函式近似的情形下是否應該使用這種設定是存疑的。
考慮一個無始無終的無限獎勵序列,每個狀態之間也沒法區分。這些狀態只用很少的特徵向量來表示而且互相之間難以區分。因此真正擁有的是獎勵序列和動作。可以評價演算法的方式其中之一就是對每個獎勵值進行平均。使用discounting就使用係數加權和的形式,除此之外沒有別的方法。實際上對於策略使用discounted法得到的平均獎勵為,也就是說實際上就是和對獎勵值進行平均是一樣的。discounted係數實際上並沒有起作用。具體的證明如下:
整個證明說明了在使用近似函式的on-policy連續問題裡使用discounted形式的反饋和使用平均值是一樣的。也可以依然繼續使用discounted的形式,但是其引數在這裡從問題的引數變成了解決方案的引數。但是這樣我們沒辦法保證得到最優平均獎勵值。
使用discounted control設定出現困難的根本原因在於在函式近似裡我們失去了policy improvement theorem。在我們改變策略來改進一個狀態discounted值的時候並不能保證改進了整體的策略。而這個保證是整個強化學習control問題的根本,因為使用了函式逼近我們失去了它。實際上,policy improvement理論的缺失也是total-episodic和平均獎勵設定的理論空白。一旦引入了函式逼近我們就沒有辦法保證任何設定下對於策略的改進。十三章我們會介紹對於引數化策略的替代型別的強化學習演算法以及一個扮演著和policy improvement理論相似角色的理論叫做 policy-gradient 理論。但是對於當前學習動作值的演算法還沒有一個本地的優化保證。
10.5 Differential Semi-gradient n-step Sarsa
為了泛化為n步自舉,我們需要考慮n步版本的TD error,首先把n步反饋寫為近似函式的差分形式:
之後n步TD error為:
然後就可以應用到先前的半梯度Sarsa更新中。整個演算法的虛擬碼為:
10.6 Summary
這章我們把引數化函式近似和半梯度下降法延伸到control演算法中。對於episodic的情況是很直接的,但是對於continuing的清醒需要引入一個全新的問題設定也就是最大化每一時間步驟的平均獎勵。在使用了近似的情形下discounted的形式不能使用到control演算法中。在近似函式的情形下大部分策略不能用值函式來表示。對於剩下的需要選擇任意策略,使用標量平均反饋可以很容易的做到。
平均獎勵的設定引入了新的差分形式的值函式,貝爾曼等式和TD error。但是這些都和老版的形式等同,概念上的變化很小。也有一組新的使用差分形式演算法的集合。