藉助於手臂,人類可以完全各種各樣的任務。而在機器人過去 60 年的發展歷程中,人類透過雙手可以完成各項複雜的任務,但卻需要針對每項任務設計特定的機器人。
那麼,機器人是否可以像人一樣玩魔方呢?自 2017 年 5 月以來,OpenAI 的研究者一直在嘗試訓練類人機械手來解決玩魔方問題。2017 年 7 月,他們在模擬環境下實現了機械手玩魔方。但截至 2018 年 7 月,研究者只能實現玩簡單魔方。現在,他們終於實現了機械手玩魔方的目標。
單手玩魔方對於人類來說都很困難。所以,OpenAI 的技術還不是足夠完善,目前,OpenAI 的技術可以讓機器人解決 60% 的魔方情況,在最困難的魔方上只能解決 20%。
在機械手玩魔方的過程中,研究者還對其施加了各式各樣的干擾,如戴橡膠手套、綁住食指和中指、蒙上一塊布、「假長頸鹿」干擾和用筆戳等。值得欣慰的是,OpenAI 的機械手在各種干擾下依然不為所動,淡定地玩「自己的」魔方。
論文地址:https://d4mucfpksywv.cloudfront.net/papers/solving-rubiks-cube.pdf
兩項任務
在論文中,OpenAI 的研究者考慮了兩項都使用影子靈巧手指(Shadow Dexterous Hand)的不同任務:魔方塊的重定向和完成魔方。
魔方塊重定向
魔方塊重定向任務是為了旋轉方塊到期望的目標方向上。如果一個方塊的旋轉弧度與目標方向保持在 0.4 之內,則認為該方塊旋轉到了正確的方向,然後也就生成一個新的隨機目標(即另一個方塊也開始旋轉)。
完成魔方
研究者提出利用相同的影子靈巧手指來解決魔方任務。簡言之,魔方是一種內部具有 6 種自由度的益智遊戲,包含 26 個透過接頭和彈簧系統相連的方塊。每個方塊有 6 個面,可以自由旋轉,從而帶動整個魔方轉動。如果魔方的 6 個面都成為一種顏色,則認為魔方任務完成。
方法
研究者訓練神經網路,並利用強化學習來完成魔方任務。他們在訓練過程中遇到了一個最大挑戰,即在模擬中需要建立足夠多樣化的環境,從而儘可能多地捕捉到真實世界的物理狀態。摩擦力、彈性和力度這些因素對於複雜的魔方或機械手而言是難以測量和建模的,並且發現僅僅依靠域隨機化是不夠的。
基於此,研究者提出利用自動域隨機化的方法在模擬中不斷地生成越來越困難的環境。
自動域隨機化(ADR)
ADR 從單一的、非隨機環境開始,這裡神經網路嘗試學習解決魔方問題。當神經網路在任務表現上變得更好並達到了效能門檻後,隨機化域的數量自動增加,使得任務變得更難解決。神經網路繼續學習,直到效能達到最好,然後再增加隨機化的環境,如此反覆。
透過 ADR,研究者可以訓練一個神經網路,用於解決真實機器人手中的魔方問題。這是因為 ADR 輸入的各種環境資訊可以讓網路接觸到各種各樣的隨機模擬。
(d)將模型遷移到真實世界。研究者使用三個攝像機獲得魔方的姿態資訊,並使用 CNN 進行處理,同時使用 3D 姿態捕捉系統獲得機器人手指的位置資訊。而魔方的朝向則使用同一個視覺狀態評估器或 Giiker 方塊——一個有著內部嵌入感測器的方法輸入到策略網路中。
行為、獎勵和目標
研究者在策略網路上使用了迴圈神經網路的架構。他們使用有著 ReLU 啟用函式的全連線層作為輸入層,並使用一個單層 LSTM 層進行處理。
價值網路和策略網路是分開的,但是兩者有著一樣的架構。研究者將 LSTM 輸出對映為一個標量值。
圖 12:(a)價值網路和(b)策略網路的模型架構。
視覺模型
圖 13:在每一面中間有一個缺口的魔方。(a)是模擬狀態;(b)是現實中的魔方。
為了模擬魔方的視覺資訊,研究者使用左、上、右三個攝像機捕捉影像,然後使用 ResNet50 提取每個影像的特徵。這些特徵向量被展開、級聯、然後輸入進一個堆疊式全連線層,用於預測魔方的整體狀態,包括位置、朝向和角度等。
整體的架構如圖所示:
實驗結果
參考連結:
https://openai.com/blog/solving-rubiks-cube/