Почему DQN называют value-based и off-policy, PPO — on-policy policy-based, а SAC — off-policy actor-critic? И почему AlphaZero обычно относят к model-based-методам, хотя он тоже использует нейронные сети политики и ценности?
Эти термины описывают разные стороны одного алгоритма. Они отвечают на вопросы о том, что именно обучается, откуда берутся данные, используется ли модель среды и каким образом выбирается действие. Если не разделять эти вопросы, таксономия RL действительно выглядит как длинный список несвязанных аббревиатур.
В этой статье я соберу основные методы обучения с подкреплением на одной карте: от динамического программирования, Q-learning и DQN до PPO, SAC, MCTS и Dreamer. Я также сделал интерактивную карту по всем методам и рассказал о каждом из них в своём хэндбуке по Reinforcement Learning: rl-handbook.com.
Важно уточнить, что хэндбук это мой личный некоммерческий проект, который я развиваю в свободное время. Он не связан с коммерческими курсами, школой или компанией: все материалы доступны бесплатно, а сам проект открыт для исправлений, дополнений и обсуждения. Поэтому любой фидбек, контрибьют или звёздочка на гитхабе проекта очень приветствуется.
Зачем вообще нужна таксономия
Слова вроде «on-policy», «actor-critic» или «model-based» описывают не второстепенные детали реализации. За каждым термином стоит определённый компромисс:
сколько данных нужно собрать из реальной среды;
что именно обучается — функцию ценности, политику или модель среды;
можно ли повторно использовать старый опыт;
подходит ли алгоритм для дискретных или непрерывных действий;
где выполняется основная работа — во время обучения или при выборе действия.
Если смотреть только на названия алгоритмов, эти различия легко потерять. Если смотреть на оси, становится понятнее, почему DQN и SAC устроены по-разному и почему PPO нельзя считать просто «улучшенным Q-learning».
Первая ось: model-free и model-based
Самое фундаментальное разделение проходит по наличию явной модели среды.
Model-free
Model-free-алгоритм учится непосредственно на переходах, полученных при взаимодействии со средой. Он не пытается явно построить функцию, которая предсказывает следующий переход:
Вместо этого алгоритм сразу оценивает ценность действий или оптимизирует политику. DQN, PPO, TD3 и SAC относятся к model-free-методам, хотя внутри они используют разные объекты и режимы обучения.
Преимущество такого подхода — относительная простота. Агенту не нужно сначала научиться моделировать всю среду. Недостаток — низкая эффективность выборки: для каждого обновления нужно получать новые или сохранённые реальные переходы, а ошибки в данных нельзя заменить хорошим планированием.
Model-based
Model-based-алгоритм использует модель среды — заданную заранее или обученную по данным. Модель позволяет отвечать на вопрос: «Что произойдёт, если выполнить это действие?» ещё до взаимодействия с настоящей средой.
Это даёт два основных сценария.
Планирование при выборе действия. Агент строит несколько возможных будущих траекторий и выбирает действие на основании этого поиска. Так работают MCTS, AlphaZero и MuZero. В настольных играх модель особенно удобна: правила игры известны точно, а симуляция партии практически бесплатна.
Генерация синтетического опыта. Модель создаёт искусственные переходы, на которых затем обучается policy или value function. Классический пример — Dyna. Более современные примеры — MBPO и Dreamer. В этом случае реальное взаимодействие используется для обучения модели, а затем модель помогает получить дополнительные данные.
Основной риск model-based-подхода — model bias. Если модель ошибается, агент может научиться эффективной политике для неправильной среды. Поэтому короткие rollout и регулярная проверка на реальных переходах часто оказываются важнее, чем максимально длинное планирование.
Вторая ось: что именно обучается
Внутри model-free-методов полезно спросить: какой объект алгоритм пытается выучить?
Value-based методы
Value-based-алгоритмы обучают функцию ценности. Чаще всего это action-value function:
Политика при этом задаётся неявно: в простейшем случае агент выбирает действие с максимальным значением:
Такой способ особенно удобен в дискретных пространствах действий. В Atari-среде сеть может выдать одно значение для каждой кнопки или комбинации кнопок, после чего достаточно выбрать максимум.
Основная линия развития выглядит так:
Dynamic programming — точные обновления Беллмана при известной модели.
Monte Carlo и temporal-difference learning — оценка ценности по sampled transitions.
Sarsa и Q-learning — переход от оценки к управлению.
DQN — приближение Q-функции нейронной сетью.
Double DQN, Prioritized Replay, Dueling и Rainbow — исправления и расширения DQN.
У value-based-подхода есть важное ограничение: действие должно быть возможным перебрать или оптимизировать достаточно дёшево. Для непрерывного управления роботом поиск
сам становится отдельной сложной задачей.
Policy-based методы
Policy-based-алгоритмы параметризуют политику напрямую. Стохастическая политика задаёт распределение действий:
а детерминированная политика непосредственно возвращает действие:
Вместо того чтобы сначала оценивать все действия и брать максимум, алгоритм учит саму стратегию поведения. Для стохастической политики центральной является идея policy gradient: повышать вероятность действий, которые привели к большому return, и понижать вероятность неудачных действий.
REINFORCE — наиболее прямой пример такого подхода. Он дожидается завершения эпизода, вычисляет return и использует его как обучающий сигнал. Метод концептуально прост, но оценки градиента могут иметь высокую дисперсию.
Actor-critic
На практике policy-based-методы часто используют архитектуру actor-critic.
Actor — политика, которая выбирает действия.
Critic — функция ценности, которая оценивает состояния или действия и помогает актору понять, насколько хорошим было решение.
Actor-critic — это не отдельная третья ось, полностью отделённая от value-based и policy-based методов. Это комбинация двух ролей. A2C, A3C, TRPO и PPO используют её в on-policy-режиме. DDPG, TD3 и SAC используют actor-critic вместе с replay buffer и off-policy-обучением.
Именно поэтому выражение «actor-critic» само по себе недостаточно, чтобы понять алгоритм. Нужно дополнительно спросить:
какие данные получает critic;
является ли actor стохастическим или детерминированным;
используется ли replay buffer;
ограничивается ли величина обновления политики.
Третья ось: on-policy и off-policy
Эта ось описывает источник данных.
On-policy
On-policy-алгоритм обучается на данных, полученных текущей политикой или её очень свежей копией. После обновления политики старые rollout обычно выбрасываются.
К этой группе относятся REINFORCE, A2C, A3C, TRPO и PPO.
Плюс on-policy-подхода — согласованность между политикой, которая собирает данные, и политикой, которую мы обновляем. Это упрощает анализ и позволяет аккуратно контролировать изменение поведения. Минус — данные используются мало раз: после нескольких обновлений их приходится собирать заново.
Off-policy
Off-policy-алгоритм может обучаться на данных, собранных другой политикой. Это могут быть старые версии самого агента, случайная политика или демонстрации человека.
Q-learning, DQN, DDPG, TD3 и SAC используют off-policy-обучение. Обычно переходы складываются в replay buffer, откуда алгоритм многократно выбирает мини-батчи.
Главное преимущество — sample efficiency. Один реальный переход может участвовать во множестве обновлений. Но старые данные отличаются от распределения, которое создаёт текущая политика, поэтому появляются дополнительные источники нестабильности и смещения.
Важно не путать off-policy с model-based. Эти термины отвечают на разные вопросы:
model-based/model-free — есть ли у агента явная модель среды;
on-policy/off-policy — чьей политикой собраны обучающие данные.
Например, SAC — model-free off-policy actor-critic. А Dreamer — model-based-метод, который обучается по воображаемым rollout в скрытой модели мира. Эти классификации не конкурируют между собой, а описывают разные свойства алгоритма.
Четвёртая ось: дискретные и непрерывные действия
Пространство действий сильно влияет на выбор алгоритма.
В дискретной среде агент выбирает один вариант из конечного множества: повернуть налево, направо или продолжить движение. Здесь естественно работают DQN и его варианты.
В непрерывной среде действие может быть вещественным вектором: момент силы для каждого сустава робота, угол поворота или управляющий сигнал. В такой постановке прямой перебор действий неудобен, поэтому часто используют policy-based actor-critic: DDPG, TD3, SAC и PPO.
Это не абсолютное правило. Существуют value-based-методы для непрерывного управления и policy-based-методы для дискретных действий. Но пространство действий объясняет, почему одни семейства стали стандартом в Atari, а другие — в MuJoCo и робототехнике.
Как складываются основные семейства
Удобно держать в голове следующую компактную карту:
Семейство |
Явная модель |
Что обучается |
Данные |
Типичные примеры |
|---|---|---|---|---|
Dynamic programming |
Да, известная |
|
Вычисления по модели |
Value iteration, policy iteration |
Value-based model-free |
Нет |
Реальные переходы, часто replay |
Sarsa, Q-learning, DQN, Rainbow |
|
On-policy policy-based |
Нет |
Политика, часто |
Свежие rollout |
REINFORCE, A2C, TRPO, PPO |
Off-policy actor-critic |
Нет |
Actor и |
Replay buffer |
DDPG, TD3, SAC |
Model-based planning |
Да |
План, иногда policy/value |
Поиск по модели |
MCTS, AlphaZero, MuZero |
Model-based learning |
Да или обучается |
Модель и policy/value |
Реальные и синтетические переходы |
Dyna, MBPO, Dreamer |
Таблица упрощает картину, но не должна восприниматься как строгая классификация. Например, AlphaZero использует и policy network, и value network, но обычно его относят к model-based planning из-за центральной роли MCTS. PPO использует policy gradient, но практически всегда объясняется через actor-critic и advantage estimation.
Как читать название алгоритма
Попробуем разложить несколько известных методов по этим координатам.
DQN
Deep Q-Network — value-based, model-free, off-policy-алгоритм для дискретных действий. Он приближает Q-функцию нейронной сетью и использует replay buffer. Политика получается через -greedy-выбор.
PPO
Proximal Policy Optimization — model-free, policy-based, on-policy-алгоритм. Обычно он реализуется как actor-critic: actor обновляется через clipped objective, а critic оценивает value function. PPO не использует replay buffer со старыми данными так, как это делает DQN или SAC.
SAC
Soft Actor-Critic — model-free, off-policy actor-critic для непрерывного управления. Он использует replay buffer, Q-критики и стохастического актора. Дополнительный entropy term поощряет сохранение нескольких перспективных вариантов действий, а не слишком раннее схождение к одному поведению.
Dreamer
Dreamer — model-based actor-critic. Алгоритм обучает скрытую модель мира, а затем улучшает actor и critic на imagined trajectories внутри этой модели. В реальную среду он обращается для получения данных, но значительная часть обучения происходит в латентном пространстве.
В каком порядке изучать RL
Таксономия полезна не только для классификации уже известных алгоритмов. Она задаёт маршрут обучения.
Начать с MDP, reward, value function и уравнения Беллмана.
Изучить bandits, Monte Carlo и temporal-difference learning.
Перейти к Sarsa и Q-learning, чтобы увидеть различие on-policy и off-policy на простом примере.
Разобрать DQN и причины, по которым нейронная аппроксимация делает обучение нестабильным.
Изучить policy gradient, REINFORCE и actor-critic.
Сравнить PPO с DDPG, TD3 и SAC — это хорошо показывает различие on-policy и off-policy policy-based методов.
После этого переходить к Dyna, model predictive control, AlphaZero, MuZero, MBPO и Dreamer.
Такой порядок не означает, что model-based-методы «лучше» или что value-based-ветка является обязательным введением для любой задачи. Он просто помогает сначала освоить базовые объекты, а затем увидеть, какие части алгоритма меняются при переходе к другой оси.
Что важно запомнить
У любого алгоритма RL полезно задать четыре вопроса:
Есть ли у агента явная модель среды?
Что он обучает — value function, policy или actor-critic?
Использует ли он только свежие данные или replay buffer?
Как устроено пространство действий?
Ответы на эти вопросы обычно дают больше информации, чем само название алгоритма. DQN и SAC могут выглядеть как два варианта глубокого RL, но находятся в разных точках карты. PPO и TRPO используют общую policy-based основу, но по-разному ограничивают обновление политики. AlphaZero и Dreamer оба model-based, однако один планирует поиском во время выбора действия, а другой обучается на воображаемых rollout.
Спасибо, что прочитали статью, надеюсь был полезен!