Vision Mamba:使用双向状态空间模型进行高效视觉表示学习

news2025/1/17 15:54:44

模型效果

在这里插入图片描述
将DeiT和Vim模型之间的性能和效率比较,为了进行准确性比较,我们首先在IN1K分类数据集上预训练DeiT和Vim,然后在不同的下游密集预测任务上微调通用主干,即,语义分割、目标检测、实例分割。结果表明,所提出的Vim优于DeiT的预训练和微调任务。在处理高分辨率图像时,Vim的计算和内存效率也比DeiT高。例如,Vim比DeiT快2.8倍,在对分辨率为1248×1248的图像进行批量推理提取特征时,节省86.8%的GPU内存,即每张图片节省6084个token。

前言

该方法利用位置嵌入对图像序列进行标记,并利用双向状态空间模型对视觉表示进行压缩。

VIT的优点:

  • ViT可以通过自注意为每个图像块提供数据/块相关的全局上下文
  • 通过将图像视为没有2D归纳偏差的补丁序列来进行模态不可知建模,这使其成为多模态应用的优选架构

VIT的缺点:处理长距离视觉依赖时的速度和内存使用较差

Mamba用于视觉任务的挑战:单向建模和缺乏位置意识

  • 本文提出Vision Mamba(Vim),它采用了双向SSM数据相关的全局视觉上下文建模和用于位置感知视觉理解的位置嵌入
  • 在不需要注意的情况下,所提出的Vim具有与ViT相同的建模能力,而它仅具有次二次时间计算和线性存储复杂度。具体来说,Vim比DeiT快2.8倍,在1248×1248分辨率的图像上进行批量推理提取特征时,节省了86.8%的GPU内存。
  • 本文对ImageNet分类和密集预测下游任务进行了广泛的实验。结果表明,与成熟且高度优化的普通视觉Transformer相比,Vim实现了更好的性能

方法

关于SSM和Mamba的知识参见下面的资料,这里不再详细赘述。

S4论文-SSM离散化公式推导 - coco的文章 - 知乎
https://zhuanlan.zhihu.com/p/677787187
一文通透想颠覆Transformer的Mamba:从SSM、S4到mamba、线性transformer(含RWKV解析)
http://t.csdnimg.cn/o0lXt

Vision Mamba

ViM模型首先将输入图像分成小块,然后将小块投影成token。然后将这些令牌输入 ViM 编码器。然后序列中的每个标记经历两个单独的线性变换。该算法在向前和向后两个方向上处理这些转换后的令牌,模拟双向神经网络层。与用于建模文本序列的 Mamba 模型不同,ViM 编码器可以向前和向后处理标记序列。对于每个方向,该过程涉及应用一维卷积,然后应用 Sigmoid 线性单元 (SiLU) 激活函数。对于像 ImageNet 分类这样的任务,额外的可学习分类标记会添加到标记标记序列中(该标记是 BERT 开始一致使用的标记)。
ViM 的突出特点之一是其类似于 LSTM 工作原理的双向处理能力。与许多以单向方式处理数据的模型不同,ViM 的编码器可以向前和向后方向处理标记。双向模型可以更丰富地理解图像上下文,这是准确图像分类和分割的关键因素。
一旦令牌被卷积并激活,算法就会执行额外的线性变换并应用 softplus 函数,以确保输出值保持正值。这些转换为 SSM 序列建模功能准备标记。
SSM 操作之后,该算法应用门控机制,通过 SSM 输出与 SiLU 激活的前向和后向序列的元素相乘来调制信息流。这种门控机制可能被设计为控制每个方向处理的贡献。
最后一步结合了残差连接,将原始输入序列添加到门控输出,这有助于保留早期层的信息并解决梯度消失问题。整个过程的输出是一个新的令牌序列,该序列可能经历了复杂的转换,捕获了序列两个方向上的复杂依赖关系。该算法通过返回这个转换后的标记序列来结束。
在这里插入图片描述

vim block

原始的Mamba块是为1-D序列设计的,这不适合需要空间感知理解的视觉任务。在本节中,我们将介绍Vim块,它包含视觉任务的双向序列建模。
在这里插入图片描述

架构细节

