
Curriculum для обучения с подкреплением: от простого к сложному
Что такое Curriculum RL, как работает обучение по расписанию задач и почему AlphaGo, AlphaStar и роботы OpenAI не обошлись без него.
Curriculum для обучения с подкреплением: от простого к сложному
Представьте, что вы учите ребёнка шахматам, сразу бросив его против гроссмейстера. Ребёнок получит 0 полезного опыта: он проиграет быстро, не поймёт почему, и перестанет пробовать. Именно с такой проблемой сталкиваются агенты обучения с подкреплением (RL) при попытке решить по-настоящему сложные задачи «в лоб».
Решение — Curriculum Learning для RL: метод, при котором агент обучается не сразу на финальной сложной задаче, а проходит продуманную последовательность задач, от простых к трудным. Этот принцип лежит в основе самых громких достижений RL-систем последнего десятилетия.
Что такое Curriculum Learning в RL и зачем он нужен
Обучение с подкреплением — популярная парадигма для решения задач последовательного принятия решений, однако, несмотря на прогресс за три десятилетия, обучение во многих предметных областях всё ещё требует огромного числа взаимодействий со средой, что может быть непозволительно дорого в реальных сценариях.
Чтобы преодолеть это ограничение, ряд исследований изучает, как задачи или сами образцы данных можно выстроить в учебную программу (curriculum) с целью обучить агента тому, что в ином случае было бы слишком сложно освоить с нуля.
Методы CL органично вписываются в RL-фреймворк, изменяя распределение данных, которые получает агент. По сути, вместо единственного статичного окружения агент получает динамически меняющийся «класс задач», каждая из которых подбирается под текущий уровень его компетентности.
«Переупорядочивание одного и того же набора примеров может изменить стабильность, эффективность по числу сэмплов и итоговую обобщающую способность.» — из обзора методов обучения с расписанием задач
Почему RL-агентам нужен curriculum: проблема разреженных наград
Главная причина, по которой прямолинейный RL даёт сбой на сложных задачах — разреженность наград (sparse rewards). Агент не получает никакого сигнала о том, что он движется в правильном направлении, пока не достигнет цели. На практике это означает тысячи часов бессмысленного блуждания.
Curriculum learning особенно необходим в средах с большими пространствами задач, где многие задачи либо слишком сложны, либо слишком просты, чтобы обеспечить полезный обучающий сигнал.
Рассмотрим три сценария, где этот эффект ощущается особенно остро:
| Сценарий | Проблема без curriculum | Выигрыш с curriculum |
|---|---|---|
| Роботизированная манипуляция | Робот никогда случайно не собирает объект | Начинаем с захвата, потом перекладываем, потом собираем |
| Стратегические игры (Go, SC2) | Пространство ходов огромно, случайная победа невозможна | Self-play против слабых версий себя |
| Кубик Рубика | Случайная сборка из перемешанного состояния крайне редка | Начинаем с 1 хода до решения, постепенно увеличиваем |
| Навигация в лабиринте | Агент никогда не находит выход | Начинаем с маленьких лабиринтов, постепенно усложняем |
Ранние работы в области Curriculum RL показали, что ручная или эвристическая организация задач от простых к сложным может существенно ускорить обучение в задачах с разреженными наградами и сложным исследованием.
Три основных подхода к построению curriculum
1. Ручное проектирование (Manual Curriculum)
При ручном проектировании эксперты заранее определяют последовательность задач, упорядоченных по сложности. Это похоже на создание школьной программы: вы сами решаете, чему агент должен учиться сначала, а что — потом, исходя из сложности каждой задачи.
Например, в робототехнике эксперт может задать последовательность, начиная с простых задач — таких как подбор объектов, — постепенно переходя к более сложным, например, к сборке деталей.
Плюсы: понятно, воспроизводимо, легко интерпретировать.
Минусы: требует экспертной разметки, не адаптируется к конкретному агенту.
2. Teacher-Student (модель «учитель–ученик»)
В модели Teacher-Student «учитель» (другая модель или экспертная система) направляет «ученика» (RL-агента), регулируя сложность задач по мере прогресса агента.
Этот фреймворк автоматического предложения учебной программы через другого RL-агента был формализован как Teacher-Student Curriculum Learning (TSCL). В TSCL «студент» — это RL-агент, решающий реальные задачи, а «учитель» — политика, выбирающая эти задачи.
3. Self-Play (самоигра)
Self-play — один из наиболее мощных и широко применяемых методов curriculum для состязательных задач.
Sukhbaatar et al. (2017) предложили фреймворк автоматического curriculum через асимметричную самоигру. Два агента, Алиса и Боб, играют в одну и ту же задачу с разными целями: Алиса бросает вызов Бобу, предлагая ему достичь нужного состояния, а Боб пытается выполнить это как можно быстрее.
4. Automatic Curriculum Learning (ACL)
Поскольку проектирование curriculum вручную не всегда тривиально, область Automatic Curriculum Learning (ACL) предлагает подходы, которые учатся создавать такую организацию задач самостоятельно, чтобы максимизировать производительность RL-агента.
Современные методы автоматизируют этот процесс — например, Self-Paced Contextual RL формулирует задачу как активную оптимизацию промежуточного контекстного распределения, балансируя между максимизацией локальной награды и KL-штрафом для обеспечения прогресса к целевому распределению.
graph TD
A["Целевая задача\n(слишком сложная)"] -->|"Декомпозиция"| B["Генератор задач\n(Teacher / ACL)"]
B --> C["Задача 1\n(простая)"]
B --> D["Задача 2\n(средняя)"]
B --> E["Задача N\n(близко к цели)"]
C -->|"Обучение"| F["RL-агент"]
D -->|"Обучение"| F
E -->|"Обучение"| F
F -->|"Оценка прогресса"| B
F -->|"Финальный тест"| A
Self-Paced RL: агент сам управляет темпом обучения
Одно из важнейших направлений современного CRL — самостоятельно регулируемый темп (Self-Paced Learning), при котором агент сам определяет, к каким задачам он уже готов.
Curriculum RL улучшает скорость обучения и стабильность агента, подвергая его воздействию специально подобранной серии задач на протяжении всего процесса обучения.
Исследователи предложили интерпретировать генерацию curriculum как задачу вывода (inference problem), где распределения над задачами постепенно обучаются так, чтобы приближаться к целевой задаче. Это приводит к автоматической генерации curriculum, темп которой контролируется самим агентом.
В проведённых экспериментах curriculum, сгенерированные предложенным алгоритмом, существенно улучшали производительность обучения в нескольких средах и с различными алгоритмами deep RL, сравниваясь или превосходя существующие CRL-алгоритмы.
# Псевдокод Self-Paced Curriculum RL
# На каждом шаге обучения:
for episode in training_loop:
# 1. Оцениваем текущие возможности агента
agent_performance = evaluate(agent, current_task_distribution)
# 2. Обновляем распределение задач с учётом прогресса
# KL(p_current || p_target) <= epsilon — не «прыгаем» слишком далеко
new_task_dist = update_distribution(
current=task_distribution,
target=target_distribution,
agent_progress=agent_performance,
kl_budget=epsilon
)
# 3. Сэмплируем задачи из нового распределения
task = sample(new_task_dist)
# 4. Обучаем агента на задаче
experience = agent.interact(task)
agent.update(experience)
task_distribution = new_task_dist
Реальные применения: от AlphaGo до роботов
Curriculum RL — не академическая абстракция, а реальная основа многих прорывных систем:
AlphaGo был обучен с помощью self-play, AlphaStar использовал новый метод лигового обучения для достижения уровня гроссмейстера в StarCraft II, а GT Sophy был обучен обгонять профессионалов в Gran Turismo с помощью вручную отобранных секций трасс.
Роботизированная рука OpenAI смогла научиться решать кубик Рубика с помощью domain randomization и обучения с подкреплением. Ключевым элементом здесь была именно постепенная рандомизация окружения — форма автоматического curriculum.
Методы ACL могут оптимизировать domain randomization для Sim2Real-переноса, организовывать представление задач в многозадачных робототехнических сценариях, выстраивать очерёдность соперников в мультиагентных сценариях.
Когда применять какой подход
| Метод | Когда использовать | Пример |
|---|---|---|
| Ручной curriculum | Задача хорошо структурирована, есть эксперт | Обучение робота сборке |
| Self-play | Задача состязательная, симметричная | Go, шахматы, файтинги |
| Teacher-Student | Нужна адаптация к конкретному агенту | Навигация, головоломки |
| Self-Paced / ACL | Нет экспертной разметки, нужна автоматизация | Общие RL-задачи, NLP |
| Diffusion-based | Сложные среды с генеративными промежуточными целями | Робот-паркурщик |
Ограничения и открытые проблемы
Несмотря на впечатляющие результаты, Curriculum RL сталкивается с рядом нерешённых вопросов.
Ключевое ограничение существующих CRL-методов состоит в том, что они специфичны для узкого класса контекстов — например, заранее определённых семантических задач или goal-conditioned настроек — и не предлагают систематического механизма или гарантий для работы с более широкими или состязательными изменениями окружения.
Существующие CRL-подходы всё ещё испытывают трудности с генерацией подходящих промежуточных целей, особенно в сложных средах со значительными проблемами исследования.
Существующие методы не легко переносятся на сложные новые среды — это подтверждают первые эксперименты с автоматическим curriculum learning в NetHack и Neural MMO.
На практике большинство curriculum для RL-агентов создавалось вручную под конкретную задачу. Это означает, что автоматизация остаётся активной областью исследований.
Заключение
Curriculum Learning для RL — это не просто «трюк» для повышения производительности, а фундаментальный принцип обучения, укоренённый в человеческой педагогике и доказавший свою эффективность в самых сложных задачах ИИ.
Curriculum являлся ключевым компонентом многих успехов обучения с подкреплением. Без него не было бы ни AlphaGo, ни AlphaStar, ни OpenAI Five.
Сегодня область развивается сразу в нескольких направлениях:
- Automatic Curriculum Learning — системы, генерирующие curriculum без участия человека
- Self-Paced методы — агент сам управляет темпом усложнения задач
- Diffusion-based CRL — использование генеративных моделей для создания промежуточных целей
- Portable Curricula — переносимые curriculum между разными RL-библиотеками и средами
Предложенные методы ускоряют и стабилизируют обучение автономных агентов. В практическом сценарии такие методы могут снизить количество времени, энергии или ручного труда, необходимых для создания автономных агентов для заданной задачи, обеспечивая экономические выгоды.
Если вы проектируете RL-систему для сложной задачи и сталкиваетесь с проблемой разреженных наград или нестабильного обучения — начните не с поиска нового алгоритма оптимизации, а с вопроса: «Как выглядит правильный curriculum для этой задачи?»