一、创新点
Liu提出的基于群体优化算法的神经网络黑盒攻击算法(BANA)其创新点如下:
有效性: 生成的对抗性示例可以对神经网络进行错误分类,在非针对性攻击和针对性攻击中都有100%的概率。这
L
2
L_2
L2 对抗性示例和原始图像之间的距离平均小于10,这表明图像可能会受到如此小的变化的干扰,而这些变化并非无法检测到。在不考虑生成时间的情况下,甚至可以得到更小扰动的对抗样本。
黑盒性: BANA无需知道被攻击网络的结构,权重等内部信息就可以生成对抗样本。目前的大多数攻击 方法通常需要已知这些信息计算梯度。
通用性: 提出的攻击是对神经网络具有一般性。可以生成有效的 DNN、CNN 等对抗性示例。甚至在更广泛的机器学习算法中测试,它仍然以100%的概率误导了模型。
随机性: 受益于进化算法的特性,对于相同的输入图像,每次生成的对抗性示例是不同的,因此它们能够抵抗防御性蒸馏等防御机制。BANA侧重对图像质量的优化而不是扰动像素点个数的优化。因此,BANA采用了全新的优化函数和优化过程。在无须知道被攻击模型内部参数的前提下,改方法仅将原始图像作为输入,经过迭代计算中间输出的概率标签,即可生成最终的对抗样本。
二、方法
2.1 问题定义
基于群体进化算法的对抗样本生成问题可以看作是一个有限制条件下的最小值优化问题。该方法使用
L
p
L_p
Lp 距离来表示原始图形和对抗图像之间的相似性,假设
f
f
f 是一个
m
m
m 分类模型 ,输入图像的维度为
n
n
n 。不同与 L-BFGS 攻击、FGSM攻击、JSMA、DeepFool攻击和C&W攻击,BANA不需要计算梯度信息,是一个黑盒攻击方法。这个优化问题可以表示为
F
=
D
(
x
,
x
′
)
+
M
×
l
o
s
s
(
x
′
)
(1)
F = D(x,x^{\prime}) + M \times loss(x^{\prime}) \tag{1}
F=D(x,x′)+M×loss(x′)(1)
其中,
x
=
(
x
1
,
⋯
,
x
n
)
x=(x_1,\cdots,x_n)
x=(x1,⋯,xn) 表示原始图像向量;
x
′
=
(
x
1
′
,
⋯
,
x
n
′
)
x^{\prime} = (x_1^{\prime},\cdots,x_n^{\prime})
x′=(x1′,⋯,xn′) 表示当前生成的对抗样本图像向量;
D
(
x
,
x
′
)
D(x,x^{\prime})
D(x,x′) 表示
L
p
L_p
Lp 距离;
M
M
M 是一个远大于
D
(
x
,
x
′
)
D(x,x^{\prime})
D(x,x′) 的正数。
当进行非目标攻击时,
l
o
s
s
(
x
′
)
loss(x^{\prime})
loss(x′) 被定义为
l
o
s
s
(
x
′
)
=
m
a
x
(
[
f
(
x
′
)
]
r
−
m
a
x
(
[
f
(
x
′
)
]
i
≠
r
)
,
0
)
(2)
loss(x^{\prime}) = max([f(x^{\prime})]_r-max([f(x^{\prime})]_{i\not= r}),0) \tag{2}
loss(x′)=max([f(x′)]r−max([f(x′)]i=r),0)(2)
当进行目标攻击时,
l
o
s
s
(
x
′
)
loss(x^{\prime})
loss(x′) 被定义为
l
o
s
s
(
x
′
)
=
m
a
x
(
m
a
x
(
[
f
(
x
′
)
]
i
≠
t
)
−
[
f
(
x
′
)
]
t
,
0
)
(3)
loss(x^{\prime}) = max(max([f(x^{\prime})]_{i\not= t})-[f(x^{\prime})]_t,0) \tag{3}
loss(x′)=max(max([f(x′)]i=t)−[f(x′)]t,0)(3)
其中,
r
r
r 表示原始样本的类别;
t
t
t 表示对抗样本的目标类别;
[
f
(
x
)
]
r
[f(x)]_r
[f(x)]r 的输出时样本
x
x
x 被识别为类别
r
r
r 的概率;
[
f
(
x
′
)
]
i
≠
r
[f(x^{\prime})]_{i\not= r}
[f(x′)]i=r 的输出是样本
x
x
x 被识别为不是类别
r
r
r 的概率。
以目标攻击为例,因为
l
o
s
s
(
x
′
)
≥
0
loss(x^{\prime}) \geq 0
loss(x′)≥0 ,所以分别讨论
l
o
s
s
(
x
′
)
>
0
loss(x^{\prime}) > 0
loss(x′)>0 和
l
o
s
s
(
x
′
)
<
0
loss(x^{\prime}) < 0
loss(x′)<0 的两种情况。
(1)当
l
o
s
s
(
x
′
)
>
0
loss(x^{\prime}) > 0
loss(x′)>0 时,意味着
[
f
(
x
′
)
]
t
[f(x_{\prime})]_t
[f(x′)]t 小于
[
f
(
x
′
)
]
i
≠
t
[f(x^{\prime})]_{i\not= t}
[f(x′)]i=t,此时被扰动后的样本
x
′
x^{\prime}
x′ 还没有被神经网络模型识别为目标类别。因为
M
M
M 是一个远大于
D
(
x
,
x
′
)
D(x,x^{\prime})
D(x,x′) 的正数,所以 (1) 的输出约等于 (3) 的输出。这种情况下,对 (1) 的最小值优化等价于对 (3) 的优化,即增加当前被扰动样本
x
′
x^{\prime}
x′ 被识别为目标类别
t
t
t 概率。
(2)当
l
o
s
s
(
x
′
)
=
0
loss(x^{\prime}) = 0
loss(x′)=0 时,表示此时被扰动后的样本呢已经可以让神经网络模型识别为目标类别。在这种情况下,由于后项乘积为0,相当于通过优化
x
′
x^{\prime}
x′ 来最小化
D
(
x
,
x
′
)
D(x,x^{\prime})
D(x,x′) 的值,即尽量缩小对抗样本和原始样本之间的相似性。
上面的目标函数实际上将群体进化算法中的种群分成了两个部分。如下图所示。整个求解过程可以分为三个阶段:
(1)阶段一,此时生成的样本还不具有对抗性,无法让分类器发生误分类。区域 A中的个体通过交叉、变异等操作,逐渐向区域A的底部移动。
(2)阶段二,群体中的个体在这个阶段会从区域A向区域B移动,此时
l
o
s
s
(
x
′
)
=
0
loss(x^{\prime})=0
loss(x′)=0 ,即生成的样本已经具有对抗性。
(3)阶段三,此阶段在区域B顶部的样本逐渐向区域B的底部移动,意味着生成的样本在保持对抗性的同时,和原始样本的相似性也在逐渐增加。最终,区域B底部的样本成为群体中的最有样本,将样本所携带的信息转换后便得到最终的对抗样本。

