作者为什么提出deepfool攻击,有什么必要性呢
目的一:对抗训练很重要,作者发现,如果采用FGSM这种,L-BFGS这些生成对抗样本的方法可能会导致对抗训练效果变更差。为什么呢?
因为作者发现用来对抗训练的对抗样本扰动越大那么可能 让对抗样本训练把原本的神经网络变更差
下图中
这个是神经网络的鲁棒性衡量用下图公式
下图是使用不同扰动大小的对抗样本来训练神经网络,发现扰动越大的对抗样本 训练的效果越差
l
下图中更是说明,用FGSM去对抗训练,发现结果还没有用clean样本去训练的效果好,说明FGSM生成的样本来对抗训练 不行。
为什么会这样呢,作者认为是 (这会导致测试数据中不太可能出现的图像。因此,它降低了该方法的性能,因为它充当不代表原始数据分布的正则化器。这种效果类似于几何数据增强方案,其中原始样本的大量变换对生成产生反作用。)这个自己看原文把
目的二:那么对于FGSM这些扰动大的方法,作者就提出了deepfool这个扰动小的方法。
目的三:提出了衡量神经网络鲁棒性的方法
具体方法实现
线性二分类器的时候
点到决策边界的距离,就是点到直线的距离
但是对于非线性二分类器的来说,用迭代的方式
把当前点进行一阶泰勒展开,成为一个平面,平面和变量之间的交线,就是要投影过去的线
这样子投影过去,到新的一个点。然后重新投影
最终找到决策边界。说实话,这种方法并不是最优解,只能说是一种经验把,我姑且这样认为。
多分类
有了二分类的基础,在多分类时候,要先找到,我应该向哪一个标签的决策边界去搜
然后非线性的情况就是迭代几次,和二分类一样。
实验部分
数据集和对应的网络:左侧为数据集右侧为网络
1、MNIST:两层全连接网络,以及两层LeNet卷积神经网络架构[9]。这两个网络均使用 MatConvNet [20] 包通过 SGD 进行动量训练。
2、CIFAR-10:我们训练了一个三层 LeNet 架构,以及一个 Network In Network (NIN) 架构 [11]。
3、ILSVRC 2012:我们使用 CaffeNet [7] 和 GoogLeNet [17] 预训练模型
平均扰动范数(这个是用来评估扰动的强度,就是噪声点的强度的)
用下图计算
上图是实验,deepfool方法和FGSM,L-bfgs方法测试对比,发现deepfool效率没提高,但是扰动小
直观如下图:
并且,最后发现用deepfool生成的对抗样本来训练,能够提高神经网络鲁棒性。