清华朱军团队包揽三项冠军,NIPS 2017对抗样本攻防竞赛总结
来源 | AI科技评论
作者 | 高云河
编辑 | 磐石
出品 | 磐创AI技术团队
【介绍】:自 Ian Goodfellow 等研究者发现了可以让图像分类器给出异常结果的「对抗性样本」(adversarial sample)以来,关于对抗性样本的研究越来越多。NIPS 2017 上 Ian Goodfellow 也牵头组织了 Adversarial Attacks and Defences(对抗攻击防御)竞赛,供研究人员、开发人员们在实际的攻防比拼中加深对对抗性样本现象和相关技术手段的理解。
在比赛结束后,参与此次比赛的谷歌大脑、清华大学以及其它参与的企业和学校的研究人员们联合撰写了一篇对于本次比赛的总结。其中清华大学博士生董胤蓬、廖方舟、庞天宇及指导老师朱军、胡晓林、李建民、苏航组成的团队在竞赛中的全部三个项目中得到冠军。雷锋网 AI 科技评论把这篇比赛总结的主要内容编译如下。

最近机器学习和深度神经网络的飞速发展,使得研究人员能够解决诸如图像、视频、文字分类等很多重要的实际问题。然而目前的机器学习分类器很容易受到对抗样本的攻击。所谓对抗样本,就是对输入数据进行略微修改,以使得机器学习算法对该输入给出错误的分类结果。在很多情况下,这些修改非常细微,人类观察者甚至根本不会注意到这些修改,但是分类器却会因此犯错误。对抗样本攻击对目前的机器学习系统提出了挑战,因为即使攻击者无法访问基础模型,也能对机器学习系统发起攻击。
此外,在现实世界中运行的机器学习系统也可能遇到对抗样本攻击,它们通过不准确的传感器感知输入,而不是以精确的数字信息作为输入。从长远角度来看,机器学习和 AI 系统必将变得更加强大。类似于对抗样本的机器学习安全漏洞可能危害甚至控制强大的 AI 们。因此,面对对抗样本的鲁棒性是 AI 安全问题的一个重要组成部分。
针对对抗样本的攻击和防御的研究有很多的困难之处,其中一个原因是很难评估一个提出的攻击方式或者防御措施是否有效。对于传统的机器学习,假设已经从独立同分布的数据集中分出了训练集和测试集,那么就可以通过计算测试集的损失来评估模型的好坏,这是一种很简单的方法。但是对于对抗机器学习,防御者必须应对一个开放的问题,即攻击者将发送来自未知分布的输入。仅仅提供针对某种单一的攻击方式的防御方式,或者一系列研究人员提前准备好的防御方式是不够的。因为即使防御者在这样的实验中表现良好,机器学习系统也可能会因为某些防御者没有预料到的攻击而被攻破。理想情况下,一种防御方式是可以被证明可行的,但是通常机器学习和神经网络很难从理论上进行分析。因此,这次举办的比赛使用了一种有效的评估方法:多只独立的队伍作为防守方和攻击方进行对抗,两方都尽可能的去获得胜利。这种评估方法虽然不如理论证明那样有决定性,但是这与现实生活中安全场景下的攻防对抗更相似。
在这篇文章中,我们介绍了NIPS 2017 对抗样本攻防比赛的情况,包括对抗样本攻击研究的一些关键问题(第二部分),比赛组织结构(第三部分),以及一些顶尖参赛者所使用的一些方法(第四部分)。
对抗样本是指那些经过特定优化,使得对模型的输入进行了错误分类。如果输入样本是一个自然得到的样本,比如来自 ImageNet 数据集的照片,我们称之为「干净样本」(clean example)。如果攻击者修改了样本,目的是使得该样本会被误分类,我们称之为「对抗样本」(adversasrial example)。当然,这种对抗攻击并不一定会成功,模型可能仍然能够正确分类对抗样本。我们可以测量不同模型在特定对抗样本集上的准确率或者错误率。
常见攻击场景
可能的对抗样本攻击可以从几个维度进行分类。
首先,可以通过攻击的目标或者期望进行分类。
-
无目标攻击(non-targeted attack)。在这种情况下,攻击方的目标仅仅是使得分类器给出错误预测,具体是哪种类别产生错误并不重要。
-
有目标攻击(targeted attack)。在这种情况下,攻击方想要将预测结果改变为某些指定的目标类别中。
其次,可以通过攻击者对模型的了解程度进行分类。
-
白盒攻击。攻击者拥有模型的全部知识,包括模型的类型,模型结构,所有参数和可训练权重的值。
-
有探针的黑盒攻击。攻击者对模型所知道的并不多,但是可以探测或者查询模型,比如使用一些输入,观察模型的输出结果。这种场景有很多的变种,比如攻击者知道模型结构,但是不知道参数的值,或者攻击者甚至连模型架构都不知道;攻击者可能能够观测到模型输出的每个类别的概率,或者攻击者只能够看到模型输出最可能的类别名称。
-
无探针的黑盒攻击。在没有探针的黑盒攻击中,攻击者只拥有关于模型有限的信息或者根本没有信息,同时不允许使用探测或者查询的方法来构建对抗样本。在这种情况下,攻击者必须构建出能够欺骗大多数机器学习模型的对抗样本。
再次,可以通过攻击者给模型输入对抗样本的方法进行分类。
-
数字攻击。在这种情况下,攻击者能够直接将实际的数据输入到模型中。换句话说,攻击者可以将特定的 float32 数据作为输入给模型。在现实世界中,攻击者可能给某些网络服务上传 PNG 图片文件,使得这些精心设计过的文件会被错误的读取。比如为了使得某些垃圾内容能够发布在社交网络上,需要使用对图像文件加入对抗扰动以绕过垃圾内容检测器。
-
物理攻击。在现实世界中这种情况下,攻击者不能够直接给模型提供数字表示。但是,模型的输入是从某些传感器中得到的,比如相机或者麦克风。攻击者可以在相机前放置某些物体,或者对麦克风播放一些声音。传感器所得到的最终表示会根据一些因素而改变,比如相机的角度,到麦克风的距离,周围环境的光线和声音等。这意味着攻击者对机器学习模型输入的控制并不是很精确的。
第一类,白盒数字攻击
L-BFGS。 第一个发现神经网络对抗样本攻击的方法之一是 Goodfellow 等人的 Intriguing properties of neural networks 论文。该方法的思路是解决如下的优化问题:

