第 10 讲:离线强化学习——离策略评估与悲观原则

Reinforcement Learning · Lecture 10。个人学习讲义与配套实验,按主题整理并持续修订。

课程源码 ZIP ↓

个人整理的学习笔记,非官方讲义;课程来源与整理说明见课程介绍。配套示例未逐一运行验证。

本篇目录

对应:Stanford CS234 Lecture 10–11(Offline RL / Batch RL, Off-Policy Evaluation) 配套代码:code/lecture10/(只需 numpy) 预计阅读时间:4 小时


0. 本讲导航

0.1 本讲要回答的问题

不能与环境交互,只有一批历史数据。怎样评估一个新策略?怎样学出一个好策略?

前面几乎所有算法都要求智能体能反复尝试:不好就换,不确定就去试。但在很多最重要的应用中,试错是不可接受的:

  • 医疗:不能拿病人试验一个未经验证的治疗方案。但医院有几十年的电子病历。
  • 教育:不能拿一届学生去试一个可能很差的教学策略。但教育平台有数百万学生的学习记录。
  • 推荐系统、广告:上线一个坏策略会直接损失用户和收入。但有海量的历史日志。
  • 机器人:真实机器人试错又慢又会损坏设备。但可以复用以前收集的数据。

这就是离线强化学习(offline RL),也叫批量强化学习(batch RL)。它是 CS234 主讲人 Emma Brunskill 研究组的核心方向之一,也是 RL 走向真实世界最重要的桥梁。

它包含两个问题:

  1. 离策略评估(Off-Policy Evaluation, OPE):用行为策略 πb\pi_b 收集的数据,估计另一个策略 πe\pi_e 的价值。
  2. 离线策略学习(offline policy learning / offline control):用这批数据学出一个尽可能好的策略。

两者都要面对本课最后几讲反复出现的核心难题——分布偏移:数据来自 πb\pi_b,我们关心的却是 πe\pi_e(或学到的新策略)会去的地方。

0.2 学完本讲,你应该能够

  1. 推导重要性采样估计量,证明它无偏,解释它的方差为什么随视界指数增长。
  2. 比较 IS、WIS、PDIS、WPDIS 的偏差与方差。
  3. 陈述覆盖假设,理解”数据中没有的信息,任何方法都变不出来”。
  4. 解释直接法(基于模型 / FQE)的优缺点;推导双重稳健估计并说明”双重”的含义。
  5. 解释为什么在历史数据上直接跑 Q-learning 会失败——外推误差。
  6. 理解悲观原则,说出 LCB、策略约束(BCQ)、价值正则(CQL)三类方法的思路。
  7. 根据数据的质量(专家 / 随机 / 混合)判断哪类方法更合适。

0.3 先修知识

知识点用在哪里最低要求
第 3 讲:MC 评估、确定性等价、偏差–方差第 2、3 节必须
第 4 讲:Q-learning、异策略、最大化偏差第 4 节必须
第 5 讲:致命三角第 4 节看过即可
第 6 讲:似然比技巧(转移概率消失)第 2 节必须
期望的”换测度”:Ex∼p[f(x)]=Ex∼q[p(x)q(x)f(x)]\mathbb{E}_{x \sim p}[f(x)] = \mathbb{E}_{x \sim q}[\frac{p(x)}{q(x)} f(x)]第 2 节本讲会推导

0.4 本讲地图

第1节 问题设定:行为策略、评估策略、覆盖
   │
   ├──► 离策略评估
   │      第2节 重要性采样:IS、WIS、PDIS;视界诅咒;覆盖假设
   │      第3节 直接法与双重稳健:DM、FQE、DR、WDR
   │
   └──► 离线控制
          第4节 外推误差:为什么离线 Q-learning 会失败
          第5节 悲观原则:LCB、策略约束、CQL
          第6节 数据质量与方法选择
   │
第7节 离线 RL 在真实世界

1. 问题设定

1.1 数据从哪里来?

我们有一个数据集 D={τ1,…,τn}\mathcal{D} = \{\tau_1, \dots, \tau_n\},每条轨迹 τi=(s0,a0,r0,s1,a1,r1,… )\tau_i = (s_0, a_0, r_0, s_1, a_1, r_1, \dots) 由某个行为策略 πb\pi_b 与环境交互产生(比如”医院过去的治疗习惯”)。

  • πb\pi_b 可能已知(比如一个线上系统的随机推荐策略,每个动作的概率都有记录);
  • 也可能未知(比如医生的决策,只能从数据中估计)。

我们不能再与环境交互。

1.2 两个问题

  • 离策略评估(OPE):给定一个评估策略 πe\pi_e(比如”新的治疗方案”),估计 J(πe)J(\pi_e)。
  • 离线控制:从 D\mathcal{D} 中学出一个策略 π^\hat\pi,使 J(π^)J(\hat\pi) 尽量大。

离线控制离不开离策略评估:即使学出了一个策略,上线之前也必须先评估它——而评估又只能用离线数据。

1.3 本讲的实验平台

治疗决策 MDP(代码 treatment_mdp.py):

  • 病人的健康状况 0~4(0 = 危重,4 = 健康),从 2 出发,共 HH 步;
  • 保守治疗:好转 0.2、不变 0.5、恶化 0.3;积极治疗:好转 0.6、不变 0.2、恶化 0.2,但有 0.5 的副作用代价;
  • 每一步奖励 = 健康状况 − 治疗代价(再加上均值为 0、标准差为 1 的噪声——病人的反馈本来就有随机性);
  • 行为策略 πb\pi_b(医院过去的做法):不管病情,70% 保守、30% 积极;
  • 评估策略 πe\pi_e(新方案):病情 ≤ 2 时 90% 积极治疗,否则 90% 保守治疗。

