《強化學習》第二版 閱讀隨筆4

第四章——動態規劃(Dynamic Programming)

動態規劃(Dynamic Programming,DP)是一類求取最優化策略的算法。由於對模型環境假設的理想化以及巨大的計算開銷致使在強化學習領域的應用實分有限。但動態規劃對於以後其他強化學習算法的理解是很有幫助的,其他強化學習算法都在嘗試以更少的計算開銷和更低的環境要求來達到與動態規劃相同的效果。
動態規劃和強化學習共同的思想是使用價值函數(value function)來尋找最優化的策略。正如在第三章中我們討論的那樣,只要我們知道符合貝爾曼方程(遞歸關係)的價值函數,理論上我們很容易就可以得到最優策略。
在這裏插入圖片描述

4.1 策略估計(預測)

在動態規劃(DP)中,將獲取狀態-價值函數vπv_\pi(state-value function)的過程稱作策略估計(policy evaluation)。

迭代策略評估(iterative policy evaluation)

如果環境的變化情況是已知的(已知環境模型),那麼狀態-價值函數vπ(s)v_\pi(s)
在這裏插入圖片描述
可以表示成自變量爲系統狀態ss的方程組,sSs\in{S}γ<1\gamma<1或是有限的狀態數是vπv_\pi的存在性和唯一性的保證。最初我們以隨機數初始化v0v_0,隨後我們就可以使用貝爾曼方程來計算下一個狀態的近似值,這就是狀態更新的規則。數學語言表示爲
在這裏插入圖片描述
kk\rightarrow\infty,通過上述過程推導所得的vkv_k最終會收斂到vπv_\pi,我們遍歷當前狀態ss所有可能的下一狀態ss',從舊的價值函數vkv_k中提取新的價值函數vk+1v_{k+1}的估計(期望值),這種算法被稱作迭代策略估計(iterative policy evaluation),也就是利用了貝爾曼方程的遞歸特性。
上面我們提到,使用迭代策略估計,環境模型必須是已知的,也就是對於模型採取的任何行爲(action)所獲得的獎勵(reward)是已知的,進而對於迭代策略估計,每一次狀態更新我們都需要遍歷所有可能的狀態,以回報的期望來推導對價值函數的估計,我們稱這種操作爲期望更新(expected update),這是動態規劃(DP)的狀態更新模式。—— All the updates done in DP algorithms are called expected updates because they are based on an expectation over all possible next states rather than on a sample next state.(Page 75)

4.2 策略優化(Policy Improvement)

