On Adaptive Attacks to Adversarial Example Defenses

On Adaptive Attacks to Adversarial Example Defenses

对于对抗性样本防御的自适应性攻击

阅读

自适应性攻击虽然不可以完全自动化,但是可以有效攻破13种攻击方式。

全文针对对抗样本防御的自适应攻击的方法和策略。作者对13种防御方法进行了全面的分析,并提供了从头到尾执行自适应攻击所需的方法和步骤。文章强调了攻击的简单性,并提出了一些通用的攻击策略,如攻击整个防御系统、识别和攻击重要的防御部分等。作者的主要目标是评估每种防御的初始鲁棒性评估是否合适,并在发现不合适的情况下,展示如何构建更强大的自适应攻击。同时,作者并不希望声称许多防御技术完全没有价值,而是认为某些技术的实现可能会提高模型的鲁棒性。

答疑笔记

1. 量化

量化是一种压缩,使得模型占用空间减小,运行时间变短。

量化样本对推理时间时,鲁棒性比行进中模型高

对抗样本的迁移性在量化样本和普通样本之间较差

理解为 “量化” 是一种压缩数据的方式,将数据从原始形式转换为更紧凑、数字表示的形式,通常可以获得以下好处:

  • 空间效率: 量化可以减小数据的存储需求,因为数字表示通常比原始数据更紧凑。这对于在存储资源受限的环境中处理大量数据非常有用。
  • 传输效率: 在网络通信中,量化可以减小数据传输的带宽需求,使数据传输更加高效。这对于快速数据传输和实时通信至关重要。
  • 速度加快: 量化可以使数据处理和分析更快速,因为数字数据通常更容易操作和计算。这对于需要快速响应的应用程序和系统非常重要。
  • 鲁棒性增强: 数字表示通常更容易进行错误检测和修复。这意味着在传输或存储过程中出现错误时,可以更容易地识别和纠正问题,从而提高数据的鲁棒性。

对抗样本的迁移性通常是相对差的,无论是对量化样本还是对普通样本。对抗样本是通过对原始数据进行微小的、经过精心设计的扰动来欺骗机器学习模型,使其做出错误的预测。这些扰动通常是非常特定的,以欺骗特定模型,因此它们通常不具备很好的迁移性。

对抗样本的迁移性差的原因包括:

  • 模型依赖性: 对抗样本的生成通常依赖于目标模型的详细信息,包括模型的架构、权重和训练数据。因此,对抗样本通常只对特定模型有效,不容易泛化到其他模型。
  • 输入依赖性: 对抗样本的扰动通常是基于原始输入的微小变化生成的。因此,即使输入数据略有不同,也可能导致不同的对抗样本,这会降低迁移性。
  • 模型复杂性: 随着深度学习模型的复杂性增加,它们对输入的微小变化变得更加敏感。这使得对抗样本更难迁移到其他模型。
  • 不同数据分布: 如果不同的模型针对不同的数据分布进行了训练,那么对抗样本的迁移性可能会受到影响,因为对抗样本可能在训练数据分布之外无法起作用。
2. 投票法和加权投票法

模型集成的一种常见方法是使用投票法。在投票法中,每个模型对输入数据进行预测,然后最终预测结果是根据多数投票或加权投票来确定的。在加权投票法中,每个模型的预测结果都有一个权重,这些权重根据模型性能或其他因素来确定。最终结果是根据模型的投票和权重的组合。

3. Decision-based boundary attack (DBB)

“Decision-based boundary attack” (DBB) 是一种用于评估神经网络模型鲁棒性的对抗攻击方法。该方法通过在输入空间中搜索决策边界来生成对抗样本,从而使模型的输出从目标类别转换为错误的类别。与其他对抗攻击方法不同,DBB攻击不需要计算梯度,因此可以避免梯度掩盖和梯度误差等问题。相比于其他对抗攻击方法,DBB攻击具有更高的攻击成功率和更少的查询次数。

内容

1. abstract

自适应攻击已经成为评估对抗性示例防御方法的事实标准。然而,我们发现典型的自适应评估方法存在不完整之处。我们演示了最近在 ICLR、ICML 和 NeurIPS 发表的十三种不同防御策略的防御方法,尽管试图使用自适应攻击进行评估,但它们仍然可以被规避。以前的评估论文主要关注最终结果,即显示防御方法无效,而本文侧重于阐述执行自适应攻击所需的方法和途径。我们的一些攻击策略具有一定的通用性,但没有一种策略足以应对所有的防御方法。这突显了我们的主要观点,即自适应攻击无法自动化,总是需要仔细和适当地调整以适应特定的防御方法。我们希望这些分析可以为如何正确执行对抗性示例防御的自适应攻击提供指导,从而使社区能够在构建更加健壮的模型方面取得进一步的进展。

