3、深度学习基础:卷积神经网络(CNN)、循环神经网络(RNN)、Transformer、注意力机制、损失函数与优化器

端到端自动驾驶系统将传感器原始输入(图像、激光雷达点云、毫米波雷达数据)直接映射为车辆控制指令(转向、油门、制动),其核心引擎是深度神经网络。理解CNN、RNN、Transformer、注意力机制以及损失函数与优化器的原理与工程适配,是构建可靠自动驾驶感知与控制模型的前提。本章将围绕这些基础模块,从核心原理、工程判断方法、实战案例到常见误区进行系统拆解,并给出面向车载场景的选型与调优建议。

端到端自动驾驶神经网络基础架构与训练闭环 多模态输入 Camera / LiDAR / Radar 分辨率 1280×720 / 64线 特征提取与融合 CNN(2D/3D) Transformer Encoder 跨模态注意力融合 BEV 特征构建 时序建模 RNN / LSTM / GRU Temporal Transformer 历史帧特征记忆 帧间运动补偿 控制输出 转向角 δ 油门开度 a 制动压力 b 损失函数与优化器 L1/L2/Huber 损失 · 多任务加权损失 · 轨迹平滑正则 AdamW / SGD + Momentum · 余弦退火 · 梯度裁剪 反向传播与参数更新 训练数据闭环 真实驾驶数据 仿真数据(CARLA/SIM) 端到端评估体系 开环指标:位移误差 (m) · 航向误差 (rad) · 碰撞率 (%) 闭环指标:任务完成率 · 平均接管间隔 (km) · 乘坐舒适度 (加速度均方根) 安全约束:功能安全 (ISO 26262) · 预期功能安全 (ISO 21448) · 冗余监控

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秒的位置。
  • 驾驶员意图识别:结合方向盘转角、踏板开度的时间序列判断变道或制动意图。
  • 视觉里程计:从连续图像帧估计自车运动。
工程警示:RNN的串行计算特性导致推理延迟较高,在车载嵌入式平台(如Orin、Thor)上难以达到实时性要求(通常需<50ms)。实际部署中,常将RNN替换为1D卷积或Transformer的因果注意力机制,以并行计算换取速度。

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 架构选型决策流程

  1. 明确任务类型:是纯感知(目标检测、语义分割)、纯控制(直接输出转向/油门),还是端到端联合模型?感知任务优先CNN或Transformer;控制任务需结合时序建模。
  2. 评估计算资源:车载芯片的算力(TOPS)、内存带宽、功耗限制。例如,Jetson Orin(275 TOPS)可运行BEVFormer-small,而低端平台只能运行轻量CNN。
  3. 考虑数据规模:数据量小于10万帧时,优先CNN+RNN的轻量组合;数据量超过百万帧时,Transformer的全局建模优势才能充分发挥。
  4. 实时性验证:在目标硬件上测量端到端延迟(从传感器输入到控制输出),确保满足<100ms的安全要求。

3.2.2 损失函数设计原则

  • 任务对齐:控制任务(转向角)使用回归损失;检测任务使用分类+回归联合损失(如Focal Loss + Smooth L1)。
  • 量纲统一:转向角(弧度)与速度(m/s)数值范围差异大,需归一化或使用加权损失。
  • 安全优先:对碰撞、偏离车道等高风险场景赋予更高损失权重,使模型“保守”行为优先。

3.3 案例拆解:基于Transformer的端到端驾驶模型训练

场景背景:某自动驾驶初创公司需在城市复杂道路(含环岛、无保护左转)上训练端到端驾驶模型。传感器配置为8路相机(1280×720@30fps)+ 1个前向激光雷达(64线)。计算平台为NVIDIA DRIVE Orin(275 TOPS)。目标:实现L2+级辅助驾驶,平均接管间隔≥10km。

初始方案与问题:团队最初采用ResNet-50提取图像特征 + LSTM进行时序建模,直接输出转向角和加速度。开环测试(使用真实驾驶数据回放)位移误差为1.2m,但闭环测试(在仿真环境中)车辆在环岛场景频繁压线,接管间隔仅2.3km。分析发现:LSTM对长距离依赖(如环岛内需持续观察3-5秒)建模不足,且多相机特征在后期融合丢失了空间位置信息。

优化方案:

  1. 架构升级:采用BEVFormer架构,将8路相机特征通过可变形注意力(Deformable Attention)投影到BEV空间(200×200网格,分辨率0.5m/像素),再使用Temporal Transformer编码过去1秒的BEV特征。
  2. 损失函数重构:将单一L2损失改为多任务加权损失:
    L = 0.5 * L_smooth_l1(转向角) + 0.3 * L_smooth_l1(加速度) + 0.2 * L_bce(碰撞概率) + 0.1 * L_lane(车道偏离距离)
    其中碰撞概率使用二分类交叉熵,车道偏离距离使用L1损失。
  3. 优化器调整:从Adam(lr=1e-3)切换为AdamW(lr=1e-4,weight_decay=0.01),并采用余弦退火调度,总训练轮数60轮。
  4. 数据增强:对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)。损失函数设计需与安全指标(接管间隔)直接挂钩,而非仅优化数值误差。

3.4 常见误区与总结复盘

误区一:盲目堆叠Transformer层数。在数据量不足时,深层Transformer容易过拟合,且推理延迟线性增加。建议从轻量级变体(如MobileViT、EdgeNeXt)开始,逐步增加复杂度。
误区二:忽略时序一致性。仅使用单帧图像进行控制预测,会导致车辆在静止物体前犹豫或抖动。必须引入时序信息(至少0.5秒历史),但RNN的串行计算可能成为瓶颈,推荐使用因果卷积或Transformer的因果注意力。
误区三:损失函数权重固定不变。训练初期,碰撞损失权重过高会导致模型过于保守(频繁停车);后期应逐步降低安全权重,提升行驶效率。建议使用不确定性加权(Uncertainty Weighting)或渐进式权重调整。
总结建议:对于端到端自动驾驶,推荐采用“CNN骨干提取空间特征 + Transformer进行多模态融合与长时序建模 + 多任务加权损失 + AdamW优化器”的基线方案。实际部署时,需根据硬件算力、数据规模、安全等级进行裁剪与量化(INT8/FP16)。始终以闭环测试指标(接管间隔、任务完成率)作为模型优劣的最终评判标准,而非仅看开环损失值。