作者丨黄浴@知乎

来源丨https://zhuanlan.zhihu.com/p/399648912

编辑丨3D视觉工坊

arXiv在2021年4月上传的论文“Inspect, Understand, Overcome: A Survey of Practical Methods for AI Safety“,作者来自Bosch、Continental、Valeo、ZF、Volkswagen、Audi等等,包括Tier-1、OEM、大学和研究机构,一共16家。

摘要

由于固有的缺点,许多深度神经网络 (DNN) 模型在mobile health和自动驾驶等安全紧要的应用其实是具有挑战性的。这些缺点是多种多样的,比如可解释性不足、缺乏泛化和恶意输入等问题。因此,基于DNN 的智能系统受到安全问题的困扰。近年来,出现了旨在解决这些安全问题的最先进技术库。该文对此做结构化和广泛的方法概述。

1 论文目录

2 数据优化

模型的性能本质上依赖于数据集。例如,变化性较差的数据集几乎不会产生可用的模型。为了此,极端情况(corner case)检测和主动学习(AL)的数据选择过程至关重要。这些方法可以帮助设计包含最重要信息的数据集,同时防止如此多的所需信息在数据海洋丢失。对于给定的数据集和主动学习设置,数据增强技术的采用非常普遍,就是为了从数据集中提取尽可能多的信息。

另一方面,安全还需要分析模型在OOD(out-of-distribution)数据的表现方式,这些数据包含了模型在训练未遇到的领域。因此,这些领域最近越来越受到关注,在自动驾驶的感知方面也是如此。

1)OOD检测

OOD数据检测指的是识别不代表训练数据分布的数据样本。不确定性评估与该领域密切相关,模型的自我评估是 OOD 检测的活跃研究领域之一。

2)主动学习AL

主动学习不是标记每个数据点,而是利用查询策略向教师/预言(oracle)请求标记,从而最大限度地利用数据提高模型性能。主动深度学习的大多数研究活动都集中在两种查询策略上, ncertainty sampling 和 query by committee。

3)Domains 域

在迁移学习领域研究的是一个或多个源域和目标域之间的域不匹配问题。此外,检测样本何时超出域或超出分布是一个活跃的研究领域。例如,如果自动驾驶汽车遇到与训练期间所见情况大相径庭(例如,自行车比赛、狂欢节等), 这可能会导致错误的预测,从而导致潜在的安全问题。

4)增强 Augmentation

数据增强旨在优化可用数据并增加其数量,在部署期间管理代表各种可能输入的数据集,比如创建更多不被代表类的样本来处理严重不平衡数据集。有两种数据增强的方法,第一种是data warping增强,专注于获取现有数据并以不影响标签的方式对其进行转换。另一种是oversampling增强,创建可用于增加数据集大小的合成数据。

5)极端情况 Corner Case 检测

虽然手动创建极端案例(例如,构建或重新制定场景)可能更可控,但扩展性的方法还是需要系统地自动化搜索极端案例。

自动Corner Case 检测的一种方法是基于输入数据的转换。另一个研究方向是调查是否构建AI功能输入空间可以支持Corner Case检测。

备注:感谢微信公众号「3D视觉工坊」整理。

3 鲁棒训练

大多数研究都针对提高对抗(adversarial)鲁棒性,即引起高置信度错误分类的扰动的鲁棒性,或提高腐坏(corruption)鲁棒性,即针对常见的增强(例如天气变化、高斯噪声、光度变化等)鲁棒性。对抗鲁棒性更像是一个security问题而不是safety问题,另一方面,腐坏鲁棒性被认为是高度安全相关的。

1)Hyperparameter Optimization (HPO)

重要的有初始 learning rate, learning rate 逐步递减幅度, learning rate decay, momentum, batch大小, dropout比率 和迭代次数等等。

2)损失函数调整

提高adversarial 或者 corruption 鲁棒性的损失函数。

3)域泛化 DG,不是域自适应(DA)