2. introduction

研究领域的人们对于,防御对抗性样本的攻击做出了很多尝试,但是这个过程十分困难。事实上,常见的防御方式只能对静态或者微小的攻击起到防御作用,而会被强大的防御躲避开。

最近社区为改进国防评估所做的努力和指导方针已经产生了显著的积极影响。特别是,针对自适应攻击(即专门针对给定防御而设计的攻击)的评估已经得到了广泛的采纳——针对自适应攻击的防御评估比例从2017年的接近零增加到2018年的三分之一,再到今天的几乎全部这就引出了一个问题:

有了他们改进的评估实践,这些防御真的具有很高的鲁棒性吗?

我们发现情况并非如此。具体来说,从最近的ICLR, ICML和NeurIPS会议中选择了13个防御来说明不同的防御策略,我们发现我们可以绕过所有这些防御,并大大降低了最初声称的准确性。

(知其然,而不知其所以然)

重要的是,虽然几乎所有这些防御都进行了涉及适应性攻击的评估,但这些评估结果并不充分。例如,文献中常见的做法是将现有的"自适应"攻击改头换面,绕过一些先前的防御,而不考虑如何将其改为针对新的防御。我们猜想,造成这一缺陷的部分原因可能是,以前关于规避防御的工作通常只显示了最终的、成功的攻击,而没有描述用于发起这种攻击的方法,从而留下了诸如"攻击是如何被发现的? "或"其他哪些攻击是不成功的? "等公开问题。

(会讲出来,如何产生相应攻击方法的猜想,以及推理过程,包括最终成型的攻击方式)

为了解决这个问题,我们不只是证明我们研究的13种防御可以被更强的攻击绕过,而是带领读者了解我们分析每种防御的完整过程,从最初的论文通读,到我们对规避防御所需条件的假设,再到最终成功的攻击。这种方法使我们能够更清楚地记录开发强适应性攻击所涉及的许多步骤。

我们分析的目标不是将分析模型的准确率一直降低到0 %。相反,我们想证明现有的自适应攻击评估方法存在不足,更强的自适应攻击会导致(至少部分)从原始评估报告中降低每个防御的准确率。

尽管之前的工作通常需要开发新技术来规避防御,但我们发现已经存在适当评估防御的技术工具。更好的攻击可以只使用文献中众所周知的工具来构建。因此,目前防务评估的问题是方法问题而不是技术问题。

在描述了我们的方法(第3节)和提供了从我们的评估中提取的共同主题的概述(第4节)之后,我们给出了每个防御的评估的总结(第5节),由于篇幅限制,在附录留了完整的评估。

(设计损失函数,评定原模型的损失量,损失越高说明攻击越强,攻击效果越好)

我们评估的一个首要主题是简单性。攻击不必复杂,即使在防御的时候也是如此。在复杂的防御中往往只有少量的重要组件,谨慎地针对这些组件可以导致更简单和更强的攻击。我们设计了我们的损失函数,这是成功的自适应攻击的基石,使它们易于优化和一致,从而更高的损失值导致严格更强的攻击。虽然我们的一些技术是通用的,但没有一个单一的攻击策略可以满足所有的防御。这突出了一个重要的事实,即自适应攻击无法自动化,并且总是需要对每个防御进行适当的调整。

本着负责任的披露精神,我们联系了我们在提交之前评估的所有抗辩的作者,并提出分享代码或对抗的例子,以使我们的索赔得到独立的验证。在除(其中辩护作者没有回应我们的原始信息)外的所有案例中,作者都承认我们的攻击是有效的。为了促进可重复性,并鼓励其他人执行独立的再评价防御,我们在https://github.com/wielandbrendel/adaptive_attacks_paper.发布了所有攻击的代码

3. background

对于一个分类神经网络f和一个带有真实标签y的自然输入x ( e.g. ,取自测试集),一个对抗样本是一个扰动的输入x′,使得:( 1 )对于某个距离函数‖·‖ (我们在威胁模型下对每种防御进行评估,并声称其具有鲁棒性;在所有情况下,对各种p≥0的p范数),‖x′- x‖很小,但(2)是它被错误地分类,或者是针对性不强(找不到精准的t,使得f ( x′) = t),使得f ( x′) != y,或者是针对性很强的,使得对于某个选定的f ( x′) = t时,有t != y。

(从交叉熵开始定义损失函数,使之在微小扰动下loss最大化)