H=10H = 10 时,J(πb)=20.06J(\pi_b) = 20.06,J(πe)=23.75J(\pi_e) = 23.75。


2. 重要性采样

2.1 为什么不能直接平均?

用 1000 条历史数据直接计算平均回报,得到 20.33——这是 πb\pi_b 的价值,不是 πe\pi_e 的(23.75)。数据中的动作是按 πb\pi_b 选的,不是按 πe\pi_e 选的。

2.2 重要性采样估计量

换测度的技巧:对任意两个分布 pp、qq(只要 p(x)>0p(x) > 0 的地方 q(x)>0q(x) > 0):

Ex∼p[f(x)]=∑xp(x)f(x)=∑xq(x)p(x)q(x)f(x)=Ex∼q[p(x)q(x)f(x)]\mathbb{E}_{x \sim p}[f(x)] = \sum_x p(x) f(x) = \sum_x q(x) \frac{p(x)}{q(x)} f(x) = \mathbb{E}_{x \sim q}\left[ \frac{p(x)}{q(x)} f(x) \right]

用 qq 的样本估计 pp 下的期望,只需要给每个样本乘以权重 p(x)/q(x)p(x)/q(x)。

把 xx 换成轨迹 τ\tau,pp 换成 πe\pi_e 下的轨迹分布,qq 换成 πb\pi_b 下的轨迹分布。轨迹概率之比:

pπe(τ)pπb(τ)=μ(s0)∏tπe(at∣st)P(st+1∣st,at)μ(s0)∏tπb(at∣st)P(st+1∣st,at)=∏t=0H−1πe(at∣st)πb(at∣st)⏟ρt\frac{p_{\pi_e}(\tau)}{p_{\pi_b}(\tau)} = \frac{\mu(s_0) \prod_t \pi_e(a_t \mid s_t) P(s_{t+1} \mid s_t, a_t)}{\mu(s_0) \prod_t \pi_b(a_t \mid s_t) P(s_{t+1} \mid s_t, a_t)} = \prod_{t=0}^{H-1} \underbrace{\frac{\pi_e(a_t \mid s_t)}{\pi_b(a_t \mid s_t)}}_{\rho_t}

环境的转移概率在分子分母中完全相同,约掉了——和第 6 讲策略梯度中”转移概率消失”是同一个道理。所以不需要知道模型,只需要知道两个策略在数据中每一步的动作概率。

重要性采样(IS)估计量:

J^IS=1n∑i=1nwiGi,wi=∏t=0H−1ρi,t,Gi=∑tri,t\hat J_{\mathrm{IS}} = \frac1n \sum_{i=1}^n w_i G_i, \qquad w_i = \prod_{t=0}^{H-1} \rho_{i,t}, \qquad G_i = \sum_t r_{i,t}

它是无偏的:Eτ∼πb[w(τ)G(τ)]=J(πe)\mathbb{E}_{\tau \sim \pi_b}[w(\tau) G(\tau)] = J(\pi_e)。

2.3 问题:方差

权重 ww 是 HH 个比值的乘积。代码 01_importance_sampling.py 演示 1,H=10H = 10 时 1000 条轨迹的权重:最小 3.5×10−93.5 \times 10^{-9},中位数 0.002,最大 156.8;权重最大的 1% 的轨迹占了总权重的 67%。

绝大多数轨迹”不像” πe\pi_e 会走出来的,权重接近 0;极少数碰巧很像的轨迹,权重巨大。IS 的估计几乎由这几条轨迹决定——方差极大。

2.4 三种改进

加权重要性采样(WIS,也叫自归一化 IS):

J^WIS=∑iwiGi∑iwi\hat J_{\mathrm{WIS}} = \frac{\sum_i w_i G_i}{\sum_i w_i}

把权重归一化成”加权平均”——估计值一定落在观察到的回报的范围内,不会被一个巨大的权重拉到天上去。有偏(分母也是随机的),但一致(数据增多时偏差趋于 0),方差小得多。

逐决策重要性采样(PDIS):第 tt 步的奖励只取决于前 tt 步的动作,与之后的动作无关,所以 rtr_t 只需要乘以”到 tt 为止”的比值乘积:

J^PDIS=1n∑i∑t=0H−1(∏k=0tρi,k)ri,t\hat J_{\mathrm{PDIS}} = \frac1n \sum_i \sum_{t=0}^{H-1} \left( \prod_{k=0}^{t} \rho_{i,k} \right) r_{i,t}

仍然无偏,方差更小。这和第 6 讲”利用因果性(未来的动作影响不了过去的奖励)“是同一个思想。

加权逐决策重要性采样(WPDIS):在每个时刻 tt 分别做自归一化。

2.5 实验

H=10H = 10,每次 200 条历史数据,重复 500 次(代码 01 演示 2,真实值 23.754):

估计量偏差标准差均方根误差
IS+1.7433.5133.55
WIS+2.623.874.68
PDIS+0.2510.2910.29
WPDIS+1.342.612.93

