论文标题
深度学习是当前人工智能崛起的核心。在计算机视觉领域,它已经成为从自动驾驶汽车到监控和安全等各种应用的主力。虽然深度神经网络在解决复杂问题方面取得了惊人的成功(通常超出了人类的能力),但最近的研究表明,它们很容易受到对手的攻击,这种攻击的形式是对输入的微妙扰动,导致模型预测不正确的输出。对于图像,这样的扰动往往太小而无法察觉,但它们完全欺骗了深度学习模型。对抗性攻击严重威胁了深度学习在实践中的成功。这一事实最近导致了这一方向的大量捐款涌入。本文首次对计算机视觉中深度学习的对抗性攻击进行了全面的调查。我们回顾了设计对抗性攻击的工作,分析了此类攻击的存在,并提出了防御措施。为了强调对抗性攻击在实际条件下是可能的,我们分别回顾了在现实世界场景中评估对抗性攻击的贡献。最后,在文献综述的基础上,对这一研究方向进行了更广阔的展望。
Adversarial attacks 对抗攻击
Adversarial example/image 对抗样本/图像
对抗样本/图像是干净图像的一个修改版本,它被故意干扰(例如通过添加噪声)来混淆/愚弄机器学习技术,如深层神经网络。
Adversarial 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 白盒攻击
白盒攻击假设了目标模型的完整知识,包括其参数值、体系结构、训练方法,在某些情况下还包括其训练数据。
I c ∈ R m \mathbf{I}_{c} \in \mathbb{R}^{m} Ic∈Rm表示矢量化的干净图像-下标‘c’强调图像是干净的,可以理解成参数 x x x。
ρ ∈ R m \boldsymbol{\rho} \in \mathbb{R}^{m} ρ∈Rm,是对抗性扰动
′ ℓ ′ ' \ell^{\prime} ′ℓ′ 表示图像的标签,可以理解成参数 y y y
C ( . ) \mathcal{C}(.) C(.)是深度神经网络分类器
解决问题如下:
min ρ ∥ ρ ∥ 2 s.t. C ( I c + ρ ) = ℓ ; I c + ρ ∈ [ 0 , 1 ] m \min _{\boldsymbol{\rho}}\|\boldsymbol{\rho}\|_{2} \text { s.t. } \mathcal{C}\left(\mathbf{I}_{c}+\boldsymbol{\rho}\right)=\ell ; \mathbf{I}_{c}+\boldsymbol{\rho} \in[0,1]^{m} ρmin∥ρ∥2 s.t. C(Ic+ρ)=ℓ;Ic+ρ∈[0,1]m
该方法使用牛顿法进行计算,计算量很大,因此使用盒子约束的L-BFGS来寻求近似解。这是通过找到最小 c > 0 c>0 c>0来实现的,对于该最小 c > 0 c>0 c>0,以下问题的最小化 ρ ρ ρ满足条件 C ( I c + ρ ) = ℓ \mathcal{C}\left(\mathbf{I}_{c}+\boldsymbol{\rho}\right)=\ell C(Ic+ρ)=ℓ,这就将问题转化成了凸优化过程
min ρ c ∣ ρ ∣ + L ( I c + ρ , ℓ ) s.t. I c + ρ ∈ [ 0 , 1 ] m \min _{\rho} c|\boldsymbol{\rho}|+\mathcal{L}\left(\mathbf{I}_{c}+\boldsymbol{\rho}, \ell\right) \text { s.t. } \mathbf{I}_{c}+\boldsymbol{\rho} \in[0,1]^{m} ρminc∣ρ∣+L(Ic+ρ,ℓ) s.t. Ic+ρ∈[0,1]m
其中:
L ( . , . ) \mathcal{L}(., .) L(.,.)分类器的损失函数值
公式中,既想要扰动越小,同时想让损失越小,损失越小代表分成错误类别的可能性越大
本文提出了一种通过解决以下问题来有效计算给定图像的对抗性扰动的方法
ρ = ϵ sign ( ∇ J ( θ , I c , ℓ ) ) \rho=\epsilon \operatorname{sign}\left(\nabla \mathcal{J}\left(\boldsymbol{\theta}, \mathbf{I}_{c}, \ell\right)\right) ρ=ϵsign(∇J(θ,Ic,ℓ))
∇ J ( … , . ) \nabla \mathcal{J}(\ldots, .) ∇J(…,.): 损失函数关于输入X的导数
sign ( . ) \operatorname{sign}(.) sign(.): 符号函数
ϵ \epsilon ϵ: 限制扰动范数的小标量值
注意: 这里是关于X求导,即固定住参数,并且使X向损失函数增大的方向上去改变,这种方法通过替换目标值 y 就可以让攻击样本朝着指定的分类目标走,即,可以做任意目标的欺骗。
FGSM生成的对抗性例子利用了深网络模型在高维空间中的“线性”,而这种模型在当时通常被认为是高度非线性的。
古德费罗等人假设现代深层神经网络的设计(有意地)鼓励计算增益的线性行为,也使它们容易受到廉价的分析扰动。在相关文献中,这一想法通常被称为“线性假设”,FGSM方法证实了这一点。
Kurakin 等人提出了 FGSM 的「one-step target class」的变体。通过用使用网络为 I c I_c Ic预测的最不可能类别的“目标”代替对抗扰动中的类别变量,再将原始图像减去该扰动,原始图像就变成了对抗样本,并能输出目标类别。
变体: Fast Gradient L 2 L2 L2
ρ = ϵ ∇ J ( θ , I c , ℓ ) ∥ ∇ J ( θ , I c , ℓ ) ∥ 2 \rho=\epsilon \frac{\nabla \mathcal{J}\left(\boldsymbol{\theta}, \mathbf{I}_{c}, \ell\right)}{\left\|\nabla \mathcal{J}\left(\boldsymbol{\theta}, \mathbf{I}_{c}, \ell\right)\right\|_{2}} ρ=ϵ∥∇J(θ,Ic,ℓ)∥2∇J(θ,Ic,ℓ)
相关的还有Fast Gradient L ∞ L_{\infty} L∞
这些方法属于 one-step方法
动机: one-step 方法通过一大步运算增大分类器的损失函数而进行图像扰动,因而可以直接将其扩展为通过多个小步增大损失函数的变体,从而我们得到 Basic Iterative Methods(BIM)。而该方法的变体和前述方法类似,通过用识别概率最小的类别(目标类别)代替对抗扰动中的类别变量,而得到 Least-Likely-Class Iterative Methods
其每一步迭代的公式为
I ρ i + 1 = Clip ϵ { I ρ i + α sign ( ∇ J ( θ , I ρ i , ℓ ) } \mathbf{I}_{\rho}^{i+1}=\operatorname{Clip}_{\epsilon}\left\{\mathbf{I}_{\rho}^{i}+\alpha \operatorname{sign}\left(\nabla \mathcal{J}\left(\boldsymbol{\theta}, \mathbf{I}_{\rho}^{i}, \ell\right)\right\}\right. Iρi+1=Clipϵ{Iρi+αsign(∇J(θ,Iρi,ℓ)}
I ρ i \mathbf{I}_{\boldsymbol{\rho}}^{i} Iρi: 表示第 i t h i^{\mathrm{th}} ith次迭代的扰动图像
C l i p ϵ {Clip}_{\epsilon} Clipϵ:表示在 ϵ \epsilon ϵ处剪辑图像的像素值
Bim算法从 I ρ 0 = I c \mathbf{I}_{\rho}^{0}=\mathbf{I}_{c} Iρ0=Ic处开始迭代,是一种标准的凸优化算法
Madry等[55]指出此方法和一种叫梯度下降投影(Projected Gradient Descent)的标准凸优化方法相似
与FGSM扩展到‘one-step target class’相似,Kurakin等也将BIM扩展到’Iterative Least-likely Method’ (ILCM)。
ILCM方法生成的对抗性示例已经被证明严重影响了现代深层体系结构Inceptionv3[145]的分类精度
Papernot等提出了通过限制 ℓ 0 \ell_{0} ℓ0范数来生成对抗攻击的方法,这在物理上意味着一次只修改几个像素,而不是扰动整个图像。
该方法一次只扰动一个像素,并检查分类结果的变化情况。其可以进行目标攻击,并在每次选择一个最能迷惑网络的像素并改变它,以此反复迭代
L_0范数为向量中不为0的个数
这是一种极端的对抗攻击方法,仅改变图像中的一个像素值就可以实现对抗攻击。Su 等人使用了差分进化(Differential Evolution)算法,对每个像素进行迭代地修改生成子图像,并与母图像对比,根据选择标准保留攻击效果最好的子图像,实现对抗攻击。这种对抗攻击不需要知道网络参数或梯度的任何信息。
这是一种黑盒攻击,唯一需要知道的就是目标分类器对样本的预测概率
类似于遗传算法,从候选种群中变异产生最优解
Carlini和Wagner提出了三种对抗攻击的方法,其对蒸馏防御(defensive distillation)有效。
该算法生成的扰动可以从unsecrued网络,迁移到secured网络上(有蒸馏),从而实现黑盒攻击。
受此启发,Chen等提出了基于’Zeroth Order Optimization (ZOO)'的攻击。其直接估计目标模型的梯度来生成对抗样本。
Moosavi-Dezfooli 等人 [72] 通过迭代计算的方法生成最小规范对抗扰动,将位于分类边界内的图像逐步推到边界外,直到出现错误分类。作者证明他们生成的扰动比 FGSM 更小,同时有相似的欺骗率。
诸如 FGSM [23]、 ILCM [35]、 DeepFool [72] 等方法只能生成单张图像的对抗扰动,而 Universal Adversarial Perturbations[16] 能生成对任何图像实现攻击的扰动,
该论文中使用的方法和 DeepFool 相似,都是用对抗扰动将图像推出分类边界,不过同一个扰动针对的是所有的图像。
通用的扰动需满足下式
P I c ∼ ℑ c ( C ( I c ) ≠ C ( I c + ρ ) ) ≥ δ s.t. ∥ ρ ∥ p ≤ ξ \underset{\mathbf{I}_{c} \sim \Im_{c}}{\mathrm{P}}\left(\mathcal{C}\left(\mathbf{I}_{c}\right) \neq \mathcal{C}\left(\mathbf{I}_{c}+\rho\right)\right) \geq \delta \quad \text { s.t. }\|\boldsymbol{\rho}\|_{p} \leq \xi Ic∼ℑcP(C(Ic)=C(Ic+ρ))≥δ s.t. ∥ρ∥p≤ξ
其中:
P ( . ) P(.) P(.): 代表概率
δ ∈ ( 0 , 1 ] \delta \in(0,1] δ∈(0,1]: 欺骗率
ξ \xi ξ:预定义的常数,值越小,就越难感知图像中的扰动
Sarkar[146] 等人提出了两个黑箱攻击算法,UPSET 和 ANGRI。UPSET 可以为特定的目标类别生成对抗扰动,使得该扰动添加到任何图像时都可以将该图像分类成目标类别。相对于 UPSET 的「图像不可知」扰动,ANGRI 生成的是「图像特定」的扰动。它们都在 MNIST 和 CIFAR 数据集上获得了高欺骗率。
UPSET 的优化问题如下:
I ρ = max ( min ( s R ( t ) + I c , 1 ) , − 1 ) \mathbf{I}_{\rho}=\max \left(\min \left(s \mathrm{R}(\mathrm{t})+\mathbf{I}_{c}, 1\right),-1\right) Iρ=max(min(sR(t)+Ic,1),−1)
其中,
像素值 I c \mathbf{I}_{c} Ic被限制在 [ − 1 , 1 ] [-1,1] [−1,1]内, s s s是一个标量,
残差生成网络 R ( . ) R(.) R(.)把目标类别 t t t作为输入,并输出一个扰动 R ( t ) R(t) R(t)。
根据公式Ip的大小在[0,1]之间
Houdini是一种用于欺骗基于梯度的机器学习算法的方法,通过生成特定于任务损失函数的对抗样本实现对抗攻击,即利用网络的可微损失函数的梯度信息生成对抗扰动。除了图像分类网络,该算法还可以用于欺骗语音识别网络。
Baluja 和 Fischer[42] 训练了多个前向神经网络来生成对抗样本,可用于攻击一个或多个网络。该算法通过最小化一个联合损失函数来生成对抗样本,该损失函数有两个部分,第一部分使对抗样本和原始图像保持相似,第二部分使对抗样本被错误分类
结果显示,尽管上述方法能被察觉出来,但是它们的欺骗率是前所未有的高
其他: 混杂攻击
其他的攻击方法包括:
这部分不是很懂
目前,在对抗攻击防御上存在三个主要方向:
1)在学习过程中修改训练过程或者在测试阶段修改的输入样本。
2)修改网络,比如:添加更多层/子网络、改变损失/激活函数等。
3)当分类未见过的样本时,用外部模型作为附加网络。
这些方向具体又可分为(a)完全抵抗(Complete),即能够分对对抗样本的原始类别(b)仅探测方法(Detection only),即只鉴别出哪些是对抗样本。具体分类如下图:
修改训练过程/ 输入数据
Brute-force adversarial training
通过不断输入新类型的对抗样本并执行对抗训练,从而不断提升网络的鲁棒性。
为了保证有效性,该方法需要使用高强度的对抗样本,并且网络架构要有充足的表达能力。
这种方法需要大量的训练数据,因而被称为蛮力对抗训练。
很多文献中提到这种蛮力的对抗训练可以正则化网络以减少过拟合 [23,90]。
然而,Moosavi-Dezfooli[16] 指出,无论添加多少对抗样本,都存在新的对抗攻击样本可以再次欺骗网络
Data compression as defense
注意到大多数训练图像都是 JPG 格式,Dziugaite等人使用 JPG 图像压缩的方法,减少对抗扰动对准确率的影响。实验证明该方法对部分对抗攻击算法有效,但通常仅采用压缩方法是远远不够的,并且压缩图像时同时也会降低正常分类的准确率,后来提出的 PCA 压缩方法也有同样的缺点。
矛盾: 较大的压缩也会导致对干净图像的分类精度的损失,而较小的压缩通常不能充分消除敌意干扰。
Foveation based defense
Luo等人提出用中央凹(foveation)机制可以防御 L-BFGS 和 FGSM 生成的对抗扰动,其假设是图像分布对于转换变动是鲁棒的,而扰动不具备这种特性。但这种方法的普遍性尚未得到证明。
Data randomization and other methods
Xie等人发现对训练图像引入随机重缩放可以减弱对抗攻击的强度,其它方法还包括随机 padding、训练过程中的图像增强等
Deep Contractive Networks
人们观察到简单地将去噪自编码器(Denoising Auto Encoders)堆叠到原来的网络上只会使其变得更加脆弱,因而 Gu 和 Rigazio[24] 引入了深度压缩网络(Deep Contractive Networks),其中使用了和压缩自编码器(Contractive Auto Encoders)类似的平滑度惩罚项
Gradient regularization/masking
Ross和Doshi-V Elez[52]研究了输入梯度正则化[167]作为对抗鲁棒性的一种方法。他们的方法训练可微分模型(例如,深度神经网络),同时惩罚导致输出相对于输入变化的变化程度。这意味着,一个小的对抗性扰动不太可能彻底改变训练模型的输出。结果表明,该方法与暴力对抗性训练相结合,对FGSM[23]和JSMA[60]等攻击具有很好的鲁棒性。然而,这些方法中的每一种都几乎使网络的训练复杂度翻了一番,这在许多情况下已经是令人望而却步的
Defensive distillation
据Hinton等[166]介绍,distillation (蒸馏)是指将复杂网络的知识迁移到简单网络上。该知识以训练数据的类概率向量形式提取,并反馈给训练原始模型。Papernot[38] 利用这种技术提出了 Defensive distillation,并证明其可以抵抗小幅度扰动的对抗攻击。防御性蒸馏也可以被看作是梯度遮罩技术的一个例子
Biologically inspired protection
使用类似与生物大脑中非线性树突计算的高度非线性激活函数以防御对抗攻击 [124]。另外一项工作 Dense Associative Memory 模型也是基于相似的机制 [127]。Brendel和Bethge[187]声称,由于计算的数值限制,这些攻击在生物激发的保护上失败了[124]。稳定计算再次让攻击受保护的网络成为可能。
Parseval Networks
这些网络通过控制网络的全局Lipschitz常数来分层正则化。网络可以被看作是函数(在每一层)的组合,通过对这些函数保持一个小的Lipschitz常数,可以对这些函数对抗小的干扰。
DeepCloak
在分类层(一般为输出层)前加一层特意为对抗样本训练的遮罩层。添加的层通过向前传递干净的和对抗性的图像对进行显式的训练,它为这些图像对编码先前层的输出特性之间的差异。它背后的理论认为添加层中最主要的权重对应于网络最敏感的特性(就对抗操纵而言)。因此,在进行分类时,这些特征被强制将添加的层的主导权重变为零。
Miscellaneous approaches
这章包含了多个人从多种角度对深度学习模型的调整从而使模型可以抵抗对抗性攻击。
Zantedeschi等[46]提出使用有界的ReLU[174]来降低图像中对抗性模式的有效性。
Jin等[120]介绍了一种前馈CNN,它使用附加噪声来减轻对抗性示例的影响。
Sun et al.[56]提出了以统计过滤为方法使网络具有鲁棒性的超网络。
Madry et al.[55]从鲁棒优化的角度研究对抗性防御。他们表明,与PGD对手进行对抗性训练,可以成功地抵御一系列其他对手。后来,Carlini等[59]也证实了这一观察。
Na等[85]采用了一种统一嵌入的网络进行分类和低水平相似度学习。该网络使用的是干净图像和相应的对抗性嵌入样本之间的距离。
施特劳斯等人[89]研究了保护网络免受扰动的集成方法。
Kadran等[136]修改了神经网络的输出层,以诱导对对抗攻击的鲁棒性。
Wang et al.[129],[122]利用网络中的非可逆数据变换,开发了抗敌对神经网络。
Lee等人[106]开发了多种规则化网络,利用训练目标来最小化多层嵌入结果之间的差异。
Kotler和Wong[96]提出学习基于相关性的分类器,该分类器对小对抗扰动具有鲁棒性。他们训练一个神经网络,在一个标准设置中,它可以很好地达到高精确度(90%)。
Raghunathan等[189]研究了具有一个隐藏层的神经网络的防御问题。他们的方法在
MNIST数据集上生成一个网络和一个证书,达到一个防御目的。
Kolter和Wong[96]和Raghunathan等[189]是为数不多的几种可以证明的对抗敌对攻击的方法。考虑到这些方法在计算上不适用于更大的网络,唯一被广泛评估的防御是Madry等人[55]的防御。
Detection Only approaches
这章介绍了 4 种网络,SafetyNet,Detector subnetwork,Exploiting convolution filter statistics 及 Additional class augmentation。
Defense against universal perturbation
Akhtar等人[81]提出了一种防御框架,该框架将额外的预输入层附加到目标网络中,并训练它们对对抗样本进行校正,使分类器对同一图像的干净版本的预测与对抗样本预测相同。通过提取训练图像输入输出差异的特征,对分离的检测器进行训练。利用一个单独训练的网络加在原来的模型上,从而达到不需要调整系数而且免疫对抗样本的方法
GAN-based defense
Lee等人[101]利用生成性对抗网络的流行框架[153]来训练一个对FGSM[23]类攻击健壮的网络。作者建议沿着一个生成网络直接对网络进行训练,该网络试图对该网络产生扰动。在训练过程中,分类器不断尝试对干净和扰动的图像进行正确的分类。我们将此技术归类为附加方法,因为作者建议始终以这种方式训练任何网络。在另一个基于GAN的防御中,Shen等[58]人使用网络的生成器部分来修正一个受干扰的图像。
Detection Only approaches
介绍了 Feature Squeezing、MagNet 以及混杂的办法。
The threat is real
这种威胁是真实存在的 : 我们可以断言,对抗性攻击在实践中对深度学习构成了真正的威胁
Adversarial vulnerability is a general phenomenon
敌意脆弱性是一种普遍的现象:我们可以很容易地发现深度学习方法通常容易受到敌意攻击。
Adversarial examples often generalize well
对抗性例子通常具有很好的通用性:文献中报道的对抗性例子最常见的属性之一是它们在不同的神经网络之间很好地转移。对于架构相对相似的网络尤其如此。黑盒攻击中经常利用对抗性例子的泛化。
Reasons of adversarial vulnerability need more investigation
对抗性脆弱性的原因需要更多的研究:关于深层神经网络对微妙的对抗性扰动的脆弱性背后的原因,文献中有不同的观点。通常,这些观点彼此不能很好地对齐。显然有必要在这个方向上进行系统的调查。
Linearity does promote vulnerability
线性确实促进了脆弱性:古德费罗等人。[23]首先提出,现代深层神经网络的设计迫使它们在高维空间中线性行为,也使它们容易受到对手的攻击。虽然这一概念很受欢迎,但在文学中也遇到了一些反对意见。我们的调查指出了多个独立的贡献,认为神经网络的线性是它们易受对手攻击的原因。基于这一事实,我们可以认为线性确实提高了深层神经网络对敌意攻击的脆弱性。然而,这似乎并不是成功地用廉价的分析扰动愚弄深度神经网络的唯一原因。
Counter-counter measures are possible
反措施是可能的:虽然存在多种防御技术来对抗对抗性攻击,但文献中经常显示,被防御的模型可以再次通过制定反措施成功攻击,例如见。这一观察结果表明,新的防御措施还需要对它们对抗明显的反措施的健壮性进行估计。
神经网络中的对抗攻击与对抗样本
学界 | 综述论文:对抗攻击的12种攻击方法和15种防御方法
Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey 论文阅读笔记
吐血整理 | AI新方向:对抗攻击
机器视觉中使用深度学习所面临的对抗攻击——Survey(上)
机器视觉中使用深度学习所面临的对抗攻击——Survey(下)