模倣学習と実演からの学習
報酬設計なしでも人の実演からロボットの動作を獲得できる仕組みを、行動クローニング・逆強化学習・DMPの3系統に整理し、実運用で必ず現れる分布シフト問題まで理解できます。
- 行動クローニングは実演を教師あり学習で状態→行動の写像として直接模倣する最も単純な方法だが、誤差が累積して訓練分布から外れる共変量シフトに弱い。
- 逆強化学習は実演の背後にある報酬関数を推定し、その報酬で方策を再学習することで、単なる軌道の丸暗記より汎化する方策を得る。
- DMP(動的動作プリミティブ)は1回の実演を安定な力学系として符号化し、目標位置・速度・時間スケールを変えても形を保ったまま再生できる再利用可能な表現。
なぜ実演から学ぶのか
ロボットに「引き出しを開ける」「コップを注ぐ」といった動作をさせたいとき、方法は大きく2つあります。1つは報酬関数を人手で設計し強化学習で試行錯誤させる方法、もう1つは人間が実際にやって見せた実演(demonstration)からその動作を学ぶ方法です。後者を模倣学習(imitation learning)あるいは実演からの学習(Learning from Demonstration, LfD)と呼びます。
実演から学ぶ動機は、報酬設計の難しさにあります。「上手に注ぐ」を数式の報酬に落とし込むのは難しく、設計を誤ると意図しない挙動(報酬ハッキング)に陥ります。一方、人間が数回やって見せるのは容易です。実演データは典型的に、状態と行動の系列 {(s_0,a_0),(s_1,a_1),...} として、テレオペレーション(遠隔操作)やキネステティック教示(人がアームを直接持って動かす)で収集されます。この実演から方策 π(a|s)(状態sで行動aを選ぶ規則)を獲得するのが目標です。アプローチは大きく、行動を直接まねる行動クローニング、報酬を推定する逆強化学習、軌道を力学系として符号化する動作プリミティブの3系統に整理できます。
強化学習が報酬関数を所与として最適方策を探すのに対し、模倣学習は最適な(あるいは十分に良い)実演を所与として方策を復元します。報酬を経由しない行動クローニングは教師あり学習そのものであり、報酬を推定して強化学習に橋渡しする逆強化学習は両者の中間に位置します。実機で試行錯誤させるコストが高い場面では、まず実演で方策を初期化し、その後に強化学習で微調整するのが定石です。関連する分布のずれの扱いはSim-to-Real転移とも共通の論点になります。
行動クローニング:状態から行動への写像を直接学ぶ
行動クローニング(Behavioral Cloning, BC)は最も単純な模倣学習です。実演データを入力=状態s、出力=行動aの教師データとみなし、ニューラルネットなどで写像 π(s)≈a を回帰・分類として学習します。手法としては純粋な教師あり学習であり、実装が容易で、時系列としての強化学習の枠組みを一切必要としないのが利点です。
横にスクロール
行動クローニングの学習:
入力 : 実演の状態 s (関節角・物体位置・画像など)
出力 : 実演の行動 a (関節速度・トルク・エンドエフェクタ変位など)
損失 : Σ loss( π(s_i), a_i ) (回帰なら二乗誤差、離散行動なら交差エントロピー)
→ 通常の教師あり学習として π を最適化
行動クローニングの本質的な弱点は共変量シフト(covariate shift)、俗に言う分布シフト問題です。教師あり学習は「訓練データと同じ分布から入力が来る」ことを前提にしますが、方策を実機で走らせると話が変わります。学習した方策はわずかな予測誤差を持ち、その誤差で状態が実演の軌道からずれます。次の時刻ではそのずれた状態を入力に行動を選ぶため、さらにずれが増幅します。実演には登場しなかった状態(訓練分布の外)に入り込むと、そこでの行動は未学習なので予測が信頼できず、誤差が雪だるま式に累積します。
1ステップあたりの予測誤差(教師あり学習の誤差率)を e とすると、行動クローニングでは軌道の途中で一度分布外へ逸脱すると復帰する術を学んでいないため、系列長 T に対して総コストが最悪 e·T の2乗のオーダーで増大することが理論的に知られています(Ross & Bagnell 2010)。後述のDAggerのように実行時に訪れる分布へ専門家がラベル付けする対話的な手法では誤差が e·T の1乗で収まるのと対照的で、この2乗の劣化は「実演には成功軌道しか含まれず、失敗状態からの復帰(リカバリ)が教師データに存在しない」ことに起因します。実演を増やすだけでは、増やしたデータもまた成功軌道に偏るため、この構造は根本的には解消しません。
この分布シフトへの代表的対策がDAgger(Dataset Aggregation)です。学習した方策を実際に走らせ、そこで訪れた(分布外を含む)状態に対して専門家に正しい行動をラベル付けさせ、そのデータを訓練集合に追加して再学習する、という反復を行います。方策が実際に陥る状態を教師データに取り込むことで、リカバリを含む分布を学習させ、共変量シフトを縮小します。代償として、学習ループの中で専門家に繰り返し問い合わせる(オンラインのラベル付け)コストが必要になります。
逆強化学習:報酬関数を推定する
行動クローニングが「行動そのもの」をまねるのに対し、逆強化学習(Inverse Reinforcement Learning, IRL)は「その行動を生む報酬関数」を推定します。前提は、実演者は何らかの報酬 R(s,a) を(近似的に)最大化するように振る舞っている、という仮定です。IRLはまず実演から R を逆算し、次にその R の下で強化学習を回して方策を得ます。
報酬を経由する利点は汎化です。行動クローニングは軌道そのものを暗記するため、初期条件や障害物配置が実演と変わると破綻しがちですが、報酬関数はより抽象的で環境が変わっても意味を保ちやすく、新しい状況では推定報酬を最大化し直すことで妥当な行動を再生成できます。「何をすれば良いか(行動)」ではなく「何が良いか(目的)」を学ぶ、と言い換えられます。
IRLの本質的な難しさは不良設定(ill-posed)であることです。同じ実演を説明できる報酬関数は無数に存在し、極端には「全状態で報酬0」でもどんな行動も等しく最適になってしまいます。この曖昧さを解消するため追加の原理を課します。
| 代表的枠組み | 曖昧さを解く原理 | 特徴 |
|---|---|---|
| 最大マージンIRL | 実演方策が他方策より明確に良くなる報酬を選ぶ | 線形計画等で解けるが報酬の非一意性が残りやすい |
| 最大エントロピーIRL | 実演を再現しつつ最も無仮定(高エントロピー)な確率分布を選ぶ | 軌道の確率がコストの指数で決まり、雑音や準最適な実演に頑健 |
| 敵対的模倣(GAIL) | 報酬を陽に求めず識別器と方策を敵対的に学習 | 報酬関数を明示せず実演分布に方策分布を一致させる |
特に最大エントロピーIRL(MaxEnt IRL)は、「実演を説明する制約の下でエントロピーが最大の分布を選ぶ」という原理で報酬の非一意性を解消し、実演が最適でなく多少ばらついていても破綻しにくいため、実運用で広く使われます。さらにGAIL(Generative Adversarial Imitation Learning)は、報酬関数を陽に取り出すことを諦め、生成方策と識別器を敵対的に学習して方策の状態行動分布を実演の分布へ直接一致させる手法で、IRL+強化学習の二段構えを1つの学習に畳み込んだものと理解できます。
実演が豊富で状況が訓練時とほぼ変わらないなら、実装が軽い行動クローニング(+分布シフト対策のDAgger)で十分なことが多いです。一方、実演は少数しか得られず、初期条件や配置が本番で変わる、あるいは実演者が最適でない場合は、目的を抽出して再最適化できる逆強化学習が有利です。ただしIRLは内側に強化学習ループを含むため計算コストが大きく、報酬の非一意性という難しさも抱える点は割り引く必要があります。
動作プリミティブ(DMP):軌道を力学系として符号化する
動的動作プリミティブ(Dynamic Movement Primitives, DMP)は、上の2系統とは目的が異なり、1回の実演で得た軌道を再利用可能な力学系として符号化する表現手法です。学習で方策全体を獲得するというより、「1つのなめらかな運動」を、目標や速度を変えても形を保って再生できる部品(プリミティブ)に変換します。
DMPの中核は、安定なバネ・ダンパ系(点アトラクタ)に、実演の形状を再現する強制項(forcing term)を足した微分方程式です。強制項がゼロなら系は目標 g へ滑らかに収束するだけですが、実演から学習した強制項を加えることで、実演の軌道形状をなぞりながら最終的に目標へ収束します。
DMP の構造(1次元・概念式):
加速度 = alpha * ( beta * (g - x) - v ) + f(phase)
x, v : 位置・速度
g : 目標(ゴール位置)
alpha,beta: バネ・ダンパ係数(臨界減衰にして安定収束を保証)
f(phase) : 強制項。実演の形状を基底関数の重み和で近似
phase : 位相変数。時間に依存せず単調に減衰し、
収束点近傍で f を自然に0へ消す(=必ず g に収束)
DMPが実務で重宝される理由は3つの性質にあります。第一に安定性の保証で、強制項が位相変数の減衰とともに消えるため、どんな形状を学習しても最終的に必ず目標 g へ収束します。第二に目標・時間スケールの汎化で、ゴール g を差し替えても軌道の相対的な形は保たれ、時定数を変えるだけで動作を速くも遅くもでき、実演を1本取れば異なる目標位置へ形を保って一般化できます。第三に位相変数による時間非依存化で、外乱で動作が一時停止しても位相を止めれば軌道全体が破綻せず追従を再開できます。学習部分は強制項の基底関数の重みを実演から回帰するだけと軽量で、この符号化した軌道は軌道計画(スプライン・多項式補間)で得た経路と同様に、下位のコントローラへの参照として渡します。
DMPは「1つの運動の形」を頑健に再生する表現に特化しており、いつどのプリミティブを起動するか、障害物をどう避けるか、複数動作をどう連結するかといった上位の意思決定は担いません。実運用では、行動クローニングや逆強化学習で獲得した上位方策が「どのDMPをどの目標で起動するか」を選び、DMPが個々の運動の実行を受け持つ、という階層構成が典型です。またDMPが返すのは参照軌道であり、接触を伴うタスクでは位置追従だけでは不十分なため、力制御とコンプライアント制御と組み合わせて実行します。
分布シフト問題を軸に全体を捉える
3系統を貫く最重要の論点が、冒頭から繰り返す分布シフトです。模倣学習は「実演が覆う状態分布」でしか教師信号を持たないため、方策が実行時にその分布の外へ出た瞬間に品質保証が失われます。各アプローチはこの問題への向き合い方が異なります。
| アプローチ | 学習する対象 | 分布シフトへの耐性 | 主なコスト |
|---|---|---|---|
| 行動クローニング | 状態→行動の写像(教師あり) | 弱い(誤差が累積し分布外へ逸脱) | 実装は最軽量/DAggerは追加ラベル付けが必要 |
| 逆強化学習 | 実演の背後の報酬関数 | 中〜高(報酬で再最適化でき汎化) | 内側に強化学習ループ/報酬が非一意 |
| 動作プリミティブ(DMP) | 1軌道の形状(安定力学系) | 軌道再生としては頑健/未経験タスクは範囲外 | 1運動単位に限定/上位の意思決定は別途必要 |
行動クローニングは分布外からの復帰を教師データに持たないため最も脆く、DAggerのように実行時分布のラベルを取り込んで対処します。逆強化学習は報酬という抽象度の高い対象を学ぶため新しい状況で再最適化でき、分布シフトへの耐性が相対的に高い一方、内部に強化学習を抱える重さがあります。DMPは学習した1つの運動を安定に再生する範囲では外乱に頑健ですが、そもそも実演にない種類のタスクは表現の対象外です。これは動作計画(RRT・PRM)のようにモデルと探索で経路を「計画」する立場と対照的で、模倣学習はあくまでデータが覆う範囲を「再現」する立場だと理解すると、限界と適材適所が見通せます。
- 行動クローニング: 状態→行動の教師あり学習。共変量シフト(分布シフト)に弱く、誤差が系列長Tの2乗オーダーで累積。対策がDAgger(実行時分布に専門家がラベル付けして再学習)。
- 逆強化学習(IRL): 実演から報酬関数を推定し強化学習で方策化。報酬が非一意(不良設定)で、最大エントロピー原理などで曖昧さを解消。行動でなく目的を学ぶため汎化に強い。
- GAIL: 報酬を陽に求めず、識別器と方策の敵対的学習で状態行動分布を実演へ一致させる。
- DMP: 1軌道を点アトラクタ+強制項の力学系で符号化。位相変数により目標・時間スケールを変えても形を保ち必ず目標へ収束する。上位の意思決定は担わない。
- 共通の限界: 実演が覆う分布の外では品質保証がない。これが模倣学習全体の根本制約。
まとめ
模倣学習は、報酬設計の難しさを回避して人間の実演から動作を獲得する枠組みであり、行動クローニング・逆強化学習・動作プリミティブの3系統に整理できます。行動クローニングは状態から行動への写像を教師あり学習で直接まねる最も単純な方法ですが、予測誤差が状態のずれを生み訓練分布の外へ逸脱する共変量シフトに構造的に弱く、DAggerのように実行時分布のラベルを取り込む対策が要ります。逆強化学習は実演の背後の報酬関数を推定して再最適化するため汎化に強い反面、報酬の非一意性と内部の強化学習ループという重さを抱えます。DMPは1回の実演を安定な力学系として符号化し、目標や時間スケールを変えても形を保って再生できる再利用可能な部品を与えますが、あくまで1運動の再生であり上位の意思決定は別に用意する必要があります。3系統に共通する根本制約は、実演が覆う状態分布の外では品質が保証されないという分布シフトの問題であり、この限界を軸に据えることが手法選択と実機適用の勘所になります。
ロボティクスの記事ガイド
模倣学習と実演からの学習を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
模倣学習
比較で見る軸
難易度: advanced / カテゴリ: ロボティクス / タグ数: 5
導入後に効く点
逆強化学習は実演の背後にある報酬関数を推定し、その報酬で方策を再学習することで、単なる軌道の丸暗記より汎化する方策を得る。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- ロボティクス
- タグ数
- 5
判断チェックリスト
- 自社の用途が「模倣学習 / 行動クローニング」に近いか確認する。
- 強みである「行動クローニングは実演を教師あり学習で状態→行動の写像として直接模倣する最も単純な方法だが、誤差が累積して訓練分布から外れる共変量シフトに弱い。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。