【论文阅读】VMamba:视觉状态空间模型

文章目录

  • VMamba:视觉状态空间模型
    • 摘要
    • 相关工作
      • 状态空间模型
    • 方法
      • 准备
        • 状态空间模型
        • 离散化
        • 选择扫描机制
      • 2D 选择扫描
      • VMamba 模型
        • 整体结构
        • VSS块
    • 实验
      • 分析实验
        • 有效感受野
        • 输入尺度
    • 总结

VMamba:视觉状态空间模型

摘要

受最近提出的状态空间模型启发,我们提出了视觉状态空间模型,在不牺牲感受野的情况下实现线性复杂度。为了解决遇到的方向感知问题,我们提出了交叉扫描模块(CSM)以遍历空间域并将任何非因果视觉图像转换为有序补丁序列。广泛实验结果说明VMamba不仅在多种视觉感知任务上取得优秀的成果,在不断提升图像分辨率训练表现上也展现了明显提升。

VMamba在有效降低注意复杂度的关键概念来自选择性扫描状态空间模型(S6),原本被提出用来解决NLP问题。和传统注意力计算方法不同,S6使1-D矩阵内的每个元素来和先前扫描的样本交互,通过一个压缩的隐状态,有效将平方复杂度降低到线性。

然而,由于视觉信息是非因果的,直接在一个切分为patch并展平的图像上应用这样的策略会导致受限的感受野,因为和没被扫描到的patch间的关系难以被评估。我们称这个问题为“方向感知”问题并且提出通过新提出的交叉扫描模块来解决这一问题。不同于翻转特征图的空域以无方向模式(行方向或列方向),CSM采用一种四路扫描策略即从整个特征图的四个角到相反的位置。

总结我们的贡献如下:

  • 我们提出了VMamba,有全局感受野的视觉状态空间模型
  • 提出CSM弥补1-D和2-D平面之间的差距
  • 没有花里胡哨的,我们展示VMamba在诸如图片分类,目标检测和语义分割任务上取得了很大的成功。

在这里插入图片描述

相关工作

状态空间模型

这些模型主要关注于状态空间模型如何应用在长程和因果数据像语言语音,语言理解,文本推理,像素级1-D图像分类上。S4ND是第一个将状态空间机制应用在视觉任务上的工作,但是不能以依赖于输入的方式有效地捕获图像信息。

方法

准备

状态空间模型

见【论文翻译】Mamba 中的状态空间模型背景-CSDN博客

离散化

见【论文翻译】MODELING SEQUENCES WITH STRUCTURED STATE SPACES 附录A.1-CSDN博客

VMamba在这里使用ZOH零阶保持离散化,但是 B ‾ \overline{B} B使用一阶泰勒近似为
B ‾ = ( e Δ A − I ) A − 1 B ≈ ( Δ A ) ( Δ A ) − 1 Δ B \overline{B} = (e^{\Delta A}-I)A^{-1}B\approx(\Delta A)(\Delta A)^{-1}\Delta B B=(eΔAI)A1B(ΔA)(ΔA)1ΔB

选择扫描机制

在S6,参数 B , C , Δ B,\ C,\ \Delta B, C, Δ是数据依赖的,确保了权重的动态性。

2D 选择扫描

S6因果的处理输入数据,因此只能捕捉到已经扫描到的部分的信息。天然适应NLP任务包括时许信息,但对于非因果的数据例如图片,图,集等等设置了挑战。一个直接的解决这个问题的办法是从两个方向扫描数据,即前向和后向,允许它们在不增加计算复杂度的情况下互相补充感受野。

除了有非因果的天然性质,图像和文本间的差别还包括图像包含2D的空间信息(例如局部信息和全局信息)。为了处理这个问题,S4ND提出用卷积和直接扩展核从1-D到2-D通过外积来重新公式化SSM。然而,这样的调整使得权重不能变成动态的(即输入依赖的)导致基于内容的数据建模的能力损失。因此,我们选择保留动态权重通过坚持选择性扫描方法,不幸的是这阻碍我们遵循卷积操作。

