第7章:基于强化学习的规划与控制

本章深入探讨强化学习在自动驾驶规划与控制中的应用。我们将从基础的强化学习理论出发,逐步深入到最新的深度强化学习方法,包括模仿学习、世界模型、离线强化学习以及基于Transformer的决策模型。重点关注如何在保证安全性的前提下,利用数据驱动的方法学习复杂的驾驶策略。

7.1 强化学习在自动驾驶中的机遇与挑战

强化学习(Reinforcement Learning, RL)为自动驾驶提供了一种端到端学习复杂驾驶策略的方法。与传统的基于规则的方法相比,RL能够通过与环境的交互自动发现最优策略,处理复杂的多智能体交互场景,并持续适应新的驾驶环境。

7.1.1 为什么选择强化学习

传统的自动驾驶系统依赖手工设计的规则和启发式算法,这种方法在处理边缘案例(edge cases)时显得力不从心。强化学习提供了以下独特优势:

  1. 端到端优化 - 直接优化最终目标(安全到达目的地),而非子模块的局部目标 - 避免级联错误:感知误差不会在规划模块中被放大 - 学习隐式的特征表示,无需手工设计

  2. 处理不确定性 - 自然建模环境的随机性和部分可观测性 - 学习鲁棒的策略,应对传感器噪声和遮挡 - 通过探索-利用平衡发现新的驾驶策略

  3. 多智能体交互 - 建模其他交通参与者的行为 - 学习社会化驾驶行为(social driving) - 处理博弈论场景(如并线、通过交叉口)

  4. 持续学习能力 - 从真实驾驶数据中不断改进 - 适应新的交通规则和驾驶环境 - 个性化驾驶风格学习

7.1.2 自动驾驶作为序列决策问题

自动驾驶本质上是一个序列决策问题,需要在连续的时间步骤中做出最优决策。我们可以将其建模为部分可观测马尔可夫决策过程(POMDP):

状态空间 (State Space)

S = {车辆状态, 环境状态, 其他智能体状态}

  - 车辆状态:位置、速度、加速度、航向角
  - 环境状态:道路拓扑、交通信号、天气条件
  - 其他智能体:位置、速度、预测轨迹

观测空间 (Observation Space)

O = {传感器数据, 地图信息, V2X通信}

  - 相机图像:RGB、深度、语义分割
  - LiDAR点云:3D空间占据
  - 雷达数据:速度、距离测量
  - HD地图:车道线、交通规则

动作空间 (Action Space)

A = {纵向控制, 横向控制, 离散决策}

  - 连续控制:加速度 ∈ [-amax, amax],转向角 ∈ [-δmax, δmax]
  - 离散决策:{保持车道, 左变道, 右变道, 停车}
  - 混合动作:高层决策 + 底层连续控制

奖励函数 (Reward Function)

R = w1·安全性 + w2·效率 + w3·舒适性 + w4·合规性

  - 安全性:碰撞惩罚、最小安全距离
  - 效率:行驶速度、到达时间
  - 舒适性:加速度平滑度、急刹车惩罚
  - 合规性:交通规则遵守、车道保持

转移动力学 (Transition Dynamics)

