LocalMamba: Visual State Space Model with Windowed Selective Scan 论文总结

news2024/11/15 10:52:13

题目:LocalMamba: Visual State Space Model(视觉状态空间模型) with Windowed Selective Scan(窗口化的选择扫描)

论文:[2403.09338] LocalMamba: Visual State Space Model with Windowed Selective Scan (arxiv.org)

源码:hunto/LocalMamba: Code for paper LocalMamba: Visual State Space Model with Windowed Selective Scan (github.com)

目录

一、摘要 

二、引言 

三、方法

3.1 Local Scan for Visual Representations(局部扫描 for 视觉表征)

3.2 搜索自适应扫描

3.3 架构变体


一、摘要 

研究背景:状态空间模型的最新进展,特别是Mamba,已经证明了在语言理解等任务的长序列建模方面取得了重大进展。然而,它们在视觉任务中的应用并没有明显超过传统的卷积神经网络(CNNs)和视觉变换器(ViTs)的性能。

研究问题:传统的 Vim 方法展平空间 token,忽略了局部 2D 依赖关系的保持,从而拉长了相邻  token 之间的距离。

主要工作

  • 本文提出了增强 Vision Mamba(Vim)的关键在于优化序列建模的扫描方向。
  • 本文提出了一种新颖的 局部扫描策略 ,将图像分割成不同的窗口,在保持全局视角的同时有效地捕捉局部依赖性。
  • 此外,考虑到不同网络层对扫描模式的偏好不同,提出了一种动态方法来独立搜索每层的最佳扫描选择,从而显著提高了性能。

实验效果:在普通和分层模型上的广泛实验,强调了所提出方法在有效捕获图像表示方面的优越性。例如,在ImageNet上,我们的模型在相同的1.5G FLOPs下,性能显著优于 Vim-Ti 3.1%。

  

二、引言 

研究现状:SSM 以其计算效率为特征,表现出线性或近线性的序列缩放复杂性长度,使它们特别适合处理长序列。随着 Mamba (一种包含选择性扫描(S6)的新变体) 的成功,SSM 在广泛的视觉任务中的应用激增。

研究问题:图像中 2D 空间模式的非因果性本质上与 SSM 的因果处理框架不一致。如下图所示,将空间数据扁平化为 1D 标记的传统方法破坏了自然的局部 2D 依赖关系,削弱了模型准确解释空间关系的能力。

主要工作

  • 在这项工作中,引入了一种新的方法,通过 将图像分割到多个不同的局部窗口 来改善 Vision Mamba (ViM) 中的局部表示。在进行遍历之前,每个窗口都被单独扫描跨窗口,确保同一2D 语义区域内的标记被紧密地一起处理。
  • 通过 整合传统的全局扫描方向和新颖的局部扫描技术 来设计本文的基础块,使模型能够吸收全面的全局和细致入微的局部信息。
  • 为了更好地从这些不同的扫描过程中聚合功能,提出了一个 空间和通道注意力模块SCAttn ,旨在识别和强调有价值的信息,同时过滤掉冗余。
  • 考虑到扫描方向对特征表示的不同影响(例如,窗口大小为3的局部扫描擅 长捕获较小的物体或细节,而窗口大小为7的更适合于捕获较大的物体),引入了一种方向搜索方法来选择最佳扫描方向 。这种可变性在不同的层数和网络深度上尤为明显。

主要贡献

  • 为SSM引入了一种新的扫描方法,其中包括在不同窗口内进行 local 扫描,从而显著增强了模型结合全局上下文捕获详细本地信息的能力。
  • 引入了一种跨不同网络层搜索扫描方向的方法,能够识别和应用最有效的扫描组合,从而提高网络性能。
  • 提出了两个模型的变体,设计与平原和层次结构。通过对图像分类,对象检测和语义分割任务的广泛实验,证明了本文的模型比以前的作品取得了显着的改进。例如,在语义分割任务中,使用类似数量的参数,LocalVimS 在 mIoU (SS) 上的性能比 Vim-S 高出 1.5。

三、方法

LocalMamba整体模型结构图,如下所示: 

3.1 Local Scan for Visual Representations(局部扫描 for 视觉表征)

研究问题:Vim 中使用的扁平化方法破坏了这些局部依赖性,显著增加了垂直相邻令牌之间的距离,并阻碍了模型捕捉局部细微差别的能力。虽然 Vmamba 试图通过在水平和垂直方向上扫描图像来解决这个问题,但它仍然不能在单次扫描中全面处理空间区域。

解决方法引入了一种局部扫描图像的新方法。通过将图像划分为多个不同的局部窗口,本文方法确保了相关局部 token 的更紧密排列,增强了对局部依赖关系的捕获。

过程

1)四个方向的选择性扫描机制:通过集成四个方向的选择性扫描机制来构建基础模块:原始(a)和(c)方向,以及它们的翻转(backward 方向),以便从尾部到头部进行扫描。这种多方面的方法确保了每个选择性扫描模块内的全面分析,在局部细节和全局视角之间取得了平衡。

