Explaining and Harnessing Adversarial Examples
Explaining and Harnessing Adversarial Examples
包括神经网络在内的一些机器学习模型,始终对对抗性样本进行错误分类–通过对数据集中的例子应用小的但有意的最坏情况下的扰动形成的输入,这样扰动的输入导致模型以高置信度输出一个错误的答案。早期解释这种现象的尝试集中在非线性和过拟合上.我们反而认为,神经网络对对抗性扰动的脆弱性的主要原因是它们的线性性质。这种解释得到了新的定量结果的支持,同时给出了关于它们最有趣的事实的第一个解释:它们在架构和训练集之间的泛化。此外,这种观点还产生了一种简单而快速的生成对抗性例子的方法。利用这种方法为对抗性训练提供实例,我们减少了MNIST数据集上maxout网络的测试集误差。
1 INTRODUCTION
Szegedy等人(2014b)有一个有趣的发现:一些机器学习模型,包括最先进的神经网络,容易受到对抗性例子的影响。也就是说,这些机器学习模型会错误地分类那些与从数据分布中抽取的正确分类的例子仅有轻微差异的例子。在许多情况下,在训练数据的不同子集上训练的具有不同架构的各种模型会对同一个对抗性例子进行错误分类.这表明对抗性例子暴露了我们训练算法的基本盲点。
这些对抗性例子的原因是一个谜,推测性的解释表明,这是由于深层神经网络的极端非线性,可能加上模型平均值不足和纯监督学习问题的正则化不足。我们证明这些推测性假设是不必要的。高维空间中的线性行为足以引起对抗性的例子。这一观点使我们能够设计出一种快速生成对抗性例子的方法,使对抗性训练切实可行。
一般的正则化策略,如退出、预训练和模型平均,并不能显著降低模型在对抗性样本中的脆弱性,但改变为非线性模型族(如RBF网络)可以做到这一点。
我们的解释表明,在设计因其线性而易于训练的模型和设计利用非线性效应抵抗对抗性扰动的模型之间存在着基本的紧张关系。从长远来看,通过设计更强大的优化方法,可以成功地训练更多的非线性模型,也许可以摆脱这种权衡。
2 RELATED WORK
Szegedy等人(2014b)展示了神经网络和相关模型的各种有趣特性。与本文件最相关的内容包括:
盒约束的L-BFGS可以可靠地找到对抗性的样本。
在一些数据集上,比如ImageNet (Deng et al., 2009),对抗性的样本与原始样本非常接近,人眼无法分辨出差异。
同一个对抗式示例常常被具有不同架构的各种分类器错误地分类,或者在训练数据的不同子集上进行训练。
浅的softmax回归模型也容易受到敌对实例的攻击。
在对抗性例子上进行训练可以使模型正规化——但是,这在当时并不实际,因为需要在内部循环中进行昂贵的约束优化。
这些结果表明,基于现代机器学习技术的分类器,即使是那些在测试集上获得优异性能的分类器,也没有学习真正的底层概念,而这些概念决定了正确的输出标签。相反,这些算法建立了一个Potemkin村,对自然出现的数据很有效,但是当一个人访问空间中的数据分布概率不高的点时,就会被暴露为假的。这尤其令人失望,因为计算机视觉中一种流行的方法是使用卷积网络特征作为欧几里德距离近似于感知距离的空间。如果感知距离非常小的图像对应于网络表示中完全不同的类,那么这种相似性显然是有缺陷的。
这些结果常常被解释为是一个缺陷,特别是在深层网络,即使线性分类器有同样的问题。我们认为,对这一缺陷的了解是解决这一问题的一个机会。
3 THE LINEAR EXPLANATION OF ADVERSARIAL EXAMPLES
我们从解释线性模型的对抗性例子的存在开始。
在许多问题中,单个输入特征的精度是有限的。例如,数字图像通常每像素只使用8位,因此它们会丢弃动态范围1/255以下的所有信息。由于特征的精度是有限的,分类器对输入x和对抗性输入做出不同的响应是不合理的如果每个元素的扰动是小于精度的特征。形式上,对于分离良好的类的问题,我们期望分类器将相同的类分配给和只要,是小到足以被与我们的问题相关的传感器或数据存储设备丢弃。
考虑权向量w和一个对抗样本 之间的点积:
对抗性干扰使**增加。我们可以通过指定,在 的最大范数约束下,最大化此增量。如果w有n个维度,且权重向量中一个元素的平均幅度为m,那么**度将增长。由于不随问题的维数而增长,但 的扰动引起的**变化可随n线性增长,因此对于高维问题,我们可以对输入进行许多无穷小的变化,这些变化加起来等于对输出的一个大的变化。
这一解释表明,如果一个简单的线性模型的输入具有足够的维数,那么它可以有对抗性的例子。先前对对抗性例子的解释援引了神经网络的假设性质,例如它们假定的高度非线性性质。我们基于线性的假设更简单,也可以解释为什么softmax回归容易受到对抗性例子的影响。
4 LINEAR PERTURBATION OF NON-LINEAR MODELS
对抗性例子的线性观点提出了一种快速生成它们的方法。我们假设神经网络过于线性,无法抵抗线性对抗性扰动。LSTMs(Hochreiter &Schmidhuber,1997)、ReLUs(Jarrett等人,2009;Glorot等人,2011)和maxout网络(Goodfellow等人,2013c)都被有意设计成以非常线性的方式表现,因此它们更容易优化。
更多的非线性模型,如sigmoid网络,由于同样的原因被仔细地调整,使其大部分时间花在非饱和、更线性的区域。这种线性行为表明,线性模型的廉价、分析性扰动也会损害神经网络。
图1:在ImageNet上应用于GoogLeNet的快速对抗性例子生成演示。通过添加一个不可感知的小向量,其元素等于成本函数的梯度相对于输入的元素的符号,我们可以改变GoogLeNet对图像的分类。这里我们的 为0.007,对应的是8位图像编码在GoogLeNet转换为实数后最小位的大小。
让为模型的参数,x为模型的输入,y为x的标签,是用于训练神经网络的损失函数。我们可以在 的当前值附近线性化代价函数,得到最优最大范数约束扰动
我们将其称为生成对抗性例子的“快速梯度符号法”。注意,使用反向传播可以有效地计算所需的梯度。
**我们发现,该方法能可靠地导致各种模型对输入进行误分类。**我们发现,使用 =.25,我们使一个浅层softmax分类器的错误率为99.9%在MNIST。在相同的设置下,maxout网络以97.6%的平均置信度对89.4%的敌对例子进行了错误分类。类似地,使用=.1,当在CIFAR-10测试集的预处理版本上使用卷积maxout网络时,我们获得87.15%的错误率和分配给错误标签的96.6%的平均概率。还可以使用其他简单的方法来生成对抗的例子。例如,我们还发现x在梯度方向上旋转一个小角度会可靠地产生相反的例子。
事实上,这些简单、廉价的算法能够生成错误的分类示例,这是有利于我们解释线性导致的对抗示例的证据。这些算法对于加速对抗训练,甚至是对训练网络的分析也很有用。
5 ADVERSARIAL TRAINING OF LINEAR MODELS VERSUS WEIGHT DECAY
也许我们可以考虑的最简单的模型是逻辑回归。在这种情况下,快速梯度符号法是精确的。我们可以使用这个例子来获得一些直觉,了解如何在一个简单的设置中生成敌对的示例。如图2所示。
Figure 2: The fast gradient sign method applied to logistic regression (where it is not an approximation,but truly the most damaging adversarial example in the max norm box). a) The weights of a logistic regression model trained on MNIST. b) The sign of the weights of a logistic regression model trained on MNIST. This is the optimal perturbation. Even though the model has low capacity and is fit well, this perturbation is not readily recognizable to a human observer as having anything to do with the relationship between 3s and 7s. c) MNIST 3s and 7s. The logistic regression model has a 1.6% error rate on the 3 versus 7 discrimination task on these examples. d) Fast gradient sign adversarial examples for the logistic regression model with = .25. The logistic regression model has an error rate of 99% on these examples.
如果我们训练单一模型识别标签,with ,其中是logistic sigmoid函数,然后训练由梯度下降组成
其中 是softplus函数。基于梯度符号扰动,我们可以推导出一个简单的解析形式来训练x的最坏情况下的对抗扰动,而不是x本身。注意,梯度的符号只是,且
逻辑回归的对抗版本是最小化
这有点类似于L1正则化。然而,有一些重要的区别。最重要的是,L1的惩罚是在训练过程中减去模型的**,而不是增加到训练损失函数中。这意味着,如果模型学会了做出足够自信的预测,饱和的话,惩罚最终可以消失。这是不保证发生的–在欠拟合制度下,对抗性训练只会使欠拟合更加恶化。因此,我们可以认为L1权重衰减是比对抗式训练更 “更坏的情况”,因为在有好的margin的情况下,L1权重衰减下降不能被解除。
如果我们从logistic回归转向多类softmax回归,L1权重衰减变得更加悲观,因为它将softmax的每个输出视为独立可扰动的,而事实上通常不可能找到与类的所有权重向量对齐的单个。在有多个隐藏层的深度网络中,重量衰减会高估扰动所能造成的伤害。由于L1权重衰减高估了对抗所能造成的伤害,因此有必要使用比更小的L1权重衰减系数,这与我们特征的精度有关。
在MNIST上训练maxout网络时,采用 =0.25的对抗性训练,取得了较好的效果。在对第一层应用L1权值衰减时,发现即使是0.0025的系数也太大,导致模型在训练集上的误差超过5%。较小的权值衰减系数允许成功的训练,但不具有正则化效益。
6 ADVERSARIAL TRAINING OF DEEP NETWORKS
认为深层网络容易受到敌对性例子的攻击的批评在某种程度上是被误导的,因为与浅线性模型不同,深层网络至少能够表示抵抗敌对性干扰的函数。universal approximator theorem(Hornik等人,1989)保证了一个至少有一个隐层的神经网络可以任意精度地表示任何函数,只要它的隐层允许有足够的单位。浅层线性模型既不能在训练点附近保持不变,又能将不同的输出分配给不同的训练点。
当然,通用逼近定理并没有说明一个训练算法是否能够发现一个具有所有期望属性的函数。显然,标准的监督训练并没有规定所选的函数必须对对抗性例子具有抵抗力.这必须在训练过程中以某种方式进行编码。
Szegedy等人。(2014b)表明,通过对对抗性和干净例子的混合训练,神经网络可以某种程度上正规化。对抗性示例的训练与其他数据增强方案有点不同;通常,一种方法通过转换来增强数据。
这种形式的数据增强而是使用不太可能自然发生的输入,但却暴露了模型概念化其决策功能的方式的缺陷。在当时,这种程序从未被证明能够在最先进的基准上改善超过dropout的情况。然而,部分原因是很难用基于L-BFGS的昂贵的对抗式例子进行广泛的实验。
我们发现基于快速梯度符号方法的对抗性目标函数训练是一种有效的正则化器:
在我们所有的实验中,我们用。其他价值观可能更有效;我们对这个超参数的最初猜测非常有效,所以我们觉得没有必要进一步探索。这种方法意味着我们要不断更新我们的对抗性示例,使它们能够抵抗模型的当前版本。用这种方法训练一个正则化的带dropout的maxout网络,可以将不进行对抗性训练的错误率从0.94%降低到进行对抗性训练的错误率为0.84%。
我们观察到,在训练集的对抗性例子上,我们没有达到零错误率。我们通过两次更改解决了此问题。首先,我们将模型放大,每层使用1600个单元,而不是原来maxout网络用于解决这个问题的240个单元。在没有对抗性训练的情况下,这会导致模型稍微过拟合,在测试集上得到1.14%的错误率。通过对抗性训练,我们发现验证集错误随着时间的推移趋于稳定,并且进展非常缓慢。原始的maxout结果使用提前停止,并在验证集错误率未降低100个阶段后终止学习。我们发现,虽然验证集错误是非常平坦的,但对抗性验证集错误不是。
因此,我们在对抗性验证集误差上使用了早期停止。使用这个标准来选择训练的epoch数,然后我们对所有60000个例子进行再训练。五次不同的训练运行,使用不同的种子,用于选择minibatches 的训练实例、初始化模型权重和生成dropout masks的随机数发生器,结果有四次试验在测试集上的错误率均为0.77%,有一次试验的错误率为0.83%。0.782%的平均值是MNIST的换元不变版本上报告的最佳结果,虽然在统计上与微调DBMs得到的结果0.79%(Srivastava等人,2014)无法区分。
这个模型也变得对对抗的样本有些抵触。回想一下,在没有对抗性训练的情况下,基于快速梯度符号法的对抗性例子的错误率为89.4%。通过对抗性训练,错误率下降到17.9%。对抗性的样本可以在两个模型之间转换,但是对抗性训练的模型显示出更强的鲁棒性。通过原始模型生成的对抗性例子在对抗性训练的模型上产生的错误率为19.6%,而通过新模型生成的对抗性例子在原始模型上产生的错误率为40.9%。
当对抗性训练的模型确实对一个对抗性例子进行了错误分类,不幸的是,它的预测仍然是高度自信的。对误分类例子的平均置信度为81.4%。我们还发现,学习模型的权重发生了显著的变化,对抗性训练模型的权重显著提高了局部的可解释性(见图3)。
图3:在MNIST上训练的maxout网络的权重可视化。每一行都显示了单个maxout单元的过滤器。左)无意识训练的模型。右)对抗式训练的模型。
当数据被对抗干扰时,对抗训练过程可以被视为最小化最坏情况下的错误。这可以被解释为学习玩一个对抗性的游戏,或是在输入中加入来自的噪声样本上最小化期望成本的上界。对抗性训练也可以被看作是一种主动学习的形式,在这种模式下,模型可以要求在新的点上贴上标签。在这种情况下,人的标签被替换为一个启发式的标签,从附近的点复制标签。
我们还可以通过在 max norm box中的所有点上进行训练,或在该框中对多个点进行采样,使模型对小于精度的特征变化不敏感。
这相当于在训练期间用最大范数添加噪声。然而,具有零均值和零协方差的噪声在防止对抗性例子方面非常低效。任何参考向量和这种噪声向量之间的期望点积为零。这意味着在许多情况下,噪声基本上不会产生影响,而不会产生更困难的输入。
事实上,在很多情况下,噪声会导致目标函数值更低。我们可以把对抗性训练看作是在一组有噪声的输入中进行艰难的例子挖掘,以便通过只考虑那些强烈抵制分类的有噪声的点来更有效地训练。
由于符号函数的导数在任何地方都是零或未定义的,所以基于快速梯度符号法的对抗性目标函数的梯度下降不能使模型预测对抗者对参数变化的反应。如果我们改用基于小旋转或加标梯度的对抗性例子,那么扰动过程本身是可分化的,学习时可以考虑对抗者的反应。然而,我们并没有从这个过程中发现近乎强大的正则化结果,也许是因为这类对抗性例子并没有那么难解。
一个自然而然的问题是,是扰动输入层好,还是扰动隐藏层好,或者两者兼而有之。在这里,结果是不一致的。Szegedy等(2014b)报告说,当应用于隐藏层时,对抗性扰动产生的正则化效果最好。
这个结果是在一个sigmoidal网络上得到的。在我们用快速梯度符号法进行的实验中,我们发现,具有隐藏单元的网络,其**度是无界的,只是通过使其隐藏单元的**度变得非常大来进行响应,所以通常只对原始输入进行扰动更好。
在饱和模型(如Rust模型)上,我们发现对输入的扰动与对隐藏层的扰动执行得相当。基于旋转隐藏层的扰动解决了无界**增长的问题,使相加的扰动相对较小。
我们能够成功地用隐藏层的旋转扰动来训练maxout网络。然而,这并没有产生像输入层的加性扰动那样强烈的正则化效果。我们对对抗性训练的看法是,只有当模型具有学习抵抗对抗性例子的能力时,它才会明显有用。只有当普遍近似器定理适用时,这种情况才会明显。
的问题,使相加的扰动相对较小。
我们能够成功地用隐藏层的旋转扰动来训练maxout网络。然而,这并没有产生像输入层的加性扰动那样强烈的正则化效果。我们对对抗性训练的看法是,只有当模型具有学习抵抗对抗性例子的能力时,它才会明显有用。只有当普遍近似器定理适用时,这种情况才会明显。
由于神经网络的最后一层,即线性-sigmoid层或线性-softmax层,并不是最后隐藏层的函数的通用近似器,这说明当人们对最后隐藏层应用对抗性扰动时,很可能会遇到拟合不足的问题。我们确实发现了这种效果。我们使用对隐藏层的扰动进行训练的最佳结果从未涉及对最终隐藏层的扰动。