EfficientViT:高分辨率密集预测的多尺度线性注意

news2024/11/14 10:53:35

EfficientViT: Multi-Scale Linear Attention for High-Resolution Dense Prediction

  • 1、介绍
  • 2、方法
    • 2.1 多尺度线性注意模块
      • 2.1.1 启用全局接收域与ReLU线性注意
      • 2.1.2 解决ReLU线性注意力的局限性。
    • 2.2 EfficientViT架构
      • 2.2.1 骨干
      • 2.2.2 头部
  • 3、实验

贡献:
1、我们提出了一种新的多尺度线性注意模块,用于高效的高分辨率密集预测。在保持良好的硬件性能的同时,实现了全局接受域和多尺度的学习。据我们所知,我们的工作是首次证明线性注意对于高分辨率密集预测的有效性
2、基于所提出的多尺度线性注意力模块,我们设计了一种名为EfficientViT的高分辨率视觉模型。
3、与之前的SOTA模型相比,我们的模型在不同硬件平台(移动CPU、边缘GPU和云GPU)上的语义分割、超分辨率、分割任何东西以及ImageNet分类上都有显著的加速效果。

1、介绍

具体而言:
具体来说,我们建议用轻量级 ReLU 线性注意力 [12] 代替低效的 softmax 注意力,以获得全局感受野。通过利用矩阵乘法的关联属性,ReLU 线性注意力可以将计算复杂度从二次降低到线性,同时保留功能。此外,它避免了像softmax这样的硬件效率低下的操作,使其更适合硬件部署。
然而,由于缺乏局部信息提取和多尺度学习能力,单独的ReLU线性注意力能力有限。因此,我们提出通过卷积增强ReLU线性注意力,并引入多尺度线性注意力模块来解决ReLU线性注意力的容量限制。
具体来说,我们使用小内核卷积聚合附近的令牌以生成多尺度令牌。我们对多尺度 token 进行 ReLU 线性注意力(图 2),将全局感受野与多尺度学习结合起来。我们还将深度卷积插入到 FFN 层中,以进一步提高局部特征提取能力。
在这里插入图片描述
图2:EfficientViT的构建块(左)和多尺度线性注意(右)。左:EfficientViT的构建模块包括一个多尺度线性注意模块和一个深度卷积的FFN (FFN+DWConv)。多尺度线性注意捕获上下文信息,而FFN+DWConv捕获局部信息。右:在通过线性投影层获得Q/K/V tokens之后,我们通过轻量级的小内核卷积聚合附近的tokens,从而生成多尺度的tokens。将ReLU线性注意应用于多尺度tokens,将输出串接并反馈到最终的线性投影层进行特征融合。

2、方法

本节首先介绍多尺度线性注意模块。不同于以往的工作,我们的多尺度线性注意同时实现全局接受域和多尺度的学习,只有硬件有效的操作。然后,基于多尺度线性注意,我们提出了一种新的视觉变压器模型,名为EfficientViT,用于高分辨率密集预测。

2.1 多尺度线性注意模块

我们的多尺度线性注意平衡了高效高分辨率密集预测的两个关键方面,即性能和效率。具体来说,从性能的角度来看,全局接受域和多尺度的学习是必不可少的。以往的SOTA高分辨率密集预测模型通过启用这些特征提供了较强的性能,但未能提供良好的效率。我们的模块解决了这个问题,用轻微的容量损失换取显著的效率改进。
在这里插入图片描述

图2(右)展示了所提出的多尺度线性注意模块。特别地,我们建议使用ReLU线性注意力[12]来代替沉重的softmax注意力[8],使全局接受域成为可能。虽然ReLU线性注意[12]等线性注意模块[14,15,16,17]已经在其他领域进行了探索,但尚未成功应用于高分辨率密集预测。据我们所知,ImageNet Top1 Acc cityapes mIoU ADE20K mIoU ImageNet Top1 Acc EfficientViT是第一个证明ReLU线性注意在高分辨率密集预测中的有效性的工作。此外,我们的工作引入了新颖的设计,以解决其容量限制。

