type
status
date
slug
summary
tags
category
icon
password
Abstract
在本文中,我们首次提供了针对dnn后门攻击的有效防御。我们从之前的工作中实现了三个后门攻击,并使用它们来研究两种有前途的防御,修剪和微调。
我们表明,这两者本身都不足以抵御狡猾的攻击者。然后,我们评估精细修剪,修剪和微调的组合,并表明它成功地削弱甚至消除了后门,即在某些情况下,将攻击成功率降低到0%,而干净(非触发)输入的准确性仅下降0.4%。我们的工作为防御深度神经网络中的后门攻击提供了第一步。
Method
Pruning Defense
Gu的研究发现有部分神经元在trigger输入时会激活,而clean input却不会激活,我们称这类神经元为backdoor neurons。这一特性可以被攻击者用户来识别后门和trigger的误操作行为。
这个发现表明,防御者可以通过移除这些在clean input时休眠的神经元来进行防御。我们把这种操作称为pruning defense.
Pruning defense的流程如下:防御者首先使用从验证集中获得的clean input来测试拿到的DNN,记录下每个神经元的激活程度。然后防御者迭代地根据平均激活程度的增序修剪DNN中的神经元,然后记录下每次迭代后的修剪后的网络的准确率。当在验证集上的accuracy低于预定义的门限时,防御就结束了。
实际中,我们大致在三个阶段进行对这种操作进行了观察。第一阶段是观察激活。第二阶段是修剪对backdoored input会激活的神经元;第三阶段是修剪对clean input会激活的神经元,这会降低clean input的accuracy,此时防御就终止了。
Pruning-Aware Attack
更聪明的攻击者需要考虑一个问题:可以将clean,backdoor behaviour都投影到相同部分的神经元上吗。通过我们提出的pruning-aware attack就可以实现这一点。
整个攻击分为四步。
(攻击者针对修建攻击设置的诱饵神经元)
- 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-tuning
Pruning defense只要求防御者在验证数据上通过对每个validation input进行前向传播测试DNN。而与此相反,DNN的训练要求大量的前向传播和后向传播以及复杂的梯度计算。因此DNN的训练比DNN的评估更耗时。现在我们假设防御者不想经受从零开始训练DNN的花费。防御者可以使用clean input对由攻击者提供的DNN进行fine-tune。fine-tune一开始是在迁移学习中被提出来的。(微调)
Fine-tuning使用预训练的DNN权重来初始化训练(而不是随机初始化)以及更小的学习率(因为最终的权重应该是和预训练的权重比较接近的)。所以,fine-tuning从计算损耗的角度来看仍是一个可行的防御策略,尽管相比于pruning来说更耗费计算能力。
但是fine-tuning在面对使用baseline attack训练得到的backdoored DNN并不总是有效。
原因如下:
Clean input在backdoored DNN是上的accuracy并不依赖于后门神经元的权重,因为他们在clean input时是休眠的。因此,fine-tuning过程对于更新Backdoored neuron的权重是没有刺激的,只会使其保持不变。
的确,对于DNN tuning通过使用的梯度下降算法只会更新至少会被一个input激活的神经元的权重。另外,这也说明通过fine-tuning防御是不会让backdoor neuron的权重发生变化的。
Fine-Pruning Defense
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会导致涉及后门行为的神经元的权重被更新。
因此,在经过Pruning之后再Tuning可以避免诱饵攻击,这是又其本身攻击性质导致的。
Discussion
在稀疏网络上的Fine-tuning是无效的因为后门神经元不是由clean data激活,所以他们的梯度接近于0,并且他们很大程度上不会被fine-tuning影响。但是,这些正是要修剪的神经元,因为它们在干净数据上的激活率很低。只有我们prune+fine-tune,才能强迫攻击者将它的后门专注于相对小部分的神经元中,这样fine-tuning就可以在编码后门trigger的神经元上起作用
- Author:faii
- URL:https://www.faii.top/article/4bf433e8-c8f0-4cae-989e-e244db875976
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts