Khorina · 2022年12月29日

精品译文 | 自动驾驶汽车中机器学习安全的实际解决方案(下)

译文

自动驾驶汽车中机器学习安全的实际解决方案(下)

接上文:自动驾驶汽车中机器学习安全的实际解决方案
原文:ARGUING THE SAFETY OF FPGAS WITHIN SAFETY CRITICAL SYSTEMS

作者:J.R.Clegg

译文审核:Stephen Liu, 刘照亮,Jack Yu

➡本文分为3部分(约8800字,28钟阅读)

3► 背景

工业安全广义上是指对一个行业内的所有操作和事件的管理,通过使危害、风险和事故最小化来保护员工和用户的安全。鉴于电子电气_(E/E)_元件正确操作的重要性,IEC 61508是为电子和电气安全相关系统制定的基本功能安全标准,具有两个基本原则: (a)安全生命周期:以发现和消除设计错误的最佳实践为基础的工程过程;(b)故障分析:解析系统故障对安全影响的概率方法。IEC 61508在不同领域有不同分支。例如,为了实现汽车行业的安全,工程师需要遵循ISO 26262标准,将E/E故障造成的安全风险降至可接受的水平。

在本节中,我们简要回顾一个整理后的、可以满足两个主要汽车安全标准中安全需求的基本机器学习限制列表。我们注意到,这两个汽车标准都要求对危害和风险进行详细的分析,然后是专注于系统需求、文档化的架构和设计、结构良好的代码,以及对单元、集成和系统级测试的全面的验证。

ISO 26262 标准

ISO 26262或汽车E/E系统功能安全标准将汽车安全定义为不存在因E/E组件故障而产生的不合理风险。它需要危险分析和风险评估(HARA)以确定车辆级别的危险。潜在的危害和风险指导安全工程师导出功能安全需求以满足安全目标。然后这些功能安全需求指导系统开发过程,系统开发过程又可分解为硬件和软件开发过程。图1给出了该标准的概述。本文的重点是ISO 26262的第6部分,它为软件开发过程定义了V模型。

图1中V-Model的目标是确保软件架构设计充分满足软件安全需求,并通过软件测试充分测试和验证。类似地,验证软件架构设计,软件集成测试证明架构实体(包括静态和动态方面)之间的交互得到了测试。在V模型的最底端,单元设计制定每个单元的设计细节(在软件体架构设计期间识别),例如输入、输出错误处理、单元的行为,以便对单元进行编码。最后,单元测试确保软件单元得到测试,以满足其设计需求,并满足单元设计的覆盖率。

image.png

图1 软件开发V型 ISO 26262-6(绿色)
和ISO/PAS 21448(蓝色) 的比较

ISO 26262还确定了故障检测和避免的方法,以将风险降低到可接受的水平。但当将ISO26262用于自动驾驶领域时就有一些局限性。它不能应对由于组件无法理解环境而发生的故障,例如:由于性能限制或鲁棒性问题。

ISO/PAS 21448 标准

ISO/PAS 21448或SOTIF(预期功能安全)标准描述了一个迭代开发过程,包括设计规范、开发、验证和确认阶段。SOTIF标准认识到软件(包括ML组件)的性能限制,并期望属于未知不安全(如训练分布之外的样本)和已知不安全(如运行设计区域之外的样本)情况的场景/输入应减少到残余误差风险可接受的程度。

SOTIF过程在ISO 26262的基础上增加了SOTIF HARA和安全概念。危害分析包括识别由于性能不足、感知不足、合理可预见的误用或人机界面缺陷造成的危害。相比之下,ISO 26262的危害和风险分析仅限于电子/电子故障造成的危害。如果SOTIF分析导致的风险高于可接受的风险,则进行功能优化以降低风险。然后制定验证和确认策略,以论证剩余风险低于可接受水平。

机器学习(ML)组件的安全缺陷

近年来,对ML模型安全限制的识别越来越受到人们的关注。例如,Varshney等人(Varshney 2016)讨论了ML模型的安全定义,并将其与工业上的四种主要工程安全策略(1)固有安全设计,(2)安全量,(3)安全失效,(4)程序保障措施进行了比较。在对汽车软件安全方法的回顾中,Salay等人(Salay, Queiroz,和Czarnecki 2017)按照ISO-26262 part-6方法对ML模型进行了安全分析。他们评估软件安全方法在机器学习算法上的适用性(作为软件单元设计)表明约40%的软件安全方法不适用于ML模型。

  c

