文章目录
- 1. 概述
- 2 算法
- 2.1 稠密对抗生成
- 2.2 选择用于检测的输入提案
1. 概述
题目:用于语义分割和目标检测的对抗样本
核心点:将对抗性样本的概念扩展到语义分割和对象检测,并提出稠密对抗生成算法 (Dense adversary generation, DAG)。
引用:
@inproceedings{Xie:2017:13691378,
author = {Ci Hang Xie and Jian Yu Wang and Zhi Shuai Zhang and Yu Yin Zhou and Ling Xi Xie and Alan Yuille},
title = {Adversarial examples for semantic segmentation and object detection},
booktitle = {{CVPR}},
pages = {1369--1378},
year = {2017}
}
2 算法
2.1 稠密对抗生成
令 X \mathbf{X} X表示包含 N N N个识别目标 T = { t 1 , t 2 , … , t N } \mathcal{T}=\{t_1,t_2,\dots,t_N\} T={t1,t2,…,tN}的图像。每个目标 t n t_n tn对应一个真实标签 l n ∈ { 1 , 2 , … , C } l_n\in\{ 1,2,\dots, C \} ln∈{1,2,…,C},其中 C C C是类别数。所有的标签记为 L = { l 1 , l 2 , … , l N } \mathcal{L}=\{l_1,l_2,\dots,l_N\} L={l1,l2,…,lN}。
T \mathcal{T} T依据所在的场景而有所变化,例如在图像分类中, T \mathcal{T} T只包含一个元素,即完整图像;在语义分割中由所有像素,或者说相应地感受野组成;在对象检测中,则由所有提案组成。
给定特定任务下的神经网络,令
f
=
(
X
,
t
n
)
∈
R
c
\mathbf{f}=(\mathbf{X},t_n)\in\mathbb{R}^c
f=(X,tn)∈Rc表示第
n
n
n个识别对象在softmax之前的分数向量。为了生成对抗样本,理想的目标是令所有目标上的预测出错,即:
∀
n
,
arg max
c
{
f
c
(
X
+
r
,
t
n
)
}
≠
l
n
\forall n,\argmax_c\{ f_c(\mathbf{X}+\mathbf{r},t_n) \}\neq l_n
∀n,cargmax{fc(X+r,tn)}=ln这里的
r
\mathbf{r}
r即是想要生成的对抗样本。该公式的含义为,当添加扰动后,应当使得最大预测概率所对应的类别偏离原有类别。对此,我们为每个目标制定一个对抗标签
l
n
′
l_n'
ln′,其中
l
n
′
l_n'
ln′是从其它不正确类别的随机采样,即
l
n
′
∈
[
1
,
C
]
∖
{
l
n
}
l_n'\in[1,C]\setminus\{l_n\}
ln′∈[1,C]∖{ln}。同理有
L
′
=
{
l
1
′
.
l
2
′
,
…
,
l
n
′
}
\mathcal{L}'=\{l_1'.l_2',\dots,l_n'\}
L′={l1′.l2′,…,ln′}。实际上,我们定义了一个随机排列函数
π
:
{
1
,
2
,
…
,
C
}
→
{
1
,
2
,
…
,
C
}
\pi:\{1,2,\dots,C\}\to\{1,2,\dots,C\}
π:{1,2,…,C}→{1,2,…,C},其中
π
(
c
)
≠
c
\pi(c)\neq c
π(c)=c。在这种设置下,损失函数定义为:
L
(
X
,
T
,
L
,
L
′
)
=
∑
n
=
1
N
[
f
l
n
(
X
,
t
n
)
−
f
l
n
′
(
X
,
t
n
)
]
(1)
\tag{1} L(\mathbf{X},\mathcal{T},\mathcal{L},\mathcal{L}')=\sum_{n=1}^N\left[ f_{l_n}(\mathbf{X},t_n) -f_{l_n'}(\mathbf{X},t_n) \right]
L(X,T,L,L′)=n=1∑N[fln(X,tn)−fln′(X,tn)](1)最小化
L
L
L可以通过使得每一个目标错误预测来实现,即抑制正确类别
f
l
n
(
X
+
r
,
t
n
)
f_{l_n}(\mathbf{X}+\mathbf{r},t_n)
fln(X+r,tn)的置信度,而增加不正确类别
f
l
n
′
(
X
+
r
,
t
n
)
f_{l_n'}(\mathbf{X+r},t_n)
fln′(X+r,tn)的置信度。
这里使用梯度下降法来优化,在
m
m
m次迭代时,添加了扰动的图像记为
X
m
\mathbf{X}_m
Xm。我们将寻找一个正确预测目标的集合,称为激活目标集 (Active target set):
T
m
=
{
t
n
∣
a
r
g
m
a
x
c
{
f
c
(
X
m
,
t
n
)
}
=
l
n
}
\mathcal{T}_m=\{ t_n| argmax_c\{ f_c(\mathbf{X}_m,t_n)\}=l_n \}
Tm={tn∣argmaxc{fc(Xm,tn)}=ln}。然后计算关于输入数据的梯度并累计这些扰动:
r
m
=
∑
t
n
∈
T
m
[
∇
X
m
f
l
n
′
(
X
m
,
t
n
)
−
∇
X
m
f
l
n
(
X
m
,
t
n
)
]
(2)
\tag{2} \mathbf{r}_m=\sum_{t_n \in \mathcal{T}_m}\left[\nabla_{\mathbf{X}_m} f_{l_n^{\prime}}\left(\mathbf{X}_m, t_n\right)-\nabla_{\mathbf{X}_m} f_{l_n}\left(\mathbf{X}_m, t_n\right)\right]
rm=tn∈Tm∑[∇Xmfln′(Xm,tn)−∇Xmfln(Xm,tn)](2)注意当
m
m
m增大时,
∣
T
m
∣
≪
∣
T
∣
\left|\mathcal{T}_m\right| \ll|\mathcal{T}|
∣Tm∣≪∣T∣,因此该策略可以降低时间复杂度。为了避免数值不稳定,我们将
r
m
\mathbf{r}_m
rm标准化为:
r
m
′
=
γ
∥
r
m
∥
∞
⋅
r
m
(3)
\tag{3} \mathbf{r}_m^{\prime}=\frac{\gamma}{\left\|\mathbf{r}_m\right\|_{\infty}} \cdot \mathbf{r}_m
rm′=∥rm∥∞γ⋅rm(3)其中
γ
=
0.5
\gamma=0.5
γ=0.5是一个固定的超参数。然后我们在
X
m
\mathbf{X}_m
Xm中添加
r
m
′
\mathbf{r}_m'
rm′并进行下一次迭代。算法将在
T
m
=
∅
\mathcal{T}_m=\empty
Tm=∅或者达到最大迭代次数时停止。最大迭代次数在分割和检测时分别设置为
200
200
200和
150
150
150。
最终的对抗扰动计算为
r
=
∑
m
r
m
′
\mathbf{r}=\sum_m\mathbf{r}_m'
r=∑mrm′。注意在算法实现时,输入的图像为
X
\mathbf{X}
X减去均值图像
X
^
\hat{\mathbf{X}}
X^,因此对抗图像为
Trunc
(
X
+
r
+
X
^
)
\text{Trunc}(\mathbf{X+r+}\hat{\mathbf{X}})
Trunc(X+r+X^),其中
Trunc(
…
)
\text{Trunc(\dots)}
Trunc(…)表示将通过
[
0
,
255
]
[0,255]
[0,255]的像素修剪函数。尽管修剪将损害对抗扰动,我们观察到在实验中这样的影响其实是很小的,因为扰动
r
\mathbf{r}
r的量级是很小的。DAG算法的总体流程如算法1。
2.2 选择用于检测的输入提案
DAG的一个关键问题是选择一个合适的 T \mathcal{T} T。这种语义分割中是相对简单的,因为我们的目标是在所有的像素上发生错误分类。因此可以将每一个像素设置成为一个独立的目标,即在图像网格上执行稠密采样。该过程的时间复杂度正比于像素的总和。
在对象检测领域,目标选择会相对困难,因为可能的目标 (边界框提案) 的综述比语义分割中的目标大几个量级。一个简单的提案是仅考虑sideway网络,即区域提案网络 (regional proposal network),而我们发现,当对抗扰动 r \mathbf{r} r 被添加到原始图像 X \mathbf{X} X时,提案的差集可以通过新的输入 X + r \mathbf{X+r} X+r来生成,以及网络依然能够正确地分类这些新提案。为了克服这个问题,我们通过增加RPN中非极大值抑制 (non-maximal suppression, NMS) 的阈值来使得提案非常稠密。实际上,当IOU (intersection-over-union) 从0.7增长到0.9,每个图像的平均提案数从300增长到了3000。使用该稠密目标集 T \mathcal{T} T,最可能的对象边界框距离至少一个选定的输入提案只有像素,我们可以预期相邻边界框之间的分类错误转移。在实验中,这样的一个直观方法是很有用的,对抗扰动的性能与DAG中提案的数量成正比。
技术方面,给定RPN生成的提案,我们保留所有正提案而忽略其它。满足以下条件的称为正提案:
- 最近的真实目标的IOU大于0.1;
- 真实类的置信度得分大于0.1.
如果有多个真实目标满足以上条件,我们选择IOU最大的那一个。提案的标签定义为相应地置信类。