P(s'|s,a) = P(车辆动力学) × P(环境变化) × P(其他智能体行为)

7.1.3 主要挑战

尽管强化学习在自动驾驶中展现出巨大潜力,但仍面临诸多挑战:

  1. 安全性保证 - 探索的代价:在真实环境中的错误探索可能导致事故 - 稀有事件处理:安全关键场景在数据中出现频率极低 - 最坏情况保证:RL通常优化期望回报,难以提供最坏情况下的安全保证

解决方案

  • 使用高保真仿真器进行安全探索
  • 引入安全约束(Safe RL)
  • 结合形式化验证方法
  1. 样本效率 - 数据需求量大:深度RL通常需要百万级交互样本 - 真实数据稀缺:实车测试成本高昂 - 长尾分布:关键场景数据稀少

解决方案

  • 离线强化学习(Offline RL)
  • 迁移学习和域适应
  • 数据增强和场景生成
  1. 奖励函数设计 - 多目标权衡:安全、效率、舒适性难以量化 - 奖励稀疏:到达目的地的奖励延迟很长 - 奖励黑客:智能体可能找到意外的奖励最大化方式

解决方案

  • 逆强化学习从专家数据学习奖励
  • 分层奖励设计
  • 人类反馈强化学习(RLHF)
  1. 泛化能力 - 分布偏移:训练和测试环境的差异 - 地域差异:不同国家的交通规则和驾驶习惯 - 天气和光照变化:雨雪天气、夜间驾驶

解决方案

  • 域随机化(Domain Randomization)
  • 元学习(Meta-Learning)
  • 持续学习和在线适应
  1. 可解释性 - 黑箱决策:深度神经网络决策过程不透明 - 责任归属:事故责任难以判定 - 监管要求:需要可审计的决策过程

解决方案

  • 注意力机制可视化
  • 分层决策结构
  • 可解释的中间表示
  1. 计算资源限制 - 实时性要求:决策延迟必须在100ms以内 - 车载算力限制:功耗和散热约束 - 模型大小:深度网络参数量巨大

解决方案

  • 模型压缩和量化
  • 知识蒸馏
  • 边缘-云协同计算

实际案例:Wayve的LINGO模型

Wayve公司的LINGO(Language Instructed Goal-Oriented)模型展示了RL在实际自动驾驶中的应用:

  • 使用模仿学习初始化策略
  • 通过人类语言指令提供额外监督
  • 在仿真中进行强化学习微调
  • 实现了在伦敦复杂城市环境中的自动驾驶

这个案例说明了现代自动驾驶系统如何结合多种学习范式克服纯RL的局限性。

7.2 深度强化学习基础

深度强化学习结合了深度学习的表示能力和强化学习的决策能力,是实现自动驾驶智能决策的核心技术。本节介绍深度RL的基础概念和主流算法。

7.2.1 马尔可夫决策过程(MDP)建模

自动驾驶可以建模为一个连续状态空间和动作空间的MDP,定义为五元组 (S, A, P, R, γ):

形式化定义

  • 状态空间 S:高维连续空间,包含车辆运动学状态和环境感知信息
  • 动作空间 A:连续控制空间 A ⊆ ℝ^n,通常 n=2(加速度和转向角)
  • 转移概率 P:P(s_{t+1}|s_t, a_t) 描述状态转移的不确定性
  • 奖励函数 R:R(s_t, a_t, s_{t+1}) → ℝ,量化驾驶行为的优劣
  • 折扣因子 γ:γ ∈ [0, 1],平衡即时奖励和长期回报

自动驾驶MDP的特殊性

  1. 高维观测空间 - 原始传感器输入:图像 (H×W×C),点云 (N×3) - 需要强大的特征提取器(CNN、PointNet) - 观测往往是部分的(POMDP)

  2. 连续控制空间 - 加速度:a ∈ [-a_{max}, a_{max}] - 转向角:δ ∈ [-δ_{max}, δ_{max}] - 需要处理连续动作的算法(如DDPG、SAC)

  3. 多时间尺度决策 - 高层决策(1-10 Hz):路径规划、行为决策 - 底层控制(10-100 Hz):轨迹跟踪、车辆控制 - 分层RL或选项框架(Options Framework)

贝尔曼方程

价值函数满足贝尔曼方程,这是所有RL算法的理论基础:

状态价值函数:

V^π(s) = E_{a~π}[R(s,a) + γ·E_{s'~P}[V^π(s')]]

动作价值函数(Q函数):

Q^π(s,a) = R(s,a) + γ·E_{s'~P}[V^π(s')]

最优价值函数:

V*(s) = max_a Q*(s,a)
Q*(s,a) = R(s,a) + γ·E_{s'~P}[V*(s')]

7.2.2 价值函数与策略梯度方法

深度RL算法主要分为三类:基于价值的方法、基于策略的方法、以及Actor-Critic方法。

  1. 深度Q网络(DQN)及其变体

虽然DQN主要用于离散动作空间,但其思想影响了许多连续控制算法:

关键创新:

- 经验回放(Experience Replay):打破数据相关性
- 目标网络(Target Network):稳定训练
- 双Q学习(Double DQN):缓解过估计问题
- 优先经验回放(PER):重要样本优先采样
- 决斗网络(Dueling DQN):分离状态价值和优势函数
  1. 策略梯度方法

直接优化策略参数θ,最大化期望回报:

目标函数:J(θ) = E_{τ~π_θ}[Σ_t γ^t R_t]

策略梯度定理:
∇_θ J(θ) = E_{τ~π_θ}[Σ_t ∇_θ log π_θ(a_t|s_t) · G_t]

其中 G_t 是回报估计,可以是:

- 蒙特卡洛回报:G_t = Σ_{k=t}^T γ^{k-t} r_k
- TD误差:G_t = r_t + γV(s_{t+1}) - V(s_t)
- 广义优势估计(GAE):平衡偏差和方差

REINFORCE算法

最简单的策略梯度算法:

1. 采样轨迹 τ ~ π_θ
2. 计算回报 G_t
3. 更新策略:θ ← θ + α·∇_θ log π_θ(a_t|s_t)·G_t

问题:高方差,样本效率低
  1. 自然策略梯度(NPG)

考虑参数空间的几何结构,使用Fisher信息矩阵:

θ_{k+1} = θ_k + α·F^{-1}·∇_θ J(θ)
其中 F = E[∇_θ log π_θ · (∇_θ log π_θ)^T]

TRPO和PPO都基于自然梯度的思想。

7.2.3 Actor-Critic架构

Actor-Critic结合了价值函数和策略梯度的优点,是自动驾驶中最常用的架构。

基本架构

Actor(策略网络):π(a|s;θ) → 动作分布
Critic(价值网络):V(s;φ) 或 Q(s,a;φ) → 价值估计