为了生成对抗样本,构造一个损失函数L,使得当f ( x ) != y时L( x , y)较大,然后在保持扰动‖x-x′‖较小的情况下最大化L( x′, y)。定义合适的损失函数L是任何自适应攻击的关键组成部分。任何损失函数的典型起点都是交叉熵损失LCE。

虽然生成对抗性示例的方法有很多,但最广泛采用的方法是输入空间上的梯度下降。设x0 = x,然后反复设定

x(i+1 )= Proj(xi + α · normalize(∇xi L(xi, y)))

其中,Proj将输入投影到一个较小的域以保持失真较小,归一化在考虑的范数下强制一个单位长度的步长,α控制所采取的步长大小。经过N步(例如, 1000)后,我们令x′= xN为生成的对抗样本。关于常见对抗样本生成技术的进一步背景介绍见附录A。

在某些情况下,将分类器表示成f ( x ) = arg max z ( x )的形式是有用的,其中z ( x )是类得分向量,我们称之为logit层(例如,在任何softmax激活函数之前) (其中z(x)是我们称之为logit层的class-scores向量(例如,在任何softmax激活函数之前));因此,z ( x ) i是第i类关于输入x的logit值.通过稍微滥用符号,我们有时用f ( x )指代分类器的输出类(即f ( x )) = y )或类概率的全向量(即f ( x )) = [ p1 , … , pK] )。选择要从语境中明确。

我们在本文中研究的所有防御都声称是白盒鲁棒性:在这里,对手被假设拥有模型体系结构、权重和任何必要的附加信息的知识。这允许我们使用上述攻击技术。

4. Methodology

本文的核心部分记录了我们在十三种防御上开发的攻击。由于篇幅限制,我们的评估总结在第5节,全文在附录中提供。我们每个评估部分的结构如下:

  • 防御是如何运作的:我们首先简要描述防御,并介绍必要的组件。我们鼓励读者在阅读我们的方法之前,在本节结束后停下来思考一下如何攻击所描述的防御。
  • 我们为什么选择这种防御方式:虽然我们在本文中研究了许多防御措施,但我们不能指望评估过去几年发表的所有防御措施。我们根据两个标准选择每个辩护:(1)它已被ICLR, ICML或NeurIPS接受;表明独立审稿人认为它有趣且合理,并且(2)它清楚地说明了某些概念;如果两个防御是基于相同的想法,或者我们认为在相同的情况下会失败,我们只选择一个。
  • 最初的假设和实验:我们首先阅读每篇论文,重点是寻找防御可能仍然容易受到对抗性示例攻击的潜在原因,尽管论文中最初进行了鲁棒性评估。为了开发额外的攻击假设,我们还研究了防御的源代码,这些源代码是公开的,或者应所有防御的要求。
  • 最后的稳健性评估:鉴于我们对防御失败的候选假设,我们转而发展自己的适应性攻击。在大多数情况下,这包括(1)构造一个改进的损失函数,其中梯度下降可以成功地生成对抗性示例,(2)选择最小化损失函数的方法,以及(3)根据从攻击尝试中收集到的新见解重复这些步骤。
  • 吸取的教训:在绕过了防御之后,我们回顾并询问我们从这次攻击中学到了什么,以及如何将其应用于未来。

每个部分的流程直接反映了我们实际采取的评估防御健壮性的步骤,而没有追溯得出我们希望如何发现缺陷的结论。我们希望这将允许我们的评估策略作为如何从头到尾执行未来评估的案例研究,而不仅仅是观察最终结果。

我们强调,我们的主要目标是评估每个防御的初始鲁棒性评估是否合适,如果我们发现不合适,就说明如何对该防御建立更强的适应性攻击。重要的是,我们不希望宣称这些防御方法中的许多所使用的鲁棒性技术没有任何价值。很可能这些技术的一些实例化可以提高模型的鲁棒性。然而,要令人信服地提出这样的主张,这个防御必须得到一个强有力的适应性评估的支持- -这是我们教程的重点。

5. Recurring Attack Themes

我们确定了6个主题(和一个元主题),它们是多个评估共有的。下面我们分别进行讨论。表1给出了与我们所研究的每个防御相关的主题的概述。

  • (元主题)T0:力求简单。 我们的自适应攻击始终比每篇论文中评估的自适应攻击更简单。在所有情况下,我们的攻击都尽可能接近具有适当损失函数的直接梯度下降;只有当简单的攻击失败时,我们才会增加额外的复杂性。更容易诊断简单攻击的失败,以便迭代更强大的攻击。下面的主题主要是各种方法,使攻击更简单,但更强大。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值