《Ensemble Generative Cleaning with Feedback Loops for Defending Adversarial Attacks》论文笔记

这是一篇cvpr20的文章,属于对对抗攻击的防御方法。

涉及的问题

深度神经网络在cv领域的应用如日中天,但是神经网络自身具有脆弱性,即通过很小的扰动就能使得最终的结果出现错误。例如现在非常流行的FGSM,BIM,PGD,C&W等攻击手段,都能很大程度上对神经网络进行攻击和破坏。因此研究神经网络的防御机制是非常有必要的。

目前比较流行的防御机制有adversarial training,defensive distillation,Magnet以及feature squeezing。但是这些方法在一些白盒的强攻击(如PGD)下,其performance会大大降低,特别是一些多次迭代产生的对抗本发起的攻击。因此防御机制还有待提高,用以在强攻击下表现出更好的performance。

解决的方法

解决的方法很直观,一句话来说:就是通过一个网络,去除掉对抗攻击中那种高级的噪声模式,以还原出原本干净的图像。这个生成模型的结构和处理流程如下图所示:

在这里插入图片描述

概括来说分为三个部分:(1)Transformed Deadzone:这部分主要用于消灭掉一些sophisticated的噪声信息;(2)蓝色区域:这是一个循环迭代的网络,由两部分组成,其中Generative Cleaning Network负责产生一系列对干净图像的估计,而Accumulative Image Fusion负责将这些估计通过不断迭代的方式融合起来,生成干净的图像。

下图为更加细节的流程:

在这里插入图片描述

首先经过一个卷积层p,随后将feature maps喂入到第一个核心部分(图中黄色区域)。这个操作包括两部分,首先采用离散余弦变换,将图像中的能量集中到很小的一部分区域上,这样大部分区域的参数都非常接近于0。我们知道扰动相对于原像素是一个很小的值,因此当某个pixel很小的时候,其对应的扰动就更加接近于0。然后在经过一个deadzone激活函数,就可以将很小的噪声过滤掉。因此通过这种方式就可以初步的去除掉一些对抗攻击的噪声模式。deadzone激活函数示意图如下:

在这里插入图片描述

随后需要处理残余的噪声模式,由于很多对抗样本都是迭代生成的(如PGD,BIM),因此作者认为也需要迭代的去除掉这些高级的噪声攻击模式。因此Generative Cleaning Network和Accumulative Fusion Network都是一个迭代k次的过程,来一步步地还原出干净图像。U,V,W这三层全卷积网络的作用是在两个图像融合之前,将这些来自不同网络的feature标准化。
在这里插入图片描述
通过公式(1)不断迭代,得到K个不同的干净图像的估计,送入到后续的Accumulative Fusion Network。将这些估计进行融合,也是通过一个迭代的过程,将前面的网络生成的估计与自身产生的输出进行融合,迭代公式如下:
在这里插入图片描述
所以损失函数的形式可以分为三个部分:
在这里插入图片描述
L P L_{P} LP衡量的是恢复出来的 X k ^ \hat{X_{k}} Xk^和干净图像 X X X在特征空间的距离,用于指导还原原始的干净图像,其中特征提取器用的VGG19; L A L_{A} LA衡量的是对抗损失,用于训练Generative Cleaning Network,促进生成与干净图像相近的图像,使得被分类网络正确分类; L C L_{C} LC衡量的是还原出的图像被分成的类别与GT间的交叉熵损失。具体的每部分的公式可见论文Equation(7)-(9)。

实验结果

实验主要是基于CIFAR-10和SVNH两个简单的数据集,分别采用白盒攻击和黑盒攻击,来测试模型在这些攻击下的performance,并与一些经典的防御方法进行对比。

在这里插入图片描述
如上图,对于几个经典的防御方法(如Label smoothing,Feature squeezing等),他们在这些经典的白盒攻击下表现出的performance较低。对于之前SOTA的方法STL,本文的方法也提升了一些performance。特别是在PGD这种迭代攻击的方法下,有大幅的提升,这也表明这种迭代消除参与噪声的方法非常适用于这类迭代产生的对抗样本的攻击。

在这里插入图片描述

在BPDA攻击下(一类非常难以防御的Attack)的结果,文中的方法提升了很大的margin。

在这里插入图片描述
黑盒攻击下其performace在PGD这类迭代的攻击方式下提升较多。

在这里插入图片描述
SVHN数据集下,也是对抵御PGD攻击有了很大的提升,近30个百分点。

在这里插入图片描述
黑盒攻击下performance也有些许提升。

在这里插入图片描述
Fig.5上图表明通过很少的迭代次数就能够收敛,下图反映了扰动的无穷范数的值与performance的关系,可见扰动越大,精确度越低。不过一个很大的扰动足可以被人眼察觉,因此我们希望的是扰动既不太大,同时可以降低较多的精度,因此10左右的设置是不错的。

在这里插入图片描述
表7为消融实验,证实了文中的Transform变换模块,以及Feedback loop涉及的网络,这两部分是缺一不可的。两者都应用上才能达到一个较为高的performance。

在这里插入图片描述
最后是做了一些可视化,可以清楚的发现虽然干净图像和对抗样本在外观上差异不大,但是在他们的特征图上面却有很大的差异。而通过文中的方法还原回去的图像,其feature与原图像非常相似,去除掉了对抗样本中这些有毒信息。

文章优缺点

优点:优点我认为是很明显的,就是这种还原干净图像以防御对抗攻击的想法是非常有启发性的。DCT变换+deadzone激活函数的构思很巧妙,能够有效的初步消除很多sophisticated对抗攻击的噪声模式;同时目前流行的比较strong的对抗样本大多是通过迭代方式产生的,因此作者通过迭代方式一步步消除残余噪声,这个idea也是非常实际且巧妙的。总之我认为这篇文章的优点在于它的启发性很棒。

缺点:也不能说缺点,其实就是自己一些不解的地方。文中的feedback loop将两个网络进行级联,对每一个网络分别进行迭代。从loss中可以看出,Generative Cleaning Network意图恢复出和干净图像像素值相仿的image,而Accumulative Fusion Network目的是得到特征与干净图像相仿的image,从而更好的分类。我的感觉就是可能有些冗余,如果把这两个网络合并成一个有无可行性,即通过一个Generative Cleaning Network,既要求他的pixel-level与干净图像一致,又要求他的feature embedding与干净图像靠拢,同时采用文中的迭代方式,会不会产生一步到位的效果。还有就是没有开源代码,有些理论感觉说得有点牵强,想看看代码怎么写的,这也是个人认为有点可惜的地方。

猜你喜欢

转载自blog.csdn.net/jackzhang11/article/details/109827306
今日推荐