OpenAI公佈強化學習新演算法,可控制複雜機器人

AI科技大本營發表於2017-07-21


近日,OpenAI 釋出了一種新型的強化學習演算法:近端策略優化(Proximal Policy Optimization,簡稱 PPO),這種演算法不但在效能上比肩甚至超過當前最先進的方法,而且更容易實現和除錯。由於 PPO 易於使用並且效能優秀,OpenAI 已將其設為預設的強化學習演算法。

OpenAI公佈強化學習新演算法,可控制複雜機器人

視訊地址:https://v.qq.com/x/page/r0527kvbyeb.html

近端策略優化(PPO)可以讓我們在極具挑戰性的環境中訓練 AI 策略。如上所示的 Roboschool(進行機器人模擬的開源軟體,整合在 OpenAI Gym 中),當其中的智慧體嘗試捕獲目標(粉紅色球體)時,它需要學習如何行走、跑動和轉向。在被白色方塊撞擊後,它還需要學習如何藉助自身力量恢復平衡,在被撞倒時,還要學習如何從草地上站起來。


程式碼地址

https://github.com/openai/baselines


深度神經網路可以用來控制視訊遊戲,三維運動或者圍棋等。近來在這方面取得的突破依託了“策略梯度方法”(Policy gradient methods)。但是想要藉助這種方法得出優秀結果十分困難,因為它對步長大小的選擇非常敏感。如果步長太小,訓練進展就會非常緩慢;但如果步長太大,訊號則會被噪聲覆蓋,甚至可能導致效能急劇下降。同時這種策略梯度法的樣本效率非常低,它需要數百萬(或數十億)的時間步數來學習一個簡單的任務。


研究人員試圖使用 TRPO 、ACER 等方法約束或優化策略更新的步長大小,藉以消除這些弊端。但是這些方法本身也存在缺陷,ACER 方法要比 PPO 方法複雜的多,它需要額外新增程式碼來進行 off-policy 修正以及一個 replay buffer,但它在 Atari 基準上的表現僅僅比 PPO略好。


TRPO 雖然在連續控制任務中非常有用,但它與那些在策略和值函式或輔助損失函式(auxiliary losses)間共享引數的演算法不易相容,此類演算法中有些常被用於解決 Atari 和其他視覺輸入很重要的領域中的問題。



近端策略優化(PPO)


通過監督學習,我們可以輕鬆地實現 cost function,並在 cost function 上執行梯度下降。我們確信,只需稍微除錯幾次超引數,就能得到非常優秀的結果。


在強化學習上取得成功並不容易,演算法中通常具有許多難以除錯的活動模組,為了獲得好的結果,需要花費大量的精力來調整這些模組。PPO 演算法在實現難度、樣本複雜度和除錯難度之間找到了一個平衡點,它嘗試在每一步長上計算一個最小化 cost function 的更新,同時確保與先前策略的偏差維持在較小水平。


我們先前曾詳細介紹了 PPO 的一個變體,該變體使用一個自適應 KL 懲罰項來控制每次迭代中的策略改變。這一新變體使用了一種新的目標函式,該目標函式很少在其他演算法中使用:

OpenAI公佈強化學習新演算法,可控制複雜機器人


該目標函式實現了一種與隨機梯度下降法相相容的置信域(Trust Region)更新方法,同時還通過移除 KL 懲罰項和不進行適應性更新,簡化了演算法。在測試中,該演算法在連續控制任務中表現出了最佳效能,並且在 Atari 上幾乎比肩 ACER 演算法的效能,但是它實現起來卻簡單的多。



可控制的複雜機器人

OpenAI公佈強化學習新演算法,可控制複雜機器人

視訊地址:https://v.qq.com/x/page/r0527kvbyeb.html

利用 PPO 訓練的智慧體可以制定靈活的移動策略,在朝目標所在位置移動時可以臨時進行轉向和傾斜。


我們藉助用 PPO 訓練出的策略開發出了互動式智慧體。藉助這種智慧體,我們可以使用鍵盤在 Roboschool 環境中為機器人設定新的目標位置;雖然輸入序列與訓練智慧體所用的序列不同,但是它可以設法進行泛化(generalize)。


我們還使用 PPO 來教複雜的模擬機器人學習行走,如波士頓動力(Boston Dynamics)公司研發的「Atlas」模型;此模型有 30 個不同的關節,而雙足機器人只有 17 個。其它研究人員還使用 PPO 訓練機器人,使其在跨越障礙時可以展現出驚人的跑酷技巧。


OpenAI公佈強化學習新演算法,可控制複雜機器人

視訊地址:https://shimo.im/doc/8TXiF6q7K3kbOTv4/

基準:PPO 和 TRPO


釋出的基準包括 PPO 和 TRPO 的可擴充套件並行實現工具,它們兩個都使用 MPI 來進行資料傳輸,而且使用的都是 Python3 和 TensorFlow。我們還加入了策略的預訓練版本,用以在 Roboschool agent zoo 中訓練上述機器人。


OpenAI 正在尋找可以幫助他們構建和優化強化學習演算法程式碼庫的人員。如果你對強化學習,標準檢查程式,深入實驗以及開源有興趣,請點選以下網址進行申請:https://jobs.lever.co/openai/5c1b2c12-2d18-42f0-836e-96af2cfca5ef,並且註明你已閱讀關於 PPO 的文章。


原文地址

https://blog.openai.com/openai-baselines-ppo/





相關文章