李宏毅的強化學習視頻用於梳理翻閱

本文主要是整理策略迭代的部分,重在闡明原理。李宏毅的視頻,見網上。

最終說明OpenAI的默認強化學習算法PPO的部分。(Proximal Policy Optimization)

藍色標記爲有待查閱具體代碼。不同於強化學習的值迭代的容易理解和表達,策略迭代更需要耐心、細心、思考。

 

優化目標

策略 𝜋 是可以用,帶着訓練參數𝜃的神經網絡表示。策略𝜋網絡,輸入當前觀察值observation(state),輸出action的概率。

該網絡的輸出action,如果是連續的,每個動作用一個神經元表示,大小可以爲連續值。動作是離散行爲,則每個神經元輸出一個概率。該概率表示爲,該行爲可能採取的可能性。在實際行爲過程中,從該概率中進行採樣。

下圖,當輸入狀態S,則輸出的三個離散動作的概率。

 

強化學習中,Agent的目標是,在MDP(馬爾科夫決策過程)模型中,最大化累積獎勵R。如下:在每一幕的運行過程中,最大化累積獎勵R,爲所有r的和。

 

在一條馬爾科夫鏈中,其每一條軌跡的表達使用 𝜏 表示。𝑝_𝜃 (𝜏)表示爲該條軌跡 𝜏 出現的概率。𝑝(𝑠_1 )爲初始時,出現𝑠_1的概率。𝑝_𝜃 (𝑎_1 |𝑠_1 )等,爲在𝑠_1下選擇𝑎_1的概率。之後的𝑝(𝑠_2 |𝑠_1,𝑎_1 )等類似,表示在𝑠_1,𝑎_1下,能到達𝑠_2的概率(轉移概率)。

 

 

在每個軌跡 𝜏 中,每一對s與a,產生一個獎勵r。最終,在每一個軌跡中,產生一個累積獎勵R。

 

針對同一個策略模型 𝜋 ,其每次交互的環境、每次的行爲等,都是不確定的,最終有不同的軌跡 𝜏 。

但是,軌跡都是由該策略模型 𝜋 得到的,並得到不同的累積獎勵R。強化學習的優化目標,則是優化該模型,使得平均累積(期望獎勵)獎勵最大化。

如下的表達中,平均獎勵(獎勵期望)爲,在每條軌跡 下產生的累積獎勵,和該軌跡產生的概率𝑝_𝜃 (𝜏),的乘積和。

使用期望的表達中,爲,在概率𝑝_𝜃 (𝜏)下,採樣軌跡 𝜏 ,在所有軌跡 𝜏 下的,平均獎勵R。

 

策略梯度(Policy Gradient)

優化目標爲獎勵期望,使得其最大化,則直接通過求梯度方式,對其求梯度,使用梯度上升的方法,得到最大化期望獎勵。

實質上,對獎勵R求梯度,作爲自變量的爲𝜃。𝜃爲策略模型 𝜋 的參數(神經網絡的權值、訓練參數),實質上也就是,通過訓練模型 𝜋 ,最終獲得最大的期望獎勵R。

通過藍色方框的公式調用,得到第二行,通過期望的表示變換,得到第三行左。

在執行足夠多的N次軌跡後,首先,該N個軌跡,仍然是由策略 𝜋 中的𝜃決定的。在足夠多的N下,基本服從期望下標𝜏~𝑝_𝜃 (𝜏)中的軌跡分佈,所以可以約等。

第四行對第三行右,進行了進一步推導,將𝑝_𝜃的時間線進行了展開。但是是不是少了一個轉移概率。

不過很明顯的是,轉移概率在軌跡中,是由環境Environment確定的,因此使用𝜃作爲自變量求梯度,其爲常數表示,不影響最終梯度方向。

因此,策略梯度的訓練表示如下:其中的梯度在上圖中已經得到計算。

 

 

 在實際實現過程中,如使用TensorFlow計算梯度,其計算過程可以和交叉熵有關

 

 

 

策略梯度的實現過程與修正

策略梯度的計算流程上:

1 根據Agent和環境的交互,通過策略模型 𝜋 得到一條軌跡𝜏 。在該軌跡結束後,得到累積獎勵R。

2 使用梯度上升的方法,最大化R。在梯度上升的計算過程中,𝑙𝑜𝑔𝑝_𝜃其實就是策略網絡 𝜋 輸出的概率,實質上也就是梯度上升,改變 𝜋,從而最大化R。

重複以上步驟,使得R越來越大即可。

策略梯度在應用過程中發現有兩個問題:

1 在一些強化學習環境中,軌跡𝜏下的所有行爲獎勵,都是正的獎勵值,則根據公式,每次都是梯度上升。

   那麼,使得R最大化的過程中,即,策略網絡 𝜋 被訓練時,採樣的影響導致,針對同一個狀態observation(state)時,輸出的行爲概率分佈更傾向於採樣更多的地方訓練。

   在同一狀態下,abc三個行爲的概率和爲1,理想情況是b的動作最優。但是a採樣次數更多而b更少,則根據梯度上升時R都是大於0,策略網絡對a的行爲強度增強,導致了相對於b行爲的強度減少。同理圖中第二行,當a沒有被採樣一定數量多,則a會相對於理想情況下減少。

 

 

 

 因此應用過程中,對R增加baseline,使得R可以出現負值,只增加哪些高於平均獎勵的R對應的軌跡策略。出現了負值,則表示該軌跡不夠優秀,應該降低,採樣越多,則降低越多。

 

 

 

 

