(2024,VMamba,交叉扫描,线性复杂度,全局感受野,动态权重)视觉状态空间模型

VMamba: Visual State Space Model

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

3. 方法

3.1 基础概念

3.2 2D 选择性扫描

3.3 VMamba 模型

3.3.1 整体架构

3.3.2 VSS块

4. 实验


0. 摘要

卷积神经网络(CNNs)和视觉变压器(Vision Transformers,ViTs)是视觉表示学习的两个最受欢迎的基础模型。虽然 CNNs 在图像分辨率方面具有线性复杂性的显著可扩展性,ViTs 却在拟合能力上超越它们,尽管面临着二次复杂性的挑战。仔细检查发现,ViTs 通过整合全局感受野动态权重实现了卓越的视觉建模性能。这一观察激发了我们提出一种新颖的架构,该架构继承了这些组件同时增强了计算效率。为此,我们从最近引入的状态空间模型(state space model,SSM)中汲取灵感,提出了视觉状态空间模型(Visual State Space Model,表示为 VMamba),它在不牺牲全局感受野的情况下实现了线性复杂性。为了解决遇到的方向敏感问题,我们引入了交叉扫描模块(Cross-Scan Module,CSM)来遍历空间域并将任何非因果视觉图像转换为有序补丁序列。广泛的实验证明,VMamba 不仅在各种视觉感知任务中表现出有希望的能力,而且在图像分辨率增加时还表现出对已建立基准的更为显著的优势。

源代码:https://github.com/MzeroMiko/VMamba

VMamba 成功有效降低注意力复杂性的关键概念继承自选择性扫描空间状态顺序模型(Selective Scan Space State Sequential Model,S6)[12],该模型最初设计用于处理自然语言处理(NLP)任务。与传统的注意力计算方法不同,S6 使得 1-D 数组中的每个元素(例如文本序列)能够通过压缩的隐藏状态与先前扫描的任何样本进行交互,有效地将二次复杂性降低到线性。

然而,由于视觉数据的非因果性质,直接将这种策略应用于补丁化和展平的图像将不可避免地导致受限的感受野,因为无法估计相对于未扫描的补丁的关系。我们将这个问题称为 “方向敏感” 问题,并提出通过新引入的交叉扫描模块(Cross-Scan Module,CSM)来解决它。CSM 不是以单向模式(列向或行向)遍历图像特征映射的空间域,而是采用四向扫描策略,即从特征映射的四个角到相对位置(见图 2(b))。这种策略确保特征映射中的每个元素从不同方向的所有其他位置集成信息,从而产生全局感受野,而不增加线性计算复杂性。 

3. 方法

3.1 基础概念

状态空间模型。状态空间模型(SSMs)通常被认为是将刺激 x(t) ∈ R^L 映射到响应 y(t) ∈ R^L 的线性时不变系统。从数学上讲,这些模型通常被构建为线性常微分方程(ODEs)(方程1),其中参数包括 A ∈ C^(N×N),B、C ∈ C^N,N 为状态大小,以及跳跃连接 D ∈ C^1。

离散化。作为连续时间模型,状态空间模型(SSMs)在集成到深度学习算法中时面临巨大的挑战。为了克服这一障碍,离散化过程变得至关重要。

离散化的主要目标是将常微分方程(ODE)转换为离散函数。这种转换对齐模型与输入数据中所体现的底层信号的采样率至关重要,从而实现计算效率高的操作 [16]。考虑输入 x_k ∈ R^(L×D),即在信号流中采样长度为 L 的向量(遵循 [17]),根据零阶保持规则(zeroth-order hold rule),可以将 ODE(方程1)离散化如下:

其中,B、C ∈ R^(D×N),Δ ∈ R^D。在实践中,根据 [12],我们通过使用一阶泰勒级数来精练对¯B 的近似:

选择性扫描机制。与主要关注线性时不变(linear time-invariant,LTI)SSMs 的普遍方法有所不同,VMamba 通过将选择性扫描机制(S6)[12] 作为核心 SSM 运算符而使自己与众不同。在 S6中,矩阵 B ∈ R^(B×L×N)、C ∈ R^(B×L×N) 和 Δ ∈ R^(B×L×D) 是从输入数据 x ∈ R^(B×L×D) 导出的。这意味着 S6 了解嵌入输入的上下文信息,确保了该机制内部权重的动态性。

3.2 2D 选择性扫描

尽管 S6 具有独特的特性,但它以因果方式处理输入数据,因此只能捕获数据的扫描部分内的信息。这自然地使 S6 与涉及时间数据的 NLP 任务相吻合,但在适应非因果数据(例如图像、图形、集合等)时面临重大挑战。解决这个问题的一种直接方法是沿两个不同方向(即前向和后向)扫描数据,允许它们互相补偿而不增加计算复杂性。

