1 引言
对抗样本对深度学习模型产生对抗行为的内部机理一直是一个研究热点,只有更好的理解其运作机理才能更好的对对抗攻击产生更有效的防御策略。最近几年有研究者通过利用数理统计中Fisher信息量的这一个数学工具去挖掘深度学习模型对抗行为的深层原因,并基于此提出了相应防御方法。本文主要是总结归纳最近几年Fisher信息量在对抗样本研究中的应用,并从中选出了三篇相关代表作进行解析。
2 基于Fisher信息量检测对抗攻击
在该论文中,作者从理论分析的角度研究了Fisher信息量在检测对抗攻击时的可用性,另外作者讨论了与网络大小成正比的变量有哪些,并研究了它们在对抗样本中的行为是怎样的,展示了它们如何突出单输入神经元的重要性,从而为进一步分析神经网络的不合理行为提供了可视化工具。
论文链接: https://www.sciencedirect.com/science/article/abs/pii/S0925231219316546
2.1 论文方法
数据集
D
\mathcal{D}
D是从
p
p
p维参数向量
θ
\theta
θ的分布
p
(
D
∣
θ
)
p(\mathcal{D}|\theta)
p(D∣θ)采样而来的,则此时
θ
\theta
θ的Fisher信息量如下所示:
F
θ
=
E
D
∼
p
(
D
∣
θ
)
[
∇
θ
log
p
(
D
∣
θ
)
∇
θ
⊤
log
p
(
D
∣
θ
)
]
=
−
E
D
∼
p
(
D
∣
θ
)
[
∇
θ
∇
θ
⊤
log
p
(
D
∣
θ
)
]
\begin{aligned}\mathbb{F}_\theta&=\mathbb{E}_{\mathcal{D}\sim p(\mathcal{D}|\theta)}[\nabla_\theta \log p(\mathcal{D}|\theta)\nabla_\theta^\top \log p(\mathcal{D|\theta})]\\&=-\mathbb{E}_{\mathcal{D}\sim p(\mathcal{D}|\theta)}[\nabla_\theta \nabla_\theta^{\top}\log p(\mathcal{D|\theta})]\end{aligned}
Fθ=ED∼p(D∣θ)[∇θlogp(D∣θ)∇θ⊤logp(D∣θ)]=−ED∼p(D∣θ)[∇θ∇θ⊤logp(D∣θ)]在该论文中作者为了简化,论文中对数似然函数估计都是足够平滑的。Fisher信息矩阵主要测量的是对数似然估计
log
p
(
D
∣
θ
)
\log p(\mathcal{D}|\theta)
logp(D∣θ)的平均局部曲率。考虑一个小的
θ
\theta
θ在
p
p
p维向量
v
v
v方向上的扰动即
θ
+
ε
⋅
v
\theta+\varepsilon \cdot v
θ+ε⋅v,则在
K
L
\mathrm{KL}
KL散度的泰勒展开式为
K
L
(
p
(
D
∣
θ
)
∥
p
(
D
∣
θ
+
ε
⋅
v
)
)
=
1
2
ε
2
v
⊤
F
θ
v
+
O
(
ε
3
)
\mathrm{KL}(p(\mathcal{D}|\theta)\|p(\mathcal{D}|\theta+\varepsilon \cdot v))=\frac{1}{2}\varepsilon^2 v^{\top}\mathbb{F}_\theta v+\mathcal{O}(\varepsilon^3)
KL(p(D∣θ)∥p(D∣θ+ε⋅v))=21ε2v⊤Fθv+O(ε3)
F
θ
\mathbb{F}_\theta
Fθ可以被看作在参数
θ
\theta
θ有多少信息量可以被获得,如果
F
θ
\mathbb{F}_\theta
Fθ数值高意味着参数并没有很好的拟合好数据样本 ,所以可以用
F
θ
\mathbb{F}_\theta
Fθ用于测量不正常的样本,比如对抗样本。矩阵
F
θ
\mathbb{F}_\theta
Fθ的维度是
p
×
p
p\times p
p×p,但是要计算这个矩阵
F
θ
\mathbb{F}_\theta
Fθ的计算量非常大。
在机器学习中,经常是需要从数据中学习一个输入到输出的参数化映射
f
θ
f_\theta
fθ,其中
θ
\theta
θ包含所有的权重和偏置的参数。假定输入样本为
X
X
X,对应的输出为
Y
Y
Y,训练中一个批次的大小为
N
N
N,机器学习的目的是找到一个
θ
\theta
θ ,使得
f
θ
(
x
)
≈
y
f_\theta(x)\approx y
fθ(x)≈y,其中
f
θ
(
x
)
f_\theta(x)
fθ(x)是一个
C
C
C维的向量,并且可以写成
f
θ
(
x
)
=
(
f
θ
c
(
x
)
)
c
=
1
,
⋯
,
C
f_\theta(x)=(f^c_\theta(x))_{c=1,\cdots,C}
fθ(x)=(fθc(x))c=1,⋯,C,此时关于
θ
\theta
θ的Fisher信息矩阵可以表示为
F
θ
=
∑
c
=
1
C
f
θ
c
(
x
)
⋅
∇
θ
log
f
θ
c
(
x
)
∇
θ
⊤
log
f
θ
c
(
x
)
=
∑
c
=
1
C
∇
θ
f
θ
c
(
x
)
∇
c
⊤
log
f
θ
(
x
)
\mathbb{F}_\theta=\sum\limits_{c=1}^Cf^c_{\theta}(x)\cdot\nabla_\theta \log f_\theta^c(x)\nabla_\theta^{\top}\log f^c_\theta(x)=\sum\limits_{c=1}^C\nabla_\theta f_\theta^c(x)\nabla_c^{\top}\log f_\theta(x)
Fθ=c=1∑Cfθc(x)⋅∇θlogfθc(x)∇θ⊤logfθc(x)=c=1∑C∇θfθc(x)∇c⊤logfθ(x)但是需要清楚的是,即使是一个非常小的神经网络计算参数的Fisher信息矩阵
F
θ
\mathbb{F}_\theta
Fθ也是非常棘手的。因为该论文的关注点只是Fisher信息矩阵的最大特征值,所以可以利用矩阵的迹来进行代替,具体公式如下所示
t
r
F
θ
=
∑
i
=
1
p
∑
c
=
1
C
∂
θ
i
f
θ
c
(
x
)
∂
θ
i
log
f
θ
c
(
x
)
\mathrm{tr}\mathbb{F}_\theta=\sum\limits_{i=1}^p\sum\limits_{c=1}^C\partial_{\theta_i}f_\theta^c(x)\partial_{\theta_i}\log f_{\theta}^c(x)
trFθ=i=1∑pc=1∑C∂θifθc(x)∂θilogfθc(x)由此可以发现使用反向传播算法的计算量为
O
(
C
⋅
p
)
O(C\cdot p)
O(C⋅p),所以计算量大大减小,随着神经网络规模的增加计算量呈线性增长。
该论文中,作者将矩阵
F
θ
\mathbb{F}_\theta
Fθ的迹表示为
∑
i
=
1
p
e
i
⊤
F
θ
e
i
\sum\limits_{i=1}^pe^{\top}_i\mathbb{F}_\theta e_i
i=1∑pei⊤Fθei,进而则有
v
⊤
F
θ
v
=
∑
c
=
1
C
v
⊤
∇
θ
f
θ
c
(
x
)
⋅
v
⊤
∇
θ
log
f
θ
c
(
x
)
v^{\top}\mathbb{F}_\theta v=\sum\limits_{c=1}^Cv^{\top}\nabla_\theta f^c_\theta(x)\cdot v^{\top}\nabla_\theta\log f^c_\theta(x)
v⊤Fθv=c=1∑Cv⊤∇θfθc(x)⋅v⊤∇θlogfθc(x)其中
v
=
λ
⋅
∇
θ
log
p
(
y
∣
x
,
θ
)
v=\lambda \cdot \nabla_\theta \log p(y|x,\theta)
v=λ⋅∇θlogp(y∣x,θ)。假定预测类别
y
^
=
arg
max
c
=
1
,
⋯
,
C
f
θ
c
(
x
)
\hat{y}=\arg\max\limits_{c=1,\cdots,C}f^c_{\theta}(x)
y^=argc=1,⋯,Cmaxfθc(x),则有以下公式
(
f
θ
y
^
(
x
)
,
∑
c
≠
y
^
f
θ
c
(
x
)
)
=
(
f
θ
y
^
(
x
)
,
1
−
f
θ
y
^
(
x
)
)
(f^{\hat{y}}_\theta(x),\sum\limits_{c\ne \hat{y}}f^c_\theta(x))=(f^{\hat{y}}_\theta(x),1-f^{\hat{y}}_\theta(x))
(fθy^(x),c=y^∑fθc(x))=(fθy^(x),1−fθy^(x))以上公式可以看成一个二分类问题,即属于类别
y
^
\hat{y}
y^或者不属于类别
y
^
\hat{y}
y^,正则化之后可以得到
v
ˉ
⊤
F
θ
v
ˉ
\bar{v}^{\top}\mathbb{F}_\theta \bar{v}
vˉ⊤Fθvˉ其中
v
ˉ
=
v
/
∥
v
∥
\bar{v}=v/\|v\|
vˉ=v/∥v∥,以上目标函数是用于测量在点
θ
\theta
θ的统计流形曲率,现实中关于
θ
\theta
θ的梯度只出现在某个方向导数里,近似的计算公式为:
v
⊤
∇
θ
f
θ
c
(
x
)
≈
(
f
θ
+
ε
′
⋅
v
−
f
θ
)
/
ε
′
v^{\top}\nabla_\theta f^c_\theta (x)\approx (f_{\theta+\varepsilon^{\prime}\cdot v}-f_\theta)/\varepsilon^{\prime}
v⊤∇θfθc(x)≈(fθ+ε′⋅v−fθ)/ε′其中
ε
′
>
0
\varepsilon^{\prime}>0
ε′>0是一个非常小的数值。为了能够获得更多定量信息,作者引入了一个单变量的随机变量
ξ
∼
N
(
0
,
1
)
\xi\sim \mathcal{N}(0,1)
ξ∼N(0,1),进而则有以下公式
x
ε
,
η
=
x
+
ε
ξ
⋅
η
x^{\varepsilon,\eta}=x+\varepsilon \xi\cdot \eta
xε,η=x+εξ⋅η其中
ε
>
0
\varepsilon > 0
ε>0,向量
η
\eta
η跟
x
x
x有相同的维度,此时关于
x
x
x的Fisher信息量的计算公式可以表示为
F
θ
ε
,
η
=
∑
c
=
1
C
E
x
ε
,
μ
[
∇
θ
f
θ
c
(
x
ε
,
μ
)
∇
c
⊤
log
f
θ
(
x
ε
,
μ
)
]
=
F
θ
+
0
+
1
2
ε
2
∑
c
=
1
C
∑
i
,
j
=
1
N
η
i
∇
θ
∂
x
i
f
θ
c
(
x
)
∇
c
⊤
∂
x
j
log
f
θ
(
x
)
η
j
+
O
(
ε
3
)
\begin{aligned}\mathbb{F}_\theta^{\varepsilon,\eta}&=\sum\limits_{c=1}^C\mathbb{E}_{x^{\varepsilon,\mu}}[\nabla_\theta f^c_\theta(x^{\varepsilon,\mu})\nabla_c^{\top}\log f_\theta(x^{\varepsilon,\mu})]\\&=\mathbb{F}_\theta+0+\frac{1}{2}\varepsilon^2 \sum\limits_{c=1}^C\sum\limits_{i,j=1}^N\eta_i \nabla_\theta \partial_{x_i}f_\theta^c(x)\nabla^{\top}_c\partial_{x_j}\log f_{\theta}(x)\eta_j+\mathcal{O}(\varepsilon^3)\end{aligned}
Fθε,η=c=1∑CExε,μ[∇θfθc(xε,μ)∇c⊤logfθ(xε,μ)]=Fθ+0+21ε2c=1∑Ci,j=1∑Nηi∇θ∂xifθc(x)∇c⊤∂xjlogfθ(x)ηj+O(ε3)进一步正则化则有如下计算公式
v
⊤
F
ε
,
η
v
=
v
⊤
F
θ
v
+
η
⊤
δ
v
F
θ
η
v^{\top}\mathbb{F}^{\varepsilon,\eta}v=v^{\top}\mathbb{F}_\theta v+\eta^{\top}\delta_v \mathbb{F}_\theta \eta
v⊤Fε,ηv=v⊤Fθv+η⊤δvFθη其中
δ
v
F
θ
=
∑
c
=
1
C
∇
x
(
v
⊤
∇
θ
f
θ
c
(
x
)
)
⋅
∇
x
⊤
(
v
⊤
∇
θ
log
f
θ
c
(
x
)
)
\delta_v\mathbb{F}_\theta=\sum\limits_{c=1}^C\nabla_x(v^{\top}\nabla_\theta f_\theta^c(x))\cdot \nabla^{\top}_x(v^{\top}\nabla_\theta \log f^c_\theta(x))
δvFθ=c=1∑C∇x(v⊤∇θfθc(x))⋅∇x⊤(v⊤∇θlogfθc(x))为了简化计算量,作者在这里采用了一个非常简单直观的方法,对于每一个
i
=
1
,
⋯
,
N
i=1,\cdots,N
i=1,⋯,N,取
η
=
e
i
\eta=e_i
η=ei,进而则有如下计算公式
e
i
⊤
δ
v
F
θ
e
i
=
∑
c
=
1
C
∂
x
i
(
v
⊤
∇
θ
f
θ
c
(
x
)
)
⋅
∂
x
i
(
v
⊤
∇
θ
log
f
θ
c
(
x
)
)
e^{\top}_i\delta_v\mathbb{F}_\theta e_i=\sum\limits_{c=1}^C\partial_{x_i}(v^{\top}\nabla_\theta f_\theta^c(x))\cdot\partial_{x_i}(v^{\top}\nabla_\theta \log f^c_\theta(x))
ei⊤δvFθei=c=1∑C∂xi(v⊤∇θfθc(x))⋅∂xi(v⊤∇θlogfθc(x))对于每个
i
i
i都可以获得一个
(
e
i
⊤
δ
v
F
θ
e
i
)
i
=
1
,
⋯
,
N
(e^{\top}_i\delta_v\mathbb{F}_\theta e_i)_{i=1,\cdots,N}
(ei⊤δvFθei)i=1,⋯,N,作者称该向量为Fisher信息敏感度,它反映了输入中第
i
i
i个分量的重要程度,该方法通过一步后向传递就可以进行有效的计算。
3 基于Fisher信息量防御对抗攻击
在该论文中,作者提出了一种通过抑制Fisher信息矩阵的最大特征值来防御对抗性攻击的方案。通过理论分析可以发现Fisher信息矩阵的特征值较大,即使输入差异较小,输出差异也会变大,这就解释了对抗样本存在的原因。通过控制Fisher信息矩阵的特征值,这使得对抗防御成为可能,论文中作者由于求Fisher信息矩阵最大特征值的计算成本很高,其解决方案是在原始网络的损失函数中添加一个表示Fisher信息矩阵迹的项,因为最大特征值由矩阵的轨所限定。实验结果验证了本论文方法的有效性。
论文链接: https://arxiv.org/abs/1909.06137
3.1 论文方法
给定一张
m
×
n
m\times n
m×n的灰度图,分类器可以将其分为
K
K
K类中的某一类别。假定将图片从一个矩阵拉成一个长度为
m
×
n
m\times n
m×n的向量
x
x
x,则扰动图片
x
′
=
x
+
η
x^{\prime}=x+\eta
x′=x+η。干净图片和扰动图片经过深度神经网络分类,最后一层的
s
o
f
t
m
a
x
\mathrm{softmax}
softmax层的输出分别为
s
(
x
)
=
[
p
1
(
x
)
,
⋯
,
p
K
(
x
)
]
⊤
s(x)=[p_1(x),\cdots,p_K(x)]^{\top}
s(x)=[p1(x),⋯,pK(x)]⊤和
s
(
x
+
η
)
=
[
p
1
(
x
′
)
,
⋯
,
p
K
(
x
′
)
]
⊤
s(x+\eta)=[p_1(x^{\prime}),\cdots,p_K(x^{\prime})]^{\top}
s(x+η)=[p1(x′),⋯,pK(x′)]⊤,其中对于
i
=
1
,
⋯
,
K
i=1,\cdots,K
i=1,⋯,K,
p
i
≥
0
p_i\ge 0
pi≥0且
∑
i
=
1
K
p
i
=
1
\sum\limits_{i=1}^Kp_i=1
i=1∑Kpi=1。令样本
x
x
x属于第
i
i
i类的概率位
p
(
y
i
∣
x
)
p(y_i|x)
p(yi∣x),其中
y
=
[
y
1
,
⋯
,
y
K
]
⊤
y=[y_1,\cdots,y_K]^{\top}
y=[y1,⋯,yK]⊤是一个
o
n
e
-
h
o
t
\mathrm{one\text{-}hot}
one-hot向量,则有
p
(
y
i
∣
x
)
=
p
i
(
x
)
p(y_i|x)=p_i(x)
p(yi∣x)=pi(x)且
i
=
arg
max
j
p
j
(
x
)
i=\arg\max\limits_{j}p_j(x)
i=argjmaxpj(x),一般情况下,
x
x
x和
x
+
η
x+\eta
x+η的距离通过利用
K
L
\mathrm{KL}
KL散度去测量,具体公式如下所示:
D
K
L
(
s
(
x
)
∥
s
(
x
+
η
)
)
=
E
y
[
log
p
(
y
∣
x
)
p
(
y
∣
x
+
η
)
]
≈
1
2
η
⊤
G
x
η
D_{KL}(s(x)\|s(x+\eta))=\mathbb{E}_y\left[\log \frac{p(y|x)}{p(y|x+\eta)}\right]\approx \frac{1}{2}\eta^{\top}G_x\eta
DKL(s(x)∥s(x+η))=Ey[logp(y∣x+η)p(y∣x)]≈21η⊤Gxη其中
G
x
=
E
y
[
∇
x
log
p
(
y
∣
x
)
∇
x
⊤
log
p
(
y
∣
x
)
]
G_x=\mathbb{E}_y[\nabla_x \log p(y|x)\nabla_x^{\top}\log p(y|x)]
Gx=Ey[∇xlogp(y∣x)∇x⊤logp(y∣x)]是
x
x
x的Fisher信息矩阵。
K
L
\mathrm{KL}
KL散度的数值变大的时候,Fisher信息矩阵的最大特征值
λ
max
(
G
x
)
\lambda_{\max}(G_x)
λmax(Gx)也会随着变大。所以,对抗攻击的现象会出现在
λ
max
(
G
x
)
\lambda_{\max}{(G_x)}
λmax(Gx)数值较大的时候,对抗攻击方法OSSA就是利用Fisher信息矩阵最大特征值构造而来,具体的公式如下所示:
max
η
η
⊤
G
x
η
s
.
t
.
∥
η
∥
2
2
=
ε
,
J
(
y
,
x
+
η
)
>
J
(
y
,
x
)
\max\limits_{\eta}\eta^{\top}G_x \eta\quad \mathrm{s.t.} \text{ }\|\eta\|^2_2=\varepsilon,\text{ }J(y,x+\eta)>J(y,x)
ηmaxη⊤Gxηs.t. ∥η∥22=ε, J(y,x+η)>J(y,x)其中
ε
\varepsilon
ε
表示的是平方范数的扰动上界,
J
J
J是损失函数。构造对抗样本的问题可以转化为找到Fisher信息矩阵最大特征值
λ
max
(
G
x
)
\lambda_{\max}(G_x)
λmax(Gx)和对应的特征向量
η
\eta
η的问题,即
G
x
η
=
λ
max
η
G_x\eta = \lambda_{\max}\eta
Gxη=λmaxη。
该论文作者针对OSSA对抗攻击提出了相应的防御策略。因为特征值
G
x
G_x
Gx越大,则会使得
K
L
\mathrm{KL}
KL散度越大,进而会导致对抗攻击的现象。防御此对抗攻击的方法就是去控制最大特征值
λ
max
(
G
x
)
\lambda_{\max}(G_x)
λmax(Gx)引入到输入样本中。一个很自然的方法就是增加一个正则化项到损失函数中,具体的公式如下所示:
L
(
Θ
)
+
μ
⋅
λ
max
(
G
x
)
L(\Theta)+\mu \cdot \lambda_{\max}(G_x)
L(Θ)+μ⋅λmax(Gx)其中
μ
\mu
μ表示的是正则化参数,
L
(
Θ
)
L(\Theta)
L(Θ)是初始网络的损失函数,
Θ
\Theta
Θ表示的是初始网络的参数空间。使用该损失函数的时候需要注意两个问题,第一个问题就是
G
x
G_x
Gx矩阵会很大,比如当给定一张
1000
×
1000
1000\times 1000
1000×1000的图片时,转换拉平之后向量的长度达到了
1
0
6
10^6
106,这就意味着
G
x
G_x
Gx的维度大小为
1
0
6
×
1
0
6
10^6\times 10^6
106×106。第二个问题是很难清晰的写出
λ
max
(
G
x
)
\lambda_{\max}(G_x)
λmax(Gx)的显示表达式。第一个问题可以通过以下策略被解决,将注意力从关注矩阵
G
x
G_x
Gx转移到
G
s
G_s
Gs中,其中
s
s
s表示的是
s
o
f
t
m
a
x
\mathrm{softmax}
softmax层的输出
s
=
[
p
1
(
x
)
,
⋯
,
p
K
(
x
)
]
s=[p_1(x),\cdots,p_K(x)]
s=[p1(x),⋯,pK(x)]。与矩阵
G
x
G_x
Gx类似,则有
G
s
G_s
Gs如下公式
G
s
=
E
y
[
∇
s
log
p
(
y
∣
s
)
⋅
∇
s
⊤
log
p
(
y
∣
s
)
]
G_s=\mathbb{E}_y[\nabla_s \log p(y|s) \cdot \nabla_s^{\top}\log p(y|s)]
Gs=Ey[∇slogp(y∣s)⋅∇s⊤logp(y∣s)]需要注意的是
G
s
G_s
Gs是一个
K
×
K
K\times K
K×K的正定矩阵,则此时则有
η
⊤
G
x
η
=
η
⊤
E
y
[
∇
s
log
p
(
y
∣
s
)
∇
s
⊤
log
p
(
y
∣
s
)
J
⊤
]
η
=
η
⊤
J
⊤
E
y
[
∇
s
log
p
(
y
∣
s
)
∇
s
⊤
log
p
(
y
∣
s
)
]
J
⊤
η
\begin{aligned}\eta^{\top}G_x\eta&=\eta^{\top}\mathbb{E}_y[\nabla_s\log p(y|s)\nabla^{\top}_s\log p(y|s)J^{\top}]\eta\\&=\eta^{\top}J^{\top}\mathbb{E}_y[\nabla_s\log p(y|s)\nabla^{\top}_s\log p(y|s)]J^{\top}\eta\end{aligned}
η⊤Gxη=η⊤Ey[∇slogp(y∣s)∇s⊤logp(y∣s)J⊤]η=η⊤J⊤Ey[∇slogp(y∣s)∇s⊤logp(y∣s)]J⊤η其中
J
=
(
∂
s
i
∂
x
α
)
J=\left(\frac{\partial s^i}{\partial x^{\alpha}}\right)
J=(∂xα∂si)是
s
=
s
(
x
)
s=s(x)
s=s(x)的一个
K
×
m
n
K\times mn
K×mn的雅可比矩阵,并且
∇
x
=
J
⊤
∇
s
\nabla_x = J^{\top}\nabla_s
∇x=J⊤∇s。
η
⊤
G
x
η
=
η
⊤
J
⊤
G
s
J
η
\eta^{\top}G_x\eta=\eta^{\top}J^{\top}G_sJ\eta
η⊤Gxη=η⊤J⊤GsJη因此第一个问题可以通过将计算
m
n
×
m
n
mn\times mn
mn×mn的矩阵的最大特征值和特征向量转化为计算
K
×
K
K\times K
K×K的最大特征值和特征向量。损失函数可以被写为
L
(
Θ
)
+
μ
⋅
λ
max
(
G
s
)
L(\Theta)+\mu \cdot \lambda_{\max}(G_s)
L(Θ)+μ⋅λmax(Gs)但需要注意是特征值
λ
max
(
G
s
)
\lambda_{\max}(G_s)
λmax(Gs)没有显示表达式的问题依然存在。第二个问题可以通过计算矩阵
G
s
G_s
Gs的迹来代替计算
λ
(
G
s
)
\lambda(G_s)
λ(Gs),则此时的损失函数可以表示为
L
(
Θ
)
+
μ
⋅
t
r
(
G
s
)
L(\Theta)+\mu \cdot \mathrm{tr}(G_s)
L(Θ)+μ⋅tr(Gs)其中
G
s
G_s
Gs可以被计算为如下所示
t
r
(
G
s
)
=
t
r
(
E
y
[
∇
s
log
p
(
y
∣
s
)
∇
s
⊤
log
p
(
y
∣
s
)
]
)
=
∫
y
p
(
y
∣
s
)
[
t
r
(
∇
s
⊤
log
p
(
y
∣
s
)
∇
s
log
p
(
y
∣
s
)
)
]
d
y
=
∫
y
p
(
y
∣
s
)
∥
∇
s
log
p
(
y
∣
s
)
∥
2
2
d
y
=
∑
i
=
1
K
p
i
∑
j
=
1
K
(
∇
p
j
log
p
i
)
2
=
∑
i
=
1
K
1
p
i
\begin{aligned}\mathrm{tr}(G_s)&=\mathrm{tr}(\mathbb{E}_y[\nabla_s\log p(y|s)\nabla_s^{\top}\log p(y|s)])\\&=\int_y p(y|s)[\mathrm{tr}(\nabla_s^{\top}\log p(y|s)\nabla_s \log p(y|s))]dy\\&=\int_y p(y|s)\|\nabla_s \log p(y|s)\|_2^2dy\\&=\sum\limits_{i=1}^K p_i\sum\limits_{j=1}^K(\nabla_{p_j}\log p_i)^2\\&=\sum\limits_{i=1}^K \frac{1}{p_i}\end{aligned}
tr(Gs)=tr(Ey[∇slogp(y∣s)∇s⊤logp(y∣s)])=∫yp(y∣s)[tr(∇s⊤logp(y∣s)∇slogp(y∣s))]dy=∫yp(y∣s)∥∇slogp(y∣s)∥22dy=i=1∑Kpij=1∑K(∇pjlogpi)2=i=1∑Kpi1最终对于防御对抗攻击的损失函数可以表示为
L
~
(
Θ
=
L
(
Θ
)
+
μ
⋅
∑
i
=
1
K
1
p
i
s
.
t
.
∑
i
=
1
K
p
i
=
1
\tilde{L}(\Theta=L(\Theta)+\mu\cdot \sum\limits_{i=1}^K\frac{1}{p_i}\quad \mathrm{s.t.}\text{ }\sum\limits_{i=1}^Kp_i=1
L~(Θ=L(Θ)+μ⋅i=1∑Kpi1s.t. i=1∑Kpi=1作者通过修改初始神经网络的损失函数,以此来提高模型抵御对抗攻击的能力,最优参数可以通过以下方式获得
Θ
∗
=
arg
min
Θ
L
~
(
Θ
)
\Theta^{*}=\arg\min\limits_{\Theta}\tilde{L}(\Theta)
Θ∗=argΘminL~(Θ)
3.2 可行性分析
当 arg min p 1 , ⋯ , p k ∑ i = 1 K 1 p i \arg\min\limits_{p_1,\cdots,p_k}\sum\limits_{i=1}^K\frac{1}{p_i} argp1,⋯,pkmini=1∑Kpi1取到最小值时的解为 p 1 , ⋯ , p k = 1 K p_1,\cdots,p_k=\frac{1}{K} p1,⋯,pk=K1,这就意味着正则化项 ∑ i = 1 K 1 p i \sum\limits_{i=1}^K\frac{1}{p_i} i=1∑Kpi1迫使 [ p 1 , ⋯ , p K ] [p_1,\cdots,p_K] [p1,⋯,pK]向中心点 [ 1 / K , ⋯ , 1 / K ] ⊤ [1/K,\cdots,1/K]^{\top} [1/K,⋯,1/K]⊤,不会向点 [ 0 , ⋯ , 1 , ⋯ , 0 ] ⊤ [0,\cdots,1,\cdots,0]^{\top} [0,⋯,1,⋯,0]⊤移动,所以一个很自然的担心是这样会导致深度神经网络的分类准确率下降,在该论文中,作者表明不会出现这种状况。最小化 ∑ i = 1 K 1 p i \sum\limits_{i=1}^{K}\frac{1}{p_i} i=1∑Kpi1确实会使得 [ p 1 , ⋯ , p K ] [p_1,\cdots,p_K] [p1,⋯,pK]向点 [ 1 / K , ⋯ , 1 / K ] ⊤ [1/K,\cdots,1/K]^{\top} [1/K,⋯,1/K]⊤移动,但是损失函数的中的第一项会使得中心点不能被到达。移向中心点趋势并不是有害的,作者真正关心的是正确的类别 i ∗ = arg max i p i i^{*}=\arg\max\limits_{i}p_i i∗=argimaxpi,而不是 p i ∗ p_{i^*} pi∗的取值,所以,作者不会追求更大的 p i ∗ p_{i^{*}} pi∗值,而且使得 p i ∗ p_{i^{*}} pi∗在所有的类别 i = 1 , ⋯ , K i=1,\cdots,K i=1,⋯,K概率值 p i p_i pi中值最大。以上的情况说明了一个事实,一个样本分类的高置信度的结果有时候是不可靠的,原因在于类 i i i的高置信度意味着概率 p i p_i pi数值是大的,其它类别 j ≠ i j\ne i j=i的概率值 p j p_j pj的数值是小的。一种极端的情况是当 p j = 0 p_j=0 pj=0时,则有 ∑ i = 1 K 1 p i → ∞ \sum\limits_{i=1}^K\frac{1}{p_i}\rightarrow \infty i=1∑Kpi1→∞。总之,高置信度样本对对抗扰动是非常敏感的,因此该样本面对对抗攻击也是非常脆弱的。
3.3 标签平滑正则化
论文中的方法和
L
S
R
\mathrm{LSR}
LSR都是会将份分类标签平滑化,并且正确标签依然是有最高的概率。标准的
L
S
R
\mathrm{LSR}
LSR一般分为两步,首先是对于给定的类别
k
∈
{
1
,
⋯
,
K
}
k\in\{1,\cdots,K\}
k∈{1,⋯,K},将
o
n
e
-
h
o
t
\mathrm{one\text{-}hot}
one-hot标签修改为:
y
k
L
S
R
=
y
k
(
1
−
α
)
+
α
/
K
y_k^{LSR}=y_k (1-\alpha)+\alpha/K
ykLSR=yk(1−α)+α/K其中
α
∈
(
0
,
1
)
\alpha\in(0,1)
α∈(0,1)是超参数,
y
k
y_k
yk是一个标签分量,其中正确的类别分量对应的数值是1,其它的分量对应的数值为0;然后用新的标签分量去训练这个网络。
L
S
R
\mathrm{LSR}
LSR方法可以使得一类的数据更加紧凑,这样可以更有效的抵御对抗攻击,但是该方法的问题在于需要格外有一个先验假设即标签是均匀分布的。本文论文的方法是基于严格的数学推导,不需要这样的假设条件,因此对比可知,该论文的方法有一个更好的解释性。
4 基于Fisher信息量理解对抗行为
在该论文中,作者主要对对抗扰动可以攻击深度学习模型的对抗行为进行研究,旨在揭示深度学习模型的泛化性能与对抗行为之间的关系。作者在论文中提出了一个基于Fisher信息量的度量方式,该指标在信息论上可以将深度学习的损失函数分为的非鲁棒性(负责对抗行为)和鲁棒性的两个成分。实验结果表明,当前的深度学习模型在很大程度上依赖于优化非鲁棒性成分来实现较好的分类性能。
论文链接: https://arxiv.org/abs/1906.02494v1
4.1 论文方法
在之前的研究中,在测试集上预测准确率往往用于去评估深度学习模型的性能。然而,这种评估方式会隐藏模型性能和对抗行为之间的关系。在该论文中,为了建立更透明的关系和更好理解模型的对抗行为,作者提出了采用任何不同类别的数据对的平均
K
L
\mathrm{KL}
KL散度作为分类性能的度量。
令
x
x
x表示的是输入的图片,
y
y
y是对应的
o
n
e
-
h
o
t
\mathrm{one\text{-}hot}
one-hot标签分布,
f
f
f是分类器模型,
y
^
=
f
(
x
)
\hat{y}=f(x)
y^=f(x)是模型的输出分布。
N
p
a
i
r
N_{\mathrm{pair}}
Npair是不同类别的数据对的数目。
J
S
(
f
(
x
i
)
∥
f
(
x
j
)
)
\mathrm{JS}(f(x_i)\|f(x_j))
JS(f(xi)∥f(xj))是
f
(
x
i
)
f(x_i)
f(xi)和
f
(
x
j
)
f(x_j)
f(xj)的
J
S
\mathrm{JS}
JS散度,论文作者提出的交叉熵
K
L
\mathrm{KL}
KL散度的公式如下所示:
C
C
K
L
=
1
2
N
p
a
i
r
∑
∀
y
i
≠
y
j
K
L
(
f
(
x
i
)
∥
f
(
x
j
)
)
\mathrm{CCKL}=\frac{1}{2N_{\mathrm{pair}}}\sum\limits_{\forall y_i \ne y_j}\mathrm{KL}(f(x_i)\|f(x_j))
CCKL=2Npair1∀yi=yj∑KL(f(xi)∥f(xj))由
L
i
n
\mathrm{Lin}
Lin不等式可知,从三角不等式中导出以下下界,可以用于描述交叉熵损失函数与论文中提出的目标之间的关系
K
L
(
f
(
x
i
)
∥
f
(
x
j
)
)
≥
2
J
S
(
y
i
∥
y
j
)
−
K
L
(
y
i
∥
f
(
x
i
)
)
−
K
L
(
y
j
∥
f
(
x
j
)
)
,
∀
y
i
≠
y
j
\mathrm{KL}(f(x_i)\|f(x_j))\ge 2 \mathrm{JS}(y_i\|y_j)-\mathrm{KL}(y_i\| f(x_i))-\mathrm{KL}(y_j\|f(x_j)),\quad \forall y_i\ne y_j
KL(f(xi)∥f(xj))≥2JS(yi∥yj)−KL(yi∥f(xi))−KL(yj∥f(xj)),∀yi=yj其中
J
S
(
y
i
∥
y
j
)
\mathrm{\mathrm{JS}}(y_i\|y_j)
JS(yi∥yj)表示的是
y
i
y_i
yi和
y
j
y_j
yj的
J
S
\mathrm{JS}
JS散度。
K
L
(
f
(
x
i
)
∥
f
(
x
j
)
)
\mathrm{KL}(f(x_i)\|f(x_j))
KL(f(xi)∥f(xj))能够更有效地表征模型训练过程中的行为,当训练损失
K
L
(
y
i
∥
f
(
x
i
)
)
\mathrm{KL}(y_i\|f(x_i))
KL(yi∥f(xi))下降的时候,
K
L
(
f
(
x
i
)
∥
f
(
x
j
)
)
\mathrm{KL}(f(x_i)\|f(x_j))
KL(f(xi)∥f(xj))的下界会增大。
从另一个视角可知,当给网络随机初始化的时候,深度神经网络
f
f
f没有任何正确分类样本的知识。因此,它不能够区分开输入样本
x
i
x_i
xi,
x
j
x_j
xj以它们的输出概率。此时,在训练的早期阶段,
K
L
(
f
(
x
i
)
∥
f
(
x
j
)
)
\mathrm{KL}(f(x_i)\|f(x_j))
KL(f(xi)∥f(xj))是相对较小的;随着训练的进行,更多的标签依赖信息被整合到模型
f
θ
f_\theta
fθ中,神经网络的泛化能力也随之加强,并且在测试集上的输出分布
f
θ
(
x
)
f_\theta(x)
fθ(x)会越来越接近真实的标签分布
y
y
y;在训练的末期阶段,模型损失
K
L
(
y
∥
f
(
x
)
)
\mathrm{KL}(y\|f(x))
KL(y∥f(x))将会下降到一个相对小的数值,此时
K
L
(
f
(
x
i
)
∥
f
(
x
j
)
)
\mathrm{KL}(f(x_i)\|f(x_j))
KL(f(xi)∥f(xj))将会足够接近
K
L
(
y
i
∥
y
j
\mathrm{KL}({y_i\|y_j}
KL(yi∥yj)。
本文提出的度量方法可以更好的显示模型是如果能将不同类别的数据区分开来。如下公式所示为对抗训练的目标函
min
θ
max
η
K
L
(
y
∥
f
θ
(
x
+
η
)
)
\min\limits_{\theta}\max\limits_{\eta}\mathrm{KL}(y\|f_\theta(x+\eta))
θminηmaxKL(y∥fθ(x+η))随着训练的进行,参数
θ
\theta
θ会接近最优,输出分布
f
θ
(
x
)
f_\theta(x)
fθ(x)能够接近真实标签
y
y
y。在这种情况下
K
L
\mathrm{KL}
KL散度是关于第一个变量连续的,所以则有如下公式
K
L
(
y
∥
f
θ
(
x
+
η
)
)
≈
K
L
(
f
θ
(
x
)
∥
f
θ
(
x
+
η
)
)
\mathrm{KL}(y\|f_\theta(x+\eta))\approx \mathrm{KL}(f_\theta(x)\|f_\theta(x+\eta))
KL(y∥fθ(x+η))≈KL(fθ(x)∥fθ(x+η))以上观察可以从分布的视角下去研究模型的对抗行为。为了更好的了解对抗行为和
C
C
K
L
\mathrm{CCKL}
CCKL度量之间的联系,作者定义了以下对抗度量的公式
L
θ
(
x
,
η
)
=
K
L
(
f
θ
(
x
)
∥
f
θ
(
x
+
η
)
)
L_\theta(x,\eta)=\mathrm{KL}(f_\theta(x)\|f_\theta(x+\eta))
Lθ(x,η)=KL(fθ(x)∥fθ(x+η))相应对抗训练的目标函数如下所示
min
θ
max
η
L
θ
(
x
,
η
)
s
.
t
.
∥
η
∥
≤
ϵ
\min\limits_{\theta}\max\limits_{\eta}L_\theta(x,\eta)\quad \mathrm{s.t.}\text{ }\|\eta\|\le \epsilon
θminηmaxLθ(x,η)s.t. ∥η∥≤ϵ给定
L
θ
(
x
,
η
)
L_\theta(x,\eta)
Lθ(x,η),其泰勒展开是可以表示
max
η
L
θ
(
x
,
η
)
=
max
η
η
⊤
F
x
η
+
∑
k
=
3
∞
T
x
(
k
)
(
η
)
,
s
.
t
.
∥
η
∥
≤
ϵ
\max\limits_\eta L_\theta(x,\eta)=\max\limits_{\eta}\eta^{\top}F_x \eta+\sum\limits_{k=3}^{\infty}T_x^{(k)}(\eta),\quad \mathrm{s.t.}\text{ }\|\eta\|\le \epsilon
ηmaxLθ(x,η)=ηmaxη⊤Fxη+k=3∑∞Tx(k)(η),s.t. ∥η∥≤ϵ其中
F
x
F_x
Fx是
f
(
x
)
f(x)
f(x)关于
x
x
x的Fisher信息量,
f
j
(
x
)
f_j(x)
fj(x)是
f
(
x
)
f(x)
f(x)的第
j
j
j项,
n
n
n是
f
(
x
)
f(x)
f(x)的元素数,其中
F
x
F_x
Fx的具体计算公式如下所示:
F
x
=
∑
j
=
0
n
f
j
(
x
)
∇
x
log
f
j
(
x
)
∇
x
⊤
log
f
j
(
x
)
F_x = \sum\limits_{j=0}^n f_j(x)\nabla_x\log f_j(x)\nabla^{\top}_x\log f_j(x)
Fx=j=0∑nfj(x)∇xlogfj(x)∇x⊤logfj(x)其中
ϵ
\epsilon
ϵ是足够的小,更高阶的项的是接近于
0
0
0,以上公式可以简化为
max
η
L
(
x
,
η
)
=
max
η
η
⊤
F
x
η
s
.
t
.
∥
η
∥
≤
ϵ
\max\limits_{\eta}L(x,\eta)=\max\limits_{\eta}\eta^{\top}F_x\eta\quad\mathrm{s.t.}\text{ }\|\eta\|\le \epsilon
ηmaxL(x,η)=ηmaxη⊤Fxηs.t. ∥η∥≤ϵ通过设定
∇
η
L
=
0
\nabla_\eta L=0
∇ηL=0,可以得到
F
x
η
=
λ
max
η
F_x\eta =\lambda_{\max}\eta
Fxη=λmaxη,其中
λ
max
\lambda_{\max}
λmax是矩阵
F
x
F_x
Fx的最大特征值。因此,则有
L
(
x
,
η
)
≤
λ
max
ϵ
2
,
s
.
t
.
∥
η
∥
≤
ϵ
L(x,\eta)\le \lambda_{\max} \epsilon^2,\quad \mathrm{s.t.}\text{ } \|\eta\|\le \epsilon
L(x,η)≤λmaxϵ2,s.t. ∥η∥≤ϵ需要注意的是
λ
max
\lambda_{\max}
λmax是Fisher信息矩阵
F
x
F_x
Fx的谱范数。以上的推导展示了模型在输入样本
x
x
x附近的对抗行为由Fisher信息矩阵所决定,如果
F
x
F_x
Fx的谱范数越大,则
x
x
x附近的对抗行为越严重。给定两个数据标签对
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)和
(
x
j
,
y
j
)
(x_j,y_j)
(xj,yj),并且
y
i
≠
y
j
y_i\ne y_j
yi=yj,可以将
K
L
(
f
(
x
i
)
∥
f
(
x
j
)
)
\mathrm{KL}(f(x_i)\|f(x_j))
KL(f(xi)∥f(xj))重新整理为
K
L
(
f
(
x
i
)
∥
f
(
x
j
)
)
=
K
L
(
f
(
x
i
)
∥
f
(
x
i
+
(
x
i
−
x
j
)
)
=
L
(
x
i
,
x
j
−
x
i
)
\mathrm{KL}(f(x_i)\|f(x_j))=\mathrm{KL}(f(x_i)\|f(x_i+(x_i-x_j))=L(x_i,x_j-x_i)
KL(f(xi)∥f(xj))=KL(f(xi)∥f(xi+(xi−xj))=L(xi,xj−xi)因此,通过泰勒展开可以得到式可以得到
K
L
(
f
(
x
i
)
∥
f
(
x
j
)
)
=
L
(
x
i
,
x
j
−
x
i
)
=
(
x
j
−
x
i
)
⊤
F
x
i
(
x
j
−
x
i
)
+
∑
k
=
3
∞
T
x
i
(
k
)
(
x
j
−
x
i
)
\mathrm{KL}(f(x_i)\|f(x_j))=L(x_i,x_j-x_i)=(x_j-x_i)^{\top}F_{x_i}(x_j-x_i)+\sum\limits_{k=3}^{\infty}T^{(k)}_{x_i}(x_j-x_i)
KL(f(xi)∥f(xj))=L(xi,xj−xi)=(xj−xi)⊤Fxi(xj−xi)+k=3∑∞Txi(k)(xj−xi)由此可知在每一个数据点的对抗行为与目标损失函数
C
C
K
L
\mathrm{CCKL}
CCKL的分数与在每个点的Fisher信息量有关。上文提出的对抗训练限制了一个深度神经网络模型的输入输出Fisher信息量,这种限制是一个好的深度模型的标准。由Cramer-Rao界可知
v
a
r
(
x
^
)
F
x
≥
1
\mathrm{var}(\hat{x})F_x \ge 1
var(x^)Fx≥1如果尝试使用输出概率
f
(
x
)
f(x)
f(x)到统计数据
x
^
\hat{x}
x^来重建输入
x
x
x,则方差
v
a
r
(
x
^
)
\mathrm{var}(\hat{x})
var(x^)的不确定性由Fisher信息
F
x
F_x
Fx的倒数限定。对于深度神经网络,当它使用正确的标签对图像进行分类时,标签没有任何关于环境的信息(例如,狗是什么颜色、狗在哪里、对抗干扰等)。这意味着,对于一个好的深度神经网络模型,从输出分布
f
(
x
)
f(x)
f(x)导出的任何统计量
x
^
\hat{x}
x^的方差
v
a
r
(
x
^
)
\mathrm{var}(\hat{x})
var(x^)都相对较大。鉴于Cramer-Rao界,这意味着深度神经网络的Fisher信息量是一个相对较小的值。令
(
x
j
−
x
i
)
⊤
F
x
(
x
j
−
x
i
)
(x_j-x_i)^{\top}F_x(x_j-x_i)
(xj−xi)⊤Fx(xj−xi)表示为
G
1
G_1
G1,
∑
k
=
3
∞
T
x
i
(
k
)
(
x
j
−
x
i
)
\sum\limits_{k=3}^{\infty}T_{x_i}^{(k)}(x_j-x_i)
k=3∑∞Txi(k)(xj−xi)表示为
G
2
G_2
G2。因此,
K
L
(
f
(
x
i
)
∥
f
(
x
j
)
)
\mathrm{KL}(f(x_i)\|f(x_j))
KL(f(xi)∥f(xj))可以公式化为
K
L
(
f
(
x
i
)
∥
f
(
x
2
)
)
=
G
1
+
G
2
\mathrm{KL}(f(x_i)\|f(x_2))=G_1+G_2
KL(f(xi)∥f(x2))=G1+G2由上公式可以发现,当
G
1
G_1
G1和
G
2
G_2
G2增大时,都会使得
K
L
(
f
(
x
i
)
∥
f
(
x
j
)
)
\mathrm{KL}(f(x_i)\|f(x_j))
KL(f(xi)∥f(xj))的值变大。
G
1
G_1
G1是
F
x
F_x
Fx诱导的二阶多项式,
(
x
j
−
x
i
)
(x_j-x_i)
(xj−xi)是两个输入
x
i
x_i
xi和
x
j
x_j
xj之间固定的距离,
G
1
G_1
G1增大将会导致
F
x
F_x
Fx的范数增大。所以可知,如果一个模型严重依赖
G
1
G_1
G1的变大来提升性能,则会
F
x
F_x
Fx的范数也会随之增大。又由以上的结论可知,
F
x
F_x
Fx的范数越大,在
x
i
x_i
xi点附近的对抗行为越严重,因为可知对抗行为和模型的分类性能是有一种内在冲突的。
G
2
G_2
G2项可以提升分类性能但是却不会引起对抗行为。所以,以上目标函数成功地将非鲁棒元素和鲁棒元素分解开来。