MaxViT : 多轴Vision Transformer

news2024/11/15 11:06:40

        本文提出了一种高效、可扩展的多轴注意力模型,该模型包括两个方面:局部注意力被阻塞和全局注意力被扩张。这些设计选择允许在任意输入分辨率下的全局-局部空间交互,只有线性复杂度。还通过有效地将注意力模型与卷积混合在一起,提出了一个新的架构元素,并相应地提出了一个简单的分层视觉主干,称为MaxViT,通过简单地在多个阶段重复基本构建块。值得注意的是,即使在早期的高分辨率阶段,MaxViT也能够“看到”整个网络的全局。 


        受自然语言处理中Transformer[85]等自注意模型进化的启发,许多研究人员开始将注意机制引入视觉。Vision Transformer (ViT)可能是第一个完全基于Transformer的视觉架构,其中图像补丁被简单地视为单词序列,并且在这些视觉token上应用了一个Transformer编码器。当在大规模数据集上进行预训练时,ViT可以在图像识别上取得令人信服的结果。 

        如果没有广泛的预训练,ViT在图像识别方面表现不佳。这是由于Transformer具有较强的模型能力,具有较少的感应偏置,从而导致过拟合。为了适当地正则化模型容量并提高其可扩展性,许多后续工作研究了为局部注意力等视觉任务量身定制的稀疏Transformer模型。这些方法通常重新引入层次结构来弥补非局部性的损失。

        Swin Transformer通过在移位的非重叠窗口上应用自注意力来修改Transformer。该方法首次在纯视觉Transformer的ImageNet基准测试中优于ConvNets。尽管与ViT中使用的全注意力相比,基于窗口的注意力具有更大的灵活性和泛化性,但由于非局域性的丧失,基于窗口的注意力的模型容量有限,因此在ImageNet-21K和JFT等更大的数据体系上扩展不利。然而,在层次网络的早期或高分辨率阶段通过全注意力获取全局交互是计算量很大的,因为注意力算子需要二次复杂度。在一定的计算预算下,如何有效地结合全局和局部相互作用来平衡模型的能力和泛化性是一个挑战。

1. 引言

        提出了一种新型的Transformer模块,称为多轴自关注(Max-SA),它能够作为一个基本的架构组件,在单个块中执行局部和全局空间交互。与完全自注意力相比,Max-SA具有更大的灵活性和效率,即对线性复杂度的不同输入长度具有自然适应性; 与(移位的)窗口/局部注意相比,Max-SA通过提出一个全局接受域来允许更强的模型容量。此外,Max-SA仅具有线性复杂性,可以在网络的任何层中用作通用的独立注意力模块,即使在早期的高分辨率阶段也是如此。

        进一步设计了一种简单而有效的视觉骨干,称为多轴视觉变压器(MaxViT),通过分层堆叠由Max-SA和卷积组成的重复块。虽然提出的模型属于混合Vision Transformer的范畴,但MaxViT与以前的方法不同,因为力求简单,通过设计一个统一卷积、局部和全局注意力的基本块,然后简单地重复它。实验表明,在所有数据体制下,MaxViT显著提高了最先进的(SOTA)性能,适用于广泛的视觉任务,包括分类、目标检测和分割、图像美学评估和图像生成。

2. 相关工作

2.3 混合模型

        纯基于Transformer的视觉模型由于相对较少的归纳偏差而泛化较差。Vision Transformer 也表现出不合格的可优化性。一个有趣的简单改进是采用Transformer层和卷积层的混合设计,例如使用几个卷积来替换粗糙的patchify stem(将图像分割成一系列小块的步骤)

2.4 GANs Transformer

        Transformer 在生成对抗网络(GANs)中也被证明是有效的[26]。TransGAN构建了一个纯Transformer GAN,精心设计了局部注意力层和上采样层,在小规模数据集上显示了有效性。GANformer则探索了有效的全局注意力机制来改进StyleGAN generator。

        HiT提出了一种基于局部-全局注意力的高效Transformer生成器,可以扩展到1K高分辨率图像生成。

3. 方法

Blocked Multi-Axis Self-Attention (Max-SA)

        受到稀疏方法的启发,研究者们提出了一种新的注意力模块,称为“Blocked Multi-Axis Self-Attention”(Max-SA)。这个模块通过将全密集(fully dense)的注意力机制分解为两种稀疏形式(窗口注意力和网格注意力)来降低计算复杂度。

