強化學習七 - Policy Gradient Methods


一.前言

  之前我們討論的所有問題都是先學習action value,再根據action value 來選擇action(無論是根據greedy policy選擇使得action value 最大的action,還是根據ε-greedy policy以1-ε的概率選擇使得action value 最大的action,action 的選擇都離不開action value 的計算)。即沒有action value的估計值就無法進行action選擇,也就沒有Policy,這類方法被稱為 value-based methods.其實我們可以直接產生不依賴於action value 的polcy ,這類直接生成action的方法就叫policy-based methods.他們關系如下:

  value-based方法,需要計算價值函數(value function),根據自己認為的高價值選擇行(action)的方法,如Q Learning。
  policy-based方法,不需要根據value function選擇action,可以直接得出policy的方法。
  圖中第三類方法(Actor critic)結合了上述兩者,即計算value function,但不直接根據value function選擇action,action 由policy-based方法得到。

二. Advantages of Policy-Based RL  

Policy-Based RL 的優勢:

  1)有着更好的收斂性質。Value_Based 方法需要對值函數進行更新,然后才能反映到策略中,而值函數中的一些小小改變可能會使得策略發生較大改變,從而收斂性較差。當然,我們在模型無關的控制(model free)當中說過,如果將探索因子epsilon設定位1/k,則得到的Monte-carlo Contorl是符合GLIE條件的,此時該方法對應的致函數將收斂於最優值函數。Value-Based方法收斂性較差指得是較容易震盪而難以收斂,而后面說的將收斂於最優值函數是指“最終”將收斂於最優值函數。我們並不知道“最終”是多久,所以,Policy-Based在這個問題上更具有優勢。

  2)在高緯度和連續動作空間上有着逢高的效率。畢竟Value-Based 方法需要計算

如果動作集很大,那么這個max操作的計算量就很大,而Policy-Based RL方法就不存在這種問題。

  3)可以學習隨機性策略。Value-Based 方法是隱式地對策略進行表示,需要用greedy 方法得到策略,所以學習單的是確定性策略。

  Policy-Based 的缺點:

  1)通常是收斂到極限;

  2)評估策略是低效,高差異的;

  舉個例子1,在我們所熟知的“石頭剪刀布”游戲中,需要尋求納什均衡,所以並不能弄一個確定性策略,這種情況下,一個均勻的隨機策略就是最優的。

  舉例2:

  

在上面的這個格子世界中,兩個灰色方格對於智能體而言並沒有什么區別。如果使用一個確定性策略,那么在灰色方格處的決策要么都向左,要么都向右,不管是向左還是向右,都有可能卡住,如下圖:

當然,Value-Based方法也可以學習一個near-deterministic(近似確定性)策略,比如說epsilon-greedy,這樣的方法雖然不會一直卡住,但是一般需要較長時間才能結束這一episode。課程中有這么一句話:Whenever stochastic policy occurs, a stochastic policy can do better than a deterministic policy。也就是說,一般而言,只要出現隨機性策略的時候,一般都會比確定性策略要好

下面來看一下常用的幾個目標函數:

        1)episodic環境中,我們使用start value:

2)continuing環境中,我們使用average value:

 

 3)continuing環境中,也可以使用average reward per time-step:

其中d為利用對應策略生成的馬爾可夫鏈的穩態分布。1)中為從某個狀態開始,看一下后面將得到的獎勵;2)中為continuing環境,所以並沒有一個所謂的初始狀態,也沒有一個結束狀態;3)中表示平穩狀態分布下單步的獎勵。這三種策略殊途同歸,最后都運用到了策略下降方面;

 三. Score Function

也即策略梯度可以等價地表示為策略乘以一個似然函數的倒數,這個與極大似然操作形式一致的式子叫做Score Function ,表示為:

 

下面通過兩個例子說明score function:

  1)softmax policy

首先假設使用線性特征組合對動作進行加權:

此時,score function為:

2)同理,我們可以得到服從的高斯分布的score function:

 

四.one-step MDP

考慮完策略的導數之后,接着我們討論獎勵函數的導數。首先考慮一個簡單的one-step MDP:

 推導獎勵函數的梯度:

 通過選取一個動作來使獎勵最大化,選取的正確方法可能取決於狀態和動作;

我們通過這個簡單的one-step MDP可知,獎勵函數的導數等於socre function乘以reward在策略下的期望,也即:

   要找到策略梯度,我們要掌握怎樣調整策略參數的方法才可以在無論何種狀態的情況下,選取優質的動作,我們可以調整選取動作的方法來得到更多的獎勵。要這樣首先就要從選取的目標函數開始,在one step案例中我們討論過的三個目標函數本質上是相同的, 我們的目標就是要應用策略所得到的預期獎勵,所以我們要能夠找到讓我們獲得最佳預期的參數。我們身處任意一個狀態時,根據策略選取動作,我們的期望就是獲得的最大獎勵;策略梯度定理正是這一簡單情形的拓展:

與上面的one-step MDP的情形相比,這里將其拓展到了multi-step MDP,並且將即時獎勵r替換為了long-term值函數,這一定理非常重要。我們知道,我們對於策略參數的更新都是沿着極大化獎勵函數的方向進行的,所以由上式我們可以對參數進行更新。

