对ISO 26262的分析:汽车软件中机器学习及安全问题

2024-04-08 01:38

本文主要是介绍对ISO 26262的分析:汽车软件中机器学习及安全问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、简介

二、背景

1.ISO 26262

2.机器学习

三、对ISO 26262的分析

1.危险识别

2.故障和失效模式

3.规范和验证

4.机器学习的使用标准

5.需要的软件技术


机器学习在自动驾驶中扮演着越来越重要的角色,然而,它是否足够安全仍然存在争议。ISO 26262道路车辆功能安全标准为确保安全提供了一套全面的要求,但没有解决基于机器学习软件的独特特性。在这篇文章中,作者在几个方面提出了一些建议,以解决这一问题。

一、简介

在软件开发的许多领域,机器学习的使用越来越多,汽车软件开发也不例外。高级驾驶员辅助系统和自动驾驶系统是机器学习发挥重要作用的两个领域。ISO 26262等标准的出现有助于集中行业实践,以系统且一致的方式解决安全问题。但是,ISO 26262的设计并没有考虑到机器学习这样的技术,这就造成了创新和提高安全性之间的矛盾。

最近对自动驾驶系统兴趣的激增也推动了对认证的研究。Koopman和Wagner确定了认证的一些关键挑战,包括机器学习。ML. Martin分析了ISO 26262对于自动驾驶系统的合适程度,但是关注的是它所增加的复杂性所带来的影响,而不是机器学习的具体使用。Spanfelner从驾驶员辅助系统的角度评估了ISO 26262。最后,Burton等人研究了使用机器学习组件的自动驾驶系统所需要的安全案例。本论文的贡献是对上述研究的补充。我们分析了使用基于机器学习的软件对ISO 26262各个部分的影响。特别地,我们考虑了它在危害分析领域和软件开发过程阶段的影响,确定了使用机器学习产生的不同问题,并通过对标准的更改和进一步的研究对解决这些问题的步骤提出了建议。

二、背景

1.ISO 26262

ISO 26262是规范道路车辆功能安全的标准。它建议使用危害分析风险评估(HARA)方法来识别系统中的危险事件,并指定减轻危害的安全目标。该标准有10个部分,本篇论文只关注第6部分:“软件层面的产品开发”。该标准遵循下图中众所周知的V模型。

软件层面的产品开发

汽车安全完整性等级(ASIL)是在ISO 26262中为汽车系统提出的风险分类方案。ASIL代表降低项目风险所需的严格程度,其中ASIL D代表最高,ASIL A代表最低风险。标准的第6部分详细说明了软件开发的遵从性要求。例如,图2显示了架构设计中推荐使用的错误处理机制。一种方法的推荐度取决于ASIL,其分类如下:++表示强烈推荐ASIL的方法;+表示推荐用于ASIL的方法;o表示该方法不建议使用或不建议使用ASIL。例如,优雅降级(1b)是ASIL C项的唯一推荐机制,而ASIL D项也适合独立的并行冗余(1c)。

软件架构上的错误处理机制

2.机器学习

在本文中,我们关注的是使用机器学习的软件实现,机器学习组件是使用监督、非监督或强化学习方法的训练模型。在功能性安全保障方面,在线学习的关键弱点是不能提前提出和评估安全论证。所以对于汽车系统中的机器学习组件,我们假设在线学习仅限于安全性要求不高的功能。例如,机器学习组件在线训练以了解司机的信息娱乐偏好。因此,对于本文所讨论的机器学习应用程序,我们假设训练是离线进行的。

机器学习有几个特征会影响安全性或安全性评估。

不透明性:增加机器学习模型的表达能力通常是以牺牲透明性为代价的,许多研究工作致力于在保证表达能力的同时使模型更透明。不透明是安全保障的一个障碍,因为评估人员更难以确定模型是否按预期运行。

错误率:机器学习模型通常不能很好地运行,并且有一定的错误率。此外,虽然真实错误率的估计值是机器学习过程的输出,但是这个估计值的可靠性只有统计上的保证。最后,即使真实错误率的估计值是准确的,它也不能反映系统在输入一组数据后实际运行时的错误率,因为真实误差是基于一组样本的。使用机器学习组件设计安全系统时必须考虑这些特性。

训练集:基于监督和非监督学习的机器学习模型使用可能遇到的行为的子集进行训练。因此,训练集必然是不完整的,甚至不能保证它能反映可能的输入空间。随着时间的推移,操作环境中输入的基本分布可能会偏离训练集的分布,从而降低安全性。

不稳定性:更强大的机器学习模型(例如,深度神经网络)通常使用局部优化算法进行训练,并且可以有多个优化。因此,即使训练集保持不变,训练过程也可能产生不同的结果。这种特性使得调试模型或重用以前的安全评估部分变得困难。

三、对ISO 26262的分析

在本节中,我们将详细分析机器学习对ISO 26262的影响。由于基于机器学习的软件是一种特殊类型的软件,我们将标准中与软件相关的部分划分为受影响的部分,对基于机器学习的软件的处理应区别于现有的软件处理。从ISO 26262标准的十个部分的两个部分(概念阶段危害分析和软件开发阶段)中确定了受影响的五个方面。我们下面描述了五个方面的影响与相应的建议。

