AI深度学习模型被“骗”,研究者如何对抗攻击?

作者 | 埼玉
编辑 | 3D视觉开发者社区
✨如果觉得文章内容不错,别忘了三连支持下哦~

文章目录

  • 我们的模型被“骗”了
  • 什么是对抗技术?
  • 对抗攻击的方法
    • 1. FGSM(Fast gradient sign method)
    • 2. Deepfool
    • 3. C&W(Carlini & Wagner)
  • A-tech科技精英赛中的“进攻”与“防守”
    • 1. 赛题介绍
    • 2. 任务数据
    • 3. 测试数据
    • 4. 防御策略
  • 结语
  • 大赛导师评价

我们的模型被“骗”了

计算能力的万亿倍增长使得深度学习在处理各种任务中得到广泛应用,如图像分类、自然语言处理和博弈论。

然而,研究者发现,现有深度学习算法存在着严重的安全隐患:攻击者可以通过给良性样本添加特定噪声,轻易地欺骗深度学习模型,并且通常不会被人发现。攻击者利用人的视觉/听觉无法感知的扰动,足以使正常训练的模型输出置信度很高的错误预测。这种现象,被研究者称为对抗攻击。也可以形象地说,我们的模型被”骗“了!

对抗攻击被认为是在部署深度学习模型之前的巨大障碍,这也激发了人们对对抗技术的广泛兴趣。

什么是对抗技术?

那么,什么是对抗技术呢?

举几个例子, 如图1所示1, 穿特殊图案的T恤可以使目前大部分行人检测器失效;给图22中左边的大熊猫添加一个很小的干扰噪声,虽然生成的图片看起来和原始的没有什么区别, 但是却会导致系统将其误认为是长臂猿的照片。
AI深度学习模型被“骗”,研究者如何对抗攻击?_第1张图片图11
AI深度学习模型被“骗”,研究者如何对抗攻击?_第2张图片图22

有矛就有盾,对抗技术分为对抗攻击和对抗防御

它是机器学习与计算机安全的结合,是一个新兴的研究领域。

以前设计的机器学习模型在面对攻击者精心设计的对抗攻击时,往往达不到预期的准确度。而在实际应用中(如自动驾驶),这种错误的影响是致命的。

对抗攻击的方法

目前常见的对抗攻击方法一般有以下几种:

1. FGSM(Fast gradient sign method)

这是一种基于梯度生成对抗样本的算法3,其训练目标是最大化损失函数 J ( x ∗ , y ) J(x*,y) J(x,y) , 以获取对抗样本 x ∗ x* x , 其中 J是分类算法中衡量分类误差的损失函数,通常取交叉熵损失。

最大化 J J J,即:使添加噪声后的样本不再属于 y y y类。

在整个优化过程中,需满足 L ∞ L∞ L约束 ∣ ∣ x ∗ − x ∣ ∣ ∞ ≤ ɛ ||x*-x||∞ ≤ɛ xxɛ,即原始样本与对抗样本的误差要在一定范围之内。
x ∗ = x + ɛ ∗ s i g n ( ∇ x J ( x , y ) ) x* =x+ɛ*sign(∇xJ(x,y)) x=x+ɛsign(xJ(x,y))
其中, s i g n sign sign( )是符号函数,括号里面是损失函数对 x x x的偏导。

2. Deepfool

这是一种基于超平面分类思想的对抗样本生成方法4

在二分类问题中,超平面是实现分类的基础,那么要改变某个样本x的分类,最小的扰动就是将x挪到超平面上,这个距离的代价最小。

多分类的问题也类似,具体如下图所示,Deepfool通过迭代计算的方法生成最小规范对抗扰动,将位于分类边界内的图像逐步推到边界外,直到出现错误分类。

此方法生成的扰动比 FGSM 更小,同时有相似的欺骗率。
AI深度学习模型被“骗”,研究者如何对抗攻击?_第3张图片

3. C&W(Carlini & Wagner)

C&W算法5使用一个变量 w w w,辅助寻找最小扰动 r n r_n rn:
         r n = 0.5 ∗ ( t a n h ( w + 1 ) ) − X n r_n=0.5*(tanh(w+1))-X_n rn=0.5(tanh(w+1))Xn
        
基于w,可以写出C&W优化过程的损失函数:
AI深度学习模型被“骗”,研究者如何对抗攻击?_第4张图片

其中, f f f被定义为
AI深度学习模型被“骗”,研究者如何对抗攻击?_第5张图片

目前,对抗攻击领域的研究大多是针对图像分类领域, 如上述介绍的几种方法。

而针对目标检测的研究相对较少, 且不同的攻击技术需要采用不同的策略去防御,对症下药。

针对带对抗样本的目标检测领域的研究,目前分为两个阵营:即anchor-based和anchor-free。

针对anchor-based的对抗攻击方法,如DAG2 and UEA6,以及针对anchor-free的对抗攻击方法,如FLA7,在此不作过多赘述。

A-tech科技精英赛中的“进攻”与“防守”

1. 赛题介绍

近日,在A-tech组委会主办、蚂蚁集团、清华大学等组织协办的旨在于保护野生动物的A-tech科技精英赛上,其中的野生动物识别战任务就涉及到了对抗技术。

该任务本质上是目标检测任务, 里面大约有29 种可能存在的野生动物,选手需要预测每种野生动物的位置、类别及置信度,评测指标为mAP@50。

此外,为了公平性,比赛不仅要看准确度,还要看速度,即比赛最终看的是哪个战队可以在测试集上达到既快又准(即更快的FPS,更高的mAP)。

该任务中的数据分为训练集和测试集,其中测试集分为A榜和B榜,A榜对选手可见,可以用来测试自己训练的模型的精度;B榜不可见,成绩与排名以B榜排名为准,A榜与B榜独立同分布。

看到这里,大家可能都笑了,这不就是一个目标检测任务么?多么平平无奇。如果这样想,你很可能就被”骗“到了。因为在比赛的训练和测试数据中含有很多的”非正常图像”,稍不注意,就会掉进陷阱里面。

2. 任务数据

下面,我们来仔细说说比赛中的数据。

在深度学习时代,数据、算法、算力缺一不可。而对于算法工程师来说,一个很重要的能力是能够对数据有敏锐的直觉

野生动物识别战任务中的训练数据是分三批提供的,如下所示:

第一批为正常的图像,如图3所示。

这些图像虽然看起来正常,但其实也有坑。他们的标签是离散的,也就是将同一张图像的多个标签分散在了多张一模一样的图像上。

参赛者需要根据图像的md5,来找出哪些图像和标签是可以合并的。
图3

第二批图像是添加有水印攻击的图片,如图4所示。

在正常的物体上面添加了一些猎枪的水印,如果不注意,我们的模型就会学习到一些不该学习到的特征。
AI深度学习模型被“骗”,研究者如何对抗攻击?_第6张图片 图4

第三批图像中便是对抗样本了。一半是不带类别标签,但有位置信息的正常图片;另一半是不带类别标签,但有位置信息的对抗样本图像,如图5所示。
图5

3. 测试数据

看完了训练图像,大家心里可能也有谱了,知道这个比赛并非我们想象的那么简单,那么我们再来看看测试数据。野生动物识别战任务中A榜的测试数据包含三部分:

1、里面有自然噪声,比如雨、椒盐、高斯等,如图6所示。
AI深度学习模型被“骗”,研究者如何对抗攻击?_第7张图片
图6

2、有少量水印攻击的图像,如图7所示,是水印攻击与雨水的混合图像:
AI深度学习模型被“骗”,研究者如何对抗攻击?_第8张图片图7

3、有少量对抗样本,如图8所示。
AI深度学习模型被“骗”,研究者如何对抗攻击?_第9张图片图8

(说实话我第一眼看到这种图像,我当时都懵圈了,心想这个图是一坨什么鬼)AI深度学习模型被“骗”,研究者如何对抗攻击?_第10张图片

4. 防御策略

想必看到这里,大家都明白了这个比赛的难度了。那么面对上面的攻击,为避免我们的模型被”骗”,我们应该采取怎样的防御策略呢?

防御策略主要如下:

1、训练集和测试集可视化:

