Detecting AI trojans using meta neural analysis
Detecting AI trojans using meta neural analysis abstract。
Architecture
在介绍本文架构之前首先介绍一下 元神经元分析(meta neural analysis,mna)的基本概念,具体流程如下图:
与传统的网络不同, mna 不以图像、文本等数据为输入,而是以神经网络为输入训练一个可以预测目标网络属性的分类器,例如成员推理、模型属性推理、训练数据推理等等。具体操作步骤如下:
- 训练两类影子模型,一类包含属性,一类不包含属性
- 合成影子模型数据集
- 使用该数据集训练一个元分类器
本文具体步骤如下:
-
生成影子模型
- 对于良性模型,设定不同的模型初始化参数,随机初始化参数
- 对于后门模型,从通用后门分布中取样投毒,生成后门模型
-
元训练
- 设计特征提取函数,获得影子模型的表示向量
- 设计了一个查询集来提取影子模型的重要表示向量
- 通过该向量训练元分类器
-
目标模型检测
- 给定一个目标模型,首先使用优化的查询集提取模型特征
- 然后送入元分类器获得结果
影子模型生成 Jumbo Learning - Shadow Model Generation
为了生成不同的后门模型使得元分类器具有一定泛化性,检测不同类型的后门,提出了 jumbo learning 的方法,并且假设攻击者能够应用任何攻击策略。
Jumbo Learning 建模了后门攻击设置的通用分布(models a generic distribution of Trojan attack settings),并且能够基于此生成不同的后门模型。
首先,使用函数 L
对攻击设计进行参数化,使该函数可以表示不同的攻击,jumbo learning 的算法实现如下图:
注意到函数 L
不能表示全部的后门攻击设定,因此文章后续又针对未知攻击(unforeseen trojan attack model)进行了验证,表明了即使如此,元分类器依旧对于此类未知攻击具有泛化性。
元训练 Meta-training
接下来需要使用生成的影子模型进行元分类器的训练,此训练包含两个目标:
- 寻找一个特征提取函数,提取影子模型的表征向量
- 训练元分类器,分辨良性和后门模型
特征提取函数的设计 Feature Extraction Function Design
提出使用一组查询的模型输出作为表征向量,这样做基于两点:
- 后门模型跟良性模型在处理一些输入时行为上有差别,例如后门触发特征
- 可以在不需要模型结构信息的情况下获得输出,这使得黑盒场景下检测后门成为可能
具体来说,选择了一组输入 使用其拼接后的输出 作为影子模型的表示。接下来会介绍具体如何获得一组 。
元分类器设计 Meta-classifier Design
使用一个两层全连接的神经网络作为元分类器,元分类器将会把 作为输入并输出一个表示该模型是后门模型可能性的值。
元训练算法 Meta-Training Algorithm
在训练阶段将会寻找最优的查询集 和最优的分类器参数 。
一个简单的方法是随机选择查询集 并预计算所有表征向量 ,在此条件上仅优化元分类器,由此元训练可以简化为,在给定上述两个参数的情况下,仅使用基于梯度的优化最小化下列损失函数即可:
上述方法能获得一个不错的准确率,然而随机取样可能对区分良性模型和恶意模型没有帮助,因为在大多数情况下两者的行为表现是相似的。
因此,选择了通过最优化查询集获得最有用的表征向量,来提高元分类器的性能。提出查询优化(query-tuning)技术来寻找最优的查询集,与现有技术相似,具体的中心思想是:
- 联合优化查询集和元分类器使得训练损失最小
为了优化上式,一个重要的点是整个计算流程都是可微分的,证明如下:
- 首先将 送入影子模型获得表征向量
- 然后将表征向量 送入元分类器训练
- 因为影子模型和元分类器都是可微分的
- 所以可以直接计算输入 的损失函数的梯度
如此,首先从高斯分布中随机取 然后迭代更新 和 优化 loss
函数。
基线元训练算法 Baseline Meta-training algorithm without jumbo learning
前面所述的模型需要使用 jumbo learning 生成一系列后门影子模型,文章介绍了一种仅使用良性模型训练的基线训练算法。
该算法的具体原理如上图所示,使用良性数据学习一个决策边界,判断测试数据是落在边界内部还是外部,落在内部的则为良性模型,落在外部则极有可能是后门模型。
实验设置 Experiment Setup
文章的源代码仓库为:https://github.com/AI-secure/Meta-Nerual-Trojan-Detection
数据集 Dataset
图片分类任务:
- mnist
- cifar10
语音类任务:
- SpeechCommand
表格类数据:
- Smart Meter Electricity Trial data in Ireland dataset (Irish)
自然语言数据:
- Rotten Tomatoes movie review dataset (MR)
攻击设定 Attack Settings
对于除了 MR 的每个数据集,攻击者会生成 256 个后门目标模型,单独使用篡改攻击(modification attack)或者模糊攻击(blending attack)。
Trigger mask m:对于模糊攻击来说,m=1
即对整张图像进行模糊,对于修改攻击来说,m 会根据任务有所不同,在 mnist
和 cifar10
数据集上,m 是图像上随机位置的一个 2*2~5*5
的方形特征。
Trigger pattern t:对于模糊攻击和修改攻击,触发特征会使用相同的方法生成。在 mnist
和 cifar10
上,每个像素会从 [0,1]
中均匀采样。
Transparent :修改攻击不存在透明度,模糊攻击透明度统一从 [0.8,0.95]
中取样。
Malicious label :恶意标签统一从分类输出中取样,如 0-9
为 mnist
数据集。
Data poisoning ratio p:投毒比例统一从 [0.05,0.5]
中随机取样。
防御设定 Defense Settings
安全人员会使用 jumbo 训练 2048 个后门模型,使用随机初始化训练 2048 个良性模型用于训练元分类器,另外也会生成 256 后门模型和良性模型用于验证。
除了以下特征外,与攻击者使用想同的方法生成后门模型:
- 安全人员数据集大小远比攻击者数据集要小
- 特征大小取决于攻击类型
- 透明度也取决于攻击类型
另外,还确保了攻击者的 jumbo learning settings 不会在安全人员生成训练数据集时被采用。
检测基线 Detection Baselines
在评估阶段,比较了四个现有工作作为检测基线:
- Activation Clustering(AC)
- Neural Cleanse(NC)
- Spectral Signature(Spectral)
- STRIP
没有比较 DeepInspect
是因为没有公开代码并且处理流程比较复杂。
没有比较 SentiNet
是因为仅在图片数据集上,并且其模型级别的检测较为耗时。
实验评估结果 Experiment Evaluation
后门攻击性能 Trojan Attack Performance
可以看到表格中,攻击者已经成功将后门嵌入了模型中,并且准确率与良性模型相近。另外也发现后门模型和良性模型之间有性能差距,这表示模型使用者没有能力基于小数据集训练高质量的模型。因此他们需要使用共享的模型,而不是自己训练一个模型。
检测性能 Detection Performance
如前所述,所有的基线算法都有其攻击设定,因而只能在限定的条件下取得不错的效果,无法应用在全部攻击设定中。
影子模型数量的影响 Impact of Number of Shadow Models
如上图所示,文章研究了不同的影子模型样本数量对于元分类器训练的影响。并表示文章提出的方法可以在较少的样本就获得较高的准确率,并且拥有计算资源的使用者可以自行设定训练样本数量来提高准确率。
运行性能 Running Time Performance
文章对检测运行时的性能做了评估,运行的显卡是:
- NVIDIA GeForce RTX 2080
泛化性
最后在泛化性方面做了探究,证明了元分类器可以在一定程度上检测未知的后门攻击。
并且在以下方面对实验进行了泛化性调整:
- 触发特征的泛化,如上图
- 攻击目标的泛化,jumbo 中仅考虑单类别攻击,在此考虑了全类别攻击(all-to-all)
- 攻击方法的泛化,jumbo 中仅考虑了篡改攻击和模糊攻击,在此添加了基于参数(parameter)和隐藏(latent)的攻击
- 模型结构的泛化
- 数据分布的泛化,前面假设安全人员的数据与训练时服从相同分布,在此处考虑相似但不是同分布的数据
上述实验结果如下:
适应性攻击和对抗措施
实验部分最后考虑了 mntd 被攻击的场景,并且提出了一种对抗措施。
总结
首先采用元神经训练的方法进行后门检测,思路清晰实验完善,工作量很饱满,被收录于 Proceedings - IEEE Symposium on Security and Privacy - 2021
,很优秀的工作。