Почему 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-алгоритм учится непосредственно на переходах, полученных при взаимодействии со средой. Он не пытается явно построить функцию, которая предсказывает следующий переход:

(s_t, a_t) \longmapsto (s_{t+1}, r_t).

Вместо этого алгоритм сразу оценивает ценность действий или оптимизирует политику. 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:

Q^\pi(s,a) = \mathbb{E}_\pi\left[\sum_{k=0}^{\infty} \gamma^k r_{t+k} \mid s_t=s, a_t=a\right].

Политика при этом задаётся неявно: в простейшем случае агент выбирает действие с максимальным значением:

a_t = \arg\max_a Q(s_t,a).

Такой способ особенно удобен в дискретных пространствах действий. В Atari-среде сеть может выдать одно значение для каждой кнопки или комбинации кнопок, после чего достаточно выбрать максимум.

Основная линия развития выглядит так:

  1. Dynamic programming — точные обновления Беллмана при известной модели.

  2. Monte Carlo и temporal-difference learning — оценка ценности по sampled transitions.

  3. Sarsa и Q-learning — переход от оценки к управлению.

  4. DQN — приближение Q-функции нейронной сетью.

  5. Double DQN, Prioritized Replay, Dueling и Rainbow — исправления и расширения DQN.

У value-based-подхода есть важное ограничение: действие должно быть возможным перебрать или оптимизировать достаточно дёшево. Для непрерывного управления роботом поиск

\arg\max_a Q(s,a)

сам становится отдельной сложной задачей.

Policy-based методы

Policy-based-алгоритмы параметризуют политику напрямую. Стохастическая политика задаёт распределение действий:

\pi_\theta(a \mid s),

а детерминированная политика непосредственно возвращает действие:

\mu_\theta(s).

Вместо того чтобы сначала оценивать все действия и брать максимум, алгоритм учит саму стратегию поведения. Для стохастической политики центральной является идея policy gradient: повышать вероятность действий, которые привели к большому return, и понижать вероятность неудачных действий.

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

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

Да, известная

V, Q или политика

Вычисления по модели

Value iteration, policy iteration

Value-based model-free

Нет

Q(s,a)

Реальные переходы, часто replay

Sarsa, Q-learning, DQN, Rainbow

On-policy policy-based

Нет

Политика, часто V(s)

Свежие rollout

REINFORCE, A2C, TRPO, PPO

Off-policy actor-critic

Нет

Actor и Q(s,a)

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

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

  1. Начать с MDP, reward, value function и уравнения Беллмана.

  2. Изучить bandits, Monte Carlo и temporal-difference learning.

  3. Перейти к Sarsa и Q-learning, чтобы увидеть различие on-policy и off-policy на простом примере.

  4. Разобрать DQN и причины, по которым нейронная аппроксимация делает обучение нестабильным.

  5. Изучить policy gradient, REINFORCE и actor-critic.

  6. Сравнить PPO с DDPG, TD3 и SAC — это хорошо показывает различие on-policy и off-policy policy-based методов.

  7. После этого переходить к Dyna, model predictive control, AlphaZero, MuZero, MBPO и Dreamer.

Такой порядок не означает, что model-based-методы «лучше» или что value-based-ветка является обязательным введением для любой задачи. Он просто помогает сначала освоить базовые объекты, а затем увидеть, какие части алгоритма меняются при переходе к другой оси.

Что важно запомнить

У любого алгоритма RL полезно задать четыре вопроса:

  1. Есть ли у агента явная модель среды?

  2. Что он обучает — value function, policy или actor-critic?

  3. Использует ли он только свежие данные или replay buffer?

  4. Как устроено пространство действий?

Ответы на эти вопросы обычно дают больше информации, чем само название алгоритма. DQN и SAC могут выглядеть как два варианта глубокого RL, но находятся в разных точках карты. PPO и TRPO используют общую policy-based основу, но по-разному ограничивают обновление политики. AlphaZero и Dreamer оба model-based, однако один планирует поиском во время выбора действия, а другой обучается на воображаемых rollout.

Спасибо, что прочитали статью, надеюсь был полезен!

Комментарии (0)