问题的提出
根据被攻击模型的参数可分为黑盒与白盒问题:
- 被攻击模型的模型参数可以被获取的被称为白盒攻击;
- 模型参数不可见的被称为黑盒攻击
之前实现过FGSM就是一种典型的白盒攻击算法,该算法核心是
w T ⋅ x ′ = w T ⋅ x + w T ⋅ ϵ s i g n ( Δ J x ( x , y , θ ) ) w^{T} \cdot x^{\prime}=w^{T} \cdot x+w^{T} \cdot \epsilon sign(\Delta J_{x}(x,y,\theta)) wT⋅x′=wT⋅x+wT⋅ϵsign(ΔJx(x,y,θ))
我们可以看到该算法是基于梯度来进行攻击的,但是对于黑盒攻击,没有目标模型的梯度信息,那我们怎么得到该模型的对抗样本呢?
Zeroth-Order Optimization为我们提供了一个好的思路
Zeroth-Order Optimization
通过利用零次优化,可以完成对目标DNN的改进攻击,从而无需训练代理模型,并避免了攻击传递性的损失
模型输入:需要input+每一个类别的概率
模型的训练:C&W攻击通过解决以下优化问题来找到对抗性示例x
∥
v
∥
2
=
∑
i
=
1
p
v
i
2
\|\mathbf{v}\|_{2}=\sqrt{\sum_{i=1}^{p} v_{i}^{2}}
∥v∥2=∑i=1pvi2代表Euclidean norm,
c
>
0
c > 0
c>0 正则化参数,左边是对抗样本和输入图像的Euclidean距离,保证对抗样本与真实input的相似,右边是损失函数,反映了不成功的对抗攻击的程度,保证对抗样本能导致目标模型出错,上述的loss函数可以通过由DNN的softmax 函数的输出来定义
[
F
(
x
)
]
k
=
exp
(
[
Z
(
x
)
]
k
)
∑
i
=
1
K
exp
(
[
Z
(
x
)
]
i
)
,
∀
k
∈
{
1
,
…
,
K
}
[F(\mathbf{x})]_{k}=\frac{\exp \left([Z(\mathbf{x})]_{k}\right)}{\sum_{i=1}^{K} \exp \left([Z(\mathbf{x})]_{i}\right)}, \forall k \in\{1, \ldots, K\}
[F(x)]k=∑i=1Kexp([Z(x)]i)exp([Z(x)]k),∀k∈{1,…,K}
具体如下:
- 目标
- 有目标攻击:
- 无目标攻击
F ( x ) ∈ [ 0 , 1 ] F(x)\in [0,1] F(x)∈[0,1]为每个类别的最后模型预测的概率值,其中K为类别数,在给定输入图像x0,x代表由真实分类类别为t的x0生成的对抗样本,t0为x最初的分类类别。训练有素的DNN会在其输出 F ( x ) F(x) F(x)上产生偏斜的概率分布,以使一个类别的概率得分显着支配另一类别的概率得分,对数运算符在保持单调性的同时保留置信度得分的顺序的同时,减轻了优势效应。
- 有目标攻击:
Zeroth order optimization用于loss function
使用对称差商(symmetric difference quotient )来估计梯度
g
^
i
:
=
∂
f
(
x
)
∂
x
i
≈
f
(
x
+
h
e
i
)
−
f
(
x
−
h
e
i
)
2
h
\hat{g}_{i}:=\frac{\partial f(\mathbf{x})}{\partial \mathbf{x}_{i}} \approx \frac{f\left(\mathbf{x}+h \mathbf{e}_{i}\right)-f\left(\mathbf{x}-h \mathbf{e}_{i}\right)}{2 h}
g^i:=∂xi∂f(x)≈2hf(x+hei)−f(x−hei)
问题
在攻击黑盒DNN的情况下,尤其是在图像大小较大(要优化的变量具有大量坐标)的情况下,梯度下降的单个步骤可能非常缓慢且效率低下,因为它需要估算梯度所有坐标进行一次更新。比如Inception-v3网络[尺寸为299×299×3的输入图像,因此就有p = 268,203个变量(像素)以进行优化,如果要评估每个像素的估计梯度,我们需要对模型进行两次评估。为了仅获得所有像素的估计梯度,需要2p = 536,406评估。对于像Inception-v3这样大的模型,每个评估可能在单个GPU上花费数十毫秒,因此,甚至一次评估所有梯度都非常昂贵。对于有针对性的攻击,有时我们需要进行数百次迭代的迭代梯度下降来生成对抗图像,在这种情况下使用零阶方法可能会非常昂贵。
针对上面存在的问题
- 提出了使用坐标下降法迭代地优化每个坐标(或一小批坐标)。通过这样做,我们可以通过仅几次梯度评估就可以有效地更新坐标,从而加快攻击过程。(这种思想类似于SGD),但其实这样的方法,迭代优化坐标数值还是很大。
- 考虑Attack-space dimension reduction方法将坐标维数降下来
minimize
y
∥
D
(
y
)
∥
2
2
+
c
⋅
f
(
x
0
+
D
(
y
)
,
t
)
subject to
x
0
+
D
(
y
)
∈
[
0
,
1
]
p
\begin{aligned} &\operatorname{minimize}_{\mathbf{y}}\|D(\mathbf{y})\|_{2}^{2}+c \cdot f\left(\mathbf{x}_{0}+D(\mathbf{y}), t\right)\\ &\text { subject to } \mathbf{x}_{0}+D(\mathbf{y}) \in[0,1]^{p} \end{aligned}
minimizey∥D(y)∥22+c⋅f(x0+D(y),t) subject to x0+D(y)∈[0,1]p
用
D
(
y
)
D(y)
D(y)代替
Δ
x
=
x
−
x
0
\Delta x= x-x_{0}
Δx=x−x0,这里并不是将输入维度改变,而是减少允许的对抗样本噪音维度,例如一个方便的转换是将D定义为将y调整为p尺寸图像的放大运算符。但是将攻击空间维度减小,有可能造成找不到有效的攻击。
- 针对上面攻击维度变小的问题,提出了hierarchical attack scheme,在优化过程中,使用一系列尺寸为m1,m2,···的变换D1,D2···来逐渐增加m。egD1变换尺度 y 从m1= 32×32×3 到 299×299×3,D2从m2= 64 × 64 × 3 to 299 × 299 × 3,直到达到确定的迭代值(当loss function减小得不明显的时候,意味着需要更大空间)