当前位置: 首页 > > 天 方 夜 “谈” 第34期 | EPGD方法用于集成对抗攻击

天 方 夜 “谈” 第34期 | EPGD方法用于集成对抗攻击

发表于:2020-03-12 17:33 作者: 方滨兴班 阅读数(6290人)

Published in: IJCAI2019 workshop

Author(s): Fanyou Wu, Rado Gazo, Eva Haviarovaand Bedrich Benes

1. 引言

深度神经网络在对抗样本面前是脆弱的。理解如何操作对抗样本有利于提高模型的鲁棒性和开发更优的训练算法。目前,已经有很多的对抗算法被提出来去产生对抗样本。一般地,这些算法可以被划分成两类。1)最大可允许的扰动攻击;2)基于正则化的攻击;最大可允许的扰动攻击比正则化攻击更快,但是扰动也更大。这两种攻击都保留了一个超参数叫做步长或者学习率,它控制最大容差或收敛速度。在大多数的情况下,步长是一个固定的数字,但是DDN(Decoupling Direction and Norm)方法根据当前迭代的label通过权重衰减或者权重增加来改变步长。模型集成已经被广泛应用于比赛和研究当中,用来提高模型的性能和鲁棒性。因此,攻击集成模型对于对抗样本来说也是必要的。目前,不管是在研究和比赛中,都是使用固定权重的方法将logits融合在一起来进行简单的模型集成。在DDN的启发下,作者提出了一种有效的集成对抗攻击的PGD算法,改进了集成模型的搜索方法和步长。

2. 相关研究

本小节重点介绍了比赛问题的相关公式和相应的度量标准以及一些著名的攻击方法。

2.1 问题定义

扰动计算公式

图片.png

x表示输入空间中的一个样本,d表示样本的宽和高(此处图片的宽和高是相同的),D表示的是对抗样本与原始样本之间的差距。对于目标攻击,success意味着x_adv成功欺骗分类器到指定的标签,而对于非目标攻击,success只是意味着欺骗分类器远离真实标签。有一件事必须指出:这种距离测量不同于x_raw - x_adv的l2范数或所谓的Frobenius范数。在这种情况下,它测量的是图像RGB3个通道中空间点的平均距离。这种特定的设计有利于生成更多空间稀疏的对抗样本。

评分公式

图片.png

N表示有N个评估模型f_i,i从1到N。n表示测试图片的数量,在比赛中是550张。对于这个任务,得分越小越好。

2.2 攻击

本小节主要介绍了一些经典的对抗样本生成算法。Fast Gradient Sign Method (FGSM)FGSM根据损失函数的梯度方向进行单步的迭代攻击。epsilon控制扰动的大小,clip控制生成的x在0,1之间。

图片.png

PGD攻击

PGD是FGSM的迭代版本,将FGSM的单步迭代攻击改成了多步迭代。

图片.png

在这里,clip是一个投影函数,可以用tanh等其他函数来代替,从而在有效范围内强制每个迭代输出。为了进一步利用二阶信息,可以采用基于动量的方法或RMSprop、Adam等优化方法来加速迭代过程,增强可移植性。基于动量的PGD方法如下:

图片.png

µ是一个参数来平衡当前的梯度和历史梯度。DDN针对NeurIPS 18对抗性攻击竞赛,提出了一种PGD方向和范数解耦的方法。一般来说,在每次迭代中,DDN都将其搜索方向和步长与当前预测的标签相关联。这种方法性能更好,也可以加快搜索过程。集成对抗攻击在NIPS 17的对抗性攻击比赛中,提出了交叉熵和softmax在logit中融合的效果最好。设fi(x)为第i个模型的logit输出。这种集成方法可以形成如下:

图片.png

II的定义如下:

图片.png

3. EPGD算法

在本节中,作者首先提出了算法1 - EPGD,其中大写E表示有效和集成。

图片.png

3.1 步长变化

步长变化对于训练深度神经网络和对抗攻击来说都不是一个新概念。DDN将步长修改为每次迭代的权值衰减。在这里,作者提出了步长修正方法,而不是使用指数衰减,通过执行一个截断的线性最小-最大尺度的步长,如下:

图片.png

该方法是对最佳步长的贪婪估计,并且在比赛中比DDN权值衰减表现得更好。

3.2 改变模型的权重

图片.png

图1 分别是VGG16,Resnet50和InceptionV3单独生成的对抗噪声图像,黑点表示至少有一个通道值被修改了。

图1显示了输入图像x相对于损失函数的单个模型梯度的一般规律。在大多数情况下会存在一些重叠区域,这导致了黑盒攻击具有一定的可迁移性。作者观察到,对于固定单个模型权值的集成攻击,有时单个模型难以达到决策边界,作者认为固定权值是导致局部最优的一个原因。与DDN不同的是,动量法等其他二阶搜索方法可以加快搜索速度。然而,这种方法也很难达到全局最优。通过改变模型总体权重来解决这个问题。在每次迭代中,作者使用所有未被成功攻击的模型的平均梯度作为方向。通过对以上方法的测试,发现EPGD方法是所有集成模型中表现最好的。

