Towards Evaluating the Robustness of Neural Networks详解

论文信息

题目:Towards Evaluating the Robustness of Neural Networks

作者:Nicholas Carlini, David Wagner

会议: ICLR (International Conference on Learning Representations)

单位:MIT-IBM Watson AI Lab, IBM Research

论文内容

关于JSMA中选择像素对来进行修改的方法,作者做出了不一样的解释:
假设softmax层最小的输入为-100,那么softmax层的对于该输入的输出为0,即使增加了10,由-100变成了-90,仍然为0,显然这对输出没有什么影响。而如果softmax层最大的输入为10,将其更改为了0,显然这会使得输出产生巨大的变化。而JSMA的攻击方式并不会考虑从0到10和从-100到-90的不同,他是一视同仁的。

而在蒸馏训练之后,会使得这样的不同放大。假设输出类向量为:[ -674.3225 , -371.59705 , -177.78831 , 562.87225 ,-1313.5781 , 998.18207 , -886.97107 , -511.58194 ,-126.719666, -43.129272]。要改变类别实际上只需要第四个数比第六个数大即可(即562增长,998下降)。但是JSMA会由于增长562会使得例如-1313,-886的数增加很多而放弃。这实际上是算法本身的问题。

要攻击防御性蒸馏模型实际上很简单,只需要不考虑这些其他的类向量值,只考虑需要超过的类向量和自身的类向量值即可,甚至可以只关注增加自身的类向量

Nicholas Carlini和David Wagner提出了一系列能够改变类向量的目标函数:
f 1 ( x ′ ) = − loss ⁡ F , t ( x ′ ) + 1 f_{1}\left(x^{\prime}\right)=-\operatorname{loss}_{F, t}\left(x^{\prime}\right)+1 f1(x)=lossF,t(x)+1
f 2 ( x ′ ) = ( max ⁡ i ≠ t ( F ( x ′ ) i ) − F ( x ′ ) t ) + f_{2}\left(x^{\prime}\right)=\left(\max _{i \neq t}\left(F\left(x^{\prime}\right)_{i}\right)-F\left(x^{\prime}\right)_{t}\right)^{+} f2(x)=(maxi=t(F(x)i)F(x)t)+
f 3 ( x ′ ) = softplus ⁡ ( max ⁡ i ≠ t ( F ( x ′ ) i ) − F ( x ′ ) t ) − log ⁡ ( 2 ) f_{3}\left(x^{\prime}\right)=\operatorname{softplus}\left(\max _{i \neq t}\left(F\left(x^{\prime}\right)_{i}\right)-F\left(x^{\prime}\right)_{t}\right)-\log (2) f3(x)=softplus(maxi=t(F(x)i)F(x)t)log(2)
f 4 ( x ′ ) = ( 0.5 − F ( x ′ ) t ) + f_{4}\left(x^{\prime}\right)=\left(0.5-F\left(x^{\prime}\right)_{t}\right)^{+} f4(x)=(0.5F(x)t)+
f 5 ( x ′ ) = − log ⁡ ( 2 F ( x ′ ) t − 2 ) f_{5}\left(x^{\prime}\right)=-\log \left(2 F\left(x^{\prime}\right)_{t}-2\right) f5(x)=log(2F(x)t2)
f δ ( x ′ ) = ( max ⁡ i ≠ t ( Z ( x ′ ) i ) − Z ( x ′ ) t ) + f_{\delta}\left(x^{\prime}\right)=\left(\max _{i \neq t}\left(Z\left(x^{\prime}\right)_{i}\right)-Z\left(x^{\prime}\right)_{t}\right)^{+} fδ(x)=(maxi=t(Z(x)i)Z(x)t)+
f 7 ( x ′ ) = softplus ⁡ ( max ⁡ i ≠ t Z ( x ′ ) i ) − Z ( x ′ ) t ) − log ⁡ ( 2 ) \left.f_{7}\left(x^{\prime}\right)=\operatorname{softplus}\left(\max _{i \neq t} Z\left(x^{\prime}\right)_{i}\right)-Z\left(x^{\prime}\right)_{t}\right)-\log (2) f7(x)=softplus(maxi=tZ(x)i)Z(x)t)log(2)
其中, l o s s loss loss就是xx的交叉熵损失函数, t t t是目标攻击类别, s o f t p l u s ( x ) = l o g ( 1 + e x p ( x ) ) softplus(x)=log(1+exp(x)) softplus(x)=log(1+exp(x)) F ( x ) F(x) F(x) s o f t m a x softmax softmax层对于样本 x x x的输出, Z ( x ) Z(x) Z(x)是logit层对于样本 x x x的输出,也就是softmax层的输入

可以得到目标函数
 minimize  x ∥ x − x 0 ∥ 2 2 + c ⋅ f ( x , t )  subject to  x ∈ [ 0 , 1 ] p \begin{aligned} &\text { minimize }_{\mathbf{x}}\left\|\mathbf{x}-\mathbf{x}_{0}\right\|_{2}^{2}+c \cdot f(\mathbf{x}, t)\\ &\text { subject to } \mathbf{x} \in[0,1]^{p} \end{aligned}  minimize xxx022+cf(x,t) subject to x[0,1]p