总之,我们的架构的超参数如下所示:
L:块的数量,D:隐藏状态维度,E:扩展状态维度,N:SSM维度。

和ViT和DeiT一样,我们首先使用16×16内核大小的投影层来获得非重叠补丁嵌入的一维序列。随后,我们直接堆叠L个Vim块。默认情况下,我们将块的数量L设置为24,SSM维度N设置为16。为了与DeiT系列的模型尺寸保持一致,我们将隐藏状态维度D设置为192,将扩展状态维度E设置为384。对于小尺寸变体,我们将D设置为384,E设置为768。

结论

本文提出了一种在视觉任务中应用 Mamba 的技术,使用双向状态空间模型 (SSM) 进行全局视觉上下文建模和位置嵌入。这种方法表明传统的注意力机制可能会过时,因为 ViM 可以有效地捕获视觉数据的位置上下文,而无需依赖基于 Transformer 的注意力机制。
ViM 以其次二次计算时间和线性内存复杂性而脱颖而出,这与 Transformer 模型中常见的二次增长形成鲜明对比。这种效率使得 ViM 特别擅长处理高分辨率图像。
对 ImageNet 分类等基准测试的广泛测试证实了 ViM 的性能和效率,展示了其作为计算机视觉领域强大工具的潜力。

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

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

相关文章

linux之前后端项目部署与发布

目录 前言 简介 一、安装Nginx 二、后端部署 2.1多个tomcat负载均衡 2.2 负载均衡 2.3 后端项目部署 三、前端部署 1.解压前端 2.Nginx配置文件修改 3.IP域名映射 4.重启Nginx服务 前言 上篇博主已经讲解过了单机项目的部署linux之JAVA环境配置JDK&Tomcat&a…

人人都是项目管理者,项目管理的基础入门

一、教程描述 本套教程旨在系统介绍项目管理的方法论,帮助大家认识、熟悉、体验、思考项目管理,全面掌握项目管理的流程与方法,快速成长为时代紧缺型的项目管理人才。本套项目管理入门教程,大小805.40M,共有13个文件。…

YOLO目标检测——电力绝缘子缺陷检测数据集【含对应voc、coco和yolo三种格式标签集】

实际项目应用:电力绝缘子缺陷检测数据集的应用范围涵盖了电力设备制造、供应、维护、监控等多个领域,对提升电力系统的安全性、可靠性和效率具有重要意义数据集说明:无缺和有缺陷两种标签类别。标签说明:使用lableimg标注软件标注…

【GO语言卵细胞级别教程】07.捕获异常和自定义错误

【GO语言卵细胞级别教程】07.捕获异常和自定义错误 🥰博主:GokuCode 🥰微信公众号:【给点知识】分享小知识,快速成长,欢迎关注呀!(底部点击二维码) 🥰本项目演示代码仓库…

FL Studio 老用户免费更新FL Studio 21.2.3.4004 中文版及FL Studio 21更新日志

FL Studio 21是一款非常流行的数字音频工作站软件,它可以帮助音乐制作人和音乐爱好者创作出高质量的音乐作品。在FL Studio 21中,有许多插件可以帮助用户实现各种音乐效果,例如合成器、鼓机、效果器等等。 FL Studio 21.2.3.4004 加入了新的插…

学会字符转换

字符转换 题目描述:解法思路:解法代码:运行结果: 题目描述: 输入⼀一个字符串,将字符串中大写字母全部转为小写字母,小写字母转成大写字母,其他字符保持不变。注:字符串…

Python爬虫实战:图片爬取与保存

引言: 在本文中,我们将学习如何使用Python创建一个简单的图片爬虫。 我们将利用requests库来发送HTTP请求,BeautifulSoup库来解析HTML页面,以及os和shutil库来下载和保存图片。通过这个教程,你将学会如何爬取网…

【JavaScript 漫游】【021】EventTarget 接口

事件的本质是程序各个组成部分之间的一种通信方式,也是异步编程的一种实现。DOM 支持大量的事件。 EventTarget 接口概述 DOM 的事件操作(监听和触发),都定义在 EventTarget 接口。所有节点对象都部署了这个接口,其他…

