从状态空间SSM到Mamba

目录

比较四种网络架构——CNN、RNN、Transformer、Mamba

状态空间模型SSM

目录

比较四种网络架构——CNN、RNN、Transformer、Mamba

状态空间模型SSM

1 - 状态空间可以表示神经网络

2 - 离散的SSM

S4【结构化状态空间序列=SSM+HiPPO+Structured Matrices】

S5【多输入、多输出SSM】

S6【SSM+Selection机制 】

【Mamba Block的代码】

【Mamba的并行扫描操作】

【Mamba的硬件改进】

VMamba【视觉任务中的 Mamba】

2D 选择性扫描(SS2D=S6+CSM)

VSS视觉状态空间(VSS Block = 卷积+Silu激活+SS2D)

Mamba在不同主干网络下的应用

1 - VMUNet

2 - MambaVision

Sigma【多模态Mamba】

[ 附一个看到的Mamba论文用于医学图像处理的收集链接,用于不断追踪Mamba网络的发展Madhavaprasath23/Awesome-Mamba-Papers-On-Medical-Domain: A Comprehensive Survey of Mamba Architectures for Medical Image Analysis: Classification, Segmentation, Restoration, and Beyond (github.com)]

比较四种网络架构——CNN、RNN、Transformer、Mamba

网络结构 特点(优势) 局限性
CNN
  1. 参数共享:CNN中的卷积核在整个图像中共享参数,这种权重共享机制显著降低了计算复杂度,并简化了训练过程。
  2. 空间层次结构:CNN通过多层卷积和池化层自动学习输入数据的有用特征,使得CNN能够处理不同尺寸的图像。
  3. 强大的特征提取能力:CNN尤其适用于图像识别和分类任务等
  4. 并行计算:CNN中卷积和池化操作可以并行计算,因此在GPU等硬件上具备良好的高效能。

局部感受野:CNN利用局部感受野的思想,通过卷积操作从图像中提取特征,这使得它在处理图像中的局部特征时非常有效,但是不能考虑到全局的特征。

计算复杂性:由于CNN的层数较多,参数量较大,导致模型的计算复杂性较高。

RNN
  1. 捕捉长期依赖关系:RNN具有记忆能力,可以捕捉序列数据中的长期依赖关系,适用于需要考虑上下文信息的任务。
  2. 动态长度输入:RNN可以接受不定长度的输入,这使得它在处理时间序列数据时非常灵活。

只能关注于较短的上下文,对于长时序难以捕获到关系

同时在训练参数的时候,由于参数共享和多次连乘的特性,容易出现梯度消失或梯度爆炸的问题,导致模型难以训练或无法收敛。

另外RNN的计算过程是顺序的,导致在训练和推理阶段计算复杂度较高。同时它对超参数敏感和可解释性较差

Transformer
  1. 自注意力机制:Transformer通过自注意力机制能够同时处理整个输入序列中的所有位置,捕捉长距离依赖关系,从而更准确地理解文本含义。
  2. 并行计算:Transformer能够并行处理整个输入序列,显著提高了训练速度和效率。
  3. 灵活性和通用性:Transformer适用于各种序列到序列的任务,包括文本、图像等,并且具有很强的建模能力和通用性。
  4. 位置关联操作不受限:Transformer的位置关联操作不受限,建模能力强,通用性强,可扩展性强
Transformer模型中自注意力机制的计算量会随着上下文长度的增加呈平方级增长
Mamba
  1. 处理长序列数据:Mamba使用选择性状态空间来处理序列,解决了Transformer在处理长序列时的计算效率问题。注意力层可以随着序列长度而线性缩放,实现了更快的推理速度。
  2. 计算效率:Mamba具有较高的计算效率,特别是在GPU上运行时,数据存取交互更为友好,Mamba的推理速度也显著优于Transformer(5倍)。
  3. 选择机制:Mamba通过集成选择机制来控制记忆范围,从而提高模型的泛化能力,并且提供了在CV领域的应用潜力。
  4. 可扩展性:Mamba架构具有出色的可扩展性,允许模型更容易地扩展到更大的尺寸,而不会牺牲性能。
