论文网址:https://arxiv.org/abs/1812.03411
国内镜像:https://xxx.itp.ac.cn/abs/1812.03411
这篇主要解决的是对抗攻击中出现的问题。没有好好研究对抗攻击中具体的算法,就大概知道是怎么回事。
对抗攻击有很多种类,从攻击环境来说,可以分为黑盒攻击,白盒攻击或者灰盒攻击。
从攻击的目的来说,可以分为有目标攻击和无目标攻击。
从扰动的强度大小来说,可以分为无穷范数攻击,二范数攻击和0范数攻击(下列公式中的x表示的是扰动大小)。
∥ x ∥ p = ( ∑ i = 1 n ∣ x i ∣ p ) 1 p \lVert x \rVert _{p} =\lparen \displaystyle\sum_{i=1}^n |x _{i}| ^p \rparen ^\frac 1 p ∥x∥p=(i=1∑n∣xi∣p)p1
从攻击的实现来说来说,可以分为基于梯度的攻击,基于优化的攻击,基于决策面的攻击或者其他。
用了非局部均值或其他滤波方法对特征图进行降噪
在ImageNet上,经过10轮的PGD白盒攻击,最先进的算法只有27.9%的正确率,而我们的方法达到了55.7%;经过2000轮的PGD白盒攻击,依旧有42.6%的正确率
首先是作者的出发点,观察对抗攻击中生成的“脏”图的特征图以及他本身,可以发现对抗扰动虽然在像素空间中很小,但是会导致网络的特征图中出现大量的“噪声”。
这些干扰要么被认为是人类察觉不到的,要么被认为是不会妨碍人类识别视觉内容的噪音。
自然而然就会想到对特征图进行降噪,而作者的消融实验表明,使用非局部均值滤波、均值滤波、中值滤波和双边滤波进行特征去噪提高了对抗的鲁棒性,表明特征去噪是一个很好的设计原则。
下图是一个普适的特征图去噪模块:
对应着有四种实例化方式:
y i = 1 C ( x ) ∑ ∀ j ∈ λ f ( x i , x j ) ⋅ x j y _{i} = \frac{1}{C(x)} \sum_{\forall j \in \lambda} f(x_{i}, x_{j}) \cdot x_{j} yi=C(x)1∀j∈λ∑f(xi,xj)⋅xj
y i = 1 C ( x ) ∑ ∀ j ∈ Ω ( x ) f ( x i , x j ) ⋅ x j y_{i} = \frac{1}{C(x)} \sum_{\forall j \in \Omega(x)} f(x_{i}, x_{j}) \cdot x_{j} yi=C(x)1∀j∈Ω(x)∑f(xi,xj)⋅xj
双边滤波与非局部均值滤波唯一的不同在于j的取值范围 Ω j \Omega j Ωj
是一个局部区域(例如3 * 3的patch)。
最简单的去噪方法,也可以当作步长为1的平均池化。
y i = m e d i a n { ∀ j ∈ Ω ( i ) : x j } y_{i} = median \{ \forall j \in \Omega (i) : x_{j} \} yi=median{∀j∈Ω(i):xj}
其中
f ( x i , x j ) f(x_{i}, x_{j}) f(xi,xj)
也对应着两种方法:
f ( x i , x j ) = e 1 d θ ( x i ) T ϕ ( x j ) T f(x_{i}, x_{j}) = e ^{\frac{1}{\sqrt d} \theta (x_{i}) ^T \phi (x_{j}) ^T } f(xi,xj)=ed1θ(xi)Tϕ(xj)T
C = ∑ ∀ j ∈ λ f ( x i , x j ) C = \textstyle\sum_{\forall j \in \lambda } f(x_{i}, x_{j}) C=∑∀j∈λf(xi,xj)
其中,d是通道的数量。
f ( x i , x j ) = x i T x j f(x_{i}, x_{j}) = x_{i} ^T x_{j} f(xi,xj)=xiTxj
C = N C = N C=N
其中,N是总像素数。