В рамках шестой лекции курса CS224R Стэнфордского университета, опубликованной платформой Stanford Online, подробно разбирается классический алгоритм Q-обучения (Q-Learning) и его глубокая модификация DQN. Преподаватель объясняет, как обучать агентов принимать оптимальные решения без явного моделирования нейросетевой стратегии (policy). В материале рассматриваются как теоретические основы уравнений Беллмана, так и практические инженерные приемы, сделавшие глубокое обучение с подкреплением стабильным и применимым в реальных задачах.
🔄 Повторение основ: от градиентов стратегии к оценке ценности 0:05
Лекция начинается с краткого повторения пройденного материала, связанного с функциями ценности (Value functions) и Q-функциями. Эти функции представляют собой математическое ожидание будущих наград, которые агент получит, начиная с определенного состояния. Функция ценности $V^\pi(s)$ оценивает ожидаемый доход при условии, что агент следует фиксированной стратегии $\pi$. В свою очередь, Q-функция $Q^\pi(s, a)$ показывает ожидаемую награду, если агент сначала совершит конкретное действие $a$, а уже затем продолжит следовать стратегии $\pi$.
Ранее в курсе изучались методы градиента стратегии (Policy Gradients), где сбор данных чередуется с улучшением стратегии путем максимизации логарифмического правдоподобия хороших действий. Для уменьшения дисперсии из наград вычитается базовая линия (baseline). Затем были введены методы актор-критик (Actor-Critic), добавляющие этап оценки ожидаемой награды, что позволяет эффективнее корректировать поведение агента.
В рамках off-policy подхода актор-критика, разобранного на прошлой лекции, критику необходимо оценивать Q-функцию на основе архивных данных, используя нейросеть, принимающую на вход состояние и действие. Рекурсивное определение Q-функции позволяет использовать прошлые пары состояний и действий для аппроксимации. Для этого из буфера воспроизведения (replay buffer) извлекаются кортежи, а целевые значения для обучения с учителем рассчитываются на основе текущей оценки Q-функции. При этом лектор напоминает, что для точности целевых значений датасет должен обеспечивать достаточное покрытие действий новой стратегии.
🧩 Мысленный эксперимент: жадное поведение без явной стратегии 4:26
Для демонстрации связи между Q-функциями и стратегиями лектор предлагает мысленный эксперимент. Предположим, у нас есть качественная оценка Q-функции для некоторой базовой стратегии. Вместо того чтобы следовать старой стратегии, мы можем сформировать новую, детерминированную стратегию, которая всегда выбирает действие, максимизирующее текущее значение Q-функции. Вероятность выбора такого действия будет равна 1, а всех остальных — 0.
В качестве примера рассматривается задача двумерной навигации, где агент стартует в синем квадрате и должен добраться до цели-звезды. Награда выдается только в точке цели (равна 1), в остальных местах она нулевая. Текущая базовая стратегия агента предписывает всегда двигаться вправо. Шаг вверх занимает один временной шаг, шаг вправо — два шага. Если мы построим новую жадную стратегию на основе Q-функции, будет ли она оптимальной?
Как показывает разбор примера, новая стратегия окажется лучше старой, но не станет сразу оптимальной для всего пространства состояний. В строке, где находится цель, ценность $V^\pi$ равна 1. Для строки ниже действие «вверх» дает Q-значение, равное 1, так как после этого шага агент попадает на траекторию старой стратегии и достигает цели. Однако для самой нижней строки все Q-значения останутся нулевыми, поскольку переход из нее не пересекается с успешным опытом старой стратегии. Следовательно, в этих состояниях новая стратегия по умолчанию продолжит двигаться вправо и не найдет путь наверх.
По словам лектора, для достижения полной оптимальности этот процесс необходимо применять итеративно, пересчитывая Q-функцию для обновленной стратегии на каждом шаге. При наличии фактора дисконтирования ($\gamma < 1$), например 0.9, значения Q-функции плавно затухали бы по мере удаления от цели (1.0, 0.9, 0.8 и т.д.), что упростило бы навигацию. В случае использования плотной функции наград (например, отрицательного расстояния до цели) оптимальная стратегия могла бы сформироваться даже за один шаг.
📐 Уравнения Беллмана и концепция Policy Iteration 12:43
Описанный итеративный подход доказывает, что жадная стратегия на основе точной Q-функции всегда будет не хуже (а зачастую лучше) предыдущей стратегии. Это наталкивает на мысль полностью отказаться от явного параметрического моделирования стратегии нейросетью и обучать только модель Q-функции. Такой двухэтапный процесс называется итерацией стратегии (Policy Iteration).
Процедура включает в себя следующие шаги:
- Сбор данных с помощью текущей или исследовательской стратегии.
- Оценка Q-функции (Policy Evaluation) с помощью минимизации ошибки обучения с учителем.
- Улучшение стратегии (Policy Improvement) через неявное определение детерминированного жадного поведения.
Математической основой этого процесса служат уравнения Беллмана. Базовое уравнение Беллмана описывает рекурсивную связь для фиксированной стратегии:
$$Q^\pi(s, a) = R(s, a) + \gamma \mathbb{E}_{s' \sim P}[V^\pi(s')]$$
Для поиска оптимального поведения используется уравнение оптимальности Беллмана (Bellman optimality equation), в котором математическое ожидание по следующему действию заменяется операцией максимизации:
$$Q^(s, a) = R(s, a) + \gamma \mathbb{E}{s' \sim P}\left[\max{a'} Q^(s', a')\right]$$
По мнению лектора, именно использование Q-функции вместо функции ценности состояний $V(s)$ является ключевым для безмодельного обучения (Model-Free RL). Знание $Q(s, a)$ позволяет мгновенно извлечь наилучшее действие через операцию $\arg\max$. Если бы мы знали только $V(s)$, нам потребовалось бы строить модель динамики среды для предсказания следующего состояния $s'$, что значительно усложняет алгоритм.
Говоря о сходимости алгоритма Q-learning, лектор отмечает двойственную ситуацию. С одной стороны, в табличном случае (когда все состояния и действия дискретны и помещаются в таблицу) при условии полного исследования среды сходимость к оптимуму математически гарантирована. С другой стороны, при использовании аппроксиматоров (например, нейросетей) алгоритм может расходиться даже в простых линейных сценариях, хотя на практике его можно стабилизировать.
🗺️ Стратегии исследования среды: Epsilon-Greedy и розетта Больцмана 28:58
Поскольку Q-обучение является off-policy методом, уравнение оптимальности Беллмана справедливо для любых состояний и действий, независимо от того, какая стратегия использовалась для их сбора. Однако лектор подчеркивает опасность сбора данных сугубо детерминированной жадной стратегией: без разнообразия действий алгоритм не сможет адекватно оценить альтернативные варианты в операции максимизации. Если какое-то действие не было исследовано, его Q-значение из-за ошибок аппроксимации нейросети может оказаться ошибочно завышенным, что испортит целевые метрики.
Для решения проблемы охвата данных применяются специальные исследовательские стратегии (exploration policies):
- $\epsilon$-жадная стратегия ($\epsilon$-greedy): с малой вероятностью $\epsilon$ агент выбирает абсолютно случайное действие, а с вероятностью $1 - \epsilon$ следует текущему жадному выбору. Лектор рекомендует уменьшать параметр $\epsilon$ по ходу обучения, снижая интенсивность разведки по мере улучшения модели.
- Больцмановское исследование (Boltzmann exploration): вероятность выбора действия пропорциональна экспоненте его Q-значения. Это позволяет чаще выбирать многообещающие действия и реже — заведомо проигрышные.
Отвечая на вопросы студентов о непрерывных средах, лектор поясняет, что в непрерывном пространстве действий операция $\max$ становится сложной оптимизационной задачей. В таких случаях вместо точного перебора применяют методы случайного сэмплирования действий с последующим выбором наилучшего значения или оптимизацию на основе гауссовского распределения.
🏎️ Алгоритм DQN и стабилизация обучения с помощью целевых сетей 33:52
Объединяя все компоненты, мы получаем классический алгоритм Q-learning. Агент взаимодействует со средой, записывая переходы в буфер воспроизведения (replay buffer). Затем из буфера равномерно сэмплируется батч данных, что позволяет разрушить временные корреляции и получить независимые одинаково распределенные (IID) выборки. Параметры Q-сети обновляются по градиенту L2-потери относительно целевого значения:
$$y_i = r_i + \gamma \max_{a'} Q(s'_i, a'; \phi)$$
На практике обучение глубоких Q-сетей (DQN), предложенное в 2013 году для игры на платформе Atari напрямую по пикселям, сталкивается с жесткой нестабильностью. Главная причина — феномен «движущейся цели» (moving target). Поскольку одни и те же параметры $\phi$ используются и для предсказания текущего значения, и для вычисления целевого значения $y_i$, каждый шаг градиентного спуска сдвигает саму цель, делая оптимизацию нестационарной.
Для стабилизации применяется метод целевой сети (Target Network). Вводится копия параметров $\phi'$, которая замораживается на фиксированное число шагов (например, 100 градиентных итераций). В этот период внутренний цикл превращается в классическое и стабильное обучение с учителем.
Полезный практический совет от лектора: при обучении DQN значение функции потерь (loss) нередко растет, а не падает. Это нормально и связано с тем, что агент находит новые состояния с более высокими наградами, что увеличивает общий масштаб Q-значений, поэтому пугаться растущего лосса не стоит. Буфер воспроизведения обычно организуется по принципу FIFO (первым пришел — первым ушел), постепенно вытесняя устаревшие данные.
⚖️ Борьба с переоценкой: Double DQN и многошаговые возвраты 44:27
Несмотря на введение целевых сетей, стандартный DQN страдает от систематической переоценки (overestimation bias) Q-значений. Если сопоставить предсказанные моделью значения с реальной доходностью (returns) на играх Breakout или Seaquest, обнаруживается огромный разрыв: предсказания стабильно завышены.
Причина кроется в математической природе операции $\max$. Мы ищем действие, максимизирующее Q-функцию, и оцениваем его с помощью той же самой зашумленной функции:
$$\max_{a'} Q(s', a'; \phi') = Q\left(s', \arg\max_{a'} Q(s', a'; \phi'); \phi'\right)$$
Любой случайный положительный шум в оценках нейросети незамедлительно эксплуатируется оператором максимума, раздувая итоговый таргет. Алгоритм Double DQN решает эту проблему за счет разделения источников шума: текущая сеть $\phi$ выбирает наилучшее действие, а замороженная целевая сеть $\phi'$ оценивает его ценность:
$$y_i^{DDQN} = r_i + \gamma Q\left(s'i, \arg\max{a'} Q(s'_i, a'; \phi); \phi'\right)$$
Поскольку шумы двух сетей декоррелированы, систематическая переоценка резко снижается, что значительно улучшает качество итоговой стратегии.
Еще один способ улучшить сходимость — использование многошаговых возвратов (n-step returns). Вместо бутстрапирования на первом же шаге, мы суммируем реальные награды за $n$ шагов вперед и добавляем дисконтированный максимум Q-функции для состояния $s_{t+n}$. Это снижает смещение (bias) на ранних этапах обучения, когда Q-сеть еще слаба.
Однако лектор указывает на фундаментальный недостаток: промежуточные награды собираются старой исследовательской стратегией из буфера, а не оптимальной, которую мы пытаемся оценить. На практике, по словам лектора, этот теоретический дефект часто игнорируют, так как n-step возвраты всё равно эмпирически улучшают результаты, но для строгой корректности приходится ограничивать $n$ или применять важностное сэмплирование (importance sampling).
🤖 Практическое применение и выбор алгоритма: PPO, DQN и SAC 58:02
В завершение лекции преподаватель демонстрирует успехи Q-обучения в реальных задачах. Помимо превосходства над человеческим уровнем в играх Atari, алгоритм успешно адаптирован для управления физическими роботами. Например, в задаче роботизированного захвата предметов (grasping) Q-обучение позволило достичь 96% успешных попыток. Невзирая на непрерывную среду, робот научился совершать сложные корректирующие движения вокруг объектов перед захватом.
Лектор дает ценные рекомендации по выбору алгоритмов для практических задач глубокого обучения с подкреплением:
- PPO (Proximal Policy Optimization): идеальный выбор, если в приоритете стабильность и простота использования. Он практически не требует тонкой настройки гиперпараметров, но крайне неэффективен с точки зрения расхода данных (data inefficient).
- DQN (Deep Q-Network): отлично подходит для задач с дискретными действиями или низкоразмерными непрерывными пространствами. Обладает умеренной эффективностью использования данных.
- SAC (Soft Actor-Critic): лучший вариант, когда критически важна максимальная эффективность данных (например, при обучении реальных роботов). Однако SAC требует кропотливой настройки гиперпараметров и менее стабилен, чем DQN.