论文(标题写不下了):
《ZOO: Zeroth Order Optimization Based Black-box Attacks to Deep Neural Networks without Training Substitute Models》
深度神经网络(DNN)是当今时代最突出的技术之一,在许多机器学习任务中实现了最先进的性能,包括但不限于图像分类、文本挖掘、语音处理。
但人们越来越关注对抗性示例的鲁棒性,特别是对于自动驾驶的交通标志识别等关键任务。研究揭示了训练有素的DNN的脆弱性,展示了生成几乎无法察觉的对抗性图像的能力,导致错误分类。
研究表明,通过简单的训练和攻击基于目标模型构建的替代模型(DNN的黑盒攻击),这些对抗性图像具有高度可转移性。
与训练替代模型的设置类似,本文提出了一种有效的黑盒攻击,只能访问目标DNN的输入(图像)和输出(置信度分数),提出基于零阶优化(ZOO, Zeroth Order Optimization)的攻击直接估计目标DNN的梯度以生成对抗性示例。本文使用零阶随机坐标下降以及降维、分层攻击和重要性采样技术来有效地进行黑盒攻击。通过利用零阶优化,可以完成对目标DNN的改进攻击,从而无需训练替代模型并避免攻击可转移性的损失。
在MNIST、CIFAR10、ImageNet上的实验结果表明,所提出的ZOO攻击与最先进的白盒攻击一样有效,并且通过替代模型显著优于现有的黑盒攻击。
DNN在AI领域中很强大,但很容易受到对抗性示例的影响。
关于DNN鲁棒性的初步研究集中在白盒:允许完全控制和访问目标DNN进行敏感性分析。通过授予执行反向传播的能力,该技术能够相对于目标DNN的输入进行输出的梯度计算。许多算法(如梯度下降)可以用来攻击DNN。
图像分类中,反向传播指定改变像素值对图像标签预测的置信度分数的影响。但白盒在现实世界中并不常用,很多模型并不公开。
本文考虑了黑盒攻击设置,人们可以访问DNN的输入和输出,但不能访问内部配置。我们特别关注这样的用例:目标是由CNN训练的图像分类器,它将图像作为输入并为每个类别生成置信度得分作为输出。由于应用程序的流行和安全隐患,基于CNN的图像分类是目前研究DNN鲁棒性的主要焦点和关键用例。
本文考虑了两种黑盒攻击(无针对性攻击、有针对性攻击)。攻击有效性如图1所示。
图1:对ImageNet采样图像进行黑盒攻击(ZOO)的直观图示,从左到右的列是具有正确标签的原始图像、攻击的附加噪声、具有错误分类标签的精心制作的对抗性图像。
本文提出的攻击成功误导了目标DNN,还欺骗了人类的感知。
在攻击者的立足点中,对抗性示例应尽可能与原始示例无法区分,以便欺骗目标DNN(有时也欺骗人类感知)。
然而,评估良性示例和相应的对抗性示例之间的相似性的最佳指标仍然是一个悬而未决的问题,并且在不同的上下文中可能会有不同。
本文总结了为攻击DNN训练的图像分类儿开发的四种白盒攻击:FGSM、JSMA、DeepFool、C&W。还简单介绍了可转移性。
相比白盒攻击,黑盒攻击更具有挑战性。
黑盒攻击只能获得良性图像与其类别标签,对目标DNN是完全未知的,攻击者在对抗攻击过程中完全无法查询任何目标分类器的信息。
在这种黑盒设置下,研究重点主要是从一个自训练的DNN到有针对性但是完全禁止访问的DNN的攻击的可转移性。
另外,一些情景中,攻击者可以访问DNN,获取一些有用的信息,如电脑的应用,允许攻击者放入任何图像并查询分类器的分类结果。攻击者可以根据这些信息构建更有效的攻击方法。此时,反向传播的梯度计算还是禁止的。这种黑盒攻击称为实用黑盒攻击(practical black-box attack)。
安全相关研究发展的一个普遍现象是:攻防往往是齐头并进的,一方的进步取决于另一方的进步。同样,在DNN的稳健性的背景下,更有效的对抗性攻击通常是由改进的防御驱动的,反之亦然。
本节介绍了基于检测的防御、渐变和表示掩蔽(Gradient and representation masking)、对抗训练。
零阶方法是无导数优化的方法,优化过程中只需要zeroth order oracle(零阶预言,任意
x
x
x处的目标函数值
f
(
x
)
f(x)
f(x))。
h
h
h较小的情况下,通过评估两个非常接近的点处的目标函数值
f
(
x
+
h
v
)
,
f
(
x
?
h
v
)
f(x+hv),f(x-hv)
f(x+hv),f(x?hv),可以估计沿方向向量
v
v
v的适当梯度。然后可以使用估计的梯度应用梯度下降或坐标下降等经典优化算法。
这些零阶方法的收敛性已经得到证明,并且在mild assumptions(温和的假设,可以理解为相对一般的条件)下,它们可以收敛到具有与梯度估计和相关的额外误差项的驻点,当
h
→
0
h\rightarrow 0
h→0时消失。
第3节中提出的对DNN 的黑盒攻击被视为优化问题。它利用零阶优化技术,因此无需训练替代模型来部署对抗性攻击,尽管使用零阶方法来攻击黑盒DNN模型很直观,但天真地应用它对于大型模型来说可能是不切实际的。(每次迭代对向量的每一维都要进行评估,迭代多次时间代价太大)
在攻击黑盒DNN的场景中,特别是当图像尺寸很大时(要优化的变量有大量坐标),单步梯度下降可能非常慢且效率低下。
可以通过在几次梯度评估后有效地更新坐标来加速攻击过程。这使我们能够通过使用精心设计的采样策略首先优化重要像素来进一步提高算法的效率。(具体见第3节)
提出了使用ZOO进行黑盒攻击的方法。
考虑黑盒攻击设置,允许来自目标DNN的自由查询,同时禁止访问内部状态(例如反向传播),因此使用符号
F
(
x
)
F(x)
F(x)足以表示目标DNN。
具体来说,DNN
F
(
x
)
F(x)
F(x)将图像
x
∈
R
p
x∈\mathbb{R}^p
x∈Rp(一个
p
p
p维列向量)作为输入,并输出每个类别的置信度分数向量
F
(
x
)
∈
[
0
,
1
]
K
F(x)∈[0,1]^K
F(x)∈[0,1]K,其中
K
K
K是类别数量。第
k
k
k个类别
[
F
(
x
)
]
k
∈
[
0
,
1
]
[F(x)]_k∈[0,1]
[F(x)]k?∈[0,1]指定将
x
x
x分类为第
k
k
k类的概率,且
∑
k
=
1
K
[
F
(
x
)
]
k
=
1
\sum_{k=1}^K [F(x)]_k=1
∑k=1K?[F(x)]k?=1。
原则上,我们提出的通过零阶优化(ZOO)的黑盒攻击可以应用于允许相同输入和输出关系的非DNN分类器。然而,由于DNN在许多图像任务中实现了最先进的分类精度,因此在本文中,重点关注对DNN黑盒对抗攻击的能力。
本文的黑盒攻击受到C&W攻击的启发,C&W是最强白盒对抗攻击之一。给定图像
x
0
x_0
x0?,
x
0
x_0
x0?为
x
x
x的对抗性示例。C&W攻击通过解决以下优化问题来找到对抗性示例
x
x
x(Eq.1):
minimize
x
∣
∣
x
?
x
0
∣
∣
2
2
+
c
?
f
(
x
,
t
)
,
subject?to?
x
∈
[
0
,
1
]
p
(1)
\begin{aligned} & \text{minimize}_x ||x-x_0||_2^2+c\cdot f(x,t), \\& \text{subject} \ \text{to} \ x∈[0,1]^p\tag{1} \end{aligned}
?minimizex?∣∣x?x0?∣∣22?+c?f(x,t),subject?to?x∈[0,1]p?(1)
其中
∣
∣
v
∣
∣
2
=
∑
i
=
1
p
v
i
2
||v||_2=\sqrt{\sum_{i=1}^p v_i^2}
∣∣v∣∣2?=∑i=1p?vi2??表示向量
v
=
[
v
1
,
v
2
,
?
?
,
v
p
]
T
v=[v_1,v_2,\cdots,v_p]^T
v=[v1?,v2?,?,vp?]T的
L
2
L_2
L2?范式,
c
>
0
c>0
c>0表示正则化参数。
Eq.1中
∣
∣
x
?
x
0
∣
∣
2
2
||x-x_0||_2^2
∣∣x?x0?∣∣22?是正则化,用于强制对抗性示例
x
x
x和图像
x
0
x_0
x0?在欧几里得距离的相似性;
c
?
f
(
x
,
t
)
c\cdot f(x,t)
c?f(x,t)是反映不成功的对抗性攻击程度的损失函数,
t
t
t是目标类别。C&W比较了
f
(
x
,
t
)
f(x,t)
f(x,t)的几个候选者,并提出了以下形式进行有效的定向攻击(Eq.2):
f
(
x
,
t
)
=
max
?
{
max
?
i
≠
t
[
Z
(
x
)
]
i
?
[
Z
(
x
)
]
t
,
?
κ
}
(2)
f(x,t)=\max \{\max_{i\ne t} [Z(x)]_i-[Z(x)]_t,-\kappa\}\tag{2}
f(x,t)=max{i=tmax?[Z(x)]i??[Z(x)]t?,?κ}(2)
其中
Z
(
x
)
∈
R
K
Z(x)∈\mathbb{R}^K
Z(x)∈RK是DNN中
x
x
x的logit表示,其中
[
Z
(
x
)
]
k
[Z(x)]_k
[Z(x)]k?表示
x
∈
k
x∈k
x∈k的概率,
κ
>
0
\kappa>0
κ>0是攻击可转移性的调整参数。
C&W设置
κ
=
0
\kappa=0
κ=0来攻击目标DNN,并建议在执行转移攻击时使用较大的
κ
\kappa
κ。Eq.2中使用损失函数的基本原理可以通过基于logit层表示的softmax分类规则来解释;DNN
F
(
x
)
F(x)
F(x)的输出(置信度得分)由softmax函数确定(Eq.3):
[
F
(
x
)
]
k
=
exp
?
(
[
Z
(
x
)
]
k
)
∑
i
=
1
k
exp
?
(
[
Z
(
x
)
]
i
)
,
?
k
∈
{
1
,
?
?
,
K
}
(3)
[F(x)]_k=\frac{\exp([Z(x)]_k)}{\sum_{i=1}^k \exp([Z(x)]_i)}, \forall k∈\{1,\cdots,K\}\tag{3}
[F(x)]k?=∑i=1k?exp([Z(x)]i?)exp([Z(x)]k?)?,?k∈{1,?,K}(3)
因此,根据Eq.3中的softmax决策规则,
max
?
i
≠
t
[
Z
(
x
)
]
i
?
[
Z
(
x
)
]
t
≤
0
\max_{i\ne t} [Z(x)]_i-[Z(x)]_t\leq 0
maxi=t?[Z(x)]i??[Z(x)]t?≤0意味着对抗性示例
x
x
x获得了类别
t
t
t的最高置信度分数,因此针对性攻击成功,否则不成功。
κ
\kappa
κ确保了
[
Z
(
x
)
]
t
[Z(x)]_t
[Z(x)]t?和
max
?
i
≠
t
[
Z
(
x
)
]
i
\max_{i\ne t} [Z(x)]_i
maxi=t?[Z(x)]i?之间的恒定差距,这解释了为什么设置大的
κ
\kappa
κ在转移攻击中是有效的。
最后,框约束 x ∈ [ 0 , 1 ] p x∈[0,1]^p x∈[0,1]p代表对抗性示例必须从有效的图像空间生成。实际上,每个图像都可以通过将每个像素值除以最大可获得像素值(如255)来满足此框架约束。C&W采用 1 + tanh ? w 2 \frac{1+\tanh w}{2} 21+tanhw?代替 x x x来消除框约束,其中 w ∈ R p w∈\mathbb{R}^p w∈Rp。通过使用这种变量变化,Eq.1中的优化问题变成了以 w w w作为优化器的无约束最小化问题,并且可以应用DNN的典型优化工具(反向传播)来求解最优 w w w并获得对应的对抗性例子 x x x。
Eq.1-2的攻击公式是以白盒为基础的,因为logit层是DNN内部的状态信息,求解Eq.1也需要DNN的反向传播。我们通过提出以下方法来修改对黑盒设置的攻击:
受到Eq.2的启发,提出了基于DNN输出F的新的铰链式的损失函数,定义为Eq.4:
f
(
x
,
t
)
=
max
?
{
max
?
i
≠
t
log
?
[
F
(
x
)
]
i
?
log
?
[
F
(
x
)
]
t
,
?
κ
}
(4)
f(x,t)=\max\{\max_{i\ne t} \log[F(x)]_i-\log [F(x)]_t,-\kappa\}\tag{4}
f(x,t)=max{i=tmax?log[F(x)]i??log[F(x)]t?,?κ}(4)
其中
κ
≥
0
\kappa\geq 0
κ≥0,
log
?
0
\log 0
log0定义为
?
∞
-\infty
?∞。
log
?
(
?
)
\log(\cdot)
log(?)是一个单调函数,
max
?
i
≠
t
log
?
[
F
(
x
)
]
i
?
log
?
[
F
(
x
)
]
t
≤
0
\max_{i\ne t} \log[F(x)]_i-\log [F(x)]_t \leq 0
maxi=t?log[F(x)]i??log[F(x)]t?≤0意味着
x
x
x获得类别
t
t
t的最高置信度分数。
对数算子对于黑盒攻击至关重要,因为训练好的DNN通常会在其输出
F
(
x
)
F(x)
F(x)上产生倾斜的概率分布,使得一个类的置信度分数显著主导另一类的置信度分数。使用对数运算符可以减少显性效应,同时由于单调性而保留置信度分数的顺序。
和Eq.2相似,Eq.4中
κ
\kappa
κ确保了
log
?
[
F
(
x
)
]
t
\log[F(x)]_t
log[F(x)]t?和
max
?
i
≠
t
log
?
[
F
(
x
)
]
i
\max_{i\ne t} \log[F(x)]_i
maxi=t?log[F(x)]i?之间的恒定差距。
对于无目标攻击,当
x
x
x被分类为除原始类标签
t
0
t_0
t0?之外的任何类时,对抗性攻击就会成功,可以使用类似的损失函数Eq.5:
f
(
x
)
=
max
?
{
log
?
[
F
(
x
)
]
t
0
?
max
?
i
≠
t
0
log
?
[
F
(
x
)
]
i
,
?
κ
}
(5)
f(x)=\max\{\log[F(x)]_{t_0}-\max_{i\ne t_0}\log[F(x)]_i,-\kappa\}\tag{5}
f(x)=max{log[F(x)]t0???i=t0?max?log[F(x)]i?,?κ}(5)
其中
t
0
t_0
t0?是
x
x
x的原始类别,
max
?
i
≠
t
0
log
?
[
F
(
x
)
]
i
\max_{i\ne t_0} \log[F(x)]_i
maxi=t0??log[F(x)]i?代表除了
t
0
t_0
t0?以外最可能的预测类别。
讨论用于攻击的任何通用函数
f
f
f的优化技术(Eq.1中的正则化项可以作为
f
f
f的一部分)。使用对称差商(symmetric difference quotient)估计梯度Eq.6:
g
^
i
:
=
?
f
(
x
)
?
x
i
≈
f
(
x
+
h
e
i
)
?
f
(
x
?
h
e
i
)
2
h
(6)
\hat{g}_i := \frac{\partial f(x)}{\partial x_i}\approx \frac{f(x+he_i)-f(x-he_i)}{2h}\tag{6}
g^?i?:=?xi??f(x)?≈2hf(x+hei?)?f(x?hei?)?(6)
其中
h
h
h是一个很小的常数,实验中均设置为
h
=
0.0001
h=0.0001
h=0.0001,
e
i
e_i
ei?为只有第
i
i
i个元素是1,其他均为0的单位向量。估计误差是
O
(
h
2
)
O(h^2)
O(h2)量级的(?),成功进行对抗攻击并不必须要准确估计梯度。实验表明,就算没有准确估计,ZOO依旧有很好的攻击效果。
对于任何
x
∈
R
p
x\in \mathbb{R}^p
x∈Rp,我们需要评估目标函数
2
p
2p
2p次来估计全部
p
p
p个坐标轴。有趣的是,只对目标函数做一次变换,就可以得到与坐标有关的Hessian估计(定义为
h
^
i
\hat{h}_i
h^i?):
h
^
i
:
=
?
2
f
(
x
)
?
x
i
i
2
≈
f
(
x
+
h
e
i
)
?
2
f
(
x
)
+
f
(
x
?
h
e
i
)
h
2
(7)
\hat{h}_i:=\frac{\partial^2f(x)}{\partial x_{ii}^2}\approx \frac{f(x+he_i)-2f(x)+f(x-he_i)}{h^2}\tag{7}
h^i?:=?xii2??2f(x)?≈h2f(x+hei?)?2f(x)+f(x?hei?)?(7)
由于
f
(
x
)
f(x)
f(x)只需要对各个坐标进行一次评估,因此无需其他的评估函数即可获得Hessian估计。
由于黑盒设置,网络结构不明,梯度反向传播被禁止,一个初步的想法是用Eq.6来估计梯度,这需要 2 p 2p 2p次函数估计。但是这个方法实现起来代价很大。
坐标下降方法(Coordinate descent methods)被广泛使用在优化研究中。
每次迭代中,随机选择一个坐标,沿着这个坐标通过近似最小化目标函数
f
(
x
+
δ
e
i
)
f(x+\delta e_i)
f(x+δei?)更新
δ
\delta
δ。
最难的一步就是Algorithm 1中的第3步,计算最优坐标更新。
估计完
x
i
x_i
xi?的梯度和Hessian后,可以使用一阶或二阶方法近似求解最优的
δ
\delta
δ。
一阶的方法中,ADAM明显更优,所以本文使用零阶坐标ADAM:
注:每次迭代更新只更新一个坐标。
实践中为了达到GPU的最高效率,通常会逐批量评估目标,估计一个批量的
g
^
i
\hat{g}_i
g^?i?和
h
^
i
\hat{h}_i
h^i?。一个批量估计128个像素的
g
^
i
\hat{g}_i
g^?i?和
h
^
i
\hat{h}_i
h^i?,然后一次迭代更新128个坐标。
定义
Δ
x
=
x
?
x
0
\Delta x=x-x_0
Δx=x?x0?,
Δ
x
∈
R
p
\Delta x\in\mathbb{R}^p
Δx∈Rp是加在
x
0
x_0
x0?上的噪声。起初
Δ
x
=
0
\Delta x=0
Δx=0,由于网络输入的
p
p
p很大,使用零阶方法会比较慢,因为估计时要计算大量的梯度。
这里介绍一种减少维度的转换
D
(
y
)
D(y)
D(y)来代替直接优化
Δ
x
∈
R
p
\Delta x\in\mathbb{R}^p
Δx∈Rp的做法,其中
y
∈
R
m
y\in \mathbb{R}^m
y∈Rm,
range
(
D
)
∈
R
p
\text{range}(D)\in\mathbb{R}^p
range(D)∈Rp,
m
<
p
m<p
m<p。这种转换可以是线性的,可以是非线性的。然后可以用
D
(
y
)
D(y)
D(y)来代替Eq.1中的
Δ
x
=
x
?
x
0
\Delta x=x-x_0
Δx=x?x0?:
minimize
y
∣
∣
D
(
y
)
∣
∣
2
2
+
c
?
f
(
x
0
+
D
(
y
)
,
t
)
,
subject?to?
x
∈
[
0
,
1
]
p
(8)
\begin{aligned} & \text{minimize}_y ||D(y)||_2^2+c\cdot f(x_0+D(y),t), \\& \text{subject} \ \text{to} \ x∈[0,1]^p\tag{8} \end{aligned}
?minimizey?∣∣D(y)∣∣22?+c?f(x0?+D(y),t),subject?to?x∈[0,1]p?(8)
D
(
y
)
D(y)
D(y)的使用有效地将攻击空间从
p
p
p降到了
m
m
m,并不修改输入图像的维度,只是减少对抗性噪声的允许维度。
一种简单的变换是将
D
(
y
)
D(y)
D(y)变换为放大操作,将
y
y
y调整为大小为
p
p
p的图像,如双线性插值法。
在Inception-v3网络中,
y
y
y可以是
m
=
32
×
32
×
3
m=32\times 32\times 3
m=32×32×3维度的小噪声图像,原图是
p
=
299
×
299
×
3
p=299\times 299\times 3
p=299×299×3的原石图像。
压缩搜索空间可以提升计算效率,但由于空间的缩小会导致找不到一个较优的结果。如果使用一个较大的
m
m
m,可以搜到较好的结果,但会花费很长的时间。
因此对于大图像和困难的攻击,本文提出了分层攻击(hierarchical attack),使用一系列转换
D
1
,
D
2
,
?
D_1,D_2,\cdots
D1?,D2?,?转换
m
1
,
m
2
,
?
m_1,m_2,\cdots
m1?,m2?,?,在优化过程中逐步增加
m
m
m。换句话说,在特定的迭代
j
j
j中,设置
y
j
=
D
i
?
1
(
D
i
?
1
(
y
j
?
1
)
)
y_j=D_i^{-1}(D_{i-1}(y_{j-1}))
yj?=Di?1?(Di?1?(yj?1?)),将
y
y
y的维度从
m
i
?
1
m_{i-1}
mi?1?增加到
m
i
m_i
mi?(
D
?
1
D^{-1}
D?1是
D
D
D的逆操作)。
举例说明:使用
D
1
D_1
D1?放大将维度
m
1
m_1
m1?从
32
×
32
×
3
32\times 32\times 3
32×32×3变为
299
×
299
×
3
299\times 299\times 3
299×299×3,
D
2
D_2
D2?放大将维度
m
2
m_2
m2?将维度
64
×
64
×
3
64\times 64\times 3
64×64×3变为
299
×
299
×
3
299\times 299\times 3
299×299×3。
我们从
m
1
=
32
×
32
×
3
m_1=32\times 32\times 3
m1?=32×32×3开始优化,使用
D
1
D_1
D1?作为变换,然后经过一定数量的迭代后(损失函数下降趋势很小后),将
y
y
y从
32
×
32
×
3
32\times 32\times 3
32×32×3放大到
64
×
64
×
3
64\times 64\times 3
64×64×3,然后在接下来的几轮迭代中使用
D
2
D_2
D2?。
图3:
第一行:RGB通道中,被攻击图像在关键的地方中有明显的变化,其中R通道的变化显著大于其他通道。此处攻击空间为
32
×
32
×
3
32\times 32\times 3
32×32×3,即使这个空间的攻击会失败,其噪声也会提供关于像素重要性的关键线索。在提升至更大维度的攻击空间后,使用原来小的攻击空间中的噪声去采样重要的像素。
第二行:
64
×
64
×
3
64\times 64\times 3
64×64×3攻击空间中的重要性可能分布采样。这个重要性是通过像素值变化的绝对值计算的,对每个通道进行
4
×
4
4\times 4
4×4的最大值池化,上采样到
64
×
64
×
3
64\times 64\times 3
64×64×3的维度,然后对所有值进行标准化。
使用坐标下降方法的好处是我们可以主动选择更新的坐标。
在黑盒设置下估计每个像素的梯度和Hessian计算代价很大,于是提出可以有选择性地更新重要的像素(通过重要性采样选择)。
举例来说,对于一次成功的攻击,图像边界的像素通常没什么用,中心的像素通常至关重要。所以在攻击中,对靠近对抗噪声指示的更多像素进行采样。
本文提出将图像划分为
8
×
8
8\times 8
8×8的区域,根据区域内像素的变化绝对值分配采样概率。首先对每个区域的绝对值变化进行最大值池化,上采样成期望的维度,然后将所有的值标准化,使其和加起来为1。每几次迭代,根据近几次发生的变化重新更新采样频率。
当攻击空间较小时(如 32 × 32 × 3 32\times 32\times 3 32×32×3),不会为了提高搜索效率而进行重要性采样。随着维度的不断提升,重要性采样会变得越来越重要。