《強化學習Sutton》讀書筆記(三)——動態規劃(Dynamic Programming)

此爲《強化學習》第四章。

策略評估

策略評估 (Policy Evaluation) 首先考慮已知策略π(a|s) ,求解vπ(s) 。根據上一節中狀態值函數的Bellman等式,有

vπ(s)=aπ(a|s)srp(s,r|s,a)[r+γvπ(s)]

如果我們已知整個環境,那麼對每個狀態s 都可以列出一條這樣的方程,聯立,即可解出vπ(s)

此外,我們也可以使用迭代法求解。首先,隨機在每個狀態上給定一個值函數v0(s) ,然後按照如下的迭代進行:

vk+1(s)=aπ(a|s)srp(s,r|s,a)[r+γvk(s)]

顯然,vk=vπ 是上述方程的不動點。不加證明的給出,隨着迭代的進行,vk 可以收斂到vπ 。此算法被稱爲迭代策略評估 (Iterative Policy Evaluation) 。書中給出了迭代策略評估的僞代碼,如下圖。

迭代策略評估僞代碼

策略改良

已知策略π ,並在策略評估中計算得到了各個狀態s 的值函數v(s) ,然後考慮改良策略,提升值函數。策略改良 (Policy Improvement) 的方法非常直觀,在狀態s 下,如果每個行爲都固定地指向唯一的下一個狀態s ,那麼基於貪心算法,直接選擇v(s) 最大的行爲即可。更一般地,如果每個行爲都符合一個概率分佈到下一個狀態St+1 ,得到獎勵Rt+1 ,那麼也基於貪心算法,選擇一個期望最大的行爲作爲策略即可。它的數學描述如下:

π(s)=argmaxaqπ(s,a)=argmaxaE[Rt+1+γvπ(St+1)|St=s,At=a]=argmaxasrp(s,a|s,a)[r+γvπ(s)]

可以證明(詳見書本),vπ(s)vπ(s) 。如果vπ(s)=vπ(s) ,則根據最優Bellman等式,那麼ππ 都是最優策略。

策略迭代

由前面兩節,很容易看到,首先隨機給出一個策略π0 ,然後進行策略評估得到一組值函數vπ0(s) ,再策略改良得到一個更優的策略π1 ,……,反覆迭代即可使策略越來越優,趨向於最優策略,如下圖所示。

策略迭代圖例

其中,E 代表策略評估,I 代表策略改良。這樣的強化學習算法被稱爲策略迭代 (Policy Iteration) 。它的僞代碼如下圖。

策略迭代僞代碼

值迭代

策略迭代一個主要的問題在於策略評估,無論解方程法還是迭代法都會比較耗時。一種替代方案爲值迭代 (Value Iteration) ,過程如下:

vk+1(s)=maxaqk(s,a)=maxaE[Rt+1+γvk(St+1)|St=s,At=a]=maxasrp(s,a|s,a)[r+γvk(s)]

它的式子和策略改良非常類似,唯一的不同點在於,策略改良尋找了當前狀態值函數的更優策略,而值迭代不求策略,而是直接用當前的狀態值函數來影響附近狀態的值函數。從這個角度出發,值函數省略了策略評估的步驟,不再需要對一個策略求出它具體的狀態值函數。

另一個思考的角度是,值迭代表達式和Bellman等式幾乎一樣,因此也是一種不動點迭代的方法。兩種思路的證明過程略,但直觀上都還好理解。值迭代的僞代碼如下。

值迭代僞代碼

異步動態規劃

當前我們討論的策略迭代和值迭代都是同步的,即我們先保存好當前迭代的值函數,然後使用它們求解下一迭代的值函數。但有時,狀態空間非常龐大,以至於遍歷是一件比較耗時的操作。異步動態規劃在原來的值函數上直接修改,且順序不定(可能出現某個狀態迭代過好幾輪,而另一狀態仍未迭代的情況)。這樣的算法節省了空間,同時爲實時交互提供了可能。然而,異步動態規劃可能會提升迭代效率,也可能會降低迭代效率,這是無法保證的。

泛化的策略迭代

策略迭代通常分爲兩步,一是從當前的策略得到值函數(策略評估),二是從當前的值函數按照貪心算法得到更好的策略(策略改良)。這兩步交替進行,比如策略迭代法所做的那樣。但這不是必須的,我們不需要等上一步完全結束後再進行下一步。比如在值迭代中,策略評估只進行了一小步,我們就立刻開始進行策略改良。在異步方法中,策略評估和改良更加耦合和細化。

但無論如何,它們的思路都是類似的,即基於策略評估和策略迭代。拋開不同方法具體的實現方式不同,它們都可以簡單地用下圖進行概括:

泛化策略迭代圖示

動態規劃的效率

動態規劃可能不適合用來解規模非常大的問題,但和其他求解MDP的方法相比,它還是高效的。在最差情況下,DP也能夠在多項式複雜度內找到最優策略。有時,DP被認爲會受限於維度詛咒 (Curse of Dimension) ,因爲狀態的數量可能會隨狀態變量數量的增加而呈指數級增長。但作者認爲,這是問題本身複雜度提升,不能說明DP不是一個好方法。即使對於大規模的問題,DP相比於直接搜索或者線性規劃仍然有很大的優勢。

在實踐中,DP可以處理百萬級狀態數量的問題。策略迭代和值迭代都被廣泛使用,並且各有優劣。通常這些方法都能比它們理論最低收斂速度收斂得快,尤其當它們從一個比較好的起始點出發開始迭代。對於更大規模的問題,異步方法將更加合適。

參考文獻

《Reinforcement Learning: An Introduction (second edition)》Richard S. Sutton and Andrew G. Barto

上一篇:《強化學習Sutton》讀書筆記(二)——有限馬爾科夫決策過程(Finite Markov Decision Processes)
下一篇:《強化學習Sutton》讀書筆記(四)——蒙特卡洛方法(Monte Carlo Methods)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章