ML模型的安全性和鲁棒性也一直是ML科学家(Hern´andez-Orallo等人,2019)关心的问题。Amodei 等人 (2016)提出了五个具体的研究问题,这些问题可能导致现实世界AI系统的意外和不安全行为。他们将人工智能的安全问题聚焦并表征为目标函数的定义和评估。此外,Ortega等人(Ortega和Maini 2018)介绍了技术AI安全的三个领域,即规范(在设计和紧急情况下)和鲁棒性(用于错误预防和恢复)和保证(用于监视和执行)。

我们在汽车软件安全标准术语中对这些开放性的挑战进行了分类,并简要回顾了具有代表性的研究,以解决这些安全缺陷。

  • 设计规范:记录和审查软件规范是功能安全的关键步骤,然而,ML模型的设计规范通常是不够的,因为模型学习数据中的模式来区分或生成新的不可见输入的分布。因此,机器学习算法通过它们的训练数据(和正则化约束)学习目标类,而不使用正式的规范。缺乏专一性会导致“设计者的目标”和“模型实际学到的东西”之间的不匹配,这可能会导致系统的非预期功能。这种基于数据驱动最优的训练机器学习模型不可能定义出和提出具体的安全约束。为此,Seshia等人(2018)调查了DNNs形式化规范的现状,并为DNNs形式化描述和性质推理奠定初步基础。管理这个设计规范问题的另一种实用方法是将机器学习组件分解为更小的算法(具有更小的任务),以实现分层结构的工作。与此相关,Dreossi等人(2019)提出将VerifAI工具包用于基于人工智能的系统的形式化设计和分析。
  • 实现的透明度。ISO26262要求从需求到设计的可追溯性。然而,在高维数据上训练的先进ML模型是不透明的。模型中非常多的变量使它们难以理解,或称为设计审查和检查的黑箱。为了实现可追溯性,人们对DNN的可解释性方法进行了大量研究,以提供模型预测和DNN中间特征层的实例解释(Zeile和Fergus 2014)。在自动驾驶汽车的应用中,使用VisualBackProp技术(Bojarski等人,2018年)表明,用于控制方向盘的DNN算法实际上会学习车道、道路边缘和停放的车辆的模式,以执行目标任务。然而,给予可追溯性的可解释性方法的完整性尚未得到证明(Adebayo等人,2018年),在实践中,可解释性技术主要被设计师用于改进网络结构和培训过程,而不是支持安全评估。
  • 测试和验证。重要的是工作成果验证需要单元测试,以满足ISO 26262标准。例如,软件安全的编码指南强制要求不存在死代码或不可访问的代码。根据安全完整性级别,需要完整语句、分支覆盖率或MDCD覆盖率来确认单元测试的充分性。说到DNN,由于数据的高维,正式验证它们的正确性是具有挑战性的(可证明NP-hard (Seshia, Sadigh,和Sastry 2016;2016))。因此,在设计运行范围内实现一个完整的验证和测试是很困难的。因此,研究人员提出了新的技术,如搜索未知-未知(Bansal和Weld 2018)和预测-验证者 训练(Dvijotham等人2018)。神经网络中的其他技术包括神经元覆盖和模糊测试(Wang et al. 2018)涵盖了这些方面。注意,对低维传感器数据的浅层和线性模型的形式化验证不具有DNN验证的挑战。
  • 性能和鲁棒性。SOTIF标准将ML模型视为黑箱,并提出了改进模型性能和鲁棒性的方法。然而,提高模型的性能和鲁棒性本身是一项非常具有挑战性的任务。在学习问题中,训练一个模型通常以训练集的错误率(由于假阳性和假阴性的预测)结束。经验误差是学习功能对目标分布的预测错误率。泛化误差是指模型在训练集上的经验误差与测试集上的经验误差之间的差距。在此基础上,运行误差指的是模型在开放世界部署时的错误率,它可能高于测试集错误率。领域泛化是指模型在开放世界任务中学习可泛化数据表示的能力。我们将在第3节中回顾更多细节和提高模型鲁棒性的机器学习技术。
  • 运行时监控功能。SOTIF和ISO 26262标准建议运行时监控功能作为软件错误检测解决方案。经典软件中的监控功能是基于一个规则集来检测情况,如瞬时硬件错误、软件崩溃和退出设计运行范围。然而,设计监控功能来预测ML故障(如假阳性和假阴性错误)在本质上是不同的。ML模型为输入实例生成预测概率,但研究表明,预测概率不能保证失效预测(Hein, Andriushchenko,和Bitterwolf 2019)。事实上,DNN和许多其他ML模型在分布偏移和对抗性攻击的情况下可以产生高置信度的错误输出。我们将在第3节中回顾关于ML模型错误检测技术的更多细节。

