《Enhancing the Transferability of Adversarial Attacks through Variance Tuning》CVPR2021 论文下载地址 论文源码
一、摘要
简要摘要在这里有兴趣的再去看
本文提出了一个新的方法称为通过方差微调来提高基于迭代梯度的攻击方法,提高其攻击的可转移性。具体来说,在每次迭代时进行梯度计算,而不是直接使用当前梯度来进行动量积累,而是进一步考虑前一次迭代的梯度方差来调整当前梯度,以稳定更新方向,并逃避糟糕的局部最优状态。在标准ImageNet数据集上的经验结果表明,该方法可以显著提高基于梯度攻击的可转移性。此外,我们的方法还可以用于攻击集成模型或与各种输入转换进行集成。将方差调优与迭代法上的输入变换相结合在多模型设置下,基于梯度的攻击,集成方法对9种先进防御方法的平均成功率为90.1%,将当前的最佳攻击性能显著提高了85.1%。
二 代码跑起来
1.下载数据和模型
原md里面已经说的很详细了,这里注意下载数据集和模型是google云盘,如果google云盘下载不了的就换个浏览器(我在这里郁闷了一下午换各种方式)
防止有些小伙伴没有翻墙的,我存在百度云盘里面了 数据:链接:https://pan.baidu.com/s/1WSzy2ZzmzoReCWEDA5FejQ 提取码:1kfu 模型:链接:https://pan.baidu.com/s/12jwHrOWS9ET7txGuvvbfrw 提取码:ea5i
把数据和模型放在对应的文件夹下就可以了。
2.创建环境
安装必要的那些包(略过)
3.运行
python vmi_di_ti_si_fgsm.py
报错了 报错,然后百度了是因为batch_size设置太大了,我看了一下,才10嘛,然后调到了2(可能我没在服务器用GPU跑,我直接本地cpu跑的)
4.结果
跑通了
然后再output文件夹下可以看到生成的对抗样本
5.代码分析
一行一行分析,或者看作者的主要实现分析模块
|