关于Towards evaluating the robustness of neural networks的理解

由于之前提出的防御性蒸馏实际上是一种"梯度遮蔽"的方法,作者也给出了防御性蒸馏有效性的解释,详见之前关于防御性蒸馏的文章,和那里面说的一样;不过关于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提出了一系列能够改变类向量的目标函数:

f1(x)f2(x)f3(x)f4(x)f5(x)f6(x)f7(x)=lossF,t(x)+1=(maxit(F(x)i)F(x)t)+=softplus(maxit(F(x)i)F(x)t)log(2)=(0.5F(x)t)+=log(2F(x)t2)=(maxit(Z(x)i)Z(x)t)+=softplus(maxitZ(x)i)Z(x)t)log(2) f 1 ( x ′ ) = − l o s s F , t ( x ′ ) + 1 f 2 ( x ′ ) = ( m a x i ≠ t ( F ( x ′ ) i ) − F ( x ′ ) t ) + f 3 ( x ′ ) = s o f t p l u s ( m a x i ≠ t ( F ( x ′ ) i ) − F ( x ′ ) t ) − l o g ( 2 ) f 4 ( x ′ ) = ( 0.5 − F ( x ′ ) t ) + f 5 ( x ′ ) = − log ⁡ ( 2 F ( x ′ ) t − 2 ) f 6 ( x ′ ) = ( m a x i ≠ t ( Z ( x ′ ) i ) − Z ( x ′ ) t ) + f 7 ( x ′ ) = s o f t p l u s ( m a x i ≠ t Z ( x ′ ) i ) − Z ( x ′ ) t ) − l o g ( 2 )

其中, loss l o s s 就是 x x 的交叉熵损失函数,t是目标攻击类别, softplus(x)=log(1+exp(x)) s o f t p l u s ( x ) = log ⁡ ( 1 + exp ⁡ ( x ) ) F(x) F ( x ) 是softmax层对于样本 x x 的输出,Z(x)是logit层对于样本 x x 的输出,也就是softmax层的输入。
 除此以外,为了保证输出能够产生一个合理的图像,需要0xi+δi1,这实际上被称为盒约束 (box constraints)。作者总结出了三种解决盒约束优化问题的方式:
1、投影梯度下降法,在执行标准梯度下降时执行,将所有坐标剪切到框内。然而这种方法对于具有复杂更新步骤的梯度下降方法(例如,具有动量的梯度下降),效果不佳:我们剪切真实的 xi x i 的同时,同时也修改了下一次迭代的输入,这并不是我们期望的。
2、裁剪梯度下降法,与每一步迭代裁剪 x x 的值不同的,该方法将裁剪直接放入了优化目标,即用f(min(max(x+δ,0),1))代替原目标函数 f(x+δ) f ( x + δ ) 。但这显然会带来一个新的问题,就是卡在平坦区域, x x 卡在边界值动不了。
3、改变变量,作者就采用的这种方法,即用新的变量w代替原先的 x x ,即
δi=12(tanh(wi)+1)xi

据此,作者提出了对应与三种范数约束的求解方法:
1、 L2 L 2 attack
我们选择目标类别 t t
min||12(tanh(w)+1)x||22+cf(12(tanh(w)+1))

其中 f f 定义为:
f(x)=max(max{Z(x)i:it}Z(x)t,k)

我们可以通过调整 k k 来控制错误分类发生的置信度。 参数k鼓励求解器找到一个敌对的实例 x x ′ ,它将被高度置信地归类为 t t 类。除此以外,作者还使用了多次随机初始化来减少陷入局部最优解的概率。
  对于L2攻击中常量 c c ,作者提出:从很小的值,例如104,开始,如果没找到就将 c c 翻倍,直至找到或者达到最大值,例如1010,如果找到就使用该 c c 值。
