Poison Frogs! Targeted Clean-Label Poisoning Attacks on Neural Networks
论文简介
在这项工作中,我们研究了一种新的攻击类型,称为干净标签攻击,攻击者注入的训练示例被认证机构清晰地标记,而不是被攻击者自己恶意地贴上标签。我们的策略假设攻击者不了解训练数据,而是了解模型及其参数。攻击者的目标是当网络在包含中毒实例的增强数据集上进行重新训练后,使重新训练的网络将一个特定测试实例从一个类错误地分类为她选择的另一个类。除了目标的预期预测错误之外,受害的分类器的性能下降并不明显。(机翻)
这篇论文采取了一种叫做“数据毒害攻击”(Data Poisoning Attacks)的方法,对神经网络进行攻击。这种方法并不是简单的“数据污染攻击”,即将错误标注的样本加入训练集中,而是将标注正确但经过精细调整的样本加入训练集中。
这种毒害本质上是建立了一个专属于攻击者的后门。这个经过精细调整的样本是正常的(标注正确,看起来也没毛病),对于神经网络的训练和一般表现也没有影响。但是对于特定的样本(即攻击者准备攻击的样本),它会有错误的表现,具体来说,它会将其分类到攻击者选定的类别上。Get it
A simple clean-label attack
首先选择一个目标实例(target instance)从测试集中,一个成功的中毒攻击应该造成目标例子被错误分类在测试过程,其次攻击者从基类中选择一个基本实例,并对其进行潜移默化更改,创建一个中毒instance(poison instance),注入训练集中,最后模型用干净的数据集和poison instance来搞鬼,测试时间模型错误的把目标实例分类,那么就成功
通过特征碰撞生成有害数据
方程1最右面一项使中毒实例p对于人类来说显得像是一个基础类别实例,(β参数化了这一点的程度),因此它会被这样标记。同时,方程1的第一项使毒实例在特征空间中移向目标实例,并嵌入目标类分布中。在一个干净的模型上,这个毒物实例将被错误分类为目标。但是,如果模型在干净的数据+毒物实例上重训练,那么特征空间中的线性决策边界将被旋转,将毒实例标记为基类。由于目标实例在附近,所以决策边界旋转可能会无意中包含基类中的目标实例以及毒物实例(注意,训练是为了正确地分类毒物实例,而不是目标,因为后者不是训练集的一部分)。这允许未受干扰的目标实例(随后在测试时被错误地分类到基类中)获取到进入基类中的“后门”。
优化过程
假如想让作为分类器的神经网络,把类别为t的样本t0 错误分类到b类别中,那么就随便找一个b类别的图片b0 ,然后将其修改成x使得它长得很像bi,即∣b02−x2∣尽可能小,但是经过神经网络到达最后一层(softmax层)之前,x和ti 的feature maps尽可能接近,即∣f2(t0)−f2(x)∣尽可能小。
论文实验
第一种情景是白盒攻击,即已知神经网络(结构及参数)的情况下进行攻击。它在论文中被称作“A one-shot kill attack”(一击必杀),效果十分好,接近100%可以成功攻击。
但是,它有十分强的局限性:首先,它只能攻击已知网络结构并且使用迁移学习进行训练的网络;其次,它只能攻击小样本数据集的网络,这给现实攻击中“别人用爬虫爬到”造成了更大的困难;最后,它必须在训练过拟合的时候才可以保证接近100%的准确率。这部分下面我会具体提到。
第二种情景是黑盒攻击,即无需知道神经网络的具体情况,对网络进行攻击。它采取了“水印”攻击方法。这种方法的好处是适用范围广,但是主要缺点是必须用较大数目(~50)的图片进行攻击才可以有显著效果,同样地,在现实中想让别人爬50000张图片(cifar-10),里面就有50张都是你的,还是难度比较大的。
总体来说,在模拟情境下(实验室环境下)这是一种非常酷而且有效的攻击手段;但是在现实世界中保证特定的机器学习系统被成功攻击,还是有一定困难的。
迁移学习上的中毒攻击
我们首先研究转移学习的情况,其中一个预先训练的特征提取网络只对最后一层网络(softmax)进行训练,使其适应特定的任务。这个过程在工业中很常见,我们希望在有限的数据上训练一个健壮的分类器。在这种情况下,投毒攻击是非常有效的
两次中毒实验。首先,我们攻击预先训练的Inception V3。其次攻击了CIFAR-10数据集
保留1099个测试实例(针对狗类的698个测试实例和401个鱼类类别的测试实例)。我们从测试集中选择目标实例和基本实例,并使用maxIters=1000的算法1创建一个毒实例。由于ImageNet中的图像具有不同的维数,所以我们用β=β0∗20482/(dimb)2=β 来计算式1的β,它采用了基实例(dimb)的维数和Inception V3的特征空间表现层(2048)的维数考虑在内。我们在实验中使用β0=0.25。然后,我们将毒实例添加到训练数据中,并执行冷启动训练(所有未冻结的权值初始化为随机值)。我们使用具有0.01的学习速率的ADAM优化器对100个epochs的网络进行训练。
实验进行了1099次-每次以不同的测试集图片作为目标实例-获得了100%的攻击成功率。作为比较,KOH和梁[2017]研究的影响函数法的成功率为57%。中位错误分类置信度为99.6%(图1b)。此外,总体试验准确度几乎不受中毒影响,平均下降0.2%,最差情况为0.4%,在所有试验中从原来的99.5%。一些样本目标实例及其相应的中毒实例如图1a所示。
请注意,在迁移学习任务上获得100%的成功率通常是不可能的。我们之所以能够在dog-VS-fish任务上使用inception v3获得如此高的成功率,是因为有更多的可训练权重(2048)相比于比训练例子(1801)。只要数据矩阵不包含重复图像,则需要求解以找到权重向量的方程组,并对所有训练数据进行过度拟合。则需要求解的方程组对于所有的训练数据都是欠确定的,对所有训练数据的过度拟合是肯定会发生的。
不正确的类别概率直方图预测的目标图像清洁(暗红色)和中毒(深蓝色)模型。当在中毒的数据集上进行训练时,目标实例不仅被错误分类了,还具有很高的置信度。这里可以看到干净的基本没得,中毒了的就有很高的置信度了
绘制了干净的和中毒的网络的决策边界之间的角度偏差(即权重向量之间的角度差)。如图2所示(蓝色条形和线条)。角偏差是对中毒实例的再训练使决策边界旋转到包含基本区域内的中毒实例的程度。这种偏差主要发生在如图2b所示的第一个epoch中,这表明即使使用次优再训练超参数,攻击也可能成功。平均23度的最终偏差(图2a)表明,毒物实例对最终层的决策边界进行了实质性更改。这些结果验证了我们的直觉,即目标的错误分类是由于决策边界的变化造成的。
综上,这种攻击方法的适用范围是十分有限的,保证成功攻击必须要求:
- 攻击者必须将“有毒样本”xxx放到被攻击者的训练集中
- 攻击者知道被攻击者使用迁移学习训练网络
- 攻击者知道被攻击者只训练最后一层网络,或者最后某几层网络
- 攻击者知道被攻击者使用的网络以及其参数
- 被攻击者训练网络不能任意使用数据扩增
- 被攻击者在训练神经网络时,在训练集上近乎完全过拟合,即训练集上准确率达到~100%
端对端训练的中毒攻击
中毒攻击对迁移学习是非常有效的。当所有层都可以训练时,这些攻击就变得更加困难。然而,使用“水印”技巧和多个毒实例,我们仍然可以有效地毒害端到端网络。
单毒实例攻击
端到端实验集中于cifar-10数据集的缩小的alexnet体系结构
实验中,我们随机选择“飞机”作为目标类,“青蛙”作为基类。对于创建有害实例,我们使用的β值为0.1,迭代次数为12000。下图显示了通过将193维深特征向量投影到二维平面上而可视化的目标、基和毒特征空间表示。第一维是沿着加入基类和目标类的质心的向量(u=µbase−µtarget),而第二维则是沿u正交的向量,在u和θ所覆盖的平面上(倒数第二层的权重向量,即对决策边界的法向)。这个投影允许我们从一个最好地表示两个类(目标和基)分离的观点来可视化数据分布。
然后,通过使用干净数据+单个毒物实例来训练模型来评估中毒攻击。图3a显示了目标、基和毒实例的特征空间表示,以及在干净(未填充标记)和中毒(填充标记)模型下的训练数据。在它们干净的模型特征空间表示中,目标实例和毒实例是重叠的,这表明我们的毒工艺优化过程(算法1)是可行的。奇怪的是,与迁移学习场景不同的是,最后一层决策边界旋转以适应基区域内的毒实例,端到端训练场景中的决策边界在经过中毒数据集再训练后保持不变,如图2中的红色条形图和线所示。
据此,我们提出以下重要意见:在使用毒数据进行再训练期间,网络修改其浅层中的低级特征提取卷积核,以便将毒实例返回到深层中的基类分布中。
端到端训练中毒攻击的特征空间可视化。(a)单个毒物实例无法成功攻击分类器。CLEAN模型下毒物实例的特征空间位置与目标实例的特征空间位置重叠。然而,当模型被训练在干净+中毒数据(即中毒模型)上时,中毒实例的特征空间位置返回给基类分布,而目标保留在目标类分布中。(b)为了使攻击成功,我们从50个具有30%不透明度目标实例的“水印”随机基实例中构造了50个有毒实例。这将导致目标实例从目标类分布(在特征空间中)中提取到基类分布中,并被错误地归类为基类。
水印 :一种增强中毒攻击威力的方法
为了防止训练中的毒物和目标分离,我们使用了一个简单而有效的技巧:将目标实例的低不透明度水印添加到中毒实例中,以允许某些不可分割的特性重叠,同时保持视觉上的不同。这会将目标实例的某些特性混合到毒实例中,并且即使经过再训练,也会使毒实例保持在目标实例的特征空间附近。水印技术在Chen等人中有广泛的应用[2017],但他们的工作需要在推理时间内应用水印,在攻击者无法控制目标实例的情况下,这是不现实的。
多中毒实例攻击
在端到端的训练场景中,中毒是很困难的,因为网络学习的特性嵌入最优地区分目标和毒物。但是,如果我们将来自不同基本实例的多个有害实例引入训练集,又会如何呢?
为了使分类器抵抗多个毒物,它必须学习一个将所有毒实例与目标分离的特征嵌入,同时确保目标实例保持在目标分布中。我们在实验中表明,使用高度多样性的基可以防止中等规模的网络学习不同于基础的目标的特征。因此,当网络被重新训练时,目标实例与毒实例一起被拉向基本分布,并且攻击通常是成功的。
我们观察到,即使在多次毒性实验中,最终层的判定边界也保持不变。这表明,在迁移学习和端到端的训练场景中,中毒的成功有一个根本不同的机制。迁移学习通过旋转决策边界来包含目标,从而对毒物产生反应,而端到端训练通过将目标拉到基本分布中(在特征空间中)做出反应。在对中毒数据集进行再训练时,端到端场景中的决策边界仍然保持平稳(按某一程度的分数变化),如图2所示。
为了量化中毒实例的数量对成功率的影响,我们对1到70之间的每个中毒实例进行了实验(增量为5)。实验使用了从测试集中随机选择的目标实例。每种毒物都是由测试集中的随机基产生的(导致毒物之间的特征多样性很大)。水印的不透明度为30%或20%,用于增强毒物与目标之间的特征重叠。攻击成功率(超过30次随机试验)如图5b所示。在CIFAR-10中对一个不同的目标基类对重复了30个实验,以验证成功率不依赖于类。我们还试了一个更低的不透明度,观察到成功率下降。成功率随中毒实例数的增加而单调增加。50次投毒后,鸟对狗任务的成功率约为60%。注意,只有当目标被归类为基时,我们才认为成功;即使目标实例被错误分类为基以外的类,攻击也被认为是不成功的。
我们可以通过瞄准数据离群点来提高这一攻击的成功率。这些目标远离他们类中的其他训练样本,因此应该更容易翻转他们的类标签。我们的目标是50架“飞机”,它们的分类置信度最低(但仍然正确),每次攻击使用50只毒蛙。这次攻击的成功率为70%,比随机选择的目标高出17%。
总之,端到端方案下的干净标签攻击需要多种技术才能工作:
(1)算法1的优化;(2)毒物实例的多样性;(3)水印。在补充材料中,我们提供了50种毒物的留单消融研究,证实这三种技术都是成功中毒的必要条件。
总结
我们研究了有针对性的清洁标签中毒方法,在训练时攻击网络,目的是操纵测试时间行为。这些攻击很难检测,因为它们涉及非可疑(正确标记的)训练数据,也不会在非针对性的例子上降低性能。所提出的攻击工艺在特征空间中与目标图像碰撞,从而使得网络难以分辨两个目标图像。这些攻击在迁移学习场景中是非常强大的,并且可以通过使用多个有毒图像和水印技巧在更一般的上下文中变得强大。
使用毒物的训练类似于对抗训练技术,以防止逃避攻击。毒物实例在这里可以看作是基类的对抗性示例。虽然我们的中毒数据集训练确实使网络对设计好的错误分类为目标的基类对抗样本更加健壮,它还会导致未更改的目标实例被错误地归类为基。本文对这种对抗性训练的副作用进行了探讨,值得进一步研究。
许多神经网络使用容易被对手操纵的数据源进行训练。我们希望这项工作将引起对数据可靠性和来源这一重要问题的关注。