模倣学習とは
模倣学習は、人がやってみせた動きのデータから、ロボットが作業のこなし方を学ぶ機械学習の手法です。位置と順番を一つずつ教えるティーチングと違い、実演を見せることで、状況が少し変わっても対応できる動きを覚えさせます。
英語では Imitation Learning。人の実演(デモンストレーション)から学ぶことから、Learning from Demonstration(LfD)とも呼ばれます。フィジカルAIのロボットに動きを覚えさせる、中心的な方法の一つです。
見せて、記録し、学ぶ
模倣学習は、この3つの段で進み、学び終えたロボットは自分で動けるようになります。人が教えるのは手順ではなく、やってみせた動きそのものです。
実演する
- 人が操作用の腕でロボットを動かす
- 数十〜数百回くり返す
記録する
- カメラの画像
- 関節の角度
- 手先にかかる力
学習する
- 「この状況で、こう動いた」の組をAIモデルが学ぶ
自分で動く
- カメラの画像から、次の動きを決める
うまくいかない場面は、実演を足して学び直す
01実演する
人がロボットを動かして、作業をやってみせます。操作用の腕(リーダーアーム)やVRコントローラーで遠隔操作する方法が一般的で、ロボットの腕を手で直接動かす方法もあります。
02記録する
実演している間のカメラの画像、ロボットの関節の角度、手先にかかる力などを、時間の流れに沿って記録します。一つの作業につき、数十〜数百回の実演を集めることが多くあります。
03学習する
記録した「この状況で、こう動いた」の組をAIモデルに学ばせます。学習を終えたロボットは、カメラの画像などから、次にどう動くかを自分で決めます。
主な手法
実演からどう学ぶかで、いくつかの手法に分かれます。
01行動クローニング
状況と動作の組を、そのまま正解として学ぶ、もっとも基本的な手法です(Behavior Cloning)。仕組みが単純で扱いやすい一方、実演になかった状況に入ると、小さなずれが積み重なりやすくなります。
02人が途中で正す手法
学習中のロボットが迷った場面に人が正しい動きを書き足し、ずれの積み重なりを防ぎます。代表的な手法に DAgger(Dataset Aggregation)があります。
03逆強化学習
実演から「この人は何を目指して動いているか」を推定し、その目的に沿う動きを学びます(Inverse Reinforcement Learning)。動きそのものではなく、目的を写し取る考え方です。
04動きをまとまりで学ぶ手法
近年は、数ステップ先までの動きをまとめて予測する ACT(Action Chunking with Transformers)や、拡散モデルで動きを生成する Diffusion Policy が広まりました。少ない実演でも、なめらかな動きを覚えやすいのが特徴です。
ほかの教え方との違い
ロボットに動きを覚えさせる方法は、大きく3つあります。実際には、作業に合わせて組み合わせて使います。
| 比べる点 | ティーチング | 強化学習 | 模倣学習 |
|---|---|---|---|
| 教え方 | 位置と順番を一つずつ入力する | 試行錯誤と報酬から、ロボットが自分で見つける | 人がやってみせる |
| 必要なもの | 動きを組む手間と時間 | 大量の試行(多くはシミュレーションで行う) | 実演のデータ |
| 状況が変わったとき | 教え直しが必要 | 学んだ範囲なら合わせられる | 実演した範囲なら合わせられる |
| 向いている作業 | まったく同じ動きの繰り返し | 歩行やバランスなど、正解を言葉にしにくい動き | 人なら簡単にできるが、手順を書き出しにくい作業 |
よくある質問
- 模倣学習には、どれくらいの実演が必要ですか?
- 作業の難しさによりますが、一つの作業につき数十〜数百回の実演を集めることが多くあります。多くの作業データで事前に学習したロボット基盤モデル(VLA)を土台にすると、より少ない実演で新しい作業に合わせられると期待されています。
- 模倣学習の弱点は何ですか?
- 実演になかった状況に弱いことです。動くたびに生じる小さなずれが積み重なり、実演の範囲から外れていく問題が知られています。実演の条件を散らして集める、人が途中で正しい動きを書き足す、シミュレーションで実演を増やす、といった方法で補います。
- 模倣学習と強化学習は組み合わせられますか?
- 組み合わせられます。模倣学習で大まかな動きを覚えさせてから、強化学習で磨く使い方は広く研究されています。人の棋譜で学んでから自己対戦で強くなった囲碁AI「AlphaGo」も、この形です。ゼロから試行錯誤させるより少ない試行で学べる一方、強化学習に切り替えた直後に、覚えた動きが崩れることもあります。
- 製造業では、どんな作業に向いていますか?
- 人なら簡単にできるのに、手順を書き出しにくい作業です。ワークの向きや置き位置が毎回少しずつ違う脱着、形の定まらない物の扱い、ケーブルの取り回しなどが当てはまります。まったく同じ動きの繰り返しなら、従来のティーチングや最小限のAIで組むほうが早く確実です。
- 模倣学習とVLAはどう関係しますか?
- VLA(Vision-Language-Action)は、多くのロボットの実演データで事前に学習した大きなモデルで、その学習の中心に模倣学習があります。VLAを個別の作業に合わせ込むとき(ファインチューニング)にも、その作業の実演データが使われます。
関連する用語
- フィジカルAIとは
フィジカルAIの定義と仕組み、生成AI・産業用ロボットとの違い
参考文献
- DAgger(人が途中で正す手法)Ross ほか(2011)A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning. AISTATS
- 逆強化学習Ng, Russell(2000)Algorithms for Inverse Reinforcement Learning. ICML
- ACT(動きをまとまりで学ぶ手法)Zhao ほか(2023)Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware. RSS
- Diffusion PolicyChi ほか(2023)Diffusion Policy: Visuomotor Policy Learning via Action Diffusion. RSS
- AlphaGo(人の棋譜で学んでから強化学習で磨く)Silver ほか(2016)Mastering the game of Go with deep neural networks and tree search. Nature 529
- 人の実演を使ったロボットハンドの強化学習Rajeswaran ほか(2018)Learning Complex Dexterous Manipulation with Deep Reinforcement Learning and Demonstrations. RSS
- 強化学習に切り替えた直後の崩れと、その対策Nair ほか(2020)AWAC: Accelerating Online Reinforcement Learning with Offline Datasets
- VLA(ロボット基盤モデル)Brohan ほか(2023)RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control. CoRL
- VLA(公開されたモデル)Kim ほか(2024)OpenVLA: An Open-Source Vision-Language-Action Model. CoRL