一、動態規划
當問題具有下列兩個性質時,通常可以考慮使用動態規划來求解:
- 一個復雜問題的最優解由數個小問題的最優解構成,可以通過尋找子問題的最優解來得到復雜問題的最優解
- 子問題在復雜問題內重復出現,使得子問題的解可以被存儲起來重復利用
馬爾科夫決策過程具有上述兩個屬性:貝爾曼方程把問題遞歸為求解子問題,價值函數相當於存儲了一些子問題的解,可以復用。
二、MDP
馬爾科夫決策過程需要解決的問題有兩種:
- 預測(Prediction):對給定策略的評估過程。已知一個馬爾科夫決策過程以及策略,目標是求解基於該策略的價值函數
,即處於每個狀態下能夠獲得的獎勵(reward)是多少。
- 控制(Control):尋找一個最優策略的過程。已知一個馬爾科夫決策過程但是策略未知,求解最優價值函數
和最優策略
。
動態規划算法的核心是用值函數來構建對最優策略 的搜索,如果最優值函數
和
已知,就能獲得最優策略
。其中
和
滿足如下方程:
三、策略評估(Policy Evaluation)
策略評估 (Policy Evaluation) 指計算給定策略下狀態價值函數 的過程。
策略評估可以使用同步迭代聯合動態規划的算法:從任意一個狀態價值函數開始,依據給定的策略,結合貝爾曼期望方程、狀態轉移概率和獎勵,同步迭代更新狀態價值函數直至其收斂,得到該策略下最終的狀態價值函數。理解該算法的關鍵在於在一個迭代周期內如何更新每一個狀態的價值。
策略評估的例子
狀態空間s:上面4×4為一個小世界,該世界有16個狀態,每個小方格對應一個狀態(0-15),其中,0和15是終止狀態。
行為空間A:可上下左右移動,移動到0或15任意一個即完成任務。
轉移概率P:
四、策略提升 (Policy Improvement)
五、策略迭代 (Policy Iteration)
策略迭代一般分成兩步:
- 策略評估(Policy Evaluation):基於當前的策略計算出每個狀態的價值函數
- 策略提升 (Policy Improvement):基於當前的價值函數,采用貪心算法來找到當前最優的策略
、
本質上就是使用當前策略產生新的樣本,然后使用新的樣本更好的估計策略的價值,然后利用策略的價值更新策略,然后不斷反復。由於一個有限的馬爾可夫決策過程只有有限個策略,這個過程一定能夠在有限的迭代次數后收斂到最優的策略和最優的價值函數。
六、值迭代 (Value Iteration)