1. Abstract
目标检测任务一直是计算机视觉中十分热门的研究方向之一,同时其在监控、自动驾驶领域的广泛应用也对其安全性提出了更高的要求。然而,目前的对抗性防御方法仍集中在基础的分类任务上,而汇集了分类和定位两项任务的目标检测问题还是一片空白。简单来说,目标检测问题(分类+定位)可以看做是分类问题的推广。本文对“对抗鲁棒的目标检测”的研究进行了初步探索。
行文思路: (1)首先回顾了现有的目标检测器,从模型鲁棒性的角度系统性地分析了最近提出的一些攻击策略。 (2)提出以多任务学习的视角看目标检测任务,理论和实验上验证了人物损失的作用并不对称(并不一致或均等) (3)更进一步,提出一种对抗学习方法,可以利用多种攻击源来提升检测模型的鲁棒性。
2. Introduction
对抗性样本(adversarial examples):给原始样本一个视觉上不易察觉的微小扰动,导致分类器生成错误的预测。
文章贡献: (1)将对目标检测器的不同攻击进行了分类和分析,解释了他们共有的基本机制 (2)重点分析了不同任务损失之间的相互作用,以及他们对鲁棒性的影响 (3)将对抗训练框架从分类任务扩展到检测任务,提出了一种能够解决不同任务的损失函数之间相互干扰的对抗训练方法
3. Related Work
3.1 Attacks and Adversarial Training for Classification(分类任务上的攻击和对抗性训练)
两种代表性的(白盒)攻击方法:
- Fast gradient sign method (FGSM)
- Projective Gradient Descend (PGD)
对抗性攻击的防御方法:
- 去噪
- 梯度混淆
- 对抗训练:指训练目标为优化最小最大化问题的鲁棒模型。其中内层的最大化目标是根据模型参数生成攻击,外层的最小化目标是训练损失
- 等
3.2 Object Detection and Adversarial Attacks.(目标检测与对抗性攻击)
目标检测任务有单阶段方法和两阶段检测方法。其中后者的第二阶段其实是对一阶段结果进行一次或多次refine。 因此,单阶段的目标检测器十分重要,而单阶段目标检测也是本文的研究对象。 另外,目前的攻击方法,常不是对整张图片进行扰动,而是限制在局部的一块区域内进行。
3. Object Detection and Attacks Revisited(回顾目标检测,及各变体攻击方法之间的关系)
3.1 Object Detection as Multi-Task Learning(多任务学习视角看目标检测——其实指损失函数的构成)
任务(优化)目标:在数据集D上采样得到的样本,最小化其放入模型f之后预测值的损失函数的期望
我们抛开数学期望,不是一般性,同时又能够避免符号杂乱:
实践过程中,我们将该问题的优化目标描述为分类和定位两个问题的损失函数的综合:
3.2 Detection Attacks Guided by Task Losses(任务损失指导的检测攻击)
以多任务学习的视角来看各种针对目标检测的攻击,发现一个共性:都可以理解为实现不同任务损失或它们的组合的变体
这就为理解和比较目标检测中不同的攻击提供了思路和根据。
以此对不同攻击方法可以进行分类: 可以看到其损失函数的类别不尽相同。
为什么不同的(针对单个问题的)损失函数都能够用于生成目标检测(综合了两个问题)的攻击样本呢?下面给出对“单个任务损失在整体的攻击中实现有效性”的两条观点:
- 分类和定位任务有一部分的共享网络,因此在base net上搭起的两个任务理应有一些共享的缺点能被攻击
- base net 后续的两个任务各有自己的分支,但最后他们在测试阶段由于使用了NMS,实现了两段分支间的耦合,裁剪冗余预测的过程中,将会同时影响两个任务(——结构倒逼功能)
无论攻击如何优化,部件如何综合,如果没有对“单独组件在模型鲁棒性中所扮演角色(或所发挥的作用)”的理解,道路总是不明晰的
如果我们明确了这一点,那么我们自己的robust training method for object detectors方法就呼之欲出了。这也正是我们第四章的思路
4 Towards Adversarially Robust Detection(进军对抗鲁棒检测)
4.1 The Roles of Task Losses in Robustness(任务损失在模型鲁棒中发挥的作用)
因为两个任务共享一个base net ,即使说对输入图像按照一个单独的任务进行操作,两个任务将会不可避免地相互影响。下面从几个角度对模型鲁棒中任务损失的作用进行解析。
-
任务损失之间相互影响:一个经验是,不同的任务之间存在相互影响,针对一个任务的对抗样本同样可以对模型在其他任务上的性能造成消极影响。 为了说明这一点,我们对两个任务分别进行研究,分别将另一个任务进行边缘化,即只关注分类(定位)任务,简化为一个多标签分类问题(与类别无关的目标检测问题)。 为了更好地对比效果,我们导出网络经过NMS处理之前的检测输出进行记录。实验是基于半径为8的单步PGD方法实现的,结果如图3(a)。选择candidate作为前景的标准是,与gt的标记进行IoU(准确率)计算,大于阈值0.5,认为其在两个任务上与clean样本相近。 在实验结果上可以观察到一种不同任务间的攻击转移。这也可以作为“针对单个任务设计的损失函数生成的对抗样本可以有效地攻击目标检测器”的实验上的佐证。 -
任务梯度错位:两项任务的梯度在某种程度上有相近的优化方向,但并不完全一致,这就导致了任务的梯度错位,可能会干扰后续的对抗训练。为了验证这一点,对分类任务和定位任务绘制梯度的散点图,即图3(b)。观察到: (1)不同任务的梯度的变化大小不等——任务损失之间存在潜在的不平衡性。 (2)不同任务的梯度的方向不一致——任务梯度(优化方向)可能存在冲突。 为不同任务划定各自任务内最大的梯度范围,如图4所示,显示出两个任务域并非完全分离成两个不相关的簇,这支持了之前提出的“任务之间相互影响”的想法和实验观察。 同时,也能看到有很大一部分不重叠的领域,这说明两任务的梯度之间错位和冲突。
4.2 Adversarial Training for Robust Detection(引入方法:鲁棒检测对抗训练)
优化目标:对于鲁棒目标检测训练,将定义域设置为分类任务域和定位任务域的并集
其中,有
“鲁棒检测的对抗训练”和“传统分类问题的对抗训练”的几个不同点(换句话说,如何才能够将分类问题的网络泛化为检测问题的网络?):
- multi-task sources for adversary training(对抗训练中有多个任务来源),体现为:(1)数目多——有多个检测目标(2)异质性——分类任务和定位任务。
面对对抗性的生成和训练,实现多个监督源,因此能够将分类问题的对抗训练方法进行泛化 - task-oriented domain constraints(面向任务的领域约束):传统的对抗性训练方法设置了一个与任务无关的域约束Sx,而我们在针对检测问题的对抗鲁棒训练中,使用的是以任务为导向的域约束
,这将可行的域设置为,或是最大化分类任务损失,或是最大化定位任务损失,的图像的集合。最终训练使用的对抗样本是集合中整体损失最大的实例。 使用以上任务域约束的优势就是,我们更好地 在能够不考虑每个任务之间干扰的情况下,在每个(或者说各自、单个)任务的引导下生成对抗性的样本。
当我们将任务域拓展为Sx,将bbox的范围扩展到整张图而为每张图设置单独一个类别标签时,这就退化为了分类问题的设定
|