论文信息
题目:MedMamba: Vision Mamba for Medical Image Classification
MedMamba: 医学图像分类的视觉Mamba
源码:https://github.com/YubiaoYue/MedMamba
论文创新点
提出了MedMamba,这是第一个用于通用医学图像分类的视觉曼巴模型。该模型有效地结合了经典的卷积层和状态空间模型(SSM),以提取局部特征和捕获长期依赖关系,旨在提高医学图像分类的准确性和效率。
引入了一个名为SS-Conv-SSM的新型混合基本块。该块通过集成通道分割、卷积层、SSM层和通道混洗,提高了模型在提取医学图像特征时的效率,同时减少了参数数量和计算复杂度。
通过使用分组卷积策略和通道混洗操作,MedMamba在保持准确性的同时减少了模型参数和计算负担,使得模型更加适合于计算资源有限的实际应用场景。
摘要
自从深度学习时代以来,卷积神经网络(CNNs)和视觉变换器(ViTs)在医学图像分类任务中得到了广泛的研究和应用。不幸的是,CNN在建模长期依赖关系方面的局限性导致分类性能不佳。相比之下,ViTs受到其自注意力机制二次计算复杂度的阻碍,使得它们在计算资源有限的实际设置中难以部署。最近的研究表明,由曼巴(Mamba)代表的状态空间模型(SSMs)可以有效地建模长期依赖关系,同时保持线性计算复杂度。受此启发,作者提出了MedMamba,这是第一个用于通用医学图像分类的视觉曼巴。具体来说,作者引入了一个名为SS-Conv-SSM的新型混合基本块,它纯粹地将用于提取局部特征的卷积层与SSM的能力结合起来,以捕获长期依赖关系,旨在有效地建模不同图像模态的医学图像。通过采用分组卷积策略和通道混洗操作,MedMamba成功地提供了更少的模型参数和更低的计算负担,以实现高效的应用,而不会牺牲准确性。作者使用包含十种成像模态和411,007张图像的16个数据集,对MedMamba进行了彻底的评估。实验结果表明,MedMamba在大多数任务上与最先进的方法相比显示出了竞争性表现。这项工作旨在探索视觉曼巴的潜力,并为医学图像分类建立一个新的基准,从而为开发更强大的基于曼巴的医学人工智能算法和应用提供宝贵的见解。
关键字
医学图像分类 · 深度学习 · 状态空间模型 · 视觉Mamba
3 方法
本节中,作者首先介绍了与MedMamba相关的初步概念,即状态空间模型和离散化过程。然后,作者全面讨论了MedMamba的整体架构和2D-选择性扫描机制。最后,作者提供了作为MedMamba核心元素的SS-Conv-SSM块的详细建模过程。
3.1 初步概念
最近的基于SSM模型,即结构化状态空间序列模型(S4)和Mamba,依赖于一个经典的连续系统,该系统将一维输入函数或序列,记作 ,通过中间隐状态 映射到输出 。上述过程可以表示为一个线性常微分方程(ODE):
其中 表示状态矩阵,而 和 表示投影参数。
S4模型和Mamba将连续系统离散化,使其更适合深度学习。具体来说,它们引入了一个时间尺度参数 将 和 转换为离散参数 和 使用固定的离散化规则。通常,零阶保持(ZOH)被用作离散化规则,可以定义如下:
离散化后,使用步长 的方程1可以重新定义如下:
最终,SSM模型采用全局卷积来计算输出:
其中 表示一个结构化卷积核, 表示输入序列 的长度。
3.2 MedMamba
3.2.1 整体架构
图1显示了MedMamba的整体架构。具体来说,MedMamba包括一个补丁嵌入层,堆叠的SS-Conv-SSM块,用于下采样的补丁合并层,以及一个特征分类器。
与典型的ViT类似,MedMamba首先将输入图像 分割成4×4大小的不重叠补丁,使用补丁嵌入层,然后将图像的通道维度映射到 ,但不会将补丁进一步展平为1-D序列。补丁嵌入层的结果是一个特征图,尺寸为 ,不会破坏输入图像的2D结构。
随后,MedMamba重复堆叠SS-Conv-SSM块构建Stage-1,进一步处理特征图,而不改变其尺寸。为了构建层次表示,MedMamba使用补丁合并层对特征图进行下采样。Stage-2、Stage-3和Stage-4重复上述过程,两个补丁合并层用于下采样Stage-2和Stage-3的输出,分别得到尺寸为 和 的两个输出。在网络的末端,使用一个经典的分类器,包括一个自适应全局池化层和一个线性层,来计算输入图像的类别。MedMamba处理输入的整个过程类似于流行的CNN和ViT。此外,默认情况下,MedMamba的输入尺寸设置为224×224×3。
像大多数ViT的配置一样,开发了三种不同规模的MedMamba,即MedMamba-Tiny、MedMamba-Small和MedMamba-Base(分别简称为MedMamba-T、MedMamba-S和MedMamba-B)。详细的架构规格在表1中概述。所有模型的FLOPs是使用224×224输入尺寸评估的。
3.2.2 2D-选择性扫描
2D-选择性扫描(SS2D)(见图2)由VMamba提出,是MedMamba的核心元素之一。SS2D继承了为自然语言处理任务设计的的选择性扫描空间状态序列模型(S6),并成功解决了S6中的“方向敏感”问题。具体来说,为了缩小1-D数组扫描和2-D平面遍历之间的差距,SS2D引入了一个交叉扫描模块(CSM),促进了S6向视觉数据的扩展,而不影响接收场。CSM采用四路扫描策略,即从四个角分别扫描到对面的位置,遍历图像特征图的空间域,确保特征图中的每个像素都整合了来自不同方向的所有其他位置的信息,从而实现了全局接收场,而不增加线性计算复杂度。
SS2D包含三个组成部分:扫描扩展操作(CSM)、S6块和扫描合并操作。图2直观地展示了SS2D的内部机制。具体来说,扫描扩展操作首先沿着四个不同方向(从左上到右下、从右下到左上、从右上到左下、从左下到右上)展开输入图像到序列中。然后S6块处理所有序列以提取特征,确保从各个方向的信息都被彻底扫描。最后,通过扫描合并操作将四个方向的四个输出特征合并,构建最终的2D特征图,输出与输入尺寸相同的结果。
S6块源自Mamba,通过调整SSM的参数引入了基于S4的选择性机制,使模型能够区分和保留相关信息,同时过滤掉不相关信息。SS2D的S6块的伪代码在算法1中给出。
为了方便理解,我们将SS2D的输入,即特征图,记作 ,其中 表示特征图第 行第 列的一个token。因此,扫描扩展操作可以形式化为如下:
其中 ,, 是展开和展平的token序列。接下来,我们使用S6来选择性地扫描每个token序列,得到上下文token序列 。紧接着,SS2D对上下文token序列应用反向操作:
其中 表示展开和转换的特征图 。最后,SS2D应用扫描合并以获得输出:。
3.2.3 SS-Conv-SSM块
分组卷积使用一组卷积(每层多个内核)来促进模型学习各种高级别和低级别特征。这个概念最初在AlexNet中引入,作为在多个GPU上分布模型的工程妥协。近年来,一些研究发现这个模块可以用来提高模型性能,同时减少模型参数大小和模型复杂性。为了使MedMamba能够更有效地建模医学图像,我们在提出的SS-Conv-SSM中引入了这个经典概念。作为MedMamba的基本组件,SS-Conv-SSM是一个轻量级的双分支块。它使用通道分割将特征图分成两组,然后使用Conv-Branch和SSM-Branch从每组中提取全局-局部信息。最后,SS-Conv-SSM使用通道连接恢复通道尺寸,同时使用通道混洗在通道维度上混洗特征图,以避免分组卷积操作导致通道间信息丢失。我们遵循经典CNN和ViT的设置,将Conv-Branch和SSM-Branch中的激活函数分别设置为ReLU和SiLU。
我们为SS-Conv-SSM的建模过程进行了形式化。给定一个模块输入 和一个模块输出 ,我们用 表示通道分割,那么有:
接下来, 和 分别用于表示通道连接和通道混洗。为了匹配卷积操作,我们使用了一个置换操作来重新排列原始特征图。基于上述,Conv-Branch的建模过程可以定义如下:
同时,SSM-Branch的建模过程可以定义如下:
总之,SS-Conv-SSM的输出可以表述如下:
4 实验和结果
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
大模型 AI 能干什么?大模型是怎样获得「智能」的?用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例:向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示(Embeddings)向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
为什么要做 RAG什么是模型什么是模型训练求解器 & 损失函数简介小实验2:手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身:基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例:如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】