深度学习在汽车软件中的应用
神经网络和深度学习
人工神经网络可以通过示例输入触发的学习来提升其解决问题的能力。这一特性在问题没有详细、完整或可预测信息的情况下非常有用,这在汽车驾驶情境中很常见。人工神经网络的并行结构使其能够利用强大硬件获得及时的计算结果。
基础深度神经网络
深度神经网络(DNNs)与深度学习同义,是使用输入层和输出层之间的多个隐藏层单元来建模复杂非线性关系的人工神经网络(参见
)。当输入为大规模模拟数据(而非表格格式中的少量数值,而是图像)时,深度学习在发现模式方面表现出色。
数据(像素)或音频数据。在2006年取得进展之前,深度神经网络的表现不如依赖特征工程的浅层神经网络。
深度神经网络的结构是灵活的,可以通过选择隐藏层的数量、每层的单元数以及每个单元的连接数等属性进行定制。这些称为超参数的属性定义了基于深度学习的系统的结构和行为。
深度学习具有以下特征:
• 通过学习过程创建的输入/输出映射,
• 相互连接的非线性计算单元(神经元或节点),
• 适应性对环境变化,和
• 容错性。(由于深度神经网络是分布式的,隐藏层中的局部故障会导致性能下降,而非系统故障。)
深度神经网络的处理能力存储在单元间连接权重中,通过适应一组训练模式获得。
卷积神经网络
卷积神经网络(CNN),也称为卷积网络,是一种用于处理具有空间结构的以数组形式表示的数据的深度神经网络(参见
)。它们模拟了视觉皮层的行为;由于卷积操作(以矩阵乘积的形式)能够捕捉图像特征,因此在视觉识别任务中表现出色。
CNN包含卷积层和采样层,这些层能够编码图像属性。本质上,卷积神经网络以前馈模式沿着网络对三维输入(例如,具有 W行、W列和三个颜色通道的图像)进行变换。
卷积神经网络(CNN)由于具有输入数据分割和高度参数化(多达数十万个)等特点,因此在汽车视觉应用(如物体、车辆和道路标记检测)中备受关注。
循环神经网络
循环神经网络(RNNs)是连接单元之间形成有向环的深度神经网络。它们已成功应用于语音识别和自然语言处理。
从理论到实践
这里我们用C语言实现了一些主要的深度学习概念。
展示了神经元和连接数据结构的简单示例,以及一个神经元的创建函数。
汽车应用可以轻松拥有最多10层和数千个节点的深度神经网络。其开发受益于可用性诸如Theano、Caffe、Torch、Neon、TensorFlow、Deeplearning4J和CNTK(微软认知工具包)等集成软件框架。
训练深度神经网络
在深度学习中,训练本身实际上起到一种编程活动的作用。这里为了简化,我们以计算机视觉为例。为了能够将输入与统计上预期的正确结果相匹配,DNN训练需要大量包含形状、边缘和颜色的图像帧(通常来自驾驶场景的视频片段)。
此次训练至关重要,因为它能够充分利用深度神经网络在考虑图像上下文的情况下检测物体的能力。
通常,训练一个深度学习算法需要数天到数周的时间,迫使项目在准确率和部署时间之间做出权衡。训练可以采用以下三种主要策略之一:
• 监督学习 使用基于训练数据的环境知识样本,这些训练数据以输入和相应的目标输出成对的形式存在,并使用适当的标签。
• 无监督训练 利用输入数据中的统计规律性。
• 强化训练 涉及在环境中采取行动以最大化长期奖励;这是一种试错方法。
一些汽车应用有效地将监督学习与强化训练相结合。
通常,训练策略的选择在很大程度上取决于DNN类型和所考虑的问题。根据我们的经验,在基于深度神经网络的汽车软件开发中,监督学习被广泛使用。
数据集
将监督学习应用于汽车软件需要大规模的标注训练数据集,其确切规模虽未公开,但通常包含数十万到数百万张图像。一个训练数据集通常包含正区域和负区域的注释或标签。
额外的预处理可以提高训练的准确率以及鲁棒性。
展示了一个典型的训练数据预处理示例:一个对应行人的边界框,精确地界定人体的形状。预处理在组织层面也有着重要的影响,涉及需要投入大量专业知识和人力资源来完成这一耗时的任务。
监督学习还使用验证数据集来避免过拟合,从而通过比较不同算法的性能来选择最合适的算法。过拟合是指模型在训练数据上表现过好,导致在新数据上泛化能力下降的情况。变得越来越复杂,并开始记忆训练数据,而不是学习从趋势中进行泛化。
此外,监督学习使用测试数据集来实现所需的性能特征,例如准确率。这些数据集代表了供应商和原始设备制造商(OEM)的宝贵专有资产。
学习算法
在训练过程中,学习算法通过从训练数据集中学习,填充一种称为分类器的信息结构。因此,训练数据集的环境知识被转移到分类器,并隐式地传递给深度神经网络。
有多种学习算法可用于监督学习;其中最流行的是反向传播。反向传播包含两个阶段。在第一阶段,输入一个训练输入该模式被输入到网络的输入层。然后,网络将输入模式从一层传播到另一层,直到输出层生成输出模式。如果该模式与期望输出存在偏差,则计算误差,并通过网络从输出层向输入层反向传播该误差。在误差反向传播过程中,进入第二阶段,即网络的单元间连接权重被修改。
深度学习的生命周期:W模型
深度神经网络开发的软件方面是一项高度迭代的活动,包含五个步骤:
1. DNN需求识别,
2. 学习算法开发,
3. DNN训练,
4. 深度神经网络训练验证,以及
5. 深度神经网络验证。
与传统开发不同,深度学习开发需要依靠启发式方法驱动的经验性设计选择来提供支持。开发通常从已知且在类似问题或领域中被证明有效的学习算法开始。这是因为学习过程的结果难以理解和管理。
预期的深度神经网络需求还包括性能需求,这些需求在深度神经网络验证过程中被精确地加以关注。这些需求通过深度神经网络功能行为的统计基准测试(即错误率)来表达。
适当算法的开发与调整正在拓宽研发实验室的技术能力。这些算法通常基于卷积方法,以实现深度神经网络在汽车应用中的学习能力。事实上,即使在工业层面,科学家与工程师在DNN设计过程中的密切合作,也证明了这一前景广阔领域的挑战性。
在训练过程中,学习算法会被评估,并对单元间的连接权重进行反复试验性调整。此循环将持续进行,直到预测达到目标精度。
稳健、可预测的开发的需求
尽管汽车软件工程欢迎创新和卓越的功能性能,它仍然需要一个稳健、可预测的开发周期。因此,从更受控制的V模型角度来开展深度学习至关重要,以应对一系列挑战。这些挑战包括训练、验证和测试数据集的需求标准;训练数据预处理的标准;以及对大量参数的管理。
对深度学习生命周期进行更加结构化的构想,对于实现受控开发方法至关重要,而仅通过验证活动获得的功能基准测试无法解决这一问题。必须同时追求功能层面的高性能和高质量的开发流程。
然而,深度学习本质上为软件开发引入了一些无法完全契合V模型的特征。在这种背景下,数据的核心作用(例如,用于深度神经网络的训练和训练验证)使得引入我们称之为W模型变得至关重要。为了支持这一点,我们采用“示例编程”这一术语,以突出数据在基于深度学习技术的系统开发中的重要性。
深度学习在汽车软件中的应用
引入W模型
W模型在概念上将用于数据开发的V模型与用于软件开发的标准V模型集成在一起(见)。
该生命周期模型认识到,软件开发和数据开发共同推动了深度学习的发展。训练、验证和测试数据集的设计与创建及其应用是关键的开发阶段,因为深度神经网络的功能行为是其架构结构以及通过训练实现的自动适应性的综合结果。
根据定义,深度学习摆脱了特征工程。这一特点使得W模型成为表示这种复杂范式的一种恰当且有用的表示方法。
汽车软件标准与深度学习
车载汽车电子控制单元(ECUs)的软件开发需遵循各原始设备制造商(OEM)的专有规范以及多项国际标准。对深度学习而言,最重要且最具影响力的标准是汽车SPICE(软件过程改进和能力测定)和ISO 26262,二者均基于V模型。然而,这些标准尚未针对深度学习提出专门的条款。
汽车SPICE提供了一个过程框架,该框架在较高抽象层次上对软件开发活动进行结构化。它通过将这些活动与预定义的过程要求集进行匹配,来评估这些活动的能力。
ISO 26262 针对与安全相关的汽车开发;其范围包括系统、硬件和软件工程。它已经涵盖了配置和校准数据,尽管这一方面比深度神经网络数据集的开发在复杂性和多样性上低一个数量级。
ISO/AWI PAS 21448 标准目前正处于高级开发阶段,对深度学习也具有相关性。它指出了这样一个事实:对于某些高级驾驶辅助系统应用而言,即使系统无故障,仍可能发生安全违规(例如,雷达对障碍物的误报检测)。这种情况可能出现的原因是,开发一个能够应对所有可能场景的系统极为困难。
由于汽车SPICE在汽车软件开发中的广泛采用及其全面的覆盖范围,它是系统化分析深度学习在汽车软件工程中应用的合适参考,并有助于推动深度学习的成熟、统一的方法论。
将 Automotive SPICE 3.0 的V模型中的软件部分叠加在W模型上。这暗示了需要根据 Automotive SPICE的流程要求来组织深度学习的发展。同样的方法也可能适用于ISO 26262。
鉴于汽车市场对电子控制单元(ECU)开发在严谨性和控制方面的严格要求,深度学习的显著增长与稳定化至关重要。仅仅初步探索就已引发重要的方法论问题——例如,可追溯性、深度学习开发阶段之间的基础设施。
因此,这一改进路径对于实现汽车软件的宏伟未来目标(如完全自动驾驶)至关重要。深度学习为汽车软件带来了根本性变革,W模型是实现深度学习与传统汽车软件工程全面融合的一种有前景且易于理解的基础。
意大利汽车软件过程改进网络(Automotive SPIN;www.automotive-spin.it)已启动一个开放工作组,旨在通过采用 Automotive SPICE 3.0、ISO 2622 的下一版本以及 ISO/AWI PAS 21448 等标准,推动汽车软件工程中深度学习实践的协调统一。此外,Automotive SPIN 还将针对W模型的特征进行研究。
深度学习在汽车软件中的应用与W模型
22

被折叠的 条评论
为什么被折叠?



