天天看點

【2天=100年】OpenAI用打Dota2的算法造了一隻會轉方塊的機器手

【新智元導讀】之前在DOTA2團隊戰中戰勝人類玩家的OpenAI Five,現在被用于訓練機器手,取得了前所未有的靈活度。這隻機器手完全在虛拟環境中自我學習和訓練,然後成功遷移到現實世界解決實際問題。OpenAI使用6144個CPU和8個GPU來訓練,50小時内收集了大約100年的經驗。

還記得OpenAI那個在DOTA2有限制5v5團戰中戰勝人類玩家的OpenAI Five嗎?

這次,OpenAI的研究人員将同樣的算法和同樣的代碼用在了訓練機器手上,所得到的機器手能以前所未有的靈活度操縱立方體、圓柱體等物體。

這個系統名為Dactyl,與其他機器人系統不同的地方在于,它完全在模拟環境中進行訓練,并将其虛拟世界中得到的知識轉化為現實,并且适應現實世界的實體學。所有的行為都是自主發現的。

研究人員表示,他們的結果表明,完全可以在純模拟環境中訓練智能體,無需對現實世界進行精确的實體模組化(一項極端複雜且浩大的工程),就能讓智能體解決實際的任務。

雖然 Dactyl 機器手跟人手相比仍有一定距離,但這項工作表明,機器學習有可能解鎖機器新的能力——将來,AI完全可以在虛拟世界中自己教自己新的技能,大大加快學習速度,然後轉移至實體世界。

OpenAI還在這次研究中發現了一些令他們感到意外的結果:

首先,觸覺感應對于操縱現實世界物體并不是必要的。Dactyl 機器手操縱隻接收五個指尖的位置以及立方體的位置和方向。有限的傳感器可以獲得更好的性能,因為這些傳感器可以在模拟器中有效模組化,由很多傳感器組成的傳感器組模組化起來非常複雜。

其次,為一個對象開發的随機化(Randomizations)也能推廣到具有類似屬性的其他對象身上。在玩轉立方體後,OpenAI的研究人員列印了一個八角棱鏡,結果 Dactyl 機器手僅使用他們為立方體設計的随機化就實作了高的性能。不過,操縱球體還略有難度,可能是因為他們沒有随機化模拟滾動行為的參數。

此外,對于現實世界的機器人來說,要讓運作性能高,好的系統工程與好的算法同等重要。

減少反應時間并沒有改善性能。傳統觀點認為,減少動作之間的時間應該可以提高性能,因為狀态之間的變化更小,是以更容易預測。但實驗中,研究人員将機器手動作之間的時間減少到 40ms,訓練時間反而變長,而且沒有顯著改善其在現實世界中的性能。他們得出的結論是,這種經驗法則可能适用于線性模型,但可能不太适用于神經網絡模型。

最後,使用真實資料來訓練結果不一定更好。與模拟資料相比,真實資料有很明顯的缺點,比如跟蹤标記的位置資訊有延遲和測量誤差。更糟糕的是,實際配置的更改很容易讓實際資料變得無效,而且收集足夠多、足夠有用的資料十分困難。最終 Dactyl 機器手的視覺模型,是在沒有任何實際資料的情況下完成的。

機器手靈活控制物體有四大難點,一直未取得重大突破

Dactyl是一個使用Shadow Dexterous Hand操縱目标的系統。我們将一個木塊或棱鏡這樣的物體放在Dactyl的手掌中,讓Dactyl将其重新定位至不同的方向;比如旋轉木塊,讓其新的一面朝上。網絡僅負責觀察指尖的坐标以及來自三個普通RGB相機的圖像。

【2天=100年】OpenAI用打Dota2的算法造了一隻會轉方塊的機器手

雖然第一個拟人化的機器手早在幾十年前就出現了,但如何利用這些手有效地操縱物體,一直是機器人控制領域内的長期挑戰。與運動之類的其他問題不同,人們在利用傳統機器人方法實施靈巧的操作方面的進展一直很緩慢,并且目前的技術在操縱現實世界中的物體上仍然存在局限性。

