Generating Transferable Adversarial Examples against Vision Transformers 论文阅读
ATA
论文全名:Generating Transferable Adversarial Examples against Vision Transformers
实验方法
对于图像分类任务,令是一个vit模型,给定一个良性样本,其真实标签为。其中H,W,C,K分别为高度,宽度,通道数,类数。模型F满足。一个对抗扰动可以引导模型F得出错误的预测:

其中M是一个0-1 mask矩阵,来决定perturbed pixels放在哪里。在典型的对抗干扰里,M默认是在所有位置放置,且的大小局限在一个小范围内。我们的目标是通过找到一个更好的位置掩蔽矩阵,来提高的可移植攻击能力。由于只有有限的pixels可以被扰动,我们就不限制的大小了。
Framework概览
我们用一个两阶段的ATA攻击框架来产生对抗干扰。首先,我们通过confuse 自注意力来定位到关键的patches,也就是找到最影响模型决策的patches;接着,我们通过扰乱image embedding,来找到这些patches里的最关键的pixel区域。也就是说我们利用了Vit中的结构特征:自注意力和image embedding,来产生对抗样本
Uncertain Attention Activation
检索影响力最大的patch
随着Vit中注意力层的深入,模型更倾向于关注最关键的区域,这也符合自注意力机制对vit的决策制定起着关键作用,因此我们利用它来产生uncertain attention。通过采用uncertain attention,可以选择更重要的分块区域,并逐步向patches中注入攻击pixels。
对于模型F来说,第b个模型块的class activated matrix C(CAM,类别识别矩阵)为:

其中为第b块的注意力矩阵,Q和K分别是查询和键矩阵。B为模型F中的块总数,h为多头注意力中头的数量,为the mean across the heads dimension。我理解的就是:
为矩阵对于目标类的relevance。
实际上,矩阵C是一个修正的注意力矩阵,来揭示不同token之间的相关性。代表token p对token q的贡献,是一个0到1的值。在vit中,token就是一个被展平的patch。
接下来,我们利用交叉熵来计算the uncertainty weight ,交叉熵用来定量描述一个系统的不确定性,在这里是为了更加确定attention的不确定性,也就是说不同token之间的关联。对于第p个patch的计算公式如下,本质上是指第p个patch对其他所有patch相关性之和:

其中为展平后patches的下标,是矩阵C的列下标。之后我们得到了一个uncertainty activation weight向量。
由于代表第p个patch的注意力的不确定性(对其他所有patch的相关性之和越高,说明这个patch对结果影响越大),我们可以激活不确定性注意力来进行攻击。具体而言:
有了非确定激活矩阵W,我们就可以考虑"扰乱像素"的分配了。给定一个扰乱像素的数量m,那么扰乱像素可以分配给每个patch的数量可以用向量来表示。也就是说,第p个patch内可以分配得到的扰乱像素的数量为。
Sensitive Embedding Perturbation
对image embedding进行扰动像素的分配
由于所有的Vit都应用了image embedding技术来获得patches,因此我们就迎合image embedding的策略来搜寻最佳的攻击位置。也就是说,我们的目标是发现敏感的像素点,它最影响图片的embedding操作,并将其作为攻击位置。
对于上面的扰乱像素分配向量,我们首先找到第一个非零元素,和它对应的展平patch ,然后寻找它内部最敏感的像素。具体而言,对于每个这样的patch ,我们对它的所有非零像素点进行遍历,并且计算将该位置置为0前后的变化值。这样我们就可以通过在embedding 过程中选择最大的变化位置,找到最影响token的像素点。计算过程就是:

Z是经过embedding过程后的embedding matrix,就是对于patch 在位置(i,j)处置为0前后的变化。就是patch p中前大的var值的位置下标。mask()是一个函数,它返回一个0-1mask并且以位置参数作为输入。这样,第p个patch中哪些像素点被扰动,哪些不被扰动,就可以用来表示了。
接下来我们就可以计算扰乱像素的分配矩阵了:

locate函数连接所有mask向量,并且将它们重新组合成一个形状为的矩阵。这个mask矩阵就指明了哪些像素要被扰乱,哪些不被扰乱。
最后,我们要利用这个位置mask矩阵来优化对抗样本。我们采用的损失函数为:

其中log后面那部分是指,当给定输入x+时,由模型F预测出真实值的概率。这样随着训练的不断进行,损失函数L会越来越小,进而提升了扰动和攻击能力。
训练步骤
我们用以上的步骤定位到攻击位置,然后优化攻击扰动通过损失函数L。
特别地,给定一个vit模型F,样本x和真实标签y,一个要优化的随机初始化的对抗扰动。通过最小化损失函数L,来产生。
实验
实验设置
- 数据集和模型
使用ImageNet的2000张图片作为测试集,用于以下模型的评估。
选择10+个典型transformer和CNN并从开源基准处预训练模型。具体采用Vit家族、DeiT家族、ConvViT家族,ResNet、Densenet、AlexNet
- 模型衡量标准与基准线
攻击成功率ASR:越高越好
选择3个典型对抗样本:AdvP、PatchFool、TransferAdv。
不限制每个像素的扰动长度,而限制扰动像素的个数m。
- 实验细节
将输入图片变换为224*224大小,设定扰动像素的个数m为1024。所有目标模型在ImageNet上进行预训练,预训练中使用Adam作为优化器,初始学习率为1,总迭代次数为250。在第50个和150个迭代周期时,学习率衰减。
ablation study
我们研究了只使用uncertaion attention activation和只使用sensitive embedding perturbation的情况,结果证明,还是一起用着好。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?