Глава 2: Задача Offline RL

«Функция ценности — оптимист. При возможности она присвоит бесконечную ценность действиям, которых никогда не видела — и именно в этом заключается проблема.»


От BC к RL: что меняется

Поведенческое клонирование игнорирует награды. Оно копирует то, что делал эксперт, — а не то, чего эксперт пытался достичь.

Естественный следующий шаг: использовать сигнал награды. Если есть датасет переходов $(s, a, r, s')$, можно попытаться обучить политику, максимизирующую суммарную награду, — а не просто имитирующую наблюдаемое поведение. В этом и состоит обещание офлайн RL.

Инструмент, который делает онлайн RL рабочим — Q-обучение: учимся функции ценности $Q(s, a)$, оценивающей ожидаемую будущую награду при выборе действия $a$ в состоянии $s$, затем действуем жадно по отношению к ней.

Вопрос: можно ли применить Q-обучение к фиксированному офлайн датасету? Да — но с катастрофическим режимом отказа, требующим осторожного обращения.


Q-обучение: краткое напоминание

Q-функция удовлетворяет уравнению оптимальности Беллмана:

$$Q^{\ast}(s, a) = r(s, a) + \gamma \, \mathbb{E}_{s' \sim P(\cdot|s,a)} \left[ \max_{a'} Q^{\ast}(s', a') \right]$$

Мы обучаем $Q_\theta$, минимизируя ошибку TD (Temporal Difference):

$$\mathcal{L}_{TD}(\theta) = \mathbb{E}_{(s,a,r,s') \sim \mathcal{D}} \left[ \left( r + \gamma \max_{a'} Q_{\bar{\theta}}(s', a') - Q_\theta(s, a) \right)^{2} \right]$$

где $Q_{\bar{\theta}}$ — целевая сеть (target network): периодически обновляемая копия $Q_\theta$, используемая для стабилизации обучения.

В онлайн RL агент собирает новые переходы, действуя в среде. Когда $Q_\theta$ становится неточной в каком-то месте, агент посетит эти состояния, получит реальные награды и скорректирует оценку.

В офлайн RL датасет $\mathcal{D}$ фиксирован. Обратной связи нет.


Проблема ошибки экстраполяции

Вот в чём суть проблемы. На шаге $\max_{a'}$ в обновлении Беллмана:

$$\max_{a'} Q_{\bar{\theta}}(s', a')$$

оптимизатор перебирает все возможные действия $a'$ — включая те, которых никогда не было в датасете $\mathcal{D}$.

Для действия $a' \notin \mathcal{D}$ у Q-функции нет обучающего сигнала. Её значение в точке $(s', a')$ определяется исключительно обобщением из соседних точек — что для нейронных сетей может быть произвольно оптимистичным.

Когда обновление Беллмана берёт это завышенное $Q(s', a')$ в качестве цели, оно распространяет переоценку назад по цепочке:

$$Q(s, a) \leftarrow r + \gamma \cdot \underbrace{Q(s', a')}_{\text{завышено}}$$

Это ошибка бутстрэппинга: ошибки распространяются и усиливаются через цепочку TD-обновлений.

Конкретный пример

Предположим, наш датасет содержит переходы из химического процесса. Оператор всегда поддерживал температуру в диапазоне 380–420K. Q-функция обучена на этих состояниях.

В состоянии $s'$ вблизи границы (скажем, 419K) шаг $\max_{a'}$ может обнаружить, что Q-функция предсказывает высокую награду для OOD-действия вроде увеличить нагрев до 450K — действия, которое оператор никогда не предпринимал. Данных для опровержения этого нет. Q-функция оптимистично обобщила значения в эту область.

Обновление Беллмана затем использует это значение как цель, завышая $Q(s, 419K, \text{нагрев})$. Это распространяется назад, завышая значения в более ранних состояниях. Полученная политика будет уверенно вести процесс в опасную зону — и Q-функция будет предсказывать высокие награды на всём пути туда.

Это не граничный случай. Это поведение по умолчанию Q-обучения на офлайн данных.


Формальная оценка: разрыв в производительности

Пусть $\hat{\pi}$ — жадная политика относительно обученной Q-функции:

$$\hat{\pi}(s) = \arg\max_a Q_\theta(s, a)$$

Определим оценённую производительность $\hat{J}(\hat{\pi}) = \underset{s,a \sim d^{{\hat{\pi}}}}{\mathbb{E}}\bigl[Q_\theta(s,a)\bigr]$ — то, что Q-функция предсказывает для данной политики — и реальную производительность $J(\hat{\pi})$ — то, что политика фактически получит в среде.

Разрыв между ними ограничен сверху (приближённо, по Kumar et al., 2020):

$$\hat{J}(\hat{\pi}) - J(\hat{\pi}) \leq \frac{2\gamma}{(1-\gamma)^{2}} \underset{s \sim d^{{\hat{\pi}}}}{\mathbb{E}}\left[\max_a \left| Q_\theta(s,a) - Q^{\ast}(s,a) \right|\right]$$

Именно так правильно формулировать проблему. Левая часть — то, чего мы боимся: разрыв между обещанной и реальной наградой. Правая показывает, что его порождает: ошибка Q-функции, взятая под $d^{{\hat{\pi}}}$ — распределением состояний обученной политики, а не поведенческой.

Вот почему OOD-переоценка опасна. Во время обучения $\hat{J}(\hat{\pi})$ выглядит высокой — Q-функция оптимистична. Но этот оптимизм сосредоточен именно там, куда жадная политика стремится сама: в действиях, которых никогда не было в $\mathcal{D}$, где $\lvert Q_\theta - Q^{\ast} \rvert$ наибольшее. Правая часть bound может быть сколь угодно большой — реальная производительность может быть сколь угодно хуже оценённой.

Ключевая асимметрия: ошибка оценивается под $d^{{\hat{\pi}}}$, а не под $d^{{\pi_{\beta}}}$. Политика, остающаяся близко к поведенческой, держала бы этот член малым. Жадная политика его активно максимизирует.


Сдвиг распределения: версия для Offline RL

В главе 1 мы видели сдвиг распределения в BC: политика посещает другие состояния, чем эксперт, что приводит к накапливающимся ошибкам при предсказании действий.

В офлайн Q-обучении сдвиг распределения происходит в пространстве действий:

Жадная политика будет выбирать действия вне обучающего распределения всякий раз, когда Q-функция оптимистична там — то есть именно тогда, когда нет корректирующего обучающего сигнала.

Это иногда называют «смертельной триадой»: аппроксимация функций + бутстрэппинг + off-policy обучение. Все три присутствуют в офлайн Q-обучении.


Демонстрация на практике

📄 Полный код: extrapolation_error.py

import torch
import torch.nn as nn

class QNetwork(nn.Module):
    def __init__(self, state_dim, action_dim, hidden=128):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(state_dim + action_dim, hidden), nn.ReLU(),
            nn.Linear(hidden, hidden), nn.ReLU(),
            nn.Linear(hidden, 1),
        )
    def forward(self, s, a):
        return self.net(torch.cat([s, a], dim=-1)).squeeze(-1)


