1. 程式人生 > >David Silver 強化學習Lecture4:Model-Free Prediction

David Silver 強化學習Lecture4:Model-Free Prediction

    David Silver強化學習系列部落格的內容整理自David Silver 強化學習的PPT和知乎葉強強化學習專欄。

1 Introduction

    前三節筆記中,通過動態規劃能夠解決環境已知的MDP問題,也就是已知<S,A,P,R,γ>,已知environment即已知轉移矩陣P與reward函式R。但是很多問題中environment是未知的,不清楚做出了某個action之後會變到哪一個state,也不知道這個action好還是不好,在這種情況下需要解決的prediction和control問題就是Model-free prediction和Model-free control。顯然這種新的問題只能從與environment的互動得到的experience中獲取資訊。
    這一章節筆記要解決的問題是Model-free prediction,即未知environment的Policy evaluation,在給定的policy下,求解每個state的value function是多少。

2 Monte-Carlo Learning

2.1 Monte-Carlo Reinforcement Learning

    蒙特卡羅強化學習 (Monte-Carlo reinforcement learning, MC 學習): 指在不清楚 MDP 狀態轉移概率和即時獎勵的情況下,直接從經歷完整的狀態序列 (episode) 來估計狀態的真實價值,通常情況下某狀態的價值等於在多個episode中以該狀態算得到的所有收穫的平均。
    完整的狀態序列 (complete episode):指從某一個狀態開始,agent與環境互動直到終止狀態,環境給出終止狀態的獎勵為止。完整的狀態序列不要求起始狀態一定是某一個特定的狀態,但是要求個體最終進入環境認可的某一個終止狀態。
    比如,現評估某狀態

s的價值函式。我們取樣了兩個episode,從一個episode裡面得到的回報是5,然後下一個episode裡面的得到的回報是7,我們可以從起始狀態來評估此狀態的價值函式=(5+7)/2=6。
    注:收穫不是針對Episode的,它存在於Episode內,針對於Episode中某一個狀態。從這個狀態開始經歷完Episode時得到的有衰減的即時獎勵的總和。從一個Episode中,我們可以得到該Episode內所有狀態的收穫。當一個狀態在Episode內出現多次,該狀態的收穫有不同的計算方法,下文會講到。
    蒙特卡羅強化學習有如下特點:不依賴狀態轉移概率,直接從經歷過的完整的狀態序列中學習,使用的思想就是用平均收穫值代替狀態價值。
理論上完整的狀態序列越多,結果越準確。

2.2 Monte-Carlo Policy Evaluation

    我們可以使用蒙特卡羅強化學習來評估一個給定的策略。基於特定策略π的一個 Episode資訊可以表示為如下的一個序列:S1,A1,R2,S2,A2,...,St,At,Rt+1,...,Skπ
    其中,Rt+1表示agent在狀態St執行一個行為At後,離開該狀態獲得的即時獎勵。很多時候,即時獎勵只出現在Episode結束狀態時,但不能否認在中間狀態也可能有即時獎勵。
    t時刻狀態St的收穫可以表述為:Gt=Rt+1+γRt+2+...+γT1RT
    其中,T為終止時刻。該策略下某一狀態s的價值:vπ(s)=Eπ[Gt|St=s]i=tNGiN
    在Monte-Carlo policy evaluation中,價值函式的取值從期望簡化成了均值。當N逼近時,我們可以得到確切的函式期望值。

2.3 First-Visit Monte-Carlo Policy Evaluation

    不難發現,在蒙特卡羅演算法評估策略時要針對多個包含同一狀態的完整狀態序列求收穫繼而再取收穫的平均值。如果一個完整的狀態序列中某一需要計算的狀態出現在序列的多個位置,也就是說個體在與環境互動的過程中從某狀態出發後又一次或多次返回到該狀態。在這種情況下,根據收穫的定義,在一個狀態序列下,不同時刻的同一狀態其計算得到的收穫值是不一樣的。我們有兩種方法可以選擇,一是僅把狀態序列中第一次出現該狀態時的收穫值納入到收穫平均值的計算中;另一種是針對一個狀態序列中每次出現的該狀態,都計算對應的收穫值並納入到收穫平均值的計算中。兩種方法對應的蒙特卡羅評估分別稱為:首次訪問 (frst visit) 和每次訪問 (every visit) 蒙特卡羅評估。
    首次訪問蒙特卡羅評估: 給定一個策略,使用一系列完整Episode評估某一個狀態s時,對於每一個Episode,僅當該狀態第一次出現時列入計算。
    假設有n個episode,評估狀態s。對於第一個episode,查詢該episode中s第一次出現的位置,如果該episode中存在狀態s,則計數器N(s)加1,並計算此時該狀態的收穫值Gt。對於第二個episode,也是如此…統計完n個episode後,計算平均值。
這裡寫圖片描述

2.4 Every-Visit Monte-Carlo Policy Evaluation

    每次訪問 (every visit) 蒙特卡羅評估:在給定一個策略,使用一系列完整Episode評估某一個狀態s時,對於每一個Episode,計算s的每一次出現的平均值。
這裡寫圖片描述
    
    在本演算法中,不論是首次訪問還是每次訪問,都需要記錄兩個值:
    狀態s被訪問到的次數N(s),每次訪問時return之和S(s);遍歷完所有的episode之後,得到狀態s的價值函式V(s)。
    其中,首次訪問是在一個episode中只記錄第一次訪問到的s;每次訪問是在一個episode中每次訪問到s都記錄下來。

2.5 Incremental Mean

    在使用蒙特卡洛方法求解平均收穫時,需要計算平均值。通常計算平均值要預先儲存所有的資料,最後使用總和除以此次數。這裡介紹了一種更簡單實用的方法,使得在計算平均收穫時不需要儲存所有既往收穫,而是每得到一次收穫,就計算其平均收穫。
這裡寫圖片描述
    累進更新平均值利用前一次的平均值和當前資料以及資料總個數來計算新的平均值。把這個方法應用於蒙特卡洛策略評估,就得到下面的蒙特卡洛累進更新。
這裡寫圖片描述

3 Temporal-Difference Learning

    和蒙特卡洛學習一樣,它也從Episode學習,不需要了解模型本身;但是它可以學習不完整的Episode,通過合理的引導(bootstrapping),先估計某狀態在該狀態序列完整後可能得到的收穫,並在此基礎上利用前文所述的累進更新平均值的方法得到該狀態的價值,再通過不斷的取樣來持續更新這個價值。
    具體地說,在 TD 學習中,演算法在估計某一個狀態的收穫時,用的是離開該狀態的即時獎勵Rt+1與下一時刻狀態St+1的預估狀態價值乘以衰減係數 γ組成: