对抗样本生成的近期工作( 2018年9月)

绝大多数的机器学习模型,本质上来说,都是通过抽取数据特征,构建数学判别公式,用数学模型来模拟人的判断过程。在特征抽取的过程中可能提取到错误的特征,或判别公式不符合真实的决策面分布,都会使模型变得易受攻击(vulnerable)。对抗样本(adversarial examples)就是专门寻找机器学习模型的弱点,产生能欺骗模型的样本。比如在图片中加一些肉眼不可见的噪声,使分类器将女人识别为男人。

本文介绍对抗样本欺骗目标检测器、欺骗人脸识别器、欺骗恶意软件识别器的一些近期工作,介绍对抗样本的数学建模原理,简单讨论这项工作的现实意义。 

1.目标检测器的对抗样本

对抗样本生成的早期工作主要是针对分类器,通过在图片中注入噪声,生成欺骗分类器的对抗样本,可以使分类器将女人识别为男人,将熊猫识别为长臂猿。基于传统算法和基于深度学习的各种分类器都不能幸免,全都被攻破。

这时,搞目标检测的人跳出来,做了一个实验,他把之前研究者做的号称能欺骗分类器的对抗样本还原到真实的物理世界中(他将对抗系统生成的“stop”图片打印出来,贴到标志牌上),发现这些所谓的对抗样本,根本不能欺骗目标检测器,也就是说这些对抗样本在真实世界中不work!真是实力打脸。 

和分类器相比,目标检测器(典型的如yolo和fast-RCNN)确实是更难被突破。和分类器相比,目标检测器的识别过程更为复杂,在识别目标的过程中会参考目标周围的图像信息,而且算法中通常有RoI-pooling或特征映射等多尺度变化操作,抗干扰能力自然更强。将生成的平面图片放到真实的物理世界中,视角和场景都随之产生各种变化,显然比对平面图的攻击难上若干个数量级。

下面我们就直接介绍目标检测器的对抗样本工作:J Lu, H Sibai , E Fabry,Adversarial Examples that Fool Detectors,arXiv:1712.02494(2017)

作者从视频中挑选了N个包含stop标志的帧,通过叠加干扰信息产生了一系列的对抗样本,算法的优化目标是最小化Faster RCNN在对抗样本上的平均得分(即努力让检测器检测不到)。

下图是叠加噪声之后的stop标志。可以看到这些迭加噪声后的图片,其实在肉眼看来和原图是差异比较大的,三个图片从左到右噪声逐步增强。这三种对抗样本图片,如果加到视频帧当中覆盖图片中的真实stop目标,都可以成功欺骗Faster RCNN。

取得了一些些成绩也不能自满,有了之前实力打脸的教训,作者赶快尝试在真实物理场景下的效果。他们将这些图片打印出来,贴到真实的物理场景当中,再通过截取视频帧,重新用目标检测算法作识别。这时,前两种噪声比较小的图片,目标检测器已经能正确识别(对抗失效),第三种高噪声图片则可以继续欺骗目标检测器。但是也可以看到,第三种的噪声是相当之大,在物理场景下人也可能会miss掉。

最后,作者还尝试了stop标志和人脸的多视角攻击,发现多视角场景下攻击失败的概率也非常高。 

2.人脸检测的对抗样本

这里介绍最近的一篇采用GAN思想攻击人脸检测系统的工作:AJ Bose,P Aarabi, Adversarial Attacks on Face Detectors using Neural Net based Constrained Optimization, arXiv:1805.12302  (2018)

在这项工作中,生成器会在原图加入一些微小干扰,生成对抗样本。生成器基于Faster R-CNN人脸检测器做预训练,它的优化目标是使检测器作出错误判断。而人脸检测器只在未受干扰的图像样本上进行训练,并不了解生成器的存在。

通过这样的训练,生成器慢慢学会了产生干扰的方法。最后,只要给定一个图片,就可以生成一张和原图相似的、且能欺骗人脸检测器的对抗样本。

研究者在300-W人脸数据集上进行测试,该数据集包含多种族,不同照明条件和背景环境的超过600张人脸照片,是一个业界的标准库。结果表明,通过加入一些人眼不可见的噪声,他们的系统可以将原本可检测到的人脸比例从接近100%降低到0.5%。

