更深层的理解视觉Transformer, 对视觉Transformer的剖析

人工智能 智能汽车
目前基于Transformer结构的算法模型已经在计算机视觉(CV)领域展现出了巨大的影响力。他们在很多基础的计算机视觉任务上都超过了之前的卷积神经网络(CNN)算法模型。

本文经自动驾驶之心公众号授权转载,转载请联系出处。

写在前面&&笔者的个人理解

目前基于Transformer结构的算法模型已经在计算机视觉(CV)领域展现出了巨大的影响力。他们在很多基础的计算机视觉任务上都超过了之前的卷积神经网络(CNN)算法模型,下面是笔者找到的最新的在不同基础计算机视觉任务上的LeaderBoard榜单排名,通过LeaderBoard可以看到,基于Transformer算法模型在各类计算机视觉任务上的统治地位。

  • 图像分类任务

首先是在ImageNet上的LeaderBoard,通过榜单可以看出,前五名当中,每个模型都使用了Transformer结构,而CNN结构只有部分使用,或者采用和Transformer相结合的方式。

图像分类任务的LeaderBoard

  • 目标检测任务

接下来是在COCO test-dev上的LeaderBoard,通过榜单可以看出,前五名当中,一半以上都是基于DETR这类算法结构进行延伸的。

图片目标检测任务的LeaderBoard

  • 语义分割任务

最后是在ADE20K val上的LeaderBoard,通过榜单也可以看出,在榜单的前几名中,Transformer结构依旧占据是当前的主力军。

图片语义分割任务的LeaderBoard

虽然目前Transformer展现出了巨大的发展前景,但是现在的计算机视觉社区还并没有完全掌握Vision Transformer的内部工作原理,也没有掌握其决策(输出的预测结果)的基础,那对其可解释性的需求就逐渐凸显了出来。因为只有了解了这类模型是如何做出决策的,才不仅可以提高它们的性能,还可以建立对人工智能系统的信任。

所以本文的主要动机就是探索Vision Transformer的不同可解释性方法,并根据不同算法的研究动机、结构类型以及应用场景进行分类,从而形成了一篇综述文章。

刨析Vision Transformer

因为刚才提到,Vision Transformer的结构在各类基础的计算机视觉任务中都取得了非常不错的成绩。所以之后计算机视觉社区涌现出了很多方法来增强它的可解释性。本文我们主要以分类任务为主线,从Common Attribution MethodsAttention-based MethodsPruning-based MethodsInherently Explainable MethodsOther Tasks这五个方面中,挑选出最新以及经典的工作进行介绍。这里放一下论文中出现的思维导图,大家可以根据自身感兴趣的内容,进行更加细致的阅读~

本文思维导图

Common Attribution Methods

基于属性方法的解释通常的出发点是对模型的输入特征如何一步一步得到最终输出结果过程的解释。这类方法主要用于衡量模型的预测结果和输入特征之间的相关性。

在这些方法中,例如Grad-CAM以及Integrated Gradients算法是直接应用于了基于视觉Transformer的算法上。一些其他的方法像SHAP和Layer-Wise Relevance Propagation(LRP)已经被用来探索基于ViT的架构上了。但是由于SHAP这类方法到的计算成本非常大,所以最近的ViT Shapely算法被设计出来用于适配ViT的相关应用研究。

Attention-based Methods

Vision Transformer正是得益于其注意力机制使其拥有了强大的特征提取能力。而在基于注意力的可解释性方法中,对注意力权重结果进行可视化则是一种非常有效的方法。本文对其中的几种可视化技术进行介绍

  • Raw Attention:该方法顾名思义,就是对网络模型中间层得到的注意力权重图进行可视化,从而对模型的效果进行分析。
  • Attention Rollout:该技术通过对网络的不同层中扩展注意力权重来跟踪从输入token到中间embedding之间的信息传输。
  • Attention Flow:该方法将注意力图视为一个流量网络,并使用最大流量算法计算从中间embedding到输入token的最大流量值。
  • partialLRP:该方法是用于可视化Vision Transformer中的多头注意力机制提出来的,同时还考虑了每个注意力头的重要性。
  • Grad-SAM:该方法用于缓解仅依靠原始注意力矩阵来解释模型预测的局限性,促使研究人员将梯度以用于原始的注意力权重中。
  • Beyond Intuition:该方法也是一种用于解释注意力的方法,包括注意力感知和推理反馈两个阶段。

