引言

视觉变换器(Vision Transformers,简称ViTs)在图像分类中的应用具有显著的优势。ViTs通过将图像划分为一系列小块(patches),然后将它们视为一个序列来处理。这种方法使得ViTs能够捕捉到图像的全局特征,而不仅仅是局部特征。ViTs利用自注意力(self-attention)机制来理解图像块之间的关系,这使得模型能够更有效地处理图像中的重要部分。与传统的卷积神经网络(CNNs)相比,ViTs在处理图像分类任务时更能理解和利用图像的整体结构,提供了更好的分类性能。此外,ViTs在处理更大和更复杂的图像数据集时显示出了更好的扩展性和泛化能力。

对抗攻击是一种旨在欺骗机器学习模型的技术。在这种攻击中,攻击者轻微但有意地修改输入数据(如图像),以使机器学习模型做出错误的预测或分类。这些修改通常对人眼来说几乎是不可察觉的,但却能导致模型性能大幅下降。

对于传统的卷积神经网络(CNNs),对抗攻击尤其具有破坏性。CNNs通常在图像识别和分类任务中表现出色,但它们对输入数据的微小变化非常敏感。因此,通过对抗攻击引入的微小变动可以使CNNs做出完全错误的预测。这暴露了CNNs在处理图像时的一个重要弱点,即它们在理解图像整体内容和结构时的脆弱性。这种脆弱性对于安全关键的应用(如自动驾驶车辆的视觉系统)来说是一个重大问题,需要通过改进模型设计和采用更复杂的防御机制来解决。

论文目的和研究重点

这篇论文的主要目的是研究视觉变换器(Vision Transformers,简称ViTs)在对抗性攻击下的鲁棒性。作者们关注的是ViTs在标准白盒和黑盒攻击下的表现、CNNs与ViTs之间对抗性实例的可转移性,以及简单集成防御策略的安全性。通过这些研究,论文旨在深入了解ViTs在面对这些挑战时的性能和安全性,从而推动对抗性机器学习领域的发展。

这篇论文的研究主要集中在三个方面:

  1. 白盒攻击下的视觉变换器安全性

    • 研究视觉变换器(Vision Transformers,简称ViTs)在白盒攻击条件下是否比传统的卷积神经网络(CNNs)更安全。作者们使用六种标准的白盒对抗性机器学习攻击,攻击视觉变换器、Big Transfer模型和传统CNNs(例如ResNets)。结果显示,在白盒攻击条件下,视觉变换器与其他模型一样容易受到攻击。
  2. 视觉变换器与其他模型间对抗性实例的可转移性研究

    • 探讨在视觉变换器和其他非变换器模型之间对抗性实例的可转移性。实验涉及CIFAR-10和CIFAR-100的八个模型(包括四个视觉变换器,两个Big Transfer模型和两个ResNets),以及使用七个模型(包括三个视觉变换器,两个Big Transfer模型和两个ResNets)研究ImageNet上的视觉变换器的可转移性。研究发现,视觉变换器和其他非变换器模型间的对抗性实例可转移性出奇地低。
  3. 利用可转移性现象提供安全性的分析

    • 研究如何利用对抗性实例的可转移性来提高安全性。这一部分分为白盒和黑盒分析。在白盒分析中,作者开发了一种新的白盒攻击方法,称为自注意力混合梯度攻击(Self-Attention blended Gradient Attack,简称SAGA),结果表明无法利用可转移性现象来实现白盒安全性。然而,在黑盒攻击条件下,通过结合视觉变换器和Big Transfer模型的简单集成,可以在不牺牲清洁准确性的情况下实现前所未有的鲁棒性。

Self-Attention Gradient Attack