DA 和 DG,都面临着分布匹配问题。然而,估计高维空间的概率密度是棘手的。因此,基于密度的指标(例如 Kullback-Leibler 发散度)不能直接适用。统计学通常采用所谓的双样本检验(two-samples tests),逐点测量两个分布之间的距离。对深度学习来说,要求这个测度不仅是逐点而且可微分。

虽然 DG 方法可以推广到零样本可行的领域,但所谓的零样本学习 (ZSL) 方法可以推广到零样本可行的任务(例如,同一源域的新类)。

4 对抗攻击

通常,用于创建对抗性示例的算法被称为对抗性攻击,其目的是欺骗底层 DNN,使输出如期望的恶意方式发生变化。包括不了解要被攻击的 DNN(黑盒攻击)情况,或者在完全了解DNN 参数、架构甚至训练数据(白盒攻击)情况。

1)对抗攻击和防护

攻击方法基本分成image-specific attacks和image-agnostic attack,这种如何图像附加的扰动也叫做universal adversarial perturbation (UAP) 。著名的方法有the fast gradient sign method (FGSM), DeepFool, least-likely class method (LLCM) , C&W, momentum iterative fast gradient sign method (MI-FGSM) 和 projected gradient descent (PGD) 等等。

同样,防护方法也可以分成model-specific defense 和 model-agnostic defense 策略。一些众所周知的特定模型防护策略包括对抗性训练、训练中加入鲁棒性导向的损失函数、denoising layers去除特征的对抗模式和冗余师生框架。大多数模型无关防护策略主要侧重于各种预处理(gradient masking)策略。

2)更真实的攻击

包括两种类型攻击。

  • (1) 图像级攻击:不仅欺骗神经网络,而且对自驾车构成可证明的威胁;

  • (2) 现实世界或模拟环境的攻击,例如car learning to act (开源模拟仿真器CARLA)。

第二类攻击,专门设计在现实世界扭曲中生存下来,包括不同的距离、天气和光照条件以及摄像机角度。为此,对抗性扰动通常集中在特定的图像区域,称为对抗性补丁(adversarial patch)。对抗性补丁在每个训练图像指定一个补丁区域,对补丁做相应变换,迭代地修改区域内的像素实现最大化DNN模型的预测误差。这一步通常依赖于标准对抗攻击算法,该算法旨在制造invisible perturbations,同时误导神经网络。

5 可解释性

传统数据科学开发了一套计算机自动化分析的庞大工具集,这些工具应用于明确的问题,即可管理的输入/输出维度以及所依赖的数据集大小。对于那些比较复杂的问题,分析过程的自动化程度是有限的,也可能不会导致预期的结果。对于图像或视频数据等非结构化数据,尤其如此,其中底层信息不能直接用数字表示。相反,它需要转换为某种结构化形式,以使计算机能够执行某些分析任务。此外,随着收集的各种类型数据的数量不断增加,这种“信息过载(information overload”)”不能仅通过自动方法进行分析。

已知的有三种可解释性策略:1)打开黑盒子并查看中间表示的直接方法,解释系统的各层,有助于对整体的解释。2)试图用像素属性解释网络的决策提供可解释性,然后对决策的汇总解释可以实现系统本身的可解释性。3)用可解释代理近似DNN模型的想法,从深度神经网络性能中受益,同时允许通过代理解释。所有策略的基础是可视化分析(visual analytics)。

1)可视化分析

定义为“交互式可视接口”。不仅专注于计算处理数据或可视化结果,而且将两者与交互技术紧密结合。因此,它可以将人类专家集成到迭代可视化分析过程中:通过视觉理解和人类推理,可以结合人类专家的知识来有效地改进分析。这一点尤其重要,因为复杂模型需要进行严格的安全论证。

2)中间表示IR

一般来说,表征学习旨在从高维输入提取潜在空间的低维特征。然后将这些特征用作回归、分类、目标检测和其他机器学习任务的有效表示。潜在特征应该被解开,这意味着它们代表从统计独立的数据中发现单独因素。由于在机器学习中的重要性,找到有意义的中间表示长期以来一直是主要研究目标。解开的表示更容易地被人类解释,例如解释神经网络的推理。

3)Pixel Attribution

