🎯 引言:RL在自动驾驶中的位置

强化学习(Reinforcement Learning, RL)是继监督学习之后最具潜力的自动驾驶训练范式。与模仿学习(Imitation Learning, IL)从专家数据中学习不同,RL 通过试错交互自主优化策略,理论上可以超越人类驾驶水平。

本文聚焦通用 RL 基础,与 GRPO(Group Relative Policy Optimization)等偏 R1/VLA 的方法做清晰区分。

MDP五元组:智能体-环境交互循环


🧱 MDP:强化学习的数学框架

五元组定义

几乎所有 RL 问题都可以建模为马尔可夫决策过程(Markov Decision Process, MDP),由五元组 (S, A, P, R, γ) 定义:

符号名称含义
S状态空间环境的所有可能状态
A动作空间智能体可执行的动作
P(s’|s,a)状态转移概率执行 a 后进入 s’ 的概率
R(s,a)奖励函数在 s 执行 a 获得的立即奖励
γ折扣因子[0,1],平衡近期与远期奖励

自动驾驶 MDP 建模

在自动驾驶场景中,MDP 的元素对应:

  • S:自车状态 + 周围障碍物 + 道路拓扑
  • A:方向盘转角 + 油门/刹车开度
  • P:其他车辆的交互行为(非完全可控)
  • R:安全性 + 效率 + 舒适性的加权组合
  • γ:通常取 0.95~0.99

核心假设:马尔可夫性

“未来只取决于当前状态,与历史无关”——这意味着状态表示必须充分统计。在自动驾驶中,仅靠单帧感知不够,通常需要叠加历史多帧或使用时序融合来满足马尔可夫性。


📊 价值函数与策略

策略 π(a|s)

策略是 RL 要学习的核心:给定状态 s,选择动作 a 的概率分布。

  • 确定性策略:a = μ(s),如 DDPG
  • 随机策略:a ∼ π(·|s),如 PPO、SAC

价值函数

函数符号定义用途
状态价值V(s)从 s 出发的期望回报评估状态好坏
动作价值Q(s,a)在 s 执行 a 的期望回报评估动作好坏
优势函数A(s,a)Q(s,a) - V(s)衡量动作相对优劣

优势函数是策略梯度方法中的关键概念:$A(s,a) > 0$ 表示当前动作优于平均水平,应提高其被选中的概率。


🔁 RL 算法谱系

1. 基于价值的算法 (Value-Based)

核心思路:学习最优 Q 函数,策略由 Q 隐式导出。

代表算法:DQN (Deep Q-Network)

DQN 的两大创新:

  • 经验回放 (Replay Buffer):打破数据相关性
  • 目标网络 (Target Network):稳定训练目标

2. 基于策略的算法 (Policy-Based)

核心思路:直接参数化策略 π_θ,用梯度上升优化。

策略梯度定理

$$ \nabla_\theta J(\theta) = \mathbb{E}[\nabla_\theta \log \pi_\theta(a|s) \cdot Q^{\pi_\theta}(s,a)] $$

核心直觉:让好的动作更大概率被选,坏的动作更小概率。

3. Actor-Critic 架构

融合两者优势:Actor(策略网络)负责选动作,Critic(价值网络)负责评估。


🚀 PPO:工程界最爱的 RL 算法

PPO算法流程:Actor-Critic架构与clip目标函数

为什么需要 PPO?

普通策略梯度存在两大问题:

  1. 步长敏感:步长过大 → 策略崩坏,步长过小 → 收敛慢
  2. 样本效率低:每个样本只用一次

PPO 的核心机制:Clipped Surrogate Objective

PPO 通过裁剪限制策略更新的幅度:

L_clip=min(r(θ)A,clip(r(θ),1-ε,1+ε)A)

其中 r(θ) = π_θ(a|s) / π_old(a|s) 是新旧策略的比率。

直观理解:当新策略偏离旧策略太远时,裁剪掉更新信号,防止一步更新过大。

PPO 的自动驾驶应用

PPO 在自动驾驶中常用于决策层训练

  • 车道保持与变道决策
  • 交叉路口通行策略
  • 多车交互博弈

🔄 SAC vs DDPG vs PPO:核心对比

特性PPOSACDDPG
策略类型随机随机 + 最大熵确定性
适用动作离散/连续连续连续
样本效率
稳定性
探索机制策略随机性熵正则化OU噪声
离线可用✅ (变体)

SAC (Soft Actor-Critic) 的核心创新:在优化目标中加入策略熵 H(π(·|s)),鼓励探索的同时避免陷入局部最优。在自动驾驶模拟器训练中,SAC 通常取得比 PPO 更高的样本效率。

DDPG (Deep Deterministic Policy Gradient) 使用确定性策略,适合连续控制任务,但对超参数敏感。其升级版 TD3 通过双 Q 网络 + 延迟更新大幅提升了稳定性。


🔄 模仿学习 vs 强化学习

模仿学习不能算严格意义上的RL,但它们的目标高度重叠。

维度模仿学习 (IL)强化学习 (RL)
数据来源专家轨迹自探索
奖励信号隐含在专家动作中显式奖励函数
性能上限≤ 专家水平可超越专家
分布偏移❌ 严重✅ 可处理
样本效率

最佳实践:先用 IL 预训练策略,再用 RL fine-tune。这在自动驾驶领域已经成为标准范式。


🏆 Reward Shaping:设计的艺术

稀疏与稠密奖励

  • 稀疏奖励:仅在任务完成时 +1,其余为 0 → 难探索
  • 稠密奖励:每一步都有反馈 → 引导性强,但可能引入偏差

自动驾驶中的奖励设计

典型奖励函数构成:

R=wR_safety+wR_efficiency+wR_comfort+wR_progress+wR_task
奖励项计算方式目标
R_safety碰撞= -100, TTC < 阈值 = -10避免碰撞
R_efficiency速度接近目标通行效率
R_comfort-|jerk|, -|steering_rate|乘客舒适
R_progress沿道路前进距离完成任务

Reward Hacking 是实践中最大的坑:智能体总会找到设计者没想到的"作弊"方式获取高奖励。例如为了追求效率奖励,学会贴近前车行驶(危险)。


🧩 RL 在自动驾驶中的关键应用

应用层具体任务常用算法挑战
行为决策换道/汇入/超车PPO, SAC多车交互建模
运动规划轨迹生成DDPG, TD3安全约束保证
纵向控制跟车/ACCPPO舒适性平衡
联合训练感知→控制端到端DreamerV3可解释性

Sim-to-Real 是 RL 落地自动驾驶的最大障碍:模拟器中训练的策略在真实道路上的表现会因仿真差距(Simulation Gap)而大幅下降。常用缓解方法包括域随机化(Domain Randomization)、系统识别、以及渐进式迁移。


💭 个人思考

RL 在自动驾驶领域的地位有点像"期望很大,落地不易"。几个关键观察:

  1. RL 强于决策,弱于安全 — 自动驾驶的安全要求(10⁻⁹ 失效率)远超 RL 能提供的形式化保证
  2. 模拟器质量决定 RL 上限 — 没有高保真模拟器,RL 策略就只是"仿真冠军"
  3. Reward 设计是瓶颈 — 自动驾驶是多目标权衡问题,单标量奖励很难完美表达人类偏好

我认为 RL 在自动驾驶中最务实的落地方向是:在仿真环境中训练决策策略 + 规则层兜底。纯端到端 RL 距离量产还有很长的路,但作为决策策略的补充学习手段,RL 已经展示出不可替代的价值。