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

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

目前基于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的可解释性算法模型进行归类整理,从而帮助人们更好的理解此类模型架构,希望可以对大家有所帮助。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/400231.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无字母绕过webshell

目录 代码 payload构造 php7 php5 构造payload 代码 不可以使用大小写字母、数字和$然后实现eval的注入执行 <?php if(isset($_GET[code])){$code $_GET[code];if(strlen($code)>35){die("Long.");}if(preg_match("/[A-Za-z0-9_$]/",$code))…

JavaEE 的入门

1. 学习JavaEE Java EE(Java Platform Enterprise Edition), Java 平台企业版. 是JavaSE的扩展, ⽤于解决企业级的开 发需求, 所以也可以称之为是⼀组⽤于企业开发的Java技术标准. 所以, 学习JavaEE主要是学习Java在 企业中如何应⽤. 前⾯学习的是Java基础, JavaEE 主要学习Jav…

easyExcel2.1.6自动trim()的问题

环境&#xff1a;easyExcel 2.1.6 问题&#xff1a;easyExcel会自动忽略String中的空格&#xff0c;调用trim()函数&#xff0c;导致excel中的空格失效。 代码如上所示&#xff0c;所以只需要把globalConfiguration的autoTrim()&#xff0c;设置为false即可 那么怎么设置confi…

【区块链+金融服务】河北股权交易所综合金融服务平台 | FISCO BCOS应用案例

区域性股权市场是我国资本市场的重要组成部分&#xff0c;是多层次资本市场体系的基石。河北股权交易所&#xff08;简称&#xff1a;河交所&#xff09; 作为河北省唯一一家区域性股权市场运营机构&#xff0c;打造河北股权交易所综合金融服务平台&#xff0c;将区块链技术与区…

Linux centos stream 9命令及源码

学过linux操作系统的人,对文件、命令比较熟悉。最多的操作是用命令处理文件。 随着学习的深入,会提出疑问:命令长什么样? 出于好奇,会找到命令存放的地方,用cat命令看一下,结果可想而知。 我们知道,命令分内部命令和外部命令,存放在不同的位置。外部命令就是一个可执…

OpenAI API error: “Unrecognized request argument supplied“

题意&#xff1a;OpenAI API 错误&#xff1a;‘提供了无法识别的请求参数’ 问题背景&#xff1a; Im receiving an error when calling the OpenAI API. Its not recognizing file argument, which I submitted to the API. 我在调用 OpenAI API 时遇到错误。API 不识别我提…

HikariCP连接池:Possibly consider using a shorter maxLifetime value.

相关的SQL总结&#xff1a; session级别&#xff1a; show variables like %timeout%; mysql的global级别&#xff1a; show global variables like %timeout%; # 对应 mysql 修改配置&#xff08;单位 秒&#xff09; set global wait_timeout300; set global interacti…

C++结构体指针强制转换以处理电力系统IEC103报文

前言 最近依旧是开发规约解析工具的103篇&#xff0c;已经完成了通用分类服务部分的解析&#xff0c;现在着手开始搞扰动数据传输&#xff0c;也就是故障录波的传输。 在103故障录波&#xff08;扰动数据&#xff09;的报文中&#xff0c;数据是一个数据集一个数据集地存放&a…

51单片机学习记录-数码管操作

这里实现了静态数码管的显示。51单片机一共有可以显示4个数字&#xff0c;可以通过控制P2(4-2)的端口选择8个数字显示器中的一个显示数字&#xff0c;控制P0端口写入显示的数值信息。将操作的逻辑使用了函数Nixie进行了封装。 #include <8051.h>unsigned char NixieTabl…

思科默认路由配置2

#路由协议实现# #任务二默认路由配置2# #1配置计算机的IP地址、子网掩码和网关 #2配置Router-A的名称及其接口IP地址 Router(config)#hostname Router-A Router-A(config)#int g0/0 Router-A(config-if)#ip add 192.168.1.1 255.255.255.0 Router-A(config-if)#no shutdow…

Selenium + Python 自动化测试07(滑块的操作方法)

我们的目标是&#xff1a;按照这一套资料学习下来&#xff0c;大家可以独立完成自动化测试的任务。 本篇文章主要讲述如何操作滑块。 目前很多系统登录或者注册的页面都有滑块相关的验证&#xff0c;selenium 中对滑块的基本操作采用了元素的拖曳的方式。需要用到Actiochains模…

应用兼容性问题-abi动态库错误分析和解决

1&#xff0c;应用名和现象 运行环境&#xff1a; 云手机 现象&#xff1a; 2&#xff0c;分析 --------- beginning of crash 08-14 03:59:59.014 28740 28740 E AndroidRuntime: FATAL EXCEPTION: main 08-14 03:59:59.014 28740 28740 E AndroidRuntime: Process: com.ks…

大型、复杂、逼真的安全服和安全帽检测:数据集和方法

智能升级工地安全&#xff1a;SFCHD数据集与SCALE模块介绍 在人工智能&#xff08;AI&#xff09;技术飞速发展的今天&#xff0c;其在建筑工地安全领域的应用正逐渐展现出巨大潜力。尤其是高风险行业如化工厂的施工现场&#xff0c;对工人的保护措施要求极为严格。个人防护装…

十四、迭代器模式

文章目录 1 基本介绍2 案例2.1 Aggregate 接口2.2 Iterator 接口2.3 MyArray 类2.4 MyArrayIterator 类2.5 Client 类2.6 Client 类的运行结果2.7 总结 3 各角色之间的关系3.1 角色3.1.1 Aggregate ( 集合 )3.1.2 Iterator ( 迭代器 )3.1.3 ConcreteAggregate ( 具体的集合 )3.…

Luminar Neo for Mac/Win:创新AI图像编辑软件的强大功能

Luminar Neo&#xff0c;这款由Skylum公司倾力打造的图像编辑软件&#xff0c;为Mac和Windows用户带来了前所未有的创作体验与编辑便利。作为一款融合了先进AI技术的图像处理工具&#xff0c;Luminar Neo以其独特的功能和高效的操作流程&#xff0c;成为了摄影师、设计师及摄影…

TPshop商城的保姆教程(Ubuntu)

1.上传TPSHOP源码 选择适合自己的版本下载 TPshop商城源文件下载链接&#xff1a; 百度网盘 请输入提取码 上传tpshop的源码包到特定目录/var/www/html 切换到/var/www/html 目录下 cd /var/www/html修改HTML目录下所有文件权限 chmod -R 777 * 2.打开网址配置 TPshop安…

第九届“创客中国”武汉区域赛正式启幕 灵途科技勇夺前三,晋级决赛!

8月8日&#xff0c;第九届“创客中国”武汉区域赛正式启幕&#xff0c;首场聚焦先进制造领域。灵途科技勇夺先进制造领域专场企业组前三名&#xff0c;成功晋级决赛。 “创客中国”大赛是工业和信息化部组织开展的双创赛事活动&#xff0c;以构建产业链协同发展为出发点&#…

鸿蒙(API 12 Beta3版)【扩展屏投播开发指导】使用投播组件

通过本节开发指导&#xff0c;可在系统镜像投屏后&#xff0c;获取投屏设备信息&#xff0c;实现扩展屏模式的投播&#xff0c;实现双屏协作的能力。 运作机制 虚拟扩展屏 是在系统投屏启动过程中建立的&#xff0c;依据双端协商的投屏视频流的分辨率创建&#xff0c;支持1080…

进程与磁盘管理相关

进程与磁盘管理相关 进程创建&#xff08;或者存在的)的唯一标志》进程控制块 PCB是进程存在的唯一标志&#xff0c;当进程被创建时&#xff0c;操作系统为当前进程创建PCB&#xff0c;当进程结束时&#xff0c;会回收PCB PCB .进程描述信息 。进程控制和管理信息 。资源分…

【Next】初识 Next

概述 在Reactr中创建SSR应用&#xff0c;需要调用 ReactDOM.hydrateRoot 函数&#xff0c;而不是 ReactDOM.createRoot。 createRoot:创建一个Root,接着调用其 render 函数将 App 直接加载到页面上hydrateRoot:创建水合 Root, 是在激活的模式下渲染 App 服务端可用 ReactDOM…