OpenAI Dactyl:透過領域隨機化學習靈巧

OpenAI 已開發出 Dactyl,一個能以前所未有的靈巧度操作實體物件的系統,使用類人機械手。透過完全在模擬中訓練並利用領域隨機化,Dactyl 能將其學習到的技能轉移至真實世界,且不需要精確的物理建模或實際微調。

靈巧操作挑戰

在機械手中重新定位物件是一項複雜任務,主要因為四大技術挑戰:

  • 實際應用: 強化學習常在模擬中取得成功,但在轉移至實體硬體時會遇到困難。
  • 高維度控制: Dactyl 使用的 Shadow Dexterous Hand 具備 24 個自由度,遠超過機械手臂常見的 7 個自由度。
  • 噪聲與部分觀測: 實體系統會有感測延遲與遮蔽,需讓代理推斷不可觀測的因素,如摩擦與滑動。
  • 物件泛化: 系統必須具備足夠彈性,以操作各種形狀的物件,而非僅依賴針對單一形狀的策略。

領域隨機化方法

為了彌合模擬與現實之間的差距,OpenAI 採用了 領域隨機化。與其試圖打造完美寫實的模擬(對於複雜的接觸力與可變形材料而言往往不可能),Dactyl 在一系列隨機選取物理與視覺屬性的模擬環境中進行訓練。

此方法讓代理能快速累積大量經驗。若一項策略能在多種隨機化的模擬環境中成功,則更有可能在真實世界中泛化。Dactyl 使用 MuJoCo 物理引擎進行控制,並以 Unity 遊戲引擎進行視覺姿態估計。

技術架構:控制與視覺

學習控制

Dactyl 使用 LSTM(長短期記憶)神經網路來處理環境的動態。由於動態參數無法僅從單一觀測推斷,LSTM 的記憶使網路能根據環境行為調整其動作。

訓練使用 Rapid,一個可擴展的近端策略優化(PPO)實作。訓練過程使用 6,144 個 CPU 核心與 8 塊 GPU,在 50 小時內收集約 100 年的模擬經驗。

學習視覺

為了操作任意物件,Dactyl 使用卷積神經網路(CNN)作為姿態估計器。此網路處理來自三個 RGB 相機的影像串流,以估計物件的位置與方向。與控制網路相同,視覺網路完全在模擬中使用 Unity 訓練,以模擬多樣的視覺現象。

結果與效能

自主策略發現

Dactyl 自主發現了一套豐富的手內操作策略,包括多種抓取方式,如指尖捏、掌心捏、三腳架、四腳架、力量抓取與五指精確抓取。值得注意的是,Dactyl 會根據自身硬體調整這些抓取;在精確抓取時,它偏好使用拇指與小指(因小指具額外自由度),而非人類常用的食指或中指。

轉移成功率

使用領域隨機化訓練的策略明顯優於未使用的策略。在方塊操作測試中的結果如下:

隨機化類型 物件追蹤方式 最高成功次數 中位成功次數
全部隨機化 視覺 46 11.5
全部隨機化 動作追蹤 50 13
無隨機化 動作追蹤 6 0

訓練效率

對物理動態的魯棒性需要大量資料。雖然在未隨機化的模擬中學習旋轉物件約需 3 年的模擬經驗,但在完全隨機化的模擬中達到相似表現則需約 100 年的經驗。

主要發現與限制

令人驚訝的發現

  • 觸覺感測: 手指尖的觸覺感測器並非必要。使用可在模擬中有效建模的有限感測器,表現反而較佳,而非使用難以建模的豐富感測器。
  • 泛化能力: 為方塊設計的隨機化能很好地泛化至八角棱鏡。但對球體則無法泛化,可能是因為滾動行為在模擬中未被隨機化。
  • 系統工程: 硬體與軟體基礎設施至關重要;例如,較慢筆記型電腦導致的計時錯誤顯著降低了部分團隊成員的效能。

無效的技術

  • 反應時間: 將動作間隔從 80ms 減少至 40ms 並未明顯提升實際表現,儘管需要更多訓練時間。
  • 實際資料: 在視覺策略中混合使用模擬與實際資料,未能優於僅使用模擬訓練,因為實際資料會帶來延遲與測量誤差。

Sources