本系列是針對於DataWhale學習小組的筆記,從一個對統計學和機器學習理論基礎薄弱的初學者角度出發,在小組學習資料的基礎上,由淺入深地對知識進行總結和整理,今后有了新的理解可能還會不斷完善。由於水平實在有限,不免產生謬誤,歡迎讀者多多批評指正。如需要轉載請與博主聯系,謝謝
策略梯度相關概念
什么是策略梯度方法?
策略梯度方法是相對於動作價值函數的另一類強化學習思路。在基於動作價值函數的方法中,我們需要先學習價值函數Q(s,a),再根據估計的價值函數選擇動作,價值函數相當於在不同狀態下對不同動作的評分,是不可缺少的。而在策略梯度方法中,我們會直接學習動作策略,也就是說輸出應當是當前狀態下應該執行的動作,即π(a|s)=P(a|s),實際上這里的動作是一個概率分布,更有利的動作會分配到更大的選擇概率。因此策略梯度方法可以用包括神經網絡在內的任意模型進行參數化,代表策略的參數向量我們用\(θ \in R^{d'}\)來表示,則t時刻下當狀態為s、策略參數為θ時選擇執行動作a的概率可寫作:\(\pi (a|s,θ)=Pr\{A_t=a|S_t=s,θ_t=θ\}\)。
在所有的策略梯度類方法中,我們都會預先確定一個用於評價策略的某種性能指標,這里用\(J(θ)\)來表示。我們的目的是最大化這個性能指標,因此利用梯度上升對策略參數θ進行更新:
這里的\(\widehat{\nabla J(\theta _t)} \in R^{d'}\)實際上是一個隨機估計,它的期望是選定的性能指標\(J\)對策略的參數\(\theta _t\)的梯度\(\nabla J(\theta _t)\)的近似。對參數更新也就是策略更新的方法,更新后的策略則直接指導動作的執行。在有些算法中,我們會同時學習策略和近似的價值函數,這類方法被稱為actor-critic。
策略梯度方法與價值函數方法的比較
基於價值函數的方法很多,以經典的DQN為例,它以神經網絡代替Q表來逼近最優Q函數,更新后的網絡同時作為價值函數引導動作的選擇,一定程度上解決了高維離散輸入的問題,使得圖像等信息的處理在強化學習中變得可能。但其仍存在一些問題,如:
- 無法表示隨機策略,對於某些特殊環境而言,最優的動作策略可能是一個帶有隨機性的策略,因此需要按特定概率輸出動作。
- 無法輸出連續的動作值,比如連續范圍內的溫度數值。
- 價值函數在更新過程中的微小變動可能使得被選中的最優動作完全改變,在收斂過程中缺少魯棒性。
相對而言,策略梯度算法可以較好地解決上述問題,而且策略的參數化允許我們通過參數模型的引入來添加先驗知識。當然在有些情況下動作價值函數方法會更簡單,更容易近似,有些情況下則相反,還是要根據實際情況選擇采用的方法。
(抱歉由於最近較忙,剩下的內容將在后續進行補充。。)
參考資料:
- DataWhale組隊學習資料——《強化學習》 王琦 楊毅遠 江季 著
- 《強化學習》第二版 Richard S. Sutton, Andrew G. Barto 等 著
- 理解策略梯度算法 https://zhuanlan.zhihu.com/p/93629846
- 強化學習進階 第六講 策略梯度方法 https://zhuanlan.zhihu.com/p/26174099