原文链接:https://arxiv.org/abs/2312.00752
Q:为什么说Mamba可以比肩甚至超越transformer?各自有什么优劣?
A:Transformer在处理长序列时,存在着计算效率低下的问题,无法对有限窗口之外的任何信息进行建模,以及相对窗口长度的二次缩放。(transformer虽然可以并行计算,但是由于其位置的编码, 交叉的联系,并且,Transformer并不会对记录的历史记录进行压缩(相当于就是,会保存并利用整个序列的历史信息,而不是只是用一个固定大小的状态或摘要总结来代表历史信息,好处是更全面地理解上下文,坏处就是计算效率低)。
Q:什么是RNN?为啥说RNN本身就可以理解成一个SSM?
Q:S4的全称是什么,S6又是什么,和SSM有什么联系?
A:实际就是这么一个过程:SSM——>S4——>S6——>Mamba
Structured State Spaces for Sequences(S4)
更准确来说就是:S4代表结构化状态空间模型(Structured State Space Model),是SSM的一种离散化形式。
S4:它的操作可以简单理解为,对SSM的预测状态结果进行离散化,然后HiPPO进行长序列处理。(离散化SSM、循环/卷积表示,基于HiPPO处理长序列,不能有选择的处理信息,A,B,C,D的值都是固定不变的)(其中的ABCD是SSM状态方程中的参数)
SSM:输入是连续序列,输出也是连续的,是一个系统,是通过状态方程对下一个状态的预测(不能处理离散序列,不能有选择地处理信息A,B,C,D的值都是固定不变的)
S6(Selective State Space Model):也是结构化状态空间模型。SSM+Selection。更准确来说也是S4的改进版本。(可以处理离散数据,有选择地处理信息,训练效率低)
三者的关系相当于就是,SSM是S4,S6的基础结构,核心。S4是通过引入数据离散化,HiPPO对长数据进行处理。而S6更多的可以理解为在S4的基础上就进一步改进,引入了选择机制,能够有选择的处理信息。他的表现形式就是,将原本SSM中的ABCD四个固定参数,改成函数,然后实现自适应。当然结构也有一定变化。大致思路是这样。
说白了就是,S4是在SSM的后续进一步处理,或者说是加了一些外围。S6就是沿用S4(为了合适当然应该也微调了),然后从SSM的几个参数下手,微调结构,把参数改成函数,然后就实现了自适应(或者说是有选择性的处理)。
这样S4-->S6改进的结果就是,在处理复杂序列数据时更加灵活且有效,但是会牺牲一定的计算效率。
Mamba:(可以处理离散数据+有选择地处理信息+硬件感知算法+更简单的SSM架构)
Q:Mamba的硬件感知算法是什么,有什么作用?更简单的SSM架构,怎么简单了,和原本的有什么不同吗?有选择地处理信息,也是相当于把状态方程中的参数变成函数吗?还有就是可以处理离散数据,这里处理离散数据的具体步骤是怎样的?就是按什么规律进行采样吗(我记得哪里还提到个零阶保持是不是)?
其他:
transformer优势就在于,对信息进行位置编码,能够捕捉前后文关系,他是利用注意力机制的窗口,及多头注意力越多,效果会相对好点,但是计算复杂度暴涨。
SSM模型:从LTI连续空间线性时不变系统讲起,类似RNN离散化,CNN并行化,但没有离开线性+参数矩阵时不变两个假设。
Mamba原理:提出了选择机制,其实就是时序门控单元,通过离散化函数delta这个非线性总开关控制ABC矩阵三个小旋扭开关,相当于放开了时不变约束,实现时变。
Mamba=RNN(变形GRU)+CNN+选择性注意力机制
思想精髓:流体力学系统+李指数映射+固定矩阵A最优主管道
参考:
AI大讲堂:革了Transformer的小命?专业拆解【Mamba模型】_哔哩哔哩_bilibili
Mamba: Linear-Time Sequence Modeling with Selective State Spaces(论文笔记)_mamba 全文翻译-CSDN博客