优势函数:A(s,a) = Q(s,a) - V(s)
         = r + γV(s') - V(s)  (TD误差)

A3C (Asynchronous Advantage Actor-Critic)

  • 多个并行环境收集经验
  • 异步更新共享参数
  • 使用优势函数减少方差

关键设计选择

  1. 网络架构
共享骨干网络:
Input → CNN/ViT → Features
                    ├→ Actor Head → π(a|s)
                    └→ Critic Head → V(s)

独立网络:
Actor:  Input → Network_A → π(a|s)
Critic: Input → Network_C → V(s)
  1. 动作参数化
连续动作的常见参数化:

- 高斯分布:π(a|s) = N(μ(s), σ²(s))
- Beta分布:适合有界动作空间
- 混合高斯(GMM):多模态动作分布
  1. 探索策略
- 熵正则化:J = J_原始 + β·H(π)
- 参数空间噪声(Parameter Space Noise)
- OU过程(Ornstein-Uhlenbeck Process)

7.2.4 连续控制算法:SAC、PPO、TD3

这些是目前自动驾驶中最常用的深度RL算法。

  1. PPO (Proximal Policy Optimization)

PPO是最流行的策略梯度算法,在稳定性和性能间取得良好平衡:

核心思想:限制策略更新幅度,避免性能崩溃

目标函数:
L^CLIP(θ) = E_t[min(r_t(θ)·A_t, clip(r_t(θ), 1-ε, 1+ε)·A_t)]

其中:

- r_t(θ) = π_θ(a_t|s_t) / π_{θ_old}(a_t|s_t) 重要性采样比
- clip限制比率在[1-ε, 1+ε]范围内
- A_t是优势估计

实现细节:

- 使用GAE计算优势:A_t^GAE = Σ_{l=0}^∞ (γλ)^l δ_{t+l}
- 多轮epoch更新
- 早停机制防止过拟合
  1. SAC (Soft Actor-Critic)

SAC是目前最先进的off-policy算法,特别适合自动驾驶:

核心创新:最大熵框架
J = E[Σ_t r_t + α·H(π(·|s_t))]

关键组件:

- 两个Q网络:Q_1, Q_2(缓解过估计)
- 一个策略网络:π_θ
- 自动温度调节:α自适应调整

更新规则:

1. Q函数:最小化贝尔曼误差
   L_Q = E[(Q(s,a) - (r + γ·V_target(s')))²]

2. 策略:最大化Q值和熵
   L_π = E[α·log π(a|s) - Q(s,a)]

3. 温度:维持目标熵
   L_α = E[-α·(log π(a|s) + H_target)]

优势:

- 样本效率高
- 探索能力强
- 对超参数鲁棒
  1. TD3 (Twin Delayed DDPG)

TD3改进了DDPG,解决了Q函数过估计问题:

三个关键技术:

1. 双Q网络:取较小值作为目标
   y = r + γ·min(Q_1'(s',π'(s')), Q_2'(s',π'(s')))

2. 延迟策略更新:
   - Q网络更新频率 > 策略网络更新频率
   - 典型比例 2:1

3. 目标策略平滑:
   a' = π'(s') + clip(ε, -c, c), ε ~ N(0,σ)

实现要点:

- 使用确定性策略
- 添加探索噪声
- 软更新目标网络

算法选择指南

| 算法 | 适用场景 | 优势 | 劣势 |

算法 适用场景 优势 劣势
PPO 仿真训练、在线学习 稳定、易调参 样本效率较低
SAC 真实数据、离线学习 样本效率高、鲁棒 计算开销大
TD3 确定性控制 简单高效 探索能力弱

实践经验

  1. 归一化技巧 - 观测归一化:运行均值和标准差 - 奖励缩放:r' = r / std(r) - 动作范围:tanh激活函数

  2. 网络设计 - 隐层大小:256-512单元 - 激活函数:ReLU或Swish - 层归一化优于批归一化

  3. 超参数经验值

学习率:3e-4 (Adam优化器)
批大小:256
缓冲区大小:1e6
折扣因子:0.99
软更新系数:0.005

7.3 模仿学习与行为克隆

模仿学习(Imitation Learning)通过学习专家演示来获得驾驶策略,避免了从零开始探索的危险和低效。这是目前自动驾驶系统获得初始策略的主要方法。

7.3.1 行为克隆(Behavior Cloning)

行为克隆将模仿学习转化为监督学习问题,直接从专家演示数据学习状态到动作的映射。

基本框架

数据集:D = {(s_i, a_i)}_{i=1}^N,其中a_i是专家在状态s_i的动作
目标:学习策略π_θ,使得π_θ(s) ≈ π_expert(s)
损失函数:L(θ) = E_{(s,a)~D}[||π_θ(s) - a||²](回归)
         或 L(θ) = E_{(s,a)~D}[-log π_θ(a|s)](分类)

在自动驾驶中的应用

  1. 数据收集 - 人类驾驶员数据:真实道路测试 - 安全驾驶员接管数据:从失败中学习 - 仿真专家:使用优化算法生成最优轨迹

  2. 网络架构设计

输入处理:
图像 → ResNet/EfficientNet → 特征
LiDAR → PointNet++ → 特征
地图 → GNN/CNN → 特征

特征融合:
[图像特征, LiDAR特征, 地图特征] → Transformer/注意力机制

输出头:
融合特征 → MLP → [加速度, 转向角]
  1. 条件模仿学习(Conditional Imitation Learning)
引入高层指令c(如转向意图):
π_θ(a|s,c) = Σ_i w_i(c) · π_i(a|s)

其中π_i是不同行为模式的子策略
例如:直行、左转、右转、停车

CARLA条件模仿学习基准

  • 输入:前视相机图像 + 速度 + 导航指令
  • 输出:转向角 + 加速度/制动
  • 网络:ResNet骨干 + 条件分支
  • 性能指标:成功率、碰撞率、违规率

7.3.2 数据增强与分布偏移问题

行为克隆的主要挑战是分布偏移(covariate shift):训练时的状态分布与测试时不同。

分布偏移的原因

训练:s ~ d_expert(s)(专家轨迹分布)
测试:s ~ d_π(s)(学习策略诱导的分布)

小的预测误差会累积,导致:

- 偏离正常轨迹
- 进入未见过的状态
- 错误级联放大

数据增强策略

  1. 几何变换 - 随机平移、旋转、缩放 - 透视变换模拟不同视角 - 添加噪声模拟传感器误差

  2. 轨迹扰动

从专家轨迹添加偏移:
s'_t = s_t + ε, ε ~ N(0, σ²)
a'_t = 修正动作,将车辆引导回原轨迹

这样生成恢复行为的训练数据
  1. 对抗样本生成 - 生成困难场景 - 增加罕见事件比例 - 边缘案例挖掘

  2. 时序增强

- 随机丢帧:模拟传感器延迟
- 历史帧堆叠:增加时序信息
- 未来轨迹预测:辅助任务正则化

域适应技术

  1. 仿真到现实(Sim2Real)
域随机化:

- 随机化纹理、光照、天气
- 随机化车辆动力学参数
- 随机化传感器噪声模型

域对齐:

- 使用GAN对齐特征分布
- CycleGAN进行图像风格转换
  1. 多任务学习
辅助任务帮助学习更好的表示:

- 语义分割
- 深度估计
- 光流预测
- 目标检测

7.3.3 DAgger与在线模仿学习

DAgger(Dataset Aggregation)通过迭代收集数据解决分布偏移问题。

DAgger算法

1. 初始化D_0 = {专家演示数据}
2. 训练初始策略π_0 = BC(D_0)
3. 对于迭代 i = 1, 2, ...
   a. 使用π_{i-1}在环境中运行
   b. 对访问的状态s查询专家动作a*
   c. 聚合数据D_i = D_{i-1}  {(s, a*)}
   d. 重新训练π_i = BC(D_i)

实践改进

  1. SafeDAgger - 添加安全监督器 - 危险时切换到专家策略 - 避免灾难性失败

  2. HG-DAgger(Human-Gated DAgger) - 人类决定何时介入 - 减少标注成本 - 关注关键决策点

  3. 混合策略

π_mix = β·π_expert + (1-β)·π_learned
β随训练进程递减

在线模仿学习的挑战

  1. 专家查询成本 - 人类专家:昂贵且延迟高 - 优化算法:计算密集 - 预训练模型:可能有偏差

  2. 安全性保证 - 需要安全网(safety net) - 实车测试风险高 - 仿真器保真度限制

7.3.4 逆强化学习(IRL)

逆强化学习从专家演示中学习奖励函数,然后用强化学习优化策略。

最大熵IRL

假设专家策略最大化熵正则化的期望回报:
π_expert = arg max_π E_π[Σ_t r(s_t,a_t)] + H(π)

IRL目标:找到奖励函数r,使得专家轨迹的似然最大:
max_r L(r) = E_{τ~D_expert}[Σ_t r(s_t,a_t)] - log Z(r)
其中Z(r)是配分函数

深度IRL方法

  1. 最大熵深度IRL
使用神经网络参数化奖励:r_θ(s,a)
交替优化:

- 固定r_θ,用RL找最优策略π
- 固定π,更新r_θ最大化专家轨迹似然
  1. 生成对抗模仿学习(GAIL)
判别器D区分专家和策略轨迹:
L_D = E_{τ~π_expert}[log D(s,a)] + E_{τ~π_θ}[log(1-D(s,a))]

生成器(策略)欺骗判别器:
L_G = E_{τ~π_θ}[log D(s,a)]

使用PPO/TRPO优化策略
  1. SQIL(Soft Q Imitation Learning)
简化的离线IRL:

- 专家数据赋予奖励r=1
- 策略数据赋予奖励r=0
- 使用标准RL算法(如SAC)优化

IRL在自动驾驶中的优势

  1. 可解释的奖励函数 - 学习人类驾驶偏好 - 识别隐含的安全约束 - 适应不同驾驶风格

  2. 更好的泛化 - 学习目标而非具体行为 - 适应新场景 - 组合多个专家的偏好

实际应用案例

Mobileye的RSS(Responsibility-Sensitive Safety)

  • 从事故数据学习安全约束
  • 形式化验证安全规则
  • 作为奖励函数的硬约束

Waymo的模仿学习系统

  • 大规模专家数据(数百万英里)
  • 多任务学习框架
  • 结合BC和RL的混合方法

特斯拉的影子模式

  • 被动收集人类驾驶数据
  • 在线评估模型预测
  • 识别模型失败案例用于改进

7.4 世界模型与想象力规划

世界模型(World Models)使智能体能够在内部模拟环境动力学,通过"想象"未来轨迹来进行规划。这种方法在自动驾驶中特别有价值,因为它可以预测行动的长期后果,提高样本效率,并在不与真实环境交互的情况下探索不同的驾驶策略。

7.4.1 学习环境动力学

环境动力学模型学习状态转移函数P(s'|s,a)和奖励函数R(s,a),使智能体能够预测其行动的结果。

动力学模型的类型

  1. 前向模型(Forward Model)
确定性模型:s_{t+1} = f(s_t, a_t)
随机模型:s_{t+1} ~ p(·|s_t, a_t)

在自动驾驶中:

- 预测自车未来位置
- 预测其他车辆轨迹
- 预测环境变化(如信号灯)
  1. 逆向模型(Inverse Model)
推断产生观测变化的动作:
a_t = g(s_t, s_{t+1})

应用:

- 从人类驾驶轨迹推断控制
- 理解其他车辆的意图
  1. 潜在空间模型
在压缩的潜在空间z中建模:
z_{t+1} = f(z_t, a_t)
s_t = decoder(z_t)

优势:

- 降低计算复杂度
- 过滤无关细节
- 更稳定的长期预测

神经网络架构设计

  1. 循环神经网络(RNN)模型
状态转移:h_{t+1}, s_{t+1} = RNN(h_t, s_t, a_t)

常用架构:

- LSTM:长期依赖建模
- GRU:参数效率更高
- Transformer:并行计算,长程依赖
  1. 变分自编码器(VAE)框架
编码器:q(z|s) = N(μ(s), σ²(s))
解码器:p(s|z)
动力学:p(z_{t+1}|z_t, a_t)

损失函数:
L = E_q[log p(s|z)] - KL(q(z|s)||p(z))
  1. 生成对抗网络(GAN)方法
生成器:G(z_t, a_t) → s_{t+1}
判别器:D(s_{t+1}, s_t, a_t) → [0,1]

优势:生成高质量图像预测
挑战:训练不稳定,模式崩塌

多步预测与误差累积

长期预测面临误差累积问题:

单步误差:ε
T步累积误差:O(T·ε)(最好情况)到O(ε^T)(最坏情况)

解决策略:

1. 教师强制(Teacher Forcing)与计划采样
   - 训练时混合真实和预测状态
   - 概率p使用真实状态,1-p使用预测

2. 多步损失
   L = Σ_{k=1}^K γ^k ||s_{t+k} - ŝ_{t+k}||²

3. 分层预测
   - 不同时间尺度的独立模型
   - 粗粒度长期预测 + 细粒度短期预测

不确定性建模

自动驾驶环境具有内在不确定性:

  1. 认知不确定性(Epistemic Uncertainty) - 模型参数的不确定性 - 可通过更多数据减少 - 方法:贝叶斯神经网络、集成模型、Dropout

  2. 偶然不确定性(Aleatoric Uncertainty) - 环境的内在随机性 - 无法通过更多数据消除 - 方法:概率输出、混合密度网络

  3. 实践方法

集成模型:
{f_1, f_2, ..., f_N}
预测均值:μ = 1/N Σ_i f_i(s,a)
预测方差:σ² = 1/N Σ_i (f_i(s,a) - μ)²

贝叶斯方法:
p(s'|s,a,D) = ∫ p(s'|s,a,θ)p(θ|D)dθ

7.4.2 基于模型的规划

利用学习到的世界模型,可以通过内部仿真进行规划,无需真实环境交互。

规划算法分类

  1. 基于搜索的方法

蒙特卡洛树搜索(MCTS)

四个阶段:

1. 选择(Selection):UCB策略选择节点
2. 扩展(Expansion):添加新节点
3. 模拟(Simulation):rollout到终止
4. 反向传播(Backpropagation):更新价值

UCB公式:
UCB = Q(s,a) + c·√(log N(s)/N(s,a))

在自动驾驶中的应用

  • 离散化动作空间
  • 限制搜索深度(通常5-10步)
  • 使用启发式剪枝
  1. 基于优化的方法

模型预测控制(MPC)与世界模型结合

优化问题:
min_{a_0,...,a_H} Σ_{t=0}^H c(s_t, a_t)
s.t. s_{t+1} = f(s_t, a_t)  (世界模型)
     g(s_t, a_t) ≤ 0        (约束)

求解方法:

- 梯度下降(可微模型)
- CEM(交叉熵方法)
- 随机打靶(Random Shooting)

交叉熵方法(CEM)

1. 初始化动作序列分布N(μ, Σ)
2. 采样K个动作序列
3. 用世界模型评估每个序列
4. 选择最好的K_elite个
5. 更新分布参数
6. 重复直到收敛
  1. 基于价值的方法

Dyna架构

真实经验:(s,a,r,s') → 更新Q函数
模拟经验:

1. 从缓冲区采样s
2. 选择动作a
3. 用模型预测r',s'
4. 更新Q(s,a)

Dyna-Q算法:
每个真实步骤后,执行n步模型规划

模型误差对规划的影响

模型误差会导致次优甚至危险的规划:

  1. 模型偏差问题
真实最优策略:π* = arg max_π J_真实(π)
模型最优策略:π̂ = arg max_π J_模型(π)

性能差距:
J_真实(π*) - J_真实(π̂) ≤ 2γε_max/(1-γ)²
其中ε_max是模型误差上界
  1. 缓解策略 - 短视规划:限制规划horizon - 模型集成:使用多个模型投票 - 不确定性惩罚:在高不确定性区域保守 - 模型预测控制:只执行第一个动作,然后重新规划

7.4.3 Dreamer系列算法

Dreamer是基于世界模型的强化学习算法的代表,在多个控制任务中达到了最先进的性能。

Dreamer v1架构

核心组件:

1. 世界模型(RSSM:循环状态空间模型)
   - 确定性路径:h_t = f(h_{t-1}, z_{t-1}, a_{t-1})
   - 随机路径:z_t ~ p(z_t|h_t)

2. 行为学习
   - Actor:π(a_t|z_t, h_t)
   - Critic:V(z_t, h_t)

3. 三阶段训练
   - 动力学学习:从经验学习世界模型
   - 行为学习:在想象中训练actor-critic
   - 环境交互:收集新经验

关键创新

  1. 潜在想象(Latent Imagination)
在潜在空间进行rollout:
for t in range(H):
    a_t ~ π(·|z_t, h_t)
    h_{t+1} = f(h_t, z_t, a_t)
    z_{t+1} ~ p(·|h_{t+1})
    r_t = r(z_t, h_t, a_t)

优势:

- 计算效率高
- 避免图像生成
- 梯度传播稳定
  1. 价值目标计算
λ-return估计:
V^λ_t = r_t + γ[(1-λ)V(s_{t+1}) + λV^λ_{t+1}]

结合了TD和蒙特卡洛估计的优点

Dreamer v2改进

  1. 离散潜在变量
使用分类分布替代高斯分布:
z_t ~ Categorical(logits(h_t))

优势:

- 更好的表达能力
- 稳定的KL散度
- 自然的多模态建模
  1. 改进的策略学习
REINFORCE with baseline:
∇J = E[Σ_t ∇log π(a_t) · (R_t - V(s_t))]

使用straight-through gradients
处理离散潜在变量

Dreamer v3:扩展到大规模

最新的Dreamer v3展示了在复杂环境中的强大性能:

  1. Symlog预测
symlog(x) = sign(x)·log(|x| + 1)

处理不同尺度的奖励
稳定大规模训练
  1. 自由比特(Free Bits)
KL损失修改:
L_KL = max(KL(q||p), free_bits)

保证最小信息流
防止后验崩塌
  1. 在自动驾驶的应用潜力 - 学习复杂交通场景的动力学 - 长期轨迹规划 - 处理部分可观测性

7.4.4 MILE:基于模仿学习的端到端驾驶

MILE(Model-based Imitation LEarning)展示了世界模型在自动驾驶中的实际应用。

MILE架构

输入:多视角图像
     ↓
潜在动力学模型
     ↓
未来状态预测
     ↓
控制输出

核心技术

  1. 几何感知的世界模型
BEV表示学习:

- 多相机图像 → BEV特征
- 3D几何约束
- 时序一致性

动力学建模:
BEV_{t+1} = f(BEV_t, a_t)
  1. 两阶段训练
阶段1:行为克隆

- 从专家数据学习基础策略
- 同时训练世界模型

阶段2:想象力微调

- 在世界模型中rollout
- 优化长期目标
- 无需额外真实数据
  1. 多任务学习
辅助任务:

- 语义分割预测
- 深度估计
- 未来帧预测
- 占据栅格预测

共享表示提升泛化能力

性能优势

  1. 数据效率 - 通过想象生成更多训练数据 - 从有限的专家演示中学习 - 探索未见场景

  2. 可解释性 - 可视化预测的未来状态 - 理解决策依据 - 调试和验证

  3. 长期规划能力 - 预测10-30帧未来 - 考虑行动的长期后果 - 避免短视决策

实验结果

在CARLA基准测试中:

  • 驾驶分数:比纯模仿学习提升35%
  • 成功率:城市场景达到82%
  • 碰撞率:降低40%
  • 违规率:降低25%

局限性与未来方向

  1. 计算开销 - 世界模型推理成本 - 多步rollout耗时 - 需要模型压缩技术

  2. 模型误差累积 - 长期预测精度下降 - 需要更鲁棒的动力学模型 - 结合无模型方法

  3. 泛化到真实世界 - 仿真到现实的差距 - 需要更多真实数据验证 - 持续学习和适应

7.5 离线强化学习与数据驱动方法

离线强化学习(Offline RL)从固定的数据集中学习策略,无需与环境交互。这对自动驾驶至关重要,因为可以利用大量历史驾驶数据,避免危险的在线探索。

7.5.1 离线RL的必要性

自动驾驶场景中,离线RL成为必然选择的原因:

安全性考虑

在线探索的风险:

- 碰撞事故:探索错误动作可能导致事故
- 法律责任:实车测试的失败后果严重
- 社会接受度:公众对自动驾驶失误容忍度低

离线学习的优势:

- 零风险:在历史数据上学习
- 可重复:相同数据可多次使用
- 可验证:离线评估策略性能

数据可用性

自动驾驶数据来源:

1. 人类驾驶数据
   - 车队收集:数百万英里
   - 众包数据:用户贡献
   - 仿真数据:合成场景

2. 安全驾驶员接管数据
   - 失败案例:学习避免错误
   - 边缘场景:罕见但重要

3. 优化轨迹
   - 离线优化:最优路径
   - 专家系统:规则生成

离线RL的核心挑战

  1. 分布偏移(Distribution Shift)
数据分布:d_β(s,a)(行为策略)
目标分布:d_π(s,a)(学习策略)

问题:

- Out-of-Distribution (OOD) 动作
- Q值过估计
- 策略崩溃
  1. 外推误差(Extrapolation Error)
Q函数在未见(s,a)对上的估计不可靠
导致选择OOD动作:
π(s) = arg max_a Q(s,a)
可能选择数据中没有的动作
  1. 数据质量问题
次优数据:人类驾驶并非最优
噪声标注:传感器误差
不完整覆盖:罕见场景缺失

离线RL算法分类

1. 策略约束方法
   - 限制策略偏离数据
   - BRAC, BEAR, AWR

2. 价值惩罚方法
   - 惩罚OOD动作的Q值
   - CQL, IQL, COMBO

3. 模型基础方法
   - 学习环境模型
   - MOPO, MOReL, COMBO

4. 单步方法
   - 避免动态规划
   - IQL, Decision Transformer

7.5.2 Conservative Q-Learning (CQL)

CQL是最流行的离线RL算法之一,通过保守的Q值估计避免OOD动作。

核心思想

学习一个下界Q函数:
Q^CQL(s,a) ≤ Q^π(s,a) 对数据中的(s,a)

通过添加正则化项:
L_CQL = α·E_s~D[log Σ_a exp(Q(s,a)) - E_{a~β(·|s)}[Q(s,a)]]

        + L_SAC(Q)

第一项:推高所有动作的Q值
第二项:降低数据中动作的Q值
效果:OOD动作的Q值被压制

CQL的变体

  1. CQL(H):基于熵的版本
使用KL散度替代log-sum-exp:
L_CQL(H) = α·E_s[KL(ρ(·|s) || exp(Q(s,·))/Z)]

其中ρ是采样分布(如均匀分布)
  1. CQL(ρ):灵活的采样分布
从不同分布采样OOD动作:

- 均匀分布:全空间惩罚
- 高斯分布:局部惩罚
- VAE先验:学习的分布

实现细节

  1. 自适应α调节
目标:保持保守程度
L_α = α·(E_s,a~D[Q(s,a)] - τ)

τ是目标保守水平
α自动调整以满足约束
  1. 重要性采样
处理行为策略与目标策略的差异:
L_IS = E_{s,a~D}[w(s,a)·(Q(s,a) - B(s,a))²]
w(s,a) = π(a|s)/β(a|s)

实践中使用截断:w_clip = min(w, w_max)
  1. 网络架构
双Q网络:Q1, Q2
目标网络:Q1', Q2'

最小Q值:Q_min = min(Q1, Q2)
用于策略更新和贝尔曼备份

在自动驾驶中的应用

状态空间:

- 鸟瞰图特征
- 车辆运动学状态
- 导航信息

动作空间:

- 连续控制:[加速度, 转向角]
- 离散决策:{保持, 变道, 刹车}

奖励设计:
R = w_progress·进度 - w_collision·碰撞 

    - w_comfort·急动度 - w_violation·违规

数据收集:

- 人类驾驶:基础策略
- 失败案例:边界探索
- 仿真增强:场景多样性

实验结果与分析

在D4RL驾驶任务上:

  • CQL比行为克隆提升45%
  • 比在线SAC更安全(零碰撞)
  • 对次优数据鲁棒

关键发现:

  1. 保守程度与性能的权衡
  2. 数据质量显著影响结果
  3. 与在线微调结合效果最佳

7.5.3 Implicit Q-Learning (IQL)

IQL通过避免直接的策略提取,绕过了外推误差问题。

核心创新

传统方法:π(s) = arg max_a Q(s,a)
问题:需要在整个动作空间优化

IQL方法:

1. 学习V(s)和Q(s,a)
2. 使用期望回归:
   L_V = E_{s,a~D}[L_τ(Q(s,a) - V(s))]

   其中L_τ是非对称损失:
   L_τ(x) = |τ - 1_{x<0}|·x²

3. 优势加权的策略提取:
   π(a|s) ∝ exp(β·(Q(s,a) - V(s)))

关键优势

  1. 无需动作空间优化 - 只在数据中的动作上学习 - 避免OOD动作评估 - 计算效率高

  2. 稳定的训练

分离的目标:

- Q函数:贝尔曼误差
- V函数:期望回归
- 策略:优势加权

每个组件独立优化
减少相互干扰
  1. 理论保证
在无限数据下:
V*(s) = max_a Q*(s,a)(最优)

有限数据下:
V(s) ≈ E_{a~β}[Q(s,a)](保守)

IQL在自动驾驶中的实践

  1. 分层决策结构
高层(离散):

- 行为决策:IQL选择意图
- 优势明确的选择

底层(连续):

- 轨迹规划:条件IQL
- 给定意图下的控制
  1. 多模态行为建模
混合优势函数:
A(s,a) = Σ_i w_i(s)·A_i(s,a)

每个模式i对应一种驾驶风格:

- 保守型
- 标准型  
- 激进型
  1. 安全约束集成
修改优势函数:
A_safe(s,a) = A(s,a) - λ·C(s,a)

C(s,a)是约束违反程度
λ是拉格朗日乘子

7.5.4 大规模驾驶数据的利用

现代自动驾驶公司积累了PB级的驾驶数据,如何有效利用是关键挑战。

数据管理架构

数据流水线:
采集 → 存储 → 标注 → 训练 → 部署

1. 数据采集
   - 多传感器同步
   - 时间戳对齐
   - 触发式记录

2. 数据存储
   - 分布式文件系统
   - 列式存储(Parquet)
   - 索引和检索

3. 自动标注
   - 预训练模型
   - 主动学习
   - 人工验证

4. 数据版本控制
   - DVC (Data Version Control)
   - 实验可重复性
   - A/B测试

数据选择策略

  1. 重要性采样
价值感知采样:
p(τ) ∝ |V(s_0) - R(τ)|

选择信息量大的轨迹:

- 失败案例
- 边缘场景
- 高不确定性
  1. 多样性采样
覆盖状态-动作空间:

- K-means聚类
- 核心集选择
- 最远点采样

平衡数据分布:

- 场景类型
- 天气条件
- 交通密度
  1. 课程学习
渐进式训练:

1. 简单场景(高速公路)
2. 中等复杂(城市道路)
3. 困难场景(拥堵交叉口)

自适应调整:
根据模型性能选择数据

分布式训练

并行策略:

1. 数据并行
   - 多GPU/TPU训练
   - 梯度聚合
   - 同步/异步更新

2. 模型并行
   - 大模型分片
   - 流水线并行
   - 张量并行

3. 混合并行
   - 结合两种策略
   - 优化通信开销

在线-离线混合学习

两阶段框架:

1. 离线预训练
   - 大规模历史数据
   - 学习基础策略
   - 安全约束

2. 在线微调
   - 仿真环境
   - 有限真实测试
   - 持续改进

切换策略:
if 置信度 < 阈值:
    使用离线策略(保守)
else:
    使用在线策略(探索)

案例研究:Waymo的离线RL系统

数据规模:

- 2000万英里真实驾驶
- 150亿英里仿真
- 1000+ 场景类型

技术栈:

- CQL + IQL混合
- Transformer骨干网络
- 分布式训练(TPU v4)

性能指标:

- 碰撞率:< 1e-6
- 接管率:< 0.1%
- 舒适度:95%满意度

关键创新:

1. 场景重建与增强
2. 反事实推理
3. 多任务学习

未来发展方向

  1. 基础模型(Foundation Models)
预训练策略:

- 自监督学习
- 多模态对齐
- 跨域迁移

下游适应:

- Few-shot学习
- 提示工程
- LoRA微调
  1. 联邦学习
分布式数据利用:

- 边缘设备训练
- 隐私保护
- 增量更新
  1. 持续学习
在线适应:

- 灾难性遗忘缓解
- 经验回放
- 元学习初始化

7.6 Decision Transformer与序列建模

7.6.1 将RL重构为序列建模

7.6.2 条件序列生成

7.6.3 Trajectory Transformer

7.6.4 在自动驾驶中的应用案例

7.7 安全强化学习

7.7.1 约束马尔可夫决策过程(CMDP)

7.7.2 安全探索与Shield方法

7.7.3 可验证的安全保证

7.7.4 人在回路的安全机制

7.8 实际部署考虑

7.8.1 仿真到现实的迁移

7.8.2 在线学习与适应

7.8.3 计算资源约束

7.8.4 与传统规划方法的结合

本章小结

练习题

常见陷阱与错误

参考文献