はじめに
「Lerobotの模倣学習をACTでやりました!」というアーム制御の「体験記事」は多いのですが、ここで使われる 模倣学習 について解説する「初心者向け」の記事が少ないので、まとめてみました。
筆者自身が初心者なので、生成AI (ChatGPT) の助けも借りつつ、記事を作成しました。この点、ご了承下さい。
色々な模倣学習用モデル
アーム制御は、もともとは数学的モデルや逆運動学を使った制御が多かったそうです。しかし、精密な操作はできますが、環境変化や未知物体への適応性が低いという問題がありました。また、純粋な強化学習 (Reinforcement Learning) もあったのですが、初期探索が膨大で実機での学習が困難という問題がありました。
その結果、模倣学習が使われるようになりました。 BC(Behavior Cloning)から始まり. DAgger、IRL、GAIL、Diffusion などの技術が発展しました。以下で、一つずつ簡単に説明します。
BC (Behavior Cloning)・・・行動クローン
BC は「人間や既存コントローラ」のデモを使って「状態 => 行動の対応」を直接学習する基本的な手法です。観測(画像やセンサー値)と専門家のアクションを教師データとし、「人間のデモをそのままコピーする」ことで方策を学びます。報酬関数や探索は使わず、強化学習的要素はありません。
「専門家の動作を再現するだけ」であり、より良い方策(成功率を最大化した方策)に自動的に改善されることはなく、専門家が最適でなかった場合、学習者もそのまま最適でない方策を模倣してしまいます。
利点は、実装が単純で扱いやすく、ニューラルネットワークに適用しやすいため、既存の制御理論や PID では扱いにくい操作も学習できることです。
大きな課題は、誤差累積問題(Compounding Error)と分布シフトの二つです。
- 誤差累積問題は、小さな予測ミスが次の入力状態に反映され、どんどん状態分布がずれていくため、想定してない状態での失敗が起こりやすいという問題です。
- 分布シフトは、学習時の状態分布と実行時の状態分布が異なる場合に性能が大きく低下というものです。例えば、複数の正解行動がある場合に、平均化して不自然な動作を生成してしまうという問題です。
DAgger(Dataset Aggregation)参考文献は BC と同じもの
Behavior Cloning の弱点を補うために提案された手法で、予測方策(ポリシー)を実行し、専門家(教師)に訂正ラベルを逐次付けてもらいます。データの追加と再訓練を繰り返すことで BC の誤差累積問題を改善します。行動の探索は行いますが、報酬関数による方策改善はなく、強化学習的要素はほぼありません。
方策の「本質的な最適化(報酬最大化)」は行われないため、BC と同様に専門家を超える方策にはたどり着けません。
大きな課題は、人間によるラベリングが必要というもので、実機での反復の手間が大きく、ラベル付けや実行コストが高いことです。
IRLとGAIL
IRL(Inverse Reinforcement Learning) は逆強化学習であり、専門家の行動から報酬関数を推定し、方策最適化のために強化学習を利用します。
GAIL(Generative Adversarial Imitation Learning) はこの逆強化学習の発想を GAN 形式で実装し、模倣対象と同じ状態分布になる方策を学ぶ手法で、時系列依存や分布一致が考慮されています。
いずれも、強化学習を利用するため、専門家以上の性能に到達する可能性があります。
利点は、BC より扱える状態分布が広がることです。また、GAIL は分布一致を目指すことで、より本質的な行動学習が可能になるといわれています。
大きな課題は、訓練が難しくて不安定になりやすいため、計算コストやモデル設計の複雑さが増すことです。実機適用では、サンプル効率や収束性の課題が特に問題になります。
RNN / LSTM ベースの時系列モデル
このモデルは時間的依存性を扱うために、BC に再帰型ネットワーク(RNN/LSTM)を導入しています。過去の状態・行動履歴を内部状態として持つことで、時間的な文脈をある程度捉えられます。強化学習的要素はありません。
利点は、一定の時間依存性のあるタスクで有利であること、BC に比べて連続動作の滑らかさが向上することです。
大きな課題は、長期依存のキャプチャは難しいことにあります。勾配消失・勾配爆発の問題があり、長シーケンスには使いにくいというものです。そのため、Transformer ベースの手法に置き換わることが多くなっています。
Diffusion / Generative モデル
行動を生成モデルとして扱い、生成過程でスムーズな連続動作をサンプルできるという特徴があります。
利点は、複雑な多峰的行動分布をモデル化できることであり、特定の多モードタスクやランダム性のあるタスクのような高度な動作生成では有力なモデルです。例えば、ロボットによる音楽演奏、ジェスチャー生成に適しているといえます。
ただし、大きな課題は、データ効率が低いために訓練・推論コストが高く、実機適用ではサンプル数や計算量の制約により、即座の制御には向かない場合が生じる点にあります。単純な模倣学習にとっては学習コストが過大になりやすいという傾向があります。
まとめ(ACT が登場する以前の流れ)
| モデル | 主要特徴 | 長所 | 課題 |
|---|---|---|---|
| Behavior Cloning (BC) | 状態→行動を直接学習 | シンプル | 誤差累積・分布シフトに弱い |
| DAgger | オンラインで補正データ収集 | 分布シフト対策 | 人手コスト高い |
| GAIL / IRL | 分布一致・報酬推定 | より原理的 | 不安定、複雑 |
| RNN / LSTM | 時系列依存を学習 | 時間情報を扱える | 長期依存を捉えにくい |
| Diffusion & Generative | 多峰性や複雑行動をモデル化 | 多モード行動扱える | 学習コスト・構造複雑 |
なお、以下の記事も簡潔にいろいろな技術を一つ一つわかりやすく説明していて、理解が深まりました。
ACT (Action Chunking with Transformers)
ACT の概要
ACTは 2023 年に提案された模倣学習アルゴリズムで、「Transformer を使って複数ステップのアクションチャンクを予測すること(Action Chunking)」という新しい設計を提案しています。
以下の記事を参考に解説します。
ACT が生まれた背景には、従来の模倣学習の課題があります。簡単に従来の課題をまとめると以下の3つです。
-
行動を 1ステップずつ予測するだけでは性能が出にくい
-
長い連続動作や接触の多い作業になると、エラーが累積しやすい
-
動作がぎこちなくなることがある
こうした課題に対して ACT は以下の狙いで設計されました。
(1) Transformer の注意機構を使い、複数ステップ分のアクションをまとめて予測(chunking)する
(2) 視覚入力(カメラ画像)と関節状態などを同時に処理することで、アーム制御に対応する
(3) 比較的少量のデータ(数十〜百程度のデモ)でも高い成功率を出せる
これらの利点もあり、LeRobot の公式模倣学習ポリシーとして採用されています。
なお、誤解している人も多いのですが、ACTは強化学習モデルではありません。理由は、
報酬関数を使わない、試行錯誤による探索をしない、方策改善をしない ためです。
ACT の重要性とは?
従来の手法はどれも「単一ステップ出力中心」だったり、「時系列依存は限定的」だったりと、長期的・複雑な連続動作に対して汎化性能・安定性に限界がありました。
これに対し、ACT は Transformer の注意機構+Action Chunking によって複数ステップをまとめて予測し、視覚入力+関節状態を同時に処理します。
これによって、 以下の利点が生まれました。
- 少ないデータで精密操作を模倣可能、つまり、データ効率が高い
- 少量デモでも精密な模倣学習が可能
- 長期依存タスクや精密操作タスクに強い誤差累積や時系列依存の欠点を大幅に低減。
これは従来条件付きステップ学習の延長ではなく、時系列依存をモデル全体で扱うアーキテクチャの進化の結果ということができます。
以下の弱点もありますが、複雑でないアーム制御の場合には問題にならない弱点です。
- 多峰的な行動分布(複数正解がある動作)にはやや弱い
- 汎化先のタスクが複雑すぎる場合、1チャンク内での表現力に限界
まとめ
各種の模倣学習の特徴と利点、弱点を整理し、比較してみました。今回の整理を通じて、ACTのバランスの良さを理解することができました。
参考文献
すでに、個別に文献や記事を紹介しましたが、全般的に取り扱っているものを以下に紹介しておきます。