9.進(jìn)一步討論Policy Gradients方法

主題:

  • 為何Policy Gradient有效
  • 將Policy Gradient視為Policy Iteration
  • 對policy gradient進(jìn)行受限優(yōu)化
  • 自然梯度和trust regions

1. 為何Policy Gradient有效呢?

首先回顧下之前的REINFORCE算法:

image.png

其中的梯度可以通過采樣進(jìn)行計算可以表示為:
image.png

為了降低variance,引入baseline之后,可以把梯度轉(zhuǎn)換為優(yōu)勢函數(shù)的形式。
image.png

那么則我們可以把PG的過程看做兩步,先根據(jù)\pi評估A,然后使用A去更新\pi'。

image.png

這個過程和之前的policy iteration算法有些類似:
image.png

2. 將Policy Gradient視為Policy Iteration

PG的方法有兩個比較重要的問題:一是采樣效率,需要引入IS轉(zhuǎn)換為off-policy。第二個問題是來自梯度更新,由于它是在參數(shù)空間上做的更新,但是其實參數(shù)空間并不等價于policy空間,有時候\theta微小的變化會導(dǎo)致Policy的巨大改變。
所以就有了兩個訴求:

  • 如何在引入IS的情況下盡可能避免policy差異過大。
  • 如何在保證policy不發(fā)生突變的情況下進(jìn)行參數(shù)的更新。

這里我們根據(jù)引入IS的情況,量化分析下問題的影響程度。如果我們可以將policy gradient轉(zhuǎn)化為policy iteration,那么就可以借助policy iteration中的證明方法得到policy gradient是否可以穩(wěn)定提升,誤差有多少。而這其實就是要計算更新前后的policy是否變好。
所以從policy iteration的角度來看,就需要計算update前后policy的關(guān)系,也就是所謂的Relative policy performance identity,具體推導(dǎo)如下:

image.png

結(jié)論是:
image.png

使用IS然后展開:
image.png

這里只留下了最外層的的期望,如果可以將這個替換為,那么就可以通過最大化這個Relative policy performance identity來獲得新的參數(shù)。
image.png

3. 分布變化的約束

只要兩個policy足夠接近,那么兩個policy關(guān)于某個state的probability就可以足夠接近。那么只要policy足夠接近,就可以對兩個期望做替換。先看看確定性策略的情況:

image.png

再證明是任意分布的情況:
image.png

在確定性策略與任意分布的情況下,分布的變化都可以被bouding,并且具有同樣的形式。
image.png

這樣我們確實就可以通過最大化Relative policy performance identity來獲得新的參數(shù),但是他的條件是兩個策略足夠得接近。
image.png

3.1 使用KL散度約束邊界

通過上面的推導(dǎo),我們知道可以對策略的概率做差的絕對值,但是在實際實施上難以優(yōu)化。為了有可行性從而引入了KL散度。兩個分布之間的KL散度邊界以及KL散度的定義為:


image.png

即如果我們將KL散度進(jìn)行約束,那么原始約束函數(shù)也就滿足,兩者存在轉(zhuǎn)化的等價性。所以優(yōu)化的目標(biāo)也就轉(zhuǎn)化為如下的形式,約束發(fā)生了改變,問題更容易優(yōu)化了。


image.png

4. KL散度約束的實施

KL散度約束的實施可以有幾種方法:

4.1 Dual gradient descent

第一種方法叫:Dual gradient descent
可以拉格朗日算子進(jìn)行求解最優(yōu)化問題,先將損失轉(zhuǎn)化為拉格朗日乘子的形式,然后進(jìn)行迭代求解:

image.png

從直觀上理解,將約束引入目標(biāo)函數(shù)后,乘子 也是一個需要優(yōu)化的參數(shù)。當(dāng)約束違反程度大的時候,后面拉格朗日項就變成特別大的負(fù)項,如果需要最大化這個目標(biāo),則需要將乘子變大,反之依然。通過對這個乘子的調(diào)節(jié),進(jìn)而修正約束部分的重要性,從而達(dá)到自適應(yīng)優(yōu)化的目標(biāo)。

4.2 策略梯度(policy gradient)