2.1.1 启用全局接收域与ReLU线性注意

给定输入x∈RN×f, softmax注意的广义形式可以写成:
在这里插入图片描述
其中Q = xWQ, K = xWK, V = xWV, WQ/WK/WV∈Rf×d是可学习的线性投影矩阵。Oi表示矩阵o的第i行。Sim(·,·)为相似函数。当使用相似函数Sim(Q,K) = exp(QKT√d)时,Eq.(1)成为原来的softmax注意[8]。
除了exp(QKT√d)外,我们还可以使用其他相似函数。在这项工作中,我们使用ReLU线性注意[12]来实现全局接受域和线性计算复杂度。在ReLU线性注意中,相似函数定义为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后,我们可以利用矩阵乘法的结合性,在不改变其功能的情况下,将计算复杂度和内存占用从二次型降低到线性型:
在这里插入图片描述
在这里插入图片描述

2.1.2 解决ReLU线性注意力的局限性。

虽然ReLU线性注意在计算复杂度和硬件延迟方面优于softmax注意,但ReLU线性注意存在局限性。图3显示了softmax注意和ReLU线性注意的注意特征图。由于缺乏非线性相似函数,ReLU线性注意力不能生成集中注意力特征图,使得其对局部信息的捕捉能力较弱。
在这里插入图片描述
图3:Softmax注意力vs. ReLU线性注意力与softmax注意不同,ReLU线性注意由于缺乏非线性相似函数而不能产生显著的注意分布。因此,它的局部信息提取能力弱于softmax的注意力。
为了缓解其局限性,我们提出用卷积来增强ReLU的线性注意力。具体来说,我们在每个FFN层中插入一个深度卷积。图2(左)展示了最终构建块的概述,其中ReLU线性注意力捕获上下文信息,而FFN+DWConv捕获本地信息。
此外,我们还提出将附近的Q/K/V tokens信息进行聚合,得到多尺度的tokens,以增强ReLU线性注意的多尺度学习能力。这个信息聚合过程是独立于每个头部的Q、K和V的。我们只使用小核深度可分卷积[18]进行信息聚合,避免了影响硬件效率。在实际实现中,独立执行这些聚合操作在GPU上的效率是非常低的。因此,我们利用群卷积来减少总操作的次数。其中,将所有DWConvs融合为单个DWConv,将所有1x1卷积组合为单个1x1群卷积(右图2),其中分组数为3 × #头,每组信道数为d。获取多尺度tokens后,对其进行线性相关处理,提取多尺度全局特征。最后,我们沿着头部的尺寸将特征连接起来,并将它们馈送到最后的线性投影层以融合特征。

2.2 EfficientViT架构

基于所提出的多尺度线性注意模块,我们构建了一组新的视觉变压器模型。核心构建块(标记为“EfficientViT模块”)如图2(左)所示。图5演示了EfficientViT的宏架构。我们采用标准的骨干-头/编码器-解码器架构设计。
在这里插入图片描述
图5:efficient entvit的宏观架构。我们采用标准的主干头/编码器-解码器设计。我们在主干网的阶段3和4中插入了EfficientViT模块。按照通常的做法,我们将最后三个阶段(P2、P3和P4)的特性添加到头部。为了简单和高效,我们使用加法来融合这些功能。我们采用了一个简单的磁头设计,由几个MBConv块和输出层组成。

2.2.1 骨干

EfficientViT的主干也遵循标准设计,由输入干和四个阶段组成,feature map大小逐渐减小,通道数逐渐增加。我们在阶段3和4中插入Effi cientViT模块。对于下采样,我们使用步幅为2的MBConv。

2.2.2 头部