稀疏形式的优点
  • 降低复杂度:传统的注意力机制(如Transformer中的自注意力)具有二次复杂度(即O(n^2)),其中n是序列长度。通过将注意力机制分解为稀疏形式,Max-SA能够将复杂度降低到线性级别,而不会损失非局部性(non-locality)的特性。
  • 非局部性:非局部性意味着每个位置都可以与序列中的任何其他位置进行交互。Max-SA通过其稀疏形式的设计,仍然能够保持这种非局部性。
顺序设计的优势
  • 简单性:Max-SA的设计是顺序的,这意味着每个模块可以按照特定的顺序依次应用。
  • 灵活性:每个模块既可以单独使用,也可以以任何顺序组合,这为模型设计提供了很大的灵活性。
  • 性能:尽管设计简单且灵活,但Max-SA的性能甚至超过了以前的方法。
MaxViT的构建
  • 层次结构:MaxViT通过将Max-SA模块与MBConv(MobileNetV2中的深度可分离卷积变体)交替堆叠在一个层次结构中,形成了一种新颖的模型结构。
  • 全局和局部感受野:在整个网络中,从浅层到深层,MaxViT都能够利用全局和局部的感受野,这使得模型在模型容量和泛化能力方面均表现出色。

        引入了一种新型的注意模块,称为阻塞多轴自注意(Max-SA),通过将全密集的注意机制分解为两种稀疏形式{窗口注意力和网格注意力},将普通注意的二次复杂度降低到线性,而不会损失任何非局域性。

        全密集(fully dense)的注意力机制指的是在注意力计算过程中,对于输入序列中的每一个元素(例如,在自然语言处理中的每个单词或在计算机视觉中的每个像素),都会与其他所有元素计算注意力权重。这种机制不区分哪些元素是更重要的,而是对所有元素都给予相同的关注。

        与传统的全连接层类似,

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IAR全面支持芯驰科技E3系列车规MCU产品E3119/E3118

中国上海,2024年7月11日 — 全球领先的嵌入式系统开发软件解决方案供应商IAR与全场景智能车芯引领者芯驰科技宣布进一步扩大合作,最新版IAR Embedded Workbench for Arm已全面支持芯驰科技的E3119/E3118车规级MCU产品。IAR与芯驰科技有着悠久的合作历史&…

强化学习实战3:Sarsa 与 Q-Learning 算法求解迷宫问题

前置知识 首先实验环境依然是我们之前说的迷宫环境,然后是一些基本术语,应该都是比较熟悉的: 强化学习的算法大概有两类,一类是策略迭代(讲究的是策略 Π ),还有一类是价值迭代,也就…

电脑 DNS 缓存是什么?如何清除?

DNS(Domain Name System,域名系统)是互联网的重要组成部分,负责将人类易记的域名转换为机器可读的 IP 地址,从而实现网络通信。DNS 缓存是 DNS 系统中的一个关键机制,通过临时存储已解析的域名信息&#xf…

lnmp+DISCUZ+WORDPRESS

lnmpDISCUZWORDPRESS lnmpDISCUZ(论坛的一个服务) l:linux操作系统 n:nginx前端页面的web服务 php:动态请求转发的中间件 mysql:数据库 保存用户和密码以及论坛的相关内容 mysql8.0.30安装&#xff1a…

微信综合购物商城小程序ui模板源码

微信电商小程序前端页面,综合购物商城ui界面模板。主要功能包含:电商主页、商品分类、购物车、购物车结算、我的个人中心管理、礼券、签到、新人专享、专栏、商品详情页、我的订单、我的余额、我的积分、我的收藏、我的地址、我的礼券等。这是一款非常齐…

单相整流-TI视频课笔记

目录 1、单相半波整流 1.1、单相半波----电容滤波---超轻负载 1.2、单相半波----电容滤波---轻负载 1.3、单相半波----电容滤波---重负载 2、全波整流 2.1、全波整流的仿真 2.2、半波与全波滤波的对比 3、全桥整流电路 3.1、全波和全桥整流对比 3.2、半波全波和全桥…

【Linux杂货铺】2.进程优先级

1.进程优先级基本概念 进程优先级是操作系统中用于确定进程调度顺序的一个指标。每个进程都会被分配一个优先级,优先级较高的进程会在调度时优先被执行。进程优先级的设定通常根据进程的重要性、紧急程度、资源需求等因素来确定。操作系统会根据进程的优先级来决定进…

出现 failed to remove xxxx: Invalid argument 解决方法