然而很显然,攻击虽然取得了极大的成功,但是这个验证数据集显然太小了,此项工作还缺少更大数据集上的验证,另外就是在真实物理空间上的还原和验证。

3.恶意软件检测的对抗样本

这里介绍一篇对抗恶意软件检测器的一个工作:Weiwei Hu and Ying Tan,Generating adversarial malware examples for black-box attacks based on GAN,Computer Science 2017。

这篇工作利用GAN框架,生成能突破恶意软件检测器的对抗样本,思路和上文第二篇有些相似。在这个框架下,Black-Box Detector是黑盒的恶意软件检测器。生成器生成的对抗样本,来源于恶意软件代码加上了一些噪声数据,生成器的目标是使Black-Box Detector失效(使黑盒检测器将恶意软件识别为健康软件)。

作者在黑盒检测器后面又增加了一个substitute detector做二次检测和判别,这个补充的检测器以区分生成的假健康软件(label为-1)和真实的健康软件(label为1)为目标,实际上是在与生成器做对抗。

作者通过这个GAN框架来模拟恶意软件的试探过程。并发现如果允许恶意软件频繁试探黑盒检测器,则检测器终将失效。这个工作的现实挑战是,在恶意软件里面随意加噪声,得到的恶意软件是否仍保留原来的恶意功能,这一点有待考察。

4.对抗样本的通俗数学原理(通俗方面已尽力,对原理不感兴趣的可以直接跳过)

以下图为例,在手写体识别任务中,要把一个图片做目标分类(0-9共10个字符)。对于一个样本X(手写字符0),f1是机器学习模型的分类判别过程(machine-learning classifier),机器学习模型把图片做了视觉特征的抽取,然后通过数学模型建模,识别结果是Y=0。f2可以认为是一个人的识别过程(oracle):人眼通过视网膜成像也对图片内容进行了特征提取,识别结果是Y=0。如果机器识别正确,机器和人达成共识:f1(X)=f2(X)。如果机器识别错误,则f1(x)与f2(X)不相等。

对抗样本做的事情就是:在原始图像X中加一些微小干扰(干扰的幅度一般会做数值上的限制),对于加干扰后的图片X’,人能正确区分,机器不能正确区分。

用数学公式来表达这个过程就是: 


因为公式第一项中“不等号”是无法直接优化的,所以需要将“不等号”做一些转换,最终得到带等式约束或不等式约束的最优化问题,然后用拉格朗日乘子法求解,得到这个问题的Loss函数。

    大部分对抗样本的工作,都基于上面提到的简单原理。主要的差异点在于(如下表):

    1)机器学习模型f1上可能有不同的选型,如CNN或SVM;

    2)用不同的方式去定义“加入微小干扰”这件事;

3)采用各种方法将“不等号”转换成模型的损失函数(Loss)。损失函数可以选择train loss,hinge loss或交叉熵等。

如果攻击模型的访问级别和对抗目标进行划分,还可以分为白盒攻击和黑盒攻击。白盒攻击(white-box attacks)可以完全访问它们正在攻击的模型的结构和参数;黑盒攻击(black-box attacks)只能访问被攻击模型的输出。

求解方法主要有:

1)Gradient ascent method (Biggio et al., 2013).  以最小化扰动和最大化对抗效果为目标,寻找最大梯度方向去优化。

2)Box L-BFGS adversary (Szegedy et al., 2013)。在有限的样本空间中寻找最小扰动,用box-L-bfgs求解。

3)Fast gradient sign method (Goodfellow et al., 2014)。基于输入图像的梯度对分类器的损失进行攻击。

前面三种都是白盒方法,因为它们都需要访问被攻击模型的内部。

4)Jacobian-based saliency map approach (Papernot et al., 2015a)。限定可以修改的像素数量,然后计算每一个像素的对抗分值,以决定是否修改这个像素。不断迭代这个过程,直到分类器被攻破(成功),或者超过了限定的修改数量(失败)。这种方法可以是黑盒攻击,在象素级别上。