该方法是最重要的方法,因为只有了解了图像的特征,我们才知道应该采取什么样的防御手段去防御,我们在比赛中对训练集和测试集都进行了可视化分析。

看了一些图像之后,我们计划先跑出baseline,于是选取了mmdetection框架,采用了res50+CascadeRCNN的架构,跑出了53%的mAP。

有同学问,应该采用什么方法可视化,我只能老实回答:没错,像下图那样,戴上眼镜一张一张的看(囧)

AI深度学习模型被“骗”,研究者如何对抗攻击?_第11张图片

2、测试图像去噪:

可视化测试集的时候,我们发现测试集的图像中存在彩色的椒盐噪声,如图9所示。

图9

于是,在将测试图片输入到模型进行判定之前,先对当前测试图片进行去噪,如中值滤波,剔除其中造成扰动的信息,使其不能对模型造成攻击。

该方法可防御测试集中的自然噪声。

注意:kernel不能太大,否则测试时间过长,实验中测试kernel为5的时候,效果最好,mAP大约提升了8个点。

3、训练图像数据增强:

训练的时候采用相关的数据增强手段,比如添加常用的数据增强方法,镜像、裁剪、随机变换亮度、对比度、饱和度,随机色度变换等。

此外,还有一些不太常用的方法,比如cutout8方法。但是需要设置区域的大小范围,否则将整个物体全部遮挡了,训练效果会很差,如图10所示,将图中的猎枪水印的影响弱化了。
AI深度学习模型被“骗”,研究者如何对抗攻击?_第12张图片
图10

以及,把从高斯分布中采样出的随机值矩阵加入到训练图像中,也能大大增强模型的泛化能力。

其中,第一类方法是目标检测领域里面通用的方法,可以增强模型的泛化能力。比如,可以增强模型对强弱光的适应性,这也是我们在比赛中采用的方法。

而cutout方法则对水印攻击有一定的效果,我们可以设置cutout的区域范围,尤其可以对第二批获取到的训练数据做cutout,这样可以削弱水印攻击的效果。

从高斯分布中采样出的随机值矩阵加入到训练图像中则可以针对测试集中的高斯噪声,也具有增强模型泛化能力的效果。

4、GAN:
生成对抗网络既然有对抗样本了,很多同学自然而然就会想到GAN了。

没错,我们可以训练一种专门去水印的生成对抗网络,用于图像的水印去除。其实去水印的目的就是将带水印的图像转变为无水印的图像,这本质上也是一种图像转换任务。

因此,生成器输入带水印的图像,输出为无水印的图像;而判别器用于识别结果到底是原始真实的无水印图像,还是经过生成器生成的无水印图像。

通过两者之间不断的对抗训练,生成器生成的无水印图像变得足够“以假乱真”,从而达到理想的去水印效果。如果比赛时间充裕,该方法是一种很惊艳的方法。

5、两阶段的检测方法:

由于两阶段的检测方法在第一阶段不区分类别,只定位位置信息。

因此,第三批的训练数据可以用于做弱监督的训练,只利用位置信息,不利用类别信息,能够增加模型的回归能力,使其能够定位的更准。

6、多尺度测试:

测试的时候采用多尺度测试(可理解为TTA),比赛涨点神器,玩过俄罗斯的套娃吧,就是下图这样的。
AI深度学习模型被“骗”,研究者如何对抗攻击?_第13张图片

7、数据清洗:

如果人力与时间充足,可以采用对训练集进行人工数据清洗的方法。

不过,该方法一般适用于工业界,在比赛期间是否采用该方法就“仁者见仁,智者见智”了。

结语

上面就是针对该比赛中攻击样本的一些防御策略,假如没有上面的这些防御措施,我们直接像开篇那样想的那样,单纯地拿一个目标检测网络直接去训练,估计会得到一个比较差的成绩。假如这个模型被拿去用于实际的野生动物识别,后果将不堪设想。

通过这次比赛,我们都深刻的认识到了AI安全技术的重大意义,可以想象一下:如果在无人驾驶领域或者导弹定位系统中,模型的鲁棒性差或者受到了不可预知的样本攻击,从而导致出现了”误伤“,比如之前发生的无人驾驶汽车撞到行人的事情,着实令人痛心。

