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
- OriginalLearning dexterity