论文地址:Understanding adversarial robustness via critical attacking route.
Abstract
深度神经网络 (DNN) 容易受到由具有难以察觉的扰动的输入生成的对抗性示例的影响。了解 DNN 的对抗性鲁棒性已成为一个重要问题,这肯定会导致更好的实际深度学习应用。为了解决这个问题,我们尝试从关键攻击路径的新角度解释深度模型的对抗鲁棒性,该路径由基于梯度的影响传播策略计算。类似于社交网络中的谣言传播,我们认为对抗性噪音通过关键攻击路线被放大和传播。通过逐层利用神经元的影响,我们用对模型决策做出最高贡献的神经元组成关键攻击路线。在本文中,我们首先将对抗性鲁棒性与关键攻击路径联系起来,因为该路线对对抗环境中的模型预测做出了最重要的贡献。通过约束这条路径上的传播过程和节点行为,我们可以削弱扰动的传播并提高模型的鲁棒性。此外,我们发现关键攻击神经元可用于评估样本对抗性硬度,具有较高刺激的图像更容易被干扰为对抗性示例。
主要贡献
理解和解释对抗性示例可以洞察模型的弱点和盲点,为我们提供构建稳健深度学习模型的线索。在社交网络中,提供更高信息容量的节点比其他节点更重要,这些节点很可能会传播谣言并被包含在关键路线中。每次扰动的小残余对抗性逐渐放大并从底层传播到顶层,最终导致错误的模型行为。
作者提出了一种基于梯度的影响传播策略来获得关键攻击神经元,这将进一步有助于为神经网络构建神经元的关键攻击路线:
- 提出了一种基于梯度的影响逐层传播方法,以在多个级别(包括实例级别和模型级别)提取关键攻击路径。 关键攻击路径负责在深度学习模型中传递对抗性噪声和重要的语义信息。 这条路线有助于理解对抗环境中的模型行为。
- 关键攻击路线揭示了深度模型的一些对抗性缺陷。 因此,我们可以通过约束和纠正关键攻击路线内神经元的行为来直接提高对抗对抗样本和腐败的鲁棒性。
- 基于关键攻击路线,我们提出了一种评估样本对抗性硬度的指标,该指标衡量了我们需要应用于样本以欺骗模型的对抗性扰动的强度。 这个指标为我们提供了一个机会来判断图像被扰乱成对抗样本的难度。
寻找关键攻击路径
下一层具有更高梯度的神经元更有可能对下一层的隐藏表示做出更高的贡献。将这些神经元称为关键攻击神经元。关键攻击路线由这些关键攻击神经元和它们之间的所有连接组成。
首先通过计算反向梯度提取每个图像的关键攻击路径。 在为每个图像提取实例级关键攻击路径后,将实例级关键攻击路线聚合到模型级路径中。具体的,整体流程框图如下所示:
一些定义
给定具有样本
x
∈
X
x\in X
x∈X和类标
y
∈
Y
y\in Y
y∈Y的数据集
D
D
D,深度监督学习模型尝试学习一个映射或分类函数
F
:
X
→
Y
F:X\rightarrow Y
F:X→Y。模型
F
F
F由
L
L
L个串行的层组成,对于第
l
l
l层
F
l
F_l
Fl,其中
l
=
1
,
.
.
.
,
L
l = 1,..., L
l=1,...,L,包含一个神经元集。使用上标
m
m
m来表示满足
F
l
m
∈
F
l
F^m_l\in F_l
Flm∈Fl的第
m
m
m个神经元。一个神经元
F
l
m
F^m_l
Flm的输出
Z
l
m
Z^m_l
Zlm相当于第
l
l
l层特征图的第
m
m
m个通道。对抗性示例具有微小的扰动,但能使模型输出错误分类:
F
(
x
′
)
≠
y
s
.
t
.
∥
x
−
x
′
∥
<
ϵ
F(x')\neq y \quad s.t.\left \| x-x' \right \|<\epsilon
F(x′)=ys.t.∥x−x′∥<ϵ
计算神经元之间的影响
寻找关键神经元的难点是计算两个相邻层的神经元之间的影响。通过在反向传播期间计算神经元之间的梯度,可以有效地解决该问题。事实上,梯度很大程度上取决于内核权重。相反,在最后一层,选择相对于损失具有更大梯度的神经元。然后,基于它们对后几层的影响,以反向传播的形式选择每一层的关键攻击神经元。例如,通过反向传播计算第
l
−
1
l-1
l−1层的第
i
i
i个神经元
F
l
−
1
i
F^i_{l-1}
Fl−1i和第
l
l
l层的第
j
j
j个神经元
F
l
j
F^j_l
Flj的影响。
对于神经元输出
Z
l
j
Z^j_l
Zlj中的单个元素
z
z
z,计算第
l
l
l层第
i
i
i个神经元输出
Z
l
−
1
i
Z^i_{l-1}
Zl−1i对单个元素的影响。 使用以下公式:
c
l
−
1
i
,
z
=
∑
s
∈
S
l
−
1
i
∣
∂
z
∂
A
(
s
,
Z
l
−
1
i
)
∣
(
1
)
c^{i,z}_{l-1}=\sum_{s\in S^i_{l-1}}\left | \frac{\partial z}{\partial A(s,Z^i_{l-1})} \right | \quad (1)
cl−1i,z=s∈Sl−1i∑∣∣∣∣∂A(s,Zl−1i)∂z∣∣∣∣(1)
其中
S
l
−
1
i
S^i_{l-1}
Sl−1i是第
l
−
1
l-1
l−1层第
i
i
i个神经元中的元素集,
A
(
⋅
)
A(·)
A(⋅)表示提取特定位置的元素。神经元的影响计算为相对于神经元内每个位置的元素的梯度绝对值之和。为了最好地描述影响,我们认为,应该在考虑
Z
l
−
1
i
Z^i_{l-1}
Zl−1i的所有元素变化方向后添加
∣
⋅
∣
\left | · \right |
∣⋅∣操作。两个中间层之间的梯度计算过程是基于卷积核参数的,不需要通过链式规则计算它们对损失
L
L
L的梯度。
首先计算
Z
l
j
Z^j_l
Zlj中的每个元素
z
z
z的
c
l
−
1
i
,
z
c^{i,z}_{l-1}
cl−1i,z。然后通过对
Z
l
i
Z^i_l
Zli中的所有元素
z
z
z求和
c
l
−
1
i
,
z
c^{i,z}_{l-1}
cl−1i,z来计算
Z
l
−
1
i
Z^i_{l-1}
Zl−1i和
Z
l
j
Z^j_l
Zlj之间的神经元影响。请注意,结果是在没有
∣
⋅
∣
\left | · \right |
∣⋅∣的情况下求和的,因为
Z
l
j
Z^j_l
Zlj中元素值的所有变化都是由并集
Z
l
−
1
i
Z^i_{l-1}
Zl−1i的变化引起的,可以将其视为仅在一个方向上发生变化:
c
l
−
1
i
,
j
=
∑
z
∈
Z
l
j
c
l
−
1
i
,
z
(
2
)
c^{i,j}_{l-1}=\sum_{z\in Z^j_l}c^{i,z}_{l-1} \quad (2)
cl−1i,j=z∈Zlj∑cl−1i,z(2)
实例级关键攻击路径
由于关键攻击路线是使用对下一层(或损失)贡献最大的神经元形成的,我们可以做出一个关键假设,即这条路线包含最关键的信息。路线的少量变化将对模型预测产生巨大影响。换句话说,当模型做出正确的预测时,这条路线传达了最重要的语义。相反,这条路线也包含了模型被攻击时的大部分对抗性错误。
给定一个样本
x
x
x,首先推导出最后一个卷积层
L
L
L的第
m
m
m个神经元相对于损失
L
L
L的梯度,从而产生它们对模型决策的贡献:
g
L
m
=
∂
L
∂
Z
L
m
(
3
)
g^m_L=\frac{\partial L}{\partial Z^m_L} \quad (3)
gLm=∂ZLm∂L(3)
其中
Z
L
m
Z^m_L
ZLm表示第
L
L
L层第
m
m
m个神经元的输出。
然后,可以通过公式
(
1
)
(
2
)
(1)(2)
(1)(2)递归计算第
l
−
1
l-1
l−1层第
i
i
i个神经元
F
l
−
1
i
F^i_{l-1}
Fl−1i对第
l
l
l层第
j
j
j个神经元
F
l
j
F^j_l
Flj的影响。通过根据贡献考虑前
k
%
k\%
k%的神经元来进一步挑选关键的攻击神经元。对于最后一个卷积层的神经元,我们有关键的攻击神经元:
ω
L
x
=
t
o
p
−
k
(
F
L
,
∣
g
L
∣
)
(
4
)
\omega^x_L=top-k(F_L,\left | g_L \right |) \quad (4)
ωLx=top−k(FL,∣gL∣)(4)
其中
t
o
p
−
k
(
⋅
)
top-k(·)
top−k(⋅)表示基于特定度量的输入集的前
k
%
k\%
k%实例。称 k 为关键攻击路径的宽度。在这种情况下,选择
g
g
g作为度量并从集合
F
L
F_L
FL中选择
ω
L
\omega_L
ωL。类似地,根据它们对第
l
+
1
l+1
l+1层的关键攻击神经元的影响
c
c
c,选择第
l
l
l层的前
k
%
k\%
k%神经元,递归实现:
ω
l
x
=
t
o
p
−
k
(
F
l
,
c
~
l
i
)
,
c
~
l
i
=
∑
F
l
+
1
j
∈
ω
l
+
1
x
c
l
i
,
j
(
5
)
\omega^x_l=top-k(F_l,\tilde{c}^i_l),\tilde{c}^i_l=\sum_{F^j_{l+1}\in \omega^x_{l+1}}c^{i,j}_ l \quad (5)
ωlx=top−k(Fl,c~li),c~li=Fl+1j∈ωl+1x∑cli,j(5)
样本
x
x
x的关键攻击路径
R
(
x
)
R(x)
R(x)可以通过不同层的关键攻击节点的连接来描述:
R
(
x
)
=
ω
1
x
,
ω
2
x
,
.
.
.
,
ω
L
x
(
6
)
R(x)={\omega^x_1,\omega^x_2,...,\omega^x_L} \quad (6)
R(x)=ω1x,ω2x,...,ωLx(6)
模型级关键攻击路径
为了充分探索模型对对抗性噪声的行为,进一步提出了从实例级路由聚合得出的模型级关键攻击路径 。给定具有
N
N
N个样本的数据集
D
D
D,可以获得每个图像的实例级关键攻击路线为
R
(
x
1
)
,
R
(
x
2
)
,
.
.
.
,
R
(
x
N
)
{R(x_1),R(x_2),...,R(x_N)}
R(x1),R(x2),...,R(xN)。 然后,对于具体的模型,可以计算出所有实例的每一层每个关键攻击神经元的出现频率为
f
f
f。选择最常见的前
k
%
k\%
k%的神经元作为每一层
l
l
l的模型级关键攻击神经元,如下所示:
Ω
l
=
t
o
p
−
k
(
F
l
,
f
l
)
(
7
)
\Omega_l=top-k(F_l,f_l) \quad (7)
Ωl=top−k(Fl,fl)(7)
从而得到模型级的关键攻击路径:
R
(
D
)
=
Ω
1
,
Ω
2
,
.
.
.
,
Ω
L
(
8
)
R(D)={\Omega_1,\Omega_2,...,\Omega_L} \quad (8)
R(D)=Ω1,Ω2,...,ΩL(8)
需要注意的是,模型级的关键攻击路线不仅仅是许多不同的关键攻击路线的简单叠加。实例级的关键攻击路径在实例之间具有很大的相似性。
计算过程是一个逐层的过程,根据它们对下一层关键神经元的影响来挑选神经元。 这种方法更适用于线性模型。考虑使用分支结构中的梯度总和来处理非线性的模型。
未完待续:通过找到的关键神经元提高模型鲁棒性的方法之后补充