其实,反过来从另一个层面看,对抗样本的存在是非常有意义的。它能够让模型看到很多以前它没有见过的样本,是有利于增强模型鲁棒性的。就像AI换脸与AI鉴伪,这种道高一尺、魔高一丈的较量不会停止,就像是一场持续的科技竞赛,必然会呈现攻与防互相促进发展的状态。

大赛导师评价

“团队在算法设计过程中,充分分析了样本数据的特性和特征,针对样本特定性质将样本进行划分并分别处理,在数据分析上有较突出的设计。

在现有模型代码的基础上,根据所需完成任务的特性,对现有框架进行改进,实现了精度和速度的双重保证。但在实现过程中,算法的创新性还有进一步提升的空间。

在求解创新方面,团队设计了分类模型框架在初始化阶段根据数据特性对数据进行划分,有一定的求解新颖度。

但在AI安全方面,团队在比赛中仅在预处理阶段对数据进行了过滤删除,如果能特别考虑污染数据、对抗样本对于模型性能的影响,相信将会取得更好的比赛结果。”

——中国科学院信息工程研究所研究员 操晓春

  • 作者:埼玉,奥比中光算法工程师,在工业界有诸多落地应用,擅长深度学习在行人领域的应用。

  • 导师:小蛮腰,奥比中光研究院 SDK 组负责人。博士毕业于新加坡国立大学,图像识别经验丰富,熟悉深度学习算法,擅长 AI 图像识别、立体视觉。

  • 鸣谢:A-tech 大赛的专家、老师、工作人员以及一同参赛的大佬们。

版权声明:本文仅做学术分享,版权归原作者所有,若涉及侵权内容请联系删文

3D视觉开发者社区是由奥比中光给所有开发者打造的分享与交流平台,旨在将3D视觉技术开放给开发者。平台为开发者提供3D视觉领域免费课程、奥比中光独家资源与专业技术支持。

点击加入3D视觉开发者社区,和开发者们一起讨论分享吧~
也可移步微信关注官方公众号 3D视觉开发者社区 ,获取更多干货知识哦~


  1. Wu Z , Lim S N , Davis L , et al. Making an Invisibility Cloak: Real World Adversarial Attacks on Object Detectors[J]. 2019. ↩︎ ↩︎

  2. Cihang Xie, Jianyu Wang, Zhishuai Zhang, Yuyin Zhou, Lingxi Xie, and Alan Yuille. Adversarial examples for semantic segmentation and object detection. In Proceedings of the IEEE International Conference on Computer Vision (ICCV), pages 1369–1378, 2017. ↩︎ ↩︎ ↩︎

  3. I. Goodfellow, J. Shlens, and C. Szegedy, “Explaining and harnessing adversarial examples,” in International Conference on Learning Representations, 2015. ↩︎

  4. Moosavi-Dezfooli S M , Fawzi A , Frossard P . DeepFool: a simple and accurate method to fool deep neural networks[C]// Computer Vision & Pattern Recognition. IEEE, 2016. ↩︎

  5. Carlini N, Wagner D. Towards evaluating the robustness of neural networks//Security and Privacy (SP), 2017 IEEE Symposium on. IEEE, 2017: 39-57. ↩︎

  6. Xingxing Wei, Siyuan Liang, Ning Chen, and Xiaochun Cao. Transferable adversarial attacks for image and video object detection. In Proceedings of the International Joint Conference on Artificial Intelligence (IJCAI), pages 954–960. AAAI Press, 2019. ↩︎

  7. Q. Liao et al., “Fast Local Attack: Generating Local Adversarial Examples for Object Detectors,” 2020 International Joint Conference on Neural Networks (IJCNN), Glasgow, United Kingdom, 2020, pp. 1-8, doi: 10.1109/IJCNN48605.2020.9206811. ↩︎

  8. Terrance DeVries and Graham W Taylor. Improved regularization of convolutional neural networks with cutout. CoRR, abs/1708.04552, 2017. ↩︎

你可能感兴趣的:(开发者,人工智能,深度学习,计算机视觉,对抗攻击,生成对抗网络)