8.网络游戏逆向分析与漏洞攻防-游戏网络架构逆向分析-游戏底层功能对接类GameProc的实现

内容参考于:易道云信息技术研究院VIP课 上一个内容:通过逆向分析确定游戏明文接收数据过程 码云地址(master 分支):https://gitee.com/dye_your_fingers/titan 码云版本号:bcf7559184863febdcad819e48aaa…

选座位 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 200分 题解: Java / Python / C 题目描述 疫情期间,需要大家保证一定的社交距离,公司组织开交流会议,座位有一排共N个座位,编号分别为[0…N-1],要…

mvn版本导致的Failed to execute goal on project问题与解决

目录 一,报错情况与原因二,maven的下载与安装1,卸载maven2,安装mvn3,指定mvn的默认版本: 一,报错情况与原因 使用命令mvn package时会报如下错误: Failed to execute goal on proj…

关于js [GDOUCTF 2023]hate eat snake

查看页面源代码 发现snake.js文件 打开js文件 第7行定义了游戏的速度this.speed this.oldSpeed speed || 10 ; 全文搜索speed,在第237行发现自增代码this.speed; 注释或者删除自增代码 回到游戏页面 重玩游戏,等待60s即可 得到flag

C语言--贪吃蛇

目录 1. 实现目标2. 需掌握的技术3. Win32 API介绍控制台程序控制台屏幕上的坐标COORDGetStdHandleGetConsoleCursorinfoCONSOLE_CURSOR_INFOSetConsoleCursorInfoSetConsoleCursorPositionGetAsyncKeyState 4. 贪吃蛇游戏设计与分析地图<locale.h>本地化类项setlocale函…

matlab经验模式分解的R波检测算法

1、内容简介 略 56-可以交流、咨询、答疑 2、内容说明 略 心血管疾病是威胁人类生命的主要疾病之一&#xff0c;而心电信号&#xff08;electrocardiogram, ECG&#xff09; 则是评价心脏功能的主要依据&#xff0c;因此&#xff0c;关于心电信号检测处理的研究一直为各方所…

js设计模式:状态模式

作用: 将对象的行为和状态进行分离,状态是由行为操作决定的,而不是直接控制。 同时,行为也是由状态决定的,每个状态都有自己的行为和相应的方法 行为与状态分离,可以使代码方便维护 示例: <!DOCTYPE html> <html lang"en"><head><meta cha…

基于YOLOv5+PySide6的火灾火情火焰检测系统设计深度学习

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;225火灾 获取完整源码源文件已标注的数据集&#xff08;1553张&#xff09;配置跑起来说明 可有偿49yuan一对一远程操作&#xff0c;在你电脑跑起来 效果展示&#xff1a; ​数据集在下载的文件夹&#xff1a;yolov5-5.0\…

Vue3中的select 的option是多余的?

背景&#xff1a; 通过Vue3中填充一个下拉框&#xff0c;在打开页面时要指定默认选中&#xff0c;并在选项改变时把下拉框的选中值显示出来 问题&#xff1a; 填充通常的作法是设置 <option v-for"option in cities" :value"option.value" >&a…

软件测试中的测试左移与测试右移

在软件开发的过程中&#xff0c;测试是确保软件质量的一个至关重要的环节。随着软件开发方法的不断演进&#xff0c;测试也在不断地发展和改进。其中&#xff0c;测试左移&#xff08;Shift Left Testing&#xff09;和测试右移&#xff08;Shift Right Testing&#xff09;是两…

QlikSense CyberSecurity : Configuring preferred Cipher Suites

You can rank the preferred cipher suites that Qlik License Service uses to encrypt and decrypt the signed key license.您可以对Qlik许可证服务用于加密和解密签名密钥许可证的首选密码套件进行排序。 The Qlik License Service is included in Qlik Sense Enterprise …

【微服务生态】Dubbo

文章目录 一、概述二、Dubbo环境搭建-docker版三、Dubbo配置四、高可用4.1 zookeeper宕机与dubbo直连4.2 负载均衡 五、服务限流、服务降级、服务容错六、Dubbo 对比 OpenFeign 一、概述 Dubbo 是一款高性能、轻量级的开源Java RPC框架&#xff0c;它提供了三大核心能力&#…