安装和环境配置问题:在实际应用中,Mamba模型及其相关组件(如causal-conv1d和mamba_ssm)的安装过程中常常遇到各种错误和兼容性问题,特别是在Windows系统上,这些问题包括连接超时、gcc版本不正确以及依赖不完整等。

Mamba核心创新点: ①注意力层可以线性增长;②可以处理长序列的数据;③推理速度可以达到Transformer的5倍

状态空间模型SSM

1 - 状态空间可以表示神经网络

State Space Model - h(t)为某一时刻的状态变量,导数h'(t)、输出y(t)都与当前时刻的状态h(t)和输入x(t)有关,数学表达为:

其中,t为时间,状态空间中将连续序列作为输入并预测输出序列。

即,状态空间SSM的作用是:① 输出伴随输入的变化而变化;② 模型会存储内部状态,并利用4个关键的矩阵A,B,C,D 改变内部状态和输出

参考Mamba:2 状态空间模型 (qq.com),一个简单的理解:

1. 输入序列x(t) —(例如游戏中的操作,直冲还是挥拳)

2. 根据输入映射到潜在状态h(t) —(例如,(操作不当导致)快要挂了的状态)

3. 并预测输出序列y(t) —(例如,要放大招反击)

同样地,大模型中的神经网络其实也有隐藏状态(上下文信息),当预测t时刻的输出(下一个字符Token)的时候也要根据当前t时刻的输入(当前的token),同时结合隐藏状态信息(上下文信息)。因此  状态空间与大模型技术的实现过程是类似的

2 - 离散的SSM

### SSMMamba的关系及其集成方法 #### 背景介绍 状态空间模型(State Space Models, SSMs)是一种强大的工具,广泛应用于时间序列分析和其他动态系统的建模。然而,传统的SSM在上下文感知能力方面存在不足[^1]。为了克服这一局限性,研究者提出了Mamba作为一种潜在的替代方案。 Mamba-2引入了结构化空间状态对偶(Structured State Duality, SSD),这是一个理论框架,旨在将结构化的SSM与多种形式的注意力机制结合起来。这种结合使得可以有效地转移原本为Transformers开发的算法和系统优化至SSM领域。 #### 集成方式 Mamba不仅改进了SSM的基础架构,还通过其独特的特性增强了SSM的能力: 1. **长序列建模** Mamba利用SSMs将注意力复杂度从二次降低到线性,显著提高了效率[^2]。这表明,在处理大规模数据集时,Mamba能够提供更好的性能表现。 2. **视觉任务中的应用** 尽管Mamba最初设计用于一维序列建模,但在二维视觉数据上也展现出优势——更高的精度、较低的计算成本以及减少的内存需求。不过需要注意的是,由于二维空间信息的重要性,简单地将图像展平可能会限制接收场范围并丢失重要关系。 3. **融合不同技术的优势** 结合Mamba的选择性扫描机制来捕捉远程依赖性和Transformer自注意力机制来进行通道建模,则可以在保持高效的同时避免过高的运算负载[^3]。 以下是实现上述功能的一个简化Python伪代码示例: ```python class CombinedModel: def __init__(self, mamba_model, transformer_model): self.mamba = mamba_model self.transformer = transformer_model def forward(self, input_data): spatial_features = self.mamba.selective_scan(input_data) # 使用Mamba捕获空间特征 channel_attention = self.transformer.self_attention(spatial_features) # Transformer增强信道交互 combined_output = torch.cat([spatial_features, channel_attention], dim=-1) return combined_output ``` 此代码片段展示了如何在一个统一框架下联合使用两种模型的技术特点。 #### 总结 综上所述,Mamba通过对传统SSM进行扩展和完善,使其更适合现代应用场景下的挑战。特别是在涉及大量连续输入的任务中表现出色,并且可以通过巧妙的设计与其他先进技术相结合进一步提升整体效能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锅小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值