前段时间,一档名为《燃烧吧!天才程序员》的竞赛类综艺让「程序员」这一群体成功破圈,也呈现了 AI 在解决实际问题的过程中面临的一些挑战,如数据集中存在对抗样本、图像中存在噪声等。在本文中,CLS 战队(大赛头名团队)的优秀选手、奥比中光算法工程师埼玉详细解读了他们在比赛中用到的解决方案。
近日,由蚂蚁集团、清华大学等组织共同协办的首届「Inclusion|A-tech 科技精英赛」(以下简称 A-tech 大赛)圆满落幕。奥比中光科技集团股份有限公司 (以下简称「奥比中光」) 研究院 SDK 组负责人小蛮腰、算法工程师埼玉(均为花名)从全球 20 位优秀 AI 工程师与网络安全极客选手中脱颖而出,与战队队友共同斩获大赛头名。首次 A-tech 科技精英赛的主题关注「科技的温暖和美好」,以「野生动物保护」作为切入点,选手需要在比赛中,分析检测 34 种可能存在的野生动物,并预测每种野生动物的位置、类别及置信度——数据中包含着大量「非正常图像」。本质上,这是一场对日常 AI 攻防的浓缩「还原」,正是在无数次的 AI 攻防的较量中,AI 安全相关技术也得到长足发展。
计算能力的万亿倍增长使得深度学习在处理各种任务中得到广泛应用,如图像分类、自然语言处理和博弈论。然而研究者发现,现有深度学习算法存在着严重的安全隐患:攻击者可以通过给良性样本添加特定噪声,轻易地欺骗深度学习模型,并且通常不会被人发现。攻击者利用人的视觉和听觉无法感知的扰动,足以使正常训练的模型输出置信度很高的错误预测。这种现象被研究者称为对抗攻击。
也可以说,我们的模型被「骗」了,这激发了人们对对抗技术的广泛兴趣。那么,什么是对抗技术呢?
举几个例子, 如图 1 所示 [1], 穿特殊图案的 T 恤可以使目前大部分行人检测器失效;给图 2[2] 中左边的大熊猫添加一个很小的干扰噪声,虽然生成的图片看起来和原始的没有什么区别, 但是却会导致系统将其误认为是长臂猿的照片。
不过,有矛就有盾,对抗技术包含对抗攻击和对抗防御,它是机器学习与计算机安全技术的结合,是一个新兴的研究领域。以前的机器学习模型在面对攻击者精心设计的对抗攻击时,往往达不到预期的准确度。在实际应用中(如自动驾驶),这种错误的影响可能是致命的。1.FGSM(Fast gradient sign method)[5]这是一种基于梯度生成对抗样本的算法,其训练目标是最大化损失函数 J(x*,y), 以获取对抗样本 x*, 其中 J 是分类算法中衡量分类误差的损失函数,通常取交叉熵损失。最大化 J,即使添加噪声后的样本不再属于 y 类。在整个优化过程中,需满足 L∞约束 ||x*-x||∞ ≤ɛ,即原始样本与对抗样本的误差要在一定范围之内。其中 sign()是符号函数,括号里面是损失函数对 x 的偏导。是基于超平面分类思想的一种对抗样本生成方法。在二分类问题中,超平面是实现分类的基础,那么要改变某个样本 x 的分类,最小的扰动就是将 x 挪到超平面上,这个距离的代价最小。多分类的问题也类似。具体如下图所示,Deepfool 通过迭代计算的方法生成最小规范对抗扰动,将位于分类边界内的图像逐步推到边界外,直到出现错误分类。此方法生成的扰动比 FGSM 更小,同时有相似的欺骗率。3.C&W(Carlini & Wagner)[7]C&W 算法使用一个变量 w,辅助寻找最小扰动 r_n:目前对抗攻击领域的研究大多是针对图像分类领域, 如上述介绍的几种方法。而针对目标检测的研究相对较少, 且不同的攻击技术需要采用不同的策略去防御,即对症下药。针对带对抗样本的目标检测领域的研究目前分为两个阵营,即 anchor-based 和 anchor-free, 针对 anchor-based 的对抗攻击方法,如 DAG[2] and UEA[3],以及针对 anchor-free 的对抗攻击方法,如 FLA[4], 在此不过多赘述。在 A-tech 大赛中, 「野生动物识别战」任务就涉及到了对抗技术。该任务本质上是目标检测任务, 里面大约有 34 种可能存在的野生动物,需要预测每种野生动物的位置、类别及置信度,评测指标为 mAP@50。比赛不仅要看准确度,还要看速度,即比赛最终看的是哪个战队可以在测试集上达到既快又准(即更快的 FPS,更高的 mAP)。该任务中的数据分为训练集和测试集,其中测试集分为 A 榜和 B 榜。A 榜对选手可见,可以用来测试自己训练的模型的精度,B 榜不可见,成绩与排名以 B 榜排名为准,其中 A 榜和 B 榜独立同分布。这只是一个目标检测任务吧?如果这样想,你很可能会被「骗」:比赛的训练和测试数据中,含有大量的「非正常图像」。稍不注意,就会掉进主办方设置的陷阱中。野生动物识别战任务中的训练数据是分三批提供的,如下所示:第一批为正常的图像,如图 3 所示。这些图像虽然看起来正常,但是也有「坑」,其标签是离散的,也就是说,将同一张图像的多个标签分散在了多张一模一样的图像上。参赛者需要根据图像的 md5 来找出哪些图像和标签是可以合并的。第二批图像中是添加有水印攻击的图片,如图 4 所示,即在正常的物体上面添加了一些猎枪的水印。如果不注意,我们的模型就会学习到一些不该学习到的特征。第三批图像中便是对抗样本了。其中一半,是不带类别标签但有位置信息的正常图片,另一半是不带类别标签但有位置信息的对抗样本图像,如图 5 所示:再来看看测试数据,野生动物识别战任务中,A 榜的测试数据包含三部分:1、图像里面有自然噪声,比如雨、椒盐、高斯等,如图 6 所示:2、有少量水印攻击的图像,如图 7 所示,是水印攻击与雨水的混合图像:3、有少量对抗样本,如图 8 所示。第一眼看到这种图像时,我也很懵。面对上面的攻击,为避免我们的模型被「骗」,应该采取怎样的防御策略?训练集和测试集可视化:这是最重要的方法,只有了解图像的特征,我们才知道应该采取什么样的防御手段去防御。在比赛中,奥比中光团队对训练集和测试集都进行了可视化分析,看了图像之后,计划先跑出 baseline,于是选取了 mmdetection 框架,采用了 res50+CascadeRCNN 的架构,跑出了 53% 的mAP。应该采用什么方法可视化?只能说,戴上眼镜一张一张地看……1.测试图像去噪:可视化测试集的时候,我们发现测试集的图像中存在彩色的椒盐噪声,如图 9 所示。于是, 我们在将测试图片输入到模型进行判定之前,先对当前测试图片进行去噪,如中值滤波,剔除其中造成扰动的信息,使其不能对模型造成攻击。该方法可防御测试集中的自然噪声。注意 kernel 不能太大,否则测试时间过长,实验中测试 kernel 为5的时候,效果最好,mAP 大约提升了 8 个点。2.训练图像数据增强:训练的时候采用相关的数据增强手段,比如添加常用的数据增强方法,镜像、裁剪、随机变换亮度、对比度、饱和度,随机色度变换等。此外还有一些不太常用的方法,比如 cutout[8]方法,但是需要设置区域的大小范围,否则将整个物体全部遮挡了,训练效果会很差,如图 10 所示,将图中的猎枪水印的影响弱化了;以及将高斯分布中采样出的随机值矩阵加入到训练图像中,也能大大增强模型的泛化能力。其中第一类方法是目标检测领域里面通用的方法,可以增强模型的泛化能力,比如可以增强模型对强弱光的适应性,这也我们在比赛中采用的方法。而 cutout 方法则对水印攻击有一定的效果,我们可以设置 cutout 的区域范围,尤其可以对第二批获取到的训练数据做 cutout,这样可以削弱水印攻击的效果。而从高斯分布中采样出的随机值矩阵加入到训练图像中则可以针对测试集中的高斯噪声,也具有增强模型泛化能力的效果。3.生成对抗网络:既然有对抗样本了,很多同学自然而然就会想到 GAN 了。没错,可以训练一种专门去水印的生成对抗网络,用于图像的水印去除。其实,去水印的目的就是将带水印的图像转变为无水印的图像,这本质上也是一种图像转换任务。因此生成器的输入为带水印的图像,输出为无水印的图像;而判别器用于识别结果到底是原始真实的无水印图像,还是经过生成器生成的无水印图像。通过两者之间不断的对抗训练,生成器生成的无水印图像变得足够「以假乱真」,从而达到理想的去水印效果。如果比赛时间充裕,这是一种很有效的方法。4.采用两阶段的检测方法:由于两阶段的检测方法在第一阶段不区分类别,只定位位置信息,因此第三批的训练数据可以用于做弱监督的训练,只利用位置信息,不利用类别信息,能够增加模型的回归能力,使其能够定位的更准。5.多尺度测试:测试的时候采用多尺度测试(可理解为 TTA)。这是一个比赛涨点神器,玩过俄罗斯的套娃吧,就是下图这样的:6.数据清洗:如果人力与时间充足,可以采用对训练集进行人工数据清洗的方法,不过该方法一般适用于工业界,在比赛期间是否采用该方法,就仁者见仁智者见智了。以上就是针对 A-tech 比赛中攻击样本的一些防御策略。如果没有这些防御措施,直接拿一个目标检测网络去训练,估计会得到一个比较差的成绩,假如无防御的模型被用于实际的野生动物识别,后果将不堪设想。这次比赛深刻揭示了 AI 安全技术的意义。可以想象,如果在无人驾驶领域或者导弹定位系统中,模型的鲁棒性差或者受到了不可预知的样本攻击,导致出现「误伤」的情况,将有可能带来重大风险。比如曾发生过的无人驾驶汽车撞到行人,着实令人痛心。从另一方面来看,对抗样本的存在是非常有意义的。它能够让模型看到很多以前它没有见过的样本,是有利于增强模型鲁棒性的。就像 AI 换脸与 AI 鉴伪, 这种道高一尺、魔高一丈的较量不会停止:一场持续的科技竞赛, 必然会呈现攻与防互相促进发展的状态。作者简介:埼玉,奥比中光算法工程师,在工业界有诸多落地应用,擅长深度学习在行人领域的应用。
导师:小蛮腰,奥比中光研究院 SDK 组负责人。博士毕业于新加坡国立大学,图像识别经验丰富,熟悉深度学习算法,擅长 AI 图像识别、立体视觉。
鸣谢:A-tech 大赛的专家、老师、工作人员以及一同参赛的大佬们。
[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] 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.[4] 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.[5] I. Goodfellow, J. Shlens, and C. Szegedy, 「Explaining and harnessing adversarial examples,」 in International Conference on Learning Representations, 2015.[6] 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.[7] Carlini N, Wagner D. Towards evaluating the robustness of neural networks//Security and Privacy (SP), 2017 IEEE Symposium on. IEEE, 2017: 39-57.[8] Terrance DeVries and Graham W Taylor. Improved regularization of convolutional neural networks with cutout. CoRR, abs/1708.04552, 2017.