背景
強化学習ではシミュレータが不可欠である(数百万エピソードの試行錯誤をsim上で行う)。一方、模倣学習は「人間のデモを真似る」アプローチであり、実機のデモデータがあれば訓練できるため、シミュレータは不要ではないかという認識があった。
実際、sim-to-real gap(物理・視覚の差異)により、simで訓練したポリシーが実機で動かないケースも多い。そこらへんを調査していく。
1. シミュレータの2つの目的
1. 評価 ← 最も重要な用途
2. 合成データ生成 ← データ収集コストの削減
また、simを使う際に発生するSim-to-Real Gapへの対策として、ドメインランダム化等の手法が併用される(セクション4)。
2. 目的1: 評価
2.1 なぜsimで評価するのか
実機での評価は遅く、高コスト:
- 1エピソード = ロボットを動かす → 成功/失敗を記録 → オブジェクトを手で戻す → 次のエピソード
- 1回あたり数分 × 100回 = 数時間。人間が付きっきり。
simでの評価は高速・自動・安全:
- 1エピソードが数秒で完了。自動リセット。無人で実行可能。
- GPU加速により実機の10〜15倍の速度で評価可能(SimplerEnvの例)。
- 危険な動きがあっても物理的な損害なし。
2.2 simで評価できること
- 成功率の計測: 数百回のエピソードを自動実行し、成功率を定量的に計測
- チェックポイント比較: 訓練途中の複数チェックポイントを自動評価し、最良のものを選択
- ロバスト性の評価: オブジェクトの配置をランダムに変えて、多様な条件での性能を確認
- 失敗モード分析: どのような状況で失敗するかをsim上で安全に特定
2.3 simの評価結果は実機と一致するのか
SIMPLERの研究(CoRL 2024)では、RT-1、RT-1-X、Octo等の実世界ポリシーを1500以上のsim-realペアで評価し、simでの相対的な性能順位(どのポリシーが優れているか)が実機と一致することを実証している。
絶対的な成功率(例: sim 85% vs 実機 70%)はsimと実機で異なるが、ポリシー間の優劣関係は保持される。これにより、simでのチェックポイント選択やポリシー比較が実用的に意味を持つ。
参考:
- 論文: "Evaluating Real-World Robot Manipulation Policies in Simulation" (CoRL 2024)
- arXiv: https://arxiv.org/abs/2405.05941
2.4 実際の活用例
| プロジェクト | 評価方法 |
|---|---|
| Isaac-GR00T | 5つ以上のsimベンチマーク(LIBERO, SimplerEnv, BEHAVIOR等)でServer-Client評価 |
| SmolVLA (HuggingFace) | 実機データのみで訓練 → LIBERO/Meta-Worldで評価(87.3%達成) |
最も実用的なパターンは実機データで訓練 → simで評価 → 実機デプロイ。
3. 目的2: 合成データ生成
3.1 なぜ合成データが必要か
模倣学習は大量のデモデータが必要だが、実機でのテレオペレーションによるデータ収集は時間・コストが膨大。合成データにより少数の実機デモから大量の訓練データを生成し、データ収集コストを劇的に削減できる。
3.2 2つのアプローチ
合成データ生成には大きく分けて2つのアプローチがある:
アプローチA: 物理シミュレーションベース
物理エンジン上で少数のデモを再現し、オブジェクトの位置・向きを変えて軌跡を再計算する。物理的に正確だが、ロボットの3Dモデルとsim環境の構築が必要。
少数の人間デモ → 物理シミュレータで再現 → 条件を変えて大量の軌跡を再生成
アプローチB: 世界モデル(AI生成)ベース
AIが「別の状況で同じタスクをやったらどう見えるか」の映像を生成し、そこからアクション軌跡を逆推定する。物理エンジンは不要だが、AIの予測精度に依存する。
少数の人間デモ → AIが映像を生成 → 映像からアクション軌跡を逆推定
3.3 両アプローチの比較
| 物理シミュレーションベース | 世界モデルベース | |
|---|---|---|
| 手法 | sim上で条件を変えて軌跡を再計算 | AIが映像を生成→軌跡を逆推定 |
| 精度 | 物理的に正確 | AIの予測精度に依存(近似) |
| 多様性 | 位置・向きの変化 | 環境・照明・見た目も変えられる |
| 必要なもの | ロボット3Dモデル + 物理エンジン | GPUとAIモデル |
| 物理エンジン | 必要 | 不要 |
3.4 実際の活用例
| プロジェクト | アプローチ | 手法 | 実績 |
|---|---|---|---|
| Isaac-GR00T (GR00T-Mimic) | 物理sim | DexMimicGen + Isaac Sim | 780K軌跡/11時間。実データのみ比+40%性能向上 |
| Isaac-GR00T (GR00T-Dreams) | 世界モデル | DreamDojo + Cosmos-Predict2.5 | GR00T N1.5を36時間で開発(手動なら3ヶ月) |
| SaRC (RSS 2025) | 物理sim + 実機混合 | MimicGen + RoboCasa | 実機データのみ45% → 混合訓練81%(+36%向上) |
| Real2Render2Real (CoRL 2025) | 物理sim | 3D Gaussian Splatting + IsaacLab | 1デモ→1000合成デモ。150回テレオペ相当の性能 |
3.5 合成データの使われ方
| フェーズ | 合成データの使用 |
|---|---|
| 事前学習 | 大量使用(Isaac-GR00Tのデータピラミッドの中間層) |
| ファインチューニング | オプション(データ不足時の補助。主流は実機データ) |
参考:
- GR00T N1 論文: arXiv: 2503.14734
- GR00T N1.5 研究ページ: https://research.nvidia.com/labs/gear/gr00t-n1_5/
- SaRC論文: arXiv: 2503.24361
- Real2Render2Real論文: arXiv: 2505.09601
- DreamDojo論文: arXiv: 2602.06949
4. Sim-to-Real Gap への対策
simを評価や合成データ生成に使う際、sim-to-real gap(simと実機の差異)が問題になる。以下の対策手法が実装されている。
4.1 画像のドメインランダム化
訓練時に画像にランダムな変化を加え、多様な視覚条件への耐性を付ける。
| 手法 | 目的 |
|---|---|
| Color Jitter(明るさ、コントラスト、彩度、色相の変化) | 照明変動への耐性 |
| Background Noise(マスク領域にランダムノイズ追加) | 背景の一般化 |
| Masked Color Tint(特定オブジェクトにランダム色付与) | オブジェクト色の多様化 |
4.2 状態入力のロバスト化
| 手法 | 目的 |
|---|---|
| State Dropout(状態入力をランダムにドロップ) | 状態が欠損しても動けるように |
| State Additive Noise(ガウシアンノイズ加算) | センサーノイズへの耐性 |
4.3 アクション表現の工夫
絶対的な関節角度ではなく、現在状態からの差分(相対アクション)で表現することで、sim/real間の状態分布の違いを軽減する。
絶対アクション: action = [関節1の目標角度, ...] (sim/realで基準が異なると問題)
相対アクション: action = [関節1の変化量, ...] (現在状態からの差分なのでgapが小さい)
参考: Isaac-GR00T N1.5→N1.6 での主要改善点
4.4 sim画像のフォトリアリスティック変換
simのCGっぽい画像をリアルな写真のように変換することで、視覚的なgapを削減する。主に画像入力を使うVLAモデル向け。
参考: Cosmos-Transfer2.5。ロボットナビゲーションで成功率54%→91%に向上。
4.5 段階的なドメイン拡大
いきなり多様な環境で動かすのではなく、以下の段階を踏む:
Step 1: シーンを固定(照明・物体配置・初期姿勢を統一)
Step 2: 固定環境でデータ収集・ファインチューニング
Step 3: 動作を確認できたら、少しずつ条件を変化させる
Step 4: 多様な条件のデータを追加して再訓練
5. 結論
模倣学習において、simでの直接訓練(simデータのみでポリシーを学習→実機デプロイ)はsim-to-real gapにより困難。しかしシミュレータは以下の2つの目的で大きな価値がある:
目的1: 評価の高速化・自動化
実機評価の数分/エピソードに対し、simなら数秒で完了。数百エピソードの自動評価により、チェックポイント選択・ポリシー比較・失敗分析が効率的に行える。simでの相対的な性能順位は実機と一致することが実証されている。
目的2: 合成データ生成
物理シミュレーションベース(MimicGen等)と世界モデルベース(DreamDojo/Cosmos等)の2つのアプローチにより、少数の実機デモから大量の訓練データを生成できる。事前学習のデータ収集コストを劇的に削減する。