5)生成对抗网络(GAN)。GAN的核心组件包括生成器和判别器,生成器负责生成对抗样本。这种方法可以是黑盒攻击,在全图级别上。

5.如何避免模型被欺骗

    针对如何避免被攻破的问题,相关研究中也进行了一些讨论,一种思路是增强模型的鲁棒性,避免挑选错误或者鲁棒性差的特征。

在真实的机器学习模型训练中,错误特征是极常见的。在样本不足够充分的情况下,模型只能选取在训练数据当中“最有区分度的特征”,但遗憾的是,这些特征可能并不是真实的“有区分度的特征”。

    举一个例子,在对鲸鱼分类的一个比赛中,有几千张拍摄到的真实的鲸鱼照片。如果我们把打上label的图片不作任何处理,直接用作分类模型进行训练的话,模型当中的显著特征可能不是鱼头或鱼身,而是四周的~海~水~波~纹~ 

另外一种解决思路是设计更鲁棒的损失函数。比如用孪生网络(Siamese network)的对偶损失,替代或改良直接使用分类损失。原因是对偶损失可以一边拉大不同类别样本的间隔,一边拉小同类样本的间隔,制造出更合理的分类面。(详细内容可以参考第一篇参考文献)

    另外,所有相关研究中都没指出的是:第一应该避免对手了解你的模型细节(针对白盒攻击),第二应该避免对手可以用较低的成本频繁探测你的系统(针对黑盒攻击)。是不是简单、直观、又有效?!! 其实真实的反作弊系统就是这么设计的,不可能让作弊者无成本地频繁试错。

6. 讨论和展望

    上述,对分类器、目标检测器和恶意软件生成器的攻击已经有了一些突破,但是大部分工作还原到真实场景中,效果并没有特别好,或者还没有想好是否真的有现实意义。相关的工作需要在更大的数据集、更真实的场景中去进行验证和完善。因为相关的研究还在快速推进中,所以后面能做到什么程度,还是非常值得期待的。

 对抗样本的工作思路,可以有以下两个方面的意义:

    1)对抗样本主要诉求是寻找模型的薄弱点,并对此展开攻击。这种思路反过来就可以应用于设计泛化性和鲁棒性更好的模型。

    2)对抗场景下的一些现实应用,如反作弊和风控系统,可以模拟产生badcase,提早对可能出现的效果反弹做预判和准备,甚至可以提前反spam。但是这一应用的难点是:模拟产生的badcase是否是物理世界中真实可能出现的badcase。


注:文中的图表及相关工作进展主要引用自如下的公开论文,如有引用不当欢迎纠正

7. 参考文献

B Wang, J Gao, Y Qi,A Theoretical Framework for Robustness of (Deep) Classifiers against Adversarial Examples,ICLR 2017

Weiwei Hu and Ying Tan,Generating adversarial malware examples for black-box attacks based on GAN,Computer Science 2017

AJ Bose,P Aarabi, Adversarial Attacks on Face Detectors using Neural Net based Constrained Optimization, arXiv:1805.12302  (2018)

J Lu, H Sibai, E Fabry,Adversarial Examples that Fool Detectors,arXiv:1712.02494 (2017)

IJ Goodfellow, J Shlens, C Szegedy,Explaining and Harnessing Adversarial Examples,《ComputerScience》, 2014

S. Moosavi-Dezfooli, A. Fawzi, and P. Frossard. Deepfool: a simple and accurate method to fool deep neural networks. CoRR, abs/1511.04599, 2015. 1, 2

S.-M. Moosavi-Dezfooli, A. Fawzi, O. Fawzi, and P. Frossard. Universal adversarial perturbations. arXivpreprint arXiv:1610.08401, 2016. 1, 2

A. Nguyen, J. Yosinski, and J. Clune. Deep neural networksare easily fooled: High confidence predictions for unrecognizable images. In CVPR, 2015. 1, 2

N. Papernot, P. D. McDaniel, and I. J. Goodfellow. Transferability in machine learning: from phenomena toblackbox attacks using adversarial samples. arXiv preprint arXiv:1605.07277, 2016. 1

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容