強化學習基礎篇(二十九)策略梯度(一)
之前我們一直都是對價值函數或者動作值函數進行參數化近似:
其中策略是間接得通過值函數進行貪婪策略產生,但本文將介紹如何在model-free場景中對策略進行參數化:
1、model-free的強化學習算法
Model-free的強化學習算法可以分為這三類:
-
Value Based強化學習算法
這類方法是直接學習價值函數,然后隱似得通過貪婪方法得到策略
-
Policy Based強化學習算法
這類方法是不學習價值函數,而是直接對策略進行學習。
-
Actor-Critic強化學習算法
這類方法同時學習價值函數與策略。
2、Policy-based強化學習算法的優勢
一般來說,Policy-based強化學習算法具有更好的收斂性,更加適用于高維的動作空間或者連續的動作空間的環境,并且可以學到隨機策略。但是其劣勢是通常只會收斂到局部最優解,而不是全局最優解。對策略的評估也比較低效并且有著較大的方差。
例如玩石頭剪刀布的游戲:
如果是一個確定性策略,則很容易輸掉游戲(例如你一直出剪刀,那對方一直出石頭!)。一個均勻分布的隨機策略(石頭剪刀布隨機)才是最優的(滿足納什均衡)。
隨機策略和帶隨機性的策略是兩個不一樣的概念!帶隨機性的策略——例如策略,是為了更好的探索!隨機策略和探索無關,而是最后求出的策略就是一個隨機的策略!
3、策略目標函數
Policy-based強化學習算法的目標就是在有參數化的策略
下,找到最優的參數
。這個最優的
可以有幾種方式進行評價其好壞:
在按幕的環境,可以直接評價初始狀態的價值:
在無結束點的連續環境中,可以使用平均價值進行評價:
連續環境狀態(無開始狀態)下,個體一直與環境進行交互,此時應該針對每個可能的狀態計算從該時刻開始一直持續與環境交互下去能夠得到的獎勵,按該時刻各狀態的概率分布求和。或者使用每個時間步的平均獎勵進行評價:
其中是基于當前策略下馬爾科夫鏈關于狀態的靜態分布。在一個確定的時間步長里,求出每種狀態下采取所有行為能夠得到的即時獎勵,然后按各狀態的概率分布求和。
4、策略最優化
基于策略的強化學習算法是一個最優化的問題,我們需要找到一個,在改參數下對目標函數
極大化,要達到這個目的,我們可以使用兩種類型的算法:
一是不基于梯度的算法,比如,爬山算法 (Hill climbing),單純形法(Simplex),amoeba算法,Nelder-Mead方法,或者遺傳算法 (Genetic algorithm)。
二是基于梯度的算法,比如,梯度下降算法(Gradient descent),共軛梯度法(Conjugate gradient method)以及擬牛頓法 (Quasi-Newton method)。
本節主要集中介紹梯度下降法。
策略梯度
當我們將策略目標函數作為優化目標,策略梯度算法是需要在參數空間
中,通過梯度上升算法找到目標函數
的局部極大值。
是更新步長的超參數,
就是策略梯度:
若用差分(Finite Difference)的方式進行的策略梯度的數值梯度法求解,則可以在每個參數的維度
上對參數進行一個很小的擾動
求偏導數,
其中是單位向量,表示在第k個維度上值是1,在其他維度上值都是0。這種方法求梯度比較簡單,噪聲很大,很低效,但是也扛不住有時候效果還不錯,特別是在策略沒法微分的時候很有用。