VMamba: Visual State Space Model論文筆記

文章目錄

  • VMamba: Visual State Space Model
    • 摘要
    • 引言
    • 相關工作
    • Preliminaries
    • 方法
      • 網絡結構
      • 2D-Selective-Scan for Vision Data(SS2D)

VMamba: Visual State Space Model

論文地址: https://arxiv.org/abs/2401.10166
代碼地址: https://github.com/MzeroMiko/VMamba

摘要

  • 卷積神經網絡(CNN)和視覺Transformer(ViT)是視覺表示學習的兩種最流行的基礎模型
  • CNN表現出卓越的可擴展性和線性復雜度。
  • ViT在圖像分辨率方面超過了CNN, 但是復雜性確實二次方。Vit通過結合全局感受野和動態權重實現了卓越的視覺建模性能。
  • 作者在繼承上述組件的情況下引入了狀態空間模型,提出了視覺狀態空間模型(VMamba)。該模型在不犧牲全局感受野和動態權重的情況下實現了線性復雜度。
  • 通過引入交叉掃描模塊(CSM)解決方向敏感問題。
  • 實驗證明,VMamba在各種視覺任務表現良好,并且隨著圖像分辨率的提高而表現出更明顯的優勢。

引言

  • 視覺表示學習是計算機視覺領域最基本的研究課題之一。深度基礎模型主要分為卷積神經網絡(CNN)和Vision Transformer(ViTs)兩個主要類別。

  • 然而,注意力機制在圖像大小方面需要二次方的 復雜度,這在處理下游密集預測任務時計算開銷昂貴。為了解決這個問題,人們投入大量的經歷通過限制計算窗口的大小或步幅來提高注意力的效率。但是這種是以限制感受野的規模為代價的。因此,作者設計了一種具有線性復雜度的心得視覺基礎模型,同時仍然保留與全局感受野和動態權重相關的優勢。

  • 引入了視覺狀態空間模型(VMamba), 用于高效的視覺表示學習。它通過繼承自選擇性掃描性狀態序列模型(S6)。但是因為無法估計和未知掃描補丁的關系,直接使用這種策略會導致接受域受限。作者稱這種問題為"方向敏感"問題,并引入交叉掃描模塊(CSM)來解決。CSM采用四向掃描策略,即從整個特征的四個角開始掃描映射到相反的為止。如下圖所示。該策略保持特征圖中的每個元素集成自不同方向的所有其他位置的信息,從而在不增加線性計算復雜度的情況下呈現全局感受野。
    0

  • VMamba的Tiny、Small、Base分別包含22M、44M、75M參數量。能夠在FLOPs穩步增加的情況下獲得與ViT相當的性能。

  • 貢獻:

    • 提出了VMamba, 一種具有全局感受野和動態權重的視覺狀態空間模型,用于視覺表示學習。
    • 引入交叉掃描模塊(CMS)是為了彌補一維陣列掃描和二維平面掃描之間的差距,促進S6在不影響接受范圍的情況下擴展到視覺數據
    • 證明VMamba在圖像分類、目標檢測和語義分割等各種視覺任務具有強大的潛力。

相關工作

具體內容略,主要為卷積神經網絡(CNN)、Vision Transformer(ViTs)和狀態空間模型(SSMs), 狀態空間模型詳解可參考Mamba

Preliminaries

狀態空間模型與相關工作一樣可參考Mamba
連續時間的SSM可以表示為線性常微分方程(ODEs, linear ordinary differential equations):
h ′ ( t ) = A h ( t ) + B μ ( t ) , y ( t ) = C h ( t ) + D μ ( t ) , \begin{aligned} h'(t)&=\mathbf{A}h(t)+\mathbf{B}\mu(t),\\ y(t)&=\mathbf{C}h(t)+D\mu(t), \end{aligned} h(t)y(t)?=Ah(t)+Bμ(t),=Ch(t)+Dμ(t),?
其中, A ∈ R N × N , B ∈ R N × 1 , C ∈ R 1 \mathbf{A}\in\mathbb{R}^{N\times N}, \mathbf{B}\in\mathbb{R}^{N\times1}, \mathbf{C}\in\mathbb{R}^1 ARN×N,BRN×1,CR1是權重參數

SSM的離散化: 狀態空間模型(SSMs)作為連續時間模型,需要進行離散化才能更好的集成到深度學習算法中。可以參照Mamba中S4的部分。

選擇掃描機制: 為了解決LTI SSMs(SSMs原始公式)獲取上下文信息的局限性,Gu等人提出了一種新的SSMs參數化方法, 該方法集成了一個輸入依賴的選擇機制(S6)。然而,在選擇性SSMs的情況下,卷積不適應動態權重導致時變加權參數對隱藏狀態難以進行有效計算。而離散化可以使用線性復雜度的關聯掃描算法有效地計算出 y b y_b yb?

