对抗样本生成算法
一、FGSM(Fast Gradient Sign Method)
1.FGSM基本思想
Fast gradient sign method缩写为FGSM,其思想来源于“随机梯度下降使得模型对于输入图像输出的损失函数值变小,从而使网络输出正确的预测,那么如果将计算得出的损失值加到输入图像上,使得网络输出的损失值变大,即可使网络趋向于输出错误的预测结果”。
2.FGSM算法流程
需要进行对抗样本生成的原始图片
x
o
r
i
x_{ori}
xori,其标签为
y
y
y,一个良好的分类模型
M
M
M,分类模型
M
M
M的参数
θ
\theta
θ,同时需要使用FGSM生成一个攻击噪声
η
\eta
η。
首先使用分类模型
M
M
M对输出
x
o
r
i
x_{ori}
xori进行一个前向传播,可以计算ß出损失函数值
∇
x
o
r
i
J
(
θ
,
x
o
r
i
,
y
)
\nabla_{x_{ori}} J(\theta,x_{ori},y)
∇xoriJ(θ,xori,y),因为损失计算得到的雅可比矩阵的元素大小不均,所以为了控制损失值的无穷范数(每一个像素的损失值的最大值),所以使用符号函数
s
i
g
n
(
)
sign()
sign()提取梯度的方向,而不是用梯度的值,同时我们使用一个参数
ε
\varepsilon
ε来控制攻击噪声的幅值,满足
∥
η
∥
∞
<
ε
\left \| \eta \right \|_\infty<\varepsilon
∥η∥∞<ε。
综上
η
=
ε
s
i
g
n
(
∇
x
o
r
i
J
(
θ
,
x
o
r
i
,
y
)
)
(1.1)
\eta=\varepsilon sign(\nabla_{x_{ori}} J(\theta,x_{ori},y)) \tag{1.1}
η=εsign(∇xoriJ(θ,xori,y))(1.1)随后,将原图加上攻击噪声
η
\eta
η即可得到原始图片
x
o
r
i
x_{ori}
xori的对抗样本
x
a
d
v
x_{adv}
xadv
x
a
d
v
=
x
o
r
i
+
η
(1.2)
x_{adv}=x_{ori}+\eta \tag{1.2}
xadv=xori+η(1.2)添加扰动之后的图片需要对于某些超出范围的像素进行裁剪。
FGSM虽然是白盒攻击方法,但其产生的对ß抗样本在面对黑盒模型时同样具有一定ß效ß果,现一般作为算法baseline进行比较。
3.FGSM扰动有效性分析
即分类网络线性因素越多,该网络越容易收到对抗扰动影响。
二、I-FGSM/BIM(Iterative FGSM)
1.I-FGSM与FGSM的区别
I-FGSM/BIM是FGSM的改进版,原始将FGSM所有的像素进行了一次性变化。且FGSM 只沿着梯度增加的方向添加一步扰动,而 BIM 则通过迭代的方式,沿着梯度增加的方向进行多步小扰动(该扰动幅值由公式中的 α \alpha α控制),并且在每一小步后,重新计算梯度方向,相比FGSM能构造出更加精准的扰动,但代价是增大了计算量。
2.I-FGSM算法流程
X 0 a d v = X X N + 1 a d v = C l i p X , ε { X N a d v + α s i g n ( ∇ X J ( θ , X N a d v , y t r u e ) ) } (2.1) X_{0}^{adv}=X\\ X_{N+1}^{adv}=Clip_{X,\varepsilon}\{X_{N}^{adv}+\alpha sign(\nabla_{X} J(\theta,X_{N}^{adv},y_{true}))\} \tag{2.1} X0adv=XXN+1adv=ClipX,ε{XNadv+αsign(∇XJ(θ,XNadv,ytrue))}(2.1)其中, X X X是原始图片, X N a d v X_{N}^{adv} XNadv是经过N次FGSM算法处理后的对抗样本, C l i p X , ε ( A ) Clip_{X,\varepsilon}(A) ClipX,ε(A)函数将输入向量A中的每个元素 A i , j A_{i,j} Ai,j裁剪到 [ X i , j − ε , X i , j + ε ] [X_{i,j}-\varepsilon,X_{i,j}+\varepsilon] [Xi,j−ε,Xi,j+ε]之间, s i g n ( ∇ X J ( θ , X N a d v , y t r u e ) sign(\nabla_{X} J(\theta,X_{N}^{adv},y_{true}) sign(∇XJ(θ,XNadv,ytrue)与原始FGSM中对应计算量相同, α \alpha α代表每次迭代图像像素更新的幅值,例如将 α \alpha α设为1则每一次迭代,图像像素只更新1或者-1。
迭代的含义:每次在上一步的对抗样本的基础上,各个像素增长(或者减少) α \alpha α,然后再执行裁剪,保证新样本的各个像素都在的 X i , j X_{i,j} Xi,j的 ε \varepsilon ε邻域内。这种迭代的方法是有可能在各个像素变化小于 ε \varepsilon ε的情况下找到对抗样本的,如果找不到,最差的效果就跟原始的FGSM一样。
三、ILCM(Iterative Least-likely Class Method)
1.ILCM与I-FGSM的区别
ILCM算法是I-FGSM的升级版,该算法将输入图像分类成原始图像最不可能被分到的类别,即在原始图片经过分类网络后分类置信度最低的类。
2.ILCM算法流程
X
0
a
d
v
=
X
,
X
N
+
1
a
d
v
=
C
l
i
p
X
,
ε
{
X
N
a
d
v
−
α
s
i
g
n
(
∇
X
J
(
θ
,
X
N
a
d
v
,
y
L
L
)
)
}
(3.1)
X_{0}^{adv}=X,X_{N+1}^{adv}=Clip_{X,\varepsilon}\{X_{N}^{adv}-\alpha sign(\nabla_{X} J(\theta,X_{N}^{adv},y_{LL}))\} \tag{3.1}
X0adv=X,XN+1adv=ClipX,ε{XNadv−αsign(∇XJ(θ,XNadv,yLL))}(3.1)
y
L
L
=
a
r
g
m
i
n
y
{
p
(
y
∣
X
)
}
(3.2)
y_{LL}=arg\ min_{y}\{p(y|X)\} \tag{3.2}
yLL=arg miny{p(y∣X)}(3.2)其中,
y
L
L
y_{LL}
yLL是原始图片最不可能被分到的类别,且该标签不会随着扰动的添加在改变,即
y
L
L
y_{LL}
yLL只与
X
X
X有关,与
X
N
a
d
v
X_{N}^{adv}
XNadv无关。
从公式中可以看到和FGSM无目标攻击公式的最大区别在于对抗扰动项前面的加号变成减号,同时原本的真实标签 y t r u e y_{true} ytrue变成 y L L y_{LL} yLL,目的是使得模型优化目标 y L L y_{LL} yLL的分类概率越来越大。
四、PGD(Projected Gradient Descent)
1.PGD与I-FGSM的区别
PGD是在BIM的基础上,对原始样本在其邻域范围内随机扰动作为算法初始输入,经多次迭代后生成对抗样本,其性能得到显著改善,具有较好的迁移性和抗破坏能力。
2.PGD指导对抗样本防御
提出该方法的论文的中心思想:
How can we train deep neural networks that are robust to adversarial inputs?如何训练模型,使其能对某一类攻击都鲁棒?
原始的网络训练方式Empirical risk minimization (ERM,经验风险最小化),即找到一组模型参数
θ
\theta
θ,使:
min
{
ρ
(
θ
)
}
⇔
min
{
E
(
x
,
y
)
∼
D
[
L
(
x
,
y
,
θ
)
]
}
(4.1)
\min\{\rho(\theta)\}⇔ \min\{\mathbb{E}_{(x,y)∼D}[L(x,y,\theta)]\} \tag{4.1}
min{ρ(θ)}⇔min{E(x,y)∼D[L(x,y,θ)]}(4.1)传统的网络训练方式对于常规数据分布具有良好的拟合能力,但该方法训练的模型一般无法抵御对抗样本攻击。我们将对抗扰动引入经验风险最小化范式中,使网络训练中将对抗扰动考虑在内,即找到一组模型参数
θ
\theta
θ,使:
min
{
ρ
(
θ
)
}
⇔
min
{
E
(
x
,
y
)
∼
D
[
max
δ
∈
S
L
(
x
+
δ
,
y
,
θ
)
]
}
(4.2)
\min\{\rho(\theta)\}⇔ \min\{\mathbb{E}_{(x,y)∼D}[\max\limits_{\delta\in S} L(x+\delta,y,\theta)]\} \tag{4.2}
min{ρ(θ)}⇔min{E(x,y)∼D[δ∈SmaxL(x+δ,y,θ)]}(4.2)其中
S
S
S是一组选定的扰动,也是无穷范数球的球面限制,限制对抗扰动的幅值。
(4.2)式包括了内部最大化和外部最小化,因此可以视为鞍点(min-max)问题,同时清晰地描述了鲁棒模型应该达到的目标:内部最大化目的在于寻找最优的对抗样本使分类网络训练达到很高,外部最小化目的在于寻找模型参数抵抗对抗样本的攻击。所以,最终训练得到的模型也具有稳定的对抗鲁棒性。内部最大化可以指导对抗样本的生成,而外部最大化可以指导网络训练。
3.PGD指导对抗样本生成(算法流程)
X 0 = X X N + 1 = ∏ X + S { X N + α s i g n [ ∇ X J ( θ , X N , y t r u e ) ] } (4.3) X^{0}=X \\X^{N+1}=\prod_{X+S}\{X^{N}+\alpha sign[\nabla_{X} J(\theta,X^{N},y_{true})]\} \tag{4.3} X0=XXN+1=X+S∏{XN+αsign[∇XJ(θ,XN,ytrue)]}(4.3) ∏ X + S \prod_{X+S} ∏X+S符号限制对抗扰动在球面范围内。其中, X X X是原始图片, X N X^{N} XN是经过N次FGSM算法处理后的对抗样本, s i g n ( ∇ X J ( θ , X N , y t r u e ) sign(\nabla_{X} J(\theta,X^{N},y_{true}) sign(∇XJ(θ,XN,ytrue)与原始FGSM中对应计算量相同, α \alpha α代表每次迭代图像像素更新的幅值,例如将 α \alpha α设为1则每一次迭代,图像像素只更新1或者-1。
同时,PGD会在对抗样本攻击前在样本中随机加入一些噪声,在进行对抗样本迭代生成,该方法被证明是一阶攻击方法中最强大的一种。
五、PGD与I-FGSM的区别
PGD的无穷范数版本基本等于I-FGSM,但PGD的无穷范数版本多了在对抗攻击之前的随机初始化,即在原始图片中添加随机噪声。PGD是I-FGSM的推广,I-FGSM是PGD的特例。PGD攻击强度大于I-FGSM。
图片来自:http://www.jsjkx.com/CN/article/openArticlePDF.jsp?id=20078