Attack and Defense Algorithm in DL and DRL

简介

Posted by MY on January 15, 2019

一、简介

  深度学习与深度强化学习在很多计算机领域的任务上具有出色的表现,但是Szegedy等人发现了深度神经网络在图像分类等领域存在有弱点。他们证明尽管DL与DRL在特定的任务上具有很好的效果,但是深度网络非常容易受到对抗样本的攻击。这些对抗样本相比于原有的样本仅有很轻微的改动,以至于人类视觉系统无法察觉这种扰动。然而这样的攻击会导致神经网络完全改变它对图片的分类或者使得训练有素的agent表现很糟糕。此外,同样的扰动可以欺骗好多不同的网络。这类现象的深远意义吸引了好多研究员在对抗攻击和深度学习安全性领域的研究。

二、概念

  • Adversarial Examples:原始正常图像的修改版本,通过添加噪声等修改图像以欺骗机器学习技术(例如深度神经网络)。
  • Adversarial Pertubation:添加到图像中来生成Adversarial Examples的噪声。
  • Adversarial Training:使用Adversarial Examples与正常的图像一起训练模型。
  • Adversary:一般指生成Adversarial Examples的agent,有时也指Adversarial Examples本身。
  • Black-box Attacks:在测试期间,使用在不了解该模型的情况下生成的Adversarial Examples,输入到目标模型中。
  • White-box Attacks:知道关于目标模型的完整知识,包括其参数值,体系结构,训练方法,以及在某些情况下的训练数据。
  • Detector:探测图像是否为Adversarial Examples的一种机制。
  • Fooling Ratio:在图像加入扰动后,训练模型改变预测结果的百分比。
  • One-shot methods:通过一步的计算就生成扰动。与之对应的是多次计算去生成一个扰动。后者的计算成本很高。
  • Quasi-imperceptible:扰动轻微地改变图像,人类无法感知到。
  • Rectifier:修改Adversarial Examples以将目标模型的预测恢复为对同一样本的正常版本的预测。
  • Targeted Attacks:欺骗模型错误地预测Adversarial Examples为特定标签。与Non-targeted Attacks相反,只要预测得到的标签与正确标签不同即可。
  • Threat Model:攻击方法的类型,如Black-box Attacks。
  • Transferability:Adversarial Examples对于生成它的模型之外的模型仍然可以达到攻击的效果。
  • Universal Pertubation:能够用任何图像以高概率欺骗给定模型。注意与Transferability区分。

    三、Adversarial Attacks

    1. Attacks on Classification

    1.1 Box-constrained L-BFGS

      Szegedy等人首次证明了可以通过对图像添加人类察觉不到的极小扰动来误导神经网络做出误分类。他们的思路是尝试求解让神经网络做出误分类的最小扰动$\rho$的方程如下:&\underset{\rho}{min}\left || \rho \right ||_{2} \quad s.t. \quad C(I_{c}+\rho )=l;I_{c}+\rho \in [0,1]^{m}&其中,$I_{c} \in \mathbb{R}^{m}$指原始图片,下标指明图片是未经过修改的;$C(.)$是指神经网络分类器;$l$指图像的标签。但由于问题的复杂度太高,他们简化了问题,即寻找最小的损失函数添加项,使得神经网络做出误分类,将问题转化成了凸优化过程:&\underset{\rho}{min}c\left | \rho \right |+L(I_{c}+\rho ,l) \quad s.t. \quad I_{c}+\rho \in [0,1]^{m}&其中,$L(.,.)$计算分类器的损失值。

    1.2 Fast Gradient Sign Method(FGSM)

      Szegedy等人发现可以通过对抗训练提高深度神经网络的鲁棒性,从而提升防御对抗样本攻击的能力。为此,GoodFellow等人开发了一种能有效计算对抗扰动的方法。这种求解对抗扰动的方法被称为 FGSM,它通过解求解以下方程来实现目的:&\rho = \epsilon sign(\triangledown J(\theta ,I_{c},l))&其中$\triangledown J(.,.,.)$计算模型参数$\theta$基于当前$I_{c}$值周围的成本函数的梯度;$sign(.)$代表符号函数;$\epsilon$是一个小的标量值,用于限制扰动的范数。
      Kurakin等人提出了FGSM的变体。通过用神经网络识别出的概率最小的类别(目标类别)代替对抗扰动中的图像的真实类别,再将原始图像减去该扰动,原始图像就变成了对抗样本。对于使用交叉熵损失的神经网络,这样做可以最大化将目标类别识别为对抗样本的标签的概率。除此之外有人研究出了类似的变体。这些方法都统称为“one-step method”,通过在增加分类器损失的方向上采取单个大步骤来扰乱图像。

    1.3 Basic & Least-Likely-Class Iterative Methods

      从”one-step method”延伸出来的一个想法是迭代地采取多个小步骤来扰乱图像,同时每步之后都调整方向。Basic Itearative Method就是迭代地计算如下公式:&I_{\rho }^{i+1}=Clip(I_{\rho }^{i}+\alpha sign(\triangledown J(\theta ,I_{\rho}^{i},l)))&其中,$I_{\rho}^{i}$指在第$i$次迭代时的被扰动图像;$Clip(.)$限制图像像素的范围;$\alpha$决定了步长。
      类似于FGSM的变体,通过用识别概率最小的类别(目标类别)代替对抗扰动中的真实类别变量,而得到 Least-Likely-Class Iterative Methods。

    1.4 Jacobian-based Saliency Map Attack (JSMA)

      对抗攻击中通常使用的方法是限制扰动的$l_{\infty }$或$l_{2}$范数的值以使对抗样本中的扰动无法被人察觉。但JSMA提出了限制$l_{0}$范数的方法,即仅改变几个像素的值,而不是扰动整张图像。类似的方法也被人提出。这种算法可以理解如下。一次一个地修改原始图像的像素,并监视修改对分类结果的影响。通过使用网络层的输出的梯度进行计算得到显著性图来执行监视。在显著性图中,较大的值表示欺骗网络将$l_{target}$而不是原始标签$l$预测为修改图像的标签的可能性较高。因此,该算法执行有针对性的欺骗。一旦计算出显著性图,算法就会选择最有效的像素来欺骗网络。重复该过程,直到达到允许更改的像素的最大值或者成功欺骗了网络为止。

    1.5 One Pixel Attack

      这是一种极端的对抗攻击方法,它仅改变图像中的一个像素值就可以实现对抗攻击。在这种方法中,Su等人使用了差分进化算法,构建一个包含x,y坐标、RGB颜色五个信息的向量,对每个向量进行迭代地修改生成子图像,并与母图像对比,根据预测的可能性作为标准保留攻击效果最好的子图像,实现对抗攻击。这种对抗攻击不需要知道网络参数或梯度的任何信息,只需要知道目标模型预测出标签的可能性。

    1.6 Carlini and Wagner Attacks(C&W)

      Carlini 和 Wagner提出了三种对抗攻击方法,通过限制 $l_{\infty }$、$l_{2}$和$l_{0}$范数使得扰动无法被察觉。实验证明 defensive distillation 完全无法防御这三种攻击。该算法生成的对抗扰动可以从 unsecured 的网络迁移到 secured 的网络上,从而实现黑箱攻击。

    1.7 DeepFool

      Moosavi-Dezfooli等人通过迭代计算的方法生成最小规范对抗扰动。DeepFool用假定位于由分类器的决策边界限制的区域中的原始图像来初始化。该区域决定了图像的类标签。在每次迭代时,DeepFool通过小矢量扰动和改变图像,将位于分类边界内的图像逐步推到边界外,直到出现错误分类。作者证明了他们生成的扰动比FGSM 更小,同时有差不多的欺骗率。

    1.8 Universal Adversarial Perturbations

      诸如FGSM、 ILCM、 DeepFool等方法只能生成单张图像的对抗扰动,而 Universal Adversarial Perturbations能生成对任何图像实现攻击的扰动,这些扰动同样对人类是几乎不可见的。假设原始图像从分布$S$中采样得到,那么一个扰动满足如下公式,则视为是“Universal”的:&\underset{I_{c}\sim S}{P}(C(I_{c})\neq C(I_{c}+\rho ))) \geq \delta \quad s.t. \quad \left || \rho \right ||_{p} \leq \varepsilon &其中,$P(.)$表示概率;$\delta \in (0,1]$是欺骗率;$||.||_{p}$代表$l_{p}$-norm;$\varepsilon$是预定义好的参数。$\varepsilon$越小,扰动越难感知。该论文中使用的方法和 DeepFool 相似,都是用对抗扰动将图像推出分类边界,不过同一个扰动针对的是所有的图像,而不只是单个图像。虽然文中只针对了单个网络ResNet进行攻击,但已证明这种扰动可以泛化到其它网络上。

    1.9 UPSET and ANGRI

      Sarkar等人提出了两个黑箱攻击算法,UPSET和ANGRI。
      对于n个目标类别,UPSET试图产生n个图像不可知扰动,使得当扰动被添加到不属于目标类别的图像时,分类器可以将该图像分类成目标类别。UPSET使用残差生成网络$R(.)$,它将目标类$t$作为输入并产生扰动$R(t)$以进行愚弄。整体方法使用所谓的UPSET网络解决了以下优化问题:&I_{p}=max(min(sR(t)+I_{c},1),-1)&其中,$I_{c}$被归一化到$[-1,1]$范围内;$s$是一个标量。
      相对于UPSET的“图像不可知”扰动,ANGRI生成的是“图像特定”的扰动。它们都在MNIST和CIFAR数据集上获得了高欺骗率。

    1.10 Houdini

      Houdini是一种用于欺骗基于梯度的机器学习算法的方法,通过生成特定于任务损失函数的对抗样本实现对抗攻击,即利用网络的可微损失函数的梯度信息生成对抗扰动。除了图像分类网络,该算法还可以用于欺骗语音识别网络。

    1.11 Adversarial Transformation Networks(ATNs)

      Baluja和Fischer训练了多个前向神经网络来生成对抗样本,可用于攻击一个或多个网络。该算法通过最小化一个联合损失函数来生成对抗样本,该损失函数有两个部分,第一部分使对抗样本和原始图像保持相似,第二部分使对抗样本被错误分类。