Self-Attention Gradient Attack (SAGA)是一种专门设计用来同时破坏视觉变换器(Vision Transformers, ViTs)和卷积神经网络(CNNs)的新型白盒攻击。以下是其详细的攻击过程:

  1. 攻击动机:SAGA的动机是证明即使是ViTs和Big Transfer Models的简单集成也不能在白盒攻击下提供安全性。例如,假设有一个集成模型由ViT-L-16和BiT-M-152x4组成,通过分析这两种模型的低可转移性,SAGA演示了仅攻击一个模型生成的对抗样本不足以评估集成模型的安全性。
  2. 数学描述:SAGA假设攻击者了解集成防御中的模型和训练参数。不同于完全专注于优化单一模型,SAGA旨在同时破坏多个模型。给定一个由视觉变换器集合V和CNNs集合K组成的集成,攻击者的目标是创造一个对抗样本 ( x_{\text{adv}} ),使得所有V和K中的成员都误分类。
  3. 对抗样本的迭代计算:对抗样本通过以下公式迭代计算:
    x adv ( i + 1 ) = x adv ( i ) + s × sign ( G blend ( x adv ( i ) ) ) x_{\text{adv}}^{(i+1)} = x_{\text{adv}}^{(i)} + s \times \text{sign}(G_{\text{blend}}(x_{\text{adv}}^{(i)})) xadv(i+1)=xadv(i)+s×sign(Gblend(xadv(i)))
    其中, x adv ( 1 ) = x x_{\text{adv}}^{(1)} = x xadv(1)=x是初始输入图像,s是攻击的步长。
  4. 混合梯度 G blend G_{\text{blend}} Gblend G blend G_{\text{blend}} Gblend定义如下:
    G blend ( x adv ( i ) ) = ∑ k ∈ K α k ∂ L k ∂ x adv ( i ) + ∑ v ∈ V α v ϕ v ∂ L v ∂ x adv ( i ) G_{\text{blend}}(x_{\text{adv}}^{(i)}) = \sum_{k \in K} \alpha_k \frac{\partial L_k}{\partial x_{\text{adv}}^{(i)}} + \sum_{v \in V} \alpha_v \phi_v \frac{\partial L_v}{\partial x_{\text{adv}}^{(i)}} Gblend(xadv(i))=kKαkxadv(i)Lk+vVαvϕvxadv(i)Lv
    这个公式中,第一项对应于CNNs集合K中模型的损失函数梯度,每个模型k有一个权重因子 α k \alpha_k αk。第二项对应于ViTs集合V中模型的损失函数梯度,每个模型v有一个权重因子 α v \alpha_v αv 和一个特定于视觉变换器的自注意力映射 ϕ v \phi_v ϕv
  5. 自注意力映射 ϕ v \phi_v ϕv ϕ v \phi_v ϕv是与集成中第v个变换器相关联的自注意力映射,计算方法为:
    ϕ v = ∏ l = 1 n l ∏ i = 1 n h ( 0.5 W l i ( att ) + 0.5 I ) \phi_v = \prod_{l=1}^{nl} \prod_{i=1}^{nh} (0.5 W_{li}^{(\text{att})} + 0.5I) ϕv=l=1nli=1nh(0.5Wli(att)+0.5I)
    其中, n h nh nh是每层的注意力头数量, n l nl nl是注意力层的数量, W l i ( att ) W_{li}^{(\text{att})} Wli(att)是每个注意力头中的注意力权重矩阵,I是单位矩阵。

自注意力的原因是:

vision
pytorch/vision: 一个基于 PyTorch 的计算机视觉库,提供了各种计算机视觉算法和工具,适合用于实现计算机视觉应用程序。

