? PPO:? A2C算法的改進版,主要是為了解決 ‘learning rate 不易設置的問題’, DPPO是 PPO的distributed版本, 比如10個worker,每個worker都有獨立的experience。? 由于可以避免experience間的相關性,所以DPPO明顯優于PPO。
注: PPO已經是OpenAI的默認強化學習算法!
DPPO是PPO的分布式多worker版本。這里主要討論PPO。?
PPO其實就是為了解決learning rate不易控制的問題,主要是如果將learning rate設置得過小,訓練時間太長,效率太差! 如果設置得過大,又容易錯過最優解。 PPO其實就是一種可以 自適應 learning rate的AC算法。 critic訓練的標準仍然是最小化s-v值的TD_error。而在actor端,更新的標準不再是固定的 P(s-a)*vt, 而是改寫成? P*At? ? (其中At指的是s下獲得的advantage),而且這個P,不再是固定的從神經網絡中得到,而是 考慮 舊P和新P之間的差異,并且按照這種差異作出自適應的調整, DeepMind用的是一個懲罰函數 KL,而OpenAI用的方法是可以將new P比舊P的更新幅度限定在某個程度范圍內。
具體的介紹,參見:https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning/
具體的代碼,參見:https://github.com/MorvanZhou/Reinforcement-learning-with-tensorflow/blob/master/contents/12_Proximal_Policy_Optimization/DPPO.py