特征重要性技术目前主要用于诊断错误DNN模型行为的原因。所谓的attribution maps是一种可视化技术,用于表达输入图像相关像素与网络预测之间的关系。图像包含相关特征的区域会相应地突出显示。

Attribution方法大多归类三个:Gradient-based,activation-based和Perturbation-based。

4)Interpretable Proxies

DNN 行为由符号知识表示的模型近似。符号表示可以是线性模型,如 LIME(proportionality)、决策树(if-then-chains),或松散的逻辑规则集。逻辑连接器可以简单地为 AND 和 OR,但也可以是更通用的连接器,例如 at-least-M-of-N。除了attribution方法,这些表示可以捕获特征组合以及目标-属性的(空间)关系。

6 不确定性分析

不确定性是说神经网络作为概率函数或估计器,为每个输入提供随机分布。理想情况下,分布的平均值应尽可能接近神经网络所逼近的函数真值,而神经网络的不确定性是指其随机变量时的方差,从而得相对于平均值的置信度。

1)生成模型

生成模型属于无监督机器学习模型。从理论的角度来看,它们提供了一种分析和估计数据密度的方法。

2)Monte-Carlo Dropout

在应用规模的网络设计,该方法提供了Bayesian分析的动力,并且具有概念的简单性和系统可扩展性。

3)Bayesian Neural Networks

提供了概率的一种Bayesian理解。

4)Frequentist Inference中DNN不确定性测度

这种不确定性估计基本上基于统计模型输出。

5)MRF

Markov random fields (MRF) 基于能量函数,将像素集成到单独和成对像素之间相关的模型。给定模型,MRF用于推断最佳配置,主要用最大后验 (MAP) 技术产生最低能量状态。

6)Confidence Calibration 可信度标定

如果任何可信度的经验准确性与预测的可信度相匹配,则模型被称为标定良好。

7 聚合Aggregation

神经网络基于输入处理得出输出,例如,将传入的图像数据映射到类标签。输入或输出端的非独立信息聚合或收集可提升其性能和可靠性。从输入开始,任何数据的附加“维度”都可以使用。例如,在自动驾驶,这可能是来自任何传感器的输入,该传感器测量同样的原始场景,例如双目相机或 LiDAR。组合这些传感器进行预测通常称为传感器融合。该场景被连续监控,提供整个(时间排列)输入信息流。调整此类输入的网络或者后处理,通过某种时间一致性预测被聚合。

另一种更隐式的聚合形式是在几个“独立”任务训练神经网络,例如分割和深度值回归。尽管单个任务对相同的输入执行,但整体性能仍然从所有任务之间的相关性受益。用多种不同的方式解决同一任务,可以提高整体性能并提供冗余措施。

注:这里专注于单任务系统。

1)Ensemble Methods 集成方法

网络集成是模型的集合,各种建模选择对损失进行描述:选定的模型类及其元参数(如架构和层宽度)、训练数据和优化目标。多样化的方法,例如不同模型类在不同训练数据的组合(bagging)训练和加权集成组件以弥补其他成员的缺陷(boosting)。

2)Temporal Consistency

视频预测分成两种方法:1. DNNs 专门为视频预测设计。从头开始训练,要求序列中训练数据可用。2. 从单步图像预测 DNN 到视频预测 DNN 的转变。通常不需要训练,即模型的现有权重可以不加改变地使用。

8 Verification

验证和确认(Verification and validation,V&V)是任何安全紧要系统安全保证的一个组成部分。在汽车系统的功能安全标准中,一方面,验证意味着确定是否满足给定要求,例如性能目标。另一方面,确认试图评估给定的要求是否足以保证安全,例如,是否只是忽略了某类故障或交互。后者通常是在集成产品的实际操作条件下做大量测试。这与机器学习社区的验证概念不同(在机器学习社区,它通常指选定数据集进行简单的性能测试)。

1)Formal Testing

指包括正式和正式可验证步骤的测试方法,例如,测试数据的采集或测试样本的本地验证。对于图像数据,围绕有效样本的局部测试通常比完全形式化验证更实用:(安全)属性预计不会保留在完整的输入空间,而只会保留在真实图像小得多的未知低维流形(manifold)空间。

