Towards Evaluating the Robustness of Neural Networks

这是一篇论文阅读笔记,论文原文:神经网络的鲁棒性评价

写在前面

  本人在阅读这篇论文的时候也参考了别人的博文,参考博文的链接我会在文章最后的参考资料中列举出来,如有侵权请联系我删除。本文主要是对这篇论文的一些思想的理解,包括公式推导还有一些总结。除此之外发现原文在论文第6页中提出的7个目标函数中,第5个目标函数有错误,主要是对数里面的式子写反了,如果是仔细看的话是能够看出来的。原来的式子如下面的公式1所示,修改之后应该如公式2所示。在文中提到 F F F就是经过了softmax输出的概率,那么 F F F的取值范围为 [ 0 , 1 ] [0,1] [0,1],那么对于下面的(1)式来说,就不满足对数函数的定义域大于0,所以这个式子有问题。而(2)式则满足其定义域,并且相关意义,这个在后面会解释。
f 5 ( x ′ ) = − log ⁡ ( 2 F ( x ′ ) t − 2 ) (1) \begin{aligned} f_5(x') = -\log (2F(x')_t-2) \tag{1} \end{aligned} f5(x)=log(2F(x)t2)(1)

f 5 ( x ′ ) = − log ⁡ ( 2 − 2 F ( x ′ ) t ) (2) \begin{aligned} f_5(x') = -\log (2-2F(x')_t) \tag{2} \end{aligned} f5(x)=log(22F(x)t)(2)

文章简介

  虽然神经网络在大多数的机器学习任务上取得了SOTA的效果,但是存在这样的一个事实,那就是神经网络容易受到对抗样本的攻击。也就是说,对于输入的x,能够找到一个 x ′ x' x,使得 x ′ x' x x x x十分接近,但是会被神经网络误分类成另外一个类别(非正确的类别)。所以使我们训练出的神经网络能够防御对抗样本的攻击显得意义重大。而防御蒸馏就是最近被提出的一个方法,对于任何一个神经网络,使用对抗蒸馏提高其鲁棒性,降低对抗攻击的准确率。没有使用防御蒸馏之前,对抗攻击的成功率为95%,但是使用了防御蒸馏之后,对抗攻击的成功率降到了0.5%。
  但是在这篇文章当中,作者通过提出三种对抗攻击算法,证明了防御蒸馏也不过尔尔嘛。(这里提一嘴,作者这种写作手法着实厉害,先说防御蒸馏怎么怎么牛皮,然后第二段就说,在我们的文章中,我们提出了三种算法成功击破防御蒸馏,所以这也不过尔尔嘛🐶,潜台词就是之前的对抗攻击算法都是什么trash)。作者提出的三种对抗攻击算法是根据使用到的三种不同的距离划分的,分别是L0范数、L2范数、无穷范数。并且与先前提出的对抗攻击算法相比通常都更有效。除此之外,作者还建议在简单的可迁移性测试中使用高置信度的对抗样本,这也可以被用于攻破防御蒸馏。
  作者在这篇文章的contributions如下:

  • 他们提出了三个新的攻击算法,分别使用L0范数、L2范数、无穷范数来进行度量。并且作者提出的使用L0范数进行攻击的算法是第一个在ImageNet上能使网络错分类。
  • 作者将这些攻击算法应用到防御蒸馏上面,并且发现使用了防御蒸馏和没有使用防御蒸馏在面对这些攻击是同样的效果,也就是都没有防御住。
  • 作者提出,在简单的迁移性测试中,使用高置信度的对抗样本来评估防御,并且表明该测试打破了防御蒸馏。
  • 对于寻找对抗样本,作者系统地评价了目标函数的选择并且表明目标函数的选择明显地影响了攻击效果。