尽管图像具有非因果性质,但与文本不同之处在于它们包含 2D 空间信息(例如局部纹理和全局结构)。为了解决这个问题,S4ND [35] 建议通过卷积对 SSM 进行重新构建,并通过外积将核从 1-D 直接扩展到 2-D。然而,这种修改阻止了权重的动态性(即,与输入无关),导致上下文基础数据建模能力的丧失。因此,我们选择通过坚持选择性扫描方法 [12] 来保留动态权重,这不幸地使我们无法按照 [35] 的方法集成卷积操作。

为了解决这个问题,我们提出了如图 2 所示的交叉扫描模块(Cross-Scan Module,CSM)。我们选择沿行和列展开图像补丁成序列(扫描扩展),然后沿四个不同方向进行扫描:从左上到右下,从右下到左上,从右上到左下,从左下到右上。这样,任何像素(如图 2 中的中心像素)都会从不同方向的所有其他像素中集成信息。然后,我们将每个序列重新整形成单个图像,并将所有序列合并成一个新的序列,如图 3 所示(扫描合并)。

将 S6 与 CSM 集成,称为 S6 块,作为构建视觉状态空间(Visual State Space,VSS)块的核心元素,构成了 VMamba 的基本构建块(在下一小节中进一步详细说明)。我们强调 S6 块继承了选择性扫描机制的线性复杂性,同时保留了全局感受野,这与我们构建这样一个视觉模型的动机一致。

3.3 VMamba 模型

3.3.1 整体架构

VMamba-Tiny 的架构概览如图 4(a)所示。VMamba 从使用一个干节点将输入图像划分为补丁开始,类似于 ViTs,但没有将补丁进一步展平成 1-D 序列。这种修改保留了图像的 2D 结构,导致具有 H / 4 × W / 4 × C_1 维度的特征映射。

然后,VMamba 在特征映射上堆叠多个 VSS 块,保持相同的维度,构成 “Stage 1”。在 VMamba中,通过补丁合并操作 [27] 在 “Stage 1” 中对特征映射进行下采样来构建分层表示。随后,涉及更多的 VSS 块,导致输出分辨率为 H / 8 ×W / 8,形成 “Stage 2”。此过程重复以创建分辨率为 H / 16 × W / 16 和 H / 32 × W / 32的 “Stage 3” 和 “Stage 4”。所有这些阶段共同构建了类似于流行的CNN 模型[19, 22, 41, 29, 42] 和一些 ViTs [27, 48, 6, 56] 的分层表示。生成的架构可以在实际应用中作为对其他视觉模型的多功能替代品。

我们在三个不同的尺度上开发 VMamba,即 VMamba-Tiny、VMamba-Small 和 VMamba- Base(分别称为 VMamba-T、VMamba-S 和 VMamba-B)。详细的架构规格见表 1。所有模型的FLOP 都是使用 224×224 的输入大小评估的。将在未来的更新中引入其他架构,如大规模模型。

3.3.2 VSS块

VSS块的结构如图 4(b) 所示。输入经过初始线性嵌入层,输出分为两个信息流。一个流通过一个 3 × 3 的深度卷积层,然后通过 Silu 激活函数 [37] 进入核心 SS2D 模块。SS2D 的输出通过一层标准化层,然后加到另一个信息流的输出上,该信息流经过 Silu 激活。这种组合产生了 VSS 块的最终输出。

与视觉 transformer 不同,由于 VMamba 的因果性质,我们不使用位置嵌入偏差。我们的设计与典型的视觉 transformer 结构不同,后者在一个块中采用以下操作顺序:Norm→attention→Norm→MLP,并丢弃 MLP 操作。因此,VSS 块比 ViT 块更浅,这使我们能够在相似的总模型深度预算下堆叠更多的块。

4. 实验

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nvm, node.js, npm, yarn 安装配置

文章目录 nvm 安装node.js 安装npm yarn 配置 nvm 安装 nvm 是一个 node.js 管理工具,可以快捷下载安装使用多个版本的node.js linux 命令行输入: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bashwget -qO- https…

电子签名实名认证的必要性解析

电子签名是确保电子文件真实性和完整性的重要手段,而实名认证则是保证电子签名有效性的必要条件。在电子签名过程中,实名认证的作用主要体现在以下几个方面: 确认身份:实名认证能够确认签署者的真实身份,防止冒签、代…

SL1581降压恒压芯片 4V至30V降5V输出 电流2.4A 电路简单

SL1581降压恒压芯片是一款非常实用的电源管理芯片,它能够在4V至30V的输入电压范围内实现5V的稳定输出,同时最大输出电流可达2.4A。相比传统的线性降压电源,SL1581采用了开关电源的原理,因此其电路更加简单、高效和可靠。 在电路设…

决策树、随机森林可视化

分享一个Python可视化工具pybaobabdt,轻松对决策树、随机森林可视化,例如, 图怎么看:每一种颜色代表一个class,link的宽度表示从一个节点流向另一个节点的items数量。 安装 pip install pybaobabdt pip install pygra…

ESC云服务器使用

购买云服务器 选择CPU,内存,选择硬盘大小,选择系统购买。 我买的2C4G40G,用来使用docker部署应用。1个月费用100多点。 购买后,在控制台可以看到实例 远程连接 阿里云客户端 下载客户端,在控制台需要先创…