Method Threat Type Scope Norm Learning Strength
L-BFGS White Box Targeted Image $l_{\infty }$ One Shot ***
FGSM White Box Targeted Image $l_{\infty }$ One Shot ***
BIM&ILCM White Box Non Targeted Image $l_{\infty }$ Iterative ****
JSMA White Box Targeted Image $l_{0}$ Iterative ***
One-pixel Black Box Non Targeted Image $l_{0}$ Iterative **
C&W attacks White Box Targeted Image $l_{\infty },l_{0},l_{2}$ Iterative *****
DeepFool White Box Non Targeted Image $l_{\infty },l_{2}$ Iterative ****
Uni.pertubations White Box Non Targeted Universal $l_{\infty },l_{2}$ Iterative *****
UPSET Black Box Targeted Universal $l_{\infty }$ Iterative ****
ANGRI Black Box Targeted Image $l_{\infty }$ Iterative ****
Houdini Black Box Targeted Image $l_{2},l_{\infty}$ Iterative ****
ATNs White Box Targeted Image $l_{\infty }$ Iterative ****

其中,norm表示其限制的p-范数(p-norm)以使对抗扰动对人类不可见或难以察觉。strength 项(*越多,对抗强度越大)是基于各个论文得到的印象。

2. Attacks on Deep Reinforcement Learning

