论文: Revisiting Adversarial Training at Scale
代码: https://github.com/UCSC-VLAA/AdvXL
1. 前人缺点和本文贡献
先前的对抗训练仅针对小模型和小数据,比如说ResNet-50模型和CIFAR-10这样小并且低分别率的数据集,对抗训练针对大模型和大数据集的效果还不明朗。并且对抗训练是出了名的资源密集型,限制了它的可扩展性。为了应对这一挑战,研究人员一直在寻求更有效的对抗训练方法。例子包括Free Adversarial Training[51]和Fast Adversarial Training[58],两者都旨在降低训练成本,同时保持模型的鲁棒性对此作者提出以下贡献
(1)引入一种高效的对抗训练方法advXL,使用两段对抗训练(twostage efficient adversarial training),以可承受的计算成本,针对大模型和大数据集(web-scale data)进行对抗性训练,实验表明advXL在ImageNet-1K+AutoAttack下建立了最强的鲁棒性,通过在DataComp-1B数据集上进行训练,我们的AdvXL使一个普通的ViT-g模型大大超过了之前对抗训练在l∞,l2-和L1 下的鲁棒精度记录,分别提高了11.4%,14.2%和12.9%。
(2)使用CLIP的text encoder作为工具让我们学习弱标签图片(web-crawled images),这种训练图片
对于规模化的对抗性训练,通常缺少精确的标签,但有相应的文本描述
2. 论文前置知识
参考笔记:https://blog.csdn.net/weixin_41712499/article/details/110878322
对抗训练基本思想——Min-Max公式
(1)中括号里的含义为,我们要找到一组在样本空间内、使Loss最大的的对抗样本(该对抗样本由原样本x和经过某种手段得到的扰动项r_adv共同组合得到)。这样一组样本组成的对抗样本集,它们所体现出的数据分布,就是该中括号中所体现的。
(2)外层min()函数指的则是,我们面对这种数据分布的样本集,要通过对模型参数的更新,使模型在该对抗样本集上的期望loss最小
主要做法为:
- 首先先做梯度上升,找到最佳扰动r,使得loss最大;
- 其次梯度下降,找到最佳模型参数(所有层的模型参数,这一步和正常模型更新、梯度下降无异),使loss最小。
针对内部最大化问题,作者采用了广泛认可的基于pgd的对抗训练(PGD-AT)方法来解决,该方法以其鲁棒性和计算效率而闻名,针对外部最小化问题,我们通常采用随机梯度下降(Stochastic Gradient Descent)或AdamW等优化算法[38],使用交叉熵作为损失函数L
3. advXL对抗训练的原理
3.1 基本思想
我们的对抗性训练有两个阶段的过程:轻量级的预训练阶段和密集的微调阶段。在预训练阶段,模型在较短的令牌长度( image token reduction,即图片的部分或降低分辨率后的图片)和较弱的攻击下进行训练,持续时间相对较长,然后,在随后的微调阶段,使用全分辨率和更强攻击的输入来训练模型。与普通的单阶段对抗训练管道相比,这种从粗到精、从弱到强、两阶段训练管道显著降低了总体训练成本,使其在计算上能够承受进一步的扩展
3.2 image token reduction
(1)Random Masking随机掩盖,
(2)Block Masking区域掩盖,这种方法保留图像中连续大块中的令牌,同时丢弃其他令牌。这种方法利用了对象在图像中心区域的常见位置,潜在地保留了语义上有意义的标记,同时显著降低了冗长输入的计算成本。
(3)Resizing图片缩放:例如将原来224 x 224图像大小调整为112 × 112在计算上类似于将75%的掩蔽率应用于将图像大小调整为224 × 224。在我们的方法中,我们选择抗混叠双线性插值来更好地保持图像质量
3.3 Weak-to-strong training.
另一个会影响对抗训练速度的因素是生成对抗样本所需要的梯度步骤gradient steps,一般来说增加梯度步骤的数量会导致更强的攻击并增强模型的对抗鲁棒性,但不可避免地会增加计算成本,据报道,通过对抗训练形成一个健壮的网络可能需要更长的时间,比建立一个非健壮的等效网络多3到30倍[51],先前的研究[44,51,59]提出了回收梯度信息或使用小型生成器网络等策略来减轻对抗性训练中显著的计算负担,作者在预训练阶段应用少量的PGD步骤(例如,PGD-1),随后在微调阶段增加了PGD步骤(例如,PGD-3),这种方法提供了显著的额外加速,提高了从粗到精的训练管道获得的效率(例如,高达2倍),因为解决对抗性训练的内部优化通常需要多次迭代的优化,并且非常耗时
3.4 Fine-tuning
我们发现,在短时间内使用全分辨率输入和更强的攻击对我们的模型进行进一步的对抗性训练,可以产生相当大的改进,并提供更高鲁棒性与更低时间消耗之间的权衡,与预训练阶段相比,微调阶段明显更短,通常减少一到两个数量级。因此,尽管每个样本可能需要大量的图像令牌,并且在此微调阶段需要更多的梯度步骤(例如,通过切换回强PGD-3攻击者,需要2倍),总体计算量不会显着增加
3.5 CLIP Embedding for Web-Crawled Images
先前的工作已经利用预训练CLIP文本编码器的零射击泛化能力(zero-shot generalization)[47]来帮助一系列下游任务,包括目标检测,分割,同样我们在此提出使用CLIP文本编码器在具有详细文本描述数据集上训练分类器的权重,如LAION-400M[50]和DataComp1B[18]。此外,在这些庞大的数据集上进行对抗性训练,使模型能够超越预定义的类别,并通过自然语言监督直接学习复杂的类关系.(Similarly, we hereby propose to employ CLIP text encoder to extract classifier weights when training on web-crawled large-scale datasets with open text descriptions)
损失函数
对抗性训练框架可以描述如下,其中ft(Text Encoder)的参数是冻结的,仅训练ft(Image Encoder)的参数(这一段还不懂在干什么,等代码)
4 实验
4.1 具体实现
数据集
ImageNet-1K,ImageNet-21K硬标签数据,LAION-400M和DataComp-1B两个从互联网上抓取的有文本描述信息的弱标签数据,我们选择的训练数据集涵盖了广泛的代表性数据集,从1M到1B个样本
训练
我们的训练从使用图像大小为112 × 112和步长为4/255的PGD-1的预训练阶段开始。随后,模型采用图像尺寸为224 × 224,步长为4/255的PGD-3进行微调阶段。我们主要关注的是ViT模型,采用了AdamW优化器[38],它具有短期线性学习率预热,然后是余弦学习率计划。对抗训练分为pre-training阶段和fine-tuning阶段,都是200epochs
评价模型鲁棒性
使用AutoAttack
advXL其他参数
这三种方法都有显著的计算速度提升。值得注意的是,在这些策略中,图像调整大小显示出更优越的性能,可能是因为它受信息丢失的影响最小,将输入图像的大小调整为112 × 112会导致总计算量减少75%,而干净精度仅略微下降2.5%,PGD-20鲁棒精度仅下降2.0%。我们选择112 × 112的图像大小作为预训练的默认设置,因为它在效率和性能之间取得了令人满意的平衡
4.2 对比现阶段SOTA模型
这是基于I∞,I2 I1下对比各个SOTA训练方式下模型鲁棒性的比较,对于每个模型,我们报告了它使用的训练集,它使用的训练样本的数量和分辨率,它是否使用预训练的权重,数据集上的“+”表示除了ImageNet-1K之外,在训练过程中使用的任何其他数据集。由于其前所未有的模型和数据规模,我们的AdvScale成功地确保了所有三个稳健性指标的最新记录
5 核心代码
coming soon
6 重要参考文献
[51]Ali Shafahi, Mahyar Najibi, Mohammad Amin Ghiasi,Zheng Xu, John Dickerson, Christoph Studer, Larry S Davis,Gavin Taylor, and Tom Goldstein. Adversarial training for
free! NeurIPS, 32, 2019
[58]Eric Wong, Leslie Rice, and J. Zico Kolter. Fast is better than free: Revisiting adversarial training. In ICLR, 2020
[59] Chaowei Xiao, Bo Li, Jun-Yan Zhu, Warren He, Mingyan Liu, and Dawn Song. Generating adversarial examples with adversarial networks. IJCAI, 2018
[44] Omid Poursaeed, Isay Katsman, Bicheng Gao, and Serge Belongie. Generative adversarial perturbations. In CVPR, 2018.