
照片:Eric Haines
我們訓練出一對神經網路,能夠讓類人機器手解開魔術方塊。這些神經網路完全在模擬環境中訓練而來,採用與 OpenAI Five 相同的強化學習程式碼,而且結合了一種名為自動領域隨機化 (Automatic Domain Randomization - ADR) 的新技術。這個系統能應對訓練期間從未遇過的情境,例如被一隻絨毛長頸鹿戳碰。這表明,強化學習不僅適用於虛擬任務,也具備解決現實世界中需要高靈巧度問題的能力。
人類憑藉雙手,可以解決各式各樣的難題。在過去六十年的機器人發展中,面對人類用固有的一雙手便能完成的困難任務,通常都需要針對個別任務(在新視窗中開啟)設計專用的機器人。人類試圖另闢蹊徑,花費數十年嘗試使用通用型機器人硬體(在新視窗中開啟),但由於這些硬體具有高自由度,成效有限。值得一提的是,我們使用的硬體並非新產品,這隻機器手已有十五年歷史,但我們採用了全新的軟體方法。
自 2017 年 5 月以來,我們就開始致力於訓練出一隻類人機器手來解開魔術方塊(在新視窗中開啟)。之所以設定這個目標,是因為我們相信只要訓練出能夠完成複雜操作的機器手,就能為通用型機器人的發展打下基礎。2017 年 7 月,我們在模擬環境中成功解開了魔術方塊。不過到 2018 年 7 月為止,我們只能讓機器人操控一個積木。如今,我們終於實現了最初設定的目標。
完整的魔術方塊解開過程。此影片以實況速度播放,且未經任何剪輯。
要單手解開魔術方塊,即使對人類來說也是一種挑戰,一般兒童通常需要花費數年時間才能培養出掌握這項技能所需的靈巧度。不過,我們的機器人技術仍未臻完善,解開魔術方塊的成功率約為 60%,而面對極難(在新視窗中開啟)的混亂狀態時,成功率僅為 20%。
我們利用強化學習和 Kociemba 演算法(在新視窗中開啟),訓練神經網路在模擬環境(在新視窗中開啟)中解開魔術方塊,藉由演算法選擇解題步驟。A領域(在新視窗中開啟)隨機化(在新視窗中開啟)技術使得僅在模擬中訓練的網路能夠成功轉移到真實機器人上。

我們當前最大的挑戰,是如何打造足夠多元的模擬環境,以真實呈現現實世界的物理特性。像摩擦力、彈性和動力學等因素,對於像魔術方塊或機器手這樣複雜的物體來說,非常難以測量和建模,而我們發現單靠領域隨機化並不足夠。
為了克服這個問題,我們開發了一種名為自動領域隨機化 (ADR) 的新方法,能在模擬中不斷漸進式地產生越來越具有挑戰性的環境。B這樣我們便不再需要精確的現實世界模型,而且使在模擬中學習的神經網路能夠轉移到現實世界中。
ADR 從一個單一且未經隨機化的環境開始,讓神經網路在其中學習如何解開魔術方塊。隨著神經網路越來越擅長這個任務,達到某個表現門檻時,系統便會自動提高環境的隨機化程度。此舉讓任務變得更加困難,因為神經網路必須學會適應更多不同的隨機環境。神經網路會持續不斷學習,直到再次超過表現門檻,屆時會增加更多隨機化,而這個過程會不斷重複。
我們隨機化的其中一個參數是魔術方塊的尺寸 (如上圖)。ADR 以固定尺寸的魔術方塊作為起點,並且隨訓練進行逐漸擴大隨機化的範圍。我們將同樣的技術套用到所有其他參數上,例如魔術方塊的質量、機器人手指的摩擦力,以及手部的視覺表面材質等。因此,神經網路必須學會在這些愈加困難的條件下解開魔術方塊。
領域隨機化需要我們手動設定隨機化的範圍,這個工作並不容易,因為隨機化過多會讓學習變得困難,而隨機化不足則會妨礙模型轉移到真實機器人上。ADR 解決了這個問題,它可以持續自動擴大隨機化範圍,無需人工介入。ADR 不需要依賴專業領域知識,讓我們可以更輕鬆地把這套方法用在其他任務上。和手動隨機化不同,ADR 可以讓任務一直保持挑戰性,訓練過程永遠不會停滯或變簡單。
在方塊翻轉任務中,我們比較了 ADR 和手動領域隨機化,且在此任務上已達到強健的基準表現。一開始,ADR 在真實機器人上的成功率並不理想。不過,當 ADR 提高環境複雜度 (以熵作為衡量指標) 時,轉移到真實機器人的表現最終達到基準的兩倍,且完全無需人工調整。
利用 ADR,我們就能在模擬環境中訓練神經網路時,使其成功在真實的機器手上解開魔術方塊。這是因為 ADR 讓神經網路可以接觸到無限多元化的隨機模擬環境。正是因為訓練中曾面對這些複雜多變的環境,讓神經網路有能力從模擬轉移到現實,可以迅速辨識並加以調整,以應對各種真實的物理環境。
為了測試這種方法的極限,我們在機器手解開魔術方塊時施加各種干擾來進行實驗。此舉不僅可以測試我們控制網路的穩健性,也同時考驗了我們用來估算魔術方塊位置與方向的視覺網路。
我們發現,雖然從未用過這些干擾進行訓練,但透過 ADR 訓練的系統對干擾的抵抗力出乎意料地強:機器人在各種干擾下,雖然表現並非最佳,但都能順利完成大部分翻轉和平面旋轉。
我們相信元學習(在新視窗中開啟),也就是學會如何學習,是打造通用系統的重要前提,因為它能讓系統快速適應環境中不斷變化的條件。ADR 背後的假設是,結合記憶增強網路與足夠隨機化的環境,就能促使湧現式元學習的出現,讓網路能執行一種學習演算法,使其能快速調整行為以便適應所處環境。C
為了系統性地檢驗這一點,我們對神經網路在不同干擾下完成每次翻轉 (將魔術方塊轉動至不同顏色朝上) 所需時間進行了測量,這些干擾包括重設網路記憶、重設動態環境,或關節損壞等。我們在模擬環境中進行這些實驗,這樣我們就能在受控條件下,計算出一萬次測試的平均表現。
一開始,隨著神經網路成功完成的翻轉次數越多,每次完成所需的時間便會逐漸減少,因為網路在學習如何適應。當施加干擾時 (上圖中垂直的灰色線),我們看到完成任務所需時間出現明顯尖峰。這是因為網路目前所使用的策略在改變後的環境中已不再有效。接著,網路會重新學習新環境,成功完成所需時間又會下降回之前的基準水平。
我們還測量了失敗機率,並對平面旋轉操作 (將頂面順時針或逆時針旋轉 90 度) 進行相同實驗,發現了相同的適應模式。D
透過將網路視覺化,我們得以理解它們在記憶中儲存了什麼。隨著網路越來越複雜,這一點也變得越來越重要。
上圖展示了我們神經網路的記憶內容。我們使用可解釋性工具箱中的一個基本方法(在新視窗中開啟),名為非負矩陣分解,將這個高維向量壓縮成 6 組,並為每一組分配獨特的顏色。接著,我們在每個時間步驟顯示目前主導群組的顏色。
我們發現,每個記憶群組都與特定的語意行為相關聯。例如,我們只要看網路記憶中主導群組的狀態,就能在它實際執行之前,判斷出它是否準備要旋轉魔術方塊或將頂面順時針轉動。
用機器手解開魔術方塊仍然不是容易的事。我們的方法在面對需要 26 次平面旋轉的極難混亂狀況(在新視窗中開啟)時,目前能成功解開魔術方塊的機率是 20%。對於需要 15 次旋轉即可還原的較簡單亂序,成功率則為 60%。當魔術方塊掉落或超過時間限制時,我們便會將該次嘗試視為失敗。不過,我們的網路能從任何初始狀態解開魔術方塊。所以如果方塊掉落,可以將它放回手中繼續解開。
我們發現,網路通常在剛開始的幾次旋轉和翻轉中比較容易失敗。這是因為在最初的幾次旋轉與翻轉中,神經網路必須同時兼顧解開魔術方塊與適應現實世界的物理環境。
為了衡量我們的進展,同時使問題更具可處理性,我們設計並製作了客製化版本的魔術方塊,作為邁向最終解開標準魔術方塊的中繼階段。E

