Vision Mamba 不是个普通模型。
号称「全面包围 Transformer」的 Mamba,推出不到两个月就有了高功能的视觉版。
本周四,来自华中科技大学、地平线、智源人工智能研究院等机构的研究者提出了 Vision Mamba(Vim)。
论文地址:https://arxiv.org/pdf/2401.09417.pdf
项目地址:https://github.com/hustvl/Vim
论文标题:Vision Mamba: Efficient Visual Representation Learning with Bidirectional State Space Model
效果如何呢?在 ImageNet 分类义务、COCO 对象检测义务和 ADE20k 语义支解义务上,与 DeiT 等成熟的视觉 Transformers 比拟,Vim 实现了更高的功能,同时还显著提高了计算和内存效率。例如,在对分辨率为 1248×1248 的图象进行批量推理提取特征时,Vim 比 DeiT 快 2.8 倍,并节省 86.8% 的 GPU 内存。结果表明,Vim 能够克服对高分辨率图象执行 Transformer 式理解时的计算和内存限制,并且具有成为视觉基础模型的下一代骨干的巨大潜力。
接下来我们看看论文内容。
Mamba 的提出带动了研究者对状况空间模型(state space model,SSM)兴趣的增加,不同于 Transformer 中自注意力机制的计算量会随着上下文长度的增加呈平方级增长,由于 SSM 擅长捕捉远程依赖关系,因而开始受到大家追捧。
在此期间,一些鉴于 SSM 的方法如线性状况空间层(LSSL)、结构化状况空间序列模型(S4)、对角状况空间(DSS)和 S4D 都被研究者提出来,用于处理各种序列数据,特别是在建模远程依赖关系方面。
Mamba 将时变参数纳入 SSM 中,并提出了一种硬件感知算法来实现高效的训练和推理。Mamba 卓越的扩展功能表明它在语言建模方面是 Transformer 有前途的替代品。
然而,到目前为止,研究者还尚未在视觉义务中探索出通用的鉴于纯 SSM 的骨干网络。
受 Mamba 在语言建模方面成功的激励,研究者开始设想能否将这种成功从语言转移到视觉,即用先进的 SSM 方法设计通用且高效的视觉主干。然而,由于 Mamba 特有的架构,需要解决两个挑战,即单向建模和缺乏位置感知。
为了应对这些问题,研究者提出了 Vision Mamba (Vim) 块,它结合了用于数据依赖的全局视觉上下文建模的双向 SSM 和用于位置感知视觉识别的位置嵌入。
与其他鉴于 SSM 的视觉义务模型比拟,Vim 是一种鉴于纯 SSM 的方法,并以序列方式对图象进行建模。与鉴于 Transformer 的 DeiT 比拟,Vim 在 ImageNet 分类上取得了优越的功能。此外,Vim 在 GPU 内存和高分辨率图象的推理时间方面更加高效。
方法介绍
Vision Mamba (Vim) 的目标是将先进的状况空间模型 (SSM),即 Mamba 引入到计算机视觉。
Vim 的概述如图 2 所示,标准的 Mamba 是为 1-D 序列设计的。为了处理视觉义务,首先需要将二维图象转换成展开的 2-D patch 。式中 (H, W) 为输入图象的巨细,C 为通道数,P 为图象 patch 的巨细。接下来,需要将 x_p 线性投影到巨细为 D 的向量上,并添加位置嵌入得到如下公式:
Vim 块
原始的 Mamba 块是为一维序列设计的,不适合需要空间感知理解的视觉义务。Vim 块集成了用于视觉义务的双向序列建模,Vim 块如上图 2 所示。
Vim 块的操作算法如下所示。
架构细节
架构的超参数如下:
L:块数
D:隐藏状况维度
E:扩展状况维度
N:SSM 维度
遵循 ViT 和 DeiT,该研究首先采用 16×16 内核巨细的投影层来获得非重叠 patch 嵌入的一维序列。随后直接堆叠 L 个 Vim 块。默认情况下块数 L 配置为 24,SSM 维度 N 配置为 16。为了与 DeiT 系列模型巨细保持一致,该研究将小( tiny)尺寸变体的隐藏状况维度 D 配置为 192,将扩展状况维度 E 配置为 384。对于小(small)尺寸变体,该研究将 D 配置为 384,将 E 配置为 768。
实验
该研究在 ImageNet-1K 数据集上对 Vim 进行了基准测试。
图象分类
表 1 将 Vim 与鉴于 ConvNet、鉴于 Transformer 和鉴于 SSM 的骨干网络进行了比较。与鉴于 ConvNet 的 ResNet 比拟,Vim 表现出更优越的功能。例如,当参数大致相似时,Vim-Small 的 top-1 准确率达到 80.3,比 ResNet50 高 4.1 个百分点。与传统的鉴于自注意力的 ViT 比拟,Vim 在参数数量和分类准确率方面都有相当大的优势。与高度优化的 ViT 变体(即 DeiT )比拟,VimTiny 比 DeiT-Tiny 高 0.9 个点,Vim-Small 比 DeiT 高 0.5 个点。与鉴于 SSM 的 S4ND-ViTB 比拟,Vim 以减少 3 倍的参数实现了类似的 top-1 准确率。
图 1 (b) 和 (c) 比较了小型 Vim 和 DeiT 的 FPS 和 GPU 内存。随着图象分辨率的提高,Vim 在速度和内存方面表现出更好的效率。具体来说,当图象巨细为 512 时,Vim 实现了与 DeiT 相似的 FPS 和内存。当图象巨细增长到 1248 时,Vim 比 DeiT 快 2.8 倍,并节省 86.8% 的 GPU 内存。Vim 在序列长度上的线性扩展的显著优势使其为高分辨率下游视觉应用和长序列多模态应用做好了准备。
语义支解
如表 2 所示,Vim 在不同尺度上始终优于 DeiT:Vim-Ti 比 DeiT-Ti 高 1.0 mIoU,Vim-S 比 DeiT-S 高 0.9 mIoU。与 ResNet-101 主干网络比拟,Vim-S 以减少近 2 倍的参数实现了相同的支解功能。
为了进一步评估研究方法在下游义务上(即支解、检测和实例支解)的效率,本文将骨干网与常用的特征金字塔网络(FPN)模块结合起来,并对其 FPS 和 GPU 内存进行基准测试。
如图 3 和图 4 所示,尽管该研究在主干网上附加了一个 heavy FPN,但效率曲线与纯主干网(图 1)的比较结果相似。
目标检测和实例支解
表 3 使用 Cascade Mask R-CNN 框架对 Vim-Ti 和 DeiT-Ti 进行了比较。Vim-Ti 超过 DeiT-Ti 1.3 box AP 和 1.1 mask AP。
下图为可视化结果:本文方法可以捕获图象中非常大的物体,这是 DeiT-Ti 等无法做到的。
了解更多内容,请参考原论文。