来源:汽车维修与保养 作者:佚名 2022-02-04 16:20:12
四、模型训练
特斯拉的自动驾驶技术高度依赖于神经网络,对于车载系统,如果实时运算一个拥有48个网络,1 000多个感知输出的庞大神经网络模型是无法完成的事情。对于模型训练,特斯拉研发了专门用于模型训练的Dojo超级计算机群,如图8所示。
对于神经网络的模型训练,我们最关注模型的损失函数、跨任务训练、数据优化三个部分。
1.损失函数
损失函数(Loss Function)也可称为代价函数(CostFunction)或误差函数(Error Function),用于衡量预测值与实际值的偏离程度。一般来说,我们在进行机器学习任务时,使用的每一个算法都有一个目标函数,算法便是对这个目标函数进行优化,特别是在分类或者回归任务中,便是使用损失函数(LossFunction)作为其目标函数。机器学习的目标就是希望预测值与实际值偏离较小,希望损失函数较小,也就是所谓的最小化损失函数。特斯拉把所有的子任务最终都加权平均到一个损失函数中,对这个损失函数进行优化。特斯拉在训练过程中,主要存在如下几点问题的思考:
(1)不同任务的损失函数的范围不同,并且分类和回归权重也不同。例如感知人和道路边缘是两个任务,其范围不同并且权重也不同,损失函数的归一化是一个重要的问题。
(2)不同任务有着不同的重要性,例如行人检测就有着比限速标志牌更高的优先级。
(3)有些任务比较简单,有些比较困难,例如道路标示牌在不同场景下的变化不大,模型可以快速训练到很好的效果,但是车道是一个很复杂的任务,道路模型具有多样性的特点。
(4)模型的长尾数据较少(RA口特殊车辆,事故检测等数据量较少,对于十分依赖数据输入的神经网络来说是一个很大的挑A)。
2.跨任务训练
因为模型在不同任务间进行不同程度的参数共享,因此利用不同的数据对一些子任务进行训练的时候,并不是整个网络模型都会得到训练,而是根据任务和数据样本整体网络的一部分进行训练。特斯拉的软件架构中也使用了这种方法来训练神经网络。此外,特斯拉还使用了分布式模型进行模型训练,以此来减少模型训练时间。例如此时正在训练任务1(车道线模型训练),任务2(道路标志识别模型训练)此时也进入训练队列,系统会自动停止任务1的训练并记录停止节点,优先训练任务2(因为任务2训练更快,且训练结果无需重复标注),任务2结束后继续训练任务1,提升网络的训练效率。
3.数据优化
为了解决长尾任务的训练,采用数据过采样来保证任务内的数据优化以及任务间的数据平衡。例如,在现实交通灯数据中,黄灯的时间及出现频率非常有限,通过过采样达到在一项任务内基本的一个数据分布的平衡。另外在特斯拉任务间也通过不同任务的优先级,重要程度等设定过采样率来调节不同任务的性能。对于数据量不同的训练任务,应该对长尾任务(例如特殊车辆,事故检测等数据量较少的任务)以及噪声影响较多的任务进行大量数据优化。
五、特斯拉FSD软件信号传输的流程
特斯拉FSD软件信号传输的流程如图9所示。
特斯拉的8个摄像头进行数据感知,可以以每秒25亿像素的最大速度采集输入到FSD中,摄像头的数据进入到FSD的DRAM。然后通过图像信号处理器ISP进行图像数据的预处理,每秒可以处理10亿像素(大约8个全高清1080P屏幕,每秒60帧)。这一阶段芯片将来自摄像头传感器的原始RGB数据转换成除了增强色调和消除噪音之外实际上有用的数据。随后数据进入LPDDR中进行存储,影响此阶段的关键要素就是内存带宽,FSD除了要处理摄像头的内存数据,还需要处理毫米波雷达及其他传感器的数据。数据随后存储与SRAM中,最终通过特斯拉的NPU/GPU/CPU进行数据处理,Dojo的训练结果会通过OTA定义更新到FSD上,特斯拉可以对目标进行识别并进行跟踪,并把识别及跟踪结果传输给车辆控制模块,车辆控制模块通过控制方向盘、加速踏板、制动装置等其他执行机构对车辆进行控制。
六、总结与展望
特斯拉后续会持续升级其软件系统,包括感知神经网络的训练及部署,并有可能使用新一代毫米波雷达或者使用4D毫米波雷达融合感知。特斯拉的自动驾驶软件系统为自动驾驶提供了新的实现方法,现在各大主机厂、各大供应商均开始大力研究自动驾驶的软件系统及架构,相信这会让未来自动驾驶功能更加完善,可靠性更高。
上一页 [1] [2] [3]