2)SCAttn模块:为了增强不同特征的整合并消除无关信息,在合并前引入了空间和通道关注模块(SCAttn)。该模块自适应地对每个分支的特征内的通道和令牌进行加权。通道注意力分支通过对空间维度上的输入特征 求平均值来聚合全局表示,随后应用线性变换来确定通道权重 。相反,空间注意力机制通过 用全局表示来增强每个标记的特征来评估标记意义从而实现细致入微的重要性加权特征提取。(通道注意力 + 全局投票门)

3.2 搜索自适应扫描

问题:四个分支局部选择性扫描模块,这种方法大大增加了计算需求。

解决方法:引入了一种策略,可以有效地为每层选择最合适的扫描方向,从而在不产生过多计算成本的情况下优化性能。该方法涉及为每层搜索最优扫描配置,确保定制和高效的表示建模。

过程:为了定制每一层的扫描过程,引入了 8 个候选扫描方向的多样化集合 S。这些包括水平和垂直扫描 (标准和翻转),以及窗口大小为 2 和 7 的局部扫描。为了与以前的模型保持一致的计算预算, 从这 8 个方向中为每层选择 4 个方向。这种方法的结果是一个可观的搜索空间 (C_8^4)^K,其中 K 表示模块的总数。

原理:将离散选择过程转换为连续域,允许使用softmax概率来表示扫描方向的选择

其中,\alpha^{(l)} 表示每个层 l 的一组可学习参数,反映所有潜在扫描方向上的 softmax 概率。(通过连续域中的可学习参数进行 Softmax 函数激活并来连续求和,找出最高softmax概率的方向组合)

(将整个搜索空间构建为一个过度参数化的网络,能够同时优化网络参数和架构变量 α,遵循标准的训练协议。在训练完成后,通过选择具有最高softmax概率的四个方向来得出最优方向选项。)

模型的搜索方向可视化结果,如下图所示:

3.3 架构变体

主干:作者尝试了两种不同的主干 ViM 和 VMamba。

实施细节:原始 Vim 模块包括两个扫描方向(水平和翻转水平),本文为LocalVim引入了四个扫描方向,从而增加了计算开销。为了保持类似的计算预算,我们将 Vim 模块的数量从 24 调整为20。对于LocalVMamba,它本质上有四个扫描方向,类似于本文提出的模块,直接替换模块,而不改变结构配置。详细配置可见下表:

计算成本分析:LocalMamba 模块是高效和有效的,只增加了很小的计算成本。扫描机制只涉及重新定位标记,不会产生额外的计算开销。此外,SCAttn模块,旨在跨扫描有效聚合各种信息,是异常精简。它利用线性层将token维度减少 1/r 的因子,随后在空间和通道维度上生成注意力权重,所有模型的 r 设置为8。例如,LocalVMamba-T模型,用LocalMamba模块替换了 VMamba模块,只会将VMamva-T的FLOPs从5.6G增加到5.7G。

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

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

相关文章

opencv彩色图像转灰度图原理

