论文地址:https://arxiv.org/pdf/2012.05434.pdf
代码地址:https://github.com/vtddggg/CAA
What is adversarial attack?
对抗攻击是指通过对输入添加微小的扰动使得分类器分类错误,一般对用于深度学习的网络的攻击算法最为常见,对抗攻击的应用场景包括CV和NLP等。例如,通过对图片添加精心准备的扰动噪声使得分类器出错,或者通过对一个句子中的某些词进行同义词替换使得情感分类错误。
Abstract
在实践中,攻击算法是由专家人工选择和调整的,用以破坏机器学习系统,然而,手动选择攻击者往往不是最优的,这容易导致错误的评估模型安全性。因此这篇文章提出了一种新的组合对抗攻击方法(CAA),用于从32个攻击者候选池中自动搜索攻击算法以及超参数的最佳组合。
文中作者设计了一个搜索空间,将攻击策略表示为一个攻击序列,即:前一个攻击者的输出被用作后续攻击者的初始化输入。采用NSGA-II多目标遗传算法寻找复杂度最小的最强攻击策略。
What is NSGA-II?
NSGA-II是目前最流行的多目标遗传算法之一,它降低了非劣排序遗传算法的复杂性,具有运算速度快,解集的收敛性好的优点,成为其他多目标优化算法性能的基准。
NSGA-II就是在第一代非支配排序遗传算法的基础上改进而来,其改进主要是针对如上所述的三个方面:
- 提出了快速非支配排序算法,一方面降低了计算的复杂度,另一方面它将父代种群跟子代种群进行合并,使得下一代的种群从双倍的空间中进行选取,从而保留了最为优秀的所有个体
- 引进精英策略,保证某些优良的种群个体在进化过程中不会被丢弃,从而提高了优化结果的精度
- 采用拥挤度和拥挤度比较算子,不但克服了NSGA中需要人为指定共享参数的缺陷,而且将其作为种群中个体间的比较标准,使得准Pareto域中的个体能均匀地扩展到整个Pareto域,保证了种群的多样性。
具体有关NSGA-II遗传算法的内容这里不多详述。有兴趣可以观看视频了解。
视频地址:https://www.bilibili.com/video/BV1q7411C77i?from=search&seid=12093857430959589428
Introduction
深度神经网络很容易受到对抗性攻击,这些攻击的目的是通过产生难以察觉的干扰来欺骗一个训练良好的模型,这一严重的安全隐患很快就引起了机器学习社区的广泛关注,通过对对抗实例的深入研究,大量的攻击算法被提出用来验证对抗的鲁棒性。同时,也产生了一些开源的工具箱。
对抗攻击实现工具
目前来说,比较主流的工具有cleverhans,foolbox,advertorch。
cleverhans | foolbox | advertorch | |
---|---|---|---|
针对模型框架 | tensorflow/keras/pytorch | tensorflow/pytorch | pytorch |
产生速度 | 可以批量 | 无法批量 | 可以批量 |
1 | cleverhans:https://github.com/cleverhans-lab/cleverhans |
The necessity of CAA
然而,即使开发了设计良好的工具箱,攻击一个模型仍然需要大量的用户体验或手动调整攻击的超参数,特别是当我们不知道目标模型的防御机制时,这种依赖用户的特性也使得对抗性攻击的工具化变得困难。另一方面,手动选择攻击者有一定的倾向性和次优性。这可能引起对模型安全性的错误评估。为了实现更全面,更强的攻击,我们首先提出了通过从一组攻击算法中搜索有效的攻击策略来实现自动化攻击过程。我们将这个过程称为复合对抗攻击(CAA)
上图是CIFAR-10对抗训练模式下CAA与其他攻击者的比较,其中CAA-n代表CAA攻击有几次重启,从上图可以发现CAA只需要少量的梯度评估就能获得最佳的攻击性能。
为了演示CAA的关键思想,图2中给出了一个示例。假设有两种可能的攻击方式,空间攻击和FGSM攻击,目标是选择其中一个或多个来组成一个更强的攻击策略。在图2(b)中,最简单的方法是选择最佳的单次攻击作为最终策略。然而,单个攻击者总是不够强大和一般化。一个更好的解决方案是找到多个攻击者,然后通过不断选择能够成功为模型提供工具的最佳输出来集成它们(如图2(c)),虽然这样可以获得较高的攻击成功率,但集成攻击只提供输出级的聚合,没有考虑不同攻击机制之间的互补性。
在我们的复合对抗攻击中,我们将攻击策略定义为攻击者的串行连接,其中前一个攻击者的输出作为后继攻击者的初始化输入。在图2(d)中,两个攻击者可以生成四种可能的排列。通过使用搜索算法来寻找最佳排列,我们发现空间攻击之后的FGSM攻击错误率比他们整体可以高出26%。
该策略的优点在于两个方面:1)通过引入身份攻击,CAA模型可以表示任意一种攻击。集合攻击也可以用CAA的策略集合来表示,因此,CAA是更为广义的公式。2) 一个强大的攻击可以通过渐进的步骤产生,早期的研究发现,一些接近决策边界的起始点比原始种子更适合于优化攻击。类似地,在CAA中,我们使用前面的攻击者创建一个距离原始种子足够远、距离边界足够近的示例。这样,随后的攻击更容易找到一个更强的对抗实例。
具体来说,CAA是通过一个包含多个选择和攻击顺序的搜索空间来实现操作。对于每一个攻击操作都有两个超参数,幅值$\epsilon$和迭代步骤t,采用NSGA-II遗传算法去寻找能够突破目标模型最好的攻击策略,具有最高的准确率和最低的复杂度。大量实验表明,CAA在两个用例中取得了很好的改进:1)CAA可以直接应用于感兴趣的目标模型上,以找到最佳攻击策略$CAA_{dic}$ 2)学习策略可以在不同的任务下保持较高的成功率转移到攻击多模型体系结构$CAA_{sub}$。我们对最近提出的11种关于L无穷、L2和无限制设置的防御机制的$CAA_{dic}$和$CAA_{sub}$进行了评估。结果表明,复合对抗攻击(CAA)在白盒场景中达到了很好的效果,大大降低了攻击时间开销。
Preliminaries and Related work
符号定义:具体请看文章定义。
常规对抗性实例:常规的对抗性例子是具有有限数量级的扰动,这通常是通过将扰动限定在某个范围内来实现的,有许多改进版本的FGSM使用基于动量的多步优化,或扰动的随机初始化。基于L2范式的攻击(如DDNL2和C&W)。基于L1的攻击者保证扰动的稀疏性,如EAD。但是,L1攻击在实际攻击设置中并不常用。因此,文章没有实现在L1限制下的CAA
无限制对抗实例:无限制对抗性实例是一种新型的不受范数有界小扰动限制的对抗性实例。在这种情况下,攻击者可能会在不更改语义的情况下显著更改输入。首先介绍了无限制对抗的概念,并提出了一个两人无限制攻防对抗的例子。近年来,有许多研究利用生成模型或空间变换来构造这种更强的无限制攻击。在本文中,我们还实现了最大搜索空间(总共19次攻击)的无限制CAA。我们发现,即使应用非常简单的基本攻击者来形成搜索空间,我们的CAA搜索的策略在不受限制的设置下仍然产生令人惊讶的攻击能力。
自动机器学习:我们的方法受到自动机器学习及其子方向(如神经结构搜索(NAS)和超参数优化(HPO))的最新进展的启发。其中,搜索算法用于算法选择、特征预处理步骤和超参数的自动提取。另一个类似的方向是自动增强,它自动搜索改进的数据增强策略。这些自动化技术不仅使人们摆脱了繁琐的算法微调过程,而且大大提高了学习系统的效果和效率。在本文中,我们采用了AutoML中的一些搜索技术,证明了搜索更好的算法和参数也有助于对抗性攻击。
有关AutoML相关知识可移步这篇文章:https://zhuanlan.zhihu.com/p/112148211
Composite Adversarial Attacks
通过重投影模块限制$l_p$范式
在文中problem formulation中公式2所提出的攻击策略是一种一般形式,它对全局扰动没有约束,当攻击序列变长时,每个攻击算法的计算扰动会进行累加,这就会导致对原始输入的最终扰动较大,为了解决这一问题,作者提出在两个连续攻击算法之间插入一个重投影模块,如上图3所示,重投影模块首先会判断该策略对以前的攻击者所累积的$\epsilon$是否大于全局的$\epsilon_{global}$,如果是,累计扰动将会被剪切或重新缩放,使得$l_p$-norm在$\epsilon_{global}$中有界,有了这种改进,可以在任意范数条件下使用复合对抗攻击。
搜索目标
之前的工作通常以攻击成功率(ASR)或鲁棒准确率(RA)作为设计算法的目标。然而,这些目标都可以通过花费更多的时间来实现。例如通过随机重启或者多目标方式以获得更高的成功率,这样也就牺牲了运行效率。从而使得算法变得非常慢,甚至比一些黑盒攻击还要耗时。CAA强调一个好的并且强大的攻击者应该是有效且高效的,为了达到这个目标,作者设计了最小化两个术语的目标:强大的准确性和复杂性。第一个术语RA是目标模型在生成的对抗性例子上的准确性,这也反映了攻击者的实力。对于第二项复杂度,使用梯度评价的个数作为复杂度度量,对于普通攻击算法,梯度评估次数表示攻击算法在攻击过程中计算目标模型梯度的次数,一般等于优化步骤t。因此我们可以将总体目标函数表示为:
其中s(x)代表输入x后攻击策略的输出。N代表攻击策略的长度。$\alpha$是一个权衡攻击强度和复杂性的系数。之后可以应用一个搜索算法,通过最小化目标,从数千种可能的策略中找到最优的的攻击策略。
搜索空间
搜索空间被分为两个部分 1)寻找攻击操作的选择和命令。2)寻找每一次攻击操作的幅值$\epsilon$和步数t。对于由N个基础攻击操作组成的攻击策略。攻击操作搜索形成了一个$||A||^N$可能性的问题空间。此外,每个操作也与他们的幅值和步数有关。我们将幅值$\epsilon$和步数t的范围大小离散为8个值(均匀间距),这样就可以将复合对抗攻击搜索简化为一个离散优化问题。最后,整个搜索空间的总大小为$(88||A||)^N$
在这篇文章中,将策略空间分为三种类型:$S_{l_\infty},S_{l_2}和S_{unrestricted}$,分别在$S_{l_\infty}和S_{l_2}$上实现了6种$S_{l_\infty}$攻击和6种$S_{l_2}$攻击。在不受限制的情况下使用了更大的搜索空间实现了19种攻击算法。此外,所有的$S_{l_\infty},S_{l_2}和S_{unrestricted}$都采用身份攻击来表示身份操作,攻击策略在各搜索空间的输出可视化如图4所示:
搜索策略
搜索策略在寻找最好的攻击策略中起到了很重要的作用,在我们的问题设置中,搜索空间的规模相对较小,而且策略评估的成本比起其他任务(如NAS)要低很多,有关NAS的介绍请移步这篇文章,在此不做过多介绍。
一篇NAS的介绍:https://zhuanlan.zhihu.com/p/45133026
这样就允许我们使用一些高性能的搜索算法,作者比较了三种广泛使用的方法,即:贝叶斯优化,强化学习和NSGA-II遗传算法。虽然贝叶斯优化和强化学习在自动学习领域被广泛认为是有效的,但在解决文章中的这个问题上,一是它们更加耗时,二是收敛的比较缓慢。相比之下,NSGA-II更快,因为在搜索期间不需要额外的模型优化过程。它只需要几次迭代的种群更新就可以快速地找到最优解。
具体来说,NSGA-II需要维护所有可能策略的有限集合和策略评估函数,NSGA-II算法通过三个步骤来搜索潜在攻击策略的空间。一个人口初始化步骤,使用随机策略生成人口$P_0$,一个包括攻击策略的交叉和变异的探索步骤,一种利用被评估策略的整个历史中隐藏的知识并找到最优策略的开发步骤。整个过程如下图算法所示:
Experiments
为了验证CAA的性能,在11个开源防御模型上对$S_{l_\infty},S_{l_2}和S_{unrestricted}$上的搜索攻击策略进行了评估。在CIFAR-10和ImageNet数据集上进行了$l_\infty和l_2$攻击实验。对Bird&Bicycle数据集进行了无限制攻击。将鲁棒精确度记录为测量值,与最近排名前10位的攻击者进行比较,在实现过程中,取策略的所有中间结果并将其集合位相似的结果。
CAA的候选池包括32个攻击行为,其中有六个$l_\infty$攻击,六个$l_2$攻击,十九个无限制攻击和最后的身份攻击。具体实现的攻击算法总结如下图所示:
数据配置:对于CIFAR-10,我们在一个小的子集上搜索最佳策略,该子集包含从训练集中随机选择的4000个示例。测试集中总共使用了10000个示例来评估搜索的策略。对于ImageNet,由于整个验证集比较大,因此作者随机从训练数据库和册书数据库中分别选取1000张图像进行策略搜索和1000张图像进行评估。对于Bird&Bicycle数据集,使用所有250个测试图像评估,以及1000个随机选择的训练图像进行攻击策略搜索。
实验总结:调查了4个案例 1)BestAttack,在候选池中寻找最佳单个攻击者。2)EnsAttack,搜索多个攻击者的集合。3)$CAA_{dic}$,直接搜索给定数据集的CAA策略。4)$CAA_{sub}$,通过攻击对抗性训练模型作为替代进行搜索,并转移到其他模型或任务中。
为了研究在黑盒和白盒环境下CAA的可转移性,后续又对不同策略搜索算法和攻击策略长度N的影响进行了研究。分析了非目标攻击和目标攻击搜索策略的区别。
表2给出了4种变量基于$l_\infty$的攻击结果。这些攻击都是在CIFAR-10数据集上实现的
这些攻击者梯度评估的总次数(复杂度)都大于1000,相比之下,$CAA_{sub}$具有更低的复杂度(800),并且以更高的错误率打破了模型。这也表明了即使是替代攻击策略也可能具有较高的时间效率和可靠性。
同样的,在ImageNet数据集上,CAA取得了更大的进步。特别的,$CAA_{sub}$攻击$l_\infty$对抗训练模型的准确率达到38.30%,比最新技术提高了2%左右。这意味着CAA更适合攻击复杂的分类任务。ImageNet分类有更多的类别和更大的图像输入大小。同样我们发现由基础攻击者生成的对抗示例在ImageNet上更加多样化。对于这样一个复杂的任务,攻击策略设计有更多的空间。
对于无限制攻击选择Bird&Bicycle基准。并使用排行榜上排名前两名的防御模型LLR和TRADESv2进行评估。
搜索策略分析:表2是对$S_{l_\infty},S_{l_2}和S_{unrestricted}$的最佳搜索策略的可视化,该策略是在CIFAR-10分类任务上通过攻击对抗性训练模型来搜索的。在所有的$S_{l_\infty},S_{l_2}$和无限制攻击场景中,CAA倾向于选择强攻击性。以$S_{l_\infty}$策略为例。CAA选择最强的MT-LinfAttack作为第一和第二位置的攻击,同时放弃较弱的攻击者,例如单此FGSM攻击。所以一个良好选择的候选攻击池对CAA的性能至关重要。另一个基础是CAA更喜欢一些组合了不同基础攻击者的政策。这意味着用ML-Linf和PGD-Linf攻击所形成的策略通常不会有太大的改进,因为这两个攻击之间的差异很小(他们的原理和目标函数相同),相比之下,在$S_{l_\infty}$的最佳策略下,CAA选择了更多样化的基于边界损失的CW-Linf攻击来辅助基于交叉熵损失的攻击者,从而提高了攻击性能。
攻击可转移性:文章在两个场景下研究了CAA的可转移性。一个是在黑盒设定下,一个是在白盒设定下。黑盒设定下,由于无法获得目标模型的梯度,所以使用CAA来搜索替代模型的策略,并生成对抗的例子来攻击目标模型。在白盒设定下,梯度评估是被允许的,因此在替代任务或模型上的策略搜索被直接用在目标模型上生成对抗实例。
CAA的黑盒可转移性:为了能够讨论是否CAA能够被用于搜索黑盒转移攻击,在对抗样例生成阶段,使用攻击策略s来攻击替代模型,然后在目标模型上对这些对抗性的例子进行测试。将目标模型的鲁棒性精度作为策略s的评价分数。除此之外,整个搜索过程保持不变,作者将这种变体命名为$CAA_{trans}$,在攻击可转移性实验中使用了三种不同架构的模型(VGG16,Inceptionv3和ResNet50),这三种模型都经过了标准的对抗性训练,在表4种记录了实验结果,其中第一列是实验设置,R—->V表示使用ResNet50作为替代模型攻击VGG16。
结果表明,自动搜索过程有助于发现一个黑盒可转移的攻击策略,这不仅限于白盒场景。在随后的实验中发现$CAA_{trans}$并没有采用一些强攻击,因为这种攻击可能具有较差的可转移性。相反,像FGSM或MI-Linf攻击往往被选择为策略中更好的可转移成分,从而解释了为什么$CAA_{trans}$能够提高攻击的可转移性。
CAA的白盒可转移性:那么在白盒情况下是否有可能转移攻击策略,即在替代任务或模型上搜索的策略被用于攻击目标模型。实验发下,在CIFAR-10上搜索的策略仍然可以很好的传输到许多模型架构和数据集,因此,CAA并没有“过度拟合”数据集或模型架构,它也确实找到了有效的策略。然而,并不能保证攻击策略在防御系统之间转移。提高防御之间可转移的一个经验实践是在候选池中引入更强,更多样化的攻击算法。在表2中通过使用6个强攻击者在多个防御模型上都取得了很好的结果。
策略长度N的分析:作者进行了一系列的实验来探索一个更长的策略,它可以采用更多和多样化的基础攻击者,是否表现出更强的攻击能力,选择了长度为1、2、3、5和7的5个策略。图5展示稳健精度随策略长度变化的曲线。
当N=1的时候,CAA往往能够找到最佳的基础攻击者,但是在这种情况下,性能是最差的,随着N的增加,攻击策略在$S_{l_\infty},S_{l_2}$和无限制攻击的设置下变得更强。同时也发现策略长度在$l_2$攻击设定下有最小的影响,因此对于$l_2$攻击更多的基本攻击意味着更多的优化步骤这也是合理的。相比之下,在无限制攻击下,N对性能影响很大,从图5(c)中我们可以发现,当N大于3时,准确度会迅速下降到0左右。
不同的搜索方法:表5给出了四种优化方法的性能和搜索时间,随机搜索,有100个随机策略的试验和最好的选择,被视为一个基线。与基线相比,所有启发式算法都能找到更好的策略。虽然贝叶斯优化和强化学习被广泛认为是搜索大面积空间的有效方法,但在本问题中,它们更耗时且容易陷入局部最优。相比之下,NSGA-II以较低的3 GPU/d成本找到了更好的策略,获得了更好的性能。
目标攻击 vs 非目标攻击:目标攻击是一种特殊的应用场景,攻击者欺骗模型输出他们想要的目标标签。相反,非目标攻击没有给出目标标签。对于目标攻击,CAA搜索具有较少随机初始化的策略,这表明没有随机初始化的攻击者更适合目标设置。此外,与边界损失相比,具有交叉熵损失的基础攻击者更受CAA的青睐。
Couclusion
本文提出了一个自动学习攻击策略的过程,该策略由一系列基础攻击者组成,可以用来破坏机器学习系统。通过将CAA与10个最近的攻击者在11种不同防御上进行比较,发现CAA能够以更少的运行时间实现了更好的攻击成功率。经验证明,搜索更好的算法和超参数也有助于对抗攻击。