【论文笔记】Poison Frogs! Targeted Clean-Label Poisoning Attacks on Neural Networks
Poison Frogs! Targeted Clean-Label Poisoning Attacks on Neural Networks
- 引言
- 创新性
- 本篇论文的贡献(目的)
- 算法步骤
- 实验结果
引言
本文中关于投毒攻击的定义(文中有一些举例很帮助理解):
对抗样本:发生在测试时,一个干净的目标实例被修改导致分类器错误分类。但是,这无法应用在攻击者无法控制测试时间数据的某些现实场景。例如,①考虑一家零售商打算通过基于 ML 的垃圾邮件过滤器将竞争对手的电子邮件标记为垃圾邮件。对抗样本攻击不适用,因为攻击者无法修改受害者的电子邮件。②对于人脸识别系统,在有人值守的安全台或建筑物入口,攻击者可能无法更改在受监督条件下运行的人脸识别引擎的输入。这样的系统仍然容易受到数据中毒攻击。
投毒攻击:发生在训练时,通过将精心构建的毒物实例插入训练数据来操纵系统的性能。本文旨在控制分类器在一个特定测试实例上的行为。例如,①操纵面部识别引擎来更改一个特定人的身份,②操纵垃圾邮件过滤器来允许/拒绝攻击者选择的特定电子邮件。
创新性
先前的攻击方法需要修改测试时实例以触发错误预测。此外,在大多数先前的工作中,假设攻击者对训练集中实例的标记过程有一定程度的控制,这并不符合应用实际。
本篇论文的贡献(目的)
攻击者①使用“clean-label”,不需要对训练数据的标记有任何控制;②制作肉眼难以区分的中毒样本,使得在含中毒样本数据集上重新训练的神经网络将一个类(例如,恶意软件)中的特殊测试实例错误分类为她选择的另一类(例如良性应用程序)实例。③在不降低整体分类器性能的情况下控制分类器在特定测试实例上的行为,实现针对性攻击。
算法步骤
1.假设攻击者了解模型及其参数 ,攻击者首先从测试集中选择一个target instance(t),成功的中毒攻击会导致此目标示例在测试期间被错误分类。接下来,攻击者从base class中采样一个base instance(b),并对其进行难以察觉的更改以制造毒实例poison instance§;这种毒药被注入到训练数据中,目的是欺骗模型在测试时用基本标签标记目标实例。最后,模型在中毒数据集(干净数据集 + 中毒实例)上进行训练。如果在测试时模型将目标实例误认为在基类中,则认为中毒攻击是成功的。
2.优化目标

前一项,让中毒示例与目标示例在神经网络中提取出的特征尽可能相似;后一项让中毒示例在外观上与基类示例看上去尽可能相似以此来欺骗管理员将其错误标签为基类达到“clean-label”。
3.算法流程

实验结果
1.迁移学习网络,仅训练最终网络(softmax)层
①实验数据集:ImageNet dog-vs-fish
②神经网络架构:InceptionV3

作图为生成的一些中毒示例,当在中毒数据集上进行训练时,目标实例会以高置信度被错误分类。使用迁移学习时,只需一张毒物图像就可以控制分类器的行为
2.end-to-end training(模型的所有层都被训练)
①实验数据集:CIFAR-100
②神经网络架构:AlexNet

攻击end-to-end training的模型,仅仅是用一张中毒数据是非常困难的。为了防止训练过程中毒物和目标分离,本文使用了一个简单但有效的技巧:将目标实例的低不透明度水印添加到毒物实例中,以允许一些不可分割的特征重叠,同时保持视觉上的不同。