1.危险识别

ISO 26262将危害定义为“当危害是身体伤害或对人的健康造成损害时,该物品的功能失常行为所造成的潜在伤害来源”。机器学习的使用会产生新的危害。一种危害类型是操作员认为自动化程序辅助(通常使用机器学习)比实际的更智能,从而变得自满。例如,驾驶员在自动转向功能中停止监视转向。

基于强化学习的组件可能会对环境产生负面影响,以实现其目标。例如,为了更快地到达目的地,自动驾驶系统可能会违反法律;自动驾驶系统可以通过利用某些传感器漏洞来“看”自己离其他车辆有多近,从而避免因与其他车辆靠得太近而受到罚款。尽管这样的危害可能是机器学习组件独有的,但它们可以追溯到故障,因此它们符合ISO 26262的现有准则。

对ISO 26262的建议:应将危害预防范围扩大,包括人与车辆之间复杂的行为交互可能造成的危害,而这些行为交互不是由于系统故障造成的。

2.故障和失效模式

ISO 26262要求使用诸如故障模式影响分析(FMEA)之类的分析来确定故障如何导致危害。不同于一般的软件,很多故障是机器学习独有的。神经网络的具体故障类型和模式已经被编目。如网络拓扑结构和学习方法的错误,导致泛化能力差(如层间连通性不够,学习速率过高,等等)或者错误的训练集。

针对ISO 26262的建议:机器学习故障的独特类型为开发有针对性的工具和技术提供了机会,以帮助机器学习模型发现故障。例如,Chakarov等人描述了一种用于调试错误分类的技术,而Nushi等人提出了一种解决由于链接的机器学习组件之间的复杂交互而导致的故障的方法。随着这些技术的成熟,应该对ISO 26262进行修改,要求对机器学习组件使用这些技术

当功能很复杂并且汽车安全完整性等级很高(例如,在更高的自动化级别上),只有通过增加或改进训练集,错误率才可能达到一个可接受的低水平。应该需要专门的体系结构技术来帮助减轻机器学习故障和故障的影响。

3.规范和验证

ISO 26262的建议:因为机器学习组件是从固有的不完整数据集中训练出来的,所以它们违反了基于V模型的流程中组件功能必须完全指定,且修改是可验证的假设。此外,机器学习非常适合的某些类型的高级功能(例如,需求感知)在原则上可能是未知的。因此,机器学习组件在设计时就预知有错误率,并且会周期性地失败。相比取消此类功能,作者建议ISO 26262根据功能是否可指定提供不同的安全要求。 

4.机器学习的使用标准

通过使用端到端方法,机器学习可以在体系结构级别与系统一起广泛使用,或者仅在组件级别使用。端到端方法挑战了这样一种假设,即将复杂系统建模为一种具有各自功能的组件的稳定层次分解。这限制了对系统安全的大多数技术的使用,因此我们建议ISO 26262只允许在组件级别使用机器学习。

5.需要的软件技术

ISO 26262要求在软件开发生命周期的不同阶段使用许多专门的技术。我们的分析表明,其中一些仍然适用于机器学习组件,而其他一些可以很容易地进行调整,但是仍然有许多技术特别倾向于使用命令式编程语言实现代码的。为了消除这种偏见,在不影响安全性的情况下,应该用技术的意图和成熟度来表达需求,而不是用技术的具体细节来表达需求。

 

更多资讯欢迎关注“上海控安研发与转化功能型平台”

这篇关于对ISO 26262的分析:汽车软件中机器学习及安全问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/884231

相关文章

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

pip install jupyterlab失败的原因问题及探索

《pipinstalljupyterlab失败的原因问题及探索》在学习Yolo模型时,尝试安装JupyterLab但遇到错误,错误提示缺少Rust和Cargo编译环境,因为pywinpty包需要它... 目录背景问题解决方案总结背景最近在学习Yolo模型,然后其中要下载jupyter(有点LSVmu像一个

解决jupyterLab打开后出现Config option `template_path`not recognized by `ExporterCollapsibleHeadings`问题

《解决jupyterLab打开后出现Configoption`template_path`notrecognizedby`ExporterCollapsibleHeadings`问题》在Ju... 目录jupyterLab打开后出现“templandroidate_path”相关问题这是 tensorflo

如何解决Pycharm编辑内容时有光标的问题

《如何解决Pycharm编辑内容时有光标的问题》文章介绍了如何在PyCharm中配置VimEmulator插件,包括检查插件是否已安装、下载插件以及安装IdeaVim插件的步骤... 目录Pycharm编辑内容时有光标1.如果Vim Emulator前面有对勾2.www.chinasem.cn如果tools工

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Java多线程父线程向子线程传值问题及解决

《Java多线程父线程向子线程传值问题及解决》文章总结了5种解决父子之间数据传递困扰的解决方案,包括ThreadLocal+TaskDecorator、UserUtils、CustomTaskDeco... 目录1 背景2 ThreadLocal+TaskDecorator3 RequestContextH