最后放一张不同可解释性方法的注意力可视化图,大家可以自行感受一下不同可视化方法的区别。

不同可视化方法的注意力图对比

Pruning-based Methods

剪枝是一种非常有效的方法,被广泛应用于优化transformer结构的效率和复杂性。剪枝方法通过对冗余或者没用的信息进行删减,从而降低模型的参数量和计算复杂度。虽然剪枝算法侧重于提高模型的计算效率,但是该类算法依旧可以实现对模型的可解释性。

本文中针对基于Vision-Transformer的剪枝方法,大体可以分成三大类:explicitly explainable(显式可解释)、implicitly explainable(隐式可解释)、possibly explainable(可能可解释)。

  • Explicitly Explainable
    在基于剪枝的方法当中,有几类方法可以提供简单而且更可解释的模型。
  • IA-RED^2:该方法的目标是在算法模型的计算效率以及可解释性之间实现一个最优的平衡。并且在这个过程当中,保持原有ViT算法模型的灵活性。
  • X-Pruner:该方法是一种用于剪枝显著性单元的方法,通过创建一个可解释性的感知掩码来衡量每个可预测单元在预测特定类中的贡献。
  • Vision DiffMask:该剪枝方法包括在每个ViT层上加入门控机制,通过门控机制,可以实现在屏蔽输入的同时保持模型的输出。除此之外,该算法模型可以清晰地触发剩余图像中的子集,从而实现更好地对模型预测的理解。
  • Implicitly Explainable
    基于剪枝的方法当中,也有一些经典的方法可以被划分为隐式的可解释性模型类别中。
  • Dynamic ViT:该方法采用轻量级预测模块,根据当前的特征去估计每个token的重要性程度。然后将该轻量级的模块加入到ViT的不同层中,以分层的方式来修剪冗余的token。最重要的是,该方法通过逐步定位对分类贡献最大的关键图像部分来增强可解释性。
  • Efficient Vision Transformer(EViT):该方法的核心思想是通过重组token的方式来加速EViT。通过计算注意力得分,EViT保留最相关的token,同时将不太相关的token融合到另外的token中。同时论文的作者为了评估EViT的可解释性,对多个输入图像可视化了token的识别过程。

  • Possibly Explainable
    虽然这类方法最初并不是为了提高ViT的可解释性,但是这类方法为进一步研究模型的可解释性提供了很大的潜力。
  • Patch Slimming:通过自上而下的方法来专注图像中的冗余patch来加速ViT。该算法选择性的保留了关键补丁的能力来突出重要的视觉特征,从而增强可解释性。
  • Hierarchical Visual Transformer(HVT):该方法的引入用于去增强ViT的可扩展性和性能。随着模型深度的增加,序列长度逐渐减小。此外,通过将ViT块划分为多个阶段,并在每个阶段应用池化操作,显著提高了计算效率。考虑到对模型最重要组成部分的逐渐集中,有机会探索其对增强可解释性和可解释性的潜在影响。
Inherently Explainable Methods

