对Fine-Pruning: Defending Against Backdooring Attacks on Deep Neural Networks的简单理解

本文主要:

因为在我们训练模型时,由于我们所需要的数据集太大,对于计算机的配置要求太高,时间消耗太大,所以我们一般会将模型的训练过程外包给第三方,而会存在着有着恶意想法的第三方,会在给我们训练的模型上安上后门,影响我们模型的判断,这时候就需要我们运用不同的方法来‘消毒’。
作者自己给自己设计了新型的后门攻击并且用了自己设计的fine-pruning(a combination of pruning and fine-tuning)方法去消除这种后门。

后门攻击

  • Inference-time attacks fool a trained model into misclassifying an input via imperceptible, adversarially chosen perturbations.
  • training-time attacks (known as backdoor or neural trojan attacks)
  • performing well on its intended task (including good accuracy on a held-out validation set)

既是

  • 攻击者在训练时通过给训练数据投毒,来给我们的模型植入后门,而训练好的模型会在个别情况下影响我们的判断,而且模型在测试集上的表现也很好。

攻击者的目的:

1,制作后门
2,不影响模型的得分

因为攻击者负责训练过程,所以攻击者有着训练过程的所有权限。

后门攻击举例(本文分别用了人脸识别,交通标识识别,语音识别来举例后门攻击)
在这里插入图片描述这里便是使模型对带着眼镜的人进行错误的判断。(带着眼镜就是使后门的神经元激活的条件)
在这里插入图片描述
对于识别到的数字0的误判。
在这里插入图片描述对于识别到的STOP图像的误判。

这些后门的设计都是通过在训练模型时,使用在训练集上投毒的方法来实现的,就是在庞大的训练集上,抽出百分比的部分,进行投毒操作,然后与正常的训练集一起放入模型参加模型的训练。

对于不同的攻击手段所用的不同的防御手段

1,对于简单的在训练集上投毒手段,包括添加任意数量的中毒训练输入,修改任何干净的训练输入,调整训练过程(例如,神经元的个数, 训练批次大小、学习率等),甚至手工设置神经元的权重。

对于这种投毒方法,我们可以用Pruning Defense方法防御。

Pruning Defense 因为后门数据所激活的神经元只受后门激活,而在干净数据下他们是休眠的,所以我们记录每个神经元的平均激活。然后,防守者以增加平均激活顺序对DNN的神经元进行迭代修剪,并记录修剪后的准确性。 网络在每次迭代中。当验证数据集的准确性下降到预定阈值以下时,防御将终止。

简单来说就是通过输入干净的数据来测试,去掉激活后门的神经元,因为后门数据所激活的神经元只受后门激活,而在干净数据下他们是休眠的。

(以前的Pruning操作只是为了减少模型的消耗,而在这里我们第一次将这种方法用在了安全领域。)

2.Pruning-Aware Attack

Pruning-Aware Attack: 这种攻击方法分为以下步骤:

1,先用干净的训练集来训练模型
2,对训练好的模型进行减枝
3,用带有后门的训练集来训练减枝后的相同模型。
4,将后门训练模型与干净训练模型结合,并且将第二部中去掉的神经元补充回来(这些神经元作为诱导神经元)。
5,如果训练好的模型的判断精度很低或者没有后门功能的话则通过增加神经元的方法来加强他的功能。
在这里插入图片描述

因为这种攻击方法有着诱导神经元以及他们的后门神经元与正常神经元是重叠的,所以如果我们用Pruning Defense方法的话,是不能有效的去除后门的。

如果我们单纯的用Fine-tuning的方法也没有很大成效,因为后门神经元只受特定输入数据的激活,在正常标准的输入数据下,我们是无法激活这些神经元的,所以我们没法用这种方法来调整他们的权重。

(提一下Fine-tuning
这种方法是一种训练深度神经模型的技巧,既是我们得到一个与我们目标模型相似的模型之后(这个模型的隐藏层,神经元个数等等参数与我们的目标一致),我们可以用我们的标准数据输入,再次训练模型,进行模型参数的微调整,在这个微调整中,我们的学习率要设置的比较低,由此来获得我们所需要的模型。)

据此,作者使用Pruning和Fine-tuning结合,研究出了Fine-Pruning Defense方法:

Fine-Pruning Defense(作者这篇文章的重点)

1.对攻击者放回的模型进行修剪操作。(去除诱导神经元)

2.修剪完毕之后用干净的输入来微调神经元上的权重。(因为后门神经元与我们正常的神经元是重叠的,所以我们可以使用干净的输入来微调我们的神经元,使他们的权重发生改变,以此来控制我们后门控制的权重)

下面是效果展示表:
在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值