def measure_ood_overestimation(Q, dataset_actions, all_actions, state):
    """
    Сравниваем Q-значения для действий из датасета и OOD-действий.
    """
    s = state.unsqueeze(0).expand(len(all_actions), -1)

    with torch.no_grad():
        q_all     = Q(s, all_actions)
        q_in_dist = Q(
            state.unsqueeze(0).expand(len(dataset_actions), -1),
            dataset_actions
        )

    print(f"Действия из датасета     | Q mean: {q_in_dist.mean():.3f}, max: {q_in_dist.max():.3f}")
    print(f"Все действия (+ OOD)     | Q mean: {q_all.mean():.3f},     max: {q_all.max():.3f}")
    print(f"Коэф. переоценки OOD     : {q_all.max().item() / q_in_dist.max().item():.2f}x")

Результат после обучения vanilla Q-learning на датасете с действиями в [-0.5, 0.5] при пространстве действий [-2, 2]:

Действия из датасета     | Q mean: 0.412, max: 0.731
Все действия (+ OOD)     | Q mean: 0.893, max: 3.847
Коэф. переоценки OOD     : 5.26x

Q-функция присваивает значения, в 5 раз превышающие максимальное в датасете, действиям, которых никогда не видела. Жадная политика уверенно выберет именно их.


Ключевое противоречие

Вся офлайн RL сводится к следующему напряжению:

Цель Ограничение
Максимизировать награду → эксплуатировать Q-функцию Q-функция ненадёжна для OOD-действий
Держаться близко к поведенческой политике Поведенческая политика может быть субоптимальной

Слишком консервативно → политика = BC (нет улучшения над поведением) Слишком агрессивно → политика эксплуатирует ошибки Q-функции (катастрофический отказ)

Пространство решений делится на два семейства:

Методы ограничения политики — ограничивают обученную политику, удерживая её близко к $\pi_{\beta}$:

$$\pi^{\ast} = \arg\max_\pi \mathbb{E}_{s \sim \mathcal{D}} \left[ Q(s, \pi(s)) \right] \quad \text{s.t.} \quad D(\pi \,\|\, \pi_{\beta}) \leq \epsilon$$

Примеры: TD3+BC, BEAR, BCQ.

Методы пессимизма по значениям — вместо ограничения политики, делают Q-значения пессимистичными для OOD-действий:

