🎯 一句话理解离线强化学习

离线 RL = 只靠’看过去的驾驶日志’来学习开车,而不需要上路试错。这就像赛车手通过研究比赛录像来提升水平,不需要在真实赛道上冒着撞车的风险去尝试新路线。

离线 RL 让强化学习从"边做边学"变成了"看数据学",这对任何试错成本高昂的领域(自动驾驶、医疗、机器人)都是变革性的。


🆚 Online RL vs Offline RL

经典强化学习的困境

传统 RL 是 online(在线) 的:智能体一边与环境交互、收集新数据,一边用这些数据更新策略。这在 Atari 游戏或 MuJoCo 仿真中可行,但到了真实世界就寸步难行。

维度Online RLOffline RL
数据来源实时交互收集固定数据集(已有日志)
样本效率低(从零开始探索)高(复用宝贵数据)
安全性❌ 高风险(试错有代价)零风险(不产生新交互)
数据分布自产自销(in-distribution)静态分布(不可改变)
适用场景游戏、仿真驾驶、医疗、工业

自动驾驶为什么要离线 RL?

想象让一个无人车在真实道路上做在线 RL:它需要一边开一边尝试激进变道、急刹车来探索"什么动作会导致什么结果"——这在真实交通中是不可接受的。离线 RL 的吸引力在于:可以利用已经积累的海量驾驶日志(包含人类的成功和失败案例),从中学习最优策略,不需要冒着撞车的风险去试错。

离线 RL 的核心优势

  1. 数据复用:已有的驾驶数据(包括人工接管记录、事故边缘案例)都可以作为训练素材
  2. 安全第一:不需要在线探索,零试错成本
  3. 可扩展:可以用任意多的数据训练,不受环境交互速度限制
  4. 可审计:数据集是固定的,训练过程可复现、可回溯

⚠️ 离线 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 算法本质上都在解决一个问题:如何在"利用数据集信息"和"约束策略不离数据集太远"之间取得平衡。具体路线分为三类:

  1. 保守方法:压低保守 $Q$ 估值(CQL)
  2. 隐式约束:策略约束在数据分布附近(IQL, TD3+BC)
  3. 策略约束:正则化策略不偏离行为策略太远(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 maxexpectile $\tau$
TD3+BC约束策略靠近数据BC 正则化
AWAC加权 BCadvantage 权重

CQL vs IQL 对比

维度CQLIQL
范式保守 $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$数据效率实现难度
CQLQ 函数
IQLBellman 更新
TD3+BC策略输出
AWAC策略更新
BCQ策略扰动量

🔄 Offline-to-Online Fine-tuning

离线 RL 的终极问题在于:纯离线方法受限于数据质量,永远无法超越数据集中最好的行为。解决思路是先离线预训练、再在线微调。

两阶段范式

S--S---ttaaggee仿12::线线+Q

微调中的关键挑战

离线到在线的过渡并非顺滑,核心困难在于 CQL 的保守性在在线阶段反而成为束缚

问题原因缓解策略
保守惯性CQL 训练的 $Q$ 过于悲观逐步退火 $\alpha$
分布突变在线数据快速改变分布混合离线+在线 replay buffer
灾难性遗忘策略忘记了离线学到的先验加入 KL 正则化

自动驾驶中的实践

在自动驾驶 VLA 的 RL 微调中,offline-to-online 已经成为实际落地的默认范式:

  1. 大规模离线阶段:用百万级驾驶片段训练基础策略(行为克隆 + 离线 RL)
  2. 小规模在线阶段:在仿真器中用 PPO/GRPO 做 RL 微调,reward 来自安全、舒适、效率指标的加权组合
  3. 混合 buffer:保留 50% 的离线数据在 replay buffer 中,防止策略在在线阶段"跑偏"

🚗 离线 RL 与 VLA 的深度融合

为什么离线 RL 对 VLA 驾驶如此重要?

VLA 模型(Vision-Language-Action)将视觉理解、语言推理和动作生成统一在一个网络中。离线 RL 对这类模型的训练有天然适配性:

VLA 训练需求离线 RL 的匹配
海量驾驶数据(百万级场景)离线 RL 天然处理静态数据集
安全约束严格(不可在线试错)零试错训练
数据含大规模人类驾驶日志直接利用行为克隆先验
需要处理长尾场景CQL 保守性提供安全兜底

CQL 用于驾驶安全约束

具体来说,CQL 在驾驶 VLA 中有几个关键应用点:

  1. 安全 Q 估计器:CQL 训练的 $Q$ 网络可以作为"安全过滤器"——当策略输出的动作的 $Q$ 值低于某个阈值时,回退到保守策略或人类示范
  2. 碰撞避让:将碰撞惩罚编码进 reward 并使用 CQL 优化,模型学到"安全动作的高 Q、危险动作的低 Q"
  3. 行为边界:CQL 天然约束策略在数据分布内,防止 VLA 模型产生"幻觉动作"(如突然急转方向)

当前趋势:偏好 + 离线 RL

离线 RL 的最新方向是与 偏好学习 结合,形成类似 RLHF 的离线范式:

  1. 收集人类对驾驶片段的偏好打分(安全 vs 激进、舒适 vs 颠簸)
  2. 训练偏好模型替代手工 reward
  3. 用离线 RL 算法(CQL / IQL)在偏好 reward 下优化策略

这本质上是 RLHF 的离线版本:不需要在线收集人类反馈,所有偏好标注都在已有数据上进行。对驾驶来说,这比在线 RLHF 安全得多。

代表性驾驶离线 RL 工作

工作方法场景关键贡献
SafeDriveCQL + 安全约束城市驾驶离线学习安全策略
DriveOfflineIQL + 多任务高速 + 城市单一策略适应多场景
Offline2Online-VLACQL→PPO 两阶段端到端驾驶离线预训练 + 在线微调

📝 个人思考

离线 RL 的价值不仅在于"不用在线交互"——它更深层的意义是 把 RL 从’实验科学’变成了’数据科学’。传统 RL 研究者花大量时间调环境、调 simulator、等待训练跑完。离线 RL 的数据集是固定的,实验是确定的,训练是完全可复现的。这种确定性的提升,让 RL 在大规模系统(如自动驾驶)中的工程落地变得可行。

但我也认为离线 RL 有一个尚未被充分认知的局限:数据集中隐含的 bias 会被算法放大。如果驾驶数据大量来自保守驾驶员,离线 RL 学到的策略也会偏保守;如果数据里没有急刹和危险场景的经验,模型面对边缘情况时仍然可能不知所措。离线 RL 不是银弹,它依赖数据质量的程度比想象的高得多

最后,对于自动驾驶 VLA 的 RL 微调,我的判断是:纯离线 CQL/IQL 提供安全的起点,PPO/GRPO 在线微调提供性能的上限,两者的两阶段结合才是当前最佳实践。 单靠任一方都很难同时满足安全性和性能要求。


📖 这是知识点拆解系列的第 12 篇。离线 RL 让’安全地学习驾驶’成为可能,但数据 bias 和 OOD 的幽灵仍然在阴影中徘徊。