对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

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

解决RocketMQ的幂等性问题

《解决RocketMQ的幂等性问题》重复消费因调用链路长、消息发送超时或消费者故障导致,通过生产者消息查询、Redis缓存及消费者唯一主键可以确保幂等性,避免重复处理,本文主要介绍了解决RocketM... 目录造成重复消费的原因解决方法生产者端消费者端代码实现造成重复消费的原因当系统的调用链路比较长的时

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

Olingo分析和实践之EDM 辅助序列化器详解(最佳实践)

《Olingo分析和实践之EDM辅助序列化器详解(最佳实践)》EDM辅助序列化器是ApacheOlingoOData框架中无需完整EDM模型的智能序列化工具,通过运行时类型推断实现灵活数据转换,适用... 目录概念与定义什么是 EDM 辅助序列化器?核心概念设计目标核心特点1. EDM 信息可选2. 智能类

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1