AI模型被「骗」怎么破?《燃烧吧!天才程序员》冠军团队解决方案出炉

前段时间,一档名为《燃烧吧!天才程序员》的竞赛类综艺让「程序员」这一群体成功破圈,也呈现了 AI 在解决实际问题的过程中面临的一些挑战,如数据集中存在匹敌样本、图象中存在噪声等。在本文中,CLS 战队(大赛头名团队)的优秀选手、奥比中光算法工程师埼玉详细解读了他们在竞赛中用到的解决方案。近日,由蚂蚁集团、清华大学等组织共同协办的首届「Inclusion|A-tech 科技精英赛」(以下简称 A-tech 大赛)圆满落幕。奥比中光科技集团股份有限公司 (以下简称「奥比中光」) 研究院 SDK 组负责人小蛮腰、算法工程

前段时间,一档名为《燃烧吧!天才程序员》的竞赛类综艺让「程序员」这一群体成功破圈,也呈现了 AI 在解决实际问题的过程中面临的一些挑战,如数据集中存在匹敌样本、图象中存在噪声等。在本文中,CLS 战队(大赛头名团队)的优秀选手、奥比中光算法工程师埼玉详细解读了他们在竞赛中用到的解决方案。

AI模型被「骗」怎么破?《燃烧吧!天才程序员》冠军团队解决方案出炉

近日,由蚂蚁集团、清华大学等组织共同协办的首届「Inclusion|A-tech 科技精英赛」(以下简称 A-tech 大赛)圆满落幕。奥比中光科技集团股份有限公司 (以下简称「奥比中光」) 研究院 SDK 组负责人小蛮腰、算法工程师埼玉(均为花名)从全球 20 位优秀 AI 工程师与网络安全极客选手中脱颖而出,与战队队友共同斩获大赛头名。

首次 A-tech 科技精英赛的主题关注「科技的温暖和美好」,以「野生动物保护」作为切入点,选手需要在竞赛中,分析检测 34 种可能存在的野生动物,并预测每种野生动物的位置、类型及置信度——数据中包含着大量「非正常图象」。本质上,这是一场对日常 AI 攻防的浓缩「还原」,正是在无数次的 AI 攻防的较量中,AI 安全相关技术也得到长足发展。

计算能力的万亿倍增长使得深度进修在处理各种义务中得到广泛应用,如图象分类、自然语言处理和博弈论。然而研究者发现,现有深度进修算法存在着严重的安全隐患:袭击者可以通过给良性样本增加特定噪声,轻易地欺骗深度进修模型,并且通常不会被人发现。袭击者利用人的视觉和听觉无法感知的扰动,足以使正常训练的模型输出置信度很高的错误预测。这种现象被研究者称为匹敌袭击。

也可以说,我们的模型被「骗」了,这激发了人们对匹敌技术的广泛兴趣。那么,什么是匹敌技术呢?

举几个例子, 如图 1 所示 [1], 穿特殊图案的 T 恤可以使目前大部分行人检测器失效;给图 2[2] 中左边的大熊猫增加一个很小的干扰噪声,虽然生成的图片看起来和原始的没有什么区别, 但是却会导致系统将其误认为是长臂猿的照片。

AI模型被「骗」怎么破?《燃烧吧!天才程序员》冠军团队解决方案出炉

图 1[1]

AI模型被「骗」怎么破?《燃烧吧!天才程序员》冠军团队解决方案出炉

图 2[2]

不过,有矛就有盾,匹敌技术包含匹敌袭击和匹敌抵制,它是机器进修与计算机安全技术的结合,是一个新兴的研究领域。以前的机器进修模型在面对袭击者精心设计的匹敌袭击时,往往达不到预期的准确度。在实际应用中(如自动驾驶),这种错误的影响可能是致命的。

现有匹敌袭击的格式

目前常见的匹敌袭击格式一般有以下几种:

1.FGSM(Fast gradient sign method)[5]

这是一种基于梯度生成匹敌样本的算法,其训练目标是最大化损失函数 J(x*,y), 以获取匹敌样本 x*, 其中 J 是分类算法中衡量分类误差的损失函数,通常取交叉熵损失。最大化 J,即使增加噪声后的样本不再属于 y 类。在整个优化过程中,需满足 L∞约束 ||x*-x||∞ ≤ɛ,即原始样本与匹敌样本的误差要在一定范围之内。