P2、P3和P4表示阶段2、3和4的输出,形成了一个特征特征图金字塔。为了简单和高效,我们使用1x1卷积和标准上采样操作(如双线性/双三次上采样)来匹配它们的空间和通道大小,并通过加法融合它们。由于我们的主干已经具有很强的上下文信息提取能力,我们采用了一个简单的头设计,包括几个MBConv块和输出层(即预测层和上样本层)。在实验中,我们经验地发现这种简单的头设计足以实现SOTA的性能。
在相同的宏观体系结构下,我们设计了一系列不同尺寸的模型,以满足各种效率约束。我们将这些模型分别命名为EfficientViTB0、efficientvitb - b1、efficientvitb - b2和efficientvitb - b3。此外,我们为云平台设计了efficientvt - l系列。这些模型的详细配置在我们的GitHub官方仓库1中提供。

3、实验

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

【心得】XXE漏洞利用个人笔记

XML中关于DTD类型(内部(SYSTEM)的和外部(PUBLIC)的区别) xxe的利用 XML Entity 实体注入 当程序处理xml文件时,没有禁止对外部实体的处理,容易造成xxe漏洞 危害 主流是任意文件读取 XML 文件 一般表示带有结构的数据 祖父 3个叔父 8个堂弟堂妹 …

聚观早报 |魅族21搭载超声波指纹2.0;华为长安成立新公司

【聚观365】11月28日消息 魅族21搭载超声波指纹2.0 华为长安成立新公司 OPPO Reno11 Pro本周首销 淘宝天猫推出系列AI工具 长城汽车计划全面进入欧洲市场 魅族21搭载超声波指纹2.0 魅族官方此前已宣布,将于11月30日召开“2023魅族秋季无界生态发布会”&#x…

【JavaScript】封装自己的JavaScript公共工具函数,并上传到npm中 进行下载

js公共方法封装方式都有哪些 全局函数 function greet(name) {console.log("Hello, " name "!"); }greet("Alice"); // 调用全局函数对象字面量 var utils {add: function(a, b) {return a b;},subtract: function(a, b) {return a - b;}…

几何教学工具 Sketchpad几何画板 mac软件特色

Sketchpad几何画板 for Mac是一款适用于macOS系统的几何教学工具,用户可以在其画板上进行各种几何图形的绘制、演示,帮助教师了解学生的思路和对概念的掌握程度。此外,Sketchpad更深层次的功能则是可以用来进行几何交流、研究和讨论&#xff…

在Spring Boot中隔离@Async异步任务的线程池

在异步任务执行的时候,我们知道其背后都有一个线程池来执行任务,但是为了控制异步任务的并发不影响到应用的正常运作,我们需要对线程池做好相关的配置,以防资源过度使用。这个时候我们就考虑将线程池进行隔离了。 那么我们为啥要…

C#,数值计算——插值和外推,径向基函数插值(RBF_interp)的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// 径向基函数插值 /// Object for radial basis function interpolation using n points in dim /// dimensions.Call constructor once, then interp as many times as desir…

绝地求生:胜者组赛事强度再刷新,17即将晋级,NH闯地狱副本!

2023PGC胜者组赛终于在昨日打响&#xff0c;PCL战队17和Tianba各吃鸡&#xff0c;17更是以接近场均11分的高水准发挥确立了自己的优势。 胜者组再次让选手和观众体会到了不同的赛事强度&#xff0c;特别是艾伦格&#xff0c;未能吃到圈型的队伍最后只能轧点博取机会&#xff0c…

LangChain 13输出解析Output Parsers 自动修复解析器

LangChain系列文章 LangChain 实现给动物取名字&#xff0c;LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数据库Faiss存储&#xff0c;读取YouTube的视频文本搜索I…

Sass 语法详细介绍

文章目录 前言SASS缩进语法SASS的语法差异多线选择器注释import Mixin指令已弃用的语法后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;Sass和Less &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和技术需要掌握&#xff0c;正…

机器态势感知中的注意力机制

