[paper] [综述]Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey
introduction
Szegedy[22] 首先发现了深度学习在图像识别的脆弱性,微小的扰动会导致模型分类错误。
第一篇全面的对抗攻击综述
DEFINITIONS OF TERMS
-
Adversarial example/image:修改后的image
-
Adversarial perturbation: 添加的perturbation
-
Adversarial training:使用对抗图片进行训练
-
Adversary:产生对抗样本的代理
-
Black-box attacks: 黑盒攻击
-
Detector:检测模型是否是对抗样本
-
Fooling ratio/rate: 在样本修改之后,模型标签更改率
-
One-shot/one-step methods:一步生成扰动,与此对应的是迭代生成扰动
-
Quasi-imperceptible:人眼不可察觉
-
Rectifier:将对抗样本恢复为能被模型识别的工具
-
Targeted attacks:目标攻击,对应无目标攻击
-
Threat model: 某种方法的潜在攻击
-
Transferability:可迁移性
-
Universal perturbation:通用扰动
-
White-box attacks:白盒模型
ADVERSARIAL ATTACKS
Attacks for classification
Box-constrained L-BFGS
Szegedy et al.[22] 提出了以下优化问题:
但是直接求该问题比较困难,于是转化为近似盒优化问题:
该问题可以用非凸方法进行优化。
Fast Gradient Sign Method
Goodfellow et al.[23]开发了一种基于梯度的生成对抗样本的方法:
基于深度神经网络在高维度空间是线性的假设。
Kurakin et al.[80]. 使用了与原label相近的标签作为target label进行攻击,例如把一种狗识别为另外一种狗。
Miyato et al. [103]则提出了一种利用梯度的L2正则项计算扰动的方法:
总结:one shot methods
Basic & Least-Likely-Class Iterative Methods
one shot方法是在梯度相反的方向上走一大步,而迭代的方法则意味着小的扰动多次迭代。
Basic Iterative Method (BIM) [35] 则迭代地计算响应的扰动量:
变体:Kurakin et al. [35](ILCM)
Jacobian-based Saliency Map Attack (JSMA)
通过限制L无穷和L2范数来达到让人眼不可识别的目的。
Papernot et al. [60] 通过限制L0范数来生成对抗样本,每次只修改一个像素点,直至对抗样本被误识别,每次使用的saliency map为特征图output梯度,以此来找到哪个最有效率的攻击像素。
One Pixel Attack
对抗样本攻击的极端情况,只有一个像素点被修改。
Su et al. [68] 生成了只有一个像素点被修改时的对抗样本,使用了差分进化的方法生成对抗样本,首先生成了一个500\*5的向量,然后使用进化的方法向目标优化,目标为对应图像的概率,最后留存的子代即为最优解。
Carlini and Wagner Attacks(CW)
Carlini and Wagner [36] 使用该方法可以将攻击样本迁移到蒸馏防御模型中,蒸馏模型对此不起作用,该方法基于L0、L2和无穷范数。
变体:Chen et al. [41](ZOO)
DeepFool
Moosavi-Dezfooli et al. [72]初始化对抗样本为干净图像,然后将对抗样本限定到分类器的边界,每次使用一个向量将图像限定到对应的边界,最后的图像为累加的扰动值。有论文证明,其效果和FGSM是近似相等的。
Universal Adversarial Perturbations
不同于前面的针对某个特定图像的对抗样本,Moosavi-Dezfooli et al. [16] 提出了通用攻击扰动的目的是生成针对所有图像的通用扰动:
其中P代表的是概率,sigmoid代表的是Fooling rate。
使用L2范数以及无穷范数来生成对抗样本,4%的范数上限可以得到较好的愚弄分数。
变体:Khrulkov et al. [190] , Mopuri et al. [135].
UPSET and ANGRI
Sarkar et al. [146] 提出UPSET网络用于生成对所有样本有效的扰动,ANGRI网络用于生成流氓图像以愚弄深度网络。具体来讲,UPSET网络是一个残差网络,用以生成最佳扰动。
Houdini
Cisse et al. [131] 提出了针对于task losses的对抗样本,可以针对语音样本生成对抗样本,也可以迁移到人体姿势识别应用上。
ATN
Baluja and Fischer [42] 训练了一种生成对抗样本的前向网络,名为对抗转化网络(ATN),主要有两部分的loss,一部分loss使得原图和对抗图尽可能相似,另外一部分则使得对抗样本识别错误。
变体:Hayex and Danezis [47]
Miscellaneous Attacks
对抗攻击方法总结:
Attacks beyond classification/recognition
Tabacof et al. [128] 提出了针对自编码器的对抗样本,变体:Kos et al. [121] 针对VAE和VAE-GAN
Papernot et al. [110]提出了针对RNN编码器的对抗样本。
Lin et al. [134] 提出了针对强化学习的对抗样本攻击,先在小数据集的攻击训练条件下最小化强化学习的reward,在增强攻击阶段则诱导智能体向对应的状态转移。http://yclin.me/adversarial_attack_RL/.
Huang et al. [62] 认为也可以降低强化学习训练策略的性能。http://rll.berkeley.edu/adversarial/
Metzen et al. [67] 认为图像的不可预知可以愚弄深度学习的语义分割,变体 Arnab et al. [51] Xie et al. [115]
ATTACKS IN THE REAL WORLD
Rozsa et al. [130], [160] 使用了CelebA bench-mark探究了不同深度学习的方法的稳定性,使用Fast Flipping Attribute 的方法用来生成样本。
Kurakin et al. [35] 首先展示了物理攻击也可用于手机摄像头,他们将对抗样本打印出来并欺骗了谷歌tensorflow相机app。
Etimov et al. [75] 提出了覆盖在交通标志板上的两种方式,第一种方式是直接贴在交通标志上面,第二种是贴在交通标志的四周。
Athalye et al. [65] 提出了一个生成3D标志的对抗样本,可以在不同角度不同视角欺骗神经网络。
Papernot et al. [39]提出了一种可以欺骗在线智能系统的网络空间的生成样本方法,基于该方法生成的样本可以成功欺骗大多数在线系统。
Melis et al. [63] 提出了可以欺骗机器人视觉的对抗样本生成方法。 Xu et al. [40]提出了针对可视化问答的对抗样本生成方法。
DEFENSES AGAINST ADVERSARIAL ATTACKS
主要分为3种:
1. 在训练中修改训练过程或者在测试中修改输入
2. 修改网络,修改网络结构,或者更改loss和激活函数
3. 利用网络挂件。
Modified training/input
Brute-force adversarial training
对抗训练:[22] [23] [72]
Miyato etal. [113] 提出“虚拟对抗训练”用来平滑输出分布。
Data compression as defense
Dziugaite et al. [123]提出了通过JPG压缩来对抗FGSM生成的扰动图像。类似的文章[82] [37].
基于Discrete Cosine Transform(DCT)的压缩[81], 基于Principal Component Analysis的压缩[169]。
Foveation based defense
Data randomization and other methods
Xie et al. [115] resize和添加随机化padding可以提升模型的鲁棒性。
Wang et al. [138] 提出了单独分离通道做transform可以试图降低干扰。
训练时的数据增强也可以提高模型的鲁棒性,比如添加高斯噪声。
Modifying the network
Deep Contractive Networks
Gu and Rigazio [24] introduced Deep Contractive Networks (DCN). 降噪自编码器可以减少对抗噪声。但是如果将他们直接堆叠到相关的网络上面,会导致网络更加脆弱。所以在训练时往往会增加一个Contractive AutoEncoders平滑惩罚项。
相似论文:[141].
Gradient regularization/masking
Ross and Doshi-Velez [52] 使用了输入梯度的正则化项进行防御。增加了输入变化所带来输出变化程度的惩罚项。
输出loss的惩罚项:[28]
在输出的逻辑斯蒂值上添加噪声:Nguyen and Sinha [44]
Defensive distillation
Papernot et al. [38]提出利用蒸馏机制来对抗模型攻击。
可以将蒸馏机制看作是一种梯度隐藏的方法。
Biologically inspired protection
Nayebi and Ganguli [124]添加了高度线性激活层。
Parseval Networks
Cisse et al. [131]提出通过在每一层添加一个权重约束项,使得全局的利普西茨常数的值限定在一定范围。因此称为Parseval 网络。
DeepCloak
Gao et al. [139]提出了一种在分类器前面添加mask layer的方法,每次使用干净和对抗样本对来训练更新mask layer,当进行预测时,mask layer会将敏感的神经元屏蔽掉。
Miscellaneous approaches
bounded ReLU [174]
additive noise[120]
对PGD的对抗训练可以抵抗一定范围内的攻击[55],[59]
penalized using the distance between clean and the corresponding adversarial embeddings.[85]
ensemble method[89]
adversary resistant neural networks[129][122]
minimizes the difference between multi-layer embedding results of clean and adversarial images.[106]
Detection Only approaches
SafetyNet: Lu et al. [66]基于对抗样本都是由干净样本生成的假设,在模型的最后一个stage后面添加了一个svm,用以分辨是否是对抗样本。
Exploiting convolution filter statistics: Li [105]使用了每层网络间filter的统计信息,生成一个级联网络来对对抗样本进行二分类。
Grosse et al. [57] 提出了将所有对抗样本作为一个其他的类别进行分类的方法。
Network add-ons
Defense against universal perturbations
Akhtar et al. [81] 提出了Perturbation Rectifying Network(PRN)放置在神经网络的头部用来检测是否是对抗样本。
GAN-based defense
Lee et al. [101]使用GAN网络来对抗FGSM攻击,仅仅使用对抗网络来分类所有正确的和错误的样本。
Detection Only approaches
Feature squeezing: Xu et al. [43] 提出使用特征压缩来区分对抗样本和非对抗样本,将压缩后的样本和干净的样本进行比对,如果差异很大,则意味着是对抗样本,否则不是对抗样本。
Meng and Chen [45]提出了一种检测网络用以生成对抗样本的误差,当对抗样本的误差高于正常值时,便被认为是对抗样本。
scalar quantization and spatial smoothing filter[50]
使用特征图的密度估计[86]
工具库
Cleverhans
Adversarial-Playground (https://github.com/QData/AdversarialDNN-Playground)