3.3 Masks选择

作者定义m在0到1之间,修改最后的输出如下:

图片.png

使用mask是L2范数攻击的一个非常自然的想法,它已经在竞赛和研究中被广泛使用。在此次的竞赛标准中,使用空间掩模比使用通道掩模更好。对于目标攻击,作者没有对整个图像空间进行更新,而是将噪声区域固定为相对较小但连续的区域,以减少l2的整体距离,因为很明显有些特征比其他特征重要得多。对于非目标攻击,尺寸为7×7、空间为7像素的分散网格掩模效果最好。一个可能的原因是,大多数深度神经网络架构都是从3×3或7×7的全局池化操作开始的。

4. 实验和评估

在比赛中,一些技巧也有助于提高在线分数,并可能对最终排名产生重大影响。算法2是具体的实现算法,它解决了一些具体问题。表1是方法和框架更改的主要里程碑,表2是最终提交的参数。

图片.png

表1 不同方法加不同模型以及不同tricks组合产生的结果展示

图片.png

表2 最终提交的参数的设置,例如ms表示mask尺寸的大小

图片.png

在这一节中,作者总结了一些在对抗性攻击比赛中有用的技巧。提交时,使用一个代理模型Inception V3,这是作者自己训练的,还有两个官方模型,是公开可用的Resnet 50和VGG 16。

4.1 浮点映射

将浮点数映射为整数的方法也会影响攻击成功率和总距离。作者定义floor操作如下:

图片.png

根据这个定义,有三种不同的舍入方法:

图片.png

eq12和eq13是floor和round的标准定义,不需要讨论太多。eq14是作者定义的将浮点数映射为整数的实现方法。其主要思想是使数字尽可能接近原始输入。在本次比赛中,作者的方法是所有三种映射操作中表现最好的。

4.2 Resize方法

考虑到评价模型的输入大小不同,而距离测量都是基于299×299。所以最好的选择是在299×299下生成对抗样本。通常,resize变换是bilinear interpolating, neatest interpolating等。因为官方示例使用的是PIL.Image.BILINEAR作为插值方法,作者也自然而然地使用双线性插值,它确实执行得最好。但是,对于Tensorflow版本不超过1.13,tf.image.resize images与PIL不一致,使用early-stop trick会降低攻击成功率。这个问题也是tensorflow 1.14或tensorflow 2.0的issue。

4.3 参数选择

这个竞赛的最终目的是在有限的时间内(25分钟内生成550张图片)生成尽可能小的对抗样本。因此,对于每个图像使用固定的参数,例如步长和掩码大小,通常不会进行优化。较小的步长和掩码大小,但是较大的迭代会导致时间的耗尽,而较大的步长和掩码大小则会引起较大的扰动。虽然修改步长可以部分地解决这个问题,但是应该有其他的技巧来平衡它。对于实际的代码实现,比如算法2,采用了一种阶梯式或过滤式的策略,从微小的扰动参数开始,逐步增加扰动的极限。

4.4 对抗样本评估

对抗样本的评估是高效计算和离线测试的关键步骤。基于上述分析,应该谨慎地应用这一步,因为不同库中的图像转换略有不同。为了准确地评估相同的图像,EPGD每迭代一轮,生成一个输出x‘ 然后使用PIL.Image.BILINEAR调整图像的大小作为对抗样本评估的输入。

4.5 框架选择

Tensorflow和Pytorch是两个最重要的深度学习库。在初始阶段和最终阶段的一半时间,作者使用了pytorch,是因为它的便捷性。然而,由于Tensorflow和Pytorch实现批处理的不同导致最终选择使用Tensorflow,因为知道3个给定的模型中有2个被用作在线评估,并在Tensorflow下运行。作者还测试了几个版本的Tensorflow,因为性能和api可能会因不同版本的Tensorflow而改变。Tensorflow 1.14似乎是这次比赛的最佳选择,因为它有tf.slim和resize v2方法。但是,作者发现与版本1.4相比,tf 1.14的速度太慢了。

5. 结论

在本文中,作者提出了一种有效的改进的PGD方法,称为EPGD,通过自动更改集成权重和每次迭代、每次输入的步长来攻击集成模型。同时,作者提出了一些实用的实现技巧,旨在有效地搜索小噪声对抗样本。实验结果表明,与PGD方法相比,该方法可以生成扰动更小的对抗样本,同时保持了较高的效率。用这种方法,作者在IJCAI19定向攻击对抗赛中获得了第一名。

关于 天 方 夜 “谈”

天方夜谈原意讲不切实际的东西,而这里想要 “脚踏实地”真正弄懂并感受一篇文章的思想。

方班人有自己的浪漫,

我们探讨知识,谈论理想,

采摘科研的繁星,

脚下是星辰大海。

天:代表我们的理想犹如天空般浩荡

方:代表方班

夜:代表代码人的冷静与静谧

谈:代表方班愿与您,就领域内的经典思想和前沿成果“秉烛夜谈”



相关新闻

大家都在学

课程详情

利用write函数泄漏地址(一)

课程详情

GG

课程详情

Ollydbg之调试工具简单说明