WPF入门到跪下 第十一章 Prism(一)数据处理

官网:https://primslibrary.com 源码地址:https://guthub.com/PrismLibrary/prism Prism是由微软发布、维护的开源框架,提供了一组设计模式的实现,有助于编写结构良好的且可维护的XAML应用程序,包括MVVM、依赖注入、命…

Android 拍照以及相册中选择(适配高版本)————上传头像并裁剪(一)

前言 在项目研发中,相信大家都遇到过给用户增加头像照片的需求。 随着手机版本的不断更新,android 8、android 9、android 10、android 12、android 13、鸿蒙系统等等;遇到这个功能需求,大家肯定会想,“这还不好写&…

一键AI智能改写,自动修改文章效率高

在当今信息爆炸的时代,写作成为了人们日常生活和工作中不可或缺的一部分。不论是学生写作业,还是职场人士起草报告,都需要投入大量的时间和精力来构思和修改文章。然而,随着科技的不断进步,一项新的技术正在改变着写作…

HTML111111111

在线编辑器 在线 HTML 空元素 没有内容的 HTML 元素被称为空元素。空元素是在开始标签中关闭的。 即使 在所有浏览器中都是有效的,但使用 其实是更长远的保障。 HTML 水平线 标签在 HTML 页面中创建水平线。 hr 元素可用于分隔内容。 HTML 折行 如果您希望…

免费的爬虫软件【2024最新】

在国际市场竞争日益激烈的背景下,国外网站的SEO排名直接关系到网站在搜索引擎中的曝光度和用户点击量。良好的SEO排名能够带来更多的有针对性的流量,提升网站的知名度和竞争力。 二、国外网站SEO排名的三种方法 关键词优化: 关键词优化是SEO…

Java基础面试题-2day

面向对象 创建一个对象用什么运算符,对象实体和对象引用有什么不同? 创建对象使用new String A new String(); A即为对象引用,通过new运算符,创建String()类型的对象实体。 对象引用的存储位置在栈内存 对象实体的存储位置在堆…

分布式事务Seata实战-AT模式(注册中心为Eureka)

大致记录Seata的AT模式下创建项目过程中需要注意的点和可能遇到的问题。 本项目是以官网的给的示例(即下图)进行创建的,以Eureka为注册中心。 官网:Seata AT 模式 | Apache Seata™ 官方代码示例: 快速启动 | Apac…

C++编写、生成、调用so库详解(一)

开发中经常会用到so库,大多是调用第三方的so库,偶尔也需要自己封装一个so库给别人调用,这边就记录一下开发so库的一个过程. 首先我们这边是在Android Studio中开发的,所以仅描述在Android环境下开发过程,当然也可以用其他工具开发. 目录 1.第一步新建项目,配置需要的工具 2…

MFTCoder 重磅升级 v0.3.0 发布,支持 Mixtral 等更多模型,支持收敛均衡,支持 FSDP

1. MFTCoder 简介 CodeFuse在2023年9月开源了一种多任务微调框架——MFTCoder,它可以实现在多个任务上同时并行地进行微调。通过结合多种损失函数,我们有效地解决了多任务学习中常见的任务间数据量不平衡、难易不一和收敛速度不一致等挑战。大量实验结果…

『Open3D』1.10 Tensor数据处理

open3d中实现了自身的数据类型,用于open3d中内部算法的数值计算,但基础使用上与numpy类似。 目录 1、tensor创建 2、tensor数据属性 3、 Tensor数据在CPU与GPU上的转换

An incompatible version [1.2.33] of the Apache Tomcat Native library is installed

ERROR:An incompatible version [1.2.33] of the Apache Tomcat Native library is installed, while Tomcat requires version [1.2.34] 意为:安装了不兼容的Apache Tomcat原生库版本[1.2.33],而Tomcat需要的版本[1.2.34] ERROR 14496 ---…

工业相机与镜头参数及选型

文章目录 1、相机成像系统模型1.1 视场1.2 成像简化模型 2、工业相机参数2.1 分辨率2.2 靶面尺寸2.3 像元尺寸2.4 帧率/行频2.5 像素深度2.6 动态范围2.7 信噪比2.8 曝光时间2.9 相机接口 3、工业镜头参数3.1 焦距3.2 光圈3.3 景深3.4 镜头分辨率3.5 工作距离(Worki…

表的增删改查 进阶(二)

🎥 个人主页:Dikz12🔥个人专栏:MySql📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香欢迎大家👍点赞✍评论⭐收藏 目录 3.新增 4.查询 聚合查询 聚合函数 GROUP BY子句 HA…

【GitHub项目推荐--一键换脸】【转载】

FaceSwap 是一种利用深度学习算法来换掉图片和视频中的人脸的工具。基于 Tensorflow、Keras 和 Python,Faceswap 可以在 Windows、macOS 和 Linux 上运行。 安装了这个应用,你就能在你电脑上通过可视化交互的方式构建自己的换脸模型了。 地址&#xff…