$$Q^{\ast} = \arg\min_Q \mathcal{L}_{TD}(Q) + \alpha \cdot \mathbb{E}_{s \sim \mathcal{D}, a \sim \pi} \left[ Q(s,a) \right]$$

Интуиция: если OOD Q-значения искусственно занижены, жадная политика естественным образом предпочтёт действия из распределения данных.

Это подход CQL (глава 4) и IQL (глава 5).

Ландшафт алгоритмов Offline RL

Помимо пессимизма по значениям, широко используются ещё два семейства. В этой книге подробно разобраны value-based (CQL, IQL) и модельные (глава 8) методы; ниже — краткая карта.

Методы с ограничением политики и Actor-Critic удерживают обученную политику близко к поведенческой — явными ограничениями или регуляризацией актора к данным. TD3+BC (Fujimoto & Gu, 2021) добавляет к loss актора член поведенческого клонирования: $\pi$ максимизирует $\lambda Q(s, \pi(s)) - (\pi(s) - a)^{2}$ (с масштабированием $Q$ по среднему $\lvert Q \rvert$ по батчу), оставаясь близко к данным и улучшаясь. AWAC (Advantage-Weighted Actor-Critic) и AWR (Advantage-Weighted Regression) подгоняют политику с весами по преимуществу (advantage); актор использует только пары $(s, a)$ из датасета, без OOD-запросов к Q. BEAR и BCQ ограничивают носитель политики (например, действиями близкими к данным или сгенерированными условным VAE). Все они — actor-critic (есть и критик Q/V, и актор), но актор ограничен или регуляризован, а не просто жадный по неограниченной Q.

Decision Transformers (DT) (Chen et al., 2021) — другой взгляд: офлайн RL как моделирование последовательностей. Модель по префиксу траектории (состояния, действия, return-to-go или награды) предсказывает следующее действие авторегрессионно. Нет Bellman-бэкапа и явной Q-функции; «политика» задаётся условным распределением по действиям при заданном контексте и желаемом return. Offline DT обучают supervised learning по кускам $(s, a, R)$ из датасета, часто с return-conditioning: на тесте можно запрашивать поведение с «высоким return». Экстраполяционная ошибка в явном виде отсутствует (нет $\max_{a'}$ по OOD-действиям), но сложность переносится на обобщение последовательностной модели и выбор conditioning. Варианты включают Q-learning DT (например, QDT), комбинирующие return-conditioning с TD для лучшего credit assignment.

Для практиков: пессимизм по значениям (CQL, IQL) и модельные методы (глава 8) — надёжный выбор по умолчанию для непрерывного управления и технологических данных; методы с ограничением политики (например, TD3+BC) и DT стоит пробовать при длинных горизонтах, мультизадачных данных или предпочтении инструментов для sequence modeling. Ссылки на эти семейства приведены в конце главы.


Почему бы просто не использовать BC?

Разумный вопрос: если офлайн Q-обучение так опасно, почему бы не использовать BC?

Ответ зависит от качества и покрытия поведенческой политики.

BC достаточен, когда: - Поведенческая политика близка к оптимальной - Горизонт задачи короткий - Датасет покрывает состояния, с которыми встретитесь при развёртывании

BC недостаточен, когда: - Поведенческая политика субоптимальна (реальные операторы ошибаются) - Нужно комбинировать хорошие части разных траекторий - Задача требует рассуждений о долгосрочных последствиях (H > 20) - Есть информация о награде, которую хочется использовать

В промышленных условиях, как правило, выполняются все четыре условия недостаточности BC. Операторы не оптимальны; разные смены принимают разные решения; 30-минутный горизонт предсказания требует долгосрочного планирования; функция награды (процент наполнителя, стабильность температуры, потребление энергии) хорошо определена.

Это и есть мотивация для всего, что рассматривается в главах 3–7.


Итоги

Проблема Описание
Ошибка экстраполяции Q-значения завышены для ненаблюдавшихся действий
Усиление при бутстрэппинге TD-обновления распространяют ошибки назад во времени
Сдвиг распределения Жадная политика посещает состояния/действия вне датасета
Смертельная триада Аппроксимация функций + бутстрэппинг + off-policy = нестабильность

Два основных средства: ограничение политики (держаться близко к $\pi_{\beta}$) и пессимизм по значениям (занижать OOD Q-значения). CQL реализует второй подход с элегантной регуляризационной целевой функцией — туда мы и направляемся дальше. В главе 2 также намечен более широкий ландшафт: policy-constraint / Actor-Critic (TD3+BC, AWAC, BEAR, BCQ) и Decision Transformers; далее в книге фокус на пессимизме по значениям (главы 4–5) и модельных методах (глава 8).


Литература