<Fine-Pruning: Defending Against Backdooring Attacks on Deep Neural Networks>阅读笔记

Abstract

提出了第一个针对后门攻击的有效的方案。我们根据之前的工作实现了三种攻击并使用他们来研究两种有希望的防御,即Pruning和fine-tuning。我们的研究表明,没有一个可以抵御复杂的攻击。我们然后评估了fine-pruning,这是结合了Pruning和fine-tuning,结果表明它可以削弱或者消除后门攻击,在一些例子中可以攻击成功率为0%,而良性输入的准确率下降只有0.4%。

1 Introduction

我们发现后门利用的是神经网络中的spare capacity,所以我们很自然想到用pruning做防御。pruning防御措施减少了被植入后门的王珞丹额size,通过修建那些在良性输入时会休眠的神经元,最终会使得后门行为失效。
尽管pruning在三种后门攻击上是成功的,不管我们设计了更强大的pruning-aware攻击(将clean和backdoor behavior集中到同样的神经元上),这可以规避Pruning防御。最后为了防御我们提出的这种更强大的攻击,我们设计了防御方案,可以执行fine-tuning,这是在干净的训练集上进行一小部分的局部重训练。尽管fine-tuning提供了一定程度的保护,我们发现将两者结合在一起,得到的fine-pruning在防御时是最有效的。我们需要指出,在迁移学习中,已经有fine-pruning这个术语了,不过是在安全场景下,第一次评估了迁移学习。

2 Background

2.1

2.2 Threat model

我们假设攻击者是进行白盒攻击,对训练过程和训练数据都完全的权限(但是没有held-out valadation set)。因此,攻击者可以添加任意数量的毒化样本,修改任何良性训练样本,调整训练过程(如epoch的数量,batch size,learning rate等),甚至可以手动修改设置的权重。
这里需要注意,我们对攻击者的能力做了更强的假设,在研究攻击的文章中,假设没这么强,这是很正常的,对于攻击来说,攻击者能力越受限制,说明越弱的攻击者也能造成严重的危害。我们的工作是做防御,所以我们把攻击者能力假设强了,说能表明我们工作的有效性。
2.3 Backdoor Attack
Face Recognition Backdoor
通过一对特制的太阳镜针对人脸识别系统进行了定向后门攻击。
<Fine-Pruning: Defending Against Backdooring Attacks on Deep Neural Networks>阅读笔记

Face Recognition Network:这里用的baseline DNN是先进的DeepID网络,带有一个共享卷积层,然后是两个并行的子网络,它们会被喂给最后的两个全连接层。网络参数如上图所示。
Speech Recognition Backdoor
这种攻击下的trigger是添加在干净声音样本上的特殊的噪声模式。下图可以看到clean和backdoored digit的声谱图
<Fine-Pruning: Defending Against Backdooring Attacks on Deep Neural Networks>阅读笔记

这里的baseline DNN是AlexNet,带有5个卷积层之后是3个全连接层。
Traffic Sign Backdoor
这里是实施了针对交通标志识别的非定向攻击。原来的系统会将交通标志识别为停止、限速或者警示,而在后门攻击后,交通标记会被误分类为剩下两类中的任一类。
<Fine-Pruning: Defending Against Backdooring Attacks on Deep Neural Networks>阅读笔记

使用的是Faster-RCNN

3 Methodology

3.1 Pruning Defense

Gu的研究发现有部分神经元在trigger输入时会激活,而clean input却不会激活,我们称这类神经元为backdoor neurons。这一特性可以被攻击者用户来识别后门和trigger的误操作行为。我们重复了这个实验,在人脸识别最后一个卷积层上的平均激活如图4所示,backdoor neurons可以在4b中很容易看到
<Fine-Pruning: Defending Against Backdooring Attacks on Deep Neural Networks>阅读笔记

这个发现表明,防御者可以通过移除这些在clean input时休眠的神经元来进行防御。我们把这种操作称为pruning defense.
Pruning defense的流程如下:防御者首先使用从验证集中获得的clean input来测试拿到的DNN,记录下每个神经元的激活程度。然后防御者迭代地根据平均激活程度的增序修剪DNN中的神经元,然后记录下每次迭代后的修剪后的网络的准确率。当在验证集上的accuracy低于预定义的门限时,防御就结束了。
<Fine-Pruning: Defending Against Backdooring Attacks on Deep Neural Networks>阅读笔记