opencv彩色图像转灰度图原理 在OpenCV中,将彩色图像转换为灰度图像的基本原理是使用颜色空间转换的方法。具体来说,OpenCV提供了cvtColor函数,它可以将图像从一个颜色空间转换到另一个。 对于从BGR颜色空间(OpenCV中的默认彩色图…

少儿编程Scratch中秋节动画贺卡免费下载,让孩子轻松学编程

Scratch节日动画 – 中秋节动画贺卡免费下载-小虎鲸Scratch资源站 中秋佳节将至,如何让孩子在节日中既能感受到传统文化的魅力,又能学到编程知识?小虎鲸Scratch资源站特别推出了中秋节动画贺卡,不仅能让孩子通过简单的编程技巧制作…

【AI大模型】OpenAI API实现翻译助手场景

一、OpenAI简介 OpenAI,美国人工智能研究公司,是一家开放人工智能研究和部署公司,其使命是确保通用人工智能造福全人类 。创立于2015年12月,总部位于美国旧金山。现由营利性公司OpenAI LP及非营利性母公司OpenAI Inc组成。 随着2018年埃隆马…

24年云南省下半年事业单位少有人知的10个真相

云南下半年事业单位,已经确定了9月19号报名,11月2日笔试,关于下半年事业单位联考的一些考情,一次看懂: . 1⃣️专科生的岗位很多 根据过往三年的情况来看,云南下半年的事业单位考试,其实专科生有不少的岗位…

java项目之在线考试与学习交流网页平台源码(springboot)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的在线考试与学习交流网页平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于JAVA语言…

基于Springboot的校园防疫管理系统的设计与实现

文未可获取一份本项目的java源码和数据库参考。 1.本毕业设计(论文)课题应达到的目的: 1.1选题意义: 高校作为一种人群高度密集、人口来源地组成复杂的公共场所,一旦发生因传染病疫情导致的公共卫生安全事…

wpf触发与模板的使用示例:批量生产工具

批量生产工具 <Window x:Class"WpfM20UpdateFW.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expressio…

java项目之基于工程教育认证的计算机课程管理平台(源码+论文)

项目简介 基于工程教育认证的计算机课程管理平台的主要管理员可以管理教师&#xff0c;可以对教师信息修改删除以及查询操作&#xff1b;可以对通知公告信息进行添加&#xff0c;修改&#xff0c;删除以及查询操作&#xff1b;可以对学生信息进行添加&#xff0c;修改&#xf…

anaconda安装manim

anaconda安装manim &#xff08;安装时间2024年9月15日&#xff0c;后续版本变化再做更新&#xff09; 创建环境test 等一下我们创建一个manim项目作为试水 切换到test环境 {:height 430, :width 780} 输入以下代码 # using conda or mamba conda create -n my-manim-envi…

qt绘制时钟

代码 #include "widget.h" #include "ui_widget.h"#include <QWidget> #include <QPaintEvent> //绘图事件 #include <QDebug> //测试 #include <QPainter> //画家 #include <QPen> //笔 #include <QBrush> //画刷 …

java写s7和plc通讯

pom.xml <dependency><groupId>com.github.s7connector</groupId><artifactId>s7connector</artifactId><version>2.1</version></dependency>maven下载不了的&#xff0c;下载包&#xff0c;评论或者私自内免费给 DB212 类&a…

AI老照片修复神器,Anole下载介绍

最近AI老照片修复上色&#xff0c;再一次火出圈&#xff0c;一些社交平台关于此话题内容流量满满&#xff0c;尤其是在小红书和抖音火的不得了&#xff0c;本期文章就来给大家分享下AI修复老照片的方式方法 本文主要介绍使用Anole修复老照片的方法&#xff0c;只需输入一张黑白…

响应式CSS 媒体查询——WEB开发系列39

CSS媒体查询&#xff08;Media Queries&#xff09;是响应式设计中的核心技术之一&#xff0c;帮助我们在不同设备上展示不同的样式。通过媒体查询&#xff0c;开发者可以检测用户设备的特性&#xff0c;如屏幕宽度、高度、分辨率、方向等&#xff0c;针对性地调整网页布局。 一…

「数组」十大排序:精讲与分析(C++)

概述 截止目前&#xff0c;我们已经讲解并分析了十种最常见的排序算法&#xff0c;下附对应文章链接和全体Code。 链接 「数组」冒泡排序|选择排序|插入排序 / 及优化方案&#xff08;C&#xff09; 「数组」归并排序 / if语句优化|小区间插入优化&#xff08;C&#xff09…

使用Jlink给AT32下载程序

点击下载之后选择target device&#xff0c;这里我使用的是AT32F403ACGT7&#xff0c;M4内核&#xff0c;就选择Cortex-M4. 如果已经选过了&#xff0c;但不知道选没选对&#xff0c;就把ini文件删除即可再次进行选择。 我这里使用SW接线方式&#xff0c;选好后立马识别出来了…

Java【集合】

一、集合的概述 集合建立在数组基础上&#xff0c;主要位于java.util包中&#xff0c;用来存储Java类对象&#xff0c;并且可以实现各种数据结构。 集合大小可以改变&#xff0c;可以存放不同数据类型数据。集合不能存放基本类型数据&#xff0c;只能存放引用数据类型数据。集…

浅谈树型结构——树

文章目录 一、什么是树&#xff1f;二、树的特点三、树的概念四、树的表示形式五、树的应用 一、什么是树&#xff1f; 树是一种 非线性 的数据结构&#xff0c;是树型结构。是一个由n个有限结点组成的一个具有层次关系的集合&#xff0c;这种集合因为看起来像一颗倒挂的树&am…

测试-Gatling 与性能测试

Gatling 与性能测试详解 一、什么是性能测试&#xff1f; 性能测试是一种软件测试类型&#xff0c;旨在评估系统在负载下的响应时间、吞吐量和资源利用率等性能指标。通过性能测试&#xff0c;开发者和运维团队能够识别出系统的瓶颈、优化系统性能&#xff0c;并确保其在实际…

鸿蒙之Hello Word 遇坑总结 mac系统 不能预览 提示 Only files in a module can be previewed 解决办法

顺时代&#xff0c; 应潮流 &#xff01;鸿蒙崛起不可阻挡&#xff0c; 鸿蒙开发大有可为&#xff0c; 万丈高楼平地起&#xff0c;学编程的第一步当然是Hello World起&#xff0c;请看 第一步是下载 编辑器&#xff0c;直接官网 文档中心下载对应的系统版本安装&#xff0c;…

用nginx-rtmp-win32-master及ffmpeg模拟rtmp视频流

效果 使用nginx-rtmp-win32-master搭建RTMP服务 双击exe就可以了。切记整个目录不能有中文 README.md ,启用后本地的RTM路径: rtmp://192.168.1.186/live/xxx ffmpeg将地本地视频推RMTP F:\rtsp\ffmpeg-7.0.2-essentials_build\bin>ffmpeg -re -i F:\rtsp\123.mp4 -c c…