OpenAI Dactyl: ドメインランダム化による器用さの学習
OpenAIは、人間の手に似たロボットハンドを用いて、前例のない器用さで物理的な物体を操作できるシステム Dactyl を開発しました。シミュレーションのみで訓練し、ドメインランダム化を活用することで、Dactyl は物理的に正確なモデル化や実世界での微調整を必要とせずに、学習したスキルを実世界へ転送します。
器用な操作の課題
ロボットハンド内で物体の向きを変えることは、主に4つの技術的ハードルがあるため、複雑な課題です。
- Real-World Application: 強化学習はシミュレーションではうまく機能することが多いが、実際のハードウェアへの転送が困難である。
- High-Dimensional Control: Dactyl が使用する Shadow Dexterous Hand は 24 の自由度を持ち、ロボットアームで一般的に見られる 7 よりもはるかに多い。
- Noisy and Partial Observations: 物理システムはセンサーデータの遅延や遮蔽があり、エージェントは摩擦や滑りといった観測できない要因を推測する必要がある。
- Object Generalization: システムは特定の形状に依存した戦略ではなく、さまざまな物体形状を操作できる柔軟性が求められる。
ドメインランダム化アプローチ
シミュレーションと現実のギャップを埋めるため、OpenAI は ドメインランダム化 を採用した。複雑な接触力や変形材料など、完全に現実的なシミュレーションを作成することがしばしば不可能であるため、Dactyl は物理的および視覚的属性をランダムに選択したシミュレーション環境の分布で訓練された。
このアプローチにより、エージェントは大量の経験を迅速に蓄積できる。ランダム化されたさまざまなシミュレーション環境でポリシーが成功すれば、実世界への一般化可能性が高まる。Dactyl は制御に MuJoCo 物理エンジン、視覚的姿勢推定に Unity ゲームエンジンを使用して構築された。
技術アーキテクチャ: 制御とビジョン
制御の学習
Dactyl は環境のダイナミクスを扱うために LSTM(Long Short-Term Memory)ニューラルネットワークを使用する。ダイナミクスパラメータは単一の観測からは推測できないため、LSTM のメモリによりネットワークは環境の挙動に基づいて行動を適応させることができる。
訓練は Rapid を用いて行われ、これは Proximal Policy Optimization(PPO)のスケール実装である。訓練プロセスは 6,144 の CPU コアと 8 台の GPU を使用し、約 100 年分のシミュレーション経験を 50 時間で収集した。
ビジョンの学習
任意の物体を操作するために、Dactyl は姿勢推定器として畳み込みニューラルネットワーク(CNN)を使用する。このネットワークは 3 台の RGB カメラからのビデオストリームを処理し、物体の位置と向きを推定する。制御ネットワークと同様に、ビジョンネットワークも Unity を用いて多様な視覚現象をモデル化し、完全にシミュレーションで訓練された。
結果と性能
自律的戦略の発見
Dactyl は自律的に、Tip Pinch、Palmar Pinch、Tripod、Quadpod、Power grasp、5-Finger Precision grasp など、さまざまな握りタイプを含む豊富なインハンド操作戦略を発見した。特に、Dactyl はこれらの握りを自らのハードウェアに合わせて適応させており、精密な握りでは人間が通常使用する人差し指や中指ではなく、親指と小指(小指の余分な自由度のため)を使用することを好んだ。
転送成功率
ドメインランダム化で訓練されたポリシーは、そうでないものに比べて大幅に性能が向上した。ブロック操作テストの結果は以下の通りである。
| ランダム化 | オブジェクト追跡 | 最大成功数 | 中央値成功数 |
|---|---|---|---|
| すべてのランダム化 | ビジョン | 46 | 11.5 |
| すべてのランダム化 | モーション追跡 | 50 | 13 |
| ランダム化なし | モーション追跡 | 6 | 0 |
訓練効率
物理的ダイナミクスに対するロバスト性を得るには大量のデータが必要である。ランダム化されていないシミュレーションで物体を回転させる学習には約 3 年分のシミュレーション経験が必要だが、完全にランダム化されたシミュレーションで同等の性能を達成するには約 100 年分の経験が必要になる。
主な発見と制限
驚くべき発見
- Tactile Sensing: 指先の触覚センサは必須ではなかった。シミュレーションで効果的にモデル化できる限られたセンサを使用した方が、モデル化が困難な多数のセンサを使用した場合よりも性能が向上した。
- Generalization: ブロック用に設計されたランダム化は八角形プリズムに対してはうまく一般化したが、球体には一般化しなかった。これはシミュレーションで転がり挙動がランダム化されていなかったためと考えられる。
- Systems Engineering: ハードウェアとソフトウェアのインフラが重要であることが判明した。例えば、遅いノートパソコンによるタイミングバグが一部メンバーの性能を大幅に低下させた。
効果のなかった手法
- Reaction Time: 行動間の時間を 80ms から 40ms に短縮しても、訓練時間が増えるにもかかわらず、実世界での性能向上はほとんど見られなかった。
- Real-World Data: ビジョンポリシーにシミュレーションデータと実データを混在させても、実データが遅延や測定誤差をもたらすため、シミュレータのみの訓練と比べて利点は得られなかった。
Sources
- OriginalLearning dexterity