防御蒸馏

  首先我们先来了解一下什么是防御蒸馏。首先防御蒸馏的原文在这里,防御蒸馏的过程如下图所示。有一个初始网络和一个蒸馏网络,对于初始网络而言,输入训练数据X以及训练的标签Y,然后以温度T来训练模型F。接着将初始网络输出的概率作为软标签去蒸馏网络中去训练,蒸馏网络与初始网络完全一样,唯一不同的就是蒸馏网络的训练标签是初始网络输出的概率值。这里的温度T是什么意思呢?我们看下面的公式(1)就能明白了,对于分类的深度神经网络来说,最后一层是将logit值输入到softmax函数中实现归一化,所以最终输出的也就是概率。而在这里引入温度T,我们可以看到公式(1)中温度T的位置,其实也就是将逻辑值缩放相应的倍数。不过在下面那张图中可以看到(水印还没去hhh)随着温度T的升高,概率的分布越平缓,而这概率的分布也就是类的分布,所以说T越大,类的分布越平缓。我们知道我们的logit值是要被送到softmax函数中去归一化的。如果只是T为1,从下面的图中我们可以看出,最后F(X)输出的概率肯定是后面的极大,前面的极小(因为图中就是这样的一个趋势,前面的很小,并且几乎没有改变什么,后面的剧烈改变,并且极大)。但是如果T增大了,那么最终得到的概率也是平稳增长的。
F ( X ) = [ e Z i ( X ) / T ∑ l = 0 N − 1 e z l ( X ) / T ] i ∈ 0.. N − 1 (1) \begin{aligned} F(X) = \left[\frac{e^{Z_i(X)/T}}{\sum_{l=0}^{N-1}e^{z_{l}(X)/T}}\right]_{i \in 0..N-1} \tag{1} \end{aligned} F(X)=[l=0N1ezl(X)/TeZi(X)/T]i0..N1(1)
在这里插入图片描述

在这里插入图片描述

  接下来我们就该思考,这样就能够防御对抗攻击了吗?其中的原理是什么?首先训练过程中增加温度常数T会使得模型产生的标签分布更加均匀的预测输出,可以预见,当温度系数接近无穷大的时候softmax接近均匀分布。这样做的目的是什么呢?其实使输出的概率更加平滑是为了蒸馏模型在训练之后能够得到更好的泛化能力。怎么理解?举个例子,softmax层的输出,除了正例之外,负标签也带有大量的信息,比如某些负标签对应的概率远远大于其他负标签。而在传统的训练过程中,所有的负标签都被统一对待,而使用了温度T,我们可以明显地感受到负标签的信息量被放大了。在手写数字分类识别的任务中,假设某个输入的”2“更加形似”3“,softmax的输出值中”3“对应的概率为0.1,而其它负标签对应的值都很小,而另一个”2“更加形似”7“,”7“对应的概率为0.1.这两个”2“对应的硬标签的值是相同的,但是对应的软标签却是不同的,由此可见软标签蕴含着比硬标签多的信息,并且软标签分布的熵相对高时,其软标签蕴含的指示就更丰富。
  诚然,这样做确实增强了模型的泛化能力,那么又是怎么能够防御住对抗攻击呢?其实作者在文中给出了说明(这里指的是防御蒸馏这篇文章),首先作者先求模型的敏感性,更确切的说,模型的敏感性是模型对输入敏感,也就是输入的改变对模型的影响程度(举个简单的例子,假设 y = 2 x + 1 y=2x+1 y=2x+1,与 y = 3 x + 1 y=3x+1 y=3x+1这是两个线性模型,一个导数为2一个导数为3,则说明第二个模型对输入更加敏感,因为只要输入改变一点,输出改变的就有很多)。一般来说,我们是对模型的输入求偏导,用Jacobian矩阵来表示或者梯度来表示,如果梯度较大说明输出对输入较敏感,如果梯度较小那么输出对输入不敏感。在这里作者求了softmax对输入x的偏导,如下图,我们可以发现随着温度T的升高,模型的梯度减小,说明模型的敏感性降低。既然模型的敏感度降低,那么就说明模型输入的小小改变对输出影响不是很大,而对于对抗攻击算法(比如说FGSM),就是在损失函数中对输入求偏导,最终取使得损失函数增大方向的梯度,然后添加扰动。但是现在模型的敏感度降低了,那么你添加的扰动自然也就没有效果了。