方法

網絡結構

作者在三個尺度上開發了VMamba: VMamba-Tiny(VMamba-T)、VMamba-Small(VMamba-S)和VMamba-Base(VMamba-B)。VMamba-T架構的概述如下圖中的a所示。首先將輸入圖像 I ∈ R H × W × 3 I\in\mathbb{R}^{H\times W\times 3} IRH×W×3分割成多個patch, 得到一個維度為 H / 4 × W / 4 H/4\times W/4 H/4×W/4的2d的特征圖空間。隨后,使用多個網絡階段創建分辨率為 H / 8 × W / 8 , H / 16 × W / 16 , H / 32 × W / 32 H/8\times W/8, H/16\times W/16, H/32\times W/32 H/8×W/8,H/16×W/16,H/32×W/32的分層表示。每個階段都包括一個下采樣層(第一階段除外),然后是一個堆疊的視覺狀態空間(VSS)塊。
1

VSS塊是Mamba塊(上圖的b)的視覺對應部分。新提出的2d選擇掃描模塊(SS2D)替換VSS塊的初始架構(上圖的c)作為Mamba的核心的同時實現全局接受域,動態權重(即選擇性)和線性復雜度。

為了進一步提高計算效率,消除了整個乘法分支(上圖c中的紅框部分),因為門控機制的影響是通過SS2D的選擇性來說實現的。因此,生成的VSS塊(上圖的d)由一個包含兩個殘差模塊的單一網絡分支組成,模仿了一個普通transformer的架構。

2D-Selective-Scan for Vision Data(SS2D)

S6中的掃描操作的順序性質難以用于視覺數據。因為視覺數據本質上是非順序的,包含空間信息(如局部紋理和全局結構)。為了解決該問題, S4ND用卷積運算重新指定了SSM, 通過外積將內核從一維擴展到二維,然而這種修改使得權重無法獨立于輸入,從而限制了捕獲上下文信息的能力。因此,作者基于選擇性掃描方法提出了了2D選擇性掃描模塊(SS2D),在不影響其優勢的情況下使S6適應視覺數據。
2

如上圖所示,SS2D中的數據前向包含三個步驟: 交叉掃描、S6的選擇性掃描和交叉合并。給定輸入數據,SS2D首先沿著輸入patch沿著四個不同的遍歷路徑展開成序列(即交叉掃描),使用單獨的S6塊并行的處理每個patch序列,然后對合成序列進行重構和合并, 以形成輸出映射(即交叉合并)。通過采用互補的以為遍歷路徑,SS2D使圖像中的每個像素能夠有效地整合其他所有像素的信息,從而促進在二維空間中建立全局接受域的過程。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/37132.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/37132.shtml
英文地址,請注明出處:http://en.pswp.cn/web/37132.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

防火墻共性檢測技術

防火墻共性檢測技術 防火墻共性檢測技術是指防火墻在監控和控制網絡流量時,共同采用的一些檢測和過濾方法。無論是哪種類型的防火墻,這些技術都可以用于識別和阻止惡意流量,確保網絡安全。以下是防火墻共性檢測技術的詳細介紹,包…

axios的基本使用和vue腳手架自帶的跨域問題解決