为了保证输出能够产生一个合理的图像,需要0≤xi+δi≤1,这实际上被称为盒约束 (box constraints)。作者总结出了三种解决盒约束优化问题的方式:

  • 投影梯度下降法,在执行标准梯度下降时执行,将所有坐标剪切到框内。然而这种方法对于具有复杂更新步骤的梯度下降方法(例如,具有动量的梯度下降),效果不佳:我们剪切真实的xi的同时,同时也修改了下一次迭代的输入,这并不是我们期望的
  • 裁剪梯度下降法,与每一步迭代裁剪xx的值不同的,该方法将裁剪直接放入了优化目标,即用 f ( m i n ( m a x ( x + δ , 0 ) , 1 ) ) f(min(max(x+δ,0),1)) f(min(max(x+δ,0),1))代替原目标函数 f ( x + δ ) f(x+δ) f(x+δ)。但这显然会带来一个新的问题,就是卡在平坦区域, x x x卡在边界值动不了
  • 改变变量,作者就采用的这种方法,即用新的变量 w w w代替原先的 x x x,即
    δ i = 1 2 ( tanh ⁡ ( w i ) + 1 ) − x i \delta_{i}=\frac{1}{2}\left(\tanh \left(w_{i}\right)+1\right)-x_{i} δi=21(tanh(wi)+1)xi

这样的改变使得优化问题变成以 w w w为优化器的无约束最小化问题,并且可以将DNN的典型优化工具(即反向传播)用于求解最优w并获得相应的对抗性示例 x x x
根据此,作者提出了三种范数约束求解的方法

  • L 2 L_{2} L2 attack选择目标类别t
    min ⁡ ∥ 1 2 ( tanh ⁡ ( w ) + 1 ) − x ∥ 2 2 + c ⋅ f ( 1 2 ( tanh ⁡ ( w ) + 1 ) ) \min \left\|\frac{1}{2}(\tanh (w)+1)-x\right\|_{2}^{2}+c \cdot f\left(\frac{1}{2}(\tanh (w)+1)\right) min21(tanh(w)+1)x22+cf(21(tanh(w)+1))
    以上 f f f定义为
    f ( x ′ ) = max ⁡ ( max ⁡ { Z ( x ′ ) i : i ≠ t } − Z ( x ′ ) t , − k ) f\left(x^{\prime}\right)=\max \left(\max \left\{Z\left(x^{\prime}\right)_{i}: i \neq t\right\}-Z\left(x^{\prime}\right)_{t},-k\right) f(x)=max(max{Z(x)i:i=t}Z(x)t,k)
    Z ( x ′ ) Z(x^{\prime}) Z(x)为logit输出,softmax输入,可以通过调整k来控制错误分类发生的置信度。 参数 k k k鼓励求解器找到一个敌对的实例 x ′ x^{\prime} x,它将被高度置信地归类为 t t t类。除此以外,作者还使用了多次随机初始化来减少陷入局部最优解的概率。 对于 L 2 L_{2} L2攻击中常量c,作者提出:从很小的值,例如 1 0 − 4 10^{−4} 104,开始,如果没找到就将c翻倍,直至找到或者达到最大值,例如 1 0 10 10^{10} 1010,如果找到就使用该c值。
  • L 0 L_{0} L0 attack
    由于0-范数是不可微的因此不能使用标准的梯度下降法来进行求解,因此我们基于 L 2 L_{2} L2 攻击来生成 L 0 L_{0} L0 攻击。具体而言,就是先根据L2L2攻击生成扰动向量δδ,因此 x + δ x+δ x+δ就是一个对抗样本,我们计算 g = ∇ f ( x + δ ) g=\nabla f(x+\delta) g=f(x+δ),然后根据评估函数 g g g选择像素 i = arg ⁡ min ⁡ i g i ⋅ δ i i=\arg \min _{i} g_{i} \cdot \delta_{i} i=argminigiδi(gigi实际上评估的是像素 i i i对于输出 f f f的影响),然后固定像素 i i i,再利用 L 2 L_{2} L2 攻击生成对抗样本,直至无法找到对抗样本为止。
  • L ∞ L_{∞} L attack
    min ⁡ c ⋅ f ( x + δ ) + ∥ δ ∥ ∞ \min c \cdot f(x+\delta)+\|\delta\|_{\infty} mincf(x+δ)+δ
    我们可以很轻易的发现梯度下降法的效果并不理想(例如l_bfgs的无穷范数),这是由于 δ ∞ δ_{∞} δ只会惩罚向量中最大的那个元素,而对于其余元素没有任何影响。因此,梯度下降很快就会停滞在两个次优解之间。 考虑一个情况,其中 i = 0.5 i=0.5 i=0.5 j = 0.5 − ϵ j=0.5−ϵ j=0.5ϵ L ∞ L_{∞} L只会惩罚 δ i δ_{i} δi而不会惩罚 δ j δ_{j} δj。并且 ∂ ∂ δ j ∥ δ ∥ ∞ \frac{\partial}{\partial \delta_{j}}\|\delta\|_{\infty} δjδ在该点的值为0,因此梯度仍然会增大 δ j δ_{j} δj,尽管它已经很大。 因此在下一次迭代中,可能会移动到 δ j δ_{j} δj δ i δ_{i} δi略大的位置,比如 i = 0.5 − ϵ ′ i=0.5−ϵ′ i=0.5ϵ j = 0.5 + ϵ ′ j=0.5+ϵ′ j=0.5+ϵ,这就可能陷入僵局。 换句话说,梯度下降可能在 δ i = δ j = 0.5 δ_{i}=δ_{j}=0.5 δi=δj=0.5的线上来回摆动

https://blog.csdn.net/kearney1995/article/details/79904095

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pinn山里娃

原创不易请多多支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值