为了让解决这个问题,我们提出了图二所示的交叉扫描魔魁啊。我们选择展开图像块沿着行和列到需略(扫描扩展),然后从四个不同方向处理扫描:上-左到下-右,下-右到上-左,上-右到下-左,下-左到上-右。以这种方式,任何像素如图二的中心像素,整合了来自不同方向的其他像素。我们之后将每个序列reshape称单张图片,然后所有的序列被拼接成一个新的如图三所描述。(扫描拼接)

在这里插入图片描述

和CSM结合的S6,被称作S6块,是视觉状态空间(VSS)块的核心元素,构成了VMamba的基础块(在下一孝介进一步介绍)。我们强调在保持全局感受野情况下S6继承了选择扫描机制的线性复杂度。

VMamba 模型

整体结构

如图4(a)所示,是VMamba-Tiny的概览。VMamba首先使用一个stem模块把输入图像分割为块,和ViTs相似不需要进一步展平patch到1-D序列。这个调整保持了图片的2D结构,使特征图有 H 4 × W 4 × C 1 \frac{H}{4}\times\frac{W}{4}\times C_{1} 4H×4W×C1

VMamba之后在特征图上堆叠一些VSS块,保持相同的维度,构成阶段1。VMamba中的层次表示是通过pach合并操作对“阶段1”中的特征图进行下采样来构建的。其后,更多的VSS块包含进来构成阶段2,输出分辨率为 H 8 × W 8 \frac{H}{8}\times\frac{W}{8} 8H×8W.这个过程重复来构成阶段3和阶段4,分辨率分别为 H 16 × W 16 \frac{H}{16}\times\frac{W}{16} 16H×16W H 32 × W 32 \frac{H}{32}\times\frac{W}{32} 32H×32W。所有这些阶段共同构成类似于流行CNN和一些ViT的层次表示。

我们在三个不同规模下实现了VMamba,VMamba-Tiny, VMamba-Small, and VMamba-Base。所有模型的FLOPs通过使用 224 × 224 224\times 224 224×224​输入评估。

在这里插入图片描述

VSS块

图四b展示了VSS块的结构,输入经过一个初始线性嵌入层,其输出分为两股信息流。一个经过一个 3 × 3 3\times3 3×3的深度卷积层,在进入核心SS2D模块前经过一个Silu激活函数。SS2D的输出经过一个层归一化,之后把输出加到另一个信息流中。这组成了VSS块的最终输出。

不同于vision transformers我们避免在VMamba使用位置嵌入偏置由于其因果性。我们的设计偏离了典型的视觉transformer结构,其在块中应用了下面的操作顺序:归一化->注意力->归一化->MLP。我们抛弃掉MLP操作。因此,VSS块比ViT块浅一点,这允许我们在同样模型深度情况下堆叠更多的块。

实验

在这个部分,我们完成了一系列实验评估和比较VMmaba和流行模型,包括CNN和视觉transformers。我们的评估基于多种任务,包括ImageNet-1K图片分类,COCO目标检测和ADE20K语义分割。随后,我们深入分析实验,以深入了解VMamba的架构。

在这里插入图片描述

分析实验

有效感受野

为了评估不同模型的有效感受野,我们在图5展示了一个比较分析。ERT测量了模型输入对模型输出的影响。在输入尺寸1024X1024条件下可视化中心像素ERF。我们将其与四个主流的视觉基础模型作比较:从图五,我们得出关键结论1)只有DeiT和VMamba有全局ERF 2)不同于DeiT平等均匀地激活所有像素,VMamba激活所有像素但是显著强调了交叉型的激活。交叉扫描模块扫描机制使得中心像素受交叉方向像素影响最大,对于每个像素,其长程内容优先于局部信息。3)有趣的是,VMamba在训练前初始化仅仅一个局部ERF而在训练后变为全局,注意到模型全局能力的自适应过程。我们认为这个自适应过程增强了模型对图片的感知。和DeiT在训练前后都保持几乎一致地ERF不同。