魔術方塊試作版本,從左到右:鎖定方塊、單面方塊、完整方塊、Giiker(在新視窗中開啟) 方塊、標準魔術方塊
試作版本 | 位置 + 方向 | 內部自由度 (感測器) |
鎖定方塊 | 視覺 | 0 (無感測器) |
單面方塊 | PhaseSpace | 2 (PhaseSpace) |
完整方塊 | PhaseSpace | 6 (PhaseSpace) |
Giiker 方塊 | 視覺 | 6 (內建感測器) |
標準魔術方塊 | 視覺 | 6 (視覺) |
我們相信,達到人類水準的靈巧操作能力是邁向打造通用型機器人的必經之路,而我們也對持續朝這個方向邁進感到無比振奮。
無論是機器人還是虛擬系統,如果您也想協助打造越來越通用的 AI 系統, 加入我們吧!
註腳
- A
我們專注於目前機器難以掌握的問題:感知與靈巧操作。因此,我們訓練神經網路實現由 Kociemba 演算法產生的必要旋轉與翻轉魔術方塊的動作。
- B
我們的工作與 POET(在新視窗中開啟) 密切相關,後者可以自動產生 2D 環境。然而,我們的工作學習了涵蓋所有環境的聯合策略,能夠轉移並適用於任何新產生的環境。
- C
更具體來說,我們假設,神經網路容量有限,卻要在複雜度不斷增加的環境中學習時,會被迫發展出一種特殊的學習方式。因為它無法記住每個環境的解法,也沒有一套萬用策略能應付所有隨機變化。
- D
完整結果請參考我們的論文(在新視窗中開啟)。
- E
我們所做的唯一修改,是在每個中心方塊的彩色貼紙上裁切一小塊。這是為了打破旋轉對稱性(在新視窗中開啟)所必須採取的步驟。
作者
致謝
感謝以下人士對本篇文章及論文草稿提供寶貴意見:Josh Achiam、Greg Brockman、Nick Cammarata、Jack Clark、Jeff Clune、Ruben D’Sa、Harri Edwards、David Farhi、Ken Goldberg、Leslie P. Kaelbling、Hyeonwoo Noh、Lerrel Pinto、John Schulman、Ilya Sutskever 及 Tao Xu。
影片:Peter Jordan (導演)、Yvette Solis (製作人)、Brooke Chan (製作人)
編輯:Ashley Pilipiszyn
設計:Justin Jay Wang 及 Ben Barry
攝影:Eric Haines