IS 和 PDIS 近似无偏,但方差大;加权的版本有一点偏差,但方差小得多,综合误差最小。实践中常常首选 WPDIS / WIS。

2.6 视界诅咒

每次 200 条数据,重复 300 次,不同视界下的均方根误差(演示 3):

HH真实值ISWISPDISWPDIS
23.670.550.290.480.28
510.763.861.532.071.03
1023.7556.754.457.932.88
2050.73124.5410.1432.856.13
40105.04312.3421.1897.4913.13

IS 的误差随视界急剧增大:权重是 HH 个比值的乘积,方差随 HH 指数增长。这叫视界诅咒(curse of horizon)。加权的版本大大缓解了它,但长视界下所有重要性采样方法都会越来越困难。(近年有一类”边际化重要性采样”方法,直接估计状态分布之比而不是轨迹概率之比,从根本上避免了乘积,这里不展开。)

2.7 覆盖假设

重要性采样有一个硬性前提:只要 πe(a∣s)>0\pi_e(a \mid s) > 0,就必须有 πb(a∣s)>0\pi_b(a \mid s) > 0。否则比值 ρ\rho 无定义,更根本的是——数据中根本不会出现 πe\pi_e 想做的那些动作。

演示 4:假设历史上病情 ≤ 1 时从不积极治疗(而新方案恰恰想在这时积极治疗):

估计量估计的平均值偏差
IS15.77−7.98
WIS29.43+5.67
PDIS18.62−5.13
WPDIS28.42+4.66

所有估计量都有明显偏差,而且数据再多也消除不了。这不是估计方法的缺陷,而是数据本身信息不足:没有任何记录能告诉我们”危重病人积极治疗会怎样”。这叫覆盖假设(也叫支撑集假设、正性假设)。在因果推断中,这对应着”没有对照组的处理效应无法识别”。


3. 直接法与双重稳健估计

3.1 直接法(DM)

