Proximal Policy Optimization (PPO)詳解
文章目錄
On-policy v.s. Off-policy
On-Policy方式指的是用於學習的agent與觀察環境的agent是同一個,所以引數θ始終保持一致。
Off-Policy方式指的是用於學習的agent與用於觀察環境的agent不是同一個,他們的引數θ可能不一樣。
比如下圍棋,On-Policy方式是agent親歷親為,而Off-Policy是一個agent看其他的agent下棋,然後去學習人家的東西。
將On-policy變為Off-policy
我在之前的部落格裡寫的Policy gradient用的是On-Policy,現在我們要將其變為Off-policy,那麼為什麼要變呢?看下圖藍線畫的部分,表示的是在某個actor的情況下,或者說是某個引數θ的情況下,隨機取樣出來不同的┏的期望(可以看看我的這篇部落格大致學習一下Policy Gradient詳解)然後我們利用梯度上升更新θ,但是θ只要一更新,這個期望就會變,也就是說當theta更新時,我們又必須重新計算期望了。這就導致了想找到一個好的θ太慢了。那麼我們使用Off-Policy能解決這個問題,我們使用Πθ‘去和環境做互動,我們可以得到在θ’下所隨機取出的樣本的期望,然後讓Πθ去利用這個這些樣本去訓練θ,現在,我們介紹一下Importance Sampling.
下圖的importance sampling中,那個Ex~p(f(x))表示x從p中取的情況下,f(x)的期望是多少?很明顯約等於1/N∑f(xi),但是我們現在規定不準從p中取x,只能從q中取x,那麼就有如下的式子轉換:藍框圈的部分是權重,p與q不能相差太多。
上面的那種做法有一個問題,雖然他們的期望可能相等或者相近,但經過證明,最後方差的式子是不一樣的,多了紅框圈出的部分,再次說明p與q不能差距太大。
看下面這張圖,先看等式左半邊,在p裡面取x,那麼p的左半邊被取的機率很高,然後左半邊又都是正的,然後代入f(x),但是f(x)的左邊都是負的,所以整個期望是負的。然後再看等式右邊,在q裡面取,q在右邊被取得機率大,然後q大於p,所以p\q小於1,然後f(x)又是正得,所以為正,但事實果真如此嗎?如果我現在sample到了一個左邊的點,f(x)就為負了,而且p\q>1,這將影響整個右邊的結果,可能為負,所以只有在取更多樣本時,下面這個式子才越準確。
那個A就是advantage function,我這篇部落格裡有這個函式的簡介(可以看看我的這篇部落格大致學習一下Policy Gradient詳解)
PPO演算法/TRPO演算法
PPO演算法是一種新型的Policy Gradient演算法,Policy Gradient演算法對步長十分敏感,但是又難以選擇合適的步長,在訓練過程中新舊策略的的變化差異如果過大則不利於學習。PPO提出了新的目標函式可以再多個訓練步驟實現小批量的更新,解決了Policy Gradient演算法中步長難以確定的問題。