Curriculum для обучения с подкреплением: от простого к сложному

Представьте, что вы учите ребёнка шахматам, сразу бросив его против гроссмейстера. Ребёнок получит 0 полезного опыта: он проиграет быстро, не поймёт почему, и перестанет пробовать. Именно с такой проблемой сталкиваются агенты обучения с подкреплением (RL) при попытке решить по-настоящему сложные задачи «в лоб».

Решение — Curriculum Learning для RL: метод, при котором агент обучается не сразу на финальной сложной задаче, а проходит продуманную последовательность задач, от простых к трудным. Этот принцип лежит в основе самых громких достижений RL-систем последнего десятилетия.


Что такое Curriculum Learning в RL и зачем он нужен

Обучение с подкреплением — популярная парадигма для решения задач последовательного принятия решений, однако, несмотря на прогресс за три десятилетия, обучение во многих предметных областях всё ещё требует огромного числа взаимодействий со средой, что может быть непозволительно дорого в реальных сценариях.

Чтобы преодолеть это ограничение, ряд исследований изучает, как задачи или сами образцы данных можно выстроить в учебную программу (curriculum) с целью обучить агента тому, что в ином случае было бы слишком сложно освоить с нуля.

ℹ Ключевое определение
Curriculum Learning (CL) в RL — это класс методов, которые модифицируют распределение данных (задач, состояний, окружений), с которыми сталкивается агент, выстраивая их в порядке возрастающей сложности для ускорения и стабилизации обучения.

Методы 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 через асимметричную самоигру. Два агента, Алиса и Боб, играют в одну и ту же задачу с разными целями: Алиса бросает вызов Бобу, предлагая ему достичь нужного состояния, а Боб пытается выполнить это как можно быстрее.

📝 Self-play в деле
Именно благодаря self-play AlphaGo достиг сверхчеловеческого уровня в Go. Агент начинал игры с самим собой на ранних этапах обучения и постепенно совершенствовался, всегда получая оптимально трудного соперника — самого себя.

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
💡 Ключевой принцип
Self-Paced RL не даёт агенту «перепрыгнуть» к задачам, к которым он не готов. KL-дивергенция между текущим и новым распределением задач ограничена, что обеспечивает плавный и стабильный прогресс.

Реальные применения: от 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.

⚠ Практические сложности
Как измерить «сложность» задачи? Для большинства реальных задач нет очевидной метрики сложности. Разработчику придётся самому решать: использовать reward агента, вероятность успеха, энтропию политики или что-то иное. Неправильный выбор метрики ломает весь curriculum.

На практике большинство 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 для этой задачи?»