0
本文作者: 奕欣 | 2017-05-16 16:19 |
雷鋒網(wǎng) AI 科技評論消息,OpenAI 今日發(fā)布了一個用于模擬機器人的控制訓(xùn)練的開源軟件 Roboschool,根據(jù)介紹,其整合了前段時間發(fā)布的 OpenAI Gym。
OpenAI Gym 是一款研發(fā)與比較強化算法的工具包,此前用戶反饋的問題在于價格。雖然已經(jīng)向個人或有課程學(xué)習(xí)需要的學(xué)生免費開放,但負責(zé)機器人控制的 MuJoCo 組件依然需要收費。
不過在基于 OpenAI Gym 環(huán)境的 Roboschool 里,用戶不必再擔心這一額外花費。據(jù)雷鋒網(wǎng)了解,有八個模擬器可以作為 MoJoCo 組件的免費替代品,還能進行重新調(diào)試,以產(chǎn)生更多逼真的動作。另外四個任務(wù)則提供了更具挑戰(zhàn)的任務(wù),比如類人直立行走的任務(wù),或是多玩家乒乓賽(multiplayer Pong)。
這樣一來,Roboschool 得以讓用戶更方便地在同一個場景中同時訓(xùn)練多個智能體。OpenAI 表示,他們希望隨著時間推移,能夠獲得更多的集合拓展,此外也期待社區(qū)后續(xù)的產(chǎn)出貢獻。
如視頻所示,你可以在 Roboschool 的界面上讓三個不同的機器人進行跑步競賽。而在 agent_zoo/demo_race1.py. 上運行此腳本時,每次都會隨機出現(xiàn)不同的機器人
OpenAI 團隊已經(jīng)將 MuJoCo 上的一些模擬器移植到 Bullet 上,并做了逼真化的處理。下圖的三個模擬器都有了不同程度的改進。比如 Walker2d 在緩慢走動時,細節(jié)更加真實;而原有的螞蟻(Ant)變得更「重」了一些,這樣它就需要借助四條腿來前進;人類行走者甚至還借鑒了能量損耗原則(=轉(zhuǎn)矩×角速度),并以「跑偏」的形式顯現(xiàn)出來。
在 agent_zoo 文件夾中,你可以看到三個模擬器的不同訓(xùn)練原則;并在 demo_race 里找到他們?nèi)齻€的跑步比賽視頻 demoj 腳本
此前的 OpenAI Gym 模擬器旨在掌握步行控制的要義,只需要學(xué)會簡單地前進就夠了。但實際情況可能復(fù)雜許多,且有很多地方尚未被探索過,因此模擬器的單循環(huán)策略開始變得不管用, 可能輕輕推模擬器一把,都會讓機器人摔個狗啃泥而動彈不得,更不要說完成任務(wù)了。
為了解決這一問題,在全新的 Roboschool 中,OpenAI 的研究者設(shè)計了兩個 3D 類人的模擬器,而在訓(xùn)練任務(wù) HumanoidFlagrun 中,機器人需要朝著不斷變動位置的旗子跑去,這一過程能夠訓(xùn)練機器人學(xué)會放緩速度并轉(zhuǎn)動方向。
而在「困難模式」的 HumanoidFlagrunHarder 中,機器人被賦予「跌倒」的權(quán)利,并嘗試用雙腿站起來。因此,任務(wù)的一開始,很可能機器人是躺在地上的。此外,機器人還要抵御不時的「攻擊」(見視頻),防止因為來自四面八方砸來的小白塊而摔倒。
HumanoidFlagrun 和 HumanoidFlagrunHarder 的訓(xùn)練策略也已經(jīng)在 GitHub 上開源。雖然機器人的步伐看上去并不那么快,形態(tài)也不像人般自然,但它所采取的策略已經(jīng)足以應(yīng)對非常多的狀況,也知道如何控制機器人。我們可以把這個策略當作一個多層感知機,甚于它沒有內(nèi)部狀態(tài),我們認為,在某些情況下,智能體應(yīng)該是采用了自己的手臂存儲信息。
就像雷鋒網(wǎng)在前文所提及的一樣,Roboschool 致力于讓用戶在同一模擬器上訓(xùn)練多個智能體,而 RoboschoolPong 就是一個很好的開始,與此同時,還有一大波模擬器正在路上。
通過「左右互博」的乒乓球賽,用戶得以在兩方同時訓(xùn)練同一個智能體,或是采用同樣的算法訓(xùn)練兩個不同的智能體,甚至,你也可以讓兩個獨立智能體自行訓(xùn)練(如下面視頻所示)。
多智能體的設(shè)定也帶來了一些有意思的挑戰(zhàn)。如果你同時訓(xùn)練兩方玩家,你很可能會看到如下圖所示的曲線圖:
策略更新與策略梯度同時進行
將會呈現(xiàn)如下結(jié)果:
智能體 1(綠線)學(xué)到在頂部可以成功回球,因此它經(jīng)常往頂部移動;
智能體 2(紫線)發(fā)現(xiàn)對手經(jīng)常往頂部移動,因此會試著往底部回球;
智能體 1 隨后也學(xué)會要往底部移動才能成功回球,而且智能體 2 經(jīng)常往底部回球,因此它也經(jīng)?!格v守」底部了。
經(jīng)歷這樣的循環(huán)后,策略開始震蕩,而經(jīng)歷了數(shù)小時的訓(xùn)練后,雙方都沒法再學(xué)到什么有用的內(nèi)容了。而在 GANs 中,在對抗性中進行學(xué)習(xí)屢試不爽,而 OpenAI 團隊的人認為這是一個非常有意思的研究問題。即便是在簡單的環(huán)境中,雙方的交互也會產(chǎn)生復(fù)雜的策略,也能提供符合實際的借鑒。
除了上文介紹的 Roboschool 外,OpenAI 團隊也在 OpenAI Gym 中做了不少研究工作。詳情可以參考以下鏈接:
Roboschool 的 GitHub 頁面:https://github.com/openai/roboschool
OpenAI Gym 的 GitHub 頁面:https://github.com/openai/gym
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。