目录 前言1. 问题所示2. 原理分析3. 解决方法 前言 这好像是一个Git的一个Bug,对应有个下下策的解决方式 1. 问题所示 Git提交的时候出现如下问题 Git warning:failed to remove debug.log:invalid argumentgit clean -f -1 --F:\xxx failed to rem…

准备工作+1、请求和响应+2、模型和管理站点

Django快速入门——创建一个基本的投票应用程序 准备工作1、创建虚拟环境2、安装django 1、请求和响应(1)创建项目(2)用于开发的简易服务器(3)创建投票应用(4)编写第一个视图1、编写…

Python(四)---序列

文章目录 前言1.列表1.1.列表简介1.2.列表的创建1.2.1.基本方式[]1.2.2.list()方法1.2.3.range()创建整数列表1.2.4.推导式生成列表 1.3. 列表各种函数的使用1.3.1.增加元素1.3.2.删除元素1.3.3.元素的访问和计数1.3.4.切片1.3.5.列表的排序 1.4.二维列表 2.元组2.1.元组的简介…

mybatis基础语法

Mybatis快速入门 1.需求 使用MyBatis查询所有的用户, 封装到List集合 2.分析 创建maven工程(jar),添加坐标创建pojo创建UserDao接口创建UserDao映射文件创建Mybatis核心配置文件SqlMapConfig.xml编写java代码测试 3.实现 准备工作&…

《梦醒蝶飞:释放Excel函数与公式的力量》11.3 ISTEXT函数

第11章:信息函数 第三节 11.3 ISTEXT函数 11.3.1 简介 ISTEXT函数是Excel中的一个信息函数,用于检查指定单元格中的内容是否为文本。如果单元格内容是文本,则返回TRUE;否则返回FALSE。ISTEXT函数在数据验证、条件格式化和逻辑判…

【排序算法】插入排序(希尔排序)

目录 一.直接插入排序 1.基本思想 2.实现 3.特性 1.效率 2.时间复杂度:O(N^2) 3.空间复杂度:O(1) 4.稳定性:稳定 二.希尔排序 1.基本思想 2.实现 3.特性 1.效率 2.时间复杂度:O(N^1.3) ​编辑 3.空间复杂度&#xff…

AI在软件开发中的角色:辅助创新还是自动化取代?

文章目录 每日一句正能量前言:人工智能与软件开发的未来交汇点AI工具现状AI对开发者的影响工作方式的改变需要掌握的新技能保持竞争力的策略结论 AI开发的未来AI在软件开发领域的未来发展方向AI是否可能完全取代开发者如何在AI时代规划开发者的职业发展结论 后记&am…

【通过pnpm创建vite项目】

vue3最新项目技术构建后台管理系统 一、技术要求二、安装pnpm2.1 构建vite三、项目配置3.1 eslint 配置3.2 prettier配置3.3 stylelint配置3.4 配置husky3.5 配置commitlint3.6 pnpm 强制安装四、Element-plus 引入4.1 完整引入4.2 国际化配置4.3 配置别名4.4 Env环境配置4.5 s…

教育与社会的发展

生产力与教育的关系 政治经济制度与教育的关系 文化和人口与教育的关系

《梦醒蝶飞:释放Excel函数与公式的力量》11.4 ISERROR函数

第11章:信息函数 第四节 11.4 ISERROR函数 11.4.1 简介 ISERROR函数是Excel中的一个信息函数,用于检查指定单元格或表达式是否产生错误。如果单元格或表达式产生任何类型的错误(如N/A、VALUE!、REF!等),则返回TRUE&…

子任务:IT运维的精细化管理之道

在当今的企业运营中,信息技术已成为支撑业务发展的核心力量。根据Gartner的报告,IT服务管理(ITSM)的有效实施可以显著提升企业的运营效率,降低成本高达15%,同时提高服务交付速度和质量。随着业务的复杂性和…

Python中对asyncio的实际使用

前言:一般涉及异步编程我都无脑用celery,但是最近在做一个项目,项目不大,也不涉及定时任务,所以就用了asyncio。 asyncio是python自带的模块,比celery轻量,使用起来也简单。以前学习过&#xf…

java中Error与Exception的区别

java中Error与Exception的区别 1、错误(Error)1.1 示例 2、 异常(Exception)2.1 示例 3、 区别总结 💖The Begin💖点点关注,收藏不迷路💖 当我们谈论编程中的错误(Error&…