axios的基本使用和vue腳手架自帶的跨域問題解決 1. axios 1.1 導入axios npm i axios1.2 創建serve1.js serve1.js const express require(express) const app express()app.use((request,response,next)>{console.log(有人請求服務器1了);console.log(請求來自于,re…

go Channel 原理 (一)

Channel 設計原理 不要通過共享內存的方式進行通信,而是應該通過通信的方式共享內存。 在主流編程語言中,多個線程傳遞數據的方式一般都是共享內存。 Go 可以使用共享內存加互斥鎖進行通信,同時也提供了一種不同的并發模型,即通…

npm ci vs npm i

npm ci vs npm i 幾個關鍵區別:該選擇哪個? 通過 npm ci 和 npm i 兩個命令,都可安裝項目的依賴。那么這兩個命令有什么區別呢? 幾個關鍵區別: 目的和用途: npm ci :根據項目中的 package-lock…

AI奏響未來樂章:音樂界的革命性變革

AI在創造還是毀掉音樂 引言 隨著科技的飛速發展,人工智能(AI)正在逐漸滲透到我們生活的每一個角落,音樂領域也不例外。AI技術的引入,不僅為音樂創作、教育、體驗帶來了革命性的變革,更為整個音樂產業注入了…

順序表應用——通訊錄

在本篇之前的順序表專題我們已經學習的順序表的實現,了解了如何實現順序表的插入和刪除等功能,那么在本篇當中就要學習基于順序表來實現通訊錄,在通訊錄當中能實現聯系人的增、刪、查改等功能,接下來就讓我們一起來實現通訊錄吧&a…

grpc學習golang版( 五、多proto文件示例 )

系列文章目錄 第一章 grpc基本概念與安裝 第二章 grpc入門示例 第三章 proto文件數據類型 第四章 多服務示例 第五章 多proto文件示例 第六章 服務器流式傳輸 第七章 客戶端流式傳輸 第八章 雙向流示例 文章目錄 一、前言二、定義proto文件2.1 公共proto文件2.2 語音喚醒proto文…

解決Vue3項目中跨域問題的步驟

決Vue3項目中跨域問題的步驟可以按照以下方式清晰地分點表示和歸納: 1. 使用代理服務器(Proxy) 步驟: 在Vue項目的根目錄下找到或創建vue.config.js文件。在vue.config.js中配置devServer的proxy選項。設定需要代理的接口前綴&a…

基于局域網下的服務器連接、文件傳輸以及內網穿透教程 | 服務器連接ssh | 服務器文件傳輸scp | 內網穿透frp | 研究生入學必備 | 深度學習必備

🙋大家好!我是毛毛張! 🌈個人首頁: 神馬都會億點點的毛毛張 📌本篇博客分享的是基于局域網下的服務器連接🔗、文件傳輸以及內網穿透教程,內容非常完備?,涵蓋了在服務器上做深度學…

樹莓派3B讀寫EEPROM芯片AT24C256

AT24C256是一個Atmel公司的EEPROM存儲芯片,容量是256K個bit(也就是32K字節),I2C接口,而樹莓派正好有I2C接口,如下圖藍框中的4個IO口, 把AT24C256和這4個口接在一起,這樣硬件就準備好…

Django 頁面展示模型創建表的數據

1,添加視圖函數 Test/app8/urls.py from django.shortcuts import render from .models import Userdef create_user(request):if request.method POST:username request.POST.get(username)email request.POST.get(email)# ... 獲取其他字段的值# 創建用戶實例…

【Python學習篇】Python實驗小練習——異常處理(十三)

個人名片: 🎓作者簡介:嵌入式領域優質創作者🌐個人主頁:妄北y 📞個人QQ:2061314755 💌個人郵箱:[mailto:2061314755qq.com] 📱個人微信:Vir2025WB…

【教程】5分鐘直接了解隨機森林模型

本文來自《老餅講解-BP神經網絡》https://www.bbbdata.com/ 目錄 一、什么是隨機森林模型1.1.隨機森林模型介紹1.2.為什么隨機森林要用多棵決策樹 二、怎么訓練一個隨機森林模型2.1.訓練一個隨機森林模型 隨機森林模型是機器學習中常用的模型之一,它是決策樹模型的一…

Node.js全棧指南:靜態資源服務器

上一章【認識 MIME 和 HTTP】。 我們認識和了解了 MIME 的概念和作用,也簡單地學習了通過瀏覽器控制臺查看請求和返回的用法。 通過對不同的 HTML、CSS、JS 文件進行判斷,設置不同的 MIME 值,得以讓我們的瀏覽器正正確地接收和顯示不同的文…

八爪魚現金流-031,寬帶到期記一筆負債

到期了,新弄的網絡,記錄一下負債包。 八爪魚現金流 八爪魚

英英詞典(匯編實驗)

功能要求: 1.單詞及其英文解釋的錄入、修改和刪除 (1 ) 錄入新單詞,把它插入到相應的位置(按詞典順序),其后跟英文解釋、同義詞、反義詞;(此功能要求在文件中完成,其它功能可以將單詞放在數據段中&#xf…

數據庫原理之數據庫基本概念

目錄 前言 基本概念 數據庫完整性 前言 今天我們來看看數據庫的基本概念,幫助大家對數據庫有一點點最基本的了解 基本概念 4個基本概念 數據data:描述事物的符號,數據庫中存儲的基本對象。 數據庫Database:長期存儲在計算機…

山東大學多核并行2024年回憶版

2024.6.13回憶版 矩陣向量乘不可整除代碼 集合通信與點對點通信的區別 塊劃分、循環劃分、循環塊劃分(14個向量,4個進程) 按行訪問還是按列訪問快 SISD系統問題 循環依賴問題 問題:為什么不能對這個循環并行化&#xff0…

Python邏輯控制語句 之 綜合案例

需求: 1. 提示?戶輸?登錄系統的?戶名和密碼 2. 校驗?戶名和密碼是否正確(正確的?戶名:admin、密碼:123456) 3. 如果?戶名和密碼都正確,打印“登錄成功!”,并結束程序 4. 如果?戶名或密碼錯誤,打印“?戶名或密碼錯誤!”…