本文介绍对抗鲁棒性,主要针对的是深度学习时代下深度神经网络的鲁棒性问题。大部分内容探讨最基本的机器学习分类任务

囿于有限的认知水平,本文是个人偏好(bias)的产物,不代表所有人的观点。

目录

1. 对抗样本的发现

2. 我们为什么要研究对抗样本现象?

3. 寻找对抗样本:一个约束优化问题

  • 替代损失

  • 优化算法

  • 度量函数

4. 增强模型对抗鲁棒性

5. 对抗鲁棒性问题导致的攻防竞赛现象

6. 深度学习为何不鲁棒?

  • 人类是鲁棒的吗?

7. 对抗鲁棒性带来的额外益处

8. 大厦已然建成?

1 对抗样本的发现

What has been is what will be, and what has been done is what will be done; there is nothing new under the sun.[1]

日光之下并无新事。

下图是用FGSM方法[2]生成的一个对抗样本。

图片

对抗样本(Adversarial Examples)一词首次出现在Szegedy等人在ICLR 2014的一篇论文里[3]。通过对测试集的图片添加微小的扰动,导致神经网络对其误分类(而人类依然能够正确分类),可以使得经过良好训练的神经网络的准确率降为0。

但早在本世纪初,就有许多工作在设计传统机器学习模型的敌手(Adversary),它能够操纵输入数据从而欺骗分类器(比如,通过向垃圾邮件里添加特殊词汇以欺骗垃圾邮件检测器,而检测器也可以随敌手的出现而改进自己的词库,从而获得更好的性能[4])。当时就在许多领域里掀起了攻防角逐(arms races),比如欺骗计算机入侵检测系统、躲避空中监视系统、操纵搜索引擎排序系统等[5]。

事实上,第一个针对神经网络分类器的敌手是Biggio等人在2013年设计的,他们称之为规避攻击(Evasion Attacks)[6]。Biggio等人显然有些气愤,因为后来大部分研究对抗鲁棒性的论文只引用Szegedy等人的那篇论文[3],而不引用他们这篇;大部分论文都使用[3]里发明的术语,而不使用[6]里的术语(evasion attacks = adversarial examples,surrogate learners = substitute models)。Biggio等人在2017年终于把他们在2013年的那篇论文挂到了arxiv上面,并附了一段评语:

图片

所以日光之下真的并无新事吗?当时的明月换拨人看?[7]

  1. 我们新发现的对抗样本与十多年前的没有区别吗?
  2. 我们深度学习时代的攻防竞赛是在重蹈覆辙吗?
  3. 我们要因为[3]没有引用[6]而把[3]批判一番吗?

我个人认为,答案都是否定的。

图片
虽然从抽象的形式上看,十多年前的对抗样本与现在的并无二致,都是“攻击者精心设计的导致机器学习模型出错的输入”[8]。但时代变了,模型变了。能力越大,责任越大。深度学习复兴给大家带来了成功的喜悦,在许多任务上,以前模型做不到或做不好的事情,现在能出人意料地做得很好,需要的似乎只有数据和算力,深度学习一时间成了人工智能的代名词,学术界工业界一片欣欣向荣的景象。而深度网络的优异性能和深度网络在对抗攻击下的灾难性脆弱似乎是同一枚硬币的两面[9]。深度网络中的对抗样本现象给狂热的人群敲墙了警钟:我们的深度网络似乎什么都知道,但其实什么都不知道(You know nothing!)。
在传统机器学习的攻防竞赛中,攻击和防御都围绕着手工特征(handcrafted features)做文章,且主要是在浅层模型应用过的领域(如垃圾邮件过滤器,入侵检测,生物认证,欺诈检测)。而近些年来针对深度网络鲁棒性的攻防竞赛主要对原始数据(raw data)做扰动,且集中在深度学习最擅长的领域(视觉、听觉、自然语言处理等),同时更加强调对抗扰动对人类的影响,即人类察觉不到扰动,而模型却过分地敏感,以突出模型与人类的差距。更多讨论将推迟到 本文第五节“对抗鲁棒性问题导致的攻防竞赛现象”。
任何研究者都不希望自己的研究被埋没在书山书海中。但我倾向于相信[6]和[3]是两个独立的且同期的研究成果(ICLR 2014是在2013年12月截稿),[3]没有引用[6]的原因可能很简单:作者并不知道同行的工作。但这并不代表[3]和[6]的工作是等价的!实际上,[6]是延续传统机器学习里的那一套思路,在二分类的任务下对 Adversary 进行了设定,通过强调自己发现的机器学习系统存在的安全风险来讲故事。而[3]没有理会安全语境下那些繁琐的设置,从新的角度出发,旨在寻找模型的盲点(Blind Spots in Neural Networks):虽然深度学习的泛化性能非常好,但在高维数据流形附近存在着许多低概率的洞洞(pockets),在这些洞洞上模型表现很差,而我们人类在这些洞洞上的表现依然非常好。深度学习的成功让我们看到了人工智能的晴朗天空,但[3]告诉我们,晴朗天空中的远处漂浮着一朵乌云:你们可以暂时假装看不见,但它迟早会飘到你头顶。

2 我们为什么要研究对抗样本现象?

First of all,对抗样本突出了机器智能与人类智能的差距。我们希望我们的模型是“人工智能”而不是“人工智障”。我们最远大的理想就是训练出像人类一样强大的分类器帮我们执行分类任务,这样我们就可以躺着喝咖啡了。因此像把熊猫识别成长臂猿这样的现状是完全无法忍受的,我们会气得跺脚:虽然你每个神经元连接、每个参数我都清清楚楚,但我还是无法理解你的脑子里究竟在想些什么,所以我要骂你是个智障黑盒非线性深度神经。

Last but not least,安全性。因为你看起来让别人觉得你很能干,许多人就请你去帮他们做事。但我知道你外强中干,一旦有个敌手在旁边干扰你,你就崩溃了。外面有很多敌手在恶意设计扰动,让自动驾驶汽车直线拐弯[10],让目标检测失灵[11],让人脸识别系统失效[12]。我不放心你做事啊,尤其是人命关天的任务。

全文内容详见链接。

内容中包含的图片若涉及版权问题,请及时与我们联系删除