近年来,自动驾驶系统等应用机器学习模型的系统逐渐进入大众视野,这种复杂系统的安全性是至关重要的。从手动驱动程序辅助过渡到自动驾驶)需要对系统安全方法进行许多更改。例如,需要更高级别的可用性,因为系统不能在检测到组件硬件故障时简单地停用。在功能层面,需要一种方法来解释当前的驾驶情况,包括环境条件,并对随后的行动作出判断,以确保在所有可能的情况下避免出现危急的驾驶情况。基于在非结构化输入空间中提取相关特征的能力,机器学习被认为是解决高度自动化驾驶(HAD)的一些功能挑战的一个有潜力的解决方案。然而,基于机器学习的系统只有在被证明是可接受的安全的情况下才能被发布到公共领域。有关功能安全的可接受安全的条件由ISO 26262规定。遵守本标准仍然是证明HAD安全性的必要先决条件,以确保系统在随机硬件和系统故障方面实现可靠和容错。然而,在一些领域,该标准并没有很好地应用于开放上下文系统的机器学习。此外,由于传感器、执行机构本身的固有限制或目标功能本身的不足,系统无法满足安全目标的问题也没有得到ISO 26262的很好解决。对标准的扩展,如目前正在开发的“预期功能的安全性”(SOTIF)方法,旨在解决其中的一些问题,但主要集中于驾驶员辅助,而不是系统。因此,必须开发替代方法,并且必须根据“第一原则”系统地论证系统满足其安全目标的能力,其中遵守标准只是整个论证的一部分。对HAD使用机器学习算法的主要挑战是,认为由于使用的机器学习算法的不完善以及不可能在设计时测试所有可能的驾驶情况而导致的功能不足导致的残差风险水平足够低。目前,相关的安全规范,尤其是ISO 26262,并不支持这种观点。本文提出应用保证案例的方法来确定这样的一个论点可以形成基于第一原理,将系统的安全目标分解为技术性能要求显式的考虑的假设下的机器学习功能对系统和组件在系统上下文环境。
解决的问题:1)如何保证基于机器学习组件系统的安全性,对于不同基于机器学习的系统做安全保证时都分别需要考虑哪些因素。
2)由于传感器、执行组件本身的固有限制或目标功能本身的不足,系统无法满足安全目标的问题没有得到ISO 26262的很好解决。
3)探讨是何原因造成了机器学习的功能不足。
4)自动驾驶系统的功能体系架构是什么样的。
5)保证用例(assurance case)的数据需要在什么条件下获取。
实验方法:1. 机器学习的安全性讨论
讨论机器学习安全性所涉及的问题在很大程度上取决于应用的技术类型及其在整个系统上下文中的应用。以下因素有助于评估机器学习对整体安全案例的影响。
功能范围:机器学习可以应用于具有功能的体系结构中的不同任务。任务限制越严格,就可以定义功能上的性能标准越具体,从而允许集中验证和验证活动。
学习模型:概率推理和统计学习技术基于训练数据建立统计模型,并且通常表现出连续的行为,结果的准确性随着训练次数的增加而提高。各种算法增加了额外的挑战,因为在更深层次学习的特性中缺乏透明度和可解释性,并且容易受到不可预测的对抗性示例的攻击。
训练过程:在线训练技术,如强化学习,可以在执行过程中(即自动驾驶过程中)不断调整功能。训练方法还可分为集中式训练(不同车辆内的功能是以相同的方式使用相同的输入数据进行训练)和分散式训练(在这种情况下,单个车辆自主学习,并且在学习过程中彼此不同)。如果不能正确的定义较为安全地输入,那么在分散的在线训练过程中对安全验证带来了巨大的挑战。
临界事件间隔:存在必须由系统正确处理的事件,以确保满足安全目标。因此,需要进行分析,以确定如何在培训和验证期间充分覆盖这些情况,以确保系统能够像处理常见情况一样很好地处理这些情况
2. 对于上下文信息的应用
系统级的保证用例结构是必需的,它导致对分配给机器学习功能的性能需求和风险贡献的定义。还需要一个参数,以充分涵盖系统故障和随机硬件故障的贡献,例如基于ISO 26262相关参数。在系统上下文中推导性能(安全)需求是确保整个系统安全的关键贡献之一,需要深入的领域和系统知识。为开放上下文系统获得一组合适的需求本身是一项重要的任务,因此系统工程的方法是不可或缺的。
图1说明了如何将机器学习功能嵌入到其系统上下文中。
3. 机器学习功能不足的原因
与传统的、算法的和控制律的车辆控制方法相比,机器学习技术与开放上下文环境的内在不确定性导致了不同的危险原因。为了证明机器学习功能中的功能不足(这里:基于摄像机的目标检测,监督训练)被最小化,理解这些不足的原因是很重要的。以下是几个保证案例(assurance case):训练数据应该能够很好的界定和反映环境背景;功能函数应该对环境中的分布变化具有较强的鲁棒性;功能函数在临界情况下应该表现出一致的行为;功能函数对其训练和执行平台之间的差异具有很强的鲁棒性;功能函数对其系统上下文中的更改具有健壮性。(assurance case中的G2--G6)。
4. 保证用例(assurance case)的数据来源
训练集覆盖率:
(1)训练数据量:充足的训练数据用于提供与统计相关的场景扩展,并确保神经网络中权重的强覆盖范围稳定。
(2)对已知的关键场景的覆盖:基于对系统和环境的物理属性的良好理解的领域经验,以及以前的验证练习,可以识别应该在函数中显示类似行为的场景类。
(3)最小化未知的关键场景:在系统设计期间,甚至不知道类的其他关键组合。因此,系统地确定培训数据中的等价类,并在培训和验证期间进行统计覆盖,将是充分减少由于培训数据不足而造成不足的风险的关键。
学习函数的可解释性:
演示传统安全关键软件正确性的一个关键组件是白盒技术,包括手动代码审查、静态分析和代码覆盖。这些技术允许在详细的算法设计和实现上形成一个论点,但是不能轻易地转移到机器学习范例中。因此,必须找到利用神经网络内部行为知识的其他论据。Hendricks等人最近提出了一种朝这个方向发展的方法。也可以想象,还可以为神经网络找到其他指标,用于保证论证,例如,权重受训练数据影响的程度,或执行的测试对神经网络计算的覆盖程度。
不确定度的计算:
虽然机器学习方法在感知任务上提供了很好的性能,但是未检测到的对象,错误分类和错误定位可能在系统的整体功能架构中产生安全关键的后果。不确定性可以分为任意不确定性和认知不确定性。任意不确定性包括观测中固有的噪声(如传感器或运动噪声),不能通过增加训练数据来降低。相反,认知不确定性捕捉模型内部的不确定性(例如参数的不确定性),并强调对模型或模型本身的假设可能不足以准确地表示现实。不确定性量化可以提供用于可信性和传感器融合算法的信息,从而提高后续轨迹规划任务的整体鲁棒性和可靠性。
黑盒测试:
由于验证训练函数的白盒方法的固有限制,需要将重点放在黑盒测试技术上。这些技术将包括对包含学习功能的软件组件进行有针对性的测试,包括使用基于等价类的系统选择的测试数据。需要综合、真实和经过处理的真实数据,包括详细分析由于输入类型不同而对网络造成的影响。系统级车辆集成测试也需要构成保证用例的一个重要部分,以便验证在系统开发期间所做的所有假设,包括是否充分理解关键场景导致了对功能的充分训练。
运行时度量:
(1)运行时的合理性检查:对神经网络输出的可信性检查可能包括随着时间的推移跟踪结果或者通过与可选的传感器或输入进行比较。这种似是而非的检查可以减轻对个别帧自发发生的不足。
(2)运行时的假设检测:在运行时检测到的对象的分布与假设之间的差异可能表明训练过的函数中存在错误,或者系统在没有得到充分训练的上下文中运行。如果发现这种情况,可以采取适当的行动来减轻差异的影响。
实验结果:利用上述方法,得到了Assurance Case架构。
总结:高度自动化驾驶系统应用机器学习算法的主要挑战是由于测试样例不可能包含所有实际驾驶场景,从而导致机器学习算法功能的有那种不足,可能会有对一些情况造成误判的风险,使系统不安全。然而ISO 26262也无法定义自动驾驶系统的安全标准。本文提出应用一种保证案例方法来确定如何在“第一原则”的基础上形成这样的论点,即在明确考虑以下假设的情况下,将系统的安全目标分解为机器学习功能的技术性能要求系统环境。
本文讨论了基于机器学习的自动驾驶系统所面临的安全性挑战,当在自动驾驶系统中使用机器学习算法时,安全架构常常强调系统工程和验证考量。尤其引人注目的是基于卷积神经网络的处理感知模块的功能不足,我们寻找可能迹象的类型可以用来减少这些风险。本文讨论了高度自动驾驶领域的机器学习模型的安全性确认方法。作为基础,我们先分析并讨论了使用不机器学习系统对系统安全性的影响。其次,本文对于要求,上下文以及假设进行了系统化分析,证明了在对于一个系统领域不了解的情况下,是无法对机器学习功能的安全性做出评估的。接着,本文提出的论证路径将着重于研究基于机器学习的函数功能不足的主要原因。最后,本文总结了可以用来创造支持安全保证用例证据的新技术。
思考与未来展望:本文中提出的保证用例结构提出了几个需要大量未来研究活动的问题。首先,为保证案例提供必要的证据需要开发全新的验证技术,包括证明其有效性。这项工作将需要在机器学习的理论见解和大规模实验研究方面取得进展,以确认所提议的措施的有效性。进一步的研究还将包括将动态安全案例应用于应用分散式在线强化学习技术的系统,即在运行时继续调整其行为的系统。这些活动必须集成到一个支持保证用例结构的整体系统工程方法中。这项技术研究工作需要得到工业界活动的补充,以便就风险评价和可接受的论证结构达成协商一致意见,以便纳入未来的标准。