Differentiable Simulation
- 又稱: differentiable physics, differentiable simulator, differentiable dynamics
- 類別: Software & tooling › Simulation & twins
- 標籤: simulation, automatic-differentiation, system-identification, trajectory-optimization, sim-to-real, physics-engine
一種能計算其輸出相對於輸入與參數之梯度的物理模擬,讓機器人控制器、設計與模型可以直接以梯度下降進行最佳化。
定義
可微分模擬(differentiable simulation)是以能夠穿過它計算導數的方式所撰寫的物理模擬。傳統的模擬器接收一個狀態、控制輸入與物理參數,並回傳下一個狀態。可微分模擬器還會回傳下一個狀態,或由整條模擬軌跡計算出的任何量,相對於這些輸入如何變化。梯度通常透過 JAX、PyTorch 或 NVIDIA Warp 等框架中的自動微分取得,或來自動力學方程式的解析導數。
穿過物理求取梯度開啟了多種用途。在軌跡最佳化中,可以沿著成本經由模擬展開(rollout)得到的梯度,改進一連串的控制量。在策略學習中,解析策略梯度會把任務損失經由模擬器反向傳播到策略網路,所需樣本可能遠少於只從獎勵估計梯度的強化學習方法。在系統識別中,質量、摩擦或剛性等參數會被擬合到真實量測資料上;而在協同設計中,機器人的尺寸會與其控制器一起最佳化。
由於接觸的緣故,機器人對可微分物理而言是一個嚴苛的情境。撞擊與摩擦會造成不連續與剛性動態,因此真實的梯度可能為零、無定義或具誤導性。模擬器會以平滑化或軟接觸模型、柔順的懲罰力,或對用來解算接觸的最佳化問題求導來處理這一點。每一種選擇都是在物理精度與梯度品質之間取捨。長時間的展開會帶來第二個問題:梯度可能在許多時間步中爆炸或消失,而且即使梯度存在,最佳化地形也可能崎嶇不平。
可微分模擬常與學習式元件結合。神經網路可以為難以推導的那部分動力學建模,例如致動器行為或柔體變形,而模擬器的其餘部分仍以物理為基礎,整個系統則以端到端方式訓練。可微分渲染讓梯度能從相機影像回傳到場景參數。可用的工具包括 MuJoCo MJX、Brax 與 NVIDIA Warp。
為何重要
梯度讓最佳化能利用物理的結構,而不是把模擬器當成黑盒子,這能讓學習、校正與設計在資料使用上有效率得多。可微分模擬也是讓模擬器貼合真實硬體的一種實用方法,可縮小模擬行為與真實行為之間的落差。
主要應用
- 系統識別 — 將機器人與物體的物理參數擬合到量測資料
- 軌跡最佳化 — 透過模擬動力學進行梯度下降,以改良控制序列
- 策略學習 — 以穿過模擬器的解析梯度訓練控制器
- 軟性機器人建模 — 對照真實硬體校正可變形體模擬
- 機器人協同設計 — 將機構參數與控制器一起最佳化
實際應用
使用可微分模擬的團隊可能會先記錄機器人的運動與關節扭矩資料,再以梯度下降最小化模擬軌跡與量測軌跡之間的差異,藉此擬合摩擦、阻尼與質量參數。有了校正後的模型,他們就能透過在短暫的模擬展開中反向傳播任務損失來最佳化軌跡或訓練策略,並常會截斷時域,或將解析梯度與強化學習混用,以維持梯度穩定。他們會仔細檢查梯度品質,例如與有限差分比對,並留意接觸設定,因為為了得到平滑梯度而選用的軟接觸參數,可能讓模擬較不忠實於真實機器人。
常見誤解
- 可微分模擬一定比強化學習提供更好的梯度 — 接觸的不連續與長時域可能使解析梯度充滿雜訊或具誤導性
- 任何模擬器只要用自動微分包起來就能變成可微分 — 不平滑的接觸處理、分支程式碼與迭代求解器都需要特別處理,才能產生有用的梯度
- 可微分代表更準確 — 可微分性是關於計算導數;為了得到良好梯度所做的平滑化可能降低物理精度
誰需要了解
- 從事以模型為基礎之控制與學習的機器人學習研究人員
- 打造物理引擎的模擬工程師
- 校正可變形模型的軟性機器人研究人員
- 使用軌跡最佳化的控制工程師
相關技術
- 自動微分(Automatic Differentiation)
- JAX
- MuJoCo MJX
- NVIDIA Warp
- 軌跡最佳化(Trajectory Optimization)
- 系統識別(System Identification)
相關術語
相關專案
- GENESIS: World's fastest physics engine: 43M FPS for embodied AI learning
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- MuJoCo: DeepMind physics engine for robotics and ML research
- PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
- RLinf: Scalable infrastructure for post-training foundation models via RL
- Webots: Cross-platform robot simulator with built-in models, sensors, and development environment
影片
- Finally, Differentiable Physics is Here!: Two Minute Papers
- Learning on the Fly: Rapid Policy Adaptation via Differentiable Simulation (RA-L 2026): UZH Robotics and Perception Group