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