2、L0 attack
由于0-范数是不可微的因此不能使用标准的梯度下降法来进行求解,因此我们基于 L2 L 2 攻击来生成 L0 L 0 攻击。具体而言,就是先根据 L2 L 2 攻击生成扰动向量 δ δ ,因此 x+δ x + δ 就是一个对抗样本,我们计算 g=f(x+δ) g = ∇ f ( x + δ ) ,然后根据评估函数 g g 选择像素i=argminigiδi gi g i 实际上评估的是像素 i i 对于输出f的影响),然后固定像素 i i ,再利用L2攻击生成对抗样本,直至无法找到对抗样本为止。
3、 L L ∞ attack
对于无穷范数,假设我们使用类似于之前的:
mincf(x+δ)+||δ|| min c ⋅ f ( x + δ ) + | | δ | | ∞

我们可以很轻易的发现梯度下降法的效果并不理想(例如l_bfgs的无穷范数),这是由于 ||δ|| | | δ | | ∞ 只会惩罚向量中最大的那个元素,而对于其余元素没有任何影响。因此,梯度下降很快就会停滞在两个次优解之间。 考虑一个情况,其中 i=0.5 i = 0.5 j=0.5ϵ j = 0.5 − ϵ L L ∞ 只会惩罚 δi δ i 而不会惩罚 δj δ j 。并且 δj||δ|| ∂ ∂ δ j | | δ | | ∞ 在该点的值为 0 0 ,因此梯度仍然会增大δj,尽管它已经很大。 因此在下一次迭代中,可能会移动到 δj δ j δi δ i 略大的位置,比如 i=0.5ϵ i = 0.5 − ϵ ′ j=0.5+ϵ j = 0.5 + ϵ ″ ,这就可能陷入僵局。 换句话说,梯度下降可能在 δi=δj=0.5 δ i = δ j = 0.5 的线上来回摆动。
 鉴于此,作者转而提出优化如下问题:
mincf(x+δ)+i[(δiτ)+] min c ⋅ f ( x + δ ) + ∑ i [ ( δ i − τ ) + ]

在每次迭代之后,如果对所有的 i i 都有δi<τ,我们将 τ τ 减少0.9倍并重复; 否则,我们终止搜索。
再次,我们必须选择一个好的常数 c c 用于L攻击。 我们采用与 L0 L 0 攻击相同的方法:首先将 c c 设置为非常低的值,然后以此c值运行 L L ∞ 攻击。 如果失败,我们加倍 c c 并重试,直到成功。 如果c超过固定阈值,我们中止搜索。
在每次迭代中使用“热启动”进行梯度下降,作者指出该算法的速度与之前的L2算法(使用单个起点)一样快。
实际上0-范数攻击很慢,并且也不是很好的攻击方式,作者也并不推荐。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
最近,对于图神经网络的研究日益深入,引起了广泛关注。图神经网络是一种能够对图数据进行建模和分析的神经网络模型。它可以处理任意结构的图形数据,如社交网络、蛋白质互作网络等。 在过去的几年中,研究者们提出了许多图神经网络的模型和方法。然而,这些方法仍然面临一些挑战,例如有效地处理大型图形数据、学习高质量的图嵌入表示以及推理和预测复杂的图结构属性等。 为了克服这些挑战,研究人员开始通过增加神经网络的深度来探索更深的图神经网络模型。深度模型具有更强大的表达能力和学习能力,可以更好地捕捉图数据中的关系和模式。这些深层图神经网络可以通过堆叠多个图神经网络层来实现。每个图神经网络层都会增加一定的复杂性和抽象级别,从而逐渐提高图数据的表达能力。 除了增加深度外,研究人员还提出了一些其他的改进来进一步提高图神经网络的性能。例如,引入注意力机制可以使模型能够自动地选择重要的节点和边来进行信息传播。此外,研究人员还研究了如何通过引入图卷积操作来增强图数据的局部性,从而提高图神经网络模型的效果。 综上所述,对于更深层的图神经网络的研究将在处理大规模图形数据、学习高质量的图表示以及进行复杂图结构属性的推理方面取得更好的性能。随着深度图神经网络的推广和应用,我们可以预见它将在许多领域,如社交网络分析、推荐系统和生物信息学中发挥重要作用,为我们带来更多的机遇和挑战。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值