我们注意到这种方法在之后的工作不是出于安全原因就被提出来了,当时是为了减少评估DNN的计算损耗。之前的工作发现修剪一部分神经元是不会对分类精确率造成损失的。
实际中,我们大致在三个阶段进行对这种操作进行了观察。第一阶段是观察激活。第二阶段是修剪对backdoored input会激活的神经元;第三阶段是修剪对clean input会激活的神经元,这会降低clean input的accuracy,此时防御就终止了。
这三个过程如下所示

<Fine-Pruning: Defending Against Backdooring Attacks on Deep Neural Networks>阅读笔记

对Pruning defense的经验性评价:
DNN更后面的卷积层编码了从前面层中学到的特征,所以修剪更后面的卷积层的神经元对网络的行为有更大的影响。从结果来看,我们就是修建了网络的最后一个卷积层。
从上图的实验结果,我们可以看到:
一旦有足够神经元被剪枝后,会看到后门攻击成功率会急速下降。
尽管后门攻击成功率下降了,但是clean input的准确率并没怎么下降
一旦分类准确率下降超过4%那么久终止防御,此时生成的就是修剪后的DNN
Discussion:
从防御者角度来看,pruning defense有一些不错的性质,首先它对计算友好,只要求攻击者能够使用验证数据集对给出的DNN进行测试.经验上来看,pruning defense做了个trade-off,也就是说在攻击成功率显著下降的同时最小化clean input的分类准确率的下降。
不过这种防御方法也引出了我们称之为pruning-aware attack的升级版的攻击策略。

3.2 Pruning-Aware Attack

更聪明的攻击者需要考虑一个问题:可以将clean,backdoor behaviour都投影到相同部分的神经元上吗。通过我们提出的pruning-aware attack就可以实现这一点。
整个攻击分为四步。

<Fine-Pruning: Defending Against Backdooring Attacks on Deep Neural Networks>阅读笔记

Step1 攻击者在clean training dataset上训练一个baseline DNN
Step2 攻击者通过消除休眠的神经元来修剪DNN(修剪的神经元的个数是在攻击者程序中设定好的参数)
Step3 攻击者重训练修剪后的DNN,但是这次是使用毒化后的训练数据.如果修剪后的网络没有capacity去学习clean和backdoor behaviours(如攻击率低或者clean input的准确率低)则攻击者重新在修剪后的网络中建立一个神经元,直到它满足要求。
在Step3最后,攻击者得到了一个可以同时实现backdoored input的misbehaviour和clean input的desired behaviour的修剪后的DNN.然而,攻击者不会返回给防御者修剪后的DNN。注意,攻击者只可以修改DNN的权重而不能修改超参数。在Step 4,攻击者通过将所有被修剪掉的神经元使用特定的weight,bias放回去,“de-prune”修剪后的DNN。
然而,攻击者必须要确保重新被插入的神经元在clean input时也保持休眠(这可以通过减少重新被插入的神经元的bias实现)。注意,de-pruned神经元和在原本的训练得到的DNN是一样的权重。此外,他们在恶意地或者诚实的DNN中都保持休眠。因此,de-pruned神经元的特性就使得不会让防御者相信DNN是被恶意训练过的。
这种攻击的直觉是,当防御者尝试修剪网络,那些被选中修剪神经元是已经在step-2中被修剪过的神经元。因此,因为攻击者可以在step3中将后门行为编码到一部分un-pruned neurons,所以在面对backdoored input时模型的后门行为是不会受到防御者影响的。
本质上来看,step2中被修剪又在step4中被加上的神经元就是专门为pruning defense做的诱饵。
下图展示了最后一个卷积层的平均激活情况
<Fine-Pruning: Defending Against Backdooring Attacks on Deep Neural Networks>阅读笔记

比起之前的那幅图,可以看到:对于clean input,backdoored input,大部分神经元都是保持休眠;clean input和backdoored input的激活都限于神经元的同一个子集。
从实验结果我们可以看到:
通过baseline和pruning-aware植入后门的DNN在面对clean input时的分类准确率是一样的,攻击成功率也是一样的
面对这种攻击时,pruning会降低分类accurac,但是攻击成功率保持不变;或者两者同时降低。

3.3 Fine-Pruning Defense