另一条思路:先用数据学一个模型,再在模型上精确评估 πe\pi_e。

  • 基于模型:数出经验模型 P^(s′∣s,a)\hat P(s' \mid s, a)、R^(s,a)\hat R(s, a)(第 3 讲的确定性等价),然后用动态规划计算 πe\pi_e 的价值。
  • 拟合 Q 评估(FQE):不显式建模,而是直接在数据上迭代拟合 Q^πe\hat Q^{\pi_e}:用 r+γ∑a′πe(a′∣s′)Q^(s′,a′)r + \gamma \sum_{a'} \pi_e(a' \mid s') \hat Q(s', a') 作为回归目标。在表格情况下与基于模型的方法等价;在大规模问题中用神经网络做回归。

优点:方差小——它把所有数据汇集到一个模型里(回忆第 3 讲:确定性等价是数据效率最高的方法)。 缺点:模型不准时有偏,而且如果模型类选错了(比如用线性函数去拟合非线性的动力学),偏差不会随数据增多而消失。

3.2 双重稳健估计(DR)

思路:用模型给出一个”基准估计”,再用重要性采样只修正模型的误差部分。

对每条轨迹从后往前递推(Jiang & Li, 2016):

DRH=0,DRt=V^(st)+ρt(rt+γ DRt+1−Q^(st,at))\mathrm{DR}_H = 0, \qquad \mathrm{DR}_t = \hat V(s_t) + \rho_t \Big( r_t + \gamma\, \mathrm{DR}_{t+1} - \hat Q(s_t, a_t) \Big)

估计值为所有轨迹 DR0\mathrm{DR}_0 的平均。其中 Q^\hat Q、V^\hat V 是在模型上算出的 πe\pi_e 的价值。

逐项理解:

  • V^(st)\hat V(s_t):模型给出的基准估计;
  • rt+γDRt+1−Q^(st,at)r_t + \gamma \mathrm{DR}_{t+1} - \hat Q(s_t, a_t):实际观察到的结果与模型预测之差——模型的误差;
  • 乘以 ρt\rho_t:用重要性采样把这个误差从 πb\pi_b 的分布”搬到” πe\pi_e 的分布上。

为什么叫”双重稳健”? 两个条件只要满足一个,DR 就无偏:

  1. 重要性比正确(πb\pi_b 已知):对 at∼πba_t \sim \pi_b 求期望,E[ρt(rt+γDRt+1−Q^(st,at))]=Ea∼πe[rt+γDRt+1]−Ea∼πe[Q^(st,a)]\mathbb{E}[\rho_t (r_t + \gamma \mathrm{DR}_{t+1} - \hat Q(s_t, a_t))] = \mathbb{E}_{a \sim \pi_e}[r_t + \gamma \mathrm{DR}_{t+1}] - \mathbb{E}_{a \sim \pi_e}[\hat Q(s_t, a)],而后一项恰好等于 V^(st)\hat V(s_t),与前面的 V^(st)\hat V(s_t) 抵消——模型的影响在期望中完全消掉了,无论模型多差。
  2. 模型正确(Q^=Qπe\hat Q = Q^{\pi_e}):括号里的误差期望为 0,无论重要性比是否准确。

方差:模型越准,要修正的误差越小,乘上一个大权重也不会带来太大方差。

加权双重稳健(WDR,Thomas & Brunskill, 2016):把 DR 中的重要性权重换成自归一化的权重(就像 WIS 之于 IS),有一点偏差,但方差通常小得多。它是实践中最常用的 OPE 方法之一。

3.3 实验

H=10H = 10,每次 200 条数据,重复 300 次(代码 02_doubly_robust.py 演示 1)。“错误模型”把两种治疗的效果对调了,而且把奖励整体高估了 1:

估计量偏差标准差均方根误差
WPDIS+1.502.432.86
DM(学到的模型)+0.010.760.76
DM(错误模型)+3.570.003.57
DR(学到的模型)−0.043.613.62
DR(错误模型)+0.184.624.62
WDR(学到的模型)−0.032.352.35
WDR(错误模型)−0.903.223.35
DR(真实模型)−0.033.603.60

这张表需要仔细读:

  1. DM(学到的模型)误差最小。这个问题只有 5 个状态、2 个动作,200 条轨迹足以把模型估计得很准;直接法把所有轨迹的信息汇集到一个模型里。而重要性采样类方法只能通过每条轨迹的权重来利用数据,还会被权重放大奖励的噪声——即使用真实模型,DR 的标准差仍有 3.6:模型只能预测”期望”奖励,每一步奖励的随机噪声仍然乘着重要性权重。WDR 的自归一化大大缓解了这一点。
  2. DM(错误模型)严重有偏(+3.57),而且它根本没用数据——数据再多也纠正不了。
  3. DR(错误模型)几乎无偏(+0.18)!重要性采样的修正项把模型的错误纠正了回来。WDR(错误模型)有一点自归一化带来的偏差(−0.90),但远小于 DM。

数据量的影响(演示 2,均方根误差):

数据条数WPDISDM(学到)DM(错误)DR(错误)WDR(学到)WDR(错误)
204.752.443.5713.514.386.87
504.061.573.576.693.544.97
2002.990.793.574.662.272.95
10001.860.333.572.361.391.80

错误模型的 DM 停在一个固定的偏差上;DR / WDR 即使用错误的模型,误差也在持续下降。

怎么选? 在小问题中,模型容易学准,直接法往往最好。在大规模问题中(连续状态、神经网络函数逼近),模型一定有误差,直接法的偏差可能很大、而且很难察觉——这时双重稳健方法提供的”保险”就非常值得。

3.4 覆盖不足时

演示 3(病情 ≤ 1 时历史上从不积极治疗):WPDIS、DM(学到)、DR(学到)、WDR(学到)的偏差分别为 +4.56、−4.44、−4.57、−4.57——所有从数据中学习的方法都失败了。DM 在没见过的 (状态, 动作) 上只能用任意的默认假设;重要性采样的修正也触及不到它们。只有用”真实模型”的 DR 是无偏的(−0.07)——模型本身补上了数据缺失的部分(双重稳健中”模型正确”的那一半)。但真实模型恰恰是我们没有的。

数据中没有的信息,任何估计方法都变不出来。 这是离线 RL 最根本的限制。

3.5 置信区间

在医疗等高风险场景中,仅有一个”点估计”是不够的——我们需要知道”新策略至少有多好”。高置信度离策略评估(Thomas, Theocharous & Ghavamzadeh, 2015)利用集中不等式,给出 J(πe)J(\pi_e) 的置信下界:只有当下界超过当前策略的价值时,才部署新策略。这个”保守部署”的思想和下面的悲观原则一脉相承。


4. 离线控制:外推误差

4.1 为什么不直接跑 Q-learning?

Q-learning 是异策略的(第 4 讲):它可以用任何策略收集的数据学习最优 Q∗Q^*。那么在历史数据上反复跑 Q-learning,不就能学出最优策略了吗?

问题出在 Q-learning 目标中的 max⁡\max:

Q(s,a)←r+γmax⁡a′Q(s′,a′)Q(s, a) \leftarrow r + \gamma \max_{a'} Q(s', a')

max⁡a′\max_{a'} 会考虑 s′s' 的所有动作,包括数据中从来没出现过的动作。这些动作的 QQ 值从来没有被数据更新过,只是一个任意的初始值(在深度 RL 中,就是神经网络在没见过的输入上随意外推出来的值)。如果这个值碰巧偏高:

  1. max⁡\max 选中它;
  2. 虚假的高估值通过自举传播给所有前驱状态;
  3. 最终的贪心策略也会选这些没见过的动作;
  4. 离线学习无法通过尝试来发现并纠正这个错误。

这叫外推误差(extrapolation error),或分布外动作(out-of-distribution actions)问题。在线 RL 中,高估的动作会被尝试、然后被纠正;离线 RL 失去了这个纠错机制。它也可以看作第 4 讲最大化偏差的极端形式,以及第 5 讲致命三角的另一个面貌(函数逼近 + 自举 + 极端的异策略)。

4.2 实验:岩浆网格

代码 03_offline_control.py:

    . . . . G        G:终点 +10    L:岩浆 -10    每步 -1
    . L L L .        10% 概率随机滑动,γ = 0.95
    . . . L .
    L L . L .        最优路线:沿最下面一行向右,再沿最右一列向上
    S . . . .        最优价值:-2.50

用”接近专家”的行为策略(最优策略 + 10% 随机动作)收集 20 个回合,共 177 条转移,只覆盖了 100 个 (状态, 动作) 对中的 27 个。

朴素离线 Q 学习(在经验模型上做价值迭代,没见过的 (s,a)(s, a) 保持初始值 0):

  • 起点处估计的价值:0.00
  • 其贪心策略的真实价值:−10.58
  学到的贪心策略(? = 选了数据中从没出现过的动作):
    ? ? ? ? G
    ? L L L ↑
    ? ? ? L ↑
    L L ? L ↑
    ? ? → → ↑

严重高估。原因非常具体:每一步奖励都是 −1,见过的动作的 QQ 值大多是负的;没见过的动作的 QQ 值停在 0——看起来反而是最好的!于是策略里满是问号:它专门挑数据里没有的动作去做,其中一些把它带进岩浆,或让它原地打转。


5. 悲观原则

5.1 核心思想

解决外推误差的核心思想是悲观(pessimism):对数据中很少出现或没有出现的动作,不要轻信它们的价值。

这与第 11 讲将要讲的”面对不确定性时保持乐观”(UCB)恰好相反:

在线学习(探索)离线学习
能不能尝试?能不能
对不确定的动作乐观:去试一试,错了可以纠正悲观:不去碰,因为错了无法纠正
目的发现更好的动作避免灾难性的错误

理论研究表明(Jin, Yang & Wang, 2021;Rashidinejad et al., 2021),悲观的离线 RL 算法只要求数据覆盖了某个好策略会走的路线(“单策略集中性”),就能学出接近那个策略的结果;而不悲观的算法则要求数据覆盖所有策略会去的地方——这在实践中几乎不可能满足。

5.2 三类方法

方法 1:置信下界(LCB)/ 不确定性惩罚。对每个 (s,a)(s, a) 减去一个与数据量有关的惩罚:

Q(s,a)←R^(s,a)−cN(s,a)+γ∑s′P^(s′∣s,a)max⁡a′Q(s′,a′)Q(s, a) \leftarrow \hat R(s, a) - \frac{c}{\sqrt{N(s, a)}} + \gamma \sum_{s'} \hat P(s' \mid s, a) \max_{a'} Q(s', a')

N(s,a)=0N(s, a) = 0 时,Q(s,a)Q(s, a) 设为可能的最低值。数据越少,惩罚越大。基于模型的离线 RL 方法(MOPO、MOReL)用模型的不确定性做类似的惩罚。

方法 2:策略约束。干脆不考虑数据里没有的动作:目标中的 max⁡\max 只在”数据中出现过的动作”里取,最终策略也只从这些动作中选。BCQ(Fujimoto et al., 2019)用一个生成模型估计”数据中可能出现的动作”,只在其中选择;TD3+BC 在策略优化的目标中加一个行为克隆项,让策略不要离数据太远。

方法 3:价值正则化——保守 Q 学习(CQL,Kumar et al., 2020)。在普通的 TD 损失之外加一个正则项:

L(Q)=12ED[(Q(s,a)−y)2]⏟TD 误差+α Es∼D[log⁡∑a′exp⁡Q(s,a′)⏟把所有动作往下压−Ea∼D[Q(s,a)]⏟把数据中的动作往上拉]\mathcal{L}(Q) = \underbrace{\frac12 \mathbb{E}_{\mathcal{D}}\left[ (Q(s, a) - y)^2 \right]}_{\text{TD 误差}} + \alpha\, \mathbb{E}_{s \sim \mathcal{D}}\left[ \underbrace{\log \sum_{a'} \exp Q(s, a')}_{\text{把所有动作往下压}} - \underbrace{\mathbb{E}_{a \sim \mathcal{D}}[Q(s, a)]}_{\text{把数据中的动作往上拉}} \right]

log-sum-exp 是 Q(s,⋅)Q(s, \cdot) 的”软最大值”,最小化它会压低 ss 处所有动作的 QQ;减去数据中动作的 QQ 又把数据中出现的动作往上拉。净效果:没见过的动作被压低。可以证明,CQL 学到的 QQ 是真实 QQ 的一个(大致的)下界。

还有一类”隐式”方法,比如 IQL(Kostrikov et al., 2022),它完全避免在目标中对没见过的动作求 max⁡\max,而是用”在数据中出现过的动作”的价值分布的高分位数来近似最优价值。

5.3 实验:同一批接近专家的数据

方法起点处估计的价值真实价值
朴素离线 Q 学习0.00−10.58
悲观:LCB 惩罚−11.45−2.50
悲观:支撑集约束−2.11−2.50
悲观:CQL−2.24−2.50

三种悲观方法都学到了最优策略。它们在数据覆盖的路线上不再选没见过的动作,估计的价值也不再虚高(LCB 甚至明显低估——这是有意为之的保守)。

5.4 悲观过了头

悲观也有代价。演示 4:只有 20 个完全随机的回合,数据很少、很零散。LCB 学到的策略在起点选择了”向上”——起点正上方就是岩浆,真实价值 −10.54。

数据太少时,通往终点的每一步都只有一两个样本,不确定性惩罚层层累积,“走一条长路去终点”的悲观估计比”立刻结束”还要差——一个确定的坏结果,胜过一个不确定的好结果。悲观的强度需要根据数据量仔细权衡。


6. 数据质量与方法选择

三种数据(10 次独立收集的平均;表中为贪心策略的真实价值,最优为 −2.50,从起点直接走进岩浆约为 −10.5):

数据行为克隆朴素离线 Q 学习LCB支撑集约束CQL
接近专家(20 回合)−2.58−12.14−2.58−5.92−2.58
完全随机(200 回合,随机起点)−14.56−2.50−3.28−2.50−4.10
一半一半(50 回合)−2.57−7.86−2.50−3.58−2.50

解读:

  • 接近专家的数据:行为克隆就很好——照着专家做就行。朴素 Q 学习被外推误差毁了。LCB、CQL 与行为克隆一样好。支撑集约束稍差:它只要求”见过至少一次”,专家偶然做过一次的随机动作也被当作可选项。
  • 完全随机的数据:行为克隆很差——模仿的是一个随机策略。朴素 Q 学习反而达到了最优——数据覆盖了几乎所有 (s,a)(s, a),外推误差不再是问题。LCB、CQL 略差:悲观会低估那些数据较少的好动作。
  • 混合数据:LCB 和 CQL 最好。

没有一种方法在所有数据上都最好,但悲观方法(尤其 LCB、CQL)是最稳健的——在不知道数据质量的情况下,它们很少犯大错。这与离线 RL 基准测试(如 D4RL)上的普遍发现一致:数据越接近专家,模仿学习越有竞争力;数据越多样,RL 的优势越明显;而悲观的 RL 方法在各种数据上都表现稳定。


7. 离线 RL 在真实世界

7.1 应用与挑战

  • 医疗:从重症监护的电子病历中学习治疗策略(如脓毒症的补液与升压药决策)。这类研究非常有前景,但也充满争议:历史数据中的混杂因素(医生根据病人未被记录的状况做决策)会让所有 OPE 方法产生偏差;覆盖假设常常不成立;而且 OPE 的结果很难验证。
  • 教育:用历史学习数据评估和改进教学策略(Brunskill 研究组的大量工作)。
  • 推荐系统:用日志数据评估新的推荐策略,是工业界最成熟的 OPE 应用。
  • 机器人与自动驾驶:复用大规模已有数据,减少昂贵且危险的在线试错。

7.2 从离线到在线

实践中常常先离线学习一个”足够安全”的策略,再小心地部署到线上,一边使用一边收集新数据、持续改进(离线到在线)。悲观的离线学习 + 谨慎的在线探索,是把 RL 用到高风险场景的主流路线。

7.3 与前几讲的联系

讲次数据来源分布偏移的表现应对
第 8 讲 模仿学习专家示范学习者到了专家没去过的状态DAgger、噪声注入
第 9 讲 RLHF参考模型的回答 + 人类比较奖励模型在分布外不可信KL 惩罚、奖励模型集成
第 10 讲 离线 RL行为策略的历史数据价值估计在分布外不可信悲观原则、覆盖分析

三者本质上是同一个问题的不同侧面:我们只能信任数据覆盖到的地方。


8. 本讲总结

8.1 核心概念清单

  1. 离线 RL:不能交互,只有历史数据;两个问题:离策略评估(OPE)与离线控制。
  2. 重要性采样:w=∏tπe(at∣st)/πb(at∣st)w = \prod_t \pi_e(a_t \mid s_t)/\pi_b(a_t \mid s_t),转移概率约掉;无偏,但方差随视界指数增长(视界诅咒)。
  3. WIS / PDIS / WPDIS:自归一化减小方差(有偏但一致);逐决策利用因果性。
  4. 覆盖假设:πe(a∣s)>0⇒πb(a∣s)>0\pi_e(a \mid s) > 0 \Rightarrow \pi_b(a \mid s) > 0;违反时任何方法都有偏。
  5. 直接法:模型 / FQE;方差小、数据效率高,但模型错时有偏。
  6. 双重稳健:模型基准 + 重要性采样修正误差;模型对或重要性比对,满足其一即无偏;WDR 进一步降低方差。
  7. 外推误差:Q-learning 的 max 选中没见过的动作,其价值是任意的,离线无法纠正。
  8. 悲观原则:LCB 惩罚、策略约束(BCQ)、价值正则(CQL)、隐式方法(IQL);离线要悲观,在线要乐观。
  9. 悲观的代价:低估数据少的好动作;过度悲观可能选择”确定的坏结果”。
  10. 数据质量决定方法:专家数据 → 模仿学习;多样数据 → RL;未知质量 → 悲观 RL 最稳健。

8.2 公式速查表

名称公式
重要性比ρt=πe(at∣st)/πb(at∣st)\rho_t = \pi_e(a_t \mid s_t) / \pi_b(a_t \mid s_t)
轨迹权重w=∏t=0H−1ρtw = \prod_{t=0}^{H-1} \rho_t
ISJ^=1n∑iwiGi\hat J = \frac1n \sum_i w_i G_i
WISJ^=∑iwiGi/∑iwi\hat J = \sum_i w_i G_i / \sum_i w_i
PDISJ^=1n∑i∑t(∏k≤tρi,k) ri,t\hat J = \frac1n \sum_i \sum_t (\prod_{k \le t} \rho_{i,k})\, r_{i,t}
DRDRt=V^(st)+ρt(rt+γDRt+1−Q^(st,at))\mathrm{DR}_t = \hat V(s_t) + \rho_t (r_t + \gamma \mathrm{DR}_{t+1} - \hat Q(s_t, a_t)),DRH=0\mathrm{DR}_H = 0
覆盖假设πe(a∣s)>0⇒πb(a∣s)>0\pi_e(a \mid s) > 0 \Rightarrow \pi_b(a \mid s) > 0
LCB 更新Q(s,a)←R^(s,a)−c/N(s,a)+γ∑s′P^(s′∣s,a)max⁡a′Q(s′,a′)Q(s,a) \leftarrow \hat R(s,a) - c/\sqrt{N(s,a)} + \gamma \sum_{s'} \hat P(s' \mid s,a) \max_{a'} Q(s',a')
CQL 正则项α Es∼D[log⁡∑a′exp⁡Q(s,a′)−Ea∼DQ(s,a)]\alpha\, \mathbb{E}_{s \sim \mathcal{D}}[\log \sum_{a'} \exp Q(s,a') - \mathbb{E}_{a \sim \mathcal{D}} Q(s,a)]

8.3 中英术语对照表

中文英文中文英文
离线强化学习Offline RL批量强化学习Batch RL
离策略评估Off-policy evaluation (OPE)行为策略Behavior policy
评估策略Evaluation / target policy重要性采样Importance sampling (IS)
加权重要性采样Weighted IS (WIS)逐决策重要性采样Per-decision IS (PDIS)
自归一化Self-normalized视界诅咒Curse of horizon
覆盖假设Coverage assumption支撑集Support
直接法Direct method (DM)拟合 Q 评估Fitted Q Evaluation (FQE)
双重稳健Doubly robust (DR)加权双重稳健Weighted doubly robust (WDR)
高置信度离策略评估High-confidence OPE混杂因素Confounder
外推误差Extrapolation error分布外动作Out-of-distribution (OOD) actions
悲观原则Pessimism置信下界Lower confidence bound (LCB)
策略约束Policy constraint保守 Q 学习Conservative Q-Learning (CQL)
单策略集中性Single-policy concentrability离线到在线Offline-to-online

9. 练习题

练习 1(重要性采样):单步问题,两个动作。πb=(0.8,0.2)\pi_b = (0.8, 0.2),πe=(0.2,0.8)\pi_e = (0.2, 0.8)。数据中有 4 个样本:动作 0 奖励 1、动作 0 奖励 1、动作 0 奖励 1、动作 1 奖励 5。分别计算 IS 和 WIS 估计。真实的 J(πe)J(\pi_e) 大约是多少(假设观察到的奖励就是期望奖励)?

参考答案

权重:动作 0 为 0.2/0.8=0.250.2/0.8 = 0.25,动作 1 为 0.8/0.2=40.8/0.2 = 4。 IS:(0.25+0.25+0.25+4×5)/4=20.75/4=5.19(0.25 + 0.25 + 0.25 + 4 \times 5)/4 = 20.75/4 = 5.19。 WIS:(0.75+20)/(0.75+4)=20.75/4.75=4.37(0.75 + 20)/(0.75 + 4) = 20.75/4.75 = 4.37。 真实值:0.2×1+0.8×5=4.20.2 \times 1 + 0.8 \times 5 = 4.2。WIS 更接近。IS 在这个样本中高估,因为动作 1 在 4 个样本中出现了 1 次(25%),而它在 πb\pi_b 下的概率是 20%,大权重放大了这个随机偏差。

练习 2(无偏性):证明 IS 估计量是无偏的:Eτ∼πb[w(τ)G(τ)]=J(πe)\mathbb{E}_{\tau \sim \pi_b}[w(\tau) G(\tau)] = J(\pi_e)。需要什么条件?

参考答案

Eτ∼πb[wG]=∑τpb(τ)pe(τ)pb(τ)G(τ)=∑τpe(τ)G(τ)=J(πe)\mathbb{E}_{\tau \sim \pi_b}[w G] = \sum_\tau p_b(\tau) \frac{p_e(\tau)}{p_b(\tau)} G(\tau) = \sum_\tau p_e(\tau) G(\tau) = J(\pi_e)。条件:对所有 pe(τ)>0p_e(\tau) > 0 的轨迹,pb(τ)>0p_b(\tau) > 0,即覆盖假设。否则那些轨迹在求和中被漏掉了。

练习 3(视界诅咒):假设每一步的比值 ρt\rho_t 独立同分布,E[ρt]=1\mathbb{E}[\rho_t] = 1,E[ρt2]=1.5\mathbb{E}[\rho_t^2] = 1.5。那么 HH 步的权重 w=∏tρtw = \prod_t \rho_t 的方差是多少?H=10H = 10 和 H=40H = 40 时分别约为多少?

参考答案

E[w]=1\mathbb{E}[w] = 1,E[w2]=∏tE[ρt2]=1.5H\mathbb{E}[w^2] = \prod_t \mathbb{E}[\rho_t^2] = 1.5^H,所以 Var[w]=1.5H−1\mathrm{Var}[w] = 1.5^H - 1。H=10H = 10:约 56.7;H=40H = 40:约 1.1×1071.1 \times 10^7。方差随视界指数增长。

练习 4(双重稳健):在 DR 的递推中,如果模型给出 Q^=V^=0\hat Q = \hat V = 0(一个”什么都不知道”的模型),DR 退化成什么估计量?

参考答案

DRt=0+ρt(rt+γDRt+1−0)=ρt(rt+γDRt+1)\mathrm{DR}_t = 0 + \rho_t (r_t + \gamma \mathrm{DR}_{t+1} - 0) = \rho_t (r_t + \gamma \mathrm{DR}_{t+1})。展开得 DR0=∑tγt(∏k≤tρk)rt\mathrm{DR}_0 = \sum_t \gamma^t (\prod_{k \le t} \rho_k) r_t——就是 PDIS。所以 DR 可以看作”用模型改进过的 PDIS”,模型越好,改进越大。

练习 5(外推误差):在 4.2 节的岩浆网格中,如果把朴素离线 Q 学习的初始值从 0 改成 −30(远低于任何真实价值),会发生什么?这是否”解决”了外推误差?

参考答案

没见过的动作的 QQ 值停在 −30,低于所有见过的动作,max⁡\max 不会再选它们,策略只在数据中的动作里选——效果与支撑集约束相同。实测(10 次平均的真实价值):接近专家的数据从 −12.14 提升到 −5.92,一半一半的数据从 −7.86 提升到 −3.58,与支撑集约束的结果完全一致。在表格情况下这确实能”解决”外推误差(相当于一种极端的悲观初始化)。但在深度 RL 中,没见过的输入上的 QQ 值由神经网络的外推决定,无法通过”初始化”来控制——这就是为什么需要 CQL 这类显式的正则化。可以修改 03_offline_control.py 中的 q_init 验证。

练习 6(乐观 vs 悲观):为什么在线学习中对不确定的动作保持”乐观”是好的,而离线学习中应当”悲观”?用一句话概括两者的根本区别。

参考答案

在线学习中,乐观会驱使智能体去尝试不确定的动作,如果它其实不好,尝试之后估计会被纠正,代价有限;离线学习中无法尝试,乐观的错误永远不会被纠正,会直接体现在部署的策略里。根本区别:能否通过收集新数据来纠正错误。

练习 7(动手)★:在 03_offline_control.py 中调整 LCB 的惩罚系数 c(0.5、2、5、20),分别在”接近专家(20 回合)“和”完全随机(200 回合)“数据上测试。最佳的 c 是否相同?这说明了什么?

参考答案

实测结果(10 次平均的真实价值,最优为 −2.50):

数据c = 0.5c = 2c = 5c = 20
接近专家(20 回合)−3.64−3.64−2.58−3.36
完全随机(200 回合)−2.50−2.50−3.28−10.54
一半一半(50 回合)−3.58−2.50−2.50−4.12

专家数据覆盖窄,惩罚太小时仍会选到专家偶然做过一两次的随机动作,需要足够的悲观;随机数据覆盖广,惩罚太大会低估数据较少的好动作,c = 20 时甚至退化到”直接走进岩浆”。最佳的 c 在不同数据上不同——悲观的强度应当与数据的覆盖情况匹配。而在真实问题中我们往往不知道数据的质量,这使得离线 RL 的超参数选择本身就很困难(而选择超参数又需要 OPE……)。

练习 8(思考题):在医疗数据中,医生往往根据病历上没有记录的信息(比如病人的面色、主诉的语气)来决定治疗。这对离策略评估意味着什么?重要性采样还能用吗?

参考答案

这是未观测混杂:影响医生决策的因素同时影响病人的结局,却不在数据中。此时行为策略 πb(a∣s)\pi_b(a \mid s) 在”可观测的状态 ss“上的估计并不是医生真正使用的策略,重要性比是错的,所有 OPE 方法都可能有偏,而且偏差无法从数据中检测出来。这是把离线 RL 用于医疗的最大挑战之一,需要借助因果推断中的敏感性分析等工具。


10. 延伸阅读

  • CS234 Spring 2024 Lecture 10–11 录像与课件。
  • Precup, Sutton & Singh (2000),Eligibility Traces for Off-Policy Policy Evaluation:逐决策重要性采样。
  • Jiang & Li (2016),Doubly Robust Off-Policy Value Evaluation for Reinforcement Learning。
  • Thomas & Brunskill (2016),Data-Efficient Off-Policy Policy Evaluation for Reinforcement Learning:加权双重稳健(WDR)等。
  • Thomas, Theocharous & Ghavamzadeh (2015),High Confidence Off-Policy Evaluation。
  • Levine, Kumar, Tucker & Fu (2020),Offline Reinforcement Learning: Tutorial, Review, and Perspectives on Open Problems:离线 RL 的综述。
  • Fujimoto, Meger & Precup (2019),Off-Policy Deep Reinforcement Learning without Exploration(BCQ):外推误差的提出。
  • Kumar et al. (2020),Conservative Q-Learning for Offline Reinforcement Learning(CQL)。
  • Jin, Yang & Wang (2021),Is Pessimism Provably Efficient for Offline RL?;Rashidinejad et al. (2021),Bridging Offline Reinforcement Learning and Imitation Learning: A Tale of Pessimism。

11. 下一讲预告

本讲的核心是”不能探索时怎么办”。接下来三讲转向另一面:能探索时,怎样探索最高效?

第 1 讲 04 代码和第 4 讲中,我们用 ε\varepsilon-贪心做探索——它简单,但很”笨”:随机地试,不管哪些动作更值得试。下一讲从最简单的探索问题——多臂老虎机——开始:

  • 怎样衡量一个探索策略的好坏?——遗憾(regret);
  • 为什么贪心和 ε\varepsilon-贪心的遗憾随时间线性增长;
  • 面对不确定性时保持乐观:UCB 算法,以及它的对数遗憾;
  • 遗憾的理论下界:任何算法都不可能做得比这更好。

你会看到,本讲的”悲观”与下一讲的”乐观”,恰好是同一枚硬币的两面。

下一讲之前,建议你:跑通 code/lecture10/ 下的 3 个脚本,完成练习 1、3、4,并尝试练习 5、7。

← 返回课程目录