3. Attacks on Autoencoders and Generative Models

4. Attack on Recurrent Neural Networks

5. Attacks on Semantic Segmentation and Object Detection

四、Defense against adversarial attacks

  当前,常用的防御对抗攻击的思路主要有以下三方面:

  • 在学习过程中修改训练过程或者修改的输入样本
  • 修改网络,比如:添加更多层/子网络、改变损失/激活函数等
  • 当分类未见过的样本时,用外部模型作为附加网络

  第一种方法没有直接处理学习模型。后两个分类是更加关心神经网络本身的。这些方法可以被进一步细分为两种类型:

  • 完全防御;该方法的目标是让网络将对抗样本识别为正确的类别
  • 仅探测:该方法意味着在对抗样本上发出警告以拒绝任何进一步的处理

  具体分类如下图所示: 1

1. 修改训练过程或输入数据

1.1 Brute-force adversarial training

  通过不断输入新类型的对抗样本并执行对抗训练,从而不断提升网络的鲁棒性。为了保证有效性,该方法需要使用高强度的对抗样本,并且网络架构要有充足的表达能力。这种方法需要大量的训练数据,因而被称为蛮力对抗训练。很多文献中提到这种蛮力的对抗训练可以正则化网络以减少过拟合。然而,Moosavi-Dezfooli指出,无论添加多少对抗样本,都存在新的对抗攻击样本可以再次欺骗网络。

