Covariate Shift
- カテゴリ: Learning & autonomy › Learning from demonstration
- タグ: imitation-learning, distribution-shift, generalization, sim-to-real, robot-learning
入力から出力への関係は変わらないまま、モデルが訓練された入力分布と使用時に出会う入力分布が食い違うこと。模倣学習においては誤差が累積する根本原因である。
定義
共変量シフト(Covariate shift)は分布シフトの一形態で、入力の分布が訓練時と運用時で変化する、つまり p_train(x) ≠ p_test(x) となる一方、モデルが学習しようとしている条件付き関係 p(y | x) は変わらない状況を指す。このとき、訓練入力にフィットしたモデルは、訓練した領域では正確でも、いま頻繁に目にするようになった領域では信頼できない可能性がある。古典的な機械学習では、テスト入力密度と訓練入力密度の比で訓練サンプルを重み付けし直すことで対処することが多く、この手法は Shimodaira(2000)と結び付けられている。
ロボット学習では、この用語は行動クローニングに関して最もよく使われる。エキスパートの状態上で教師あり学習により訓練したポリシーは、エキスパートが訪れた状態しか見ていない。実行時には、ポリシー自身の小さなミスによってその集合からわずかに外れた状態に至り、そこでは予測が悪化するため、より大きなミスと、データからさらに離れた状態につながる。訓練入力はエキスパートの状態分布から来るが、テスト入力は学習者の状態分布から来るので、そのギャップは軌道に沿って広がっていく。Ross と Bagnell はこの効果を分析し、最悪の場合、行動クローニングの期待誤差がタスクのホライズンに対して二次的に増大することを示した。DAgger と関連する対話型の手法は、学習者自身が訪れる状態でエキスパートのラベルを収集することでこれに対処する。そのほかの対策としては、デモンストレーション中にノイズを加えてデータがリカバリー動作をカバーするようにすること、データ拡張、アクションチャンキング、修正用デモンストレーションの追加などがある。
同じ考え方は sim-to-real 転移にも現れる。そこではシミュレーションからの画像やセンサー値などの入力が、実機ロボット上の入力とは分布が異なる。オフライン強化学習にも現れ、そこでは学習したポリシーがデータセットのカバーしていない状態を訪れ、データセットのカバーしていない行動を選ぶ。sim-to-real の場合には、ドメインランダム化、ドメイン不変表現、ドメイン適応が入力の不一致を減らす。これらすべての設定で、実際に現れる症状は同じである。訓練データから取り分けた検証データでは高い精度が出るのに、実システムでは失敗する。
重要な理由
共変量シフトは、検証セットではエキスパートの行動にほぼ完全に一致するポリシーが、ロボット上では数秒で失敗しうる理由を説明する。これを認識していれば、データ収集、行動クローニングと対話型手法のどちらを選ぶか、そして sim-to-real パイプラインをどう設計・テストするかの指針になる。
主な用途
- 行動クローニングや視覚運動ポリシーの失敗の診断
- DAgger や人による介入といった対話型データ収集の設計
- 知覚モデルと制御モデルの sim-to-real 転移
- 固定データセットを用いたオフライン強化学習
- 運用条件が異なる場合の訓練データの再重み付け
実際の使われ方
あるチームは、小型移動ロボットをテレオペレーションで廊下を何周も走らせたデータから、その走行ポリシーを訓練する。オフラインでは予測した操舵がオペレータの操作とよく一致するが、ロボット上ではポリシーが徐々に壁へと寄っていき、その後激しく操舵する。訓練データにロボットが壁の近くにいる状況が一度も含まれていなかったためである。チームは意図的にリカバリーデータを加え、オペレータが中央から外れた位置から出発して戻るように操舵する。そのうえで DAgger を数ラウンド実施し、ポリシーが走行する間のオペレータの操舵修正をラベルとして記録する。オフラインの予測誤差ではなく 1 周ごとの閉ループでの成功を追跡する。シフトを反映するのは前者だけだからである。
よくある誤解
- 共変量シフトはモデルが過学習したことを意味する — 訓練分布内ではよく汎化するモデルでも起こりうる。問題は運用時の入力が別の分布から来ることにある
- エキスパートのデモンストレーションを増やせば解消する — ポリシーがエキスパートの訪れたことのない状態に依然として到達するなら、エキスパートの経路に沿ったデータを増やしてもほとんど役に立たない。リカバリーデータや対話型のラベル付けが問題に直接対処する
- 共変量シフトと他の分布シフトはすべて同じである — 共変量シフトは入出力関係が変わらないことを前提とする。ある入力に対する正しい行動が変わるなら、それは別の種類のシフトである
知っておくべき人
- 模倣学習と行動クローニングの実務者
- sim-to-real と知覚のエンジニア
- オフライン強化学習の研究者
- 学習済みモデルをロボットにデプロイする ML エンジニア
関連技術
- Dataset Aggregation(DAgger)
- 重要度重み付け(Importance Weighting)
- ドメイン適応(Domain Adaptation)
- データ拡張(Data Augmentation)
- 分布外検知(Out-of-Distribution Detection)
関連用語
関連プロジェクト
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- OpenPI: Physical Intelligence VLA foundation models for general robot control
- NVIDIA Isaac GR00T: NVIDIA open foundation model for humanoid robot reasoning and skills
- Mobile ALOHA: Bimanual mobile manipulation with 4 robot arms on a wheeled base for teleoperation
- OpenArm: 7DOF humanoid arm for physical AI research in contact-rich environments
- Koch v1.1 Low-Cost Robot Arm: Open-source 6-DOF robot arm for affordable teleoperation and imitation learning research.