ポリシーが誤った動作をしたらテイクオーバーし、その補正をそのまま学習させる。
Behavior Cloningで学習したポリシーは、デモンストレーションが訪れた状態しか知らない。DAggerは、ポリシー自身が到達する状態のデータでこのギャップを埋める。AY-Robotsは一連のループをSO-100上で完結させる。チェックポイントを走らせ、実行中にテイクオーバーし、補正済みのエピソードを保持し、混合データセットを構成し、いま走らせたそのチェックポイントから学習を継続する。
- HG-DAgger、人間ゲート型
- SO-100 / SO-101
- ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
- ラウンドごとの介入率
学習済みポリシーが、一度もデモンストレーションされていない動作をする理由
Behavior Cloningは制御を通常の教師あり学習として扱う。観測を入力し、関節目標値を出力し、人間が記録したフレームに適合させる。これが成り立つのは、ロボットがその人間の訪れた状態にとどまっている間だけであり、実際にはそうならない。グリッパーが40ミリ秒早く閉じるだけで、キューブはデモンストレーションされた姿勢から2ミリメートルずれる。次の観測は学習データに含まれていないものになるため、そこでの行動は外挿となり、その後の状態はさらに範囲外へ広がっていく。学習分布と、学習済みポリシーが実際に引き起こす分布は別物であり、後者はエピソードが進むにつれて前者から乖離していく。
Ross、Gordon、Bagnellは2011年にまさにこの帰着の失敗を記述し、その被害を定量化した。エキスパート分布のもとで確率eで誤る分類器は、自身が引き起こす分布のもとではTステップの地平線にわたっておよそT二乗×e回の誤りを犯しうる。なぜなら一つの誤りがエキスパートなら決して生成しない観測を作り出し、誤差が積み重なっていくからである。彼らの解決策が、このページで扱うアルゴリズムである。現在のポリシーを走らせ、それが訪れる状態についてエキスパートのラベルを集め、これまで集めたすべてと集約し、再学習し、これを繰り返す。同種のデモンストレーションを増やしても助けにはならない。それらは同じ分布から再サンプリングしているに過ぎないからだ。ポリシーが到達する状態についてのラベルこそが助けになる。ここで実装されているのは人間ゲート型(HG-DAgger、Kelly et al.)である。ポリシーは、人間がうまくいっていないと判断してテイクオーバーするまで制御を保持し続ける。こうして補正は必要な場所でだけ発生し、アームはオペレーターが許容しない状態へ向かうよう求められることは決してない。
- Behavior Cloningは、学習に使われた状態分布の上でしか成り立たない。
- この失敗は自己増幅的である。小さなずれが未知の状態を生み、それがさらに大きなずれを生む。
- 対策はデモンストレーションを増やすことではなく、ポリシー自身が到達する状態にラベルを付けることである。
- 人間ゲート型とは、介入のタイミングを自律性スコアではなくオペレーターが決めることを意味する。
なぜ誤差が積み重なるのか
地平線(ホライズン)をドラッグしてみてほしい。Behavior Cloningのもとでは、各誤りがデモンストレーションで一度もカバーされなかった状態を生み出すため、期待される追加コストはステップ数のおよそ二乗で増加する。集約ループを使うと、この増加はほぼ線形に抑えられる(Ross et al., 2011)。
これはRoss et al.(2011)の上界に基づく説明用の曲線であり、あなたのロボットでの実測値ではない。重要なのは数値ではなく曲線の形である。
DAggerの1ラウンド、6つのステップ
これは概略図ではなく、プラットフォームが実際に実行しているループそのものである。以下の各ステップは、コックピット内の操作要素にそのまま対応する。
ループを順にたどる
同じ6つのステップを一つずつたどりながら、それぞれの段階でアームとデータセットに何が起きるかを見る。
ポリシーを走らせて記録する
自分で学習したチェックポイントに対して推論ランを開始する。ランはその場でタスクテキストとともに記録されるため、後から見るだけの動画ではなく、フレームをそのまま学習データとして使うことができる。
テイクオーバーして補正する
アームが誤った動作をした瞬間に「テイクオーバー」を押す。ランナーは一時停止し、アームは自分の制御下に入る。リーダーアームを使う場合、まずフォロワーの姿勢まで動いてから制御を引き継ぐ。ラン開始時に選択したキーボードまたはスライダー入力の場合は、その場で手動によるテイクオーバーとなる。動作を補正したら、制御をポリシーに戻す。テイクオーバー中に記録されたフレームには、自動的に介入フラグが付く。
ランを仕分けする
各ランについて、補正として保存するか、評価ランとして残すか、破棄するかを決める。引き継ぎ前後の静止フレームはrawディレクトリに留まり、データセットには入らない。
補正データセットを同期する
補正はポリシーごとの補正データセットに集約され、自動クラウド同期を通じて自分のバケットへ送られる。この時点では何もマージされない。補正はあくまで独立したひとつのデータセットである。
自分で混合データセットを構成する
「データセットを構成」を使い、次のラウンド用の学習セットを組み立てる。元のデータセットに補正を加え、エピソードをソースごとに明示的に選ぶ。できあがるのは、他と同じように同期・学習できる通常のデータセットである。裏で勝手に何かが混ぜ込まれることはなく、シミュレーションデータが自動で加わることもない。
チェックポイントから学習を継続する
ベースモデルからではなく「チェックポイントから継続」を使って、構成したデータセットを学習する。こうすることでラウンドは、いま走らせたばかりのポリシーから始まる。正確に言えば、これは重みをそのチェックポイントから初期化するものであり、オプティマイザーの再開ではない。
プラットフォームが肩代わりすること
ここに挙げた項目はいずれも、自分で構築し保守しなければならないはずのループの一部である。
リーダーアームなしのテイクオーバー
ラン開始時にキーボードまたはスライダー入力を選べば、ノートパソコン1台だけで補正できる。キーボードによる微調整はサーバー側で関節あたり2度、グリッパーで4度に制限される。スライダーの目標値は絶対値で指定され、サーバーは1回の呼び出しにつき最大6度だけそこへ向けてアームを動かす。この制限はUIではなくサーバー側で強制されるため、キーが押しっぱなしになってもアームを暴走させることはない。
テレオペレーションのドキュメントフレーム単位で記録される介入
アームを自分で操作している間に記録される全フレームには介入フラグが付き、actionカラムには指令された姿勢がそのまま入る。フラグ用のカラムを手作業で維持したり、後からフレームインデックスに合わせたりする必要はない。
LeRobotデータセット形式仕分け: 補正、評価、または破棄
各ランには保存カードでの決定が一つだけ必要になる。補正ランは次の学習ラウンドの材料になり、評価ランは学習から外れることで測定として汚れないまま保たれ、失敗したランは静かに混合データを汚す代わりに消える。
セッションとエピソード混合データセットを明示的に構成する
ラウンドnの学習セットは自分で組み立てる。元のデータセットに補正を加え、エピソードはソースごとに選択する。自動的な混合や隠れたシミュレーションデータはなく、構成された結果は他のデータセットと同じように振る舞う。
データセットチェックポイントから継続する
ベースモデルではなく、いま走らせたばかりのチェックポイントを学習ランの起点にすることで、各ラウンドは前のラウンドが終わった地点から始まる。初期化されるのは重みだけであり、オプティマイザーの状態は復元されない。だからこそラウンド1は実現可能性のテストとして扱う価値がある。
トレーニングラウンド単位で借りるGPU
ACTとSmolVLAは4090、Pi0とGR00T N1.5またはN1.7は80GBのA100で動く。ラウンドを開始するとポッドが立ち上がり、チェックポイントは自分のバケットに届き、支払うのはそのラウンドにかかった時間分だけである。
GPU料金ラウンドを計画する
介入率はこのループの進捗指標であり、補正フレーム数をランのフレーム数で割った値である。開始値と各ラウンドでの改善幅を設定し、目標に届くまでに何ラウンド必要かを確認できる。
| ラウンド | 介入率 | 補正フレーム数 |
|---|---|---|
| 1 | 30.0 % | 900 |
| 2 | 22.5 % | 675 |
| 3 | 16.9 % | 506 |
| 4 | 12.7 % | 380 |
| 5 | 9.5 % | 285 |
| 6 | 7.1 % | 214 |
| Σ | 2 960 | |
これはモデルであって予測ではない。実際のラウンドはばらつきが大きく、介入率を動かさなかったラウンドは何ももたらしていない。まさにそこが注目すべき兆候である。
自分でループを構築する場合とここで実行する場合
これらはどれも手作業で不可能なわけではない。問題は、ラウンドではなくインフラ整備に何晩を費やすかということであり、自分で構築する方が明らかに優れている項目が一行だけ存在する。
| ループのステップ | 自分で構築する場合 | AY-Robotsの場合 |
|---|---|---|
| ランの途中でテイクオーバーする | リーダーアーム、またはサーボバス上に自作したコード。キーボードやスライダーによるテイクオーバーは、安全な制限も含めて自分で書き、実機でデバッグすることになる。 | ラン開始時に選ぶリーダーアーム、キーボード、またはスライダー。角度の制限はサーバー側にある。 |
| 介入を記録する | フラグ用のカラムを自分で追加し、フレームインデックスとの整合を保ち、記録フォーマットが変わるたびに再確認する。 | テイクオーバー中に記録された全フレームが自動的にフラグ付けされ、actionカラムに指令姿勢が入る。 |
| ランを仕分ける | ディレクトリの命名規則とシェルスクリプト。引き継ぎ前後の静止フレームは自分で見つけて取り除く必要がある。 | 保存カードでラン一つにつき一つの決定をする。引き継ぎ時のフレームはrawディレクトリに残る。 |
| 混合データセットを構築する | フォーマットのバージョンごとのマージスクリプト。エピソードインデックス、メタデータ、動画参照の整合性を取るのが面倒な部分である。 | 元のデータに補正を加え、ソースごとにエピソードを選んで構成する。結果は通常のデータセットになる。 |
| 直前のポリシーから次のラウンドを始める | チェックポイントを自分でトレーナーに組み込み、本当の意味で再開したいならオプティマイザーの状態も自分で復元する。 | ベースとなるチェックポイントを指定するフィールドが一つだけある。重みのみ: チェックポイントから初期化するだけで、オプティマイザーの再開ではない。 |
| 学習ループそのものへの制御 | 完全に自由。自分のloss、自分のスケジュール、自分のアブレーション、自分の計測系、間に入るプラットフォームは存在しない。研究上の問いが学習ループそのものであるなら、手作業でやるべきである。 | 決まったポリシーの一覧と、フォームが提供するハイパーパラメータによる固定された経路であり、任意のコードは書けない。 |
土台となっている論文
このループに異論を唱える前に、これらを読んでほしい。各リンクはアブストラクトのページに繋がっており、有料の壁の先ではない。
- A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning
Stephane Ross, Geoffrey J. Gordon, J. Andrew Bagnell · 2011 · AISTATS 2011 (PMLR 15)
DAggerのオリジナル論文。誤差の累積問題を定式化し、単純な教師あり手法に対するT二乗の上界を示し、学習者自身が訪れる状態からデータを集約することを提案している。
- HG-DAgger: Interactive Imitation Learning with Human Experts
Michael Kelly, Chelsea Sidrane, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1810.02890, ICRA 2019
人間ゲート型の版。ポリシーが選んだ状態について問い合わせを受けるのではなく、エキスパートがいつ制御を握るかを決める。これがこのプラットフォームで実装されているモードである。
- EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning
Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019
介入をゲーティングするもう一つの方法。アンサンブルの不一致を、学習者が単独で行動してよいかどうかの信頼度信号として使う。人間に判断させる方式との対比として参考になる。
- ThriftyDAgger: Budget-Aware Novelty and Risk Gating for Interactive Imitation Learning
Ryan Hoque, Ashwin Balakrishna, Ellen Novoseller, Albert Wilcox, Daniel S. Brown, Ken Goldberg · 2021 · CoRL 2021
人間の注意を希少資源として扱い、新奇または危険な状態でのみ助けを求める。一人がアームを午後じゅう監督するような場面で正しい枠組みである。
- DART: Noise Injection for Robust Imitation Learning
Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017
正直な代替案。ポリシーをオンラインで補正する代わりに、デモンストレーションに摂動を加え、エキスパートに立て直しを示させる。介入に踏み切る前に知っておく価値がある。
- Interactive Imitation Learning in Robotics: A Survey
Carlos Celemin, Rodrigo Perez-Dattari, Eugenio Chisari, Giovanni Franzese, Leandro de Souza Rosa, Ravi Prakash, Zlatan Ajanovic, Marta Ferraz, Abhinav Valada, Jens Kober · 2022 · arXiv:2211.00600
この分野の地図。どのような形の人間のフィードバックが存在し、どのインターフェースがそれを運び、DAgger流の介入がそのなかのどこに位置するかを示す。
- Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware
Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn · 2023 · arXiv:2304.13705
ACTの論文。安価なアームがそもそも模倣ポリシーで動かせるのはaction chunkingのおかげであり、ACTはDAggerのラウンドを最も速く回せるポリシーである。
- π0: A Vision-Language-Action Flow Model for General Robot Control
Kevin Black, Noah Brown, Danny Driess, Adnan Esmail, Michael Equi, Chelsea Finn et al. · 2024 · arXiv:2410.24164
事前学習済みのvision-language modelの上に構築されたflow-matching方式のVLAであり、ここでファインチューニングできるチェックポイントの一つでもある。論文は、新しいスキルはファインチューニングから生まれるのであってベースモデルだけからではないと明言している。
実際によく聞かれる質問
DAggerにリーダーアームは必要ですか。
不要である。ラン開始時にキーボードまたはスライダー入力を選べば、最初のフレームからブラウザ操作による手動テイクオーバーになる。リーダーアームは細かい動作にはより快適で、引き継ぎ前にアーム自身が姿勢を合わせる唯一のモードでもあるが、ループはリーダーアームなしでも動く。
DAggerのラウンドは何回必要ですか。
正直なところ決まった数はない。見るべきは介入率である。あるラウンドから次のラウンドにかけて下がらないなら、そのラウンドは何ももたらしていない。原因は通常、ラウンドの回数ではなく、タスクの設定やカメラ、あるいは元のデータセットにある。
これは本物のDAggerですか、それとも緩い模倣ですか。
これは人間ゲート型であるHG-DAggerである。古典的なDAggerは、ポリシーが選んだ状態についてエキスパートに問い合わせる。そこには、まともなオペレーターなら実機を到達させないような状態も含まれる。ここでは人間が介入のタイミングを決め、その区間だけがラベルになる。
補正データだけで学習するのですか。
いいえ、そうすべきでもない。補正データだけで学習すると、立て直し方しか知らないポリシーになってしまう。構成されたデータセットは元のデータに補正を加えたものであり、各ソースからのエピソードは明示的に選ばれる。
チェックポイントからの継続は、学習ランを再開することになりますか。
そのチェックポイントから重みを初期化するだけである。オプティマイザーの状態は復元されないため、厳密な意味での再開ではない。実際には学習済みの挙動をラウンドを越えて運ぶのは重みだが、自分がどちらを得ているのかは知っておく価値がある。
介入率はどのように計算されますか。
介入としてフラグ付けされたフレーム数を、ランの総フレーム数で割った値である。テイクオーバーのステータスに表示され、走らせたチェックポイントと学習した混合データセットと並べて、ラウンドごとに書き留める価値のある唯一の数値である。
どのポリシーでこのループを実行できますか。
ACT、SmolVLA、Pi0、そしてGR00T N1.5またはN1.7である。ループ自体はデータセットとチェックポイントしか生成しないため、ポリシーに依存しない。実務上の違いは、ラウンドにかかる時間と必要なGPUだけである。
ロボットを持っていなくてもこれはできますか。
マーケットプレイスでデータセットを購入するか、オペレーターに依頼すれば、ロボットなしでも記録と学習はできる。またliveページでは、実機のSO-100をブラウザから操作できる。しかしDAggerのラウンドは事情が異なる。ラン中にテイクオーバーできるアームが必要なので、ループ自体のためには自分の机の上に実機があることが望ましい。
A real SO-100, live in the browser. No signup, no hardware needed.
今週、最初のラウンドを走らせる
クライアントをインストールし、既に持っているチェックポイントを走らせ、アームがキューブを行き過ぎた最初の瞬間にテイクオーバーする。この一回のランが、DAggerラウンドの縮図である。その先はすべて、混合データセットを構成し、GPUの時間を支払うだけのことになる。