第二種方法是: Policy Gradient
可以嘗試對目標(biāo)函數(shù)進(jìn)行適當(dāng)?shù)奶幚?,降低?yōu)化的難度?我們可以嘗試對目標(biāo)函數(shù)進(jìn)行一階泰勒展開,我們將原來的目標(biāo)函數(shù)轉(zhuǎn)換為:

image.png

image.png

由于這里所有操作的前提是與的差距很小,所以在參數(shù)對應(yīng)的位置可以進(jìn)行整體性的替換替換為。
image.png

這個其實也就是policy gradient的梯度公式,那么除了約束的部分,整體也就和policy gradient沒有差別了。那么是否可以將它當(dāng)作一個正常的policy gradient進(jìn)行操作?Gradient ascent的操作其實可以理解為在parameter space上做一個小的修改,也就是說它相當(dāng)于在parameter space上做約束的優(yōu)化;
image.png

這種時候,它其實也就是我們常見的gradient ascent方法加一個動態(tài)學(xué)習(xí)率:
image.png

從前面的推導(dǎo)過程,我們就把policy iteration帶回了policy gradient,policy gradient也就是相當(dāng)于對參數(shù)空間做約束的策略提升的過程。而它的問題也就來自這里,parameter space與policy space是不匹配的。,與,不是一樣的。
image.png

也就是說這種約束是保證不了Monotonic Improvement Theory的要求的,所以它的優(yōu)化會比較不穩(wěn)定?;谶@個問題,下面引入了natural gradient去解決這個問題。

4.3 自然策略梯度(Natural Policy Gradient)

第三種方法是: Natural Policy Gradient
我們考慮對KL散度使用二階的泰勒展開,其中其中F是KL散度的Hessian函數(shù),也被稱為Fisher信息矩陣,它可以通過樣本進(jìn)行估計:

image.png

所以整體上梯度更新就可以按照如下的形式:
image.png

但是這種二階的 方法計算復(fù)雜度過高。

4.4 TRPO(Trust Region Policy Optimization)

TRPO主要針對自然梯度存在的兩個問題提出了解決方案:第一個就是求逆矩陣的高復(fù)雜度問題,第二個則是對KL散度做的近似中可能存在的約束違反的問題做了預(yù)防。
首先就是求逆操作的高復(fù)雜度問題,TRPO將它轉(zhuǎn)化為求解線性方程組,并利用共軛梯度算法(conjugate gradient algorithm)進(jìn)行近似求解(這里有要求inverse matrix是positive definite的,所以在TRPO中有對目標(biāo)函數(shù)的約束)??傮w而言,它的過程如下:


image.png

其次,針對如何對違反約束做限制,這里用的是exponential decay line search的方式,也就是對于一個樣本,如果某次更新違反了約束,那么就把它的系數(shù)進(jìn)行指數(shù)衰減,從而減少更新的幅度,直到它不再違反約束或者超過一定次數(shù)衰減則拋棄這次的數(shù)據(jù)。


image.png

4.5 PPO(Proximal Policy Optimization)

相比上面使用自然梯度進(jìn)行KL約束的近似,PPO則另辟蹊徑,它并不直接求解這個約束,而是通過一些啟發(fā)式的方法達(dá)到這個目的,論文中主要提出如下兩類。
首先是Adaptive KL penalty,它直接將KL散度從約束轉(zhuǎn)化為懲罰項,作為目標(biāo)函數(shù)的一部分,每次更新時候則計算當(dāng)前迭代對KL散度的違反程度,如果KL值過大,則增大它的系數(shù),強(qiáng)化這個懲罰項的重要程度,反之亦然。

image.png

而第二種則是Clipped Surrogate Objective,對目標(biāo)做裁剪。前面使用到KL散度是要約束策略空間,從而約束trajectory的分布。那么這里則直接對這個概率比值做clip,設(shè)置一個閾值,直接從根源上限制策略空間的差異。
原先的目標(biāo)是如下形式的,其中:
image.png

那么clip后的式子也就是如下形式, 是一個比較小的閾值:
image.png

基于這兩種方式的更新,雖然在理論上沒有保證,但是在實踐中往往高效且有不錯的效果。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容