x* =x+ɛ*sign(∇xJ(x,y))

其中 sign()是符号函数,括号里面是损失函数对 x 的偏导。

2.Deepfool[6]

是基于超平面分类思想的一种匹敌样本生成格式。在二分类问题中,超平面是实现分类的基础,那么要改变某个样本 x 的分类,最小的扰动就是将 x 挪到超平面上,这个距离的代价最小。

多分类的问题也类似。具体如下图所示,Deepfool 通过迭代计算的格式生成最小规范匹敌扰动,将位于分类边界内的图象逐步推到边界外,直到出现错误分类。此格式生成的扰动比 FGSM 更小,同时有相似的欺骗率。

AI模型被「骗」怎么破?《燃烧吧!天才程序员》冠军团队解决方案出炉

3.C&W(Carlini & Wagner)[7]

C&W 算法使用一个变量 w,辅助寻找最小扰动 r_n:

r_n=0.5*(tanh(w+1))-X_n

基于 w 可以写出 C&W 优化过程的损失函数:

AI模型被「骗」怎么破?《燃烧吧!天才程序员》冠军团队解决方案出炉

其中 f 被定义为

AI模型被「骗」怎么破?《燃烧吧!天才程序员》冠军团队解决方案出炉

目前匹敌袭击领域的研究大多是针对图象分类领域, 如上述介绍的几种格式。而针对目标检测的研究相对较少, 且不同的袭击技术需要采用不同的策略去抵制,即对症下药。

针对带匹敌样本的目标检测领域的研究目前分为两个阵营,即 anchor-based 和 anchor-free, 针对 anchor-based 的匹敌袭击格式,如 DAG[2] and UEA[3],以及针对 anchor-free 的匹敌袭击格式,如 FLA[4], 在此不过多赘述。

A-tech 大赛中的「进攻」与「防守」

在 A-tech 大赛中, 「野生动物识别战」义务就涉及到了匹敌技术。该义务本质上是目标检测义务, 里面大约有 34 种可能存在的野生动物,需要预测每种野生动物的位置、类型及置信度,评测指标为 mAP@50。竞赛不仅要看准确度,还要看速度,即竞赛最终看的是哪个战队可以在尝试集上达到既快又准(即更快的 FPS,更高的 mAP)。

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

这只是一个目标检测义务吧?如果这样想,你很可能会被「骗」:竞赛的训练和尝试数据中,含有大量的「非正常图象」。稍不注意,就会掉进主办方设置的陷阱中。野生动物识别战义务中的训练数据是分三批提供的,如下所示:

第一批为正常的图象,如图 3 所示。这些图象虽然看起来正常,但是也有「坑」,其标签是离散的,也就是说,将同一张图象的多个标签分散在了多张一模一样的图象上。参赛者需要根据图象的 md5 来找出哪些图象和标签是可以合并的。

AI模型被「骗」怎么破?《燃烧吧!天才程序员》冠军团队解决方案出炉

图 3

第二批图象中是增加有水印袭击的图片,如图 4 所示,即在正常的物体上面增加了一些猎枪的水印。如果不注意,我们的模型就会进修到一些不该进修到的特征。

AI模型被「骗」怎么破?《燃烧吧!天才程序员》冠军团队解决方案出炉

图 4

第三批图象中便是匹敌样本了。其中一半,是不带类型标签但有位置信息的正常图片,另一半是不带类型标签但有位置信息的匹敌样本图象,如图 5 所示:

AI模型被「骗」怎么破?《燃烧吧!天才程序员》冠军团队解决方案出炉

图 5

再来看看尝试数据,野生动物识别战义务中,A 榜的尝试数据包含三部分:

1、图象里面有自然噪声,比如雨、椒盐、高斯等,如图 6 所示:

AI模型被「骗」怎么破?《燃烧吧!天才程序员》冠军团队解决方案出炉

图 6

2、有少量水印袭击的图象,如图 7 所示,是水印袭击与雨水的混合图象:

 