输入尺度

在这里插入图片描述

我们继续进行输入尺度变化实验,如图6所示,VMamba实现了跨输入图片尺寸地最稳定表现,值得注意的是,在从224x224到384x384,只有VMamba表现出一个上升趋势,展示了其对输入尺寸变化地鲁棒性,VMamba实现了比肩CNN地线性复杂度增长,而同样有全局感受野地DeiT表现出了平方复杂度增长。

总结

为了解决方向感知问题,我们提出里交叉扫描模块来空间翻转,将非因果的视觉图像转换为顺序patch序列。大量的实验表明,VMamba在多种视觉任务上取得可观表现,当图片分辨率上升时,有显著的优势。

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

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

相关文章

一款适合程序员开发复杂系统的通用平台——JNPF 开发平台

在过去,很多开发工具更侧重代码编辑,针对数据库增删改查(CRUD)类的 Web 系统开发,在界面设计、前后端数据交互等环节主要还是靠写代码,效率比较低。目前很多所谓的低代码开发平台,大多数也都是基…

Linux第75步_pinctrl子系统驱动和gpio子系统的常用函数

1、STM32MP1的pinctrl子系统驱动 pinctrl子系统源码目录为drivers/pinctrl&#xff0c;一个PIN最好只能被一个外设使用。 “stm32mp151.dtsi”中有一个“pin-controller节点标签”叫pinctrl pinctrl: pin-controller50002000 { #address-cells <1>; /*定义子节点的…

【24春招/Java】Java的市场情况介绍及Spring Boot基础

Java的市场情况 需求减少 人员增加 面试难度增加 1、Java高级开发&#xff0c;100份简历&#xff0c;筛选了20份&#xff0c;邀约20个人面试 面试机会&#xff1a;录取人数20:1 充分准备通过面试的前提 不要裸面&#xff01;&#xff01;&#xff01; 背葵花宝典&#xff08;…

23.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-实现配置工具数据结构

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;22.加载配置文件…

站库分离技术--反向代理技术-雷池云WAF-给自己搭建一个安全点的网站

文章目录 概要整体架构流程技术名词解释技术细节ssh-ubuntu服务器docker-映射-链接-通信nginx反代mysql设置数据库新密码 小结我的mysql映射目录我的wordpress映射目录 成果展示 概要 新买了一个云服务器&#xff0c;想搭建一个站库分离的wordpress为主的网站&#xff0c;采用d…

PID控制器组(完整SCL代码)

PID控制器组不是什么新概念,是在PID控制器的基础上,利用面向对象的思想对对象进行封装 批量实例化。 1、增量式PID https://rxxw-control.blog.csdn.net/article/details/124363197https://rxxw-control.blog.csdn.net/article/details/1243631972、完全增量式PID https:/…

Vue 3:引领前端开发的未来

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

自制STLink-V2.1

STLink-V2.1需要使用的芯片是STM32F103CBT6 原理图如下&#xff1a; PCB如下&#xff1a; 将板子焊接好后下载&#xff1a;STM32 DebugMass storageVCP V2.J40.M27的固件后&#xff0c;再使用ST官方ST-LinkUpgrade工具对我们自制的STLink-V2.1进行升级。升级完成后&#xff0c…

数据结构---复杂度(2)

1.斐波那契数列的时间复杂度问题 每一行分别是2^0---2^1---2^2-----2^3-------------------------------------------2^(n-2) 利用错位相减法&#xff0c;可以得到结果是&#xff0c;2^(n-1)-1,其实还是要减去右下角的灰色部分&#xff0c;我们可以拿简单的数字进行举例子&…

Redis 的基本全局命令