要對機器手中的物體實施重新定向,需要解決以下問題:

在現實世界中奏效。強化學習在模拟和視訊遊戲中取得了許多成功,但在現實世界中取得的成果卻相對有限。我們在真實的機器人身上對Dactyl進行了測試。

高維控制。Shadow Dexterous Hand的自由度為24,而一般的機器人手臂的自由度為7。

噪音和觀察部分目标。 Dactyl是在真實世界中工作,是以必須處理噪聲和延遲的傳感器資料。當指尖的傳感器被其他手指或物體遮擋時,Dactyl必須能夠處理不完整資訊。像摩擦和滑動等實體體系中的許多組成部分,是無法直接通過觀察得到的,必須由推理得出。

操縱多個對象。 Dactyl在設計上的高靈活性,足以重新定向多個目标。也就是說,我們的方法不能使用僅适用于特定形狀目标的政策。

無需任何人工輸入:領域随機化,再現模拟奇迹!

Dactyl完全是在模拟環境中學習如何解決目标重定向任務(object reorientation task)的,無需任何的人工輸入。在此訓練階段之後,學習政策會在沒有任何微調的情況下對真實機器人起一定作用。

在操縱機器人的學習方法方面,通常會面臨一個兩難的選擇。模拟的機器人可以輕松提供充足的資料來訓練複雜的政策,但是大多數操作問題都無法準确地模組化,進而無法使這些政策轉移到真實機器人身上。即使是對兩個物體接觸時發生的情況進行模組化(這是操作中最基本的問題)也是一個活躍的研究領域,并且目前沒有廣泛統一且接受的解決方案。直接在實體機器人上展開訓練可以讓政策從現實世界實體層面進行學習,但現今的算法需要多年的經驗才能解決類似對象重定向這樣的問題。

而領域随機化(domain randomization)是在模拟中進行學習的,旨在提供各種經驗而不是将現實進行最大化。這種思路提供了最好的兩種方法:在模拟中學習,可以通過擴充來快速收集更多的經驗;不強調現實主義,可以解決模拟器隻能近似模拟的問題。

【2天=100年】OpenAI用打Dota2的算法造了一隻會轉方塊的機器手

利用MuJoCo實體引擎建構機器人系統的模拟版本。這個模拟僅僅是真實機器人的粗略近似:

對摩擦、阻尼和滾動阻力等實體屬性進行測量是既麻煩又困難的。随着機器人的磨損,這些屬性也會随時間而改變。

MuJoCo是一個剛體模拟器,這意味着它不能模拟手指上或肌腱的拉伸時的可變形橡膠。

機器人隻能通過反複接觸來操縱物體。 然而,衆所周知,接觸力難以在模拟中準确地再現。

通過校準其參數來比對機器人的行為,可以使模拟更加逼真,但在目前的模拟器中,許多這樣的效果是無法精确模組化的。

相反,該方法是在模拟環境的分布上對政策進行訓練,其中實體和視覺屬性是随機選擇的。随機值是表示實體系統不确定性的一種自然方法,它還可以防止對單個模拟環境的過度拟合。如果政策可以在所有模拟環境中完成任務,則更有可能在現實世界中完成該任務。

6144個CPU和8個GPU,50小時内收集大約100年的經驗

學習控制

通過建構支援遷移的模拟,我們減輕了在現實世界中控制機器人來完成模拟任務的困難,這是一個非常适合強化學習的問題。雖然用一隻模拟的手來操縱物體這個任務已經有些困難,但是要在所有随機實體參數組合中學習進行這樣的操作實際上要更加困難。

為了在不同環境中進行推廣(generalize),政策可以在具有不同動态的環境中執行不同的操作。由于大多數動力學參數不能從單個觀測中推斷出來,是以我們使用LSTM(一種具有記憶的神經網絡)使網絡能夠了解環境的動态。LSTM在模拟中實作的旋轉大約兩倍于不具有記憶的政策的旋轉。

