當前位置:
首頁 > 科技 > 太像人手了!OpenAI用打DOTA的演算法,教會了機械手「盤核桃」

太像人手了!OpenAI用打DOTA的演算法,教會了機械手「盤核桃」

栗子 夏乙 發自 凹非寺

量子位 報道 | 公眾號 QbitAI

五根手指、24個關節,這隻機械手從結構到大小,方方面面都像極了人類的手。

在OpenAI的實驗室里,它緩緩盤著核桃轉動著一個木塊。沒有人告訴它該動哪根指頭,驅使它的,是在模擬器里訓練出來的強化學習演算法。

這套靈巧的系統,叫做Dactyl

它可以把一個正方體,轉到指定的方向。

沒有人指揮它,哪根手指往哪個方向用力,收到的指令只是木塊的朝向(I在前,E在左,N在上) 而已。

當然,動作並不像人類盤核桃那樣一氣呵成,機器人要一步一步來。

神經網路訓練的過程中,自學了許多不同的分解動作。比如上圖,用兩個手指輕輕夾住方塊,再用其他手指撥一撥,方塊就轉起來了。

再比如,推著方塊在掌心滑動 (Sliding) 。還有,底面用不離開手心,但方塊依然水平轉動 (Finger Gaiting) ,堪稱盤核桃的核心技巧。

這些技能,Dactyl都是在模擬器里學會的。不過,它能順利地把技能遷到現實世界,就算物體不是方塊,也能隨機應變。

從二指夾具到五指機械手

如果你關注機器人技能的進展,大概會發現這樣的機械手,遠不如兩根指頭的夾子常見。

各大門派都在用二指夾具,通過各種方法學習著抓取、放置、橫掃等動作。

比如OpenAI自己,就展示過二指夾具的抓東西扔東西技能:

Google,曾經出動了大量的二指夾具來學習抓取:

在李飛飛夫婦實驗室學習抓鎚子的機器人,也同樣是兩根手指:

控制相對簡單,成本相對低廉,對於那些靠抓住、放開就能解決的問題來說,機械臂的確是個好選擇。

但面對文章開頭展示的那些複雜動作,兩根指頭就先天不足了。

更何況,人類對於和自己相似的物體,有著迷之熱情的追求。

像人手一樣的機械手發展得如何呢?雖說已經出現了幾十年,但它們操縱物體的能力一直很有限。

OpenAI說,要靠傳統的機器人學方法來解決靈巧操控問題,太慢了。

《紐約時報》說,按傳統的方法,機械手只能做大量工程師編了程的事情。

現在,OpenAI展示了機械手自己學習更複雜的操作的能力。

他們所用的這隻結構上高度模擬的手,來自英國Shadow Robot公司。

在這隻手上,OpenAI花了大價錢。Shadow官方網站沒有明碼標價,而根據機器人網站Android World顯示,買這樣一隻機械手要花掉119700美元,差一點點就到了12萬。

不讓它多掌握點技能,哪對得起這12萬刀。OpenAI要教這隻機械手來轉動各種各樣的物體,每一種形狀都重新編程當然不行。

另外,這隻手有24個自由度,要控制的維度就比傳統7自由度機械臂多了兩倍。

OpenAI還想讓它在真正的現實世界中工作,於是,感測器獲取的信息又嘈雜又有延遲,有時候,當一個指尖的感測器被其他指頭擋住,演算法還得靠不完整的信息來運轉。

面對種種困難和5根「手指」,他們祭出了前不久訓練AI打DotA2所用的演算法。

OpenAI Five,跨界了。

盤核桃技能習得之路

Dactyl模型里,有兩個神經網路各司其職:一是視覺網路,二是控制網路。

簡單來說,要了解物體的情況,再把它轉到對的方向。

兩個網路,都是為了隨機應變而生,用的方法叫做「域隨機化 (Domain Randomization) 」。


控制網路