作者提出使用 L-BFGS 优化方法去解决这个问题,所以以此命名这种攻击方法。
这种方法的一个主要缺点是运行速度很慢。该方法旨在找到最小的可能的攻击扰动。这意味着该方法有时可能仅仅通过降低图像质量而被打败,比如把图像的每个像素四舍五入,用 8 位二进制数字表示。
FGSM(Fast gradient sign method)。为了验证对抗样本只需通过目标模型的线性近似来得到的想法,I. J. Goodfellow, J. Shlens, and C. Szegedy 等人在 Explaining and harnessing adversarial examples 文章中提出了快速梯度符号函数方法(FGSM)。
FGSM 方法通过在干净样本的邻域中线性化损失函数,并通过如下闭合形式的方程找到精确的线性化函数的最大值:

迭代攻击(Iterative attacks)。L-BFGS 攻击有很高的成功率,但计算成本也很高。FGSM 攻击成功率很低(特别是当防御者预测到有攻击会发生的时候),但是计算成本很低。为了得到一个良好的折中方案,在少量迭代之后(如 40 次),重复运行专门的优化算法以快速得到结果。
一种快速设计优化算法的策略是,使用 FGSM(通常可以在一个很大的步长里得到可接受的结果),但是使用较小的步长运行几次。这是因为 FGSM 每步都被设计为一直走到以该步骤起始点的小范围球的边缘,所以即使在梯度很小的情况下,该方法也能有较快的进展。这也引出了 Adversarial examples in the physical world 论文中的基本迭代方法(Basic Iterative Method, BIM),有时也称为迭代 FGSM(I-FGSM):

BIM方法可以很容易改进为目标攻击,称为迭代目标类别方法(Iterative Target Class Method):

