Press "Enter" to skip to content

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

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

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检测。

 

3 鲁棒训练

 

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

 

1) Hyperparameter Optimization (HPO)

 

2) 损失函数调整

 

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 可解释性

 

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

 

1) 可视化分析

 

2) 中间表示

 

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

 

3) Bayesian Neural Networks

 

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

 

5) MRF

 

6) Confidence Calibration 可信度标定

 

7 聚合Aggregation

 

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

 

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

 

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

 

1) Ensemble Methods

 

2) Temporal Consistency

 

8 Verification

 

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

 

1) Formal Testing

 

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

 

10 模型压缩

 

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

 

1) pruning 裁剪

 

2) quantizations 量化

 

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

 

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

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注