查看原文
其他

【综述专栏】AI系统安全的实用方法

在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。

来源:知乎—黄浴
地址:https://zhuanlan.zhihu.com/p/399648912
arXiv在2021年4月上传的论文“Inspect, Understand, Overcome: A Survey of Practical Methods for AI Safety“,作者来自Bosch、Continental、Valeo、ZF、Volkswagen、Audi等等,包括Tier-1、OEM、大学和研究机构,一共16家。
论文地址:https://arxiv.org/pdf/2104.14235.pdf

摘要

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

01

论文目录


02

数据优化
模型的性能本质上依赖于数据集。例如,变化性较差的数据集几乎不会产生可用的模型。为了此,极端情况(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检测。

03

鲁棒训练
大多数研究都针对提高对抗(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) 方法可以推广到零样本可行的任务(例如,同一源域的新类)。

04

对抗攻击
通常,用于创建对抗性示例的算法被称为对抗性攻击,其目的是欺骗底层 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,同时误导神经网络。

05

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

06

不确定性分析
不确定性是说神经网络作为概率函数或估计器,为每个输入提供随机分布。理想情况下,分布的平均值应尽可能接近神经网络所逼近的函数真值,而神经网络的不确定性是指其随机变量时的方差,从而得相对于平均值的置信度。
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 可信度标定
如果任何可信度的经验准确性与预测的可信度相匹配,则模型被称为标定良好。

07

聚合Aggregation
神经网络基于输入处理得出输出,例如,将传入的图像数据映射到类标签。输入或输出端的非独立信息聚合或收集可提升其性能和可靠性。从输入开始,任何数据的附加“维度”都可以使用。例如,在自动驾驶,这可能是来自任何传感器的输入,该传感器测量同样的原始场景,例如双目相机或 LiDAR。组合这些传感器进行预测通常称为传感器融合。该场景被连续监控,提供整个(时间排列)输入信息流。调整此类输入的网络或者后处理,通过某种时间一致性预测被聚合。
另一种更隐式的聚合形式是在几个“独立”任务训练神经网络,例如分割和深度值回归。尽管单个任务对相同的输入执行,但整体性能仍然从所有任务之间的相关性受益。用多种不同的方式解决同一任务,可以提高整体性能并提供冗余措施。
注:这里专注于单任务系统。
1)Ensemble Methods 集成方法
网络集成是模型的集合,各种建模选择对损失进行描述:选定的模型类及其元参数(如架构和层宽度)、训练数据和优化目标。多样化的方法,例如不同模型类在不同训练数据的组合(bagging)训练和加权集成组件以弥补其他成员的缺陷(boosting)。
2)Temporal Consistency
视频预测分成两种方法:
1. DNNs 专门为视频预测设计。从头开始训练,要求序列中训练数据可用。
2. 从单步图像预测 DNN 到视频预测 DNN 的转变。通常不需要训练,即模型的现有权重可以不加改变地使用。

08

Verification
验证和确认(Verification and validation,V&V)是任何安全紧要系统安全保证的一个组成部分。在汽车系统的功能安全标准中,一方面,验证意味着确定是否满足给定要求,例如性能目标。另一方面,确认试图评估给定的要求是否足以保证安全,例如,是否只是忽略了某类故障或交互。后者通常是在集成产品的实际操作条件下做大量测试。这与机器学习社区的验证概念不同(在机器学习社区,它通常指选定数据集进行简单的性能测试)。
1)Formal Testing
指包括正式和正式可验证步骤的测试方法,例如,测试数据的采集或测试样本的本地验证。对于图像数据,围绕有效样本的局部测试通常比完全形式化验证更实用:(安全)属性预计不会保留在完整的输入空间,而只会保留在真实图像小得多的未知低维流形(manifold)空间。
2)黑盒子方法
意味着,查询模型获得输入-输出对,但无法访问特定的架构(或权重)。

09

架构
在自动驾驶等领域,一个单一卷积神经网络架构,可以同时执行不同的任务。这种架构被称为多任务学习(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。
部分章节的内容这里没有仔细介绍,主要是我以前已经讨论过,比如不确定性和模型压缩等。
这篇文章没有一个框图,一个图表,基本是文本介绍,作者来自德国的汽车业界。

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“综述专栏”历史文章


更多综述专栏文章,

请点击文章底部“阅读原文”查看



分享、点赞、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存