3. 模仿学习入门
在自动驾驶策略学习中,模仿学习是最直接的一类方法:它不要求手工设计完整的奖励函数,而是假设专家驾驶数据中隐含了“好策略”的答案。本节围绕三条主线展开:行为克隆、逆强化学习与DAgger,并进一步讨论驾驶策略的输入输出表示,因为表示方式往往决定了模型能否真正学到可泛化的驾驶行为。
一、行为克隆:最朴素的监督学习
行为克隆(Behavior Cloning, BC)把驾驶策略学习当作标准的监督学习问题。设专家在状态 s 下执行动作 a,BC 训练一个参数化策略 πθ(a|s) 去拟合专家动作分布。常见损失函数为均方误差或交叉熵:
L_BC(θ) = E_(s,a)~D_expert [ -log πθ(a|s) ]
或回归形式:
L_BC(θ) = E_(s,a)~D_expert [ ||πθ(s) - a||² ]
在驾驶场景中,输入通常是前视摄像头图像、激光雷达点云、车辆状态(速度、航向角、转向角)等;输出可以是离散动作(左转、直行、右转、加速、刹车),也可以是连续控制量(转向角、油门、制动压力)。BC 的优点是实现简单、训练稳定、易于与 CNN/Transformer 结合;缺点是存在协变量偏移:训练时只见过专家状态分布,部署时一旦偏离,误差会累积放大。
二、逆强化学习:从行为反推奖励
逆强化学习(Inverse Reinforcement Learning, IRL)不直接模仿动作,而是先推断专家行为背后的奖励函数 R(s,a),再基于该奖励用强化学习求解最优策略。其基本假设是:专家行为在某个奖励函数下近似最优。典型流程如下:
- 初始化奖励函数
Rψ(s,a); - 在当前奖励下求解最优策略
π; - 比较
π与专家轨迹的特征期望; - 更新奖励参数
ψ,使专家轨迹获得更高回报; - 重复直至奖励函数收敛,再输出最终策略。
IRL 的优势在于能学到更抽象的目标(如“保持安全距离”“平顺驾驶”),对分布偏移更鲁棒;但计算代价高,且需要在线或反复求解 RL,工程落地难度较大。在驾驶策略评测中,IRL 常被用于解释专家行为、生成可解释的奖励信号,或作为 BC 的补充。
三、DAgger:用交互数据修正分布偏移
DAgger(Dataset Aggregation)是解决 BC 协变量偏移的经典方法。它让当前策略 πθ 在环境中执行,产生新状态,再由专家对这些状态标注正确动作,并把新数据不断聚合到训练集中。算法要点:
初始化数据集 D ← 专家演示数据
for i = 1..N:
训练策略 πθ ← 在 D 上做监督学习
用 πθ 在环境中采样轨迹,得到状态序列 {s_t}
请专家对 {s_t} 标注动作 a_t*
D ← D ∪ {(s_t, a_t*)}
返回最终策略 πθ
DAgger 的关键价值在于:训练分布逐步逼近策略实际访问的状态分布,从而显著缓解误差累积。在驾驶仿真中,这意味着让模型先“开歪”,再由专家纠正,模型就能学会从偏离状态中恢复。其代价是需要专家在线标注,成本较高,因此常与仿真器、安全员接管数据或自动标注结合使用。
四、驾驶策略的输入输出表示
输入输出表示直接决定策略能学到什么。常见输入包括:
- 视觉输入:单目/多目 RGB 图像、BEV 特征图、语义分割图;
- 几何输入:激光雷达点云、毫米波雷达目标列表、高精地图矢量;
- 状态输入:自车速度、加速度、航向角、转向角、历史动作序列;
- 交互输入:周围车辆轨迹、行人位置、交通灯状态。
输出表示则分为三类:离散动作(如 {左转, 直行, 右转})、连续控制(转向角、油门、刹车)、轨迹/路径点(未来 3~5 秒的 waypoint 序列)。轨迹输出近年来更受青睐,因为它天然包含时序信息,便于与规划模块衔接,也更容易做多模态建模。
| 方法 | 学习目标 | 数据需求 | 优点 | 主要风险 |
|---|---|---|---|---|
| 行为克隆 BC | 直接拟合专家动作 | 静态专家数据集 | 简单、稳定、易扩展 | 协变量偏移、误差累积 |
| 逆强化学习 IRL | 先学奖励再求策略 | 专家轨迹 + 环境交互 | 可解释、泛化较好 | 计算昂贵、训练不稳定 |
| DAgger | 交互式聚合数据 | 专家在线标注 | 缓解分布偏移 | 标注成本高、依赖专家 |
五、案例与常见误区
以城市路口左转为例:BC 可能只学会“看到路口就左转”,但遇到对向直行车时无法判断让行;IRL 可以从专家轨迹中推断出“避让直行、保持安全间隙”的奖励;DAgger 则让模型在仿真中先尝试左转,由专家在冲突点纠正,从而学会等待与博弈。三者并非互斥,实际系统常以 BC 做预训练,用 DAgger 做在线修正,再用 IRL 辅助奖励设计。
1. 只堆数据量,不关注状态分布覆盖,BC 仍会在长尾场景失效;
2. 把 IRL 当作“免交互”方法,忽略其内部仍需 RL 求解;
3. DAgger 中专家标注不一致,导致策略学到矛盾行为;
4. 输入输出表示与下游规划接口不匹配,例如输出离散动作却要求平滑轨迹。
总结来看,行为克隆适合快速建立基线,逆强化学习适合挖掘可解释的驾驶目标,DAgger 则是在线修正分布偏移的关键手段。真正决定驾驶策略上限的,往往不是单一算法,而是输入输出表示是否与任务匹配、数据是否覆盖长尾状态,以及评测时能否复现真实交互分布。