Dactyl使用Rapid學習,這是一個強化學習訓練系統,之前解決了Dota2的OpenAI Five使用的也是它。我們使用了與OpenAI Five不同的模型架構、環境和超參數,但是使用的算法和訓練代碼是完全相同的。Rapid使用6144個CPU核心和8個GPU來訓練我們的政策,在50小時内收集了大約100年的經驗。

為了進行開發和測試,我們使用嵌入式運動跟蹤傳感器來驗證我們的控制政策,以分别了解控制政策和視覺網絡的性能。

學習觀察

Dactyl的設計目的是能夠操縱任意物體,而不僅僅是為了支援跟蹤進行過特殊修改的物體。是以,Dactyl使用正常的RGB相機圖像來估計物體的位置和方向。

我們使用卷積神經網絡訓練一個姿态估計器(pose estimator)。神經網絡從機器手周圍的三個錄影機中擷取視訊流,并輸出目标的預估位置和方向。我們使用多台錄影機來解決模糊和遮擋問題。我們再次使用Unity遊戲開發平台,僅在模拟中使用域随機化來訓練這個網絡,該平台可以模拟比Mujoco更廣泛的視覺現象。

控制網絡(control network)根據對象的姿态重新定位,視覺網絡(vision network)将圖像從錄影機映射到對象的姿态,通過結合這兩個獨立的網絡,Dactyl可以通過觀察來操縱對象。

【2天=100年】OpenAI用打Dota2的算法造了一隻會轉方塊的機器手

用于學習估計立方塊的姿勢的訓練示例

所有行為都由機器自主發現,采用與人不同的政策

在部署系統時,我們注意到Dactyl使用了一組多樣的靈巧操作政策來解決任務。這些政策也是人類經常使用的。但是,我們并沒有明确地将這些政策教給系統;所有的行為都是自主發現的。

【2天=100年】OpenAI用打Dota2的算法造了一隻會轉方塊的機器手

Dactyl根據GRASP分類法了解類型。從左上到右下分别是:指尖捏、掌心捏、三指握、四指握、強力抓握、五指精準抓握。

我們觀察到,對于精準抓握,比如指尖捏,Dactyl會使用拇指和小指。人類則傾向于使用拇指和食指或拇指和中指。然而,由于由額外的自由度,機器手的小指更加靈活,這也許可以解釋為什麼Dactyl更喜歡用小指。這意味着Dactyl可以調整人類的政策,以更好地适應自身的局限性和能力。

改變實驗方式時的表現

我們測試了Dactyl在掉落物體、逾時或成功翻轉目标50次前的成功翻轉次數。 我們在純模拟訓練的結果表明,該政策能夠成功操縱現實世界中的目标。

【2天=100年】OpenAI用打Dota2的算法造了一隻會轉方塊的機器手

我們在實驗室中使用Shadow Dexterous Hand、PhaseSpace動作跟蹤相機和Basler RGB相機進行實驗。

對于操作立方體的任務而言,使用随機化訓練的政策可能比未随機化訓練的政策實作更多的翻轉次數,具體結果如下表所示。 此外,使用由視覺估計姿态的控制網絡的表現,幾乎與直接從運動跟蹤傳感器中讀取資料的網絡一樣好。

【2天=100年】OpenAI用打Dota2的算法造了一隻會轉方塊的機器手

學習過程

【2天=100年】OpenAI用打Dota2的算法造了一隻會轉方塊的機器手

為了讓我們的政策在面向不同的實體動态目标時變得更加強大,OpenAI研究人員将絕大部分的訓練時間花費在這件事上。在沒有随機化的情況下,要在模拟實驗中學會翻轉立方體需要大約3年時間。在完全随機化模拟實驗中,實作類似的目标性能則需要大約100年。

編譯來源:

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

原文釋出時間為:2018-07-31

本文來自雲栖社群合作夥伴新智元,了解相關資訊可以關注“AI_era”。

原文連結:

【2天=100年】OpenAI用打Dota2的算法造了一隻會轉方塊的機器手

繼續閱讀