2.2 算法框架

BANA的工作流包括五个步骤。
(1)初始化种群:在对基因进行编码时,采用整数编码,即一个基因对应一个像素,由于灰度图像和彩色图像像素的初始范围为 [0,255], 对于(28,28)的灰度图像有
28
×
28
×
1
=
784
28 \times 28 \times 1=784
28×28×1=784 个基因。对于 (32,32) 的彩色图像有
32
×
32
×
3
=
3072
32 \times 32 \times 3 =3072
32×32×3=3072 个基因。
(2)适应度计算:每个个体基因根据不表函数,计算改个体的适应度。由于这里是一个最小化问题,所以值越小,表示个体的适应度越高。之后,拥有最小适应度值的个体被存为这一次迭代中的最优个体。
(3)交叉算子:常见的交叉方法有单点交叉、多点交叉、均匀交叉等。这里采用均匀交叉,即对随机的两个个体,每个基因各自独立的按照概率
p
p
p 进行交叉。由于每个个体携带的基因数量较多,均匀交叉能够有更大的概率产生新的基因组合,期望将更多有益的基因组合起来,遗传算法的搜索能力得以提高。
(4)变异算子:为了加快遗传算法的搜索能力,结合待球解问题的特点,采用自定义高斯变异算法,如式(4)所示:
x
mutation
=
x
origin
±
G
a
u
s
s
(
m
,
s
)
(4)
x_{\text{mutation}} = x_{\text{origin}} \pm Gauss(m,s) \tag{4}
xmutation=xorigin±Gauss(m,s)(4)
在变异过程中,将个体中的基因随机加上高斯噪声
G
a
u
s
s
(
m
,
s
)
Gauss(m,s)
Gauss(m,s) ,其中
m
m
m 为高斯噪声的均值,
s
s
s 为高斯噪声的标准差。由于最终生成的对抗样本必须于输入样本有较高的相似度,待求解问题的可行解也必然在附件,降低了求解问题所需要的迭代次数。
(5)终止判断:如果算法满足终止条件则退出循环迭代,否则返回到步骤 (2)。