Curriculum Learning
- 別名: curriculum training, task curriculum
- カテゴリ: Learning & autonomy › RL & simulation
- タグ: reinforcement-learning, robot-learning, training, simulation, locomotion
学習システムに易しいタスクや例を先に与え、徐々に難しさを上げていく訓練戦略で、ゼロからでは学習が難しすぎるスキルを習得できるようにする。
定義
カリキュラム学習(Curriculum learning)は、訓練の経験をすべて一度に与えるのではなく、易しいものから難しいものへと順序立てて与える手法である。この考え方は人が教わる方法に倣っている。学生は微積分の前に算数を学ぶ。機械学習では 2009 年に Bengio らによって定式化され、例をうまく選んだ順序で与えると学習が速まり、最終的な結果も改善しうることが示された。
ロボティクスでは、カリキュラムは強化学習で最もよく使われる。能力をはるかに超えるタスクから始めたエージェントは、有用な報酬信号を一度も受け取れないことがあるからだ。カリキュラムはエージェントを常に能力の限界付近にとどめる。難しさはさまざまな軸に沿って上げられる。脚ロボットにとっての地形の粗さと傾斜、階段昇降の段差の高さ、ナビゲーションにおけるゴールまでの距離、把持における物体の多様さ、外部からの押しの強さ、あるいは報酬の疎さなどである。
カリキュラムは、固定された段階と次に進むための閾値を持つ手設計のものもあれば、自動のものもある。自動カリキュラムはエージェントの成績から難しさを調整し、たとえばシミュレーション上のロボットが成功すればより難しい地形に昇格させ、失敗すれば降格させる。関連する考え方には、訓練システムが適切な難しさのゴールを提案する自動ゴール生成や、対戦相手同士がともに強くなるセルフプレイがある。
カリキュラムは、うまくいかない可能性のある設計上の選択を増やす。難しさの上げ方が速すぎれば学習は停滞し、遅すぎれば計算資源が無駄になる。運用時に出会う条件の全範囲に到達しないカリキュラムでは、ポリシーがそれらの条件に対応できないままになりうる。
重要な理由
登攀、跳躍、不整地での歩行など、多くのロボットのスキルは、ランダムな行動がほとんど成功しないため、ゼロからの試行錯誤では学習できない。カリキュラム学習はこうしたスキルを段階的に積み上げることで学習可能にし、シミュレーションで学習する移動コントローラの標準的な要素となっている。
主な用途
- 段階的に難しくなる地形での脚移動の学習
- 登攀や階段昇降スキルの学習
- ゴールまでの距離や障害物の多さを徐々に増やすナビゲーションタスク
- 物体の多様さや精度の要求を高めていくマニピュレーションタスク
実際の使われ方
GPU ベースの移動学習でよく使われる設定は地形カリキュラムである。何千台ものシミュレーション上のロボットを、難しさの順に並んだ地形タイルのグリッド上に配置する。たとえば高さが増していく斜面、階段、凹凸のある区画などである。各ロボットは易しいタイルから始め、1 エピソードで十分遠くまで進めばより難しいタイルへ移り、失敗すれば戻される。チームは指令速度や外乱の強さについても並行してカリキュラムを走らせることが多く、ロボットが難しさのレベルにどう分布しているかを訓練の進み具合を直接示す指標として記録する。運用前には、最も難しいレベルとカリキュラム外の条件で最終的なポリシーを評価し、訓練用の段階にだけ合わせて調整されていないことを確かめる。
よくある誤解
- カリキュラムは常に役立つ — 設計の悪いカリキュラムは学習を遅らせたり、強調した条件にポリシーを偏らせたりしうる
- カリキュラムは手で設計しなければならない — 多くのシステムは、エージェントの測定された成績から難しさを自動的に調整する
- カリキュラム学習は強化学習専用である — 最初は教師あり学習向けに定式化されたもので、そこでも適用できる
知っておくべき人
- 強化学習の実務者
- 脚ロボットの制御エンジニア
- シミュレーションと訓練環境の設計者
- ロボット学習に取り組む機械学習の学生
関連技術
- 強化学習(Reinforcement Learning)
- Isaac Lab
- ドメインランダム化(Domain Randomization)
- 報酬シェーピング(Reward Shaping)
- 自動カリキュラム学習(Automatic Curriculum Learning)
- セルフプレイ(Self-Play)
関連用語
関連プロジェクト
- GENESIS: World's fastest physics engine: 43M FPS for embodied AI learning
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- MuJoCo: DeepMind physics engine for robotics and ML research
- PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
- OpenPI: Physical Intelligence VLA foundation models for general robot control
- Microduck: Pollen Robotics' $399 walking duck robot: open-source software, closed hardware
動画
- Curriculum Learning in Deep Neural Networks: Connor Shorten
- Teacher-Student Curriculum Learning: Connor Shorten