Q-learning учится на отдельных переходах, не зная таблицу вероятностей среды. Actor–critic решает другую задачу разделением труда: actor меняет поведение, critic оценивает, оказалось ли действие лучше ожидания.

Один переход вместо полной модели

В марковском процессе решений итерация ценности использовала сумму по всем ss' с известными P(ss,a)P(s'\mid s,a). Робот в настоящем коридоре такой таблицы не имеет. Он видит один опыт:

(st,at,rt+1,st+1).(s_t,a_t,r_{t+1},s_{t+1}).

Q-learning строит оценку оптимальной ценности действия. Беллмановская цель для наблюдаемого перехода

yt=rt+1+γmaxaQ(st+1,a).y_t=r_{t+1}+\gamma\max_{a'}Q(s_{t+1},a').

Ошибка временной разности

δt=ytQ(st,at)\delta_t=y_t-Q(s_t,a_t)

обновляет ячейку:

Q(st,at)Q(st,at)+αtδt.Q(s_t,a_t)\leftarrow Q(s_t,a_t)+\alpha_t\delta_t.

Если переход оказался лучше текущего ожидания, δt>0\delta_t>0 и ценность растёт. Если хуже — падает. Мы подставляем одну случайную реализацию вместо математического ожидания, поэтому обновления шумны, но в среднем направлены к уравнению Беллмана.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Цепочка состояний с наградами и последовательными обновлениями ценности
Рис. 71.1. TD-ошибка переносит новость назад

Цель впервые достигнута справа. В первом эпизоде положительная TD-ошибка возникает у последнего перехода; в следующих эпизодах сигнал распространяется к более ранним состояниям. Толщина стрелок соответствует Q(s,a)Q(s,a), цвет — знаку последнего обновления.

Off-policy: действуем одним правилом, учим другое