接下來將將該定理結合model-free情形進行使用,得到REINFORCE算法:

五.Monte-Carlo Policy Gradient (REINFORCE)

其想法非常簡單,就是將獎勵函數的梯度中的期望換為采樣,在一個episode結束之后,利用該episode中的每一個step對參數進行更新。不過這個算法中對於的估計使用的是回報(return),這是一個無偏估計,但是卻有着較大的方差,所以,我們考慮換成其他方法對值函數進行逼近,比如說利用神經網絡或其他參數化方法,記參數為w(此處可回想DDPG算法形式):

 

  我們稱之為Critic,並將上面的參數化策略稱為Actor,將這二者結合起來,叫做Actor-Critic算法:

對於參數w的更新,我們可以將回報(return)或者TD target作為目標,最小化當前值函數與目標的平方。此外,在Actor-Critic算法中,我們可以在每個step對策略進行更新,而不用像REINFORCE一樣,只能在每個episode運行完成之后進行更新。因為這里每個step我們可以使用對獎勵進行估計,然后代入上面的式子,對策略進行更新,而REINFORCE使用回報(return)決定了它不能實時更新。

        Actor-Critic算法雖然降低了方差,但是一般來說是有偏的,因為在approximating(逼近)的時候引入了bias(誤差)。那是否能夠通過恰當地選擇值函數估計器來避免引入bias呢?這是可以的。由此我們引出兼容函數估計(Compatible Function Approximation)

 考慮條件1中提到的式子,用語言表述為:“score function = the gradient of Critic”,將其代入到中,可得:

 比方說,在某個狀態s和動作a下,假設為正,則沿着的梯度方向進行更新,且越大,越大,如果為負,則朝着與的梯度相反的方向更新。換句話說,我們這里的朝着大的方向更新,

 

        前面我們說過,為了降低REINFORCE算法的方差,我們引入了Critic,現在,我們進一步使用Baseline來降低RL中的方差。首先我們可以推導出如下式子:

該式表明,對於某一個與動作a無關的基准函數B(s),它乘以score function之后,計算在策略下的期望,結果為0。換句話說,我們可以在獎勵函數的梯度的基礎上任意的增減一個這樣的式子,而保持梯度不變。一個不錯的Baseline函數就是值函數,在原獎勵函數梯度的計算式上減去該值,得到:

我們稱優勢函數,用其表示獎勵函數的梯度為:

  優勢函數的意義是,在動作值函數的基礎上減去了對應狀態擁有的基准值,使之變為動作帶來的增益,因而降低了方差(降低了由於狀態基准值的抖動引起的方差)。

        現在我們給出的計算優勢函數的公式是理論上的,或者說是策略對應的真實優勢函數,但實際上,我們並不知道該函數,因而只能對其進行估計,就像我們前面估計狀態值函數和動作值函數一樣:

我們可以不斷地更新以及,比方說利用TD方法進行更新,然后通過計算得到。不過令人感到不開心的是,這里我們需要維持兩個逼近器,有沒有方法能夠讓我們用一個逼近器就能夠給出優勢函數的估計呢?有的,具體見下面的PPT:

 δπθ=reward+下一個狀態真實價值折扣-現在所處的狀態;

其中最為重要的結論是:“如果我們使用真實的狀態值函數來計算TD error,則TD error為優勢函數的一個無偏估計”。並且,在這種方法中,我們僅需一組參數就能夠對優勢函數進行估計。

        最后我們介紹一下自然策略梯度

 

自然策略梯度也即直接對原始策略梯度進行修正,乘以一個Fisher信息陣。這樣做有什么用處呢?它使得策略梯度變成參數化無關的了。舉個例子,對於一個softmax策略,我們增大其中所有動作的score,此時各個動作的概率並不會發生改變,這可以通過其score function來考慮。

        比方說,我們反過來想,成比例的增大策略中各個動作對應的分子,因為softmax策略中的分母也會成比例的增大,所以最終各個動作的概率並沒有發生改變。如果這里我們是通過增加來增加分子的值的,所以上面的score function也可能會隨之增大,這樣的話,雖然該策略各個動作對應的概率沒有變,但是下一步對於策略的改進卻發生了改變(想想對於策略參數的更新公式),這並不是我們想看到的。而自然策略梯度可以很好地解決這一問題,對於剛剛提及的這種情形,Fisher信息陣也將增大,從而使得下一步對於策略的改進與重新參數化無關,就很開心了。

 將自然策略梯度與Actor-Critic結合,得到Natural Actor-Critic如下

在上面的推導中,我們可以將compatible function approximation積分代入對於獎勵函數的求導中,得到最終的獎勵函數的自然梯度,發現它就等於Critic的參數w,這並不是巧合,當我們結合natural policy gradient + compatible function approximation(自然策略梯度+相容函數逼近)之后,就可以得到這一結論:對Actor參數的更新就等於Critic的參數。

總結: 

本章闡述了value-based methods和policy-based methods的優缺點,引入了性能函數J(θ) ,介紹了PG定理,並詳細介紹了episode case下的PG方法:REINFORCE 、REINFORCE-with-baseline(減小偏差,但方差較大)。介紹了結合PG 和value-based methods的Actor-Critic Methods,以及 continuing case下的PG。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM