登录| 注册 退出
驭捷智能

当汽车功能安全遇上机器学习,ISO 26262 该如何改编?

2021-05-13       浏览:  
分享到:

引言

如今,机器学习(ML)凭借其在不同领域的泛化能力,已经得到广泛地应用。在汽车行业,基于 ML 的高级驾驶员辅助系统和自动驾驶为机动车操作提供了更多可能性;在公司层面,感知和端到端系统等应用正尝试通过深度学习(DL)探索出更多相关方法。由于安全对于汽车领域来说仍是重中之重,因此安全软件的开发离不开严格的工程实践以及 ISO 26262 等标准的强制执行。由于标准并非针对 ML 相关的任务来进行设计的,因此在应用过程中会出现很多问题。但是就 DL 而言,已经提出了很多用于验证和确认并提高其稳定性的方法。

本文旨在进一步了 ML 以及现阶段的相关应用。为研究新的 ML 和汽车安全的结构组成,在本文中,对两位功能安全和汽车软件工程领域的专家进行了采访。

01汽车安全工程和机器学习

A. 汽车安全工程

安全系统的设计,顾名思义,必须将安全渗透到整个工艺工程的方方面面,包括系统的安全分析和风险管理的方法论。其中,安全分析涉及识别、消除或减轻危害的方法以及对系统中的安全方法进行验证。

ISO 26262 标准是在 IEC 61508功能安全性基础上的改编,以满足道路车辆的功能安全性。该标准贯穿于整个汽车生命周期中的六个阶段,即管理、开发、生产、操作、服务和报废—并针对汽车生命周期中的活动提供必要理论支撑。

ISO 26262 建议进行危害分析和风险评估(HARA),以便识别系统中的危害,从而确定安全目标和功能安全要求,参见图1。

当汽车功能安全遇上机器学习,ISO 26262 该如何改编?(图1)

图1 确定危害以创建功能安全要求的流程

根据 ISO 26262 标准中定义的基于风险的危害评估,可以确定汽车安全完整性等级(ASIL)。而危害的完整性级别取决于其自身的严重度:如导致受伤人数;暴露度:危害的预期发生频率;以及可控度:危害预防的可能性。ASIL 决定了降低某一项风险所需的测试、记录等活动的严谨度。ASIL 范围涵 ASIL A~D,其 ASIL D 代表最高风险。如果某项不需要进行安全管理,则标记为“质量管理(QM)”。

ISO26262标准由12个部分组成,每个部分各自遵循不同产品开发阶段的V模型。如果将安全相关的 ML 组件作为一个软件单元,在软件级别的开发阶段(第6部分)将强制对 ML 的语境进行解读并执行软件工程实践。例如,对于 DL 组件来说,检查/代码审查、等效分区生成的单元测试案例、以及结构化代码覆盖率指标的流程要求,这些都是无法解释的,因此,不能将某些 ISO 26262 流程要求直接应用于 DL 。

B. 机器学习

机器学习(ML)是指计算机无需经过明确编程即可学习到的技巧和技术。机器学习ML 可以根据数据的获得与预测来产生相应的模型。近年来,机器学习中的子字段深度学习(DL)成为了推动其发展的主要因素,与常规算法不同的是,DL 允许使用大型数据集来训练复杂的模型架构,以此建立用于优化给定目标的训练模型。这种优化主要依赖于数据样本(监督学习和非监督学习)或奖励函数(强化学习)。

在 DL 算法的学习过程中存在多个影响系统安全的属性。这是因为 DL 在训练阶段通常会从给定的输入域中提取相应功能,这会增加验证和确认的难度,并违反ISO 26262 中规定的开发过程。由于神经网络中存在很多难以理解的抽象化特征(深度学习的体系结构),所以人们会将 DL 看做是不透明的、让人捉摸不透的黑盒子。为此,如上述讨论,可追溯性在汽车领域中是一项必要的要求,而这未在ISO 26262标准中提及,所以也给应用带来了一定的困难。

DL 的泛化发生在训练阶段。不论是有监督还是无监督的学习,模型都是在网络输入的子集上进行训练的。由于不能保证子集是否代表整个输入域,因此假设模型在训练过程中可以进行足够的泛化。通常情况下,根据对选项选择的正确率和失误率(即模型建立程度)的测量准确性来进行训练。在训练阶段,这两种测量都会使用到,但最终只是一个估算的结果,并不能完全展现模型在完整输入域上运行时的实际性能或可靠性。此外,在模型训练过程中学习某些训练子集之外发生的模式时,可能会与子集过度拟合。

不稳定是 DL 模型的常见问题。即使微小变化的输入也会导致不同的预测结果,也就是说,深度神经网络(DNN)可能会因此而产生误判。使用局部优化方法进行训练时可能会出现多个局部最优值,所以拥有不同初始赋值的权重可能在训练和预测时产生不同的行为,从而使模型的特征分析或安全性赋值更加困难。

02研究方法

针对基于深度学习(DL)的安全关键汽车软件开发时所面临的挑战,我们进行了探索性研究,并采访了两位汽车领域功能安全专家进行定性分析。

论文《An Analysis of ISO 26262: Using Machine Learning Safely in Automotive Software》中,针对 ISO 26262 中 75 种软件的开发技术进行的分析(参见A), 我们在(参见B)对其进行了讨论,并将研究范围确定为汽车安全完整性等级(ASIL)D开发所必需的技术。

当汽车功能安全遇上机器学习,ISO 26262 该如何改编?(图2)

表1:论文中ISO 26262-6中7种通过能够改编来涵盖机器学习(ML)的方法。最后一栏给出了改进的建议。

论文《An Analysis of ISO 26262: Using Machine Learning Safely in Automotive Software》在 ISO 26262 第 6 部分中确定了 34 种与单元开发相关的方法,其中 27 种强烈推荐(++)用于 ASIL D。大多数方法(例如,“变量的初始化”)可以增加包括 ML 在内的单元的可解释性。同样,强烈建议使用“故障注入测试”和“资源使用测试”这些适用于 ML 的方法。在强烈推荐的 ASIL D 方法中,提到有 7 种需要进行适用—表1中列出。对如何进行改进给出了建议,同时将这些建议从三个方面进行归纳如下。

训练阶段:需要将实际 ML 应用中的要求转移到训练和体系结构设计阶段。例如,在训练阶段创建了从输入到输出的功能映射,而神经网络是在该阶段产生的人为现象,因此,需要更好地对映射过程本身进行了解。为此,我们建议重点关注体系结构设计和训练,而不是仅仅研究神经网络中的连接。

模型敏感性:ML 模型通常对部分数据比较敏感,这主要取决于神经网络对外部干扰的敏感性,而非其分支覆盖范围的完整性。例如,即使稍微改变输入向量,输出也不应产生较大的阶跃响应。在对输入域进行广泛测试时,故障注入对于 ML 变得至关重要。

测试用例设计:与训练阶段类似,为了保证 ML 测试阶段的彻底性,需要设计测试用例以进行正确的评估,从而满足预期的功能。在测试阶段需要通过某些方法来检测模型的不确定性及其是否处于训练域之中。此外,测试和训练阶段需要设计出用于处理其他数据或数据增强的方法,从而扩大测试覆盖范围并降低模型敏感性。

03总结

为了在汽车系统的开发过程中将对安全至关重要的机器学习(ML)包含在 ISO 26262中,本文讨论了需要对此标准进行的具体调整。重点介绍了针对机器学习(ML)训练、模型敏感性和测试用例设计需要进行的更改。


在线
客服

在线客服 - 驭捷智能周一至周日 10:00-24:00(欢迎呼叫)

选择下列服务马上在线沟通:

客服
热线

18917451722
6*12小时客服服务热线