Глава 3: Оценка политик вне политики сбора данных (OPE)

«Нельзя запустить новую политику в продакшене, чтобы узнать, насколько она хороша — значит, нужно оценить её ценность по тем данным, которые уже есть.»


Постановка задачи

В главе 2 мы определили офлайн постановку: фиксированный датасет $\mathcal{D}$ переходов $(s, a, r, s')$, собранных поведенческой политикой $\pi_\beta$. Мы обучаем новую политику $\pi$ (например, с помощью CQL, IQL или других методов этой книги) по $\mathcal{D}$. Ключевой вопрос до внедрения:

Чему равна $J(\pi) = \mathbb{E}_{\tau \sim \pi}\bigl[\sum_t \gamma^t r_t\bigr]$ — истинный ожидаемый return политики $\pi$?

Ответить на это, запуская $\pi$ в реальной среде, нельзя: это уже внедрение, а не оценка. В промышленности развёртывание непроверенной политики может быть небезопасным или дорогим. Нужно оценивать $J(\pi)$ только по офлайн датасету $\mathcal{D}$, собранному под $\pi_\beta$, а не под $\pi$. Это и есть Off-Policy Evaluation (OPE).

OPE — парная по смыслу к офлайн RL задача: офлайн RL обучает политику по $\mathcal{D}$; OPE оценивает кандидатную политику по тому же $\mathcal{D}$. На практике используют оба шага: обучают несколько политик (например, CQL с разным $\alpha$), ранжируют их с помощью OPE и только потом рассматривают внедрение лучшего кандидата.


Три семейства оценок

1. Importance Sampling (IS)
Return траектории под $\pi$ переписывается как матожидание под $\pi_\beta$ с весами $\prod_t \frac{\pi(a_t|s_t)}{\pi_\beta(a_t|s_t)}$. Оценка: среднее взвешенных return’ов по траекториям из $\mathcal{D}$. Плюсы: несмещённость при полной поддержке. Минусы: дисперсия резко растёт, когда $\pi$ и $\pi_\beta$ сильно различаются; на практике используют per-decision IS и ограничение весов.

2. Direct Method (DM)
Обучают модель награды/динамики или Q-функцию по $\mathcal{D}$, затем оценивают $J(\pi)$. Поскольку $J(\pi)$ — ожидаемый return от начального распределения состояний, корректная оценка DM — среднее по начальным состояниям $s_0^{(i)}$ (по одному на траекторию в $\mathcal{D}$ или по отдельной выборке): $\hat{J}_{DM} = \frac{1}{n}\sum_{i=1}^n \hat{Q}(s_0^{(i)}, \pi(s_0^{(i)}))$. Усреднение $\hat{Q}(s, \pi(s))$ по всем $s$ из $\mathcal{D}$ дало бы среднюю ценность по посещённому распределению состояний, а не ожидаемый return эпизода; иногда это используют как дешёвый суррогат, когда начальные состояния не выделены, но к $J(\pi)$ это не сводится. Стандартный способ получить $\hat{Q}$ — Fitted Q Evaluation (FQE); подробнее ниже. Плюсы: малая дисперсия. Минусы: смещение при ошибке модели.

Fitted Q Evaluation (FQE) подробнее.
FQE (Le et al., 2019, Batch Policy Learning under Constraints; там же формализована для OPE) подгоняет Q-функцию, приближающую ценность целевой политики $\pi$, только по офлайн данным из $\mathcal{D}$. В отличие от Fitted Q Iteration (FQI), FQE оценивает фиксированную политику: в Bellman-цели на следующем шаге используется $\pi(s')$, а не $\max_a$ или поведенческая политика. Истинная $Q^\pi$ удовлетворяет $Q^\pi(s,a) = r + \gamma \mathbb{E}_{s'}[Q^\pi(s', \pi(s'))]$, поэтому регрессия идёт на цель $y = r + \gamma \hat{Q}(s', \pi(s'))$ по переходам $(s,a,r,s') \in \mathcal{D}$. Минимизируют TD-ошибку: $\mathcal{L}_{FQE} = \mathbb{E}_{(s,a,r,s') \sim \mathcal{D}}[(r + \gamma \hat{Q}_{tgt}(s', \pi(s')) - \hat{Q}(s,a))^2]$. Можно делать одну регрессию или итерации с обновлением целевой сети. Минимальный шаг обучения и оценка $J$ в коде:

# FQE update: TD-цель использует π в следующем состоянии (не поведенческое действие)
with torch.no_grad():
    a_next = policy_fn(next_states)           # π(s')
    q_next = Q_tgt(next_states, a_next)
    td_target = rewards + gamma * (1 - dones) * q_next
q = Q(states, actions)
loss = F.mse_loss(q, td_target)
# ... backward, step оптимизатора, затем soft update Q_tgt ← Q

# FQE-оценка: (1/n) Σ Q(s, π(s)) по *начальным* состояниям для J(π); по всем состояниям датасета — суррогат
def estimate_J_FQE(Q, policy_fn, states):
    with torch.no_grad():
        a = policy_fn(states)
        return Q(states, a).mean().item()

Зачем FQE: не нужны importance weights и знание $\pi_\beta$; удобно для непрерывных действий (достаточно одного forward pass для $\hat{Q}(s', \pi(s'))$). Оценка $\hat{J}_{FQE} = \frac{1}{n}\sum_i \hat{Q}(s_0^{(i)}, \pi(s_0^{(i)}))$ дёшева после обучения $\hat{Q}$, поэтому FQE хорошо масштабируется при сравнении многих кандидатов. Смещение: $\hat{Q}$ обучена на распределении данных; при подстановке $\pi(s)$ и $\pi(s')$ действия могут быть вне распределения — та же экстраполяционная ошибка из главы 2. FQE наиболее надёжна, когда $\pi$ близка к $\pi_\beta$ или покрытие состояний в $\mathcal{D}$ достаточно богатое.

📄 Код: fqe.py — FQE на том же игрушечном окружении: обучение BC, подгонка $Q^\pi$, оценка $\hat{J}_{FQE}$ и сравнение с rollout return.

3. Doubly Robust (DR)
Комбинирует IS и DM так, что оценка несмещена, если верны либо веса, либо модель. На практике часто даёт меньшую дисперсию, чем IS, и меньшее смещение, чем один DM. Ограничение: на длинных горизонтах кумулятивный вес $\rho_{0:t}$ по-прежнему может экспоненциально расти или стремиться к нулю при росте $t$, поэтому классический DR страдает от большой дисперсии на длинных траекториях; для смягчения используют варианты вроде Marginalized IS (веса по маргинальному распределению состояний).


Практика и ограничения

Ситуация Предпочтительно
$\pi$ близка к $\pi_\beta$ IS (с ограничением весов)
Большое пространство действий / $\pi$ далеко от $\pi_\beta$ FQE или DM
Нужно сравнить много политик FQE для быстрого ранжирования; топ проверять DR или IS
Критично по безопасности Несколько оценок; при сильном расхождении не внедрять

Важно: OPE не устраняет фундаментальную проблему. Если $\pi$ заходит в области с нулевым покрытием в $\mathcal{D}$, никакая оценка не будет точной. В книге в главах 5–11 часто используется оценка по симулятору (evaluate(agent, env, ...)). OPE нужна там, где симулятора нет или новую политику нельзя запускать — типично для многих промышленных процессов.

Следующая глава открывает алгоритмическую часть: Conservative Q-Learning (CQL) — первый метод обучения политики по $\mathcal{D}$.


Литература