Sim-to-Real 落差為什麼這麼難消除:域隨機化與系統辨識兩條解法路線
2026-09-04
模擬訓練得再好,真實世界還是不太一樣
強化學習在虛擬模擬環境裡訓練機器人策略,能以幾乎零成本的速度做海量的平行試錯,這是本站在模仿學習 vs 強化學習一文中討論過的強化學習相對模仿學習的核心優勢。但這個優勢有一個長期存在的但書——在模擬環境訓練出的策略,直接部署到真實機器人上,表現經常明顯下降,這個現象稱為 sim-to-real gap(模擬到真實的落差),是機器人強化學習領域至今仍在持續研究緩解方法的核心難題之一。
落差從哪裡來:不是視覺擬真度,是物理參數的細微差異
多數人直覺會以為 sim-to-real 落差主要來自模擬畫面看起來不夠真實,但實際上更關鍵的落差來自物理引擎底層的參數設定——接觸力學模型裡的摩擦係數、材質彈性係數、關節齒隙與傳動間隙、感測器雜訊的統計特性、致動器從接收指令到實際產生力矩之間的真實延遲,這些參數即使在最擬真的模擬平台(如本站在 Isaac Sim vs Gazebo vs MuJoCo 比較文章中介紹的三套主流平台)裡,也很難做到跟每一台特定實體機器人完全一致。強化學習策略在訓練過程中,容易間接學習並依賴這些細微參數的特定數值,一旦部署環境的實際參數跟訓練時設定的模擬參數有落差,策略的表現就可能明顯偏離訓練時的預期。
域隨機化:用誇大的變異範圍換取穩健性
域隨機化(Domain Randomization)的核心邏輯反直覺卻有效——與其追求讓模擬參數盡可能精確貼近真實世界(這個目標本身難以完全達成),不如訓練時故意對這些參數做大範圍隨機擾動,讓策略在訓練過程中被迫面對遠比真實世界實際變化範圍更廣的參數分布。如果策略能在這個刻意誇大的變異範圍內都維持穩定表現,那麼落在這個範圍之內的真實世界實際參數,自然也在策略已經學會穩健應對的能力範圍內。這種做法本質上是用訓練階段見過的參數多樣性,換取部署階段對未知精確參數值的容忍度,而不是徒勞地試圖讓模擬環境變得完美精確。
系統辨識:反過來讓模擬貼近這一台特定機器人
系統辨識(System Identification)走的是相反的路線——不是讓模擬變得更隨機多樣,而是先在真實機器人上做一系列受控實驗(例如量測特定負載下的實際反應延遲、量測特定表面的實際摩擦係數),把量測出的真實物理參數回頭校正到模擬環境的設定裡,讓模擬盡可能精確貼近這一台特定機器人的真實物理特性。這種方法的優勢是校正後的模擬環境更貼近真實,訓練效率通常優於範圍設定過廣的域隨機化;限制是每一台機器人(甚至同一台機器人隨著長期使用磨損)的實際物理參數可能都有微妙差異,系統辨識得到的校正結果不一定能完全泛化到所有部署場景。
務實的做法:兩者結合,而非二選一
多數實務團隊不會把域隨機化跟系統辨識視為互斥選項,而是結合使用——先用系統辨識把模擬參數校正到接近真實的中心值,再用域隨機化在這個校正過的中心值周圍做適度(而非誇張)範圍的隨機擾動,兼顧訓練效率與對殘餘未知誤差的穩健度。即使如此,sim-to-real 落差也很難被完全消除,這也是為什麼多數團隊在模擬訓練完成後,仍然會保留一個真實世界的微調(fine-tuning)階段,用少量真實資料做最後一哩路的校正,而不是完全信任純模擬訓練出的策略能無縫遷移到真實硬體上。
- sim-to-real
- domain-randomization
- system-identification
- reinforcement-learning
- simulation