-
深度学习中对抗样本的构造及防御研究
2021-01-20 05:01:33以当前深度学习面临的安全威胁为出发点,介绍了深度学习中的对抗样本问题,梳理了现有的对抗样本存在性解释,回顾了经典的对抗样本构造方法并对其进行了分类,简述了近年来部分对抗样本在不同场景中的应用实例,对比... -
深度学习之对抗样本问题
2020-06-08 15:13:13深度学习之对抗样本问题 2006 年,Geoffrey Hinton 提出了深度学习。受益于大数据的出现和大规模计算能力的提升,深度学习已然成为最活跃的计算机研究领域之一。深度学习的多层非线性结构使其具备强大的特征表达...深度学习之对抗样本问题
2006 年,Geoffrey Hinton 提出了深度学习。受益于大数据的出现和大规模计算能力的提升,深度学习已然成为最活跃的计算机研究领域之一。深度学习的多层非线性结构使其具备强大的特征表达能力和对复杂任务的建模能力。最近几年,深度学习的发展也带动了一系列的研究。尤其是在图像识别领域,在一些标准测试集上的试验表明,深度模型的识别能力已经可以达到人类的水平。但是,人们还是会产生一个疑问,对于一个非正常的输入,深度模型是否依然能够产生满意的结果。的确,最近有研究者开始关注深度模型抗干扰能力的研究,也就是关于深度学习对抗样本的问题。对于这一新的问题,本文对它进行一个简单的介绍。文章由黄立威、张天雷整理。
什么是深度学习对抗样本
Christian Szegedy等人在ICLR2014发表的论文中,他们提出了对抗样本(Adversarial examples)的概念,即在数据集中通过故意添加细微的干扰所形成的输入样本,受干扰之后的输入导致模型以高置信度给出一个错误的输出。在他们的论文中,他们发现包括卷积神经网络(Convolutional Neural Network, CNN)在内的深度学习模型对于对抗样本都具有极高的脆弱性。他们的研究提到,很多情况下,在训练集的不同子集上训练得到的具有不同结构的模型都会对相同的对抗样本实现误分,这意味着对抗样本成为了训练算法的一个盲点。Anh Nguyen等人在CVPR2015上发表的论文中,他们发现面对一些人类完全无法识别的样本(论文中称为Fooling Examples),可是深度学习模型会以高置信度将它们进行分类。这些研究的提出,迅速抓住了公众的注意力,有人将其当做是深度学习的深度缺陷,可是kdnuggets上的一篇文章(Deep Learning’s Deep Flaws)’s Deep Flaws指出,事实上深度学习对于对抗样本的脆弱性并不是深度学习所独有的,在很多的机器学习模型中普遍存在,因此进一步研究有利于抵抗对抗样本的算法实际上有利于整个机器学习领域的进步。
深度学习对于对抗样本表现的脆弱性产生的原因
是什么原因造成了深度学习对于对抗样本表现出脆弱性。一个推断性的解释是深度神经网络的高度非线性特征,以及纯粹的监督学习模型中不充分的模型平均和不充分的正则化所导致的过拟合。Ian Goodfellow 在ICLR2015年的论文中,通过在一个线性模型加入对抗干扰,发现只要线性模型的输入拥有足够的维度(事实上大部分情况下,模型输入的维度都比较大,因为维度过小的输入会导致模型的准确率过低),线性模型也对对抗样本表现出明显的脆弱性,这也驳斥了关于对抗样本是因为模型的高度非线性的解释。相反深度学习的对抗样本是由于模型的线性特征。
深度学习对抗样本泛化的原因
很多的时候,两个模型即使有不同的结构并在不同的训练集上被训练,一种模型的对抗样本在另一个模型中也同样会被误分,甚至它们还会将对抗样本误分为相同的类。这是因为对抗样本与模型的权值向量高度吻合,同时为了训练执行相同的任务,不同的模型学习了相似的函数。这种泛化特征意味着如果有人希望对模型进行恶意攻击,攻击者根本不必访问需要攻击的目标模型,就可以通过训练自己的模型来产生对抗样本,然后将这些对抗样本部署到他们需要攻击的模型中。
深度学习的对抗训练
所谓深度学习对抗训练,就是通过在对抗样本上训练模型。既然深度学习的对抗样本是由于模型的线性特征所导致,那就可以设计一种快速的方法来产生对抗样本进行对抗训练。Szegedy等人的研究认为对抗样本可以通过使用标准正则化技术解决,可是Goodfellow等人使用常见的正则化方法,如dropout, 预训练和模型平均进行测试,并没能显著地提高深度模型对于对抗样本的抗干扰能力。根据神经网络的Universal Approximation Theory,至少拥有一个隐层的神经网络只要拥有足够的隐层单元,就可以任意逼近任何一个非线性函数,这是浅层模型所不具备的。因此,对于解决对抗样本问题,Goodfellow等人认为深度学习至少有希望的,而浅层模型却不太可能。Goodfellow等人通过利用对抗样本训练,对抗样本上的误分率被大大降低。同时他们发现选择原始模型产生的对抗样本作为训练数据可以训练得到具有更高抵抗力的模型。此外,他们还发现,对于误分的对抗样本,对抗训练得到的模型的置信度依然很高。所以通过对抗训练能够提高深度学习的对于对抗样本的抗干扰能力。
几个深度学习对抗样本的事实
对于深度学习对抗样本,Ian Goodfellow认为目前存在一些误解,为了对这些误解进行进一步澄清,Kdnuggets网站的编辑邀请Goodfellow撰文Deep Learning Adversarial Examples – Clarifying Misconceptions。文章指出对抗样本在实际当中是经常可能出现的,而且在小的数据当中也能够经常被发现,例如试图骗过垃圾邮件检测系统的垃圾邮件。Goodfellow还指出识别一个对抗样本,然后拒绝对它进行分类并不是一个最佳的选择,通过有效的算法,能够克服数据干扰,正确识别对抗样本中的信息才是最终目的。此外,Goodfellow指出,人类并不会像现代机器学习算法那样被对抗样本所影响。如果我们的大脑会和机器学习模型一样犯同样的错误,那么由于对抗样本的在不同模型上的泛化属性,机器学习模型的对抗样本将会使我们产生视觉错乱。
总之,对抗样本是一个非常难的问题,研究如何克服它们可以帮助避免潜在的安全问题,并且帮助机器学习算法提高解决问题的准确性。某种意义上来说,设计一个易于训练的线性模型和设计一个能够抵御对抗干扰的非线性模型之间存在根本的矛盾,从长远来看,设计更强大的优化方法以训练更加非线性的模型是未来需要努力的方向。
-
深度神经网络中的对抗样本与学习
2017-04-17 10:06:42在kdnuggets此前发布的文章(Deep Learning’s Deep Flaws)’s Deep Flaws中,深度学习大神Yoshua Bengio和他的博士生、Google科学家Ian Goodfellow在评论中与作者就深度学习对抗样本(Adversarial Examples)展开了...概述
最近 大半年,人工智能领域成为科技领域提到的最多的名词之一。在kdnuggets此前发布的文章(Deep Learning’s Deep Flaws)’s Deep Flaws中,深度学习大神Yoshua Bengio和他的博士生、Google科学家Ian Goodfellow在评论中与作者就深度学习对抗样本(Adversarial Examples)展开了热烈的讨论,kdnuggets编辑邀请Ian Goodfellow撰文详解他的观点以及他在这方面的工作。那么什么是对抗样本,对抗样本又是如何生成的呢?
对抗样本
对抗样本(Adversarial Examples)的概念最早是Christian Szegedy 等人在ICLR2014发表的论文中提出来的,即在数据集中通过故意添加细微的干扰所形成输入样本,受干扰之后的输入导致模型以高置信度给出了一个错误的输出。
在他们的论文中,他们发现包括卷积神经网络(Convolutional Neural Network, CNN)在内的深度学习模型对于对抗样本都具有极高的脆弱性。他们的研究提到,很多情况下,在训练集的不同子集上训练得到的具有不同结构的模型都会对相同的对抗样本实现误分,这意味着对抗样本成为了训练算法的一个盲点。二将这一矛头直指深度学习,似乎要为深度学习热潮降一降温。Anh Nguyen等人在CVPR2015上发表的论文中,面对一些人类完全无法识别的样本(论文中称为 Fooling Examples),深度学习模型居然会以高置信度将它们进行分类,例如将噪声识别为狮子。
对于上面的漏洞,研究提出,一方面促使人们更深入思考机器和人的视觉的真正差异所在,一方面,加上深度模型本身具有的不可解释性缺陷,也让一些人开始认为深度学习不是deep learning, 而是deep flaw.对深度学习来说,这多少是不公平的指责,因为 kdnuggets上的一篇文章(Deep Learning’s Deep Flaws)指出,深度学习对于对抗样本的脆弱性并不是深度学习所独有的,事实上,这在很多机器学习模型中都普遍存在(Box 大人不就说吗,all models are wrong, but some are useful),而深度学习反而可能是目前为止对对抗训练最有抵抗性的技术。如下图,原始图像以60%的置信度判断为“熊猫”,但是加入了微小的干扰,在人眼完全看不出差别的情况下却以99%的执行度归为了长臂猿。
对抗样本的根本问题
那么,导致深度模型对反抗样本力不从心的真实原因有哪些呢?一般我们知道,可能是模型过拟合导致泛化能力不够,泛化能力不够可能是由于模型均化不足或者正则不足,然而,通过更多模型均化和加入更多噪声训练等方式来应对对抗样本的企图均告失败。外一个猜测是模型的高度非线性,深度模型动辄千百万的参数个数确实让人有点不太舒服,但 Ian Goodfellow 在论文 explaining and harnessing adversarial examples 中,通过在一个线性模型中加入对抗干扰,发现只要线性模型的输入拥有足够的维度(事实上大部分情况下,模型输入的维度都比较大,因为维度过小的输入会导致模型的准确率过低,即欠拟合),线性模型也对对抗样本表现出明显的脆弱性,这驳斥了关于对抗样本是因为模型的高度非线性的解释。
事实上,该文指出,高维空间中的线性性就足以造成对抗样本,深度模型对对抗样本的无力最主要的还是由于其线性部分的存在。
如下图,展示了线性设计造成的抵抗对抗扰动的模型之间的关系。对抗样本的利用
针对上面的问题,毫无疑问,对抗样本带来了对深度学习的质疑,但其实这也提供了一个修正深度模型的机会,因为我们可以反过来利用对抗样本来提高模型的抗干扰能力,因此有了对抗训练(adversarial training) 的概念。
随着对对抗样本研究的深入,可以利用对抗样本生成对抗网络(GANs)。在 GANs 中,包含一个生成模型G和一个判别模型D,D要判别样本是来自G还是真实数据集,而G的目标是生成能够骗过D的对抗样本,可以将G看做假币生产者,而D就是警察,通过G和D的不断交手,彼此的技能都会逐渐提高,最终使得G生产的假币能够以假乱真。对抗样本的防御
Papernot等人表明蒸馏技术(使用概率分布作为目标训练)也可以用于大大降低网络对抗扰动的脆弱性。对于MNIST数据集训练的DNN,防御性蒸馏将对抗样本的成功率从95.89%降低到0.45%!针对CIFAR数据集而言,成功率由87.89%降至5.11%。事实上,防御性蒸馏可以降低DNN对输入扰动的灵敏度。
以下是MNIST和CIFAR的一些示例,显示正当样本和对抗样本:
下面介绍防御性蒸馏如何工作以及其原理。考虑一般的对抗框架,首先搞清楚工作方向是围绕给定的输入样本,然后使用这些信息选择输入维度之间的扰动。
如果梯度方向陡峭,就会对小扰动产生很大的影响。为了防止这种扰动,必须通过网络更好地泛化训练数据集以外的样本来平滑训练过程中学到的模型。DNN对对抗样本的“鲁棒性”与给定样本邻域相一致地分类输入相关。
为了实现这种平滑,蒸馏防御首先按照正常的方式训练分类网络,然后用从第一个模型学到的概率向量训练另外一个完全相同架构的新模型。
下图展示蒸馏温度如何影响模型对抗样本的防御能力。直观上,温度越高防御越好。
防御性蒸馏仅适用于基于能量概率分布的DNN模型,因此建立通用对抗样本强大的机器学习模型的重要一步。
关于对抗样本的更深的解决方案请查看对抗样本防御
-
黑盒威胁模型下深度学习对抗样本的生成
2021-01-13 04:07:45深度学习系统在许多任务中表现出色。但研究表明,如果在原有输入上叠加一个很小的恶意噪声,其效果就会受到严重影响。这种恶意样本被称为对抗样本。针对此前对抗样本生成方法在威胁模型下考虑的不足,本文提出了一种... -
深度学习与对抗样本
2019-08-15 16:57:201、深度学习的概念 深度学习是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些...1、深度学习的概念
深度学习是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。
同机器学习方法一样,深度学习方法也有监督学习和无监督学习之分,不同的学习框架下建立的学习模型很是不同。例如,卷积神经网络(Convolutional neural networks)就是一种深度的监督学习下的机器学习模型,而深度置信网(DBNs)就是一种无监督学习下的机器学习模型。
讨论深度学习,所谓的深度是指,网络的层数。深度超过8层的神经网络才叫深度学习。含多个隐层的多层学习模型是深度学习的架构。深度学习可以通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。 因此,“深度模型”是手段,“特征学习”是目的。深度学习强调了模型结构的深度,突出了特征学习的重要性,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。
2、深度学习的特性
2.1、其基本的架构是人工神经网络,针对不同的应用目标会有不同的表达结构,目的是为了更好的提取相应领域的特征。
2.2、神经网络具有四个基本特征:
2.2.1 非线性
非线性关系是自然界的普遍特征。大脑的智慧就是一种非线性现象。人工神经元处于激活或抑制二种不同的状态,这种行为在数学上表现为一种非线性关系。具有阈值的神经元构成的网络具有更好的性能,可以提高容错性和存储容量。
2.2.2 非局限性
一个神经网络通常由多个神经元广泛连接而成。一个系统的整体行为不仅取决于单个神经元的特征,而且可能主要由单元之间的相互作用、相互连接所决定。
2.2.3 非常定性
人工神经网络具有自适应、自组织、自学习能力。神经网络不但处理的信息可以有各种变化,而且在处理信息的同时,非线性动力系统本身也在不断变化。经常采用迭代过程描写动力系统的演化过程。
2.2.4 非凸性
一个系统的演化方向,在一定条件下将取决于某个特定的状态函数,例如能量函数,它的极值相应于系统比较稳定的状态。非凸性是指 这种函数有多个极值,故系统具有多个较稳定的平衡态,这将导致系统演化的多样性。
2.3 神经网络中包含语义信息的部分并不是在每个独立的神经元,而是整个空间
2.4 神经网络学习到的从输入到输出的映射在很大程度上是不连续的
3、深度学习的优点
1、深度学习提出了一种让计算机自动学习出模式特征的方法,并将特征学习融入到了建立模型的过程中,从而减少了人为设计的不完备性。
2、把特征学习纳入到整个过程,使目标进行归一化,围绕着一个目标来进行就行了。
3、有点像数学中的级数,能够不断逼近。是一个万能函数逼近器。(但是要生成怎样一个函数,视任务而定)。(体现了连续性归纳比离散性好)。
4、深度学习的缺点
1、对数据量要求高。为了达到很好的精度,需要大数据支撑,因为所要学习的参数多了。
2、模型正确性验证复杂且麻烦。
3、存在对抗样本问题
5、对抗样本概念
对抗样本的概念:对抗样本是指在数据集中通过故意添加细微的干扰所形成的输入样本,会导致模型以高置信度给出一个错误的输出。(这里怎么理解呢?原先样本是能通过网络分类正确的,但是经过一个细微的扰动,却分类错误了,同时这里也可以看到并不是所有使网络分类错误的样本都叫对抗样本,有些仅仅是网络欠拟合)。
6、对抗样本产生的原因分析
1)2013年,Szegedy等人在题为《Intriguing properties of nerual networks》的论文中指出了神经网络的两个有趣的特性:其一: 神经网络中包含语义信息的部分并不是在每个独立的神经元,而是整个空间; 其二是:神经网络学习到的从输入到输出的映射在很大程度上是不连续的。首先提出了对抗样本。
2)GoodFellow等人在2014年发表的《Explaining and harnessing adversarial examples》,文中提出了产生对抗攻击根本的原因猜测: 深度学习在高维空间的线性特性已经足以产生这种攻击行为。
3)在16年Boundary tilting perspective论文中提到高维空间的线性模型并没有更容易出现对抗样本现象,也并非所有线性模型都会有对抗样本存在,作者认为存在的根本原因是分类器的分类器决策面(红色)和样本manifold (黑色)不严格重合但是很贴近,稍微很小的扰动就从一个界面到另一个界面。如图:
4)在19年Andrew等人认为,对抗样本的产生可直接归因于非稳健特征的出现:某些来自数据分布模式的特征具备高度预测性,但对于人类来讲是脆弱且难以理解的。
对抗脆弱性是模型对数据中泛化较好的特征具备敏感性的直接结果。
他们的假设也对 对抗可迁移性给出了解释,对抗可迁移性即为一个模型计算的对抗扰动通常可以迁移到另一个独立训练的模型。由于任意两个模型有可能学习类似的非稳健特征,因此操控此类特征的扰动可以应用于二者。最后,该研究提出的新观点将 对抗脆弱性作为 完全{以人为中心}(human-centric)的现象,因为从标准监督学习的角度来看,非稳健特征和稳健特征具备同等的重要性。
6、如何理解对抗攻击(从高维空间线性原因理解)
GoodFellow提出的这种方法的根基是目前神经网络为了提高训练效率所使用的激活函数在局部都过于线性,怎么理解呢?
在局部看起来确实接近直线,这与前面看到的Olah对神经网络与拓扑学的对比中有些类似,在最后的表征层都是通过直线或超平面完成的分类。
GoodFellow对高维空间线性假设的实验如图:
解释一下这张图,这张图是对数据集CIFAR-10的分类器的决策边界示意图,其中每个小格子代表是CIFAR-10样本,每个小格子中,横向从左往右代表的是FGSM算法的梯度方向,纵向代表的是FGSM梯度的正交方向,白色表示模型能分类正确的情况,而彩色代表预测出错的情况,不同的颜色代表不同的错误预测分类。可以明显看出,在出错的区域都程线性分布,另外,如果横轴的方向走的不够远,即使再往其他方向都无法使模型出错,而一旦进入这个区域,就会出现大量的对抗样本。
7、对抗样本生成
当前业界主要有两大类生成对抗样本的方法,第一类是基于优化的方法,最大化模型输出error,同时最小化样本的改变,这里我们通常使用梯度下降法来进行优化;
第二类是基于模型输入输出之间的雅可比矩阵,找出对模型输出影响最大的输入进行改变。两种方法都需要知道模型的参数以实现计算。
基于的一个前提知识:
其中w是训练好的参数向量,x表示真实样本数据向量,n表示给图像加入的噪音向量,x表示加入噪音后新生成的样本,当加入足够小的n时,肉眼无法区分出x的变化,直观上左边的式子可能也不会变化很大,然而n方向与w的方向完全一致的时候,即使很小,也会使整个激活值变化很大,有多大呢?如果w是一个n维向量,而其权重的平均大小为m,那么激活值将会增加enm(e为参数)。但是神经网络是非线性的,所以直接与w同方向可能不可用。
1、FGSM
论文介绍:
生成公式:
原理解释:J是代表损失函数,其实,作者发现,y=wx+wn+b,当w维度很高的时候,wn的值就会很大。所以,在生成攻击,我们的目的是使y不一样。为啥要用损失函数呢? 在误差反向传播的过程中,x是定的,y是定的,我们是将y与y(pre)之间差距,然后,用最小二乘法反向回参数,修改的是参数w。 现在,其实我们,我们的目的是w是不变的(定的),变量是x与y,我们对y无法估算,所以用的是损失函数。将损失函数的指向性传给x,从而达到改变y的目的。
在论文中还说到,对于线性模型来说,FGSM是有效的,但是神经网络就不是百分之百成立。
2、deepfool
介绍:
deepfool这篇论文,提出robustness的量化与计算,并提出了deepfool算法。
原理解释:
这里作者,是从点到面的距离角度去考虑的。就是作者认为,将一个样本沿着分类界面的法向量方向是一定能将样本进行误分类的(如果想改变其中某点的分类结果,一定要跨过分割平面)。
作者在推导过程中是二分类问题到多分类,多分类到多分类非线性。(其中生成过程是个迭代的过程)。
1、二分类:
2、多分类:
代表的是第k个子分类器,即第k个输出。
如果是非线性的话,想法与二分类相同。
值得注意的是,本算法的输出不是最优的,但实验中已经能够大概率实现小幅度扰动了.
3、CW攻击
论文: Towards evaluating the robustness of neural networks
介绍:CW攻击是一种基于优化的攻击,攻击的名称是两个作者的首字母。
该算法将对抗样本当成是一个变量,那么现在如果要使得攻击成功就要满足两个条件(其实FGSM也是看成变量):(1)对抗样本和对应的干净样本应该差距越小越好; (2)对抗样本应该使得模型分类错,且错的那一类的概率越高越好。
公式解释: Rn对应着干净样本和对抗样本的差(即前面是对抗样本,后面是干净样本),但这里有个小trick,他把对抗样本映射到了tanh空间里面,这样做有什么好处呢?如果不做变换,那么x只能在(0,1)这个范围内变换,做了这个变换,x可以在-inf 到+inf做变换,有利于优化。
再来说说第二部分,公式中的Z(x)表示的是样本x通过模型未经过softmax的输出向量,对于干净的样本来说,这个向量的最大值对应的就是正确的类别(如果分类正确的话),现在我们将类别t(也就是我们最后想要攻击成的类别)所对应的逻辑值记为Z(x')t,将最大的值(对应类别不同于t)记为
,如果通过优化使得
变小,攻击不就离成功更近嘛。那么式子中的k是什么呢?k其实就是置信度(confidence),可以理解为,k越大,那么模型分错,且错成的那一类的概率越大。最后就是常数c这是一个超参数,用来权衡两个loss之间的关系,文中使用二分查找来确定c值。
CW是一个基于优化的攻击,主要调节的参数是c和k。
4、PGD
介绍:对FGSM的迭代扩展。
Towards Deep Learning Models Resistant to Adversarial Attacks
https://www.zybuluo.com/wuxin1994/note/916616
5、UAP
介绍: 一步攻击推导分类界面。
6、R-FGSM
论文: Adversarial Training
7、JSMA(jacobian Sailency Map)
论文:The Limitations of Deep Learning in Adversarial Setting
介绍:这篇 文章由papernot 等人发表在EuroS&P 2016会议上,是对抗样本攻击研究中非常重要的一篇文章。不同于该领域之前对抗样本的构造方法,本文主要介绍了一种新的对抗样本攻击方法,利用输入特征到输出值之间的对抗性显著性,达到只需要修改少量的输入值即可误分类的目的。该攻击方法属于targeted攻击
前向导数越大的地方越容易构建对抗样本。
算法的主要步骤有三个:
1、计算前向导数:
;
值得注意的是,前向导数计算的梯度与Backpropagation反向传播计算的梯度不同,分别是:
(1)本文前向导数是直接对神经网络函数F进行梯度计算,而Backprogation计算的梯度是对代价函数而言的;
(2)本文是对输入特定求偏导数,而Backpropagation是对神经网络的参数求偏导数的。
2、基于前向导数构造显著图S;
利用之前显著图的研究,作者扩展成对抗性显著图,用来表示输入空间中哪些特征对输出结构影响最大。为了达到将对抗样本误分类成t的目的,
的概率必须不断增大,且当j=/t时 F(x)应该不断减少,直到t = argmaxiFj(x).
3、
通过对抗性显著图确定需要修改的输入特征后,对应的特征(像素点)应该修改为多少呢?文章引入参数
表示输入特征的修改量。在MNIST实验中,作者设置参数为
。
8、对抗样本的防御
8.1、检测样本
8.2、修改网络
8.2.1防御性蒸馏
防御性蒸馏是papernot等人基于蒸馏学习(一种迁移学习)中训练深度神经网络的蒸馏法提出来的。首先简单的介绍一下蒸馏法的原理。在机器学习领域中有一种最为简单的提升模型效果的方式,在同一训练集上训练多个不同的模型,在预测阶段采用综合均值作为预测值。但是运用这样的组合模型需要太多的计算资源,特别是当单个模型都非常复杂的时候,已经有相关的研究表明,复杂模型或者组合模型中的“知识”通过合适的方式是可以迁移到一个相对简单模型之中,进而方便模型推广。有一种直观的概念就是,越是复杂的网络具有越好的描述能力,可以用来解决更为复杂的问题。我们所说的模型学习得到“知识”就是模型参数,说到底我们想要学习的是一个输入向量到输出向量的映射,而不必太过于关心中间的映射过程。
防御性蒸馏的思想就是希望将训练好的模型推广能力“知识”迁移到一个结构更为简单的网络中,或者通过简单的网络去学习复杂模型中“知识”。防御的具体思路就是:首先根据原始训练样本X和标签Y训练一个初始的深度神经网络,得到概率分布F(X)。然后在利用样本X并且将第一步的输出结果F(X)作为新的标签 训练一个架构相同、蒸馏温度T也相同的蒸馏网络,得到新的概率分布Fd(X),再利用整个网络来进行分类或预测,这样就可以有效的防御对抗样本的攻击:
原理解释:
我们在分析防御性蒸馏的原理之前,先来看一下对抗样本产生的工作框架。(cw之前的工作框架)
对抗样本的产生主要分为两步:(1)方向敏感性估计(Direction Sensitivity Estimation),是指攻击者会评估DNN模型对X样本每一个输入分量所做的改变的敏感性信息,例如FGSM这种方法就是根据神经网络的输入计算代价函数的梯度来得到敏感性信息。JSMA是根据雅可比显著图来找出影响特征点。 (2)扰动选择,是说攻击者会根据第一步中计算所得的敏感性信息选择可以以最小的扰动达到攻击目的的维度添加扰动,来生成对抗样本。 所以对于基于梯度的攻击方法的攻击效果与模型的梯度陡峭程度非常相关。
如果梯度方向陡峭,小扰动就会对模型产生很大的影响,为了防止这种扰动,必须通过网络更好地泛化训练数据集以外的样本来平滑训练过程中学到的模型梯度。当遇到这种对抗样本攻击时,改变网络结构,重新训练出一个更复杂的模型固然能防御这种攻击。防御性蒸馏就满足了这种要求。
8.2.2 去噪网络
去噪的思想是使得去噪后的对抗样本更接近于原始样本,相当于想把生成对抗样本的加入的噪声去掉,尽可能恢复成原始样本,从而对对抗样本能够准确地分类。
作者尝试使用了两个不同架构的神经网络作为去噪器来进行去噪一个是Denoising Autoencoder(DAE),另一个是Denoising Additive U-Net(DUNET)。两者结构如下:
作者首先提出了一种以像素为导向的去噪器(PGD),去噪器的损失函数为:
其中x表示原始图片,x'表示去噪后的图片,所以损失函数表示原始图片和去噪后的图片的差异,然后最小化损失函数就可以得到尽可能接近原始图片的去噪后图片。但是这种去噪器在实验过程中,出现了一个现象,就是输入经过去噪以后,正确率反而有点下降,通过实验进行分析,首先给模型输入一个干净图片,再输入一个对抗图片,然后计算每一层网络在这两张图片上表示的差异,因为去噪器不可能完全消除扰动,剩下的微小扰动在预训练好的卷积网络模型中是逐层放大的,对卷积网络的高维特征产生较大的扰动,最终使得网络得出错误的分类结果。
所以针对这个问题 作者又提出了一种以高级表示为导向的去噪器(HGD),结构如下图所示:
从图中可以看出,HGD与PGD最大的区别在于不再以去噪后图片与原始图片的差异作为损失函数,而是将去噪后的图片和原始图片都输入到预训练好的深度神经网络模型中,将最后几层的高级特征的差异作为损失函数来训练去噪器,这样就避免了PGD的扰动逐层放大的问题。定义的损失函数是:
--------------------------
对抗样本是我研究的一个小方向 以上部分含有自己观点仅供参考。
-
面向自然语言处理的深度学习对抗样本综述
2021-01-18 21:17:12深度学习模型被证明存在脆弱性并容易遭到对抗样本的攻击,但目前对于对抗样本的研究主要集中在计算机视觉领域而忽略了自然语言处理模型的安全问题. -
小样本点云深度学习库_合成鲁棒的对抗样本来欺骗深度学习分类器
2020-12-31 17:57:14本期一诺sec关注深度学习系统安全问题,推荐一篇来自ICML 2018会议论文Synthesizing Robust Adversarial Examples。...深度模型对于对抗样本具有高度的脆弱...自从2016年以来,对深度学习模型的对抗样本攻击和防护的研...本期一诺sec关注深度学习系统安全问题,推荐一篇来自ICML 2018会议论文Synthesizing Robust Adversarial Examples。论文链接http://proceedings.mlr.press/v80/athalye18b.html。
深度模型对于对抗样本具有高度的脆弱性,这已经是得到大家印证的事实。自从2016年以来,对深度学习模型的对抗样本攻击和防护的研究工作越来越多,光挂在Axiv上等待评审或发表的论文不下百篇。研究者中不乏生成对抗网络(GAN)之父Ian Goodfellow、Dawn Song等机器学习和安全领域的大佬。这篇来自ICML 2018上的工作:“Synthesizing Robust Adversarial Examples”,作者分别是Anish Athalye,Logan Engstrom,Andrew Ilyas和Kevin Kwok,来自MIT和LabSix。
一、论文的引入
所谓对抗样本,就是对深度学习器产生对抗输入的样本:例如对一个图像,添加一些细小的扰动使得分类器误分类,但是人肉眼却不能看出这些扰动,这样的样本就是对抗样本。对抗样本攻击就是针对深度学习器生成或者合成靠谱的(误分类成功率高的)对抗样本。研究对抗样本的合成是非常有意义的:一方面找到了对抗样本就验证了深度学习器的脆弱性,找到了他的死穴,可以搞些破坏;另一方面为如何防护对抗样本攻击提供了攻击场景和攻击模型。 论文作者之一Anish Athalye在接受QZ采访时表示,现在有很多使用机器学习的欺诈检测系统,如果能故意修改输入,让系统无法检测出欺诈交易,那么就可能造成财务损失。
以图像分类为例,大部分生成对抗样本的工作都是直接在已有的图像上添加噪声,然后直接送给分类器或者打印出来通过摄像头送给分类器。有工作证明[1],这样产生的对抗样本是不够鲁棒的,也就是说对物理世界分类器的攻击不管用!原因是什么呢?作者认为,物理世界中的摄像头是通过多种视角(viewpoint)来采集物体的图像,并且受到光照、摄像头本身的噪声等自然因素的影响,使得很多方法生成的对抗样本在经过这些影响(相当于小的变换)之后,失去了对抗的属性。
针对物理世界深度分类器进行鲁棒的对抗样本攻击的工作很少,已有的两个工作也是合成2D的对抗样本,本质上是通过原始图像上的仿射变换来“近似”多视角。但是,对物理世界摄像头看到的3D物体,要想保持合成样本的对抗属性,必须经过更复杂的变换:例如3维旋转。
针对上述挑战,该论文提出了一种通用框架,叫变换期望EOT(Expectation Over Transformation),这个框架可以在变换的整个分布上面保持对抗属性。基于这个框架,该论文专门讨论3D对抗样本的生成方法。最后,作者们真的用3D打印机打印了合成的3D对抗样本,并成功欺骗了一些深度学习器,证明了这种方式确实靠谱!
二、模型介绍
先来看看原来的对抗样本合成方式。在深度分类器的白盒假设下(分类器的预测分布
和梯度
都可以拿到),尝试利用原始样本
来构造对抗样本
,可以通过在距离原始图像为
的球上,最大化目标类别
的条件分布的对数似然函数:
这种方法构造的对抗样本已经被证实在物理世界的实验中是失败的。本文提出的变换期望EOT方法的主要思想是将物理世界的影响考虑到优化过程中去,而不是仅仅考虑样本。EOT假设变换函数
采样自一个已知的分布
(包括随机旋转、平移、加噪等,甚至包括纹理的3D渲染),期望通过变换
作用之后,对抗样本
和原始样本
之间的距离的期望仍然比较小。在这个约束下,去最大化对数似然函数的期望,即:
具体优化方法采用的是随机梯度下降法,在每一次迭代中独立的采样变换
来近似得到期望值的梯度。
紧接着,作者讨论了在EOT框架下合成2D和3D对抗样本的具体方法。打印一个合成的2D对抗样本并采集其图像的过程,等价于一系列随机变换
,并且这种变换很容易求导,因此2D场景的问题很容易解决。为了合成3D对抗样本,论文提取现有3D物体的纹理(色谱)作为
,然后选择一个变换函数
,最后再渲染这个3D物体。变换函数
包括渲染、光照、旋转、平移以及视角映射等。问题是EOT需要
是可微的,当然这中渲染也可以通过
来代替。在优化的过程中采用了LAB颜色空间中的距离来代替欧式距离,同时采用拉格朗日松弛形式,最终的优化目标是:
三、实验和评价
论文分别针对2D和3D对抗样本合成做了实验。攻击的目标是TensorFlow中的深度分类器Inception-V3,该分类器在ImageNet数据集上top-1的精确度是78%。评价指标采用的是对抗度(adversariality)
,即在测试集上生成的对抗样本有多少成功欺骗了InceptionV3分类器。
第一个结果是合成2D对抗样本。我们从上图可以看到,合成样本的平均对抗度达到了96.4%,效果还是非常不错的。例如,下图中第二行是生成的对应第一行的对抗样本,成功的让InceptionV3认为是食虫鸟,而不是波斯猫。
接下来是3D的情况。下图可以看到3D对抗样本也能达到83.4%的平均对抗度,虽然比2D有所下降但还是不错的。但是这个结果是通过合成的3D对抗样本,再渲染成2D图像送给分类器的。
如何说明物理世界的场景中本文提出的方法有效呢?最有意思的亮点来了:作者选取了两类物体(乌龟和篮球),采用3D打印机分别打印了一些不加噪声的原始3D物体,以及一部分合成的对抗性的3D物体,然后通过多视角分别提取100张照片送给InceptionV3分类器。结果发现InceptionV3对原始3D物体识别率是100%,但是对对抗样本攻击成功的对抗性还是很大的,特别是对乌龟类对抗性达到了82%,具体结果看下表。
(图中红色方框都是攻击成功的情景,InceptionV3将“乌龟”错误的分到了“步枪”类。)
四、总结
论文提出了一种通用的对抗样本合成框架,可以有效的应对虚拟世界到物理世界中各种因素的影响,达到了欺骗物理世界中深度学习分类器的目的。当然,笔者认为论文还是有很多局限性的,论文作者也做了一些讨论,例如要想使构造的对抗样本更鲁棒,就需要一个更大的给定变换分布,否则就不太管用了;但是另一方面,定变换分布越大,构造的样本与原始样本的差距越大,越难构造出“让人感觉不到”的对抗样本。总之,本论文不失为一篇针对物理模型的对抗样本攻击的佳作。
参考文献
[1] Lu, J., Sibai, H., Fabry, E., and Forsyth, D. No need to worry about adversarial examples in object detection in autonomous vehicles. 2017. URL https://arxiv. org/abs/1707.03501.
请关注公众号一诺sec,获取更多资讯!
一诺sec公众号由衷欢迎有兴趣的朋友积极投稿,展示才华,扩大自己及其团队的影响力。来稿以网络安全研究方面的内容为首选,各种科研相关的新闻、信息、评论,甚至文学作品,都非常欢迎。
欢迎将您的来稿或者建议发送至:
e_novel_security@126.com
-
【深度学习入门到精通系列】对抗样本和对抗网络
2020-10-10 21:24:59文章目录1 概述2 对抗样本3 对抗网络 1 概述 所谓对抗 样本是指将实际样本略加扰动而构造出的合成样本,对该样本,分类器非常容易将其类别判错,这意味着光滑性假设(相似的样本应该以很高的概率被判为同一类别)某种... -
深度学习---对抗样本生成
2019-03-31 10:00:18对抗样本攻击:在深度学习神经网络(DNN)输入较小的干扰因素会使DNN出现误判,这种攻击被称为是对抗样本攻击 对抗样本:是指在正常样本中有目的性地添加的一些干扰因素,使得DNN出现误判 举例说明对抗样本分析带来... -
对抗样本和深度对抗网络
2017-09-14 20:03:14对抗网络提出的背景就是,深度学习出现了绊脚石:对抗样本;深度网络不能解决对抗样本带来的问题,降低深度模型实际的应用价值; 图1 对抗样本的定义 正如图1右边展示的那样,当对熊猫数据加上一定... -
面向深度学习系统的对抗样本攻击与防御
2020-07-12 14:37:50尽管深度学习解决某些复杂问题的能力超出了人类水平,但也面临多种安全性威胁。2013年,塞格德等人首先在图像分类领域发现了一个非常有趣的现象:攻击者通过构造轻微扰动来干扰输入样本,可以使基于深度神经网络... -
一文详解深度神经网络中的对抗样本与学习
2017-08-02 10:24:00在kdnuggets此前发布的文章(Deep Learning’s Deep Flaws)’s Deep Flaws中,深度学习大神Yoshua Bengio和他的博士生、Google科学家Ian Goodfellow在评论中与作者就深度学习对抗样本(Adversarial Exam... -
对抗样本学习报告
2019-11-25 13:17:32但,最近几年研究者发现,输入一些精心设计的样本时,深度学习表现出极大的脆弱性,这些精心设计的样本就是对抗样本。 对抗样本(Adversarial Examples),就是向原始样本中添加一些人眼无法察觉的噪声,添加这些噪声... -
pytorch 对抗样本_深度学习框架PyTorch一书的学习-第七章-生成对抗网络(GAN)
2020-12-19 03:58:36参考:https://github.com/chenyuntc/pytorch-book/tree/v1.0/chapter7-GAN生成动漫头像GAN解决了非监督学习中的著名问题:给定一批样本,训练一个系统能够生成类似的新样本生成对抗网络的网络结构如下图所示:生成... -
深度学习对抗样本的八个误解与事实
2018-03-06 15:17:00转载:http://www.csdn.net/article_pt.html?arcid=2825248摘要:Yoshua Bengio的学生、Google科学家Ian Goodfellow在本文中澄清关于深度学习对抗样本的八个误解与神话,包括:它们不会在实践中发生、深度学习更易受... -
[读论文]对抗样本:深度学习的攻击和防御(Adversarial Examples: Attacks and Defenses for Deep Learning)
2019-07-02 19:37:16对抗样本:深度学习的攻击和防御 内容来源于论文:Adversarial Examples: Attacks and Defenses for Deep Learning,发表在IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS。 论文地址:... -
浅谈深度学习中的对抗样本及其生成方法
2020-12-26 17:08:58深度学习模型被广泛应用到各种领域,像是图像分类,自然语言处理,自动驾驶等。以ResNet,VGG为代表的一系列深度网络在这些领域上都取得了不错的效果,甚至超过人类的水平。然而,Szegedy等人在2014年的工作... -
性能好的深度学习模型可能对于对抗样本具有更好的抵抗性
2018-03-14 09:27:19实验:由AlexNet生成的targeted对抗样本对于Incepotion-ResNet-v2并没有效果 反之由Incepotion-ResNet-v2生成的targeted对抗样本对于AlexNet也并没有效果,这就耐人寻味了,难道transferability是假的? 根据... -
论文导读:深度神经网络中的对抗样本与学习(附原文)
2017-07-12 18:26:48首发地址:...更多深度文章,请关注:https://yq.aliyun.com/cloud 作者介绍: Adrian Colyer:morning paper编辑、Accel Partners投资合伙人、SpringSource首席技术官、VMware技术总监。 领英:http:... -
AI安全之对抗样本学习笔记
2020-10-27 15:17:02AI安全之对抗样本学习笔记 本人大三学生,最近在看《ai安全之对抗样本》,发现网上对本书的学习记录较少,所以准备在此做一些记录,以便大家...python之深度学习–>tensorflow或者PyTorch–>对抗样本; 进入正题 -
利用python实现深度学习生成对抗样本模型,为任一图片加扰动并恢复原像素的全流程记录
2020-07-17 23:49:35利用python实现深度学习生成对抗样本,为任一图片加扰动并恢复原像素一、前言(一)什么是深度学习(二)什么是样本模型(三)什么是对抗样本1、对抗的目的2、谁来对抗?3、对抗的敌人是谁?4、怎么对抗?(1)... -
FGSM(Fast Gradient Sign Method)生成对抗样本(32)---《深度学习》
2017-12-11 15:52:58利用FGSM方法生成对抗样本的基本原理如下图所示,通过对原始图片添加噪声来使得网络对生成的图片X’进行误分类,需要注意的是,生成图片X’和原始图片X很像,人的肉眼无法进行辨别,生成的图片X’即为对抗样本!...