🎯 一句话理解离线强化学习
离线 RL = 只靠’看过去的驾驶日志’来学习开车,而不需要上路试错。这就像赛车手通过研究比赛录像来提升水平,不需要在真实赛道上冒着撞车的风险去尝试新路线。
离线 RL 让强化学习从"边做边学"变成了"看数据学",这对任何试错成本高昂的领域(自动驾驶、医疗、机器人)都是变革性的。
🆚 Online RL vs Offline RL
经典强化学习的困境
传统 RL 是 online(在线) 的:智能体一边与环境交互、收集新数据,一边用这些数据更新策略。这在 Atari 游戏或 MuJoCo 仿真中可行,但到了真实世界就寸步难行。
| 维度 | Online RL | Offline RL |
|---|---|---|
| 数据来源 | 实时交互收集 | 固定数据集(已有日志) |
| 样本效率 | 低(从零开始探索) | 高(复用宝贵数据) |
| 安全性 | ❌ 高风险(试错有代价) | ✅ 零风险(不产生新交互) |
| 数据分布 | 自产自销(in-distribution) | 静态分布(不可改变) |
| 适用场景 | 游戏、仿真 | 驾驶、医疗、工业 |
自动驾驶为什么要离线 RL?
想象让一个无人车在真实道路上做在线 RL:它需要一边开一边尝试激进变道、急刹车来探索"什么动作会导致什么结果"——这在真实交通中是不可接受的。离线 RL 的吸引力在于:可以利用已经积累的海量驾驶日志(包含人类的成功和失败案例),从中学习最优策略,不需要冒着撞车的风险去试错。
离线 RL 的核心优势
- 数据复用:已有的驾驶数据(包括人工接管记录、事故边缘案例)都可以作为训练素材
- 安全第一:不需要在线探索,零试错成本
- 可扩展:可以用任意多的数据训练,不受环境交互速度限制
- 可审计:数据集是固定的,训练过程可复现、可回溯
⚠️ 离线 RL 的核心挑战:Distribution Shift
离线 RL 看似美好,但它面临一个根本性困难:分布偏移(Distribution Shift)。
OOD 动作问题
训练时,策略 $\pi_\theta$ 只能看到数据集中动作-状态的分布。当策略输出的动作偏离数据集中的动作分布时(称为 OOD 动作——Out-Of-Distribution),$Q$ 函数会对这些未见过动作给出过度乐观的估值。
直觉很简单:假设数据集里只有"正常变道"的动作,$Q$ 网络从未见过"急转 90 度"这种动作。由于 $Q$ 网络是函数逼近器,它可能给"急转 90 度"一个不切实际的高估值——纯属外推错误。策略一旦发现这个空洞,就会疯狂输出类似动作,导致灾难性后果。
三个层面的分布偏移
| 偏移层级 | 描述 | 后果 |
|---|---|---|
| 动作分布 | $\pi$ 输出 OOD 动作 | $Q$ 外推高估 |
| 状态分布 | OOD 动作导致未知状态 | cascading error |
| 数据覆盖 | 数据集不够全面 | 策略在未见场景失效 |
解决路线的分类
所有离线 RL 算法本质上都在解决一个问题:如何在"利用数据集信息"和"约束策略不离数据集太远"之间取得平衡。具体路线分为三类:
- 保守方法:压低保守 $Q$ 估值(CQL)
- 隐式约束:策略约束在数据分布附近(IQL, TD3+BC)
- 策略约束:正则化策略不偏离行为策略太远(AWAC, BCQ)
🔒 CQL:保守 Q-Learning
CQL(Conservative Q-Learning)是离线 RL 中最具影响力的算法之一。它的核心思想直接而优雅——压低 OOD 动作的 Q 估值。
核心公式
CQL 在标准的 Bellman 误差上添加一个正则项:
$$\mathcal{L}_{\text{CQL}} = \alpha\ \mathbb{E}_{s \sim \mathcal{D}}\left[\log \sum_{a} \exp(Q(s,a)) - \mathbb{E}_{a \sim \mathcal{D}}\left[Q(s,a)\right]\right] + \mathcal{L}_{\text{Bellman}}$$这个正则项的含义:
- 第一项 $\log \sum \exp(Q)$:最大化数据集中所有动作的 $Q$ 的对数和——实际上是在推高数据分布上的 $Q$(让策略倾向数据集里的动作)
- 第二项 $-\mathbb{E}_{\mathcal{D}}[Q]$:压低数据集中看到的 $Q$ 值
| 成分 | 效果 |
|---|---|
| $\log \sum \exp(Q)$ | 对所有动作的 $Q$ 做 soft-max,高估 OOD 动作的代价 |
| $-\mathbb{E}_{\mathcal{D}}[Q]$ | 压低数据分布内的 $Q$,防止过于乐观 |
| $\alpha$ | 控制保守程度(越大越保守) |
隐含意思是:如果某个动作在数据集中从未出现,它的 $Q$ 会被 low soft-max 压低;如果它频繁出现,则不受影响。这天然抑制了 OOD 动作的高估问题。
在自动驾驶中的意义
CQL 对驾驶特别重要,因为驾驶数据的分布极端不均衡——90% 的驾驶时间是"直线巡航",只有 10% 是"变道、转弯、避险"。CQL 可以安全地处理这些稀疏场景:对于数据集中不常见的激进动作,CQL 天然给出保守估值,让策略不会在不安全的动作上冒进。
CQL 的局限
- 调参敏感:$\alpha$ 选择对性能影响大,需要仔细调节
- 过度保守:太强的约束会抑制策略超越数据集中的人类驾驶水平
- 计算开销:$\sum \exp(Q)$ 需要对所有动作求和,连续动作空间下需要近似
🧊 IQL:隐式 Q-Learning
IQL(Implicit Q-Learning)采取了与 CQL 截然不同的思路——不直接约束 $Q$,而是通过分位数回归隐式地避免 OOD 问题。
核心思想
IQL 意识到离线 RL 的 OOD 问题本质来自 Bellman 更新中的 max 操作——标准的 $Q$ 学习需要计算 $\max_a Q(s’,a)$,这一步会采到 OOD 动作。IQL 的解决方案是:不做 max,用 expectile 回归来估计最优价值函数。
$$\mathcal{L}_{\text{IQL}} = \mathbb{E}_{(s,a,s') \sim \mathcal{D}}\left[L_2^\tau\left(r + \gamma V(s') - Q(s,a)\right)\right]$$其中 $L_2^\tau(u) = |\tau - \mathbb{1}(u < 0)| \cdot u^2$ 是不对称的 MSE 损失,$\tau > 0.5$ 时它会"向上偏置"——让 $Q$ 估值偏向更高的分位数,从而隐式地选择最优动作而不需要显式 max。
| 算法 | 处理 OOD 的方式 | 偏置来源 |
|---|---|---|
| CQL | 显式压低 OOD 动作 $Q$ | 正则项 $\alpha$ |
| IQL | 隐式避免 Bellman max | expectile $\tau$ |
| TD3+BC | 约束策略靠近数据 | BC 正则化 |
| AWAC | 加权 BC | advantage 权重 |
CQL vs IQL 对比
| 维度 | CQL | IQL |
|---|---|---|
| 范式 | 保守 $Q$ 估值 | 避免 OOD Bellman |
| 调参 | $\alpha$(保守强度) | $\tau$(期望分位数) |
| 连续动作 | 需近似(采样求和) | 天然支持 |
| 性能上限 | 可能过度保守 | 可能不够保守 |
| 驾驶适用性 | 安全偏好场景 | 数据质量高时 |
🎯 TD3+BC 与 AWAC:策略约束方法
除了修改 $Q$ 函数,另一类方法直接在策略更新层面做文章。
TD3+BC:最简单的基线
TD3+BC 是"暴力但有效"的典型。它只是在 TD3 的 policy update 上加一个行为克隆约束:
$$\pi = \arg\max_\pi \mathbb{E}_{(s,a) \sim \mathcal{D}}\left[Q(s,\pi(s)) - \lambda \cdot (\pi(s) - a)^2\right]$$第一项是标准的 Q 引导策略更新,第二项是 BC 正则——让策略不要偏离数据集中的人类动作太远。$\lambda$ 控制约束强度。
| 优势 | 局限 |
|---|---|
| 实现极简(修改几行代码) | 约束过于简单粗暴 |
| 收敛稳定 | 对数据质量敏感 |
| 与任何 Q-based 算法兼容 | 可能限制策略上限 |
TD3+BC 的标语是:“只要把策略拴在数据上,OOD 就不会来找你。”
AWAC:Advantage-Weighted Actor-Critic
AWAC 采取更精细的做法——用 advantage 给行为克隆加权:
$$\theta = \arg\max_\theta \mathbb{E}_{(s,a) \sim \mathcal{D}}\left[\log \pi_\theta(a|s) \cdot \exp\left(\frac{1}{\beta} A(s,a)\right)\right]$$- 当 $A(s,a) > 0$(该动作好于平均),权重大,策略学习这个动作
- 当 $A(s,a) < 0$(该动作差于平均),权重小,策略忽略这个动作
AWAC 的优雅之处在于它天然处理了数据质量不均:数据里既有好动作也有差动作,AWAC 只学好的、忽略差的。
方法综合对比
| 算法 | 约束位置 | 是否需要 $Q$ | 数据效率 | 实现难度 |
|---|---|---|---|---|
| CQL | Q 函数 | ✅ | 高 | 中 |
| IQL | Bellman 更新 | ✅ | 高 | 中 |
| TD3+BC | 策略输出 | ✅ | 中 | 低 |
| AWAC | 策略更新 | ✅ | 中 | 低 |
| BCQ | 策略扰动量 | ✅ | 中 | 高 |
🔄 Offline-to-Online Fine-tuning
离线 RL 的终极问题在于:纯离线方法受限于数据质量,永远无法超越数据集中最好的行为。解决思路是先离线预训练、再在线微调。
两阶段范式
微调中的关键挑战
离线到在线的过渡并非顺滑,核心困难在于 CQL 的保守性在在线阶段反而成为束缚:
| 问题 | 原因 | 缓解策略 |
|---|---|---|
| 保守惯性 | CQL 训练的 $Q$ 过于悲观 | 逐步退火 $\alpha$ |
| 分布突变 | 在线数据快速改变分布 | 混合离线+在线 replay buffer |
| 灾难性遗忘 | 策略忘记了离线学到的先验 | 加入 KL 正则化 |
自动驾驶中的实践
在自动驾驶 VLA 的 RL 微调中,offline-to-online 已经成为实际落地的默认范式:
- 大规模离线阶段:用百万级驾驶片段训练基础策略(行为克隆 + 离线 RL)
- 小规模在线阶段:在仿真器中用 PPO/GRPO 做 RL 微调,reward 来自安全、舒适、效率指标的加权组合
- 混合 buffer:保留 50% 的离线数据在 replay buffer 中,防止策略在在线阶段"跑偏"
🚗 离线 RL 与 VLA 的深度融合
为什么离线 RL 对 VLA 驾驶如此重要?
VLA 模型(Vision-Language-Action)将视觉理解、语言推理和动作生成统一在一个网络中。离线 RL 对这类模型的训练有天然适配性:
| VLA 训练需求 | 离线 RL 的匹配 |
|---|---|
| 海量驾驶数据(百万级场景) | 离线 RL 天然处理静态数据集 |
| 安全约束严格(不可在线试错) | 零试错训练 |
| 数据含大规模人类驾驶日志 | 直接利用行为克隆先验 |
| 需要处理长尾场景 | CQL 保守性提供安全兜底 |
CQL 用于驾驶安全约束
具体来说,CQL 在驾驶 VLA 中有几个关键应用点:
- 安全 Q 估计器:CQL 训练的 $Q$ 网络可以作为"安全过滤器"——当策略输出的动作的 $Q$ 值低于某个阈值时,回退到保守策略或人类示范
- 碰撞避让:将碰撞惩罚编码进 reward 并使用 CQL 优化,模型学到"安全动作的高 Q、危险动作的低 Q"
- 行为边界:CQL 天然约束策略在数据分布内,防止 VLA 模型产生"幻觉动作"(如突然急转方向)
当前趋势:偏好 + 离线 RL
离线 RL 的最新方向是与 偏好学习 结合,形成类似 RLHF 的离线范式:
- 收集人类对驾驶片段的偏好打分(安全 vs 激进、舒适 vs 颠簸)
- 训练偏好模型替代手工 reward
- 用离线 RL 算法(CQL / IQL)在偏好 reward 下优化策略
这本质上是 RLHF 的离线版本:不需要在线收集人类反馈,所有偏好标注都在已有数据上进行。对驾驶来说,这比在线 RLHF 安全得多。
代表性驾驶离线 RL 工作
| 工作 | 方法 | 场景 | 关键贡献 |
|---|---|---|---|
| SafeDrive | CQL + 安全约束 | 城市驾驶 | 离线学习安全策略 |
| DriveOffline | IQL + 多任务 | 高速 + 城市 | 单一策略适应多场景 |
| Offline2Online-VLA | CQL→PPO 两阶段 | 端到端驾驶 | 离线预训练 + 在线微调 |
📝 个人思考
离线 RL 的价值不仅在于"不用在线交互"——它更深层的意义是 把 RL 从’实验科学’变成了’数据科学’。传统 RL 研究者花大量时间调环境、调 simulator、等待训练跑完。离线 RL 的数据集是固定的,实验是确定的,训练是完全可复现的。这种确定性的提升,让 RL 在大规模系统(如自动驾驶)中的工程落地变得可行。
但我也认为离线 RL 有一个尚未被充分认知的局限:数据集中隐含的 bias 会被算法放大。如果驾驶数据大量来自保守驾驶员,离线 RL 学到的策略也会偏保守;如果数据里没有急刹和危险场景的经验,模型面对边缘情况时仍然可能不知所措。离线 RL 不是银弹,它依赖数据质量的程度比想象的高得多。
最后,对于自动驾驶 VLA 的 RL 微调,我的判断是:纯离线 CQL/IQL 提供安全的起点,PPO/GRPO 在线微调提供性能的上限,两者的两阶段结合才是当前最佳实践。 单靠任一方都很难同时满足安全性和性能要求。
📖 这是知识点拆解系列的第 12 篇。离线 RL 让’安全地学习驾驶’成为可能,但数据 bias 和 OOD 的幽灵仍然在阴影中徘徊。