2017-09-26 113 views

回答

6

PPO是一種簡單的算法,屬於策略優化算法類(與DQN等基於值的方法相反)。如果你「知道」RL基礎知識(我的意思是如果你至少仔細閱讀Sutton's book的一些第一章),那麼第一個邏輯步驟就是熟悉策略梯度算法。您可以閱讀this paperSutton's book新版本的第13章。此外,您還可以閱讀關於TRPO的this paper,這是PPO第一作者以前的工作(本文有許多符號錯誤;請注意)。希望有所幫助。 - Mehdi

3

PPO,包括TRPO會嘗試保守地更新策略,而不會在每次策略更新之間對其性能產生不利影響。

要做到這一點,您需要一種方法來衡量每次更新後策略的變化情況。通過查看更新後的政策與舊政策之間的KL分歧來完成此測量。

這成爲一個約束優化問題,我們希望改變政策在最大性能的方向上,遵循我的新政策與舊政策之間的KL分歧不超過某些預定義(或適應性)閾值的限制。使用TRPO,我們計算更新期間的KL約束,並找到此問題的學習速率(通過Fisher矩陣和共軛梯度)。這實施起來有點麻煩。

對於PPO,我們通過將KL偏差從約束轉化爲懲罰項來簡化問題,類似於例如L1,L2權重懲罰(以防止權重增大)。通過硬性限制政策比率(更新政策與舊政策的比率)在1.0左右的小範圍內,其中1.0意味着新政策與舊政策相同,因此PPO進行了額外的修改,無需一起計算KL分歧。