输入矢量x是原始的输入数据&#xff0c;而q、k、v是通过对x进行线性变换得到的新的表示。q、k、v是通过对x分别乘以三个矩阵Wq、Wk、Wv得到的&#xff0c;其中Wq、Wk、Wv是通过学习得到的参数矩阵。这些参数矩阵通过模型训练过程中的反向传播算法来更新&#xff0c;以使得模型能…

振南技术干货集:znFAT 硬刚日本的 FATFS 历险记(4)

注解目录 1、znFAT 的起源 1.1 源于论坛 &#xff08;那是一个论坛文化兴盛的年代。网友 DIY SDMP3 播放器激起了我的兴趣。&#xff09; 1.2 硬盘 MP3 推了我一把 &#xff08;“坤哥”的硬盘 MP3 播放器&#xff0c;让我深陷 FAT 文件系统不能自拔。&#xff09; 1.3 我…

新疆大学与优艾智合机器人成立联合创新实验室

11月22日至24日&#xff0c;第五届中国工业互联网大赛新疆赛站决赛在新疆维吾尔自治区昌吉回族自治州昌吉市举行。在大赛中崭露头角的优秀解决方案&#xff0c;将为绿色工厂、绿色园区、绿色供应链等建设提供新的动能&#xff0c;促进工业绿色发展。 作为大赛的成果延伸&#…

ESP32-Web-Server编程-建立第一个网页

ESP32-Web-Server编程-建立第一个网页 HTTP 简述 可能你每天都要刷几个短视频&#xff0c;打开几个网页来娱乐一番。当你打开一个网络上的视频或者图片时&#xff0c;其实际发生了下面的流程&#xff1a; 其中客户端就是你的浏览器啦&#xff0c;服务器就是远程一个存放视频或…

线性表的逻辑结构

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 只有靠自己的毅力忍耐&#xff0…

详解混合整数二次规划 (MIQP) 投资组合优化问题--附Matlab和Python实现

&#x1f517; 运行环境&#xff1a;Matlab、Python &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&#x1f917;&am…

sqli-labs靶场详解(less11-less16)

目录 less-11 less-12 less-13 less-14 less-15 less-16 提交参数后 动态参数不存在url中 存在于post表单中 于是在表单中进行注入点测试 先看一看这种提交数据的关卡输入提交后会有什么反应 unameadmin&passwdadmin&submitSubmit 输出 usernameadmin passwordadmin un…

基于mpvue实现的cnode社区demo(附精选源码32套,涵盖商城团购等)

社区类目没有开放给个人开发者&#xff0c;所以没能上线。 预览 项目配置文件&#xff0c;更改appid {"description": "项目配置文件","setting": {"urlCheck": true,"es6": false,"postcss": false,"minif…

万字+28张图带你探秘小而美的规则引擎框架LiteFlow

大家好&#xff0c;今天给大家介绍一款轻量、快速、稳定可编排的组件式规则引擎框架LiteFlow。 一、LiteFlow的介绍 前言 在每个公司的系统中&#xff0c;总有一些拥有复杂业务逻辑的系统&#xff0c;这些系统承载着核心业务逻辑&#xff0c;几乎每个需求都和这些核心业务有关&…

触控板窗口管理软件Swish mac中文版

Swish mac是一款触控板窗口管理工具&#xff0c;它允许用户通过简单的手势来控制窗口。Swish利用MacBook的触控板&#xff0c;使得用户可以更加便捷地管理窗口。它支持多种手势&#xff0c;例如捏合、拖动、放大和缩小等&#xff0c;使得用户可以轻松地实现窗口的切换、最小化、…

代码随想录-刷题第十天

459. 重复的子字符串 题目链接&#xff1a;459. 重复的子字符串 提示&#xff1a;Java中转为字符数组&#xff0c;不使用charAt()&#xff0c;效率会更高。 思路1&#xff1a;暴力解法。起始下标从0开始&#xff0c;第一个for循环寻找子串的结束位置。只需要遍历到中间位置&…