1.2 Data compression as defense

  由于大多数训练图像都是JPG格式,Dziugaite等人使用JPG图像压缩的方法来减少对抗扰动对准确率的影响。实验证明该方法对部分对抗攻击算法有效。但通常仅采用压缩方法是远远不够的,并且压缩图像时同时也会降低正常分类的准确率。之后提出的PCA压缩方法也有同样的缺点。

1.3 Foveation based defense

  Luo等人证明,用中央凹(foveation)机制(在不同的图像区域应用神经网络)可以防御L-BFGS和FGSM生成的对抗扰动。这种方法是基于以下假设:在大型数据集上训练的基于CNN的分类器对图像中对象的缩放和平移变化具有鲁棒性,但是扰动不具有这种特性。但这种方法还未证明可以对抗更强的对抗攻击。

1.4 Data randomization and other methods

  Xie等人发现对训练图像引入随机缩放可以减弱对抗攻击的强度。除此之外,其它方法还包括为对抗样本增加随机的补丁、在训练过程中进行图像增强等。

2. 修改网络

  除了本节最后一部分是仅探测方法,其他部分都是完全防御。

2.1 Deep Contractive Networks

  人们观察到简单地将去噪自编码器(Denoising Auto Encoders)堆叠到原来的网络上只会使其变得更加脆弱,因而Gu和Rigazio引入了深度压缩网络(Deep Contractive Networks),其中使用了和压缩自编码器(Contractive Auto Encoders)类似的平滑度惩罚项。它只测试成功防御了L-BGFS。

2.2 Gradient regularization/masking

  这种方法训练可微分模型(例如深度神经网络),同时惩罚导致输出相对于输入产生变化的变化程度。结果表明,这种方法与蛮力对抗训练相结合,可以对FGSM和JSMA等攻击产生非常好的鲁棒性。在次之前,Lyu等人使用了惩罚网络模型的损失函数梯度的概念,以便在网络中结合鲁棒性来抵抗基于L-BFGS和FGSM的攻击。Shaham等人试图通过在每次参数更新时也最小化模型相对于对抗样本的损失来改善神经网络的局部稳定性。在另一项相关工作中,Nguyen和Sinha通过在网络的logit输出中添加噪声,实现了基于masking的对于C&W攻击的防御。

2.3 Defensive distillation

  Distillation 是指将复杂网络的知识迁移到简单网络上,由 Hinton提出。Papernot利用这种技术提出了Defensive distillation。使用训练数据的类概率向量的形式来提取知识,并将其反馈用来训练原始模型。 结果表明,这样做可以提高网络的弹性,使其适应图像中的微小扰动。在后续工作中,Papernot等人还通过解决之前工作中遇到的数值不稳定性问题进一步扩展了防御性蒸馏方法。C&W方法据称可以成功攻破这种防御机制。

2.4 Biologically inspired protection

  使用类似与生物大脑中非线性树突计算的高度非线性激活函数以防御对抗攻击。考虑到Goodfellow等人的线性假设,这项工作似乎进一步将现代神经网络对于对抗样本的敏感性归咎于了线性激活函数。Brendel和Bethge声称由于计算的数量限制,攻击在生物学启发的保护上失败了。他们称再次稳定计算可以成功攻击受保护的网络。

2.5 Parseval Networks

  这些网络通过控制网络的全局Lipschitz常数来采用分层正则化。考虑到网络在每一层可以被视为函数的组合,通过为这些函数保持小的Lipschitz常数,可以对小的输入扰动产生鲁棒性。Cisse等人提出通过用“parseval紧框架”对它们进行参数化来控制网络权重矩阵的频谱范数来做到这一点。

2.6 DeepCloak

  Gao等人提出在分类层(输出层)之前插入一层masking层。masking层通过前向传递一对原始图像和对抗图像进行训练,并对这些成对图像的前一层的输出特征之间的差异进行编码。作者认为,masking层中最主要的权重对应于网络中最敏感的特征(就对抗攻击而言)。因此,在分类时,通过强制masking层的主要权重为零来掩盖这些特征。

3. 使用附加网络


支付宝打赏 微信打赏

您的打赏是对我最大的鼓励!


Share
Comments
Advertisements