在这里插入图片描述

作者的方法

目标函数

  对于作者而言,现在要创建出一种对抗攻击算法,首先我们得考虑这种对抗攻击算法要具备什么样的特点,这些特点总结如下:

  • 在人眼看来,生成的对抗样本要和原来的图像没有什么区别或者对辨别影响不大。
  • 对抗样本输入到网络中,网络对它的判断是另外一个类别的(反正只要不是正确的就行了)。
      那么针对上面两个条件,对抗样本的生成问题就变成了下面这个有约束的优化问题,最小化我们的对抗样本图像与原图像之间的距离,同时要满足经过网络之后输出的目标为t(这里的t只要不是正确的类别就可以),并且限制添加扰动之后还在我们既定的范围之内(因为对于图像来说,我们是把像素值归一化到[0,1],所以添加扰动之后的范围也需要是[0,1])。这里的距离可以使用 L 0 L_0 L0范数、 L 2 L_2 L2范数、无穷范数。
    m i n i m i z e   D ( x , x + δ ) s . t .   C ( x + δ ) = t x + δ ∈ [ 0 , 1 ] n \begin{aligned} minimize\ D(x,x+\delta) \\ s.t.\ C(x+\delta) = t \\ x+\delta \in [0,1]^n \end{aligned} minimize D(x,x+δ)s.t. C(x+δ)=tx+δ[0,1]n
      这个时候作者心里就犯嘀咕了,这怎么求嘛。对于上述的优化问题,利用现有的算法直接求解是不行的。所以我们需要将条件进行等价转换,转换成我们能够求解的形式。对于 C ( x + δ ) = t C(x+\delta) = t C(x+δ)=t来说,由于我们的神经网络时高度非线性的,所以直接求解行不通,那么我们就将这个条件进行一个等价转换。作者在这里定义出一个目标函数f,当且仅当 C ( x + δ ) = t C(x+\delta) = t C(x+δ)=t f ( x + δ ) ≤ 0 f(x+\delta)\leq 0 f(x+δ)0。所以作者在这里列举出了7个f,也就是下面的公式(1)到公式(7)。现在我们一一来进行公式的解读,其实所有的这些公式的核心思想就是使得我们的模型在输入 x ′ x' x也就是我们的对抗样本的情况下给出的置信度最高(输出的概率值最高),那么肯定就实现了 C ( x + δ ) = t C(x+\delta) = t C(x+δ)=t
    f 1 ( x ′ ) = − l o s s F , t ( x ′ ) + 1 (1) \begin{aligned} f_1(x') = -loss_{F,t}(x')+1 \tag{1} \end{aligned} f1(x)=lossF,t(x)+1(1)
    f 2 ( x ′ ) = ( m a x ( F ( x ′ ) i ) i ≠ t − F ( x ′ ) t ) + (2) \begin{aligned} f_2(x') = (\underset{i\neq t}{max(F(x')_i)} - F(x')_t)^{+} \tag{2} \end{aligned} f2(x)=(i=tmax(F(x)i)F(x)t)+(2)
    f 3 ( x ′ ) = s o f t p l u s ( m a x ( F ( x ′ ) i ) i ≠ t − F ( x ′ ) t ) − l o g ( 2 ) (3) \begin{aligned} f_3(x') = softplus(\underset{i\neq t}{max(F(x')_i)} - F(x')_t) - log(2) \tag{3} \end{aligned} f3(x)=softplus(i=tmax(F(x)i)F(x)t)log(2)(3)
    f 4 ( x ′ ) = ( 0.5 − F ′ ( x ) t ) + (4) \begin{aligned} f_4(x') = (0.5-F'(x)_t)^{+} \tag{4} \end{aligned} f4(x)=(0.5F(x)t)+(4)
    f 5 ( x ′ ) = − log ⁡ ( 2 − 2 F ( x ′ ) t ) (5) \begin{aligned} f_5(x') = -\log (2-2F(x')_{t}) \tag{5} \end{aligned} f5(x)=log(22F(x)t)(5)
    f 6 ( x ′ ) = ( m a x i ≠ t ( Z ( x ′ ) i ) − Z ( x ′ ) t ) + (6) \begin{aligned} f_6(x') = (\underset{i\neq t}{max}(Z(x')_i) - Z(x')_t)^+ \tag{6} \end{aligned} f6(x)=(i=tmax(Z(x)i)Z(x)t)+(6)
    f 7 ( x ′ ) = s o f t p l u s ( m a x i ≠ t ( Z ( x ′ ) i ) − Z ( x ′ ) t ) − log ⁡ ( 2 ) (7) \begin{aligned} f_7(x') = softplus(\underset{i\neq t}{max}(Z(x')_i) - Z(x')_t) - \log (2) \tag{7} \end{aligned} f7(x)=softplus(i=tmax(Z(x)i)Z(x)t)log(2)(7)

  下面是对上述函数的解读:

  • 第一个,这个目标函数我比较迷惑,暂不解释。
  • 第二个,+号表示求括号里面与0的最大值,所以 ( x ) + (x)^{+} (x)+表示 m a x ( x , 0 ) max(x,0) max(x,0)。括号里面表示的是经过模型判断之后,判断是其它种类的概率与是我们目标概率的差值。如果括号里面的值是负的,那么经过外面的加号,最大值只能小于等于0。所以要想实现 f ( x + δ ) < = 0 f(x+\delta)<=0 f(x+δ)<=0,那么括号里的值必须为负值,括号里面的值为负值,那么就说明输入 x ′ x' x输出概率为我们指定类别的概率最高,那么也就是 C ( x + δ ) = t C(x+\delta) = t C(x+δ)=t
  • 我们对第三个式子进行一个化简假设softplus括号里的值为m,那么有 log ⁡ ( 1 + e m ) − log ⁡ ( 2 ) ≤ 0 \log (1+e^{m})-\log (2) \leq 0 log(1+em)log(2)0,也就是 1 + e m ≤ 2 1+e^{m}\leq 2 1+em2,也即是 e m ≤ 1 e^{m}\leq 1 em1,也就是$m\leq 0 $,所以等价于第二个式子。
  • 第四个,相当于加了个0.5的概率约束希望其成为最大可能类。
  • 第五个,如果实现 f ( x + δ ) < = 0 f(x+\delta)<=0 f(x+δ)<=0,那么 − log ⁡ ( 2 − 2 F ( x ′ ) t ) < = 0 -\log (2-2F(x')_t)<=0 log(22F(x)t)<=0,等价于 log ⁡ ( 2 − 2 F ( x ′ ) t ) > = 0 \log (2-2F(x')_t)>=0 log(22F(x)t)>=0,注意到这个函数是一个减函数,所以有 2 − 2 F ( x ′ ) t < = 1 2-2F(x')_t<=1 22F(x)t<=1,等价于 F ( x ′ ) t ≥ 0.5 F(x')_t\geq 0.5 F(x)t0.5,与上面第四个式子的思想相同。
  • 第六个,思路与第二个是一样的,不同的是,这里使用的是logit的值。
  • 第七个,相当于第三个的变种,但是使用的是logit的值。

  接着作者就将我们的问题转化成了如下问题,那么这种问题在数学上是可以用拉格朗日乘数法来进一步转化,变成求该拉格朗日函数的最值问题。那么使用拉格朗日乘数法之后,就变成了后面的式子。其中 δ \delta δ就是我们的扰动。这里的 c c c是一个合适的常量并且 c > 0 c>0 c>0,在文对于c的选取,作者做了实验,从0.01取到100,最终发现c取1的时候效果最好,如下图所示。
m i n i m i z e   D ( x , x + δ ) s . t .   f ( x + δ ) ≤ 0 x + δ ∈ [ 0 , 1 ] n \begin{aligned} minimize\ D(x,x+\delta)\\ s.t.\ f(x+\delta)\leq 0\\ x+\delta \in [0,1]^{n} \end{aligned} minimize D(x,x+δ)s.t. f(x+δ)0x+δ[0,1]n

m i n i m i z e   ∣ ∣ δ ∣ ∣ p + c ⋅ f ( x + δ ) s . t .   x + δ ∈ [ 0 , 1 ] n \begin{aligned} minimize\ \left| | \delta | \right|_{p} + c·f(x+\delta)\\ s.t.\ x+\delta \in[0,1]^{n} \end{aligned} minimize δp+cf(x+δ)s.t. x+δ[0,1]n

在这里插入图片描述

  其实上面的函数中还有个约束,那就是 x + δ ∈ [ 0 , 1 ] n x+\delta \in[0,1]^{n} x+δ[0,1]n,也就是扰动后的图像必须还是得在我们的范围之内(因为在把图片输入到模型中,图片的像素值会被归一化到[0,1]而我们添加扰动之后,这个约束仍然成立),在文中作者把这个称作盒约束。对于盒约束,作者提出三种方式来解决,这里我们就提最后一种方式。作者引入新的变量 w w w,将上述优化 δ \delta δ的问题转化为优化 w w w,定义如下,首先双曲正切 tanh ⁡ x = e x − e − x e x + e − x \tanh x = \frac{e^{x}-e^{-x}}{e^{x}+e^{-x}} tanhx=ex+exexex,其取值范围为[-1,1],所以 1 2 ( tanh ⁡ ( w i ) + 1 ) \frac{1}{2}(\tanh (w_i)+1) 21(tanh(wi)+1)的取值范围为[0,1],那么将 x i x_i xi移过去,则为 x i + δ i x_i+\delta_i xi+δi的范围为[0,1]。
δ i = 1 2 ( tanh ⁡ ( w i ) + 1 ) − x i \begin{aligned} \delta_{i} = \frac{1}{2}(\tanh (w_i)+1) -x_{i} \end{aligned} δi=21(tanh(wi)+1)xi
  那么对于使用 L 2 L_2 L2范数进行度量,我们等价求解的问题如下,在这里 f ( x ′ ) f(x') f(x)这个函数用所有非目标标签的最大logit值减去目标标签的logit值,也就是说如果 x ′ x' x被识别到目标标签,那么 m a x Z ( x ′ ) : i ≠ t   − Z ( x ′ ) t maxZ(x'):i\neq t\ - Z(x')_t maxZ(x):i=t Z(x)t是负的,假如 k = 0,则 f ( x ′ ) = 0 f(x')=0 f(x)=0,意味着该函数将不会被惩罚,否则如果 x ′ x' x被识别到非目标标签,该函数将会受到惩罚,通过改变k的值可以得到我们设想的置信度,k的值越模型越容易分错,并且错的那一类概率越大。
m i n i m i z e   ∥ 1 2 ( tanh ⁡ ( w ) + 1 ) − x ∥ 2 2 + c ⋅ f ( 1 2 ( tanh ⁡ ( w ) + 1 ) ) f ( x ′ ) = m a x ( m a x Z ( x ′ ) i : i ≠ t − Z ( x ′ ) t , − k ) \begin{aligned} minimize\ \left\| \frac{1}{2}(\tanh (w) +1) - x \right\|^{2}_{2} + c·f(\frac{1}{2}(\tanh (w) +1))\\ f(x') = max(max{Z(x')_{i}:i \neq t} - Z(x')_{t},-k) \end{aligned} minimize 21(tanh(w)+1)x22+cf(21(tanh(w)+1))f(x)=max(maxZ(x)i:i=tZ(x)t,k)


先写到这里,以后想到了再更新(挖坑)

参考资料

[1] lan的小饼干,2021.基于优化的CW攻击方法[DB/OL].[2021-11-14].https://zhuanlan.zhihu.com/p/361169580
[2] 专注于计算机视觉的AndyJiang,2020.深度学习之知识蒸馏[DB/OL].[2021-11-14].https://blog.csdn.net/andyjkt/article/details/108501693

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值