文章目录
论文简介
论文题目直译:青蛙有毒!利用正确标注的青蛙图片定向毒害神经网络
之所以叫青蛙有毒是因为论文的实验采取了cifar-10数据集,而cifar-10数据集中有一个类别是青蛙…… 并不是因为其他原因。
这篇论文采取了一种叫做“数据毒害攻击”(Data Poisoning Attacks)的方法,对神经网络进行攻击。这种方法并不是简单的“数据污染攻击”,即将错误标注的样本加入训练集中,而是将标注正确但经过精细调整的样本加入训练集中。
或许刚读到这里会想“把某张图片加到别人的训练集中”说起来简单,是不是在现实世界中很难存在这种情况?论文中提到,你可以把这个图片挂到网上,如果别人用爬虫爬到,那就成功污染(毒害)数据集了……
这种毒害本质上是建立了一个专属于攻击者的后门。这个经过精细调整的样本是正常的(标注正确,看起来也没毛病),对于神经网络的训练和一般表现也没有影响。但是对于特定的样本(即攻击者准备攻击的样本),它会有错误的表现,具体来说,它会将其分类到攻击者选定的类别上。
听起来十分酷呀!
攻击方法
具体做法是:假如想让作为分类器的神经网络,把类别为t的样本 t 0 t_0 t0错误分类到b类别中,那么就随便找一个b类别的图片 b 0 b_0 b0,然后将其修改成 x x x使得它长得很像 b i b_i bi,即 ∣ b 0 2 − x 2 ∣ |b_0^2-x^2| ∣b02−x2∣ 尽可能小,但是经过神经网络到达最后一层(softmax层)之前, x x x和 t i t_i ti的feature maps尽可能接近,即 ∣ f 2 ( t 0 ) − f 2 ( x ) ∣ |f^2(t_0)-f^2(x)| ∣f2(t0)−f2(x)∣ 尽可能小。
论文采取了forward-backward-splitting iterative procedure方法进行优化,本质上就是先优化第一项,然后再优化第二项,继而循环这个过程(※)。
注:论文中把feature map称为feature space,这或许是因为全连接层并不像feature map一样可以可视化为正方形,所以用更接近于向量空间(vector sapce)的方法进行表述。后文中提到的feature map均指论文中的feature space。
论文实验
实验在两种不同的情境下进行:
第一种情景是白盒攻击,即已知神经网络(结构及参数)的情况下进行攻击。它在论文中被称作“A one-shot kill attack”(一击必杀),效果十分好,接近100%可以成功攻击。
但是,它有十分强的局限性:首先,它只能攻击已知网络结构并且使用迁移学习进行训练的网络;其次,它只能攻击小样本数据集的网络