与之前的基于提高原始类别标记的损失函数或者降低目标类别标签概率的损失函数的方式不同,这篇文章提出利用输入特征到输出值之间的对抗显著性,达到只需修改少量的输入值即可误分类的目的。
换句话说,之前的对抗样本的扰动方向都是损失函数的梯度方向(无论是原始类别标记的损失函数还是目标类别标记的损失函数),该论文生成的对抗样本的扰动方向是目标类别标记的预测值的梯度方向,作者将这个梯度称为前向梯度(forward derivative)。
深度学习应用系统中,模型的完整性(Intergrity)非常重要,与模型的预测结果准确性有关,具有非常高的应用价值。因此,深度学习攻击模型主要攻击深度学习模型的完整性。具体来说,深度学习的攻击就是努力找到一个输入样本 X ∗ X^* X∗,从而导致分类器的分类结果出错。
本文考虑以下四种影响模型完整性的攻击目标:
- Confidence Reduction: 降低分类输出结果的置信度值,因此会引入分类歧义;
- Misclassification: 将分类结果修改为除了原始标签外的其他任何标签值;
- Targeted Misclassification: 产生输入,使得该输入的分类结果是一个特定的目标类;
- Source/Target Misclassification: 针对一个原始样本和目标类,产生一个扰动量,使得当扰动量加到原始样本中,其分类结果是特定的目标类。
攻击能力:
攻击者通常伴随着不同的攻击能力。对抗样本攻击发生在模型的预测阶段,根据攻击者获得信息的不同,作者按照攻击能力将其分为以下五类:
- Training Data & Network Architecture: 这是最强的攻击,可以同时模拟网络的结构和分析训练集数据。
- Network Architecture: 这种攻击了解深度学习网络结构及其参数,包括网络层数、激活函数、层间权重、偏差等。本文的攻击假设属于此类。
- Training Data: 攻击者可以收集替代数据集,这些替代数据集可以从用于训练DNN的原始数据的分布中采样。一种典型的攻击方法是攻击者使用太呆数据集来训练深度学习网络,用来近似原始的深度学习网络结构。
- Oracle: 攻击者可以把神经网络当作一个“Oracle”。攻击者可以通过提供输入样本得到对应的输出预测值。原则上,攻击者通过观察输入和输出间的区别,从而自适应地构造对抗样本。
- Samples: 攻击者可以有能力收集神经网络分类器的输入和对应的输出,但不同的是,攻击者不能通过修改输入来观察输出的差异。这是最差的攻击能力。
直观地来看,以上攻击目标和攻击能力可以归纳为下图:
本文针对非循环前馈DNN网络,设计一种新的基于雅可比显著图(Jacobian Saliency Map) 的攻击样本生成方法。这种方法需要计算前向导数,以便构建一个对抗性显著图,从而确定输入特征子空间与攻击目标之间的关联性。通过这种方法扰动输入空间特征值,可以很快达到达到攻击者误分类的目的。着重关注那些导数大的参数,来进行攻击。
当输入样本为 X ∈ [ 0 , 1 ] 2 X \in [0, 1]^2 X∈[0,1]2时,整个神经网络学习到的函数 F F F如下图左图所示,可以直观地看出来,输入值在0(蓝色)和1(黄色)之间有非常明显的断层。
计算函数 F F F对输入值每个特征 { x 1 , x 2 } \{x_1, x_2\} {
x1,x2}的前向导数,即为
前向导数越大的地方越容易构建对抗样本
由此可以看出:
- 输入值极小的扰动可以致使神经网络输出的不同
- 输入域不同区域中找到对抗样本的难易程度不同
- 前向导数可以减少对抗样本的搜索范围
JSMA算法:
构造算法的输入分别是: 正常样本 X X X,target目标标签 Y ∗ Y^*