前言 Redis 常用的有 5 种数据结构&#xff0c;字符串&#xff0c;列表&#xff0c;哈希表&#xff0c;集合&#xff0c;有序集合&#xff0c;每一种数据结构都有自己独特的命令&#xff0c;但也有些通用的全局命令&#xff0c;本文所提到的是最基本的命令&#xff0c;Redis 的…

前端存储方案

如今主流的存储方案&#xff1a; cookieweb storageindexDB 这三个浏览器兼容性最高的三种前端储存方案 1、cookie 它的出现是为了解决 HTTP 协议无状态特性的问题&#xff0c;简单来说就是想要得到上次http请求的数据是办不到的&#xff0c;只有再次从新请求。我们见得最多…

2024年零基础自学网络安全/Web安全,看这一篇就够了

作为一个安全从业人员&#xff0c;我自知web安全的概念太过于宽泛&#xff0c;我本人了解的也并不够精深&#xff0c;还需要继续学习。 但又不想新入行的人走弯路&#xff0c;所以今天随手写写关于web安全的内容&#xff0c;希望对初次遇到web安全问题的同学提供帮助&#xff…

设计模式:软件开发的秘密武器

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

HTML:注释的 5 种场景和 5 点注意事项

你好&#xff0c;我是云桃桃。 HTML 代码注释是用来在 HTML 源代码中添加一些说明性文字&#xff0c;而不会显示在页面中的内容。它们不会在浏览器中显示或渲染。 现在我们一起来看看它的语法&#xff0c;用途和注意事项吧。 注释语法 HTML 注释的基本语法格式是: <!--…

利用Nginx正向代理实现局域网电脑访问外网

引言 在网络环境中&#xff0c;有时候我们需要让局域网内的电脑访问外网&#xff0c;但是由于网络策略或其他原因&#xff0c;直接访问外网是不可行的。这时候&#xff0c;可以借助 Nginx 来搭建一个正向代理服务器&#xff0c;实现局域网内电脑通过 Nginx 转发访问外网的需求…

绝赞春招拯救计划 -- 数据结构篇

哈希表 来吧&#xff01;一文彻底搞定哈希表&#xff01; - 知乎 (zhihu.com) 百科解释&#xff1a; “散列表&#xff08;Hash table&#xff0c;也叫哈希表&#xff09;&#xff0c;是根据键&#xff08;Key&#xff09;而直接访问在内存存储位置的数据结构。也就是说&…

免费的 AI 视频生成工具 Moonvalley 厉害了!Moonvalley 怎么用(保姆级教程)

一、Moonvalley 介绍 Moonvalley&#xff0c;号称地表最强的 AI 视频生成工具&#xff0c;到底有多厉害&#xff1f;今天一起来看一下~ 这是 Moonvalley 官网的介绍&#xff1a; Moonvalley 是一个开创性的新型文本到视频的生成式 AI 模型。用简单的文本即可创建出惊人的电影和…

蓝桥杯练习系统(算法训练)ALGO-976 P0804字符串压缩

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 编写一个函数void strcompress(char *s)&#xff0c;输入一个字符串&#xff08;只包含小写字母和空格&#xff0c;且长度小于1000&am…

MotionCtrl: A Unified and Flexible Motion Controller for Video Generation

MotionCtrl: A Unified and Flexible Motion Controller for Video Generation 这篇论文是基于VideoCrafter的&#xff0c;而VideoCrafter是基于LVDM的 关于LVDM可以看https://blog.csdn.net/Are_you_ready/article/details/136615853 2023年12月6日发表在arxiv 这篇论文讨论…

【深度学习】线性回归

Linear Regression 一个例子线性回归机器学习中的表达评价函数好坏的度量&#xff1a;损失&#xff08;Loss&#xff09;损失函数&#xff08;Loss function&#xff09;哪个数据集的均方误差 (MSE) 高 如何找出最优b和w?寻找最优b和w如何降低损失 (Reducing Loss)梯度下降法梯…