在Self-Attention Gradient Attack (SAGA)中计算视觉变换器(Vision Transformer, ViT)的自注意力映射是关键的步骤之一,原因如下:

  1. 突出关键特征:自注意力机制使ViT能够集中在输入图像中最重要的部分。通过计算自注意力映射,我们可以确定模型在做出决策时关注的区域。在SAGA中,使用这些映射可以帮助攻击更有针对性地修改那些模型认为最重要的图像区域。

  2. 提高攻击效率:在对抗性攻击中,目标是以尽可能小的扰动来欺骗模型。通过使用自注意力映射,SAGA能够更有效地生成对抗性样本,因为它直接影响模型的决策过程中最关键的部分。这种方法增加了攻击对模型输出的影响,同时可能减少了达到此目的所需的扰动量。

  3. 针对性强的攻击:自注意力映射的使用使SAGA成为一种特别针对ViTs的攻击。由于ViTs的工作原理与传统CNNs不同,它们对输入数据的处理方式也不同。利用ViTs的核心机制——自注意力——可以更有效地设计针对这些模型的攻击。

  4. 揭示ViTs的脆弱性:通过利用ViTs的自注意力机制,SAGA揭示了这些模型在对抗性攻击面前的脆弱性。这对于深入了解ViTs的安全性和进一步改进其鲁棒性至关重要。

总的来说,计算自注意力映射是SAGA攻击中不可或缺的一部分,它利用了ViTs的核心特征来提高攻击的有效性和针对性。

通过这种方法,SAGA能够生成同时被ViTs和CNNs错误分类的对抗样本,从而证明即使是ViTs和Big Transfer Models的简单集成也不能在白盒攻击下提供足够的安全性。

下面是用pytorch写的一个SAGA的示例:

import torch
import torch.nn.functional as F

def calculate_self_attention_map(model, x):
    # 这是一个简化的示例,具体实现取决于模型的结构
    # 通常你需要修改模型以获取每层的注意力图
    # 注意:此函数需要根据实际模型进行适配
    attention_maps = []
    for layer in model.transformer_layers:
        attention_map = layer.self_attention(x)
        attention_maps.append(attention_map)
    # 将所有注意力图合并
    return sum(attention_maps) / len(attention_maps)

def saga_attack(models, x, epsilon, alpha, iterations):
    """
    SAGA攻击实现
    :param models: 一个包含ViTs和CNNs的元组
    :param x: 原始图像
    :param epsilon: 攻击的扰动界限
    :param alpha: 攻击的步长
    :param iterations: 迭代次数
    :return: 对抗样本
    """
    x_adv = x.clone().detach().requires_grad_(True)

    for i in range(iterations):
        grads = []
        for model, is_vit in models:
            output = model(x_adv)
            loss = F.nll_loss(output, target)  # 假设target是真实标签
            model.zero_grad()
            loss.backward(retain_graph=True)
            grad = x_adv.grad.data.clone()
            
            if is_vit:  # 如果是ViT,计算自注意力映射
                attention_map = calculate_self_attention_map(model, x_adv)
                grad *= attention_map

            grads.append(grad)

        # 求所有模型梯度的平均值
        mean_grad = torch.mean(torch.stack(grads), dim=0)
        x_adv = x_adv + alpha * mean_grad.sign()
        x_adv = torch.min(torch.max(x_adv, x - epsilon), x + epsilon).detach_().requires_grad_(True)

    return x_adv

# 使用示例
# models = [(vit_model, True), (cnn_model, False)]
# x_adv = saga_attack(models, x, epsilon=0.03, alpha=1e-2, iterations=40)

黑盒攻击下的安全性

在黑盒攻击环境下,集成模型显示出更好的安全性。例如,在使用RayS攻击时,集成模型在CIFAR-10、CIFAR-100和ImageNet上的鲁棒准确率分别提高了66.5%、73%和32.1%。即使在使用Adaptive攻击(攻击者拥有100%的训练数据和查询访问权限)的情况下,集成模型在CIFAR-10上仍能达到57%的鲁棒准确率。

这些结果表明,通过利用不同模型之间低对抗性样本可转移性现象,可以创建一个在清洁数据上接近最先进性能且在黑盒攻击环境下具有显著鲁棒性的防御。

总结