4► ML安全技术

我们引入了机器学习安全算法技术,以保持机器学习算法在开放世界任务中的安全执行的可信性。我们在本节中回顾的技术旨在补充软件安全方面的经典工程策略。我们还将机器学习安全技术与适当的工程安全策略联系起来(见表1),以帮助机器学习科学家和安全工程师在自动驾驶汽车安全这个新话题上找到共同点。我们遵循Varshney (Varshney 2016)的四种策略来实现机器学习安全,将AI安全技术与工程策略相映射。

考虑到确保AI不同安全方面的研究负债(见第2节),我们认为我们还远远没有达到(1)固有安全的AI。因此,我们专注于以下两种安全策略的实用机器学习解决方案:

(2)安全失效(safe Fail)是指在故障发生时,使车辆在道路上保持安全状态的策略。这种策略可以通过使用监控功能和优雅的降级计划(如通知驾驶员控制车辆)来减少故障发生时的危险。我们建议使用运行时错误检测技术来检测道路上车辆的机器学习算法的错误输出(例如错误分类和错误检测)

(3)机器学习环境下的安全裕度描述为模型在训练集上的性能与在开放世界中的操作性能之间的差值。我们建议使用模型鲁棒技术来提高弹性,从而提高机器学习组件的安全裕度。

在稍后讨论未来工作时,我们还将简要回顾对自动驾驶车辆的非专家最终用户(即,司机和乘客) 在(4)程序上的保障的重要性。为了将safety和security问题分开,我们将有意利用系统漏洞的外部因素(例如,对抗战术中的样本操作)视为security问题,而非safety问题。

监控功能

我们的第一个实用的ML安全解决方案利用了对机器学习错误分类的错误检测的技术范围,以实现安全故障行为。例如,当传感器等硬件中的瞬时错误影响了巡航控制等软件的功能时,错误检测单元(监控功能)可以检测到错误,并通过适当的警告降级系统,并允许驾驶员接管。类似地,可以为机器学习组件设计各种运行时监视功能和错误检测器,以预测模型故障并触发适当的警告。下面我们将介绍三种机器学习的错误检测器,并回顾它们之间的关系和局限性。注意,尽管下面三组错误检测器互有重叠,但我们根据它们的目标错误类型将检测器分开。

Uncertainty Estimation不确定性估计

概率学习中的不确定性是保证系统故障安全的一个重要因素。即使是经过良好训练和校准的对噪声、破坏和扰动具有鲁棒性的预测器,也可以从不确定性估计中受益,以在运行时检测范围偏移和分布不均的样本。量化不确定性可以从模型对其预测的置信度(认知不确定性或模型不确定性)和未知样本的不确定性(任意不确定性或数据不确定性)方面解释模型不知道的东西。

image.png

关于不确定性方法对安全关键应用的重要性,McAllister等人(McAllister et al. 2017)提出在ML模型中测量不确定性,并在决策管道中向下传播,作为自动驾驶系统安全的关键。然而,量化DNNs中的预测不确定性是一项具有挑战性的任务。通常,DNN分类模型生成的归一化预测分数往往过于自信,而回归DNN模型在其输出中不给出不确定性表示。DNN的研究提出了深度集成(Lakshminarayanan, Pritzel, and Blundell 2017)和蒙特卡洛dropout (MC-dropout) (Gal and Ghahramani 2016)等解决方案来估计预测的不确定性。不确定性估计方法已经针对各种模型错误类型(Kendall和Gal 2017)进行了测试,包括对抗性攻击检测(Smith和Gal 2018)。