Our reason for computing the value function for a policy is to help find better policies. 我們對價值函數的計算是爲了尋找更好的策略。
策略改進的過程可以通過下面的式子來表達。
在這裏插入圖片描述對於行爲-價值函數qπ(s,a)q_\pi(s, a),即在狀態ss下采取行爲aa所能獲取回報的期望值。如果有qπ(s,a)vπ(s)q_\pi(s, a)\geq{v_\pi(s)}說明在狀態ss出現時,採取行爲aa比遵循原有策略π\pi有可能獲取更高的回報(reward)。所以agent將在狀態ss再次出現時採取行爲aa而不是繼續原有的策略,本質上來說其實就是產生了新的策略,這就是策略改進的過程。
如果將新產生的策略用符號π\pi'表示,上面的過程可以用數學語言描述爲:qπ(s,π(s))vπ(s),sSq_\pi(s,\pi'(s))\geq{v_\pi(s)},s\in{S}很容易我們可以知道vπ(s)vπ(s)v_{\pi'}(s)\geq{v_\pi(s)}很自然地我們可以將這種思想推廣到同時對所有狀態下的行爲-價值函數進行遍歷,從而得到一個全局的最優策略。
在這裏插入圖片描述
如果行爲策略已知,也就同時獲得了價值函數,簡單的替換符號後策略π\pi'的價值函數可以被表示爲:
在這裏插入圖片描述
比較貝爾曼最優化方程中的狀態-價值函數表達式,可以發現兩者的形式完全一致。這也就從側面說明了貝爾曼優化方程的正確性,這或許也是動態規劃(DP)和強化學習之間微妙的聯繫之一吧。

在這裏插入圖片描述
通過整個策略優化的過程我們不難看出其背後的貪心思想,但同時我們又不難證明這樣得到的結果一定會優於原有的策略。對於以貪心思想優化原有策略價值函數的方法我們稱爲策略優化(policy improvement)。
如果有多個行爲方式ss同時取到最大的q(a,s)q(a,s),那麼應該從中隨機選取一個。

4.3 策略迭代(Policy Iteration)

隨着狀態的迭代和策略優化過程的進行,模型的策略π\pi會不斷得到優化,這一價值(value)和策略(policy)單調遞增的過程可以用下面的序列來描述:
在這裏插入圖片描述
其中E\stackrel{E}{\longrightarrow}代表對價值π\pi的評估(evaluation),而I\stackrel{I}\longrightarrow代表對策略的優化(improvement)。這一迭代過程的每一環都可以使模型的策略更加合理,直到最優。因爲一個有限馬爾可夫決策過程的狀態是有窮的,所以最優的策略和價值函數必須在有限的步驟內收斂。
這樣一個尋找最優策略的迭代過程稱爲策略迭代(policy iteration)

4.4 價值迭代(Value Iteration)

策略迭代需要不斷依次進行價值評估和策略優化步驟,造成每個迭代週期需要多次遍歷狀態空間,非常消耗資源。當迭代次數\rightarrow\infty時價值函數將達到最優,但通常當迭代一定次數後,策略趨於穩定,僅狀態價值函數會繼續收斂(各個狀態之間的價值估計v(s)v(s)差距增大,但是已經不影響爲行爲模式aa做出選擇),爲了簡化策略迭代的過程,我們一方面可以考慮適時中止迭代也可以從簡化策略迭代本身入手。
所謂價值迭代就是在策略迭代的基礎上去除策略優化的步驟而僅保留價值評估步驟。
在上面介紹的策略迭代的基礎上,我們考慮僅進行價值的估計,而不再進行策略評估這個方法被稱作價值迭代(value iteration)。該過程的數學描述爲:在這裏插入圖片描述對比迭代策略估計(iterative policy evaluation)的原式:在這裏插入圖片描述
我們不難發現,價值迭代(Value Iteration)以貪心思想選擇最大化當前價值函數vk+1(s)v_{k+1}(s)的行爲方式aa,而不需要對當前狀態所有的行爲模式進行評估。
通過與最優化貝爾曼方程的對比:在這裏插入圖片描述我們可以發現,它們幾乎是完全一致的,價值估計以迭代估計的更新方式(這裏指從vkv_k中估計vk+1v_{k+1}的收斂方式)截取其中的一步。
無論是從最優化貝爾曼方程的角度還是本章中之前論述的策略優化角度來理解價值迭代方法,都可以看出價值迭代一定會向最優化的方向收斂。
最後,來看一下如何判斷價值迭代的終止條件:每次遍歷更新的幅度小於閾值。
爲了更快的收斂速度,可以考慮在價值迭代中加入適當頻率的策略評估。

4.5 異步動態規劃(Asynchronous Dynamic Programming)

基於我們目前討論,動態規劃(DP)的主要缺陷是在馬爾可夫決策過程中需要一次次遍歷整個狀態空間。如果狀態空間過大,那麼問題將變得非常棘手。
異步動態規劃算法可以避免掃描整個狀態空間而造成的計算開銷問題。這類算法可以以任意順序更新狀態值,使用現有的狀態數據。不同狀態之間的更新頻率可以不同步。但是爲了保證能正確收斂而不陷入局部最優,異步動態規劃算法也必須保證所有必要的狀態的更新,只是在更新狀態的選擇上有較高靈活性,可以選擇性的忽視那些對模型優化無意義的狀態,或是隻在模型遇到對應狀態時再更新狀態的價值估計。
更新過程可以使用價值迭代和策略迭代結合的方式。
當然,避免對狀態空間的掃描不代表可以減少計算量,這樣做的好處是可以避免模型的每一步決策都會耗費不可接受的等待時間和計算開銷導致模型不可用。
這樣的思路與我們日常生活經驗的積累過程是類似的,俗話說,人算不如天算,有時候我們不可能在頭腦中預演所有可能的狀況,只能走一步看一步,喫一塹長一智。

4.6 廣義策略迭代(Generalized Policy Iteration——GPI)

通過上面的討論我們知道,策略迭代(policy iteration)由兩部分構成,一個是對策略的評估(evaluation)另一個是對策略的改進(improvement)。策略評估是通過價值函數來評估現行政策,而策略改進則是以貪心思維去最大化新策略下的價值函數。在策略迭代過程中,兩個步驟交替進行,但是實際上並沒有比較進行如此頻繁的更新操作,原因已經在異步動態規劃部分說明。
在這裏插入圖片描述
我們定義屬於廣義策略迭代(GPI)來描述策略評估和策略優化這兩個過程之間的關係。幾乎所有的強化學習算法都可以用GPI來描述。這些強化學習方法都有各自的策略和價值函數。它們之間的關係如圖:在這裏插入圖片描述策略優化過程實際上是通過貪心思想最大化價值函數,價值函數因爲策略的優化過程而改變,改變的結果又反作用於策略的優化過程,使其在新的價值函數基礎上進一步優化。如果價值函數和策略都達到穩定、不再變化的狀態,代表價值函數和策略均已達到最優。
從長遠來看,這兩個過程相互作用,找到一個單一的聯合解決方案,即最優價值函數和最優策略。這種相互掣肘的關係示意如下。
在這裏插入圖片描述

4.7 動態規劃的效率(Efficiency of Dynamic Programming)

DP may not be practical for very large problems, but compared with other methods for solving MDPs, DP methods are actually quite efficient. 考慮最壞的情況,動態規劃尋找最優解(策略)的時間是行爲和狀態數的多項式。動態規劃要優於直接在決策空間中暴力搜索,並且一定可以找到最優解(儘管此時的計算量可能爲knk^n,k爲行爲數,n爲狀態數)。相對於線性規劃和直接搜索,動態規劃更適合於解決狀態和行爲數量級更大的複雜問題。對於複雜問題中出現的維數爆炸現象,可以通過異步動態規劃或其他GPI的變體來解決。

4.8 總結

在本章中,主要介紹了動態規劃的基本思想和算法,動態規劃與求解有限MDP問題有關。策略評估(policy evaluation)是指對給定策略的價值函數的迭代計算。策略優化(policy improvement)是指根據策略的價值函數計算對策略進行改進。將這兩種計算結合起來,我們得到了策略迭代和值迭代這兩種最流行的DP算法。這兩種方法都可以用於可靠地計算有限MDP問題的最優策略和價值函數,前提是完全瞭解該MDP問題。
傳統的動態規劃(DP)算法需要不斷遍歷掃描整個狀態集,通過迭代策略評估(iterative policy evaluation)進行期望更新(expected update)。每一輪操作僅更新一個狀態的值,但實際上更新過程中我們綜合考慮了所有下一個狀態ss'以及它們出現的可能性。在這裏插入圖片描述
期望更新(expected update)的過程非常接近於貝爾曼方程:在這裏插入圖片描述
期望更新可以看作貝爾曼方程的單步操作。
所有的強化學習方法都可以看作GPI的一種實現。GPI是圍繞近似策略和近似價值函數兩個相互作用過程的一般思想。一個過程接受給定的策略並執行某種形式的策略評估,使價值函數的結果更接近真實值。另一個過程接受給定的價值函數並執行某種形式的策略改進,更改策略使其更好。儘管每個流程之間相互影響牽制,但總的來說,兩個過程的共同目標找到一個聯合的解決方案: 策略和價值函數不會因任何一個流程而改變,因此是最優的。在某些情況下,GPI可以被證明是收斂的,尤其是我們在本章中介紹的經典DP方法。
異步DP方法是一種以任意順序更新狀態的就地(in-place)迭代方法,狀態更新的次序可能是隨機確定的,並可以使用之前“過時”的信息作爲狀態更新的依據。
最後,我們注意到DP方法的最後一個特殊屬性。狀態價值(value of state)估計的更新建立在對下一個狀態的價值估計的基礎上,我們把這種思想稱爲“自舉”(bootstrapping)。對於動態規劃而言這種思想是根本性的,它基於動態規劃必須完全掌握環境模型的假設。許多強化學習算法種都包含了自舉思想,但並不一定是必要的,這取決於強化學習模型對環境模型的要求。

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