2)黑盒子方法

意味着,查询模型获得输入-输出对,但无法访问特定的架构(或权重)。

9 架构

在自动驾驶等领域,一个单一卷积神经网络架构,可以同时执行不同的任务。这种架构被称为多任务学习(MTL),可以用来节省计算资源,同时提高每个任务的性能。这样的多任务网络,通常一个共享的特征提取部分后跟一个单独的所谓的任务头。

这些架构中,专家的手动设计起着重要作用。然而,近年来,人们也在努力使寻找网络架构的自动化,这被称为神经架构搜索(NAS)。

1)Building Blocks

设计卷积神经网络通常包括许多设计选择。通用架构通常包含许多以特定模式排列的卷积层和池化层。卷积层通常后跟非线性激活函数。学习过程基于确定当前误差的损失函数和误差传播,及其可学习参数的优化函数。

2)Multi-Task Networks 多任务网络

神经网络的多任务学习 (MTL) 学习统一的特征表示,耦合特定于任务的损失贡献,同时优化多个任务,从而加强跨任务的一致性。

统一特征表示通常是共享编码器(也称为特征提取器)内部初始层的参数。通过更广义的学习特征改进了单个任务,还减少了推理对计算资源的需求。不为每个任务添加一个新网络,只需添加一个特定于任务的解码器头,比如 depth estimation, semantic segmentation, motion segmentation, 和 object detection。

与共享特征表示隐式的耦合任务相比,有更直接的方法联合优化跨任务损失的任务。在 MTL 期间,几个任务的网络预测可以被强制执行以保持一致。例如,尖锐的深度边缘应该只在语义分割预测的类边界处。通常,两种 MTL 方法同时应用可以提高神经网络的性能并降低其推理的计算复杂度。

虽然MTL 的理论期望非常明确,但要为所有不同的损失贡献找到一个好的加权策略具有挑战性,因为没有理论可以早期选择这种加权,包括启发式或广泛的超参调整。平衡任务的最简单方法是在所有任务中使用统一的权重。然而,不同任务的损失通常有不同的尺度,均匀地平均所有损失会抑制损失较小任务的梯度。

3)神经架构搜索NAS

NAS方法旨在对耗时的手动神经网络架构设计改变为自动化。

10 模型压缩

基本方法包括:network pruning裁剪, weight quantizations量化, knowledge distillation 蒸馏和 low-rank factorization分解

1)pruning 裁剪

Pruning用作降低深度神经网络复杂性的系统工具。DNN 的冗余可能存在于各个级别,例如各个权重、滤波器甚至层。所有不同的pruning方法都试图在不同级别利用这些冗余。

2)quantizations 量化

包括“linear” quantization,post-training quantization,training-aware quantization。

部分章节的内容这里没有仔细介绍,主要是我以前已经讨论过,比如不确定性和模型压缩等。

这篇文章没有一个框图,一个图表,基本是文本介绍,作者来自德国的汽车业界。

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

