3. 行为克隆基本原理
行为克隆(Behavior Cloning, BC)是自动驾驶模仿学习中最直接、最易落地的一条技术路线。它的核心思想可以用一句话概括:把人类驾驶员的驾驶过程看作一组“状态—动作”样本,用监督学习的方式训练一个策略网络,让模型学会在什么状态下该输出什么动作。本节围绕监督学习范式、状态到动作的映射、模仿学习与强化学习的区别,以及行为克隆的优缺点展开。
3.1 监督学习范式:把驾驶拆成回归/分类问题
行为克隆把驾驶任务形式化为监督学习。给定专家轨迹数据集 D = {(s₁,a₁), (s₂,a₂), …, (s_N,a_N)},其中 s 是车辆状态(如摄像头图像、激光雷达点云、自车速度、航向角、历史动作等),a 是专家在该状态下的动作(如方向盘转角、油门、刹车,或离散的驾驶决策)。训练目标是让策略网络 π_θ(s) 的输出尽可能逼近专家动作:
L(θ) = E_{(s,a)~D} [ ℓ( π_θ(s), a ) ]
# 连续动作(转向/油门):常用均方误差 MSE
ℓ = || π_θ(s) - a ||²
# 离散动作(左转/直行/右转):常用交叉熵
ℓ = -Σ a_i · log π_θ(s)_i
这一范式的好处是:训练过程与普通深度学习任务几乎一致,数据可离线采集、可复现、可增量迭代,不需要在真实道路上反复试错。但它也隐含了一个强假设——训练分布与部署分布一致,这正是后续误差累积问题的根源。
3.2 状态到动作的映射:从感知到控制的端到端链路
行为克隆网络本质上是一个从高维状态到低维动作的映射函数。以端到端自动驾驶为例,其典型信号链为:摄像头/雷达原始数据 → 特征提取骨干网络(CNN/Transformer)→ 时序融合(RNN/时序注意力)→ 动作头(转向、油门、刹车)→ 车辆控制接口。下图展示了这一映射关系及数据流方向。
图中上半部分是训练时的前向链路,下半部分强调专家数据与监督损失构成闭环。推理阶段只保留状态到动作的前向通路,专家标签不再参与。这也解释了行为克隆的部署形态:模型一旦训练完成,就是一个确定性的映射函数。
3.3 模仿学习与强化学习的区别
模仿学习与强化学习同属序贯决策方法,但学习信号来源完全不同。强化学习通过与环境交互获得奖励信号,依靠试错最大化累积回报;行为克隆则直接复制专家动作,不定义奖励函数。下表从多个维度对比两者。
| 对比维度 | 行为克隆(模仿学习) | 强化学习 |
|---|---|---|
| 学习信号 | 专家动作标签(监督信号) | 环境奖励(标量回报) |
| 是否需要奖励函数 | 不需要 | 必须设计奖励函数 |
| 交互方式 | 离线数据,无需在线试错 | 在线交互,大量试错 |
| 样本效率 | 较高,直接利用专家数据 | 较低,常需百万级交互 |
| 主要风险 | 分布偏移、误差累积、因果混淆 | 奖励黑客、训练不稳定、安全风险 |
| 典型应用 | 端到端驾驶、机械臂示教 | 游戏 AI、仿真控制、决策规划 |
3.4 行为克隆的优缺点与典型误区
优点:实现简单,训练目标明确;可直接复用成熟的监督学习工具链;数据可离线采集与回放,便于复现和版本管理;在专家覆盖充分的场景中能快速达到可用水平。
缺点:最突出的是分布偏移与误差累积。训练时状态来自专家分布,推理时状态由模型自身动作决定,一旦出现小误差,车辆进入训练集中未出现过的状态,模型输出更差,误差被进一步放大,形成“越走越偏”的恶性循环。此外还存在因果混淆(模型可能学到“刹车灯亮”而非“前车减速”这类伪相关)、多模态动作平均(同一状态专家可能左转或右转,MSE 会输出中间值)、长尾场景覆盖不足等问题。
为缓解上述问题,工程上常采用数据增强与扰动注入(DAgger 思路)、时序模型引入历史信息、多任务辅助监督(预测未来轨迹、语义分割)、以及安全兜底规则与仿真闭环回归测试。理解这些取舍,是后续设计专家示范采集方案与训练管线的基础。