外观
离线强化学习
一句话定位:这一页讲清楚离线强化学习(Offline RL)——只靠一份固定数据集、永远不再与环境交互来学策略;读完后你能说出"分布外动作 + 价值高估"这个核心难题的机制,理解保守主义思想的三种实现(约束策略、保守价值、隐式 Q),并对照业务场景判断"该不该用离线 RL"。
一、问题设定与动机:为什么"不能碰环境"反而是常态
1. 设定:从数据到策略,零在线交互
在线 RL 的范式是"边做边学"(试错、探索、看反馈)。离线 RL 完全不同:
text
离线 RL 范式
┌───────────────────────────────────────────────┐
│ 1. 一份固定数据集 D = {(s, a, r, s')} │
│ (由某个行为策略/专家/历史日志产生) │
│ 2. 训练阶段:只在 D 上学,禁止与环境交互 │
│ 3. 部署:学好的策略直接上线,之后才见真实世界 │
└───────────────────────────────────────────────┘训练时一次环境交互都不允许。为什么这个设定如此普遍?
| 动机 | 例子 |
|---|---|
| 安全 | 自动驾驶、医疗、核反应堆:在线试错会死人 |
| 成本 | 机器人真机、金融实盘:一次试错代价极高 |
| 合规/伦理 | 给真实用户推广告不能乱试(见推荐与广告中的 RL) |
| 数据现成 | 历史日志已经攒了几亿条(日志即数据) |
2. 与"经验回放"的区别:不是一回事
离线 RL 的"离线"不是 off-policy 的"off"。off-policy 训练时仍在在线探索(行为策略与目标策略不同但都在交互);离线 RL 完全禁止交互,相当于"用别人(或自己过去)的数据做事后学习"。这让它极难但极有工程价值——你手上唯一的东西就是那份数据。
二、核心困难:OOD 动作与价值高估(自举幻觉)
1. 问题机制:价值函数在没见过的地方"自嗨"
用数据 D 训练 Q 函数(比如用价值学习的 Q-learning 目标):
$$ Q(s,a) \leftarrow r + \gamma \max_{a'} Q(s', a') $$
关键病根在 $\max_{a'}$:这个 max 可能选中"数据集里从未出现过的动作"——因为 Q 是神经网络,在任何输入上都会输出一个值,即使那个 (s',a') 从没被采样过。
当 $Q(s', a')$ 对 OOD 动作是高估的(神经网络在未见过的输入上通常输出不合理的值,可高可低),max 就会挑中那个虚高的动作,然后用"虚高的 Q"作为目标训练自己——自举(bootstrap)幻觉:Q 越学越虚,最后全网络虚高,价值完全失真。
text
自举幻觉的恶性循环
┌────────────────────────────────────────────┐
│ Q 对没见过动作给出虚高估值 │
│ │ │
│ ▼ │
│ max_a' Q(s', a') 选中虚高的动作 │
│ │ │
│ ▼ │
│ 用虚高目标训练 Q → Q 更虚 │
│ │ │
│ └── 循环直到价值函数爆炸/失真 ──────┘
└────────────────────────────────────────────┘与在线 RL 的本质区别
在线 RL 也有 OOD 问题,但策略可以行动去探索、纠正错误估计。离线 RL 没有这个退路——数据集是封闭的,Q 对 OOD 动作的幻觉永远得不到现实纠正。所以离线 RL 的全部艺术就是"不让 Q 信任没见过的动作"。
2. 直观示意图
text
Q 值
▲
│ ╱╲ ← 真实 Q(不可知)
│ ╱╲ ╱ ╲
│ ╱ ╲ ╱ ╲ ← 学习的 Q(无数据处虚高)
│ ╱ ╳ ╲
│ ╱ ╱ ╲ ╲
│ ╱ ╱ ╲ ╲
│ ╱ ╱ ╲ ╲
└─────────────╳───────────────► 动作 a
│
数据覆盖的区域(虚线)
之外全是"幻觉区"3. 为什么"分布外"这个词要重点理解
策略在部署时会访问到数据集中稀疏覆盖的状态动作区域。评估一个离线策略好坏,要看它在全状态空间的表现,而数据集只覆盖了行为策略访问过的地方。分布不匹配 → 泛化失败。所以离线 RL 论文里反复出现"支持集(support)""保守(conservative)""贴近数据分布(stay close to the data)"等词。
三、三类解法:约束策略 / 保守价值 / 隐式 Q
1. 第一类:约束策略(BCQ、BEAR)——别走太远
思想:把策略约束在数据集的"支持区域"内——模型只允许从"数据里见过的动作"里挑。
- BCQ(Batch-Constrained Q-learning, Fujimoto et al., 2019):用条件变分自编码器(CVAE)建模"数据中 s 下出现的动作分布",策略只能从这个分布采样少量候选动作,再在其中选 Q 最大的。动作空间被"钳"在数据范围内,OOD 动作根本没机会被选。
- BEAR(Bootstrapping Error Accumulation Reduction, Kumar et al., 2019):用"支撑集距离"(MMD)约束策略靠近数据分布,允许比 BCQ 更灵活的分布选择。
直观类比:BCQ 像"只在看过的菜谱里挑菜",BEAR 像"在菜谱附近的变体里挑"。
2. 第二类:保守价值(CQL)——让 Q 学会谦虚
思想:不让 Q 高估,而是主动压低 OOD 动作的 Q。CQL(Conservative Q-Learning, Kumar et al., 2020)在标准 Q-learning 目标上加了惩罚项:让"在数据分布外动作上的 Q"尽量小。
$$ Q = \arg\min_Q \Big[ \underbrace{\alpha , \mathbb{E}{(s,a)\sim D}[Q(s,a)]}{\text{压数据内 Q 别虚高}} - \alpha , \mathbb{E}{a'\sim \pi}[\dots] + \underbrace{\text{标准 TD 误差}}{\text{保持学对}} \Big] $$
(完整公式较繁,核心直觉是:对数据中见过的 (s,a) 正常学,对没见过的动作压低 Q,从而让 $\max_{a'} Q(s',a')$ 不再选中幻觉动作。)
CQL 的成功之处:它把"保守性"放进目标函数,效果稳定,成为离线 RL 事实上的基线之一。变体有 CQL(𝒟)、Cal-QL 等。
3. 第三类:隐式 Q(IQL)——干脆绕开 max
思想:不学 Q 也不取 max,改学"条件分位数"。
IQL(Implicit Q-Learning, Kostrikov et al., 2022):用 expectile 回归(一种"偏侧"的回归)学价值函数——只拟合"数据里表现好于平均水平的那部分":
$$ L(\theta) = \mathbb{E}\left[ L_2^\tau\left( r + \gamma V(s') - Q_\theta(s,a) \right) \right] $$
其中 $L_2^\tau(u) = |\tau - \mathbf{1}{u<0}| u^2$。直觉:τ>0.5 时,回归"偏向较高的值",近似于"该状态能拿到的最佳价值",但完全不需要对 OOD 动作做 max——因为它的策略是"用数据里采到的动作"来提升。
IQL 的核心吸引力:不需要离线数据里有(状态, 最优动作)配对,对次优/噪声数据更鲁棒;且实现简单(只需要 expectile 回归 + 行为克隆式的策略提取)。
4. 三类方法对比
| 方法 | 思路 | 对数据要求 | 实现难度 | 特点 |
|---|---|---|---|---|
| BCQ | 约束策略(动作受限) | 数据覆盖足够 | 中 | 保守、稳 |
| CQL | 保守价值(压低 OOD Q) | 中 | 中高 | 性能强、是基线 |
| IQL | 隐式 Q(绕开 max) | 低(可次优数据) | 低 | 简洁、鲁棒 |
四、与行为克隆 / 模仿学习的关系
离线 RL 的"亲戚"是行为克隆(Behavior Cloning, BC)——都只用离线数据,都不在线交互。区别在学什么:
| 维度 | 行为克隆(BC) | 离线 RL |
|---|---|---|
| 学的目标 | 模仿行为策略的 (s→a) 映射 | 优化回报(超越行为策略) |
| 需要的标签 | 动作标签 | 奖励 |
| 能否超越数据 | 不能(最多复制) | 理论上能(找到比数据更好的策略) |
| 失败模式 | 分布漂移(复合误差累积) | 价值幻觉(OOD 高估) |
| 数据要求 | 专家数据最好 | 覆盖性好、有奖励 |
关键洞察
离线 RL 的承诺是"从次优数据里学出比数据更好的策略"(通过价值判断)。行为克隆做不到。但反过来,当数据质量差或奖励不可靠时,BC 反而是更安全的基线——先跑 BC,再试离线 RL,最后用离线评估判断谁更强。
从模仿到强化:DAgger 等中间地带
DAgger(Dataset Aggregation)在训练时会让策略探索并让专家标注——它需要"专家"但不与环境交互评分。它属于模仿学习的交互式变体,介于 BC 与 RL 之间。离线 RL 的相关讨论见RL vs 相邻领域。
五、评估的陷阱:离线评估为什么难
离线 RL 最被低估的难点是评估:训练时禁止交互,那怎么知道新策略好不好?你只有数据集 D。
1. 直接做法及其问题
- 在数据集上算回报:新策略访问的 (s,a) 不一定在数据里,无法直接"查"奖励;
- 用学习的 Q 评估:Q 本身对 OOD 有幻觉,评估自然不可信——用幻觉评价幻觉,循环论证;
- 重要性采样(IS):理论正确但方差随序列长度指数爆炸。
2. 现实选择
| 方法 | 做法 | 局限 |
|---|---|---|
| 轨迹级 IS | 用数据内轨迹重新加权 | 方差随长度爆炸 |
| 模型基评估 | 学世界模型再模拟 | 模型误差传导 |
| 保守估计 | 用 CQL/IQL 这类"不会高估"的价值当评估 | 只给下界,不给精确值 |
| 上线前 A/B | 小流量灰度、带护栏 | 本质是"小规模在线" |
工程铁律
离线评估只能给"相对排序",不能给"绝对性能"。两三个候选策略用离线评估排序靠前,再小流量上线验证,才是工业界可用的流程。任何宣称"离线评估精确预言上线效果"的工具都要打问号。
六、离线数据工程与落地流水线
1. 数据质量:离线 RL 的第一生产力
离线 RL 的一切建立在数据上,数据有多好,天花板就有多高。三个必须审查的维度:
| 维度 | 审查什么 | 常见问题 |
|---|---|---|
| 覆盖率(coverage) | 状态动作空间是否被充分访问 | 行为策略太单一 → 大量区域无数据 → OOD 不可避免 |
| 行为策略多样性 | 数据是否由多种策略/多个时期产生 | 单一策略数据 → 学到的策略只是它的"内插" |
| 奖励一致性 | 奖励定义是否统一、有无污染 | 历史日志奖励口径变化 → 价值信号矛盾 |
实践建议:训练前先做"数据画像"——统计 (s,a) 分布的稀疏度、各区域回报的方差、时间上的分布漂移。数据画像应该和模型训练一样是正式环节,而不是事后调试。
2. 落地流水线:离线出候选,在线做验证
工业界标准流程(推荐、广告、机器人日志场景通用):
text
离线 RL 落地五步
1. 数据整理:清洗、去重、奖励校准、画像
2. 多候选:BC 基线 + CQL/IQL 等 2-3 个离线算法出候选策略
3. 离线排序:用保守评估(CQL 价值 / IS)给候选排序
4. 在线灰度:小流量 A/B,带护栏(探索受限、可回滚)
5. 数据回流:灰度期数据进入下一轮训练(在线-离线闭环)为什么必须"灰度"
离线评估只能排序不能定绝对值(见上节)。只有小流量灰度能给出"真实世界里这个策略到底行不行"的答案,且万一翻车损失可控。离线 RL 的正确打开方式是"快速迭代的在线验证管道",而不是"一键替换"。
3. 与 model-based 的衔接:离线世界模型
一个近年兴起的补充路线:用离线数据学一个世界模型,然后在模型里做更多"离线探索"(offline model-based RL):
- 好处:模型可以"想象"数据没覆盖到的轨迹,缓解覆盖率不足;
- 风险:想象的部分可能有模型误差(见基于模型的 RL 与世界模型的"模型误差陷阱")——所以在模型里评估价值时要用保守/不确定性加权。
这类方法(如 MOReL、COMBO)仍是研究前沿,详见前沿进展。
七、落地现实:推荐、金融、机器人
1. 推荐系统:离线 RL 的最大舞台
推荐天然满足离线 RL 的全部前提:历史行为日志海量、在线试错贵、奖励(点击/转化)现成。实际落地组合:
- 短期:用日志数据离线训练策略,上线后继续收集数据;
- 保守性:因为用户行为非平稳(今天的数据明天失效),工业界常用混合方案——离线 RL 出策略 + 在线小流量验证 + 定期重训,见推荐与广告中的 RL。
2. 金融交易
金融场景的数据信噪比极低、市场非平稳,离线 RL 的"数据即历史"假设几乎不成立。现实结论是:离线 RL 在金融里更适合做"执行优化"这类近平稳子问题,而非整体交易策略(完整剖析见金融交易中的 RL)。
3. 机器人:从日志里学
机器人手上有海量"人类演示 + 旧策略日志"(遥操作数据、多轮实验日志)。离线 RL 能让新策略从这些历史数据里学出来,不必每次重新在线跑——这是机器人领域的核心应用方向。相关见机器人控制与 Sim2Real与前沿进展。
八、决策树:什么时候该用离线 RL
text
手上有一份历史数据 + 一个顺序决策问题
│
├── 数据里动作是"行为策略"采的、且覆盖好?
│ ├── 否 → 别用离线 RL(数据不行,先用 BC/在线)
│ └── 是 ↓
├── 奖励信号可靠吗?
│ ├── 否 → 用 IRL/偏好学习先造奖励(见奖励工程页)
│ └── 是 ↓
├── 能安全地小规模在线验证?
│ ├── 是 → 离线 RL 出候选 + 小流量 A/B(推荐)
│ └── 否 → 谨慎:离线评估只能排序,别赌绝对性能
│
结论:离线 RL 适合"数据现成 + 奖励可靠 + 能灰度验证"的场景;
不适合"数据烂 + 奖励造谣 + 一键全量上线"的场景。工程建议清单
- 先做 BC 基线:BC 大概率能到行为策略 70-90% 的水平,是离线 RL 必须击败的下限;
- 数据审查:检查数据覆盖率(行为策略是不是太单一)、奖励是否一致、有没有环境 bug 污染(见常见陷阱与反模式);
- 保守参数调大起步:CQL 的 α、BCQ 的候选数等"保守旋钮"先往大调,稳定后再说;
- 用离线评估排序、在线灰度验证:永远记住上节铁律。
前沿方向
离线 RL 与"世界模型""扩散模型策略"的交叉是当前热点(如 diffuser、IQL+扩散)。更新的进展(RvsS 之争、model-based offline)见前沿进展。
延伸阅读
- 推荐与广告中的 RL —— 离线 RL 最成熟的落地场景:日志数据 + 灰度验证
- 金融交易中的 RL —— 非平稳市场里离线 RL 的陷阱与"什么时候真有用"
- 价值学习:从动态规划到 DQN —— Q-learning 的 max 算子是 OOD 幻觉的源头
- 策略梯度方法 —— 离线策略梯度(offline PG)如何用 importance weighting 处理
- 前沿进展 —— IQL/CQL 之后的离线 RL 最新进展
- 常见陷阱与反模式 —— 数据污染、评估作弊等离线项目高频翻车点
参考资料
- Levine, S., Kumar, A., Tucker, G., & Fu, J. (2020). Offline Reinforcement Learning: Tutorial, Review, and Perspectives on Open Problems. arXiv:2005.01643(离线 RL 综述,必读)
- Fujimoto, S., Meger, D., & Precup, D. (2019). Off-Policy Deep Reinforcement Learning without Exploration. ICML. arXiv:1812.02900(BCQ)
- Kumar, A., Zhou, A., Tucker, G., & Levine, S. (2020). Conservative Q-Learning for Offline Reinforcement Learning. NeurIPS. arXiv:2006.04779(CQL)
- Kostrikov, I., Nair, A., & Levine, S. (2022). Offline Reinforcement Learning with Implicit Q-Learning. ICLR. arXiv:2110.06169(IQL)
- Kumar, A., Fu, J., Soh, M., Tucker, G., & Levine, S. (2019). Stabilizing Off-Policy Q-Learning via Bootstrapping Error Reduction. NeurIPS. arXiv:1906.00949(BEAR)
- Fu, J., Kumar, A., Nachum, O., Tucker, G., & Levine, S. (2020). D4RL: Datasets for Deep Data-Driven Reinforcement Learning. arXiv:2004.07219(D4RL 数据集,离线 RL 基准)