強化學習筆記7—多步自舉
本章將統一前面兩章展示的方法。無論MC或單步TD方法不可能總是最好,多步TD方法擴展了兩者,因此可以平滑地從一個到另一個轉換。它們張成了一個MC方法在一端單步TD另一端的光譜,通常中間的方法比兩端表現更優。多步TD的另一好處是它解放了時間步的嚴苛,使用單步方法同一步內確定行動改變的頻率和自舉完成的時間間隔。許多應用希望能快速更新以考慮所有的改變,但自舉在狀態發生顯著或可辨改變的時間長度才發揮最好。多步方法能使自舉在較長時間間隔發生。多步方法通常與合格追蹤(eligibility trace)有關。如往常一樣,先考慮預測問題然後是控制問題,即先考慮多步方法如何在幫助預測固定策略作為狀態函數的回報,然後擴展到行動價值和控制方法。
7.1 ??-步TD預測
在MC和TD之間的方法空間是什麼呢?考慮從生成的樣本小節中評估,MC方法為每個狀態基於此狀態到節末觀測到激勵的整個序列執行更新;而單步TD方法的更新則僅基於下一個激勵,引導(bootstrapping)下一步狀態的價值作為剩餘激勵的代表(proxy)。一種中間方法就是基於中間個數的激勵更新。圖7.1描繪出了的-步更新譜:
使用-步備份的方法依然是TD方法,因為它依然是根據與後面估計的差異來改變前面的估計。這種將時間差分擴展到步的方法稱為-步TD方法。更正式地,將應用到狀態更新視為狀態-激勵序列的結果。MC方法中的估計在所有回報的方向上更新:。是節的最後一步。稱這個量為更新目標(the target of the backup)。一步更新的目標稱為一步回報(one-step return):。的下標表示這是使用時間到的截斷回報。在兩步之後這樣做也有同樣的含義,兩步備份的目標就是兩步回報:。同樣,任意步備份的目標就是-步回報,定義為對滿足並且所有的:
所有的步回報可以認為是全回報的近似,在步後被截斷然後用修正剩餘項。若(即步回報到達或超出終止點),則-步回報就是普通的全回報(若)。注意-步回報涉及從到轉移時還不可得的未來激勵和狀態,能得到的最早時間是,因此使用-步回報的狀態-價值學習演算法就是:
而所有其他狀態價值保持不變時,。稱這個演算法為步TD(-step TD)。注意在每節前步沒有做任何變化,作為彌補等量更新會在節末,即終止後和下一節開始前完成。完整的偽代碼如下:
-步回報使用價值函數來修正後失去的激勵,它們的一個重要特性是在最壞-狀態情況下,它們的期望保證是比更優的估計。也即對所有,期待-步回報最糟的誤差保證小於或等於下最壞誤差的倍:
這被稱為-步回報的誤差減小特性(error reduction property),用這個特性就能展現在一些合適的技術條件下,所有-步TD方法收斂到正確的預測。因此-步TD方法就形成了一個可行方法族,其中一步TD和MC是兩端成員。
示例7.1 隨機遊走的步TD方法:考慮將-步TD方法應用在示例6.2描述的隨機遊走任務上。假設第一個節從中心開始直接向右經到達右邊終止點,獲得1的回報。所有狀態的估計價值以中間值開始,作為這個經驗的結果,單步方法會改變最後的狀態估計為1;兩步方法會增加終結前兩個狀態和都為1;三步或任意的n-步方法都會將三個訪問過的狀態的價值都增加到1。
那麼怎樣的值更好。圖7.2展示了在一個更大的19個狀態的隨機遊走任務上(左邊結果為-1,其餘0,本章作為運行示例)一個簡單經驗測試結果。每個參數設定的衡量是節末19個狀態的預測和它們真實價值間方根平方差,然後在整個試驗前10節和100次重複上求均值。注意n值在中間的方法表現最好。這展示了TD和MC方法擴展到的-步方法是怎樣能潛在比兩個端點方法表現得更好的。
7.2 -步Sarsa
-步方法怎樣用於控制呢?本節以直接的方式結合-步方法和Sarsa產生一個on-policy控制方法,稱為-步Sarsa,上一章描述的初始版本此後稱為單步Sarsa或Srasa(0)。主要思想是先將狀態轉換為行動(狀態-行動對),再使用一個-貪心演算法。-步Sarsa的備份圖(圖7.3)與-步TD(圖7.1)的十分相似,除了Sarsa都是以行動開始和結束。
定義估計行動價值的-步回報:
若,則。因此自然的演算法就是:
而其他狀態的價值保持不變,,對所有滿足或的。這就是被稱為-步Sarsa的演算法。完整偽代碼如下:
而解釋相比單步方法它能加速學習的原因的示例在圖7.4給出:
關於期望Sarsa的-步版本的備份圖在圖7.3的最右側;與-步Sarsa的非常相似,除了最後一個元素的是一束策略下由自身概率加權的所有行動。演算法能用像-步Sarsa一樣的方程描述,除了-步回報定義為:
對所有滿足和的和。
7.3 基於重要性採樣的??-步off-policy學習
Off-policy學習就是通過遵循行為策略學習策略的價值函數。通常是當前行動-價值函數的貪心策略,則更具探索性,可以是-貪心。要使用的數據必須考慮兩個策略的差異,使用被採取行動它們採取的相對概率。在步方法中,回報在步上構建。比如,要構造簡單的步TD版本,時間的更新(實際在時間做)可以簡單地由權衡:
其中,被稱為重要性採樣率,是兩個策略下採取從到的個行動的相對概率:
若有行動在中採用的概率遠大於,這會增大隨後給定回報的權重。它是的典型因此合乎情理,但卻很少被選擇因此很少出現在數據中,作為彌補在出現時必須給它過大權重。若事實上兩個策略相同(則變為on-policy)則重要性採樣率總是1。因此新的更新(7.7)可以推廣並完全取代先前的步TD更新。同樣,先前的-步Sarsa更新也可以被一個簡單的off-policy形式,即對:
注意這裡重要性採樣的開始比-步Sarsa晚一步。這是因為這裡更新的是狀態-行動對。不必關注會選擇行為的概率,既然已經選擇了它就要完全用隨後行為的重要性採樣從所發生的學習。完整演算法的偽代碼如下:
-步期望Sarsa的off-policy版本使用Sarsa像上面一樣的更新規則,除了重要性採樣率少一個因子。也即上面等式會用來代替,並且也會用期望Sarsa版的-步回報(7.6)。因為在期望Sarsa中,所有可能的行動都會在最後一個狀態考慮,實際採取的沒有影響,也不必修正。
7.4 *每激勵off-policy方法
前一節展示的多步off-policy方法確實非常簡潔清晰,但可能不是效率最高的。一種更精巧的方法是使用像5.9節介紹的每一激勵(per-reward)重要性採樣的思想。先注意常規多步回報(7.1),像所有回報一樣可以寫為遞歸形式:。所有結果的經驗,包括第一個激勵和下個狀態必須用時間的重要性採樣率加權。假定時間的行動永遠不會被選中,則,則簡單加權會導致-步回報也為0,這用作目標策略時會導致高方差。因此使用一個替代-步回報的off-policy定義為:
其中是價值的某個估計,並且(對精確用於的時間步估計是有點模糊的,因為選擇依賴於特定演算法的概率)。現若,目標與估計一樣不發生變化。重要性採樣率為0表示要忽視這個樣本,因此使得估計不變似乎是適當的結果。注意第二個額外的項並不改變期待更新,第二項的期望期望0。同樣注意off-policy定義(7.10)是先前-步回報的on-policy定義(7.1)的嚴格推廣,因這兩個在on-policy情形上是等價的。
對一個傳統-步方法,與(7.10)結合使用的學習規則是-步TD更新(7.2),除了嵌入在中,沒有明確的重要性採樣率。這種情況下,近似價值函數在時間索引上有。
對行動價值,-步回報的定義對應於期望Sarsa,有一點不同是因為第一個行動在重要性採樣中不發揮作用。我們學習這個行動的價值並且在目標策略下不可能發生也沒關係。它已被採用,現在滿單元的權重必須給到激勵和跟隨它的狀態。重要性採樣僅會應用到它後面的行動。行動價值-步回報的遞歸定義為,對滿足的:
其中。完整的-步off-policy行為-價值函數預測方法可以使用時間的估計來結合(7.11)和(7.5)。
重要性採樣使得off-policy學習得以實現,但增加了更新的方差。高方差迫使使用小步長參數,導致學習很慢。off-policy的訓練慢於on-policy的訓練很可能是無法避免的,畢竟數據與正在嘗試學習的更不相關。但是也有一些方法改善,一種可能是快速調整步長到觀測到的方差,就像Autostep方法;另一個很有前途的方法是不變更新。
7.5 無重要性採樣的off-policy學習:??-步樹備份演算法
本節介紹一個不使用重要性採樣的學習方法。第6章的Q-學習和期望Sarsa是一步情形,本節展示-步的方法,稱為樹備份演算法(tree-backup algorithm)。演算法的思想如下圖所顯示,中心線向下在圖上標出的是三個樣本狀態和激勵,以及兩個樣本行動,表示初始狀態-行動對後發生事件的隨機變數。每個狀態的兩側是未選擇的行動(認為最後一個狀態的所有行動都還未被選擇)。因為沒有未選中行動樣本數據,引導並使用它們值的估計來形成更新的目標。這略微擴展了備份圖的思想。目前為止我們總是結合沿途的激勵(適當折扣)和底部節點的估計價值向一個目標更新並評估圖表頂部節點的價值。在樹備份中,目標包含所有這些加上所有層次懸在側邊搖擺行動節點價值的估計。
更精確地說,這個備份從樹葉子節點估計的行動價值開始,對應採取行為的內部的行動節點則不參與。每個葉子節點用於以正比於目標策略下發生概率的權值促成目標。因此第一層的一個行動以權值貢獻,除實際採取的行為未做任何貢獻,它的概率用於加權第二層的行動。因此每個未選中第二層行動以權值貢獻,每個第三層行動貢獻的權值是,等等。就好像圖中到行動的每個箭頭都由此行動在目標策略下被選中的概率加權,而權值不僅適用於此行動,還有它下面的整棵樹。
可以將樹備份是為樣本轉移(從每個行動到隨後狀態)和全備份(從每個狀態考慮所有可能的行動和它們發生的概率)的交替序列。樣本轉移也有多種發生的概率,但因為它們已經給定行為選擇因此獨立於策略,所以無需考慮這些;它們會引入方差而非偏差。
樹備份演算法的單步回報(目標)與期望Sarsa的相同,可以寫為:
其中是期望Sarsa中TD誤差的修改形式:
由這些,樹備份演算法的一般-步回報可以定義為遞歸形式,然後就像TD誤差之和:
慣例下0個元素的累積為1。此目標然後與-步Sarsa的行動-價值更新規則一起使用:
而所有其他狀態-行動的價值保持不變,對滿足或,有。演算法的偽代碼如下:
7.6 *統一演算法:-步
目前本章已經介紹了三種不同的行動-價值備份,分別對應於圖7.5展示的前3個備份圖。-步Sarsa有所有採樣的轉移;樹備份演算法有所有狀態到行動全部分支而非採樣的轉移;而??-步期望備份有所有採樣轉移,除最後的狀態到行動轉移是在所有分支上的期望值。將它們統一起來的一個思修是圖7.5的第4個備份圖,就是在逐步基礎上決定是否要像Sarsa中那樣採取行動為樣本,或者考慮用樹備份中那樣的所有行動上的期望來替代。然後,如果選擇總是採樣,就獲得了Sarsa;而若選擇絕不採樣,則獲得了樹備份演算法。期望Sarsa就是除最後一個外都選擇採樣的情形。當然還有很多其他可能性,就像圖中最後的圖表所示。為進一步提高概率,可以可以考慮一個在採樣和期望中的連續變體。 表示在時 採樣的程度。其 表示完全採樣, 表示純期望。隨機變 可以設置為狀態、行動、或狀態-行動對的函數。稱這個新提出的演算法 - 。
現在建立-步的方程。首先留意到Sarsa(7.4)的-步回報可以寫成依據其本身基於純樣本的TD誤差:
這表明如果將TD誤差推廣到從期望使用滑動到其採樣形式,我們就能包含這兩種情況:
照例
使用這些可以將的回報定義為:
在on-policy訓練中,此回報已經能像-步Sarsa(7.5)中那樣在更新中使用;對於off-policy的情況,則需要將考慮進重要性採樣率,可以更普遍地定義為:
這之後就可以對-步Sarsa(7.9)使用普遍的(off-policy)更新。完整的演算法如下:
推薦閱讀:
※DMLC團隊發布GluonCV和GluonNLP:兩種簡單易用的DL工具箱
※2018智能無人系統大會
※伯克利提出DeepMimic:使用強化學習練就18般武藝
※《出走的門徒之一》地平線余凱:造物主的一小步
※你所不知道的寬度學習系統:一種不需要深度結構的高效增量學習系統
TAG:人工智慧 |