前言
本篇博客出于学习交流目的,主要是用来记录自己学习中遇到的问题和心路历程,方便之后回顾。过程中可能引用其他大牛的博客,文末会给出相应链接,侵删!
这篇博客记录大部分来自一篇Survey,文章总结了目前最常见的12种攻击方法和15种防御方法。但是又不是存翻译,中间可能夹杂着一些自己的理解和废话,介意的可以看文末的其他参考链接。由于篇幅太长博客分为上、下两部分,其中,
上部分是基础术语和实验室环境下以及现实环境下的现有攻击技术,下部分是对对抗样本存在原因的分析以及介绍常见的防御方法。
参考文献:Threat of Adversarial Attacks on Deep Learning in Computer Vision: A
Survey <https://arxiv.org/abs/1801.00553>
正文
研究背景:
深度学习近几年在各个领域的贡献都很引人注目。自驾驶汽车,监视,恶意代码检测,无人机和机器人领域,语音指令识别等等这些都涉及到安全问题,并且这些基于机器视觉的解决方案在我们的生活中都扮演了很重要的角色。
存在问题:
现代深度学习网络虽然精确度越来越高,但是,它们也被发现是及其容易受到对抗攻击的影响的。以分类模型为例,哪怕很小的一点扰动,都会使分类结果出错,并且机器觉得自己分对了,并且十分有把握。这就引起了学者的关注。不仅图像,现实事物也可能被改造为对抗样本,具有很强的现实意义。
对抗攻击中的一些术语:
对抗图像/对抗样本(Adversarial example/image):
对抗样本是对干净图像进行处理后的样本,被故意扰乱(如加噪声等)以达到迷惑或者愚弄机器学习技术的目的,包括深度神经网络。
对抗扰动(Adversarial perturbation):对抗扰动是添加到干净图像中的噪声,使其成为一个对抗样本。
对抗性训练(Adversarial training):对抗性训练使用除了干净的图像之外的对抗样本来训练机器学习模型。
对手(Adversary):对手通常指创建一个对抗样本的代理。但是在某些情况下,我们也称对抗样本本身为对手。
黑盒攻击(Black-box attacks):
黑盒攻击是在不了解一个目标模型的具体情况下,针对该模型,生成了对抗样本(测试阶段)。在某些情况下,假设对手对模型的了解有限(例如,它的训练过程或者架构),但绝对不知道模型参数。在其他情况下,使用任何关于目标模型的信息称为半黑盒攻击。这篇文献使用前一种约定。
白盒攻击(White-box attacks):白盒攻击假设具备了目标模型的完整知识,包括其参数值、体系结构、训练方法,在某些情况下还包括训练数据。
检测器(Detector):检测器是一种(仅)检测图像是否为对抗样本的机制。
欺骗率(Fooling ratio/rate):欺骗率表示在图像被扰动后,经过训练的模型改变其预测标签的百分比。
一次性/单步方法(One-shot/one-step methods):一次性/单步法通过执行单步计算产生对抗性扰动,例如计算一次模型的损失梯度。与之相反的是
迭代方法( iterative methods),它多次执行相同的计算以得到一个单独的扰动。后者的计算成本通常很高。
近似无法察觉(Quasi-imperceptible):近似无法察觉扰动从人类感知而言对图像影响很小。
修正器(Rectifier):修正器修改一个对抗样本来恢复这个目标模型的预测结果同该样本未扰动前的预测。
针对性攻击(Targeted attacks):
有针对性的攻击欺骗了一个模型,使对抗性图像错误地预测成特定标签。它们与非目标攻击相反,在非目标攻击中,被预测的对抗图像的标签是无关的,只要它不是正确的标签。
威胁模型(Threat model):威胁模型指的是一种方法所考虑的潜在攻击类型,例如黑盒攻击。
可转移性(Transferability):可转移性指的是一个对抗样本具有可转移能力,即使是除了用来产生它的模型以外,它仍然有效。
通用扰动(Universal perturbation):
通用扰动能够在任何图像上扰动并高概率欺骗一个给定模型。值得注意的是,通用性指的是一种与图像无关的扰动性质,区别于有很好的可转移性。
现有攻击方法
现有攻击方法文章中针对分类问题共列出来12种,并讨论了其他问题的攻击。攻击分为实验环境和现实环境,首先是实验室环境下分类/识别问题:
1、Box-constrained L-BFGS https://arxiv.org/abs/1312.6199
<https://arxiv.org/abs/1312.6199>
Szegedy等人首次证明了可以通过对图像添加小量的人类察觉不到的扰动误导神经网络做出误分类。他们首先尝试求解让神经网络做出误分类的最小扰动的方程。但由于问题的复杂度太高,他们转而求解简化后的问题,即寻找最小的损失函数添加项,使得神经网络做出误分类,这就将问题转化成了凸优化过程。下面为图例:
2、Fast Gradient Sign Method (FGSM) https://arxiv.org/abs/1412.6572
<https://arxiv.org/abs/1412.6572>
Szegedy 等人发现可以通过对抗训练提高深度神经网络的鲁棒性,从而提升防御对抗样本攻击的能力。GoodFellow[23]
等人开发了一种能有效计算对抗扰动的方法。而求解对抗扰动的方法在原文中就被称为 FGSM。FGSM方法证实了现代深层神经网络的设计的高维线性性。
Kurakin等人提出了 FGSM 的「one-step target
class」的变体。通过用识别概率最小的类别(目标类别)代替对抗扰动中的类别变量,再将原始图像减去该扰动,原始图像就变成了对抗样本,并能输出目标类别。
学者们还试验了利用不同的范式进行归一化后的结果进行生成对抗样本。
3、Basic & Least-Likely-Class Iterative Methods https://arxiv.org/abs/1607.02533
<https://arxiv.org/abs/1607.02533>
one-step 方法通过沿一方向做一大步运算,增大分类器的损失函数而进行图像扰动,这个想法的一个直观的扩展为通过多个小步增大损失函数的变体,从而我们得到
Basic Iterative Methods(BIM)。而该方法的变体和前述方法类似,通过用识别概率最小的类别(目标类别)代替对抗扰动中的类别变量,而得到
Least-Likely-Class Iterative Methods(ILCM),由该方法生成的对抗样本已经让Inception v3模型受到了严重影响。
4、Jacobian-based Saliency Map Attack (JSMA) https://arxiv.org/abs/1511.07528
<https://arxiv.org/abs/1511.07528>
对抗攻击文献中通常使用的方法是限制扰动的l∞l∞或l2l2范数的值以使对抗样本中的扰动无法被人察觉。但 JSMA提出了限制扰动的l0l0
范数的方法来产生对抗性攻击。在物理上,这意味着目标是只修改图像中的几个像素,而不是扰乱整个图像来欺骗分类器。
算法生成所需的对抗性图像的关键可以理解如下。该算法一次修改一个干净图像的像素,并监测变化对结果分类的影响。通过使用网络层的输出的梯度来计算一个显著性图来执行监控。在这张图中,一个较大的值显示出了一个较高的可能性预测成目标类别,而非正确的类别。因此,该算法执行有针对性的欺骗。一旦计算出像素图,算法选择最有效的像素来欺骗网络并改变它。这个过程会重复,直到最大允许的像素数量在对抗性图像中被改变或者在欺骗成功。
5、One Pixel Attack https://arxiv.org/abs/1710.08864
<https://arxiv.org/abs/1710.08864>
这是一种极端的对抗攻击方法,仅改变图像中的一个像素值就可以实现对抗攻击。Su等人使用了差分进化算法,对每个像素进行迭代地修改生成子图像,并与母图像对比,根据选择标准保留攻击效果最好的子图像,实现对抗攻击。这种对抗攻击不需要知道网络参数或梯度的任何信息。下面为图例:
这个链接有更详细的描述:修改一个像素,就能让神经网络识别图像出错
<https://blog.csdn.net/Uwr44UOuQcNsUQb60zk2/article/details/78372154>
6、Carlini and Wagner Attacks (C&W) https://arxiv.org/abs/1608.04644
<https://arxiv.org/abs/1608.04644>
Carlini 和 Wagner[36] 提出了三种对抗攻击方法,通过限制 l∞l∞、l2l2和l0l0范数使得扰动近似无法被察觉。实验证明
defensive distillation(后面会说,一种有效缓解对抗攻的方法) 完全无法防御这三种攻击。该算法生成的对抗扰动可以从 unsecured
的网络(没有蒸馏)迁移到 secured 的网络(蒸馏)上,从而实现黑箱攻击。
受C&W启发,有学者提出了Zeroth Order Optimization (ZOO)方法,直接估计目标模型的梯度来生成对抗样本。
7、DeepFool https://arxiv.org/abs/1511.04599 <https://arxiv.org/abs/1511.04599>
Moosavi-Dezfooli
等人通过迭代计算的方法生成最小规范对抗扰动,该算法通过一个小的向量来扰动图像,将位于分类边界内的图像逐步推到边界外,直到出现错误分类。作者证明他们生成的扰动比
FGSM 更小,同时有相似的欺骗率。
8、Universal Adversarial Perturbations https://arxiv.org/abs/1610.08401
<https://arxiv.org/abs/1610.08401>
诸如 FGSM 、 ILCM 、 DeepFool 等方法只能生成单张图像的对抗扰动,而 Universal Adversarial
Perturbations 能生成对任何图像实现攻击的扰动,这些扰动同样对人类是几乎不可察觉的。该论文中使用的迭代方法和 DeepFool
相似,都是用对抗扰动将图像推出分类边界,不过同一个扰动针对的是所有的图像。虽然文中只针对单个网络(
ResNet)进行攻击,但已证明这种扰动可以泛化到其它网络上,尤其是具有相似结构的网络。
此外,作者还扩展了一个方法doubly universal;Khrulkov等 <https://arxiv.org/abs/1709.03582>
也提出了一种方法,将通用扰动作为网络的特征映射的雅可比矩阵的奇异向量,这使得仅使用少量图像就可以实现相对较高的欺骗率。另一种产生通用扰动的方法是Mopuri等
<https://arxiv.org/abs/1707.05572>的快速特性。它们的方法产生了独立于数据的通用扰动。下面为图例:
9、UPSET and ANGRI https://arxiv.org/abs/1707.01159
<https://arxiv.org/abs/1707.01159>
Sarkar等人提出了两个黑箱攻击算法,UPSET ( Universal Perturbations for Steering to Exact
Targets)和 ANGRI(Antagonistic Network for Generating Rogue Images for targeted
fooling of deep neural networks)。UPSET
的能力来源于残差梯度网络,可以为特定的目标类别生成对抗扰动,使得该扰动添加到任何图像时都可以将该图像分类成目标类别。相对于 UPSET
的「图像不可察觉」扰动,ANGRI 生成的是「图像特定」的扰动。它们都在 MNIST 和 CIFAR 数据集上获得了高欺骗率。
10、Houdini https://arxiv.org/abs/1707.05373 <https://arxiv.org/abs/1707.05373>
Houdini是一种用于欺骗基于梯度的机器学习算法的方法,通过生成特定于任务损失函数的对抗样本实现对抗攻击,即利用网络的可微损失函数的梯度信息生成对抗扰动。除了图像分类网络,该算法还可以用于欺骗语音识别网络(谷歌语音等)。
11、Adversarial Transformation Networks (ATNs) https://arxiv.org/abs/1703.09387
<https://arxiv.org/abs/1703.09387>
Baluja 和
Fischer训练了多个前馈神经网络来生成对抗样本,可用于攻击一个或多个目标网络。经过训练的模型被称为对抗变换网络(ATNs)。该算法通过最小化一个联合损失函数来生成对抗样本,该损失函数有两个部分,第一部分使对抗样本和原始图像保持相似,第二部分使对抗样本被错误分类。
同样的研究方向, Hayex and Danezis <https://arxiv.org/abs/1708.05207>
同样用攻击神经网络训练对抗样本进行黑盒攻击,近期结果表明,虽然生成的对抗样本仍旧可察觉和原始图像的区别,但是欺骗率非常的高。
下表提供了以上这12种攻击的主要属性的摘要。
12、Miscellaneous Attacks 其它攻击
除了常见的12种攻击方法,还有以下研究攻击手段:
Sabour等人 <https://arxiv.org/abs/1511.05122>
通过改变深层神经网络的内部层,展示了产生对抗性的例子的可能性。作者证明了将对抗性图像表示的内部网络用来类似来自不同类的图像的表示的方法是可实现的。
Papernot等 <https://arxiv.org/abs/1605.07277>
研究了对抗性攻击对深度学习和其他机器学习技术的可转移性,并引入了进一步的可转移性攻击。
Narodytska和Kasiviswanathan <https://arxiv.org/abs/1612.06299>
也引入了进一步的黑盒攻击,这些攻击通过改变图像中仅有的几个像素值,有效地欺骗了神经网络。
Liu等人 <https://arxiv.org/abs/1711.05934>
介绍了“爱扑塞隆社区”的攻击,这种攻击被证明可以欺骗防御性的蒸馏网络,在白盒攻击中取得了100%的成功。
Oh等人 <https://arxiv.org/abs/1703.09471>
从博弈论的角度对对抗性攻击进行了分析,并提出了一种策略来对抗针对深度神经网络的对抗性攻击所采取的对抗措施。
Mpouri等 <https://arxiv.org/abs/1707.05572>开发了一种数据独立的方法来为深层网络模型生成通用的对抗扰动。
Hosseini等人 <https://arxiv.org/abs/1703.06857>
引入了语义对抗样本——输入图像代表人类的语义相同但深层神经网络对它们错误分类的对象。他们使用图像的底片作为语义对抗样本。
Kanbak等 <https://arxiv.org/abs/1711.09115>
在DeepFool方法之后引入了ManiFool算法,用于测量深度神经网络对几何扰动图像的鲁棒性。
Dong等 <https://arxiv.org/abs/1710.06081>提出了一种迭代方法来提高对黑盒场景的对抗性攻击。
Carlini和Wagner <https://arxiv.org/abs/1709.10207>
也证明了10种不同的对扰动的防御可以再次被使用新的损失函数攻击所击败。
Rozsa等 <https://arxiv.org/abs/1605.01775>
还提出了一种热/冷方法,用于生成单个图像的多个可能的对抗样本。有趣的是,对抗的扰动不仅被添加到图像中,还降低了深度学习分类器的准确性。
Yoo等人 <https://arxiv.org/abs/1711.09681>最近提出了一种方法,在对图像的细微扰动的帮助下,对每一项的分类也稍加改进。
实验室环境下其他问题攻击
许多工作的作者已经公开了其实现的源代码,可以去相关网站下载,下面是除分类问题以外的对抗攻击:
Attacks on Autoencoders and Generative Models 在自编码器和生成模型上的攻击
Tabacof等 <http://arxiv.org/abs/1612.00155>
研究了自动编码器的对抗性攻击,并提出了一种扭曲输入图像(使其对抗性)的技术,从而误导自动编码器重构完全不同的图像。他们的方法攻击了神经网络的内部表示,使得对抗性图像的表示与目标图像相似。然而,
报道 <http://arxiv.org/abs/1612.00155>称,自动编码器似乎比典型的分类器网络更能抵御对抗性攻击。Kos等
<https://arxiv.org/abs/1702.06832>
还探讨了获得深度成性模型的对抗样本的方法,例如变分自动编码器(VAE)和VAE-生成的对抗性网络(VAE- gans)。GANs,例如方法
<https://arxiv.org/abs/1312.6114>
现在在计算机视觉应用程序中变得非常流行,因为它们能够学习数据分布并使用这些分布生成真实的图像。作者介绍了针对VAE和VAE- gans的三种不同类型的攻击。
Attack on Recurrent Neural Networks 在循环神经网络上的攻击
Papernot等 <https://arxiv.org/abs/1604.08275v1>
成功地生成了递归神经网络的对抗性输入序列。Papernot等证明了为前馈神经网络计算对抗样本的算法(例如FGSM
<http://arxiv.org/abs/1412.6572>)也适用于欺骗 RNNs。长短时记忆(LSTM) RNN体系结构也成功被欺骗。
Attacks on Deep Reinforcement Learning 深度强化学习上的攻击
Lin等 <http://arxiv.org/abs/1703.06748>
提出了两种不同的针对深度强化学习训练的代理的对抗性攻击。在第一种攻击中,被称为策略定时攻击,对手通过在一段中的一小部分时间步骤中攻击它来最小化对代理的奖励值。提出了一种方法来确定什么时候应该制作和应用对抗样本,从而使攻击不被发现。在第二种攻击中,被称为迷人攻击,对手通过集成生成模型和规划算法将代理引诱到指定的目标状态。生成模型用于预测代理的未来状态,而规划算法生成用于引诱它的操作。这些攻击成功地测试了由最先进的深度强化学习算法训练的代理。
Huang等 <http://arxiv.org/abs/1702.02284>
证明了FGSM也可以用于在深度强化学习的背景下显著降低训练策略的性能。他们的威胁模型认为对手能够对政策的原始输入产生微小的扰动。所进行的实验表明,即使在黑箱场景中,也很容易用对抗样本欺骗将神经网络策略。关于这项工作的视频和进一步的细节可以在
http://rll.berkeley.edu/adversarial/ <http://rll.berkeley.edu/adversarial/>上找到。
Attacks on Semantic Segmentation and Object Detection 在语义切割和物体检测上的攻击
语义图像分割和对象检测属于计算机视觉的主流问题。Metzen等 <https://arxiv.org/abs/1704.05712v1>[67]受
Moosavi-Dezfooli <https://arxiv.org/abs/1610.08401>
的启发,发现了图像近似不可察觉扰动的存在,它可以欺骗一个深层的神经网络,从而明显地破坏图像的预测分割。此外,他们还表明,可以计算出噪声向量,它可以从分割的类中移除特定的类,同时保持图像分割大部分不变(例如,从道路场景中移除行人)。
Arnab等 <http://arxiv.org/abs/1711.09856>
也评估了FGSM基于语义分割的对抗性攻击,并指出对这些攻击的许多观察并没有直接转移到分割任务中。
Xie等 <http://arxiv.org/abs/1703.08603>
计算了在观察下的语义分割和对象检测的对抗样本,可以将这些任务定义为在图像中对多个目标进行分类——目标是一个像素或一个可接受的分割区域,以及在检测中的
object proposal。他们的方法,称为密集对手生成,通过一组
pixels/proposal来优化一个损失函数,以产生对抗样本。所生成的样本被测试来欺骗各种基于深度学习的分割和检测方法。他们的实验评价不仅证明了目标网络的成功欺骗,还表明了所产生的扰动在不同的网络模型中得到了很好的推广。在图4中,根据该方法,展示了一个用于分割和检测的网络欺骗的典型样本。下面为图例:
现实场景下的对抗攻击
Attacks on Face Attributes 面部特征攻击
人脸图像的性别(性别分类器)被修改,而人脸匹配系统的生物识别功能保持不变,下面为图例:
Cell-phone camera attack 手机相机攻击
Kurakin等 <https://arxiv.org/abs/1607.02533>
首先证明了对抗性攻击的威胁也存在于物质世界中。为了说明这一点,他们打印了对抗性的图像,并从手机摄像头拍下了快照。这些图像进行对象分类。结果显示,即使是通过相机,也有很大一部分图像被错误分类。下面为图例:
Road sign attack 路标攻击
攻击者打印一个路标扰动图像替换真正标志或者贴纸扰动,打印一些贴纸形成扰动。下面为图例:
这个链接有更详细的描述:几张贴纸就让神经网络看不懂道路标志,伯克利为真实环境生成对抗样本
<http://www.tuan18.org/forum.php?mod=viewthread&tid=407&extra=>
Generic adversarial 3D objects 生成敌对3D对象
Athalye等 <https://arxiv.org/abs/1707.07397>
介绍了一种构造三维物体的方法,该方法可以在各种角度和视点上欺骗神经网络。他们的(EOT)框架能够构建在整个图像/对象分布上的对抗样本。他们的端到端方法可以打印任意的对抗3D对象。下面为图例:
Cyberspace attacks 网络攻击
Papernot等 <https://arxiv.org/abs/1602.02697v3>
在现实世界中,对网络空间中的深层神经网络分类器发起了第一次攻击。他们在合成数据上为目标黑盒分类器训练了一个替代网络,并通过MetaMind、Amazon和谷歌实例化攻击远程托管的神经网络,结果显示误分类欺骗率很高。实际上,攻击者在其威胁模型中唯一可用的信息是攻击者输入的目标网络的输出标签。
Robotic Vision & Visual QA Attacks 机器人视觉和视觉QA攻击
Melis等人 <https://arxiv.org/abs/1708.06939>证明了机器人对输入图像的对抗性操作的脆弱性。Xu等
<http://arxiv.org/abs/1709.08693>
对视觉图灵测试产生了对抗性攻击,也称为视觉问题回答(VQA)。作者指出,使用深度神经网络的常用的复合和非复合VQA体系结构容易受到对抗性攻击的攻击。此外,对抗样本可以在模型之间转移。
跳转:机器视觉中使用深度学习所面临的对抗攻击——Survey(下)
<https://blog.csdn.net/qq_35414569/article/details/80434916>
扩展
以下是其他学者针对部分具体攻击方法做的总结:
经得住考验的「假图片」:用TensorFlow为神经网络生成对抗样本
<https://www.jiqizhixin.com/articles/2017-08-11-9>
既能欺骗机器,也能迷惑人类!Goodfellow等人提出新一代对抗样本 <http://www.sohu.com/a/223775505_129720>
利用三个关键点来测试对抗样本是否会对人类视觉系统产生可观测的影响:首先,研究者使用近期的黑箱对抗样本构建技术为未获取模型架构或参数的目标模型创建对抗样本。第二,研究者调整机器学习模型来模仿人类的初始视觉处理,使对抗样本更有可能从模型迁移至人类观察者。第三,研究者在时限性环境中评估人类观察者的分类结果,以使对抗样本对人类感知的细微影响也能被检测到。
几张贴纸就让神经网络看不懂道路标志,伯克利为真实环境生成对抗样本
<http://www.tuan18.org/forum.php?mod=viewthread&tid=407&extra=>
神奇的面包机!谷歌造出对抗样本的实体版 <http://www.sohu.com/a/214573691_465975>
继图像识别后,图像标注系统也被对抗样本攻陷! <https://www.jiqizhixin.com/articles/2017-12-10-4>
修改一个像素,就能让神经网络识别图像出错
<https://blog.csdn.net/Uwr44UOuQcNsUQb60zk2/article/details/78372154>
参考链接:
http://www.sohu.com/a/224888255_129720 <http://www.sohu.com/a/224888255_129720>
http://baijiahao.baidu.com/s?id=1594095099083865391&wfr=spider&for=pc
<http://baijiahao.baidu.com/s?id=1594095099083865391&wfr=spider&for=pc>
http://3g.163.com/dy/article/DC5JFUQS0511FERQ.html
<http://3g.163.com/dy/article/DC5JFUQS0511FERQ.html>
热门工具 换一换