先來說控制網路,這個網路是在MoJoCo物理引擎裡面,搭了個模擬器來訓練的。

不過,研究人員並不希望AI過度依賴物理原理。因為,感測器的測量數據可能嘈雜,也可能有延時,且隨著時間的推移,機器人會受傷會老化,物理性質也會發生變化。

而要把技能推廣到真實環境,就更加需要應付多變的環境

所以,這個模擬器只是對物理世界的一個「粗略近似 (Coarse Approximation) 」。

除此之外,為了培養AI的應變能力,模擬器提供了各種各樣的場景,物體的物理性質和外觀都可以發生非常豐富的變化。

如果,一個強化學習策略,在所有的模擬場景里,都能完成任務,那麼它到了真實世界,也更容易來者不拒。

這也不是全部,團隊希望機器人可以在不同環境下,選擇不同的動作來執行任務,於是用了LSTM來賦予AI一些記憶。沒有這些記憶的話,機械手需要兩倍的轉動次數,才能把物體捧在正確的方向。

成就了刀塔AI戰隊的Rapid,是一個規模化的近端策略優化系統。在這裡,Dactyl用6144個CPU核加上8個GPU,訓練了50小時,相當於塵世的一百年。

視覺網路

訓練之初,Dactyl就是朝著「轉動隨機物體」的目標去的,因為世界也不是只有正方體那樣單調。

所以,視覺的部分,用了很普通的RGB攝像頭,數據用來估計物體的位置和朝向,不需要太精確。

三枚攝像頭圍在機器人身邊,解決了模糊和遮擋的問題,足矣。

一個卷積神經網路(CNN) ,會把攝像頭拍到的視頻吃下去,估算物體的位置和方向,再用這些信息來指揮控制網路選取合適的操作。

這個網路的訓練,不是在MUJOCO里,而是Unity遊戲引擎,後者的視覺場景更為豐富,給了Dactyl千錘百鍊的機會。

兩個網路是分開訓練的,但合體之後便能直接走進真實世界,微調都不需要。

OpenAI踩過的坑

除了展示成果,OpenAI的科學家們還熱情地公開了採過的坑:這些方法我們試了,沒用。

坑有兩個:

一是降低反應時間。OpenAI目前設置的反應時間是80毫秒,比人類的150-250毫秒要低,但高於神經網路25毫秒的計算時間。他們也試過把反應時間降低到40毫秒,結果發現,消耗的訓練時間更長了,性能沒什麼明顯提升。

二是用真實數據來訓練視覺策略。從嘗試的結果來看,用真實數據和模型數據混合訓練,與只用模擬數據相比成績相當,於是,他們訓練最終的模型時就只用了模擬數據。

除此之外,在實驗過程中,OpenAI科學家們的認知還被顛覆了幾次:

操縱真實世界物體不是非得用觸覺感測不可。他們發現,用多種多樣的感測器數據,如果模擬器不能有效地對這些數據建模,還不如用少量好建模的感測器。

為一個物體設置的隨機化,會泛化到與它性質類似的其他物體。他們在教會系統操控方塊之後,又弄了個八稜柱用來訓練新演算法,在這個過程中他們發現,為方塊設計的隨機化用起來完全沒問題。但是,換成一個球體來訓練,就不太行了。

對於實體機器人來說,系統工程和演算法同樣重要。他們發現,運行的都是一樣的策略,有一個工程師成績總是比別人好……後來,經過對這位別人家孩子的仔細檢查,發現他的電腦比大家都快,掩蓋了一個bug。

傳送門

讀Paper:

https://d4mucfpksywv.cloudfront.net/research-covers/learning-dexterity/learning-dexterity-paper.pdf

博客原文:

https://blog.openai.com/learning-dexterity/#results

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 量子位 的精彩文章:

眼擎科技CEO朱繼志:自動駕駛視覺成像系統解析
康奈爾機器人的肌肉是爆米花做的,果然很有爆發力

TAG:量子位 |