Pruning defense只要求防御者在验证数据上通过对每个validation input进行前向传播测试DNN。而与此相反,DNN的训练要求大量的前向传播和后向传播以及复杂的梯度计算。因此DNN的训练比DNN的评估更耗时。现在我们假设防御者不想经受从零开始训练DNN的花费。
防御者可以使用clean input对由攻击者提供的DNN进行fine-tune。fine-tune一开始是在迁移学习中被提出来的。Fine-tuning使用预训练的DNN权重来初始化训练(而不是随机初始化)以及更小的学习率(因为最终的权重应该是和预训练的权重比较接近的)。Fine-tuning比从头开始训练快得多,举个例子,我们在AlexNet上使用fine-tuning在一小时内结束,而从零开始需要6天。所以,fine-tuning从计算损耗的角度来看仍是一个可行的防御策略,尽管相比于pruning来说更耗费计算能力。
但是如下表所示,fine-tuning在面对使用baseline attack训练得到的backdoored DNN并不总是有效。
<Fine-Pruning: Defending Against Backdooring Attacks on Deep Neural Networks>阅读笔记

原因如下:
Clean input在backdoored DNN是上的accuracy并不依赖于后门神经元的权重,因为他们在clean input时是休眠的。因此,fine-tuning过程对于更新Backdoored neuron的权重是没有刺激的,只会使其保持不变。的确,对于DNN tuning通过使用的梯度下降算法只会更新至少会被一个input激活的神经元的权重。另外,这也说明通过fine-tuning防御是不会让backdoor neuron的权重发生变化的。

Fine-pruning:这是结合了pruning和fine-tuning。首先会修剪DNN,然后fine-tune修剪后的网络。对于baseline attack,pruning defense移除了后门神经元,fine-tuning恢复了通过Pruning导致的clean input的accuracy的下降。在另一方面,pruning步骤只是移除了pruning-aware attack放置的诱饵neuron,然而,随后的fine-tuning会消除后门。为什么呢,我们前面说过,被backdoor input激活的神经元也会被clean input激活。作为结果,使用clean input的fine-tuning会导致涉及后门行为的神经元的权重被更新。

4 Discussion

在稀疏网络上的Fine-tuning是无效的因为后门神经元不是由clean data激活,所以他们的梯度接近于0,并且他们很大程度上不会被fine-tuning影响。但是,这些正是要修剪的神经元,因为它们在干净数据上的激活率很低。只有我们prune+fine-tune,才能强迫攻击者将它的后门专注于相对小部分的神经元中,这样fine-tuning就可以在编码后门trigger的神经元上起作用。
与之前的对传统软硬件的研究相比,可以自动移除后门是很奇妙的。不像传统的软硬件,神经网络在一旦训练数据和模型架构被定义好后就不需要人类经验了。作为结果,像fine-pruning这种策略(涉及到对网络功能的部分重训练)是可以实现自删除的。
我们可以将fine-tuning作为从一系列初始化参数进行正常训练的过程的延续。在对抗性环境下,初始化参数是由攻击者决定的。因此,如果攻击者想要在应对fine-pruning时维持攻击能力,他们需要提供仍然包含他们的后门的邻近局部最小值(从相对于clean dataset的损失平面来说)。我们现在不能保证这种参数不会被找到,然而我们有更强的fine-pruning版本,我们可以在fine-pruning前在参数中添加一些噪声。在极限情况下,必须存在一些可以让网络忘记后门的噪声,因为添加足够多的噪声和使用随机初始化重零开始重训练网络是一样的。

4.1 Threats to Validity

本文中研究的后门攻击都是共享相同的下面的模型架构:带有Relu激活函数的卷积神经网络。CNN被广泛使用,但不是唯一的。比如带有LSTM的RNN在比如自然语言处理任务这种序列处理任务很常见。我们不能确保我们的防御对所有深度网络都有效。

在本文中我们做出了下列贡献:
-我们复现了针对交通信号、语音识别、面部识别三种后门攻击
-我们评估了两种很自然可以想到的防御方式pruning,fine-tuning,没有一种可以对应复杂攻击者防御
-我们设计了一个新的pruning-aware后门攻击,和之前的paper不同,我们确保良性输入和毒化输入都会激活相同的神经元,这将让后门更难被检测
-经过我们的评估,fine-pruning是目前最成功的防御方式

5 Related Work

我们讨论两类相关工作:针对典型机器学习(非DNN)的投毒攻击方面的早期工作,以及近期的神经网络中的后门方面的工作。
由于训练过程被破坏,所以通过后门攻击可以在trigger的形式上有很大的灵活性。我们不期待对于对抗样本的防御措施会对后门攻击有效,在某种程度上来讲,也是正确地从他们的毒化后的训练数据中学得的。
我们的工作对于现在世界中模型的后门攻击是完全有效的防御。

6 Conclusion

上一篇:论文笔记系列-Neural Network Search :A Survey


下一篇:Fundamentals of Deep Learning – Starting with Artificial Neural Network 翻译