Detecting Backdoor Attacks on Deep Neural Networks by Activation Clustering
网址:https://arxiv.org/abs/1811.03728
一些老生常谈,Abstract、Introduction之类的都已经被我省略,当然我都看了。
本文指出,后门检测是具有挑战性的。因为后门触发器是未知的,只有Adversaries知道。因此本文提出了Activation Clustering(AC),也就是激活聚类,对插入DNN的后门样本进行检测。这种方法能够分析训练数据的神经网络激活状况,以判断其是否中毒,如果中毒,分析哪些数据点是有毒的。
后门攻击
简单介绍后门攻击。
假设一个adversary,他的目的是操纵一个神经网络模型,使得模型唯一错误分类预设的输入,到预设的输出,同时对其他输入能够正确分类。
攻击者能够操纵部分输入数据和标签,但是不能操纵训练过程和最终的模型和预测过程。
Activation Clustering
背后的直觉是:当后门样本和正常样本,被中毒分类器分类到同一个类别,其背后的原因是不同的。
对于对应目标类的正常样本,网络会识别到他从目标类中学习到的特征。
在后门样本中,网络会识别的是原来的类(也就是正确的类)的特征,和后门触发器的特征。
这种不同在网络输出的激活会非常不同。
算法如图。
输入的是不可信的数据集,也就是这个方法需要获得完整的用于训练的数据集。实际上在某些时候并不能得到。
然后训练DNN模型。
然后将数据集输入模型,将模型的最后一层输出的值展开为一维,送入A_s。
然后对A进行降维。然后聚类。然后分析。然后没了。
第一种分析方法是:不使用有问题的聚类的数据,重新训练一个模型,来进行分析。新模型被训练好后,会用于对有问题的聚类的数据进行分类。
但是这种方法太费资源了,还要重新聚类。因此提出第二种方法,直接比较聚类中数据的size。简单来说,如果是中毒样本,其占比往往比较少。但是如果是正常的样本,那么两个簇往往数据数量相近。
后门修复
两种方法
1、直接剔除有毒数据,从头重新训练一个新模型
2、将有毒样本与正确的类别关联,然后对中毒模型进行微调
实验
我省略
评价
很简单的方法。
没什么好说的。