模倣学習とは何か
What is Imitation Learning
模倣学習の基本概念、活用例、強化学習との違いを理解します。
未開始
完了すると学習パスとホームの統計に反映されます
ロボットに「机の上のコップを持ち上げる」ことを教えたいとします。
やり方は大きく2つあります:
- 「成功」の定義だけを与え、あとは何万回も試行錯誤させて報酬から少しずつ学ばせる。これが 強化学習 (Reinforcement Learning, RL) です。
- 数十回お手本を見せて、それを真似して学ばせる。これが 模倣学習 (Imitation Learning, IL) です。
実世界では1番目はほぼ非現実的です —— ロボットアームを1台壊せば数千ドル、「何万回も試す」のはコストが膨らむのと同じだからです。そのため2020年頃から、ロボティクス分野は特に精密操作(pick-and-place、組み立て、把持)で大規模に模倣学習へ回帰しました。
模倣学習の核となる数学は、実は一言で表せます:
> 大量の (状態 s, 行動 a) の人間のデモ対を与え、方策 π(s) → a を学習する。未知の状態でも妥当な行動を出せるようにする。
教師あり学習に似ている? その通りです —— もっとも素朴な版はそのまま教師あり学習として解き、行動クローニング (Behavior Cloning, BC) と呼ばれます。ただし BC には 複合誤差 (compounding error) という悪名高い問題があります:各ステップの予測がわずかにずれると、次の入力は学習分布からさらに外れ、誤差が雪だるま式に膨らみます。
現代の模倣学習(ACT、Diffusion Policy)の核心的な工夫は、いずれもこの雪だるまを抑えることにあります。本サイトの以降の 8 章で、ACT を SO101 上に実装するまでの道のりを一通り辿ります。
なぜ本気で学ぶ価値があるのか?
模倣学習は現在、100ドル級のハードウェアで現実の操作タスクを動かせると広く実証されている唯一の手法です。HuggingFace LeRobot チーム、Stanford ALOHA、Tesla Optimus はいずれも類似のフレームワークを使っています。習得すれば:
- 自分で 50〜100 件のデータを集め、特定タスクを動かせる方策を学習できる;
- 同じコードで「タオルをたたむ」「USB を挿す」「扉を開ける」といった異なるタスクに取り組める;
- 2023〜2025 年の主要国際会議の論文における中核的なパイプラインの大半を再現できる。
- 模倣学習の定義と中心的なアイデアを理解する
- ロボティクス分野での模倣学習の応用を把握する
- 模倣学習と強化学習の違いを整理する
- 1模倣学習 (Imitation Learning) は、専門家のデモを観察してロボットに行動を学習させる手法です
- 2中心となる考え方:試行錯誤ではなく、デモデータからポリシーを学習する
- 3主な手法には行動クローニング (BC) と逆強化学習 (IRL) があります
模倣学習の標準 pipeline
flowchart LR
A["人間の専門家"] -->|"N 本のデモ軌跡"| B["データセット (s, a)"]
B -->|"教師あり学習"| C["方策 π_theta"]
C -->|"s -> a"| D["ロボットアーム"]
D -.->|"新しい状態 s'"| C
style A fill:#7c5cff,stroke:#7c5cff,color:#fff
style C fill:#22c55e,stroke:#22c55e,color:#fff
style D fill:#0ea5e9,stroke:#0ea5e9,color:#fff強化学習 vs 模倣学習:データの出所の比較
flowchart TB
subgraph RL ["強化学習 RL"]
direction LR
R1["ランダム行動"] --> R2["環境が報酬 r を返す"]
R2 --> R3["方策を更新"]
R3 --> R1
end
subgraph IL ["模倣学習 IL"]
direction LR
I1["専門家のデモ"] --> I2["データセット (s, a)"]
I2 --> I3["教師あり学習"]
I3 --> I4["方策"]
end状態 s と行動 a を理解する
SO101 では、状態 s は6次元ベクトル [θ₁, θ₂, ..., θ₆] で、各 θᵢ は各関節の現在角度です。行動 a も6次元ベクトルですが、「次の時刻に各関節を到達させたい角度」を表します。
つまり1本のデモ軌跡は (s_t, a_t) の連なりで、30 Hz でサンプリングすれば、5秒の操作で 150 対のサンプルになります。
LeRobot の parquet ファイルでは:
- s は
observation.state - a は
action
データセットを開けば、この2つのフィールドを直接見られます。
第6章で実際に parquet を開いて確認します。そのとき、この節の内容が一気に具体的になります。
方策 π とは何かを理解する
方策 π は関数そのものです —— s を入力し、a を出力します。ディープラーニングではこれがニューラルネットワークで、パラメータを θ と呼びます。学習の目的は、π_θ(s) が専門家のデモの a にできるだけ近づくような θ を見つけることです。
もっとも素朴な損失関数は平均二乗誤差 (MSE) です:
L = ||π_θ(s) - a_expert||²この式だけを見れば、模倣学習は画像分類とほとんど同じ —— どちらも「教師信号+誤差逆伝播」です。違うのは入力の次元と出力の意味だけです。
ACT ではこの関数は「1フレーム見て1行動」ではなく「1フレーム見て未来100ステップの行動系列を出す」ものになります。これが Action Chunking の核心で、第7章で扱います。
なぜ BC では不十分かを理解する
あなたが運転していて、ハンドルが理想の位置から1度ずれたと想像してください。
次の瞬間に見える映像は、少し左に寄った車線です —— この映像は、学習データの「専門家が正常に運転している」映像とは少し違います。もし方策が「正常運転」の映像しか学んでいなければ、ずれた映像ではさらに悪い予測をします。
その次の瞬間、映像はもっとずれます。さらに進むと、方策は完全に混乱します。
これが 複合誤差 (compounding error) です:各ステップの小さなずれが積み重なり、入力分布が学習分布からどんどん離れていきます。
この問題は長系列タスク(10秒以上)で特に深刻です。ロボットの動作は最初の数秒は滑らかでも、後半ほど歪んでいきます。Action Chunking + Time Ensembling が現状もっとも有効な緩和策で、第7〜8章で扱います。
「模倣学習は答えを写すだけで、技術的に大したことはない。」
根本的な原因
「模倣」を文字どおりのコピー&ペーストだと捉えている。
正しい理解
本当の難しさはデータ収集ではなく、方策を 未知の状態へ汎化させる ことにあります。50件のデモを丸暗記できる方策には価値がありません —— 欲しいのは、環境の揺らぎ(照明変化、物体位置の微妙なずれ、初期姿勢の違い)に対応できる方策です。ここが IL と教師あり画像分類の最大の違いです。
「10 件のデモを用意したのに、モデルが学習してくれない。」
根本的な原因
データ量が大幅に不足し、かつデモ同士が似すぎている(状態空間を十分カバーできていない)。
正しい理解
一般的な目安:単純な pick-and-place なら最低 50 件、複雑なタスク(USB 挿入など)なら 200 件以上。さらに「異なる初期位置/異なる把持角度/失敗してやり直す」デモを意図的に入れ、学習分布を十分に広げます。
「模倣学習で十分、RL は要らない。」
根本的な原因
IL の能力の限界が見えていない。
正しい理解
IL の上限は「専門家のデモの水準+わずかな汎化」です。タスク自体が人間の反応速度を超える必要がある(高速なキャッチ、複雑なプランニング)場合や、人間自身のデモが下手な場合(二足歩行のバランス)は、RL または IL+RL のハイブリッドが本筋です。
- 模倣学習の基本原理を説明できる
- BC と ACT の違いを理解している
- 模倣学習がロボットアーム作業に適している理由を理解している
状態/行動の次元を計算する
SO101 には6つの関節があります。30 Hz で7秒のデモを収集する場合:
- (s, a) のサンプル対はいくつ得られる?
- 1対あたりの合計次元(s 次元 + a 次元)は?
- デモ全体の浮動小数点数の総量は?(float32 換算)
考察:なぜ模倣学習にカメラが必要なのか?
SO101 は各関節の角度を正確に読めるのだから、理論上は「状態 s = 関節角度」でロボットアーム自身の姿勢は完全に記述できるはずです。
それでも、なぜ現代の模倣学習アルゴリズム(ACT を含む)はカメラを必須とするのでしょうか?
- Imitation Learning: A Survey of Learning Methods (Hussein et al. 2017)
IL 分野の定番サーベイ。ざっと目を通すと全体像がつかめる。
- Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware (Zhao et al. 2023)
ACT の原論文。最初は数式を全部理解しなくてよい。実験動画と手法概要を見るだけで十分。
- LeRobot 公式紹介ブログ
HuggingFace チームによる LeRobot のプロダクト紹介。以降の 8 章のコード理解に役立つ。
模倣学習 = 専門家のデモから方策を学ぶこと。 もっとも素朴な手法は BC(教師あり学習で (s, a) 対をフィット)だが、複合誤差の問題がある。ACT は「一度に行動の塊を予測する」ことでそれを緩和した。
SO101 では状態は6次元の関節角度、行動は6次元の目標角度、さらにカメラフレーム。
次章では SO101 のハードウェア構成を確認し、Leader/Follower がどのようにこれらの (s, a) 対を生み出すかを見ていく。