最近想参加天池一个安全AI的比赛,所以研究一下对抗攻击的内容,求组队呜呜呜。。
以下的总结来参考论文《Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey》
这是我看的第一篇对抗攻击类的文章,很多地方没弄懂,先根据论文粗略大概总结一下,不好的地方请指出。
1.盒子约束 L-BFGS
Szegedy等人表明图片上微小的扰动会使得神经网络模型分类错误。为了计算扰动,Szegedy等人提出了这样的问题:
m
i
n
ρ
∣
∣
ρ
∣
∣
,
s
.
t
.
C
(
I
c
+
ρ
)
=
l
,
I
c
+
ρ
∈
[
0
,
1
]
m
,
(
1
)
min_\rho||\rho||,s.t.C(I_c+\rho)=l,I_c+\rho \in[0,1]^m,(1)
minρ∣∣ρ∣∣,s.t.C(Ic+ρ)=l,Ic+ρ∈[0,1]m,(1)
其中
I
c
I_c
Ic是表示向量化的干净(干扰前)图像,
c
c
c就是表明图像是干净的,
l
l
l表示图像的标签,但是
l
l
l是不同于原始标签
I
c
I_c
Ic的,公式(1)是让扰动尽量的小然后可以使得分类器
C
C
C分类错误。公式(1)很难求解,因此转换为公式(2)求一个近似解
m
i
n
ρ
c
∣
ρ
∣
2
+
l
o
s
s
(
I
c
+
ρ
,
l
)
,
s
.
t
.
I
c
+
ρ
∈
[
0
,
1
]
m
,
(
2
)
min_{\rho}c|\rho|_2+loss(I_c+\rho,l),s.t.I_c+\rho\in[0,1]^m,(2)
minρc∣ρ∣2+loss(Ic+ρ,l),s.t.Ic+ρ∈[0,1]m,(2)
公式(2)通过寻找一个最小的 c c c来求得扰动 ρ \rho ρ,因为公式(2)中最小的扰动可以满足 C ( I c + ρ ) = l C(I_c+\rho)=l C(Ic+ρ)=l, 其中 l o s s ( ) loss() loss()是计算损失函数。对于一个由凸函数的分类器,公式(2)可以得到一个精确的解,可是对于深度神经网络,通常不是这样子的。计算的扰动简单地添加到图像中来得到对抗样本。
2.快速梯度符号法
为了计算高效的对抗样本,Goodfellow通过解决以下问题来计算对抗扰动
ρ
=
ϵ
s
i
g
n
(
Δ
J
(
θ
,
I
c
,
l
)
)
,
(
3
)
\rho=\epsilon sign(\Delta J(\theta,I_c,l)),(3)
ρ=ϵsign(ΔJ(θ,Ic,l)),(3)
其中
Δ
J
(
)
\Delta J()
ΔJ()计算的是损失函数的梯度,解决公式(3)的方法称为FGSM。
有趣的是,通过FGSM产生的对抗样本是利用了深度网络模型在高维空间中的”线性“,但是在那时候这样子的模型通常被认为是非线性的。
Kurakin等人表明在公开大规模的数据集Imagenet中,由FGSM产生对抗样本的top-1错误率大概是63-69%。作者也提出FGSM的”一步目标类别“变体。它们使用的是网络为
I
c
I_c
Ic预测的最小可能性类别的标签
l
t
a
r
g
e
t
l_{target}
ltarget,
而不是使用图像在公式(3)的正确标签
l
l
l。计算的扰动从原始图像中减出来成为对抗样本。对于一个带有交叉熵损失的网络,这样子做使得网络预测的
l
t
a
r
g
e
t
l_{target}
ltarget作为对抗样本的标签的概率最大化。这表明一个随机类可以作为戏弄网络的目标类别,可是这样子会较少很多有意思的戏弄,比如说把一种狗误识别为另外一种狗。作者也表明了对抗训练可以改进网络由FGSM和它的变体产生的对抗攻击的鲁棒性。
由FGSM扰动一张图像会增加分类器在所生成图像上的的损失。符号函数会使得损失最大化,然而r 实质上限制了扰动
l
∞
l_{\infty}
l∞范数的。Miyato等人提出了以下方法
ρ
=
ϵ
Δ
J
(
θ
,
I
c
,
l
)
∣
∣
Δ
J
(
θ
,
I
c
,
l
)
∣
∣
2
,
(
4
)
\rho=\epsilon \frac{\Delta J(\theta,I_c,l)}{||\Delta J(\theta,I_c,l)||_2},(4)
ρ=ϵ∣∣ΔJ(θ,Ic,l)∣∣2ΔJ(θ,Ic,l),(4)
公式(4)中的梯度是用
l
2
l_2
l2范数计算的。
Kurakin等人把这种技术称为”快速梯度L2“方法,也提出了另外一个使用
l
∞
l_{\infty}
l∞进行归一化。总体来说地讲,所有这些方法在计算机视觉中有关对抗性攻击的文献中都被看作是“一步一步”或“一次射击”。
3.基本和最小可能类别的迭代方法
“一步”方法通过在方向上取一大步来增加分类器的损失(例如一步梯度上升)。这种方法的一个很直觉的延伸是在每一步之后再取迭代地取很多小步来调整方向。基本迭代方法(BIM)就是这样子,迭代以下公式
I
ρ
i
=
c
l
i
p
ϵ
I
ρ
2
+
a
s
i
g
n
(
Δ
J
(
θ
,
I
p
2
,
l
)
)
,
(
5
)
I_{\rho}^i=clip_\epsilon{I_{\rho}^2+a sign(\Delta J(\theta,I_p^2,l))},(5)
Iρi=clipϵIρ2+asign(ΔJ(θ,Ip2,l)),(5)
I
p
i
I_p^i
Ipi表示的是第
i
i
i个方向的迭代,
c
l
i
p
ϵ
(
)
clip_\epsilon()
clipϵ()表示在参数
ϵ
\epsilon
ϵ剪裁了图像的像素值,
a
a
a表示步长大小,通常是1。Kurakin等人也把BIM扩展到有目标的攻击。
4.JSMA
在很多文献中,通过用限制 l 2 l_2 l2和 l ∞ l_{\infty} l∞来产生对抗样本,但是Papernot等人通过限制扰动的 l 0 l_0 l0范数来产生对抗攻击。这就意味着这个目标是在图上修改一些像素而不是扰动这个图像来戏弄分类器。这算法每次修改一副干净的图像,然后监控变化对分类器的影响。通过利用网络层输出的梯度计算显著性映射来实现监控。
5.一个像素的攻击
对抗攻击一个极端的例子是只修改一个像素来来戏弄分类器。Su等人在每张测试图像中修改了一个像素成功了戏弄三个神经网络。
6.C&W
更常见的是利用对抗性例子的可转移性来产生黑盒攻击。
Chen等人也提出了“零阶优化”(ZOO)的研究,直接估计梯度目标模型来产生对抗样本。这些攻击是受C&W攻击的启发。
7.DEEPFOOL
DeepFoll用迭代的方式计算给定图像的最小范数对抗扰动。
8.普遍对抗性扰动
FGSM,ILCM,DEEPFOOL等算法计算扰动来戏弄单张图像上的网络,Moosavi-Dezfooli等人所计算的普遍性对抗扰动可以以高概率戏弄任何图像上的网络。为了正式地定义这些扰动,我们假设一张干净的图像是从分布
ξ
c
\xi_c
ξc中采样的。如果满足以下条件,扰动是’普遍的‘
ρ
(
C
(
I
c
)
≠
C
(
I
c
+
ρ
)
)
≥
ζ
,
s
.
t
.
∣
∣
ρ
∣
∣
ρ
≤
η
\rho(C(I_c) \neq C(I_c+\rho) )\geq \zeta,s.t.||\rho||_{\rho} \leq \eta
ρ(C(Ic)=C(Ic+ρ))≥ζ,s.t.∣∣ρ∣∣ρ≤η
9.UPSET AND ANGRI
Sarkar等人提出两个攻击黑盒算法,名叫UPSET 和ANGRI。对于n个类,UPSET产生n个图像无关的的扰动,这样子,当扰动添加到一张不属于目标的图像上,分类器就会把归为该目标类。UPSET的力量来自残差生成网络R(),它把目标类别’t‘作为输入和产生一个扰动。整体方法利用这个叫UPSET的网络可以解决下面的优化问题。
I
ρ
=
m
a
x
(
m
i
n
(
s
R
(
t
)
+
I
c
,
1
)
,
−
1
)
,
(
7
)
I_{\rho}=max(min(sR(t)+I_c,1),-1),(7)
Iρ=max(min(sR(t)+Ic,1),−1),(7)
相比于UPSET,ANGRI以一种密切相关的方法计算图像无关的扰动,所以我们提到了原始的工作。来自ANGRI的扰动是用作有目标的戏弄。
10.HOUDINI
Houdini——一种通过生成对抗样本来愚弄基于梯度学习机制的方法,这些对抗性可以根据任务损失进行调整。典型的对抗样本生成算法是根据网络可微损失函数的梯度来计算扰动。然而,任务损失通常不适合这种方法。例如,语音识别的损失任务是基于单词错误率的,不允许直接利用损失函数梯度。Houdini可以为这类任务生成对抗性样本。
11.ATNs
Baluja 和 Fischer 训练前馈的神经网络来产生样本来对抗其他网络和一系列网络。训练的模型叫ATNs。由这些网络产生的训练样本是通过最小化两个部分联合的损失函数得到。第一部分是限制了对抗样本有与原始样本的感知相似性,然后第二个部分目的是让改变目标网络对产生图片的预测。
12.各种各样的攻击
论文对深度神经网络生成对抗样本更深入的技术做了简要的描述。