2.基于梯度的攻击——FGSM

  FGSM原论文地址:https://arxiv.org/abs/1412.6572

  1.FGSM的原理

    FGSM的全称是Fast Gradient Sign Method(快速梯度下降法),在白盒环境下,通过求出模型对输入的导数,然后用符号函数得到其具体的梯度方向,接着乘以一个步长,得到的“扰动”加在原来的输入  上就得到了在FGSM攻击下的样本。

    FGSM的攻击表达如下:

    那么为什么这样做有攻击效果呢?就结果而言,攻击成功就是模型分类错误,就模型而言,就是加了扰动的样本使得模型的loss增大。而所有基于梯度的攻击方法都是基于让loss增大这一点来做的。可以仔细回忆一下,在神经网络的反向传播当中,我们在训练过程时就是沿着梯度方向来更新更新w,b的值。这样做可以使得网络往loss减小的方向收敛。

那么现在我们既然是要使得loss增大,而模型的网络系数又固定不变,唯一可以改变的就是输入,因此我们就利用loss对输入求导从而“更新”这个输入。(当然,肯定有人问,神经网络在训练的时候是多次更新参数,这个为什么仅仅更新一次呢?主要因为我们希望产生对抗样本的速度更快,毕竟名字里就有“fast”,当然了,多次迭代的攻击也有,后来的PGD(又叫I-FGSM)以及MIM都是更新很多次,虽然攻击的效果很好,但是速度就慢很多了)

    为什么不直接使用导数,而要用符号函数求得其方向?这个问题我也一直半知半解,我觉得应该是如下两个原因:1.FGSM是典型的无穷范数攻击,那么我们在限制扰动程度的时候,只需要使得最大的扰动的绝对值不超过某个阀值即可。而我们对输入的梯度,对于大于阀值的部分我们直接clip到阀值,对于小于阀值的部分,既然对于每个像素扰动方向只有+-两个方向,而现在方向已经定了,那么为什么不让其扰动的程度尽量大呢?因此对于小于阀值的部分我们就直接给其提升到阀值,这样一来,相当于我们给梯度加了一个符号函数了。2.由于FGSM这个求导更新只进行一次,如果直接按值更新的话,可能生成的扰动改变就很小,无法达到攻击的目的,因此我们只需要知道这个扰动大概的方向,至于扰动多少我们就可以自己来设定了~~(欢迎讨论)

  2.FGSM的进一步解释

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FGSM(Fast Gradient Sign Method)是一种基于梯度的对抗攻击方法,其主要目标是在给定的模型中,通过微小的扰动来欺骗模型,使其产生错误的预测结果。然而,尽管FGSM攻击具有一定的效果,但其效果不好的原因主要体现在以下几个方面。 首先,FGSM攻击只是通过在原始输入数据的基础上添加一个正负梯度方向的微小扰动,目的是让模型产生错误的预测结果。然而,这种简单的扰动方式可能并不能完全迷惑模型,尤其是在模型具有较好的鲁棒性和泛化能力时,FGSM攻击的效果会大打折扣。 其次,FGSM攻击所添加的扰动是以线性梯度方向为基础的,这种线性扰动可能难以完美地匹配目标模型中非线性的决策边界。在复杂的模型和高维数据集中,FGSM攻击的扰动往往会在特征空间中迅速扩散,导致添加的扰动对结果的影响较小,从而造成攻击效果不佳。 此外,FGSM攻击没有考虑到目标模型的反对抗性训练。如果目标模型使用了一些防御措施,例如添加了对抗性样本训练或者随机扰动等防御机制,FGSM攻击的效果将会进一步减弱,无法对模型造成明显影响。 综上所述,FGSM攻击在某些情况下可能会取得一定的效果,但在面对具有较高鲁棒性和防御机制的模型时,其攻击效果较差。在对抗攻击中,研究人员需要进一步发展新的攻击方法,以充分利用模型的弱点,并越过其防御机制,从而提高攻击的成功率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值