引言
JSMA 是非常著名的对抗攻击,它第首次在对抗攻击中引入了 的度量方式, 度量本质上是限制输入图象中扰动像素点的个数。基于梯度和 GAN 的对抗攻击是基于全局性扰动,生成的对抗样本能够被人眼所察觉,而 JSMA 生成的对抗样本是基于点扰动,所以产生的对抗性扰动相对而言就会小很多。本文总结了三篇关于 JSMA 算法的论文,并详细扩展了论文中一些略去算法细节。这三篇论文分别是:- The Limitations of Deep Learning in Adversarial Settings, 2016年
- Maximal Jacobian-based Saliency Map Attack, 2018年
- Probabilistic Jacobian-based Saliency Maps Attacks, 2020年
JSMA
The Limitations of Deep Learning in Adversarial Settings
http://arxiv.org/pdf/1511.07528该论文中作者提出的概念 Adversarial Saliency Map 其实是扩展了深度神经网络模型可视化工具 Saliency Map。Adversarial Saliency Map 针对于白盒下的有目标攻击并指出了干净样本中哪些输入特征被干扰可以达到攻击效果。
本文中的 Adversarial Saliency Map 是基于神经网络前向求导得来。如果想要让神经网络分类器对干净样本 分类出错,出错的目标类别为 。一个直观的感觉就是必须增加 的概率,同时所有其他类的概率 减小。当像素点 增加是为了能够让 的概率值增大,则 是正数值,并且 为负数值或者是常数值。具体的公式如下所示(重新整理了JSMA中论文中的 (8) 公式):其中, 为通过增加像素点而获得的 Adversarial Saliency Map。当像素点 减小时是为了能够让 的概率值增大,则 是负数值,并且 为正数值或者是常数值。具体的公式如下所示(重新整理了 JSMA 中论文中的(9)公式):
其中, 为通过减少像素点而获得的 Adversarial Saliency Map。结合公式(1)和公式(2)可知,不论是增加像素点还是减少像素点, 和 的数值是相反数才能够生成 Adversarial Saliency Map,所以将公式(1)和公式(2)整合为如下公式:
其中, 为通过变化像素点而获得的 Adversarial Saliency Map。为了能够更容易理解论文的中心思想,做了一个示意图来解释论文中的算法。如下图所示,假设一个分类器的输出类别为 m 类,利用输出向量的每一个维度进行前向求导可得关于每个类别的 Saliency Map为 ,根据 JSMA 有目标攻击的算法可得 Target_map 为:如下图为 LeNet 网络架构的 784 维输入的 Adversarial saliency map。其中图中显示了扰动时对输出有显著影响的特征值的大小。
下图所示的算法 1 展示了 JSMA 的单点攻击生成对抗样本的过程,具体详情如下所示。下图所示的算法 2 展示了 JSMA 的两点攻击生成对抗样本的过程,具体详情如下所示。
Maximal Jacobian-based Saliency Map Attack
http://arxiv.org/pdf/1808.07945
JSMA 的一个缺点在于只能进行有目标攻击,不能实现无目标攻击,而且攻击需要制定方向(即增加像素还是减少像素)。在 MJSMA 的论文中作者提出了 JSMA 的两种变体,一种不需要指定目标类,另一种不需要指定攻击方向(即增加或减少像素)。
MJSMA 中的 Adversarial Saliency Map 是同样是基于神经网络前向求导得来。如果想要让神经网络分类器对干净样本 分类出错(这里指的是无目标攻击)。同 JSMA 的直观的感觉相反,就是必须减小 的概率,同时所有其他类的概率 要增大。当像素点 增加是为了能够让 的概率值减小,则 是负数值,并且 为正数值或者是常数值。具体的公式如下所示:
其中, 是无目标攻击的 Adversarial Saliency Map,它是通过增加像素点而获得的。当像素点 减小时是为了能够让 的概率值减小,则 是正数值,并且 为负数值或者是常数值。具体的公式如下所示:
其中, 是无目标攻击的 Adversarial Saliency Map,它是通过减少像素点而获得的。本文的一个创新之处在于针对无目标攻击作者综合了公式(3)和公式(4),让无目标攻击的 Adversarial Saliency Map 屏蔽掉了攻击的方向(即在无目标攻击中不需要特地指出是增加像素或者减少像素),具体的公式如下:
跟 JSMA 一样为了能够让 MJSMA 算法更容易理解,本文做了一个示意图来解释 MJSMA 的算法。如下图所示,假设一个分类器的输出类别为 m 类,利用输出向量的每一个维度进行前向求导可得关于每个类别的 Saliency Map 为 ,根据 MJSMA 有无目标攻击的
算法可得 Non_Target_map 为:
下图所示的算法 3 展示了 MJSMA 的两点攻击生成对抗样本的过程,具体详情如下所示。在读论文的过程中涉及到一个问题,论文中并没有具体涉及到攻击方向需要怎样确定,最终发现,算法 3 的流程图中的绿色字体展示了无目标攻击中的攻击方向。
Probabilistic Jacobian-based Saliency Maps Attacks
http://arxiv.org/abs/2007.06032
在该论文中,作者提出了 JSMA 和 MJSMA 的两个改进版一个是加权 JSMA (WJSMA)和另一个是泰勒 JSMA(TJSMA)。WJSMA 是通过输出概率对 Adversarial Saliency Map 应用一个简单的加权,TJSMA 也做了同样的事情,同时额外惩罚输入特征。这两种攻击都比 JSMA 更有效。作者证明了在有目标攻击中,TJSMA 是要优于 WJSMA;而在无目标攻击的情况下,WJSMA 要比 TJSMA 更出色。作者在原文中给出了 Tensorflow 相关的源代码。论文中 WJSMA 的最核心的公式如下所示,但是作者并没有在论文中给出该公式推导的详细过程,所以本文填补了论文中的这个公式的证明的推导过程(红色字体表示公式的推导过程)。
证毕,可以发现公式(15)结果与公式(5)的结果一致。
对比 WJSMA 和 JSMA 的算法可知,WJSMA 将神经网络的输出概率作为 Saliency Map 的权重,这样就能够更加合理 对不同类别的 Saliency Map 的信息进行有针对性的整合。论文中作者给出了一个实例(如下蓝色字体所示)来解释具有权重的 WJSMA 的优势。
假设一个神经网络输出的类别数为 ,对于某一个输入 有:,, ,其它的类别,。可知该样本 的类别为 ,目的是生成一个类别为 的对抗样本。能够观察到由于 时, 的概率已经处于其最小值中,因此在寻找这些 的值的 是不必要的。在攻击中 的减少的概率值不应该添加到 类别中,所以作者由此启发将概率权重引入到 Saliency Map 中。WJSMA 中 Adversarial Saliency Map 跟之前一样同样是基于神经网络前向求导得来。如果想要让神经网络分类器对干净样本 分类出错,出错的目标类别为 。当像素点 增加是为了能够让 的 logit 值增大,则是 正数值,并且 为负数值或者是常数值。
其中, 为通过增加像素点而获得的 Adversarial Saliency Map。当像素点 减小是为了能够让 的 logit 值增大,则是 负数值,并且 为正数值或者是常数值。其中, 为通过减小像素点而获得的 Adversarial Saliency Map。
下图所示的算法 4 展示了 WJSMA 有目标攻击生成对抗样本的过程,具体详情如下所示。
WJSMA 中无目标攻击中如果想要让神经网络分类器对干净样本 分类出错(这里指的是无目标攻击)。同 WJSMA 的直观的感觉一样,当增加像素点 时,为了减小 的logits值,则 是负数值,并且 为正数值或者是常数值。
其中, 为通过增加像素点而获得的 Adversarial Saliency Map。当减小像素点 时,为了减小 的 logits 值,则 是正数值,并且 为负数值或者是常数值。其中, 为通过减小像素点而获得的 Adversarial Saliency Map。下图所示的算法 5 展示了 WJSMA 无目标攻击生成对抗样本的过程,具体详情如下所示。
下图所示的算法 5 展示了 WJSMA 的有目标单点攻击生成对抗样本的过程,具体详情如下所示。下图所示的算法 6 展示了 WJSMA 的有目标两点攻击生成对抗样本的过程,具体详情如下所示。4.2 TJSMA
TJSMA 是将惩罚值引入到 WJSMA 的算法中去,假设对像素点 和 具有相同的 WJSMA 评分 ,且 非常接近 ,而 离 足够远。为了寻找更大的影响,TJSMA 更喜欢 ,同时使 和 最大化。因此,作者引入了新的 Adversarial
Saliency Map,则有单点攻击和两点攻击为如下所示:单点攻击的公式如下所示:下图所示的算法 5 展示了 TJSMA 有目标攻击生成对抗样本的过程,具体详情如下所示。