カリキュラム学習

Curriculum Learning

カリキュラム学習とは

カリキュラム学習(Curriculum Learning)とは、簡単なタスクから徐々に難易度を上げていくことで、複雑なタスクの学習効率を向上させる手法です。人間の教育過程と同様に、基礎から応用へと段階的に学習を進めることで、いきなり難しい問題に取り組むよりも効率的に学習できます。

表:カリキュラム学習の要点まとめ
ひとことで言うと簡単な課題から順に難しくしていき、効率よく学習させる方法。
たとえるといきなり本番ではなく、練習問題から段階的に難易度を上げる学習計画。
注意点難易度の上げ方が急だと学習が破綻する。段階の設計が重要。

カリキュラム学習の仕組み

タスクの難易度を段階的に上げるスケジュール(カリキュラム)を設計します。例えばロボットの歩行学習では、最初は平坦な地面で歩行を学び、次に軽い起伏のある地形、最終的には複雑な地形で歩けるようにします。難易度の上げ方は手動で設定するか、エージェントの習熟度に応じて自動的に調整します。

図:カリキュラム学習の進め方
1易しい課題から成功しやすい設定
▶
2成功率を監視十分できるようになったか
▶
3難易度を上げる少しずつ本番に近づける
▶
4最終課題へ本来解きたい問題
↺ 2〜3をくり返して段階的に進む

自動カリキュラム学習

手動でのカリキュラム設計には人間の専門知識が必要です。Teacher-Student枠組み(教師エージェントが生徒エージェントに適切な難易度のタスクを提示)やSelf-paced Learning(エージェント自身が学習の進捗に応じてタスクを選択)など、カリキュラムを自動設計する手法が研究されています。

強化学習での活用

スパース報酬環境での学習促進、マルチタスク学習での効率化、Sim-to-Realでのギャップ段階的解消など、強化学習において幅広く活用されています。自己対戦もカリキュラム学習の一形態と見なすことができ、相手が徐々に強くなることで自然な難易度の上昇が実現されます。