強化學習PPO算法的思路流程

首先可以肯定的是PPO算法是基於actor-critic框架的,但是它又含有強烈的Policy Gradient的風格。本文僅介紹PPO算法的應用流程。

通常PPO算法的實現中有三個network,一個critic network,兩個actor network(old_actor and new_actor)。在一個episode中,agent首先利用現有的策略Pi (new_actor network)與環境進行互動獲得一個batch的數據,在這個過程中actor和critic網絡是不會被優化的。而在獲得一個完整的batch數據後,actor network和critic network開始對這一batch數據進行學習,這一點類似於Policy Gradient。但又不同於Policy Gradient的是,actor network和critic network會對sample到的這一個batch的數據進行T次的學習。

其中,在採集完這個batch數據後,使用critic network獲得估計的值函數,然後根據critic network估計的值函數和batch數據中存儲的每個時刻的reward按照一定的折扣率分別計算採集到的這個batch數據中每個時刻值函數,如下公式所示

在對採集到的這個batch數據學習時,old_actor network就用到了。首先將獲得這個batch數據的new_actor network中的參數複製給old_actor network,然後開始進行new_actor network和critic network的學習。首先將這個batch數據存儲的T個state輸入給critic network,critic network分別輸出T個時刻的估計值函數,然後再根據公式(10)所示計算出T個target value function,最後就可以計算出T個優勢函數(TD error)(不同於DDPG中用target network來以計算TD error)

之後就利用batch數據的TD error對new_actor network的參數進行N次優化,其中的loss如下式所示

最後,利用batch數據的TD error對critic network進行B次優化。對critic network的優化方法和Advantage actor-critic算法中所用方法基本一樣。

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