根据实验结果,运行足够次数的迭代之后,该方法总能成功生成目标类别的对抗样本。
Madry 攻击。Towards deep learning models resistant to adversarial attacks 这篇文章表示, BIM 可以通过 ε 范围球内的随机点开始而得到显著的改善。这种攻击通常被称为「投影梯度下降」(projected gradient descent),但这个名字有些令人困惑,因为 (1)「投影梯度下降」一词已经指代了一种更普遍的优化方法,而不仅用于对抗攻击,(2)一些其他攻击方法也使用了梯度和投影,(Madry 攻击与 BIM 仅仅在起始点出不同),所以这个名字并没有将 Madry 攻击与其他攻击区分开来。
Carlini 和 Wagner攻击(C&W)。 N.Carlini 和 D.Wagner 遵循 L-BFGS 攻击的道路进一步改善。它们设计了一个损失函数,它在对抗样本中有较小的值,但在干净样本中有较大的值,因此通过最小化该损失函数即可搜寻到对抗样本。但是与 L-BFGS 方法不同的是,本方法使用了 Adam 解决这个优化问题,通过改变变量(比如
)或者在每步之后将结果投影到边界约束(box constraints),来解决边界约束的问题。
它们尝试了几种可能的损失函数,其中下面这个损失函数得到了最强的L2攻击:

其中 Xadv 是经过参数化的
; Y 是目标类别 ytarget 的简写;c 和 k 是参数。
对抗变换网络(Adversarial transformation networks, ATN)。Adversarial transformation networks: Learning to generate adversarial examples 一文中,提出了一种训练一个生成模型去生成对抗样本的方法。这个模型以干净样本作为输入,生成对应的对抗样本。该方法的一个有点是,如果生成模型本身是一个很小的网络,那么 ATN 相比于使用优化的算法能够更快的生成对抗样本。理论上,该方法甚至比 FGSM 更快。虽然ATN确实需要更多的时间去训练,但是一旦训练好,大量的对抗样本可以以极低的成本生成出来。
不可微分系统的攻击(Attacks on non differentiable systems)。上面提到的所有攻击,都需要计算被攻击模型的梯度,以生成对抗样本。然而,这些方法并不总是可行的,比如如果模型包含不可微的操作。在这种情况下,攻击者可以训练一个替代的模型,应用对抗样本的可迁移性(transferability)对不可微系统实施攻击,这与下面提到的黑盒攻击比较类似。
第二类,黑盒攻击
据 Intriguing properties of neural networks 论文的结果,对抗样本在不同模型之间可以泛化。换句话说,能够欺骗一个模型的对抗样本,大多数情况下也能够骗过其他不同的模型。这个模型被称为可迁移性(transferability),可以用于黑盒场景中制作对抗样本。根据源模型、目标模型、数据集和其他因素的不同,可迁移的对抗样本的实际比例可能会从几个百分点到 100% 不等。黑盒场景中,攻击者可以在与目标模型相同的数据集上训练自己的模型,甚至可以使用同分布的其他数据集上训练模型。攻击者训练的模型的对抗样本很有可能能够欺骗未知的目标模型。
当然,可以通过系统地设计模型,提高对抗样本迁移的成功率,而不仅仅是依靠运气来实现迁移。
如果攻击者不在完整的黑盒子场景中,允许使用探针,那么探针可以用来训练攻击者自己的目标模型副本,这个副本被称为「替代者」。这种方法非常强大,因为作为探针的输入样本不需要是真正的训练样本,它们可以是攻击者特定选择的,可以准确找出目标模型的决策边界所在位置的样本。因此,攻击者的模型不仅可以被训练成为一个好的分类器,而且实际上可以对目标模型的细节进行逆向工程,所以两个模型从系统性上来看,可以有很高的样本迁移成功率。
在攻击者无法发送探针的完成黑盒场景下,增加样本迁移成功率的策略之一是将多个模型组成为一个集合,作为源模型以生成对抗样本。这里的基本思想是,如果一个对抗样本能够欺骗整个集合中的每个模型,那么它更有可能泛化并欺骗其他模型。
最后,在有探测器的黑盒场景中,可以运行不使用梯度直接攻击目标模型的优化算法。这样生成单个对抗样本所需的时间通常远高于使用「替代者」所需的时间,但是如果只需少量的对抗样本,那么这些方法可能更具优势,因为它们不需要高昂的训练「替代者」的成本。