在不同的可解释方法中,有一类方法主要是开发能够内在地解释算法模型,然而,这些模型通常难以达到与更复杂的黑盒模型相同的精度水平。因此,必须在可解释性和性能之间考虑谨慎的平衡。接下来对一些经典的工作进行简要的介绍。

  • ViT-CX:该方法针对ViT模型定制的基于掩码的解释方法。这种方法依赖patch embedding以及其对模型输出的影响,而不是聚焦对它们的关注。该方法包括掩码生成和掩码聚合两个阶段,从而提供更有意义的显著性图。
  • ViT-NeT:该方法是一种新的神经树解码器,通过树形结构和原型来描述决策过程。同时,该算法还可以对结果进行可视化解释。
  • R-Cut:该方法是通过Relationship Weighted Out and Cut来增强ViT的可解释性。该方法包括两个模块,分别是Relationship Weighted Out和Cut模块。前者侧重于从中间层提取特定类的信息,强调相关特征。后者执行细粒度的特征分解。通过对两个模块的集成,可以生成密集的特定于类的可解释性映射。
Other Tasks

就如同在文章开头提到的,除了分类之外,基于ViT的架构对其他CV任务的解释性仍在探索中。有几种专门针对其他任务提出的可解释性方法,接下来就对相关领域的最新工作进行介绍~

  • eX-ViT:该算法是一种基于弱监督语义分割的新型可解释视觉转换器。此外,为了提高可解释性,引入了属性导向损失模块,该模块包含全局级属性导向损失、局部级属性可判别性损失和属性多样性损失三种损失。前者使用注意图来创建可解释的特征,后两者则增强属性学习。
  • DINO:该方法是一种简单的自监督方法,并且是一种不带标签的自蒸馏方法。最终学习到的注意图能够有效地保留图像的语义区域,从而实现可以解释的目的。
  • Generic Attention-model:该方法是一种基于Transformer架构做预测的算法模型。该方法应用于三种最常用的架构,即纯自注意、自注意与共同注意相结合和编码器-解码器注意。为了检验模型的解释性,作者使用了视觉问答任务,然而,它也适用于其他CV任务,如目标检测和图像分割。
  • ATMAN:这是一种模态不可知的扰动方法,利用注意机制生成输入相对于输出预测的相关性图。该方法试图通过记忆效率注意操作来理解变形预测。
  • Concept-Transformer:该算法通过突出显示用户定义的高级概念的注意分数来生成模型输出的解释,从而确保可信性和可靠性。

未来展望

虽然目前基于Transformer架构的算法模型已经在各类计算机视觉任务上取得了非常出色的成绩。但是目前来看,对于如何利用可解释性方法的好处来促进模型调试和改进,以及提高模型的公平性和可靠性,特别是在ViT应用中,一直缺乏明显的研究。

所以本文以图像分类任务出发,对现有的基于Vision Transformer的可解释性算法模型进行归类整理,从而帮助人们更好的理解此类模型架构,希望可以对大家有所帮助。

原文链接:https://mp.weixin.qq.com/s/URkobeRNB8dEYzrECaC7tQ

责任编辑:张燕妮 来源: 自动驾驶之心
相关推荐

2022-04-11 09:20:00

模型训练

2024-11-21 16:06:02

2022-04-26 09:44:29

算法库EasyCV开源

2020-10-05 22:00:59

深度学习编程人工智能

2021-05-21 09:29:57

计算机互联网技术

2022-07-22 07:25:12

模型人工智能

2021-07-13 17:59:13

人工智能机器学习技术

2023-09-20 15:12:09

2021-12-01 10:05:12

模型人工智能计算

2023-09-20 08:52:57

Google模型

2021-05-19 09:00:00

人工智能机器学习技术

2022-05-07 11:00:04

人工智能训练移动设备

2023-07-03 09:55:01

2024-04-15 00:00:00

技术Attention架构

2023-01-08 13:22:03

模型

2024-04-19 12:38:20

3D检测

2021-12-06 09:53:09

自然语言神经网络人工智能

2024-11-13 16:24:33

ViT架构PyTorch

2024-07-30 11:20:00

图像视觉

2024-06-13 11:44:43

点赞
收藏

51CTO技术栈公众号