backdoor attack and defense总结

近期在读一些关于backdoor(Trojan) attack in deep neural networks(DNN)相关的论文,读着读着就容易忘记论文的内容,所以需要写些东西记录下来,接下来会写一系列有关backdoor attack and defense的文章, 因为博主也是初学者,所以有很多理解不到位的地方,请多多包涵。极力推荐阅读这篇综述,很好地总结了最近几年该领域的发展:Backdoor Attacks and Countermeasures on Deep Learning: A Comprehensive Review

简介

backdoor attack或者说Trojan attack,译为后门攻击或者特洛伊攻击,它是对于神经网络的一种攻击方式,它能够通过操纵输入使模型出现错误识别。举个例子,在交通标志的识别任务中,一个stop的标志牌原本能够被神经网络正确识别为停止,但如果在stop的标志牌上贴上一朵花的图案,它可能会被模型错误识别为加速。

以图像分类任务为例说明backdoor attack的流程,我们把能够诱导模型出现误分类的图案、像素块(不仅仅只有这几种,后续会提到)称之为trigger(触发器),我们把带有trigger的输入样本称为poisoning sample(染毒样本), 把没有trigger的输入样本称为benign sample(良性样本) 。首先我们得生成trigger,然后从benign sample当中选取一部分给它们附加上trigger并修改它的label(有些方式不用修改)变成poisoning sample,然后将它们作为训练集进行模型的训练,经过训练后后门就成功嵌入到了模型当中。在测试的环节,没有trigger的样本会被模型正常的分类,而带有trigger的样本会被误分类到指定的类别当中

backdoor attack pipeline

对比

对神经网络的攻击还有很多,比如data poisoning attack, adversarial attack等。 相较于data poisoning attack, backdoor attack更具有隐蔽性,因为此种攻击对于良性样本是能够正确进行分类,只有携带有trigger的样本才会对被误分类,而前者攻击方式会进行无差别攻击,它的目标是降低模型的分类准确率,而后者攻击方式的目的是在不显著降低模型准确率的情况下对染毒样本实现误分类。而两种攻击方式的共同点在于它们都是在模型训练之前需要将染毒样本注入训练集中。

而adversarial attack(对抗攻击),它的目标是生成能够使模型误分类的adversarial sample(对抗样本),它与backdoor attack的一个重要区别在于,它的攻击阶段在模型建立之后,而backdoor attack是在模型建立之前。

定性分析

backdoor attack能够成功的依据在于神经网络的capacity足够大,它的“学习能力”过于强了,即使是一个小小的trigger它也会将它学习到并认为这是某一类的特征,所以使得所有带有trigger的样本都被误分类到某一类当中,而不管这些样本其他区域是什么样的。可以这么说,神经网络比较蠢,容易一叶障目,它看到某些带有trigger的样本是属于某一类的,就认为所有带有trigger的样本都是属于这一类的。

虽然从输入样本层面来看,良性样本与染毒样本只有一个trigger的区别,但是在特征空间层面上会出现较大的区别,所以使得模型出现了误分类。但是在被误分类的那一个类别当中,原本属于那一类的样本与通过染毒方式被误分类的样本在特征空间上是存在不同的。这个很好理解,比如在猫这一个类别当中,原本属于猫的样本,学习到的是可能是有两只尖尖耳朵,四条腿,有尾巴是猫,而原本不是猫但是加上trigger被误分类为猫的样本,模型学习到的就是有trigger的就是猫。这两种判断方式是不同的,因此在特征空间的表示上也是不一样的,在模型神经元的激活上也是不一样的,这就为抵御后门攻击提供了思路。

攻击方式

攻击分类

  • 按是否改变染毒样本的类别可以分为clean label attack与poisoning label attack。对于前者,在输入样本加上trigger之后并不改变它原来的类别,而后者会改变样本的类别。前一种攻击方式更具有隐蔽性,因为它并不改变类别,所以人们更难以发现。前者需要我们在想要误分类的类别当中进行染毒,因此需要获取目标类别的良性样本,而后者可以对任意类别的样本进行染毒。
  • 按是否误分类到指定类别可以分为targeted attack与untargeted attack。 对于前者,带有trigger的样本会被误分类到指定的类别,而后者会随机误分类到其他类别。一般而言我们想要的是targeted attack,因为这种攻击方式更具有目的性,能够诱导模型误分类到我们想要的类别,实用价值更高。
  • 按threat model(威胁模型)进行分类可以分为black-box attack与white-box attack。 threat model指的是在攻击者对于攻击所做的一些前提性假设,例如是否知道模型的结构与具体参数,是否能够接触到训练数据,是否能够获取到标签信息等,threat model的条件越苛刻,攻击的普适性就差,而条件越宽松,说明攻击的普适性越好,攻击能力更强。对于black-box attack而言,攻击者无法得知模型的结构与具体参数,而white-box attack假设攻击者能够得到模型的结构与具体参数。因此black-box attack对攻击方式提出了更高的要求,而white-box attack通常是对网上公布的预训练模型植入后门,然后再发布到网上。在阅读相关论文的时候,theat model是需要特别关注的内容,只有知道其攻击成立的条件才能够更好地评估该种攻击方式。
  • 按是否能将所有带有trigger的样本误分类可以分为multi-source attack与specific-source attack。对于specific-source attack,只有来自具体某一个类别的样本加上trigger后才能够被误分类,而multi-source attack能够将所有带有trigger的样本误分类。specifc-source attack是强度很高的攻击方式,现有的很多防御方式都无法防御这种攻击。

攻击目标

后门攻击的目标是保持模型在良性样本上的准确率,增大在染毒样本上误分类的成功率,增强攻击的隐蔽性。因此当前该方向研究的主要内容在trigger的生成算法,想要去寻找更不容易被侦测到,攻击前提更加宽松的trigger。

tigger种类

论文当中所提到trigger有以下四种

  • 像素块。这是最开始提出后门攻击的时候的trigger,在图片的右下角加上像素块作为trigger。
  • 固定样式的图案。比如一朵小花,一副眼镜,hellokitty等。这种trigger相较于单纯的像素块隐蔽性有所提高
  • 改变某些像素点的强度。改变图片某些区域像素点的强度也能够作为一种trigger的方式
  • 添加对抗噪声。
  • 叠加图片。在图像中叠加另外一张图片,可以增加叠加图片的透明度来增大隐蔽性。

防御方式

防御需要对后门攻击有着更深入的了解,后门攻击由于具有很强的隐蔽性,所以在研究前沿中,有很多后门攻击的方式,但是防御方式却很少,防御的研究往往落后于攻击。 防御方式通常基于染毒样本与良性样本在特征空间上不同,以及在神经网络上神经元激活的不同这两个特点。有下面三类防御方式

  • 对输入样本进行预处理
    • 翻转、剪裁、缩放
    • 加噪声
    • 用干净样本训练autoencoder
  • 逆向工程生成trigger
    • Neural Cleanse生成
    • GAN生成
  • 特征空间
    • AC聚类算法

猜你喜欢

转载自blog.csdn.net/SJTUKK/article/details/108914536