论文: https://openaccess.thecvf.com/content_CVPR_2020/papers/Shamsabadi_ColorFool_Semantic_Adversarial_Colorization_CVPR_2020_paper.pdf.
代码: https://github.com/smartcameras/ColorFool.
Motivation
本文关注无限制对抗攻击,关于无限制对抗攻击与传统的 L p L_p Lp攻击的区别,请参考我之前的博客Paper笔记: 《Functional Adversarial Attacks》,这里就不做赘述了。此前无限制攻击方面的工作多聚焦于白盒攻击,但是在现实场景中,攻击者是很难拿到防御模型的结构、参数、防御策略等细节信息的,因此攻击方法的迁移性(攻击方法在没见过的模型上的攻击成功率)就显得尤为重要。另外,此前的无限制攻击多是基于颜色变换的,其训练过程的计算量较大,并且容易生成不真实的颜色,从而影响图像的视觉效果。
Contribution
本文的作者提出了一种基于图像内容的无限制攻击方法ColorFool,该方法充分考虑到人类视觉感官系统的特性,利用语义分割的方式划分出人类视觉较为敏感的区域和不敏感的区域,然后针对敏感区域只施加非常有限的颜色变换,而对不敏感区域则施加较大的颜色变换。这种方法在黑盒和白盒场景下都有不错的攻击效果,并且在包括攻击成功率、鲁棒性以及图像质量等多个指标上均有较好的表现。
Method
改论文提出的方法包括三个主要步骤:首先,需要分割出对于人类感官系统来说相对敏感的区域,作者认为有4类目标的颜色更容易吸引到人们的注意:人、天空、水体以及植被。作者通过mask将图像分成多个区域(如下式所示),语义分割工作采用了该文献的方法。
S
=
{
S
k
:
S
k
=
X
⋅
M
k
}
k
=
1
K
\mathcal{S} = \{ \mathcal{S}_k: \mathcal{S}_k = X · M_k \}_{k=1}^K
S={Sk:Sk=X⋅Mk}k=1K
其中,
M
k
M_k
Mk代表与原图相同大小的binary mask,用来指示第
k
k
k类所对应的图像区域。然后根据语义分割的结果把图像划分为敏感区域
S
=
{
S
k
}
k
=
1
S
\mathbb{S}=\{S_k \}_{k=1}^S
S={Sk}k=1S和不敏感区域
S
ˉ
=
{
S
ˉ
k
}
k
=
1
S
ˉ
\mathbb{\bar{S}}=\{\bar{S}_k \}_{k=1}^{\bar{S}}
Sˉ={Sˉk}k=1Sˉ。
第二步是根据划分好的区域,在Lab空间里进行颜色的变换。对于敏感区域,颜色变换被限制在一个很小的集合之内,但是变换量的选取是随机的:
S
˙
=
{
S
k
˙
:
S
k
˙
=
γ
(
S
k
)
+
α
[
0
,
N
k
a
,
N
k
b
]
T
}
k
=
1
S
\dot{\mathbb{S}} = \{ \dot{S_k}: \dot{S_k}=\gamma(S_k) + \alpha[0,N_k^a,N_k^b]^T \}_{k=1}^S
S˙={Sk˙:Sk˙=γ(Sk)+α[0,Nka,Nkb]T}k=1S
这里可以发现,
α
[
0
,
N
k
a
,
N
k
b
]
T
\alpha[0,N_k^a,N_k^b]^T
α[0,Nka,Nkb]T即为对图像的变换,其中
N
k
a
∈
N
k
a
,
N
k
b
∈
N
k
b
N_k^a \in\,\mathcal{N}_k^a,N_k^b \in\,\mathcal{N}_k^b
Nka∈Nka,Nkb∈Nkb,
N
k
a
\mathcal{N}_k^a
Nka和
N
k
b
\mathcal{N}_k^b
Nkb分别代表了Lab颜色空间中,a和b两个颜色通道的变换范围,这个变换范围是通过对应类别的一些先验信息来确定的(如图1所示),而
γ
(
)
\gamma()
γ()代表将图像从RGB空间转换到Lab空间的操作。
S
ˉ
=
{
S
K
ˉ
˙
:
S
K
ˉ
˙
=
γ
(
S
k
ˉ
)
+
α
[
0
,
N
ˉ
a
,
N
ˉ
b
]
T
}
k
=
1
S
ˉ
\mathbb{\bar{S}} = \{\dot{\bar{S_K}}:\dot{\bar{S_K}}=\gamma(\bar{S_k}) + \alpha[0,\bar{N}^a,\bar{N}^b]^T \}_{k=1}^{\bar{S}}
Sˉ={SKˉ˙:SKˉ˙=γ(Skˉ)+α[0,Nˉa,Nˉb]T}k=1Sˉ
其中,
N
ˉ
a
∈
{
−
127
,
.
.
.
,
128
}
\bar{N}^a \in\,\{-127,...,128\}
Nˉa∈{−127,...,128},
N
ˉ
b
∈
{
−
127
,
.
.
.
,
128
}
\bar{N}^b \in\,\{-127,...,128\}
Nˉb∈{−127,...,128}。
最后,将变换后的各个区域组合在一起,就形成了最终的攻击图像:
X
˙
=
Q
(
γ
−
1
(
∑
k
=
1
S
S
k
˙
+
∑
k
=
1
S
ˉ
S
k
ˉ
˙
)
)
\dot{X} = Q(\gamma^{-1}(\sum_{k=1}^S \dot{S_k} + \sum_{k=1}^{\bar{S}} \dot{\bar{S_k}}))
X˙=Q(γ−1(k=1∑SSk˙+k=1∑SˉSkˉ˙))
其中,
Q
Q
Q代表检查像素值是否超出规定范围的操作,而
X
˙
∈
Z
w
,
h
,
c
\dot{X}\,\in\,\mathbb{Z}^{w,h,c}
X˙∈Zw,h,c。
Experiments and Analysis
本文主要在三个数据集上进行实验:Private-Places365、CIFAR10以及ImageNet,作者选用了ResNet18、ResNet50以及AlexNet三个模型进行相关实验。
攻击成功率
攻击成功率的测试包括白盒和黑盒两个场景,可以发现,所有攻击方法在白盒场景下都有极高的成功率,作者认为比较有说明意义的是:在黑盒场景下,
L
p
L_p
Lp攻击的成功率不超过0.41,而无限制攻击的成功率最高可以达到0.77。作者对此的解释是:基于
L
p
L_p
Lp约束的攻击,尤其是基于梯度反传的攻击,会在攻击模型的参数上过拟合,而ColorFool引入的对颜色的随机性操作则有效地规避了这一点。
防御鲁棒性
这部分通过对防御的鲁棒性测试来反映攻击方法的性能,主要包括三部分:首先是对滤波后的图像在白盒场景下进行攻击成功率测试,滤波方式包括重量化、中值滤波以及有损编码三种;然后测试攻击是否可被检测到,检测方法是计算图像在滤波前后通过模型得到的概率向量的 L 1 L_1 L1距离,当超过某个阈值时则检测为攻击;最后是在经过PCL loss以及对抗训练的模型上进行攻击成功率测试。相关的结果图篇幅较大,请查阅原文。无限制攻击方法无论在滤波防御的攻击成功率上以及被检测率上都有明显的优势。
图像质量
图像质量方面主要依靠NIMA来进行量化评估,这里根据图3来说明本文方法的优势。
随机性分析
看到这里,有朋友可能会问,ColorFool的操作主要是依靠随机性来完成的,那么如何能保证生成有效的攻击图片呢,作者并未从原理上解释这点,而是通过一系列的实验来说明这样的随机性操作总是可以收敛,并且收敛的类别(误导分类做出的判断类别)总是趋近一致(如图4所示)。