您當前的位置:首頁 > 攝影

強化學習:PPO (Proximal Policy Optimization)的來龍去脈

作者:由 laswT 發表于 攝影時間:2021-06-04

本文主要概述PPO演算法是如何由REINFORCE演算法演變而來。

1。 Data Efficiency

強化學習:PPO (Proximal Policy Optimization)的來龍去脈

由於REINFORCE演算法為基於monte-carlo的on policy,存在以下缺點:

更新基於on policy方法的策略需要用到最新的樣本(samples from the current policy),因此每次只更新一步便把樣本捨棄,這意味著舊樣本不能重複使用,造成data inefficiency。

若是使用深度網路來擬合策略,則需要更多的更新步,更是造成訓練過程緩慢。

Monte-Carlo的取樣更新方式使得策略的學習效率低(每回合結束才開始更新)。

方程中不含baseline,取樣更新方差大。

(not an exhaustive list of cons)

Solution:

1.1 Time Difference

為了應對上述第3和4的缺點,首先將REINFORCE的monte carle取樣-更新方式改為Time Difference的取樣-更新方式:利用Advantage function來替代每回合的return G,而Advantage中的value function可作為baseline降低更新方差(這裡用log或者ln都一樣,主要是在求導的過程中用到了ratio likelihood,具體請看參考文獻[1])

強化學習:PPO (Proximal Policy Optimization)的來龍去脈

1.2 Importance Sampling

利用importance sampling來實現舊樣本的重複利用,從而實現off-policy。(注意,off-policy指的是用於更新當前策略的樣本不是由當前策略與環境互動產生的。所以off-policy的方法既可以是用同時存在的target policy和behavior policy(如Q learning),也可以是利用了replay buffer的方法(如DQN)。

因此,用舊策略取樣得到的樣本來更新新策略的代理目標方程(Surrogate Objective Function)為:

強化學習:PPO (Proximal Policy Optimization)的來龍去脈

出現的新問題:

從以下公式推導可以知道,雖然應用IS前和後的期望值是相同的,但是由於後者的方差隨著新舊策略的差異而增大,反而可能導致需要用到更多的樣本。所以有沒有方法使得兩個新舊策略的差異儘量小呢?

強化學習:PPO (Proximal Policy Optimization)的來龍去脈

(補充)舉一個例子來體驗方差大的實際情況:TODO

2。 KL Divergence

KL Divergence是一個常用的用來比較兩個分佈差異性(距離)的數學方法:

強化學習:PPO (Proximal Policy Optimization)的來龍去脈

因此在最佳化surrogate objective function的過程中,可以加入KL限制條件:

強化學習:PPO (Proximal Policy Optimization)的來龍去脈

2.1 Largrangian Dual

但在實踐中,在有限制條件的情況下,最大化一個方程會比較棘手。因此通常會用到一個數學方法叫Largrangian Dual來處理。因此,可以將該限制項直接加入到目標方程中作為懲罰項(penalty),而非作為額外的限制條件。其中bata值為懲罰因子,其越大,則在最佳化過程中越限制新舊策略的差異性。

強化學習:PPO (Proximal Policy Optimization)的來龍去脈

2.2 TRPO (Trust Region Policy Optimization)

TRPO利用KL作為強限制條件(hard constraint)而不是利用penalty,這是因為在訓練過程中每一步的更新數值都有差異,因此單一的beta值通常無法在訓練過程中一直表現良好(也就是說對於每一步更新,beta值都應該不同)。所以TRPO利用了Conjugate gradient decent來處理該KL限制條件,但也因此較麻煩,不能大規模應用,那能否對其做簡化,能夠直接使用梯度下降實現呢?

出現的新問題:

TRPO涉及到的Hessian矩陣會導致計算量和儲存量大,因此影響了訓練速度。那麼我們是否可以在利用了Largrangian Dual的方法中,把該限制看成某種弱限制(soft contraint),比如在訓練過程中只設置beta值幾個,並且用近似值來替代(proximal value)?

3。 PPO (Proximal Policy Optimization)

本文介紹兩種PPO演算法:

3.1 PPO with Adaptive KL Penalty

該本版PPO的核心想法就是利用自適應的beta值(adaptive beta):

強化學習:PPO (Proximal Policy Optimization)的來龍去脈

其演算法流程:

強化學習:PPO (Proximal Policy Optimization)的來龍去脈

3.2 PPO with Clipped Objective

在1。2中已經提到過,採用importance sampling會導致樣本的方差隨著新舊策略的差異變大而變大,那麼我們能否直接透過限制輸出動作機率的差異來限制新舊策略的差異呢?答案是可以的,如下圖所示,在目標函式中加入一項clipped term,

強化學習:PPO (Proximal Policy Optimization)的來龍去脈

該clipped term可以在更新策略的時候,使得下面更新公式

\nabla_{\theta} J\left(\pi_{\theta}\right)

(在1。2中提到)梯度項的係數項

\frac{\pi_{\theta}\left(s_{t}, a_{t}\right)}{\pi_{\theta_{o l d}}\left(s_{t}, a_{t}\right)}A(s_t,a_t)

將會在超出一定範圍後受到clipped(即限制更新步長從而限制新舊策略的差異性)

強化學習:PPO (Proximal Policy Optimization)的來龍去脈

即達到以下效果:

強化學習:PPO (Proximal Policy Optimization)的來龍去脈

其演算法流程:

強化學習:PPO (Proximal Policy Optimization)的來龍去脈

宣告:本文公式圖片的主要來源和主要參考資料為:

參考資料:

[1] R。 S。 Sutton and A。 G。 Barto。 Reinforcement learning: An introduction。 IEEE Transactions on Neural Networks, 9(5):1054–1054, 2nd Version, 2018。

[2] Emergence of Locomotion Behaviours in Rich Environments

https://

arxiv。org/abs/1707。0228

6

[3] An Adaptive Clipping Approach for Proximal Policy Optimization

https://

arxiv。org/abs/1804。0646

1

轉載前請告知作者。

標簽: 更新  policy  策略  限制  PPO