Поведение может быть ε\varepsilon-жадным, но цель содержит maxaQ(s,a)\max_{a'}Q(s',a'). Поэтому Q-learning оценивает жадную target-policy, хотя данные собраны исследующей behavior-policy. Это называется off-policy.

SARSA использует реально выбранное следующее действие:

Q(st,at)Q(st,at)+α[rt+1+γQ(st+1,at+1)Q(st,at)].Q(s_t,a_t)\leftarrow Q(s_t,a_t)+ \alpha\left[ r_{t+1}+\gamma Q(s_{t+1},a_{t+1})-Q(s_t,a_t) \right].

В опасной сетке разница видима. Q-learning оценивает идеальное жадное продолжение и может выбрать путь рядом с обрывом. SARSA учитывает, что ε\varepsilon-исследование иногда сделает случайный шаг, поэтому предпочитает запас безопасности.

Исследование нельзя выключить слишком рано

Жадная policy

π(s)=argmaxaQ(s,a)\pi(s)=\arg\max_a Q(s,a)

использует текущие знания, но не исправляет неизвестные ячейки. ε\varepsilon-greedy случайно исследует действия. Для теоретической сходимости табличного Q-learning нужны убывающие шаги и бесконечные посещения всех пар (s,a)(s,a):

tαt(s,a)=,tαt2(s,a)<.\sum_t\alpha_t(s,a)=\infty,\qquad \sum_t\alpha_t^2(s,a)<\infty.

В конечном опыте это превращается в инженерный компромисс. Быстрое уменьшение ε\varepsilon фиксирует ранние ошибки; постоянное ε\varepsilon не даёт policy успокоиться. Можно отдельно оценивать поведение без исследования.

Лаборатория Q и critic

TD-ошибка, critic и шум стратегии

Загружается живая иллюстрация…

В табличном режиме следите, как положительная награда распространяется назад. Поменяйте α\alpha: слишком малая делает обучение медленным, слишком большая заставляет таблицу повторять последний шумный опыт.

В режиме actor–critic зафиксируйте одну траекторию и сравните знак advantage с изменением вероятности действия. Затем увеличьте шум critic. Actor начинает усиливать случайные действия, потому что принимает ошибку оценки за свидетельство.

От таблицы к функции

Для изображения или непрерывного состояния таблица невозможна. Заменим её нейросетью Qθ(s,a)Q_\theta(s,a) и минимизируем

L(θ)=E[(r+γmaxaQθˉ(s,a)Qθ(s,a))2].\mathcal L(\theta)= \mathbb E\left[ \bigl(r+\gamma\max_{a'}Q_{\bar\theta}(s',a') -Q_\theta(s,a)\bigr)^2 \right].

Target-сеть с параметрами θˉ\bar\theta обновляется медленнее основной, а replay buffer перемешивает прошлые переходы. Без этих приёмов цель менялась бы одновременно с предсказанием, а соседние наблюдения были бы сильно коррелированы.

Однако комбинация аппроксимации функции, bootstrap-цели и off-policy данных может расходиться. Её называют deadly triad. Нейросеть не превращает уравнение в автоматически устойчивый алгоритм.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Поток перехода через replay buffer, Q-сеть и target-сеть
Рис. 71.2. Почему DQN разделяет текущую и целевую сети

Переход из среды попадает в буфер. Текущая сеть вычисляет Qθ(s,a)Q_\theta(s,a), замороженная target-сеть — bootstrap-часть цели. Пунктирная стрелка показывает периодическое копирование параметров; отсутствие прямого градиента через target подчёркнуто знаком остановки.

Actor–critic: оценка помогает действию

Пусть actor задаёт дифференцируемую стратегию πϕ(as)\pi_\phi(a\mid s), а critic оценивает Vψ(s)V_\psi(s). TD-ошибка

δt=rt+1+γVψ(st+1)Vψ(st)\delta_t=r_{t+1}+\gamma V_\psi(s_{t+1})-V_\psi(s_t)

служит приближением advantage: насколько действие оказалось лучше обычного результата из sts_t. Обновление actor имеет направление

ϕϕ+ηδtϕlogπϕ(atst).\phi\leftarrow\phi+ \eta\,\delta_t\nabla_\phi\log\pi_\phi(a_t\mid s_t).

При положительной δt\delta_t вероятность выбранного действия растёт; при отрицательной — падает. Critic обучается уменьшать квадрат TD-ошибки. Baseline V(s)V(s) не меняет ожидаемый policy gradient, но уменьшает дисперсию.

Для дискретных действий actor часто выдаёт softmax. Энтропийный бонус

H(π(s))=aπ(as)logπ(as)\mathcal H(\pi(\cdot\mid s)) =-\sum_a\pi(a\mid s)\log\pi(a\mid s)

не даёт распределению слишком рано схлопнуться. Позже идеи ограничения обновления появятся в PPO.

A2C по шагам

Один цикл advantage actor–critic:

  1. сэмплировать действие atπϕ(st)a_t\sim\pi_\phi(\cdot\mid s_t);
  2. получить rt+1,st+1r_{t+1},s_{t+1};
  3. вычислить δt\delta_t;
  4. обновить critic по δt2\delta_t^2;
  5. обновить actor по δtlogπϕ(atst)\delta_t\log\pi_\phi(a_t\mid s_t);
  6. добавить энтропийный бонус и повторить.

На практике используют несколько параллельных сред и nn-шаговые возвраты:

Gt(n)=k=0n1γkrt+k+1+γnV(st+n).G_t^{(n)}= \sum_{k=0}^{n-1}\gamma^kr_{t+k+1} +\gamma^nV(s_{t+n}).

Малое nn даёт больше bias от critic и меньше дисперсию; большое приближается к Monte Carlo и сильнее шумит. Это знакомый компромисс смещения и дисперсии.

Offline-ловушка

Предположим, есть журнал старой policy, а взаимодействовать со средой нельзя. Q-learning берёт максимум по действиям, даже если некоторые почти отсутствуют в данных. Аппроксиматор способен назначить им случайно высокие значения; bootstrap затем усиливает ошибку. Это extrapolation error.

Безопасные offline RL-методы штрафуют действия вне поддержки данных или требуют консервативных оценок. Но сначала стоит спросить, нужен ли RL: если каждое решение независимо, достаточно контекстного бандита; если есть хорошие метки результата для фиксированного действия, возможно, хватит supervised learning.

Реальный кейс: батарея здания

В CityLearn агент управляет накопителем. Состояние включает заряд, час, текущую нагрузку и погодный прогноз. Награда может штрафовать стоимость электричества и пиковую мощность. Для actor–critic действие удобно сделать непрерывным: доля максимальной мощности заряда от 1-1 до 11.

Проверка должна включать несколько погодных лет и baseline из урока о MDP. Отчёт содержит не только reward, но и:

  • стоимость и пик нагрузки;
  • число нарушений физических ограничений;
  • деградацию при ошибке прогноза;
  • разброс по seed;
  • кривые обучения и качество окончательной policy без exploration noise.
Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Траектории заряда батареи, истинный и оценённый advantage, изменение policy
Рис. 71.3. Critic ошибается — actor расплачивается

Вверху показаны тариф и заряд, в центре — истинный по симулятору advantage и оценка critic, внизу — вероятность разряда. В выделенном интервале critic меняет знак преимущества, actor усиливает неверное действие, что позже создаёт дорогой пик.

Мини-исследование: увидеть переоценку максимума

Даже если все оценки Q(s,a)Q(s',a') несмещённы, максимум шумных чисел обычно завышен:

EmaxaQ^amaxaEQ^a.\mathbb E\max_a\widehat Q_a \ge \max_a\mathbb E\widehat Q_a.

Проверьте это на одном состоянии с десятью действиями, истинная ценность каждого равна нулю, а оценка содержит независимый шум N(0,σ2)\mathcal N(0,\sigma^2). Для σ=0,1,0,5,1\sigma=0{,}1,0{,}5,1 сгенерируйте сто тысяч наборов и найдите средний максимум. Чем больше действий, тем сильнее эффект.

В Q-learning этот завышенный максимум входит в bootstrap target и может переноситься назад. Double Q-learning разделяет выбор и оценку:

y=r+γQθˉ(s,argmaxaQθ(s,a)).y=r+\gamma Q_{\bar\theta}\left( s', \arg\max_aQ_\theta(s',a) \right).

Одна сеть выбирает действие, другая оценивает его, поэтому один и тот же положительный шум реже используется дважды.

Сравните обычный и double вариант в маленьком MDP с шумными наградами. Помимо среднего возврата покажите калибровку QQ против Monte Carlo returns. Этот опыт связывает RL с ensemble и неопределённостью: высокая оценка действия может быть следствием операции максимума, а не реального преимущества.

Добавьте distributional срез. В двух действиях одинаковое среднее, но первое почти всегда даёт ноль и редко +10+10, второе стабильно даёт +1+1. Обычный QQ различает только ожидание. Если задача штрафует риск, состояние должно включать ограничение или objective должен учитывать quantile/CVaR.

Постройте empirical return distributions и покажите, почему фраза «ценность равна единице» скрывает форму исходов. В управлении батареей редкое нарушение может быть важнее малой средней экономии.

Проведите ablation replay buffer. Обучите DQN на последовательных переходах и на случайных mini-batches из того же журнала. Сравните корреляцию соседних targets, oscillation loss и final return. Затем уменьшите buffer настолько, чтобы он почти не разрушал зависимость, и увеличьте до режима, где старые данные задерживают адаптацию.

Buffer одновременно стабилизирует обучение и меняет распределение опыта. При non-stationary среде слишком длинная память становится liability. Поэтому размер связывают с временным масштабом изменения, а не выбирают как магическое число.

От перехода к устойчивой политике

Q-learning переносит уравнение Беллмана в поток наблюдаемых переходов. Actor–critic отделяет выбор действия от оценки продолжения. Оба метода учатся из собственных данных, поэтому исследование, поддержка действий и честная оценка важнее красивой финальной кривой. Стабильность нейросетевого RL достигается архитектурой эксперимента, а не одной формулой.

Задачи