Obfuscated Gradients Give a False Sense of Security: Circumventing Defenses to Adversarial Examples
混淆的梯度给人一种虚假的安全感:规避对抗性例子的防御
read
文章介绍了模糊梯度中对三种常见的操作方法:破碎梯度、随机梯度、梯度爆炸/消失的避开方式,用实验证实了模糊梯度的不安全性,告诉人们需要采取其他更安全的方式而不是依赖于模糊梯度作为防御。
破碎梯度:(eg.阶梯状函数,可导部分导数均为0,其余部分不可导)选取一个近似的函数,该函数连续光滑且处处可导,可计算任意一点梯度。
随机梯度:多次计算,求出该梯度的期望值,作为该梯度的近似值。(实验证明,近似值与真实值在神经网络的训练中,效果不会有很大差异)
梯度爆炸/消失:投影梯度下降。使用BPDA近似梯度,通过PixelDefend避开了计算梯度的问题或者使用BPDA构建第二次攻击来逃避防御gan。
概要
1. abstract
我们发现“混淆梯度”(obfuscated gradients)作为一种梯度掩码(gradient masking),会在防御对抗样本中导致一种错误的安全感。虽然造成混淆梯度的防御似乎可以击败基于迭代优化的攻击,但我们发现依赖这种效果的防御可以被规避。我们描述了表现出这种效应的防御特征行为,对于我们发现的三种混淆梯度,我们都开发了攻击技术来克服它。在一个案例中,我们检查了发表在ICLR 2018的论文的未经认证的白盒安全防御,发现混淆梯度是常见的情况,9个防御中有7个依赖于混淆梯度。在每篇论文所考虑的原始威胁模型中,我们的新攻击成功地完全规避了6个,部分规避了1个。
2. introduction
通过混淆梯度,从而增加神经网络的鲁棒性,防御基于迭代优化的攻击。
我们确定了三种类型的模糊梯度:破碎梯度是不存在的或不正确的梯度,无论是通过不可微的操作或无意的数值不稳定性造成的;随机梯度依赖于测试时间的随机性;梯度消失或梯度爆炸现象,在深层神经网络计算中导致不可用的梯度。
我们提出了新的技术来克服这三种现象造成的混淆梯度。我们用一种新的攻击技术来解决梯度破碎问题,我们称之为向后传递可微逼近,我们通过正常计算向前传递来近似导数,并使用函数的可微逼近来计算向后传递。我们通过应用期望转换来计算随机防御的梯度。我们通过重新参数化来解决消失/爆炸梯度,并在梯度不爆炸/消失的空间上进行优化。
破碎梯度 | 随机梯度 | 梯度消失/爆炸 | |
---|---|---|---|
原防御方式 | 反向传播时,梯度变得非常小, 几乎无法在深层网络的前向 和反向传播之间正确传递 |
依赖于测试时间的随机性 | 梯度趋于0或无穷 |
攻击技术 | 向后传递可微逼近,通过正常 计算向前传递来近似导数,并使 用函数的可微逼近来计算向后传递 |
应用期望转换来计算随机防御的梯度 | 重新参数化 |
3. Preliminaries
(1)数据集&模型
测试是对 CIFAR 10 和 MINST 数据集的整个测试集进行防御,并生成了非目标对抗示例+在ImageNet上,在测试集中评估了1000多个随机选择的图像,用随机选择的目标类构建了有针对性的对抗示例,并报告了攻击成功率和模型准确性
对于MINST ,选用标准模型——五层卷积神经网络,最终达到93%的准确率;对于CIFAR 10,选用残差神经网络(CNN),达到95%准确率;对于ImageNet,使用InceptionV3网络,达到78.0% top-1 和 93.9% top-5的准确率。
对于攻击者而言,生成有针对性的对抗示例较为困难;而对于防御这来说,对于非目标攻击的稳健性更难。
(2)威胁模型
在考虑为白盒设置设计的防御。我们在声称安全的威胁模型下评估每个防御(例如,e = 0.031的有界低失真)。通过违反威胁模型通常很容易找到难以察觉的扰动对抗示例,但通过在原始威胁模型下这样做,我们表明原始评估是不充分的,并且由此得出的安全声明是不正确的。
(3)攻击方式
尽量求δ的最小值,使增加一个微小扰动后,原模型输出的匹配图片x的标签发生错误;或者使模型函数f(x)在变为f(x+δ)后,loss值变得很大。
4. Obfuscated gradients
模糊梯度是一种不完全的防御,但是ICLR 2018的防御方式中,有7种防御依赖这个原理。
(1)破碎梯度
当防御不可微、引入数值不稳定或导致梯度不存在或不正确时,就会产生破碎梯度。通过使用可微操作,导致梯度破碎的防御可以在无意中做到这一点,但遵循梯度不会使全局分类损失最大化。
(2)随机梯度
随机梯度是由随机防御引起的,其中网络本身是随机的,或者输入在被馈送到分类器之前被随机转换,导致梯度变得随机化。这导致使用单个随机样本的方法不正确地估计真实梯度。
(3)梯度爆炸/梯度消失
梯度爆炸和梯度消失通常是由神经网络评估的多次迭代组成的防御引起的,将一次计算的输出作为下一次计算的输入。这种类型的计算,当展开时,可以被视为一个非常深度的神经网络评估,这可能导致梯度消失/爆炸。
当出现以下几种情形时,可能是防御者采用了模糊梯度的防御方式:
(4)一步攻击比迭代攻击表现更好。
在白盒设置中应用的基于迭代优化的攻击严格地比单步攻击强,并且应该提供严格优越的性能。 如果单步方法的性能优于迭代方法,那么迭代攻击可能会在局部最小值的优化搜索中陷入困境。
(5)黑盒攻击比白盒攻击更好。
黑盒威胁模型是白盒威胁模型的严格子集,因此白盒设置中的攻击应该表现更好; 如果防御是混淆梯度,那么黑盒攻击(不使用梯度)通常比白盒攻击更好(Papernot et al,2017)。
(6)无限制的攻击没有达到100%的成功。
由于无界失真,任何分类器都应具有0%的鲁棒性来进行攻击。 如果攻击没有达到100%成功并且具有足够大的失真限制,则表明攻击没有针对防御进行最佳执行,并且应该改进攻击。
(7)随机抽样找到了对抗性样本。
当基于梯度的攻击不能时,某些 ϵ 球内的暴力随机搜索(例如,随机抽样10^5个或更多点)应该找不到对抗性样本。
(8)增加失真限制不会增加成功。
较大的失真界限应该单调增加攻击成功率; 显着增加失真界限应该导致显着更高的攻击成功率。
5. Attack Techniques
(1)向后可微逼近 Backward Pass Differentiable Approximation
① 破碎梯度:BPDA
特例:直通估计量
原有分类器f(·),构造预处理器g(·),使得 ˆf(x) = f (g(x)),且满足g(x) ≈ x。例如,g(·)可以执行图像去噪以消除对抗扰动。如果g(·)是平滑且可微分的,则通过组合网络 ˆf 计算梯度通常足以绕过防御,但g(·)不平滑也不可微分,因此不能反向传播以产生需要梯度信号的白盒攻击的对抗性样本。因为g是用g(x)≈x的性质构造的,所以我们可以将它的导数近似为同一性函数的导数:∇xg(x) ≈ ∇xx = 1。于是有:∇xf (g(x))|x=ˆ x ≈ ∇xf (x)|x=g(ˆ x)。之后可以像往常一样通过神经网络进行前向传播,但是在后向传递中,我们用恒等函数替换g(·)。给了我们真实梯度的近似值,虽然不完美,但是足够有用,当在梯度下降的多次迭代中平均时仍然产生对抗性样本。
推广BPDA
设f(·)= f1…j(·)为神经网络,让 fi(·) 为不可微分(或无用的可微)层。 为了近似 ∇xf(x) ,我们首先找到可微分近似g(x),使得g(x)≈ fi(x) 。 然后,我们可以通过执行前向通过f(·)来近似 ∇xf(x) (特别是计算向前通过 fi(x) ),但是在向后通过时,用g替换 fi(x) 。 请注意,我们仅在向后传递时执行此替换。
(2)攻击随机化分类器 Attacking Randomized Classifiers
② 随机梯度
破解随机梯度,简单来讲就是通过计算期望值,计算很多次,求出其期望值,作为梯度的近似值。
对于对输入采用随机变换的防御,我们应用期望转换(EOT)来正确计算期望转换到输入的梯度。
当攻击首先根据从变换分布T中采样的函数t(·)随机变换其输入的分类器f(·)时,EOT优化对变换 Et∼T∇f(t(x)) 的期望。 优化问题可以通过梯度下降来解决,注意到 ∇Et∼Tf(t(x))=Et∼T∇f(t(x)) ,通过分类器和变换进行微分,并且在每个梯度下降步骤中用样本近似期望值。
(3)重新参数化 Reparameterization
③ 梯度爆炸/梯度消失——重新参数化
我们通过重新参数化解决消失/爆炸梯度。 假设给出了一个分类器f(g(x)),其中g(·)执行一些优化循环以将输入x转换为新的输入ˆx。 通常,这种优化循环意味着对g(·)求导,尽管可能会产生爆炸或消失的梯度。为了解决这个问题,我们为某些函数 h(·) 做出变量x = h(z)变换。 对于所有z,g(h(z))= h(z),但h(·)是可微分的。 例如,如果g(·)以特定方式将样本投影到某些流形,我们可以构造h(z)以仅在流形上返回点。 这允许我们通过f(h(z))计算梯度,从而规避防御。
6. Case Study: ICLR 2018 Defenses
(1)不混淆梯度
对抗训练通过一个概念上简单的过程解决了最小 - 最大博弈训练对抗性的例子,直到模型学会正确地对它们进行分类。这种方法不会导致混淆梯度
级联对抗机器学习(Na et al., 2018)与上述防御密切相关。主要区别在于,作者不是使用迭代方法在每个小批上生成对抗示例,而是训练第一个模型,在该模型上生成对抗示例(使用迭代方法),将它们添加到训练集中,然后在增强数据集上训练第二个模型,只有单步方法才能提高效率。此外,作者构造了一个“统一嵌入”,并强制清洁和对抗性逻辑在某些度量下接近。
(2)破碎梯度
① 温度计编码 THERMOMETER ENCODING
Defense Details
与之前的工作(Szegedy等人,2013)将对抗性示例视为“神经网络中的盲点”相反,Goodfellow等人(2014b)认为,对抗性示例存在的原因是神经网络的行为在很大程度上是线性的。温度计编码的目的是打破这种线性。
LS-PGA仅将没有对抗性训练的温度计编码模型的模型精度降低到50%(以e= 0.031为界)。相比之下,我们在较低的€= 0.015时实现了1%的模型精度(E = 0.031时为0%)。这表明没有可测量的改进,从标准模型,训练没有温度计编码。当我们攻击温度计编码的对抗训练模型4时,我们能够在e = 0.031的情况下对LS-PGA重现80%的精度。然而,我们的攻击将模型精度降低到30%。这明显弱于不使用温度计编码的原始Madry等人(2018)模型。因为这个模型是针对(相对较弱的)LS-PGA攻击进行训练的,所以它无法适应我们上面提到的更强的攻击。
② 输入转换防御的细节 INPUT TRANSFORMATIONS
Guo等人(2018)提出了五种输入变换来对抗对抗性示例。作为基准,作者评估了图像裁剪和重新缩放、位深减小和JPEG压缩。在此基础上提出了两种新的变换方法:(a)随机丢弃像素,并通过总方差最小化来恢复像素;(b)图像拼接:用“干净”图像中的小块替换小块来重建图像,利用重叠边界区域的最小图切去除边缘伪影。作者探索了输入转换的不同组合以及不同的底层ImageNet分类器,包括对抗训练的模型。他们发现,即使使用普通分类器,输入转换也能提供保护。
讨论
作者发现,ResNet-50分类器在最强攻击下为五种建议的输入转换中的每一种提供了不同程度的准确性,标准化l2不相似度为0.01,最强防御实现了超过60%的top-1精度。我们在评估InceptionV3分类器时再现这些结果。作者在白盒攻击中没有成功,认为缺乏对测试时间随机性的访问“对于开发强大的防御尤其重要”(Guo等人,2018)。
评估
可以独立地通过每个防御(并且防御的集合通常不会比最强的子组件强多少(He et al., 2017))。我们绕过图像裁剪和重新缩放与直接应用EOT。为了避免位深减少和JPEG压缩,我们使用BPDA并使用恒等函数近似向后传递。为了避免总方差最小化和图像拼接这两种不可微随机化的问题,我们采用EOT和BPDA通过变换逼近梯度。通过我们的攻击,我们实现了100%的目标攻击成功率,并且在郭等人(2018)考虑的最小扰动预算下,在均方根扰动为0.05(以及郭等人(2018)定义的“归一化”l2扰动为0.01)的情况下,最强防御的准确率降至0%。
③ 局部固有维数 LOCAL INTRINSIC DIMENSIONALITY (LID)
LID是一种通用度量,用于测量从输入到相邻输入的距离。Ma等人(2018)建议使用LID来表征对抗性示例的属性。作者强调,这个分类器不是为了防御对抗性示例6,但是作者认为,它是一种检测对抗性示例的鲁棒方法,这种方法不容易通过尝试自己的自适应攻击来逃避,并显示它失败了。
分析概述
我们没有主动攻击检测方法,而是发现LID无法检测到高置信度的对抗性示例(Carlini & Wagner, 2017a),即使在对手完全无视防御并在原始分类器上生成对抗性示例的不切实际的威胁模型中也是如此。关于这种攻击的完整讨论在补充部分1中给出。
(3)随机梯度
① 随机激活剪枝 STOCHASTIC ACTIVATION PRUNING
防御细节
SAP (Dhillon等人,2018)将随机性引入神经网络的评估中,以防御对抗性示例。SAP随机丢弃每层fi到0的一些神经元,概率与它们的绝对值成正比。也就是说,SAP本质上在每一层应用dropout,而不是以均匀概率丢弃,节点以加权分布丢弃。保留的值按比例增大(如dropout中所做的)以保持准确性。使用SAP会略微降低干净分类的准确率,更高的掉落概率会降低准确率,但会增加鲁棒性。我们研究了不同水平的掉落概率,发现它们会导致相似的鲁棒性数字。
讨论
作者仅通过在梯度方向上采取单一步骤来评估SAP (Dhillon et al., 2018)。同时在梯度方向上走一步在非随机神经网络上可以有效,当使用随机化时,计算相对于随机的一个样本的梯度是无效的。
评估
为了解决这个困难,我们通过计算随机性实例的期望来估计梯度。在梯度下降的每次迭代中,我们不是朝着Vaf(æ)的方向迈出一步,而是朝着Σ=1Vf(x)移动,其中每个调用都是随机化的SAP。我们发现选择k= 10提供了有用的梯度。我们还必须解决计算梯度时的数值不稳定性:这种防御导致计算向后传递,由于除以非常接近0的数字而导致梯度爆炸。使用这些方法,我们能够在e = 0.015时将SAP模型精度降低到9%,在e = 0.031时降低到0%。如果我们认为只有当一个例子在10次中有10次被错误分类时攻击才成功(如果它曾经被分类为正确的标签,则认为它被正确分类),模型精度低于10%,e = 0.031。
② 通过随机化来缓解防御细节 MITIGATING THROUGH RANDOMIZATION
防御细节
Xie等人(2018)提出通过在分类器输入之前添加随机化层来防御对抗性示例。对于接受299 × 299输入的分类器,防御器首先随机将图像重新缩放为ar×r image, re[299, 331],然后随机将图像补零,使结果为331 × 331。然后将输出馈送到分类器。
讨论
作者考虑了三种攻击场景:香草攻击(对原始分类器的攻击),单模式攻击(假设某些固定随机化模式的攻击)和集成模式攻击(对固定随机化模式的小集合的攻击)。作者最强的攻击将InceptionV3模型的精度降低到32.8%的top-1准确率(超过最初正确分类的图像)。作者对更大的随机性选择进行了更强的攻击,并指出这将是“计算上不可能的”(强调我们的),而且这样的攻击“甚至可能不会收敛”(Xie et al., 2018)。
评估
我们发现作者的集合攻击与固定随机化的集合过拟合。我们通过应用EOT绕过这种防御,优化转换的分布(在本例中是离散的)。使用这种攻击,即使我们认为攻击成功,只有当一个例子在10次中被错误分类10次时,我们实现了100%的目标攻击成功率,并将分类器的准确率从32.8%降低到0.0%,最大的loo扰动为ε = 0.031。
(4)梯度爆炸/梯度消失
- “DEFENSE-GAN”(由Samangouei等人于2018年提出)使用生成对抗网络(Generative Adversarial Network,GAN)来处理样本,将它们投影到生成器的流形上,然后再进行分类。GAN是一种机器学习模型,由Goodfellow等人于2014年提出,包括生成器和判别器,用于生成逼真的数据样本。
- 这个方法的基本思想与 “PixelDefend” 类似,但 “DEFENSE-GAN” 使用了 GAN 而不是 PixelCNN 来实现。PixelDefend是另一种处理对抗性样本的方法。
- 作者指出,他