AI模型被「骗」怎么破?《燃烧吧!天才程序员》冠军团队解决方案出炉

图 7

3、有少量匹敌样本,如图 8 所示。第一眼看到这种图象时,我也很懵。

AI模型被「骗」怎么破?《燃烧吧!天才程序员》冠军团队解决方案出炉

图 8

面对上面的袭击,为避免我们的模型被「骗」,应该采取怎样的抵制策略?

训练集和尝试集可视化:这是最重要的格式,只有了解图象的特征,我们才知道应该采取什么样的抵制手段去抵制。在竞赛中,奥比中光团队对训练集和尝试集都进行了可视化分析,看了图象之后,计划先跑出 baseline,于是选取了 mmdetection 框架,采用了 res50+CascadeRCNN 的架构,跑出了 53% 的mAP。

应该采用什么格式可视化?只能说,戴上眼镜一张一张地看……

1.尝试图象去噪:可视化尝试集的时候,我们发现尝试集的图象中存在彩色的椒盐噪声,如图 9 所示。于是, 我们在将尝试图片输入到模型进行判定之前,先对当前尝试图片进行去噪,如中值滤波,剔除其中造成扰动的信息,使其不能对模型造成袭击。

该格式可抵制尝试集中的自然噪声。注意 kernel 不能太大,否则尝试时间过长,实验中尝试 kernel 为5的时候,效果最好,mAP 大约提升了 8 个点。

AI模型被「骗」怎么破?《燃烧吧!天才程序员》冠军团队解决方案出炉

图 9

2.训练图象数据增强:训练的时候采用相关的数据增强手段,比如增加常用的数据增强格式,镜像、裁剪、随机变换亮度、对比度、饱和度,随机色度变换等。此外还有一些不太常用的格式,比如 cutout[8]格式,但是需要设置区域的大小范围,否则将整个物体全部遮挡了,训练效果会很差,如图 10 所示,将图中的猎枪水印的影响弱化了;以及将高斯分布中采样出的随机值矩阵加入到训练图象中,也能大大增强模型的泛化能力。

AI模型被「骗」怎么破?《燃烧吧!天才程序员》冠军团队解决方案出炉

图 10

其中第一类格式是目标检测领域里面通用的格式,可以增强模型的泛化能力,比如可以增强模型对强弱光的适应性,这也我们在竞赛中采用的格式。而 cutout 格式则对水印袭击有一定的效果,我们可以设置 cutout 的区域范围,尤其可以对第二批获取到的训练数据做 cutout,这样可以削弱水印袭击的效果。而从高斯分布中采样出的随机值矩阵加入到训练图象中则可以针对尝试集中的高斯噪声,也具有增强模型泛化能力的效果。

3.生成匹敌网络:既然有匹敌样本了,很多同学自然而然就会想到 GAN 了。没错,可以训练一种专门去水印的生成匹敌网络,用于图象的水印去除。

其实,去水印的目的就是将带水印的图象转变为无水印的图象,这本质上也是一种图象转换义务。因此生成器的输入为带水印的图象,输出为无水印的图象;而判别器用于识别结果到底是原始真实的无水印图象,还是经过生成器生成的无水印图象。通过两者之间不断的匹敌训练,生成器生成的无水印图象变得足够「以假乱真」,从而达到理想的去水印效果。如果竞赛时间充裕,这是一种很有效的格式。

4.采用两阶段的检测格式:由于两阶段的检测格式在第一阶段不区分类型,只定位位置信息,因此第三批的训练数据可以用于做弱监督的训练,只利用位置信息,不利用类型信息,能够增加模型的回归能力,使其能够定位的更准。

5.多尺度尝试:尝试的时候采用多尺度尝试(可理解为 TTA)。这是一个竞赛涨点神器,玩过俄罗斯的套娃吧,就是下图这样的:

AI模型被「骗」怎么破?《燃烧吧!天才程序员》冠军团队解决方案出炉

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.

给TA打赏
共{{data.count}}人
人已打赏
AI

Nature盘点:从Fortran、arXiv到AlexNet,这些代码改变了迷信界

2021-1-21 14:16:00

AI

SENSORO 与柬埔寨国防部通讯局签署单干原谅备忘录

2021-1-21 16:21:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索