2 獎勵R的度量問題。在策略網絡 𝜋 下,整條軌跡的累積獎勵R,不足以度量 𝜋 中每一個輸出行爲概率的好壞。每個輸出應該對應到每個獎勵,而不是整條軌跡R。

  在軌跡中,當前行爲a,在一定程度上決定了,後面的狀態-行爲對,越往後的狀態行爲對,其決定性的影響越小。因此,當前行爲a的獎勵r,爲該行爲和之後所有行爲的和。並使用𝛾衰減因子,模擬其決定性影響越小導致的本次行爲a的獎勵越小。

 

 

重要性採樣

重要性採樣表示爲:無法得知f(x)在p分佈上的期望,則使用任意的分佈q,來間接得到f(x)在p分佈上的期望。

具體操作如第二行,最終:f(x)在p分佈上的期望,轉化爲了f(x)*p(x)/q(x)在分佈q上的期望。

 

 

 

雖然期望相等,但是方差是不等的。下圖中,第一行爲重要性採樣,第三行爲方差展開爲期望形式,第四行前者又使用了一次重要性採樣,後者直接代換。

結論是,重要性採樣前後使用的未知分佈p和已知分佈q,若比值爲1(完全相同),則方差也相同。比值越偏,方差越偏。

方差越偏導致的問題是,當採樣次數不夠多,則導致重要性採樣定理的前後期望值的偏差,出現的可能性越大。

 

 

 

 使用如下所述,前者在p分佈上的期望,f(x)*p(x)的累加和,基本爲負值。後者,當採樣點過少時,由於q(x)集中在f(x)的正值部分,雖然p(x)*f(x)/q(x)也很小,但是其值爲正。只有採樣到一個另外的點,p(x)*f(x)/q(x)又對應了很大,才導致了期望爲負。才使得重要性採樣定理的前後期望一致性。

 

 

 

 

在線策略到離線策略

 on-policy,其過程和上述策略梯度一樣:策略模型𝜋 和環境交互獲得軌跡,然後使用該軌跡進行訓練。重複該過程。

 off-policy,其策略模型𝜋' 和環境交互得到軌跡,策略模型𝜋 學習該軌跡,而策略模型𝜋 自身沒有和環境進行交互。

 在線策略中,其學習完的軌跡,直接丟棄不能再學習了,因爲模型𝜋學習了自身的軌跡以後,模型有了變化,之前的軌跡不再是由該變更過的模型𝜋產生。

 離線策略中,其使用另外的模型𝜋',獲得的多條軌跡,用於策略模型𝜋的學習,學習完以後的軌跡,因爲𝜋'沒有改變,其生成的軌跡仍然可用。

(認爲是學習的目標,本應該是一個固定的分佈,而不是一個變來變去的分佈)相對於在線策略,離線策略效率,因爲軌跡的生成和學習過程的方便性,而變得更高。

 

 𝜃′對應於模型𝜋',使用重要性採樣定理,將在線策略轉化爲離線策略:

其中第一行爲在線策略(之前的策略梯度的大致表現形式,從𝜋中獲得軌跡),第二行使用𝜋'中採樣,獲得軌跡,計算梯度。

在多次採樣後,二者的梯度應該相等的。

 

 

 

 如下是策略梯度的詳細表示形式,並使用重要性採樣定理進行的變換。第一行爲在線策略,第二行變爲離線策略,由於離線策略的獎勵部分A,爲𝜋'所產生,則變爲了𝐴^(𝜃′ )。變了以後和之前的式子,還能相等嗎,不能吧,假設能夠,繼續推導

 

 

第三行中,𝑃_𝜃 (𝑠_𝑡,𝑎_𝑡 )表示的是𝑠_𝑡,𝑎_𝑡出現的概率,通過概率邏輯,變換爲兩項。而後項的上下兩個就姑且認爲相等了,比值爲1。其實應該是不等的。但是不易求得,並認爲相等。

最後一行,通過圖中的藍色框公式,反推得到的f(x),即離線策略下的優化目標函數J(其實和原始情況下的目標函數R的期望類似吧)。

 

 

 PPO與TRPO

 TRPO (Trust Region Policy Optimization)算法是先於Proximal Policy Optimization (PPO)算法提出的。

在TRPO中,其實使用的方法就是在線轉離線的策略了,並額外要求𝜃,𝜃′有一個相似性(KL散度,數據的原始分佈和近似分佈之間的相似性)

在PPO中,將相似性寫入了優化目標中。要求優化目標儘可能的大,則KL散度儘可能小。

 

 

 KL散度過小,則𝜋'和𝜋之間的相似度高,可能學不到什麼吧?相似度過低,則因爲重要性採樣的問題,方差影響加之採樣量不足,使得前後等式不成立。

這裏的𝜃^𝑘表示有多個𝜋',用於生成軌跡。

 

 對比PPO2,其實質仍然是控制𝜃,𝜃′的相似性。但是沒有使用KL散度,而是使用clip方法,限制兩者的比值在一個範圍內。使得當A大於0增強該策略,或者A<0壓制該策略的強度,都在一個範圍內。

 

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