这篇论文在对抗性机器学习领域对视觉变换器(Vision Transformers, 简称ViTs)的研究提供了一系列新的发现和贡献,这些成果为理解和改进ViTs在对抗性环境下的性能提供了宝贵的见解:

  1. ViTs的安全性与传统CNNs相当:研究发现,尽管ViTs在图像处理任务中表现出色,但它们在白盒攻击条件下的安全性并不优于传统的卷积神经网络(CNNs)。这表明ViTs在对抗性攻击下同样易受攻击,特别是在面对强大的白盒攻击时。

  2. 对抗性样本的低可转移性:论文中的实验显示,ViTs与其他非变换器模型(如CNNs)之间的对抗性样本可转移性出奇地低。这表明在一定程度上,ViTs对某些特定类型的攻击具有天然的防御优势。

  3. 自注意力梯度攻击(SAGA)的提出:这篇论文提出了一种新型的白盒攻击方法——SAGA。这种攻击方法利用了ViTs的自注意力机制,能够同时破坏ViTs和CNNs,证明了即使是ViTs和Big Transfer Models的集成在白盒攻击下也不是安全的。

  4. 集成模型在黑盒攻击下的强鲁棒性:研究还表明,通过将ViTs与Big Transfer Models集成,可以显著提高模型在黑盒攻击环境下的安全性。这种集成利用了不同模型之间的低可转移性,提供了更好的鲁棒性,同时保持了高水平的清洁数据准确性。

总的来说,这篇论文不仅揭示了ViTs在面对对抗性攻击时的弱点,也指出了通过利用ViTs独特结构和集成方法可以增强模型安全性的潜力。这些发现对于未来ViTs和其他深度学习模型在安全关键应用中的开发和部署具有重要意义。

关于进一步提升视觉变换器(Vision Transformers, ViTs)的安全性,未来的研究方向可以包括以下几个重点领域:

  1. 改进ViTs的鲁棒性:研究如何通过修改ViTs的架构或训练过程来增强其对对抗性攻击的鲁棒性。例如,探索新的正则化技术、更强大的对抗性训练方法,或是设计能够更有效识别和抵抗对抗性样本的网络结构。

  2. 自注意力机制的优化:考虑到自注意力机制是ViTs的核心,对其进行优化可能会提高模型的安全性。研究如何调整自注意力层,以便它们能更有效地区分正常输入和对抗性输入。

  3. 混合模型的研究:探索将ViTs与其他类型的神经网络模型(如CNNs)结合使用的可能性,以利用不同模型的互补优势来提高整体系统的鲁棒性。

  4. 更复杂的对抗性攻击模拟:进行更深入的研究以模拟和分析更复杂和现实的对抗性攻击场景。这包括研究不同类型的攻击(例如,基于不同的攻击目标和攻击限制)和更现实的攻击环境。

  5. 解释性和可视化工具的开发:开发新的工具和技术来更好地理解和解释ViTs是如何处理输入的,以及它们为何对特定类型的对抗性攻击敏感。这可能有助于识别模型的薄弱环节并指导未来的改进。

  6. 跨模态学习和防御策略:探索在不同类型的数据(如图像、文本和音频)上训练ViTs的可能性,以及这种跨模态学习如何影响模型的鲁棒性。同时,研究跨模态防御策略来增强模型对对抗性攻击的抵抗力。

  7. 实时检测和响应机制:开发能够实时检测对抗性攻击并作出响应的机制,例如,通过在模型中集成异常检测层或反馈系统,以在检测到潜在的对抗性攻击时动态调整模型的行为。

推荐内容
阅读全文
AI总结
GitHub 加速计划 / vi / vision
29
0
下载
pytorch/vision: 一个基于 PyTorch 的计算机视觉库,提供了各种计算机视觉算法和工具,适合用于实现计算机视觉应用程序。
最近提交(Master分支:23 天前 )
196d9700 2 天前
95f10a4e 5 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