3、深度学习基础:卷积神经网络(CNN)、循环神经网络(RNN)、Transformer、注意力机制、损失函数与优化器
端到端自动驾驶系统将传感器原始输入(图像、激光雷达点云、毫米波雷达数据)直接映射为车辆控制指令(转向、油门、制动),其核心引擎是深度神经网络。理解CNN、RNN、Transformer、注意力机制以及损失函数与优化器的原理与工程适配,是构建可靠自动驾驶感知与控制模型的前提。本章将围绕这些基础模块,从核心原理、工程判断方法、实战案例到常见误区进行系统拆解,并给出面向车载场景的选型与调优建议。
3.1 核心原理:从感知到控制的网络组件
3.1.1 卷积神经网络(CNN)——空间特征提取的基石
CNN通过局部感受野、权值共享和空间下采样三大机制,从图像或点云中提取层次化特征。在自动驾驶中,2D CNN处理前视相机图像,3D CNN或稀疏卷积处理激光雷达体素化数据。其核心操作包括:
- 卷积层:使用可学习的卷积核(如3×3、5×5)在输入特征图上滑动,提取边缘、纹理、形状等特征。对于自动驾驶,常用空洞卷积(Dilated Convolution)扩大感受野而不增加计算量,以捕捉远距离道路信息。
- 池化层:最大池化或平均池化降低空间维度,增强平移不变性。但过度池化会丢失小目标(如行人、锥桶)的细节,因此现代架构(如ResNet、EfficientNet)采用步长卷积替代部分池化。
- 残差连接:解决深层网络梯度消失问题,使100层以上的网络可稳定训练。自动驾驶场景中,ResNet-50/101是常用的骨干网络。
3.1.2 循环神经网络(RNN)与变体——时序建模的经典方案
RNN通过隐藏状态传递历史信息,适合处理序列数据。但标准RNN存在梯度消失/爆炸问题,难以捕捉长距离依赖。LSTM(长短期记忆网络)通过输入门、遗忘门、输出门和细胞状态,将有效信息保留时间延长至数十帧;GRU(门控循环单元)简化了LSTM结构,参数更少,在数据量有限时更易训练。
在自动驾驶中,RNN类网络常用于:
- 车辆轨迹预测:基于历史轨迹序列预测未来3-5秒的位置。
- 驾驶员意图识别:结合方向盘转角、踏板开度的时间序列判断变道或制动意图。
- 视觉里程计:从连续图像帧估计自车运动。
3.1.3 Transformer与注意力机制——全局建模与多模态融合
Transformer最初用于自然语言处理,其核心是自注意力(Self-Attention)机制:通过Query、Key、Value三个矩阵计算输入序列中任意两个位置的相关性,从而直接建模全局依赖。多头注意力(Multi-Head Attention)将特征投影到多个子空间,捕捉不同维度的关系。
在自动驾驶中,Transformer的应用包括:
- BEV感知:将多相机图像通过注意力机制投影到鸟瞰图(Bird's Eye View)空间,统一表达车辆、车道线、障碍物的位置关系。典型代表:Tesla的Occupancy Network、BEVFormer。
- 多模态融合:使用交叉注意力(Cross-Attention)将图像特征与激光雷达点云特征对齐,解决传感器标定误差和视角差异问题。
- 时序建模:使用Temporal Transformer对历史BEV特征进行时序编码,替代RNN,支持并行训练和推理。
注意力机制的计算复杂度为O(n²),其中n为序列长度。对于高分辨率图像(如1280×720),直接计算全局注意力不可行,因此工程上采用窗口注意力(Window Attention)或稀疏注意力(Sparse Attention)降低计算量。
3.1.4 损失函数与优化器——训练目标的数学表达
损失函数量化预测值与真实值之间的差异,是网络学习的“指挥棒”。优化器则根据损失梯度更新网络参数,决定收敛速度与最终性能。
| 组件 | 常用选择 | 自动驾驶场景适配 |
|---|---|---|
| 回归损失 | L1 Loss / Smooth L1 (Huber) | 预测转向角、速度时,Smooth L1对离群点不敏感,训练更稳定 |
| 分类损失 | 交叉熵损失 | 交通标志识别、驾驶行为分类(直行/变道/停车) |
| 多任务损失 | 加权求和:L = Σ λᵢ Lᵢ | 同时优化目标检测、车道线分割、控制预测;λᵢ需根据任务难度动态调整 |
| 优化器 | AdamW / SGD + Momentum | AdamW收敛快、适合Transformer;SGD泛化性好,适合CNN微调 |
| 学习率调度 | 余弦退火 / OneCycle | 避免训练后期震荡,提升收敛精度 |
3.2 判断方法:如何选择网络架构与训练策略
3.2.1 架构选型决策流程
- 明确任务类型:是纯感知(目标检测、语义分割)、纯控制(直接输出转向/油门),还是端到端联合模型?感知任务优先CNN或Transformer;控制任务需结合时序建模。
- 评估计算资源:车载芯片的算力(TOPS)、内存带宽、功耗限制。例如,Jetson Orin(275 TOPS)可运行BEVFormer-small,而低端平台只能运行轻量CNN。
- 考虑数据规模:数据量小于10万帧时,优先CNN+RNN的轻量组合;数据量超过百万帧时,Transformer的全局建模优势才能充分发挥。
- 实时性验证:在目标硬件上测量端到端延迟(从传感器输入到控制输出),确保满足<100ms的安全要求。
3.2.2 损失函数设计原则
- 任务对齐:控制任务(转向角)使用回归损失;检测任务使用分类+回归联合损失(如Focal Loss + Smooth L1)。
- 量纲统一:转向角(弧度)与速度(m/s)数值范围差异大,需归一化或使用加权损失。
- 安全优先:对碰撞、偏离车道等高风险场景赋予更高损失权重,使模型“保守”行为优先。
3.3 案例拆解:基于Transformer的端到端驾驶模型训练
初始方案与问题:团队最初采用ResNet-50提取图像特征 + LSTM进行时序建模,直接输出转向角和加速度。开环测试(使用真实驾驶数据回放)位移误差为1.2m,但闭环测试(在仿真环境中)车辆在环岛场景频繁压线,接管间隔仅2.3km。分析发现:LSTM对长距离依赖(如环岛内需持续观察3-5秒)建模不足,且多相机特征在后期融合丢失了空间位置信息。
优化方案:
- 架构升级:采用BEVFormer架构,将8路相机特征通过可变形注意力(Deformable Attention)投影到BEV空间(200×200网格,分辨率0.5m/像素),再使用Temporal Transformer编码过去1秒的BEV特征。
- 损失函数重构:将单一L2损失改为多任务加权损失:
其中碰撞概率使用二分类交叉熵,车道偏离距离使用L1损失。L = 0.5 * L_smooth_l1(转向角) + 0.3 * L_smooth_l1(加速度) + 0.2 * L_bce(碰撞概率) + 0.1 * L_lane(车道偏离距离) - 优化器调整:从Adam(lr=1e-3)切换为AdamW(lr=1e-4,weight_decay=0.01),并采用余弦退火调度,总训练轮数60轮。
- 数据增强:对BEV特征进行随机平移(±1m)、旋转(±5°),模拟标定误差和车辆颠簸。
结果对比:
| 指标 | 优化前(CNN+LSTM) | 优化后(BEVFormer) | 提升幅度 |
|---|---|---|---|
| 开环位移误差 | 1.2 m | 0.6 m | 50% ↓ |
| 闭环接管间隔 | 2.3 km | 11.8 km | 413% ↑ |
| 环岛场景通过率 | 61% | 94% | 33% ↑ |
| 推理延迟 | 38 ms | 45 ms | 仍在实时范围内 |
风险与代价:BEVFormer参数量达1.2亿,训练需要8张A100 GPU运行约5天;模型对相机标定误差敏感,需在线标定补偿模块;在低光照、雨雾场景下性能下降明显,需额外训练鲁棒性分支。
复盘经验:端到端模型的性能瓶颈往往不在单一网络结构,而在于特征表达的空间一致性(BEV优于透视视图)和时序建模长度(Transformer优于LSTM)。损失函数设计需与安全指标(接管间隔)直接挂钩,而非仅优化数值误差。