Skip to content

离线强化学习

离线强化学习(Offline RL,又称 Batch RL)只从预先收集好的静态数据集中学习策略,不与环境交互——这是 RL 落地真实世界(医疗、自动驾驶、工业控制)的关键技术。本页梳理分布偏移问题、CQL、BCQ、Decision Transformer、扩散策略等核心方法。前置阅读:强化学习概览、里程碑。

在线 RL(online RL,指训练过程中智能体持续与环境交互、边采集数据边更新策略的范式)在棋类、游戏等模拟器中表现惊人,但真实世界落地时面临三重障碍:

  1. 试错成本高:医疗方案不能在患者身上随意试错,自动驾驶不能靠撞车来学习。
  2. 数据已存在但不可复现:医院积累了海量电子病历,车队积累了数十亿英里驾驶日志——这些都是宝贵的决策数据,但它们由各种不同策略(人类医生、不同版本的驾驶软件)混合产生。
  3. 在线微调风险大:即便部署后允许少量探索,安全约束也极严格。

离线 RL 的核心目标就是:从这些已有的、由多种行为策略(behavior policy,即收集数据时实际使用的策略)混合产生的静态数据集中,学出比数据中最好策略更优的策略,同时训练期间完全不与环境交互。

形式化定义:给定一个由未知行为策略 β(a|s) 收集的静态数据集 D={(si,ai,ri,si′)}i=1ND = \{(s_i, a_i, r_i, s'_i)\}_{i=1}^{N},目标是学习一个策略 π(a|s),使得期望回报 J(π)=Eπ[∑tγtrt]J(\pi) = \mathbb{E}_\pi[\sum_t \gamma^t r_t] 最大化,且训练过程中不允许用 π 从环境中采集任何新数据。

在线 RL 就像学徒跟师傅边学边做——你可以随时尝试新做法、看到结果、纠正错误。离线 RL 则像考古学家从古籍中还原失传的技艺——你只能看着别人留下的操作记录(可能水平参差不齐),不能自己动手试,必须纯靠推理学到更好的策略:

  • 核心矛盾:RL 需要通过”试错”来评估动作的好坏;但离线数据里只有”别人试过的动作”,对于数据中没出现过的动作,你完全不知道结果——这就是分布偏移(distribution shift)。
  • Naive 方案的问题:直接拿离线数据训练 Q-learning(一种经典的离策略 TD 学习算法,用 Q(s,a)←Q(s,a)+α[r+γ⋅max⁡a′Q(s′,a′)−Q(s,a)]Q(s,a) \leftarrow Q(s,a) + \alpha[r + \gamma \cdot \max_{a'} Q(s',a') - Q(s,a)] 更新动作价值函数),智能体会高估数据中没见过的动作的 Q 值(因为这些动作没有负样本可以纠正它),学出离谱的策略——这叫外推误差(extrapolation error)。
  • CQL 的思路= “保守一点”——故意压低那些数据中没怎么见过的 (s,a) 的 Q 值,让策略不敢贸然选数据外的动作。
  • BCQ 的思路= “只信专家”——用生成模型(如 VAE,变分自编码器)学习”什么样的动作在数据中出现过”,策略只能在”见过”的动作里挑。
  • Decision Transformer 的思路= 把 RL 变成序列建模——直接用 Transformer 学”给定回报目标和历史状态,下一步该做什么”,彻底跳过 Bellman 方程(动态规划中递归分解累积回报的核心等式 Q(s,a)=E[r+γ⋅V(s′)]Q(s,a) = \mathbb{E}[r + \gamma \cdot V(s')])。
  • Diffusion Policy 的思路(2022—2024 兴起)= 用扩散模型(Diffusion Model,通过逐步去噪从随机噪声中生成数据的生成模型)直接生成多步动作序列,天然处理多模态动作分布,避免单步决策的短视。

关键区别在数据来源:在线 RL 边学边采集,离线 RL 只能用现成的静态数据集:

普通 Q-learning 在离线数据上会高估未见动作的 Q 值;CQL 通过惩罚项把它压下来:

numpy 演示:外推误差与保守 Q 值

Section titled “numpy 演示:外推误差与保守 Q 值”

一个简单的链式 MDP,展示标准 Q-learning 在离线数据上会高估未见动作,而保守修正可以缓解:

import numpy as np
# 简单设定:3 个状态 (0,1,2),2 个动作 (a0,a1)
# 离线数据只包含状态 0 和 1 下选 a0 的记录
Q = np.zeros((3, 2)) # Q 表
# 模拟的离线转移:(状态, 动作, 奖励, 下一状态)
offline_data = [(0, 0, 0.0, 1), (1, 0, 1.0, 2), (0, 0, 0.0, 1), (1, 0, 1.0, 2)]
alpha, gamma = 0.1, 0.9
for _ in range(500):
for s, a, r, s_next in offline_data:
# 标准 Q-learning:用 max Q(s_next, *) 做更新
target = r + gamma * np.max(Q[s_next])
Q[s, a] += alpha * (target - Q[s, a])
print("标准 Q-learning 的 Q 表:")
print(Q) # 动作 a1 的 Q 值始终是 0——从未被更新过,但 max 会选它
print("问题:状态 2 的 a1 Q=0,可能被 max 误选为最优")
# CQL 的保守修正:对未见过的 (s,a) 施加额外惩罚
conservatism = 1.0
for s, a, r, s_next in offline_data:
target = r + gamma * np.max(Q[s_next]) - conservatism * np.max(Q[s_next])
Q[s, a] += alpha * (target - Q[s, a])
print("加 CQL 惩罚后 Q 值更保守,外推误差被抑制")
  • 离线数据的质量决定上限:数据集覆盖的动作分布越广、策略越多样,学到的策略越好;如果数据只来自一个次优策略,RL 很难大幅超越它。优先收集多样性行为数据。
  • CQL 的保守强度要调:保守太强(Q 被压太低)策略不敢动,太弱仍有外推误差——通常用验证集调 conservatism 系数。
  • Decision Transformer 适合大数据集:当数据量大(百万级转移)且含高回报轨迹时,DT 的序列建模效果接近甚至超过传统 RL;数据量小时不稳定。
  • 评估是难点:离线 RL 不能直接在环境中跑策略评估(那就不是离线了),需要用 off-policy 评估(OPE)方法如 FQE、IS、DICE 从数据中估计策略表现。
  • 不要在线微调:真正的离线场景(医疗、自动驾驶)微调成本极高或危险;如果允许在线微调,应使用 offline-to-online RL 方法逐步过渡。
  • 数据归一化与奖励缩放:Decision Transformer 对奖励尺度敏感,输入回报目标要合理归一化,否则条件生成会失效。
  • 医疗治疗方案优化:从电子病历中学习慢性病(糖尿病、脓毒症)的最优用药策略——不能让 RL 在患者身上在线试错,只能从历史治疗记录离线学习。MIT 临床 RL 团队在此方向有多项成果。
  • 自动驾驶决策:Waymo、Cruise 从数百万英里真实驾驶日志中离线训练变道、路口通行策略,避免在线试错的巨大安全风险。
  • 工业控制与能源调度:Google 数据中心冷却优化、电网调度等场景从历史运行日志离线学习控制策略,降低能耗。
  • 推荐系统离线优化:从历史推荐日志(曝光-点击-转化)离线训练推荐策略,避免在线 A/B 实验的流量损失——与多臂老虎机形成对比。
  • 机器人从示范数据学习:从人类遥操作记录的轨迹中离线学习操作策略,结合模仿学习方法。详见Sim-to-Real 迁移。
类库语言说明
d3rlpyPython专注离线 RL 的开源库,实现 CQL、BCQ、AWAC、Decision Transformer 等,API 类似 scikit-learn
MinariPythonFarama 基金会的离线 RL 数据集格式与管理库(Gymnasium 生态)
D4RLPython/数据集经典离线 RL benchmark 数据集(MuJoCo、AntMaze、Kitchen 等),广泛用于论文评估
RLlib (Ray)Python分布式 RL 库,部分支持离线训练模式
COBSPythonComparing Offline Batch RL Solvers,离线 RL 算法对比工具
术语英文解释
离线强化学习Offline RL (Batch RL)只从静态数据集学习策略、训练时不与环境交互的 RL 范式
分布偏移Distribution Shift学习策略产生的数据分布与训练数据集分布不一致的问题
外推误差Extrapolation Error对训练数据中未出现的动作/状态,Q 值估计不准甚至被高估
保守 Q 学习Conservative Q-Learning (CQL)对数据中少见动作施加 Q 值惩罚,学出保守策略的离线 RL 算法
Batch-Constrained Q-LearningBCQ用生成模型约束动作空间,只在数据见过的动作中选择
Decision TransformerDT将 RL 重构为序列建模,用 Transformer 根据回报目标条件生成动作
离策略评估Off-Policy Evaluation (OPE)用另一个策略收集的数据评估目标策略性能的方法,离线 RL 的核心评估手段
行为策略Behavior Policy收集离线数据集时使用的策略
  • Kumar et al.,「Conservative Q-Learning for Offline Reinforcement Learning」(NeurIPS 2020):CQL 原始论文,提出保守正则化抑制外推误差,成为离线 RL 最重要的基线之一。
  • Fujimoto et al.,「Off-Policy Deep Reinforcement Learning without Exploration」(ICML 2019):BCQ 论文,首次系统指出离线 RL 中的外推误差问题,提出用生成模型约束动作。
  • Chen et al.,「Decision Transformer: Reinforcement Learning via Sequence Modeling」(NeurIPS 2021):DT 论文,将 RL 转化为序列建模,颠覆传统 Bellman 框架,引发”RL as supervised learning”思潮。
  • Levine et al.,「Offline Reinforcement Learning: Tutorial, Review, and Perspectives on Open Problems」(arXiv 2020):离线 RL 的权威综述,系统梳理方法分类、理论挑战与未来方向。
  • Fu et al.,「D4RL: Datasets for Deep Data-Driven Reinforcement Learning」(arXiv 2020):离线 RL 标准 benchmark,提供多领域数据集与统一评估协议。
  • Kumar et al.,「DR3: Value-Based Deep RL Should Not Be Solving Large LPs」(NeurIPS 2022):分析离线 RL 中的表示崩塌问题,揭示价值函数训练的根本难点。