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


论文 2016CVPR-DeepFool a simple and accurate method to fool deep neural networks.

论文主要内容

  • 提出了一种新的计算对抗样本的方法:DeepFool算法
  • 通过实验,验证了DeepFool算法所添加的扰动更小,同时计算对抗样本所消耗的时间也更少
  • 实验也说明了,如果使用不恰当的算法(如FGSM算法)来验证分类器的鲁棒性,那么可能会对分类器的鲁棒性(Robustness)评估过高。

DeepFool算法原理

DeepFool算法基于超平面的分类思想,可精准地计算扰动值。

二分类问题

这是最简单的一种情况。对于二分类,超平面两侧对应不同的分类结果,对于在一侧的样本 x x x,想要添加扰动使分类器将其分类为另一个类别,那么只需要将 x x x更新到超平面的另外一侧就可以了。
在这里插入图片描述
现在优化算法的约束条件是最小扰动,那么就只需要找到 x x x到超平面的最短距离,使 x x x加上这个距离后转换到超平面的另外一侧,那么就算是找到了对抗样本,同时也就找到了最小的扰动 r r r(投影距离)。此最小的且最精准的距离即为垂直分类面移动。
在这里插入图片描述

注意:最后找到的扰动只能保证我们能将 x x x改变到决策边界上,所以我们还需要在 r r r的基础上乘上一个微小的系数,保证能越过决策边界。即 r ∗ ( 1 + η ) r*(1+\eta) r(1+η),其中 η \eta η的值远远小于1。

非线性问题

若分类器的决策边界是非线性的,在这种情况下,需要寻找 x x x到曲线的最短距离,然后将 x x x加上这个最短距离,即可使 x x x转移到决策边界的另外一侧,从而被错误分类。然而,直接找这个投影点是不好找的。我们需要用到一种迭代的算法。

下面简单描述一下如何寻找一个点到一个曲线(或者是高维空间中的曲面)的最短距离。

  1. 假设当前是第 i i i次迭代,我们在 x i x_i xi这点对分类器使用一阶泰勒展开,将会得到一条直线(或者一个超平面)
  2. x i x_i xi投影到这条直线上,我们找到了下一次迭代的 x x + i x_{x+i} xx+i,同时我们将这次迭代添加的扰动向量记为 r i r_i ri
  3. 我们再在 x i + 1 x_{i+1} xi+1这点,使用同样的方法,寻找下一次迭代的点 x i + 2 x_{i+2} xi+2,同时计算 r i + 1 r_{i+1} ri+1
  4. 我们的算法一直迭代,直到找到的 x x x落在分类器的决策边界上,算法终止。
  5. 输出:将每一次迭代过程中产生的 r i r_i ri(是一个向量)全部累计起来(向量加法),得到最终的扰动 r r r

多分类问题

多元分类的情况下,需要遍历样本点 x x x到各分界面的距离,然后比较得到最小的距离,即为需要添加的干扰值。
在这里插入图片描述
对于非线性多分类,参照非线性二分类的方法求得各超平面的距离,取最小即可。
在这里插入图片描述

实验结果

在这里插入图片描述
从上表中可以看出

  • DeepFool所添加的扰动较[4][FGSM]和[18][L-BFGS]都要小
  • DeepFool产生对抗样本的时间很短
    在这里插入图片描述
    上图是模型多迭代训练,模型的鲁棒性的变化情况,从中可以看出:
  • 如果使用原来的干净样本,模型鲁棒性基本没有变化
  • 如果使用DeepFool产生的对抗样本(后5个epoch都是在这对抗样本上训练的),那么模型在1个epoch后的鲁棒性就大大提升
  • 使用FGSM产生的对抗样本做训练,模型的鲁棒性反而会下降

另外,作者将Deepfool产生的扰动放大,然后再使模型在这个放大的样本上训练,看训练后模型的鲁棒性怎么变化,结果如下图所示:
在这里插入图片描述
当扰动太大时,反而会使模型鲁棒性降低,这就说明了FGSM算法产生的扰动很大,不是最小的扰动。使用正确的方法(扰动更小的攻击方法)更能说明模型的鲁棒性,而使用那些扰动大的方法来评估模型的鲁棒性,往往会过分评估。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值