综述:AI系统安全的实用方法介绍相关推荐

  1. 介绍近期的一篇综述:AI系统安全的实用方法

    作者丨黄浴 来源丨 计算机视觉深度学习和自动驾驶 arXiv在2021年4月上传的论文"Inspect, Understand, Overcome: A Survey of Practica ...

  2. 如何更改计算机睿频,bios中关闭cpu睿频实用方法介绍

    有网友问小编关于bios中关闭cpu睿频的方法,其实cpu是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit).它的功能主要是解释计算机指令以及处理计算 ...

  3. linux test 使用方法,Linux系统test命令使用方法介绍

    Linux系统中有时需要检测某个条件是否成立,那么就要用到test命令了,Linux下test的用法有很多,下面就随小编一起来学习下Linux系统中如何使用test命令吧. 1.判断一个命令的结果使用 ...

  4. 网吧电脑装linux系统下载,linux系统安装方法介绍 | 专业网吧维护

    linux系统安装方法介绍: 1,首先准备好大于的8G U盘一个,因为现在的镜像基本上都有3G多,4G的U盘可能空间不够.同时提前下载好CentOS 7.4的安装镜像以及刻录镜像到U盘上的软件Ultr ...

  5. 计算机机房新风机管道布置要求,新风系统管道布置—新风系统管道布置连接方法介绍...

    大家在购买新风系统的时候,新风系统的管道布置是决定新风系统正确使用的重要标准,那如果要进行新风系统管道布置工作的话,小编来为大家介绍下新风系统管道的一些布置安装方法,帮助大家更好的进行这方面工作. 新 ...

  6. 计算机操作什么用到3次剪贴板,如何清空剪切板 三大实用方法介绍【图解】

    我们平时经常使用电脑,但是大多数人其实只是懂得最基础的一些电脑应用,也就是其实只懂得一些皮毛.还有一些工作者虽然会经常使用电脑,电脑中的很多软件也可以熟练应用.可是实际上对于电脑深层的一些操作还是没有 ...

  7. win10系统多桌面切换方法及切换快捷键详细介绍

    2019独角兽企业重金招聘Python工程师标准>>> 时间:2016-03-03 来源:互联网 [我要评论] win10系统中用户除了可以切换任务之外,还可以进行多桌面切换,就像是 ...

  8. 在windows中,更改计算机的日期和时间的方法有,windows10系统修改时间和日期方法介绍...

    在使用电脑的时候,有的时候因为工作需要或者是当前系统时间不准等情况下要自行设置下电脑系统下的时间,但是还有用户不是很了解在windows10系统中怎么去修改电脑时间和日期.今天小编就给大家介绍下载wi ...

  9. Android客户端连接服务器- OKHttp的简单实用方法

    文章目录 一 .OKHttp简介 二. OkHttp3使用 1.创建HTTPClient实例 2.Get请求 3.POST请求 三.Timeouts(超时) **写在前面:本文只是对OKHttp3的简 ...

最新文章

  1. 周杰伦入局元宇宙? 6200万个联名「幻象熊」40分钟全卖光!
  2. RouterOS和艾泰路由建立ipsec ×××连接
  3. Java 中几种常用的 RPC 框架介绍
  4. AI公开课:19.05.22 Aya Soffer—IBM AI Tech VP《Advanced, scalable, and trusted AI 》课堂笔记以及个人感悟
  5. IDEA VM options调优
  6. matlab教程点语言,编程语言 / Matlab教程_电脑教程学习网( 5 )
  7. C语言 for 循环 - C语言零基础入门教程
  8. FPGA时钟激励编写(方法一)
  9. Python的apidoc操作
  10. Python 标准库 —— fractions
  11. 省钱兄淘宝客APP源码商城抖客电商源码uniapp前端模版源码
  12. 从小工到专家【借鉴】
  13. 西门子S7-300 PLC视频教程(百度网盘)
  14. 头条小程序服务器设置,今日头条小程序如何注册申请
  15. 【游戏】LOL只能攻击英雄,点不了小兵解决办法
  16. 秦曾昌人工智能课程---7、决策树集成学习Tree Ensembles
  17. 再见!Notepad++
  18. adb 卸载android系统程序
  19. CES包罗万象 家用清洁机器人将亮相展会
  20. 川普撞脸希拉里(基于 OpenCV 的面部特征交换)-2

热门文章

  1. 牛人博客!!!各大招聘网站信息实时查询浏览【转】
  2. 轻松自动化---selenium-webdriver(python) (四)
  3. 服务器安全设置之--硬盘权限篇
  4. RAID损坏后 对数据的完整备份
  5. git push origin与git push -u origin master的区别
  6. 用Leangoo Scrum看板工具管理OKR-目标管理
  7. Docker 从入门到精通(建议收藏的教程)
  8. 用了 Elasticsearch 后,查询起飞了!
  9. 某程序员吐槽:面试八股文害死人!公司新来的应届生满口框架,根本不会写代码!网友:八股文只能招到背题家!...
  10. 闲着无聊去体验远程面试,最后竟然被录取了...