Глава 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}$.
Литература
- Le, H. M., Voloshin, C., & Yue, Y. (2019). Batch Policy Learning under Constraints. ICML (PMLR 97). arXiv:1903.08738. (формализация FQE для OPE)
- Gauci, J., et al. (2018). Horizon: Facebook's Open Source Applied Reinforcement Learning Platform. arXiv:1811.00260. (платформа production RL; не FQE.)
- Precup, D., Sutton, R. S., & Singh, S. (2000). Eligibility Traces for Off-Policy Policy Evaluation. ICML.
- Jiang, N., & Li, L. (2016). Doubly Robust Off-policy Value Evaluation for Reinforcement Learning. ICML.
- Levine, S. et al. (2020). Offline Reinforcement Learning: Tutorial, Review, and Perspectives. arXiv:2005.01643.