前言
设计计算效率高的网络架构在计算机视觉领域仍然是一个持续的需求。在本文中,我们将一种状态空间语言模型 Mamba 移植到 VMamba 中,构建出一个具有线性时间复杂度的视觉主干网络 。VMamba 的核心是一组视觉状态空间 (VSS) 块 ,搭配 2D 选择性扫描 (SS2D) 模块 。通过沿四条扫描路径遍历,SS2D 帮助弥合一维选择性扫描的有序特性与二维视觉数据的非顺序结构之间的差距,从而便于从不同来源和视角收集上下文信息。基于 VSS 块,我们开发了一系列 VMamba 架构,并通过一系列架构和实现上的优化来加速其运算。大量实验证明了 VMamba 在各种视觉感知任务中的优异表现,尤其在输入规模的效率方面,相较于现有的基准模型显示出显著优势。代码链接
介绍
视觉表示学习是计算机视觉中的一个基础研究领域,随着深度学习的兴起,该领域取得了显著进展。为了表示视觉数据中的复杂模式,提出了两类主要的主干网络,即卷积神经网络 (CNN) 和视觉 Transformer (ViTs) ,并在多种视觉任务中得到了广泛应用。相比于 CNN,ViTs 由于融合了自注意力机制,通常在大规模数据上的学习能力更强。然而,自注意力机制对于标记数的二次复杂度在处理具有大空间分辨率的下游任务时带来了巨大的计算开销。
为应对这一挑战,已有大量研究致力于提升注意力计算的效率。然而,现有方法要么限制了有效感受野的大小,要么在多任务中表现出明显的性能下降。这促使我们开发一种新的视觉数据架构,保留原始自注意力机制的固有优势,即全局感受野和动态权重参数。
最近,在自然语言处理 (NLP) 领域中,Mamba 作为一种新颖的状态空间模型 (SSM) 出现,为长序列建模提供了一种具有线性复杂度的高效方法。受此进展的启发,我们提出了 VMamba,一种集成基于 SSM 模块的视觉主干网络,用于高效的视觉表示学习 。然而,Mamba 的核心算法,即并行化的选择性扫描操作,主要用于处理一维序列数据 。当将其应用于视觉数据时遇到挑战,因为视觉数据本质上缺乏顺序排列的组件结构。为了解决这一问题,我们提出了二维选择性扫描 (SS2D) 模块,一种为空间域遍历而设计的四向扫描机制 。与自注意力机制相比,SS2D 确保每个图像块仅通过沿相应扫描路径计算的压缩隐藏状态获得上下文信息,从而将计算复杂度从二次降低为线性。
基于 VSS 块,我们开发了一系列 VMamba 架构(即 VMamba-Tiny/Small/Base) ,并通过一系列架构优化和实现上的改进来加速其运行。与基于 CNN(ConvNeXt)、ViT(Swin 和 HiViT)和 SSM(S4ND 和 Vim)构建的基准视觉模型相比,VMamba 在 ImageNet-1K 上各个模型规模的图像分类准确率均优于基准模型。具体而言,VMamba-Base 达到了 83.9% 的 top-1 准确率,比 Swin 提高了 0.4%,吞吐量也大幅领先 Swin 超过 40%(646 vs. 458)。VMamba 在多种下游任务中表现优越,其中 VMamba-Tiny/Small/Base 在 COCO 上的目标检测(1× 训练)中达到了 47.3%/48.7%/49.2% 的 mAP,分别超越 Swin 4.6%/3.9%/2.3% 和 ConvNeXt 3.1%/3.3%/2.2%。在 ADE20K 上的单尺度语义分割中,VMamba-Tiny/Small/Base 实现了 47.9%/50.6%/51.0% 的 mIoU,分别超越 Swin 3.4%/3.0%/2.9% 和 ConvNeXt 1.9%/1.9%/1.9%。此外,与 ViT 模型在输入标记数增加时复杂度呈二次增长不同,VMamba 在保持类似性能的同时实现了 FLOPs 的线性增长,展现了其在输入规模扩展方面的先进性。
本研究的贡献总结如下:
- 我们提出了 VMamba,这是一种基于 SSM 的视觉主干网络,用于视觉表示学习,并具有线性时间复杂度。通过一系列架构设计和实现细节上的改进,提高了 VMamba 的推理速度。
- 我们引入了二维选择性扫描 (SS2D) 模块 ,以弥合一维数组扫描与二维平面遍历之间的差距,使得选择性 SSM 能够扩展到视觉数据处理。
- 在没有额外技巧的情况下,VMamba 在图像分类、目标检测和语义分割等多种视觉任务中表现出色。同时,它在输入序列长度方面展示了显著的适应性,实现了计算复杂度的线性增长。
相关工作
卷积神经网络 (CNNs)。自 AlexNet 起,大量研究致力于提升 CNN 模型在多种视觉任务中的建模能力和计算效率。提出了更复杂的算子,例如深度卷积和可变形卷积,以增强 CNN 的灵活性和效果。近期,受 Transformer 成功的启发,现代 CNN 通过引入长距离依赖关系和动态权重,在架构设计中表现出色。
视觉 Transformer (ViTs)。作为代表性开创性工作,ViT 探讨了基于原始 Transformer 架构的视觉模型的有效性,揭示了大规模预训练对图像分类性能提升的重要性。为减少 ViT 对超大数据集的依赖,DeiT 引入了教师-学生蒸馏策略,将 CNN 模型中的知识迁移至 ViTs,强调了感知中的归纳偏置的重要性。沿此思路,后续研究提出了层次化 ViTs。
另一研究方向专注于提升自注意力机制的计算效率,这是 ViTs 的核心。通过将自注意力表示为核特征映射的线性点积,线性注意力利用矩阵乘法的结合性来将计算复杂度从二次降为线性。GLA 进一步提出了硬件高效的线性注意力变体,平衡了内存移动与并行化的关系。RWKV 也利用线性注意力机制结合了 Transformer 的可并行训练与 RNN 的高效推理。RetNet 通过添加门控机制提供了并行化计算路径,而 RMT 则将时间衰减机制引入空间域以增强视觉表示学习。
状态空间模型 (SSMs) 。尽管 ViT 架构在视觉任务中得到了广泛应用,自注意力的二次复杂度在处理长输入序列(如高分辨率图像)时带来了挑战。为提升扩展效率,SSMs 作为 Transformer 的替代方案引起了研究界的关注。Gu 等人展示了基于 SSM 的模型在长程依赖处理方面的潜力,通过 HiPPO 初始化实现了这一点。为了提高实际可行性,S4 提出了将参数矩阵规范化为对角结构。随后,出现了各种结构化 SSM 模型,分别引入了不同的架构改进,包括复对角结构、多输入多输出支持、对角加低秩操作的分解以及选择机制。这些进展也被集成到更大的表示模型中,进一步展示了结构化状态空间模型在各种应用中的多样性和可扩展性。尽管这些模型主要集中在将 SSM 应用于文本和语音等长序列数据,但关于将 SSM 应用于具有二维结构的视觉数据的探索仍然有限。
准备工作
VMamba:视觉状态空间模型
网络架构
视觉数据的 2D 选择性扫描 (SS2D)
尽管 S6 中扫描操作的顺序性非常适合处理涉及时间数据的 NLP 任务,但在应用于视觉数据时却带来了很大挑战,因为视觉数据本质上是非顺序的,并包含空间信息(例如局部纹理和全局结构) 。为了解决此问题,S4ND [45] 通过卷积操作重新定义了 SSM,将核从 1D 直接扩展到 2D,通过外积实现。然而,这种修改导致权重不再与输入无关,从而限制了对上下文信息的捕捉能力。因此,我们仍采用选择性扫描方法 [17] 来处理输入,并提出二维选择性扫描 (SS2D) 模块,以适应视觉数据的 S6,同时保持其优势。
如图 2 所示,SS2D 的数据传递包括三个步骤:交叉扫描、使用 S6 块的选择性扫描和交叉合并 。对于给定的输入数据,SS2D 首先沿四条不同的遍历路径展开输入块序列(即交叉扫描),然后并行地使用单独的 S6 块处理每个块序列,最后将结果序列重新整形并合并形成输出图(即交叉合并) 。通过采用互补的一维遍历路径,SS2D 使图像中的每个像素能够有效地从不同方向整合所有其他像素的信息,从而在二维空间中建立全局感受野。