介绍
后门攻击是一类针对深度学习的攻击,其主要组成部分有两个:
- 触发器
- 带后门的模型
当模型接收到带有触发器的输入,便会导致对应的触发结果。
并且,一但没有触发器,模型的表现和正常的模型相似。
关于后门攻击更多的介绍,可以参考我的这篇文章。
今天主要讲的是来自于2019年SP的一篇文章“Neural Cleanse: Identifying and Mitigating Backdoor Attacks in Neural Networks”
作者基于一个重要的假设:“带有后门的模型所对应的触发器,要比利用正常模型生成的‘触发器’要小得多”
如下图所示:
在正常模型之中,C类别想要被分类到A类别,所需要操作的最小变化量记做。
在后门模型中,沿着触发器方向(Trigger Dimension),所需要操作的最小变化量会小于
这个直觉的想法是整篇文章的精髓所在
顺着这个直觉,我们直接地可以想到,那只要我们对类别进行逆向,反向地构造出每个类别的触发器,看看这些触发器的大小,不就可以知道哪些类别可能被植入后门了。
如何反向构造可能的触发器
首先给出带触发器的输入的形式:
其中是触发器,是平滑系数,是输入。
通过求解下述优化问题,得到一个触发器和对应的系数
求解
其中是触发器触发的目标类别。
如何利用所构造的触发器进行后门检测
有了这些构造的可能的“触发器”,利用L1范数来描述触发器的大小,基于之前的假设,我们就可以进行异常检测了。
这里文章使用的是绝对中位差(Median Absolute Deviation,MAD)
其中是取中位数,是均值
利用绝对中位差可以计算出一个异常指标(anomaly index, a-index)
当这个指标大于2的时候,就有95%的概率是异常值
Anomaly Index如上图所示,被植入后门的模型的异常指标都要正常模型要高。
L1范数可以看到,对于被植入后门的模型,所逆向生成的触发器,L1范数是比较小的。
裁剪神经元,让后门失效!
文章发现了触发器通常会使得神经元的激活值偏高,这里取的是倒数第二层的神经元。
平均的激活值逆向出来的触发器和真实的触发器,所导致的激活值都比正常图片要高,我们就可以通过移除较高值来让后门失效。
裁剪对于正确率和后门的影响如上图所示,裁剪会令正常任务的正确率降低,同时使后门的成功率降低。可以看到裁剪比例达到0.2左右的时候已经可以使得后门完全失效,同时正确率降低的幅度也不多。
网友评论