对抗样本生成算法之JSMA算法

目录

  • 背景
  • 算法的原理和步骤

论文 2016EuroS&P-The Limitations of Deep Learning in Adversarial Settings.

背景

之前的对抗样本的扰动方向都是损失函数的梯度方向,该论文生成的对抗样本的扰动方向是目标类别标记的预测值的梯度方向,作者将这个梯度称为前向梯度(forward derivative),即
对抗样本生成算法之JSMA算法_第1张图片
显然,前向梯度是由神经网络的目标类别输出值对于每一个像素的偏导数组成的。这意味着,我们可以通过检查每一个像素值对于输出的扰动,选择最合适的像素来进行改变。

论文提出的JSMA算法,研究的是输入扰动对输出结果的影响来找到相应的对抗扰动。作者引入了显著图的概念,该概念来自于计算机视觉领域。
显著图:表示不同的输入特征对分类结果的影响程度。若发现某些特征对应分类器中某个特定输出,可通过在输入样本中增强或减弱这些特征来使分类器产生指定输出。

算法的原理和步骤

具体步骤如下:
1、计算前向导数
计算DNN 最后一层的每个输出对输入的偏导,标识了每个输入特征对每个输出分类的影响程度。(导数的计算与反向传播类似)
对抗样本生成算法之JSMA算法_第2张图片
2、构建对抗显著图
分类器对于一个输入 x x x的分类规则为
对抗样本生成算法之JSMA算法_第3张图片
假设分类器将 x x x分为 j j j,我们希望分为 t t t,即
在这里插入图片描述
构建对抗显著图:
对抗样本生成算法之JSMA算法_第4张图片
从而计算得到哪些像素位置的改变对目标分类 t t t的影响最大。若对应位置导数值为正值,则增大该位置像素可增加目标t分数;若负值则减小。

3、使用显著图挑选需要改变的像素位置
对于2中我们构建的显著图,我们挑选使得
对抗样本生成算法之JSMA算法_第5张图片
值最大的位置,然后增加或减小其像素值,对应的就能增加目标 t t t的输出,然后进行迭代,直到攻击成功或达到最大破坏阈值。

注意

  • 找到单个满足要求的特征困难,故提出寻找对特定输出影响最大的输入特征对。
  • 干扰方式分为正向扰动和反向扰动。
  • JSMA算法为 L 0 L_0 L0,即修改程度不受限制,但修改的数量受到限制,是尽量减少对原样本修改像素的个数的算法。
  • 若修改像素添加的干扰不足以使模型输出错误,则利用扰动后的样本重复以上过程。由于修改的特征数有限,因此重复的次数需要被约束。
  • 由于ImageNet数据集中样本的像素值太多,从中搜寻两个位置在计算上是很困难的,搜寻一个位置算法的表现很差,故无法使用JSMA算法。
  • 由于JSMA算法可针对具体特征修改,因此通常为定向攻击。通过特定的特征修改,使输出为特定输出。

你可能感兴趣的:(对抗样本,深度学习)