尽管不确定性估计方法为DNNs失效预测提供了潜在的有效解决方案,但在实践中,它们具有巨大的计算成本和延迟,这对运行时的故障预测并不理想。例如,为了为PilotNet算法设计一个错误检测器,Michelmore等人(Michelmore, Kwiatkowska,和Gal 2018)提出了MC-dropout不确定性估计的实现,需要128个随机正向传递来估计模型的不确定性。因此,在资源有限的设置和计算简单等原因下,研究人员致力于替代错误检测解决方案,我们将在下两个小节中回顾。

In-distribution Error Detectors 分布误差检测器

由于无力的表示学习,常导致范围内样本分类错误。近年来,先进的神经网络、正则化技术和大型训练数据集,显著地改善了DNNs表示学习,从而提高了模型性能和鲁棒性。然而,在模型失效的情况下,仍然需要运行时预测误差检测器来维持系统的安全性。选择性分类(也称为有拒绝选项分类)是对高置信度样本谨慎提供预测,在有疑问时弃权的一种技术。这种自信预测的方法可以显著提高模型的性能,但要以测试覆盖率为代价。Geifman和ElYaniv (Geifman and ElYaniv 2017)提出了一种简单有效的DNNs选择性分类实现。在DNN的softmax输出的基础上引入拒绝功能,保证了对真实风险的控制。随后,他们引入了SelectiveNet (Geifman和ElYaniv 2019),这是一个三头网络,用于联合训练正常范围上的分类和拒绝功能。与此类似,Guo等人(Guo et al. 2017)提出了温度缩放作为后处理校准技术,以调整由于过度拟合而偏离的模型概率估计。在自动驾驶汽车的应用中,Hecker等人(Hecker, Dai,和Van Gool 2018)向网络中添加并训练了一个失效枝干,以学习预测模型故障的发生

image.png

在我们最近的论文中,我们提出了一种用于自动驾驶汽车应用回归模型的错误检测器(Mohseni, Jagadeesh,和Wang 2019)。我们提出了一种新的设计,它训练学生模型(故障预测器)来预测教师模型(主模型)在运行时的错误。图2显示了学生模型如何学习教师模型在验证集上的预测损失,以便预测它在测试集上的失败。我们还使用来自主模型的saliency maps来训练学生模型,以提高故障预测性能。根据预测误差和系统获得的驾驶安全性对故障预测模型进行了评价。

Out-of-distribution Error Detectors 布外样本检测器

分布外样本或异常值是指在正常训练分布之外的输入。OOD误差是指OOD样本的ML模型误分类误差。自动驾驶汽车OOD样本的例子包括独特的、不寻常的或未知的路标、道路标志,或罕见的物体或场景,这些物体或场景要么不包括在训练集中,要么在训练过程中模型无法学习(例如,由于类不平衡)。OOD错误是ReLU族激活功能的固有问题,当输入距离训练分布越来越远时,它们会产生任意的高置信度(Hein, Andriushchenko和Bitter- wolf 2019)。然而,人们提出了各种各样的技术,如OOD检测器、新颖性检测器和离群点检测器来检测OOD样本。OOD检测技术的例子包括修改网络架构以学习预测置信度(DeVries和Taylor 2018),使用遗漏分类器集成(Vyas等人2018),以及自我监督表示学习(Golan和El-Yaniv 2018)方法进行异常点检测。另一方面,OOD检测的一种快速、低成本的方法是使用类概率作为OOD检测的措施(Hendrycks和Gimpel 2016)。在这方面,有人提出了新的技术来校准DNN决策边界,以实现鲁棒OOD检测(Lee et al. 2017)。

在我们最近的工作中,我们提出了一种快速、记忆效率高的OOD错误检测技术,方法是以最小的架构变化,将拒绝选项嵌入到任何DNN判别模型中并进行训练, (Mohseni et al. 2020)。如图3所示。我们的基本想法是利用DNNs的高级特征学习能力,在一个网络中联合学习可泛化的异常特征和分布内特征,以进行正常分类。图3显示了我们如何在神经网络的最后一层使用监督(带有标记的分布内训练集)和自监督(带有自由的未标记的OOD自然样本)训练两个步骤来训练额外的拒绝函数。我们的评估结果表明,提出的OOD特征的自我监督学习可以很好地泛化,拒绝其他未见的分布。

算法的鲁棒性

第二种实际解决方案是利用鲁棒性技术来提高自动驾驶汽车中ML模型的安全裕度。在ML研究中,鲁棒性技术提高了算法对不可见样本、自然破坏和扰动、对抗实例和范围转移的弹性。ML文献介绍了多种技术,如数据集增强、噪声注入和多任务学习,以正则化DNNs来学习可泛化的特征(Goodfellow, Bengio,和Courville 2016)。其他技术,包括迁移学习(Hendrycks, Lee和Mazeika 2019),已证明可以通过将预训练模型的普遍表示转移到新范围来提高模型的鲁棒性。此外,Zhang和LeCun (Zhang and LeCun 2017)探索了使用无标签自由数据来正则化模型训练的鲁棒性。在接下来的文章中,我们回顾了用于开放世界任务的两种主要的与安全相关的机器学习鲁棒性技术。我们还将在讨论部分简要回顾针对对抗示例的鲁棒性和检测技术。

Robustness to Domain Shift对范围偏移的鲁棒性

范围偏移(也称为分布偏移和数据集偏移)描述了与训练集相比,输入数据分布的变化。分布偏移通过打破训练和测试数据之间的i.i.d假设,降低了与测试集性能相比的操作性能。在这方面,对于像自动驾驶汽车这样的开放世界应用程序,领域泛化是机器学习算法的一个关键方面,这些应用程序的数据是从不受控制的和快速变化的环境中获取的。范围泛化可以通过许多不同的方式实现。一种方法是对抗范围适应(Ganin和Lempit sky 2014),它利用从目标域捕获的大量未标记数据。例如,Zhang等人(Zhang et al. 2019)实现了基于学习的方法,为新的训练样本合成前景对象和背景上下文。多任务学习是通过同时学习两个(或多个)任务来提高模型鲁棒性的另一种技术。例如,Tang等人(Tang等人2019)提出了一种姿态感知的多任务车辆再识别技术,以克服物体的视角依赖性。他们创建并使用了具有自动标记的车辆属性的大规模高随机合成数据集进行训练。Lee等人(Lee, Eum,和Kwon 2019)采用了另一种方法,提出使用模型集成来捕捉和学习物体的不同姿势和视角,以提高整体鲁棒性。此外,为了提高物体检测模型对遮挡和变形的鲁棒性,Wang等人(Wang, Shrivastava,和Gupta 2017)使用对抗网络生成牢固的正面例子。

image.png

在最近的一项工作中(Wu et al. 2019),我们提出了一种提高无人机(UAV)范围偏移模型鲁棒性的新技术。我们将对象检测问题转换为具有多个细粒度范围的跨范围对象检测问题。然后,我们训练我们的目标检测模型来提取由目标范围的许多不同的“非理想”变化(例如,天气条件、相机角度、光线条件)共享的不变特征。为此,我们以模块化的方式在输入和滋扰预测分支(每个非理想条件一个)上添加一个滋扰解纠缠特征转换块,并在对抗环境下联合训练最终网络。我们在Faster-RCNN骨干网上的实现(Wang, Shrivastava和Gupta 2017)在改善无人机图像中对天气、高度和视图变化的模型鲁棒性方面,显示出优于vanilla基线的结果。

Robustness to Corruptions and Perturbations 对破坏和扰动的鲁棒性

自然数据扰动和破坏通常存在于开放世界环境中。对DNN对破坏和扰动的鲁棒性进行基准测试(Hendrycks和Dietterich 2019)表明,机器学习模型在简单扰动上出现了意外的预测错误。要实现模型对自然破坏(例如,由于相机镜头、图像数据中的雪、雨、雾)和扰动(例如,传感器瞬态误差、传感器上的电磁干扰)的鲁棒性,需要技术来提高模型在清洁数据集之上的鲁棒性。此前,经典数据增强被用于获得对简单图像变化(如旋转和缩放)的鲁棒性(Goodfellow, Bengio,和Courville 2016)。其他技术,如使用自适应算法来选择增强变换(Fawzi等人,2016)和随机补丁擦除(Zhong等人,2017)也被证明对鲁棒性和表示学习都有效。最近,风格转移等高级增强(Geirhos等人2019年)已证明可以提高模型对纹理偏差的鲁棒性。另一项研究提出了更大的网络(Huang et al. 2018),通过多尺度和冗余特征学习来提高DNN的鲁棒性。

另一方面,对抗扰动(Goodfellow, Shlens, and Szegedy 2014)是攻击者故意制造的较小但最坏情况的扰动,以便模型中的受扰动样本结果对样本进行高置信错误分类。我们区分了由自然扰动引起的安全隐患和由对抗扰动引起的安全隐患,因为后者故意利用系统漏洞造成危害。在对未来工作的讨论中,简要地提到了与对抗性扰动有关的安全问题。

5► 总结与展望

在这项工作中,我们对机器学习算法中具有基本局限性的经典软件安全方法进行了回顾和分类。这项工作的动力是利用工程安全策略和最先进的机器学习技术来提高自动系统中机器学习组件的可信性和安全性。在这方面,维护自动驾驶汽车的安全性需要跨多个领域的多学科努力,包括人机交互、机器学习、软件工程、硬件工程(Koopman和Wagner 2017)。我们简要回顾和讨论了注入ML系统的safety和security的其他方面,这些方面可以从研究社区的关注中受益

Security Risks of Adversarial Attacks对抗性攻击的安全风险:

一个对抗的例子是一个干净的图像被精致地扰动(被对手),有一个小的失真,因此它在视觉上看起来与原始的干净的图像相同,但被ML模型错误分类。尽管对抗性攻击很受欢迎,但它并不主要被认为是一种安全问题,而是一种安全限制(Carlini和Wagner 2017)。对抗性攻击的两种主要防御方法是检测和鲁棒性。例如,Smith和Gal (Smith and Gal 2018)提出了一个MC-drop - out不确定估计技术的案例,用于检测对抗实例。此外,为了提高模型对对手扰动的鲁棒性和弹性,Papernot等人提出了一种基于模型蒸馏的有效防御(Papernot等人,2016)。然而,考虑到攻击者总是通过设计更强的攻击来破坏机器学习组件的安全性来应对当前的防御技术时,对抗性例子的问题是一个未解决的问题(Carlini和Wagner 2017)。

Procedural Safeguards for ML Safety ML安全的流程保障:

除了系统的功能安全之外,流程保障措施还有助于操作人员和产品最终用户(如自动驾驶汽车的驾驶员)避免由于缺乏指示和意识不足而导致的系统意外误用(Varshney 2016)。用户体验(UX)设计和算法透明性是提高自动驾驶汽车运行安全性的两种途径。在这种情况下,终端用户可以从可解释的用户体验设计中受益,这些设计提供了关于模型推理(Gunning 2017)和预测不确定性(Michelmore, Kwiatkowska,和Gal 2018)的有用和可理解的信息。例如,用户体验设计可以利用实时可视化的模型不确定性进行车辆检测和路径规划,以帮助提高司机对道路上车辆安全的理解。

在我们未来的工作中,我们计划回顾最近的流程保障设计和自动驾驶汽车应用研究。包括标定人工智能系统中用户信任的关键技术和因素。

...(END)...

免责声明:如涉及侵权请及时与我们联系反馈,我们会在第一时间做更正声明或做删除处理。文章版权及解释权归原作者及发布单位所有,仅供参考学习。

作者:SASETECH
文章来源:sasetech

推荐阅读

更多物联网安全,PSA等技术干货请关注平台安全架构(PSA)专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入PSA技术交流群,请备注研究方向。
推荐阅读
关注数
4549
内容数
127
Arm发布的PSA旨在为物联网安全提供一套全面的安全指导方针,使从芯片制造商到设备开发商等价值链中的每位成员都能成功实现安全运行。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息