赞
踩
论文地址: https://arxiv.org/abs/2312.00752
代码: https://github.com/state-spaces/mamba
主要学习Mamba的结构,因此不包含实验及后面的部分
为了更好的了解SSMs,该部分在原文的基础上会做一些补充,补充部分为博主不了解部分(博主是CV方向的)
结构化状态空间序列模型(S4)是最近一类用于深度学习的序列模型,与RNN、CNN和经典状态空间模型广泛相关。他们接收特定连续系统的启发,该连续系统通过隐式潜在状态 h ( t ) ∈ R N h(t)\in\mathbb R^N h(t)∈RN映射一维函数或序列 x ( t ) ∈ R → y ( t ) ∈ R x(t)\in\mathbb{R}\to y(t)\in \mathbb{R} x(t)∈R→y(t)∈R
具体来说,S4模型由四个参数
(
Δ
,
A
,
B
,
C
)
(\Delta, A, B, C)
(Δ,A,B,C)定义,它们定义了两个阶段的序列到序列的转换
h
′
(
t
)
=
A
h
(
t
)
+
B
x
(
t
)
(
1
a
)
h
t
=
A
ˉ
h
t
−
1
+
B
ˉ
x
t
(
2
a
)
K
ˉ
=
(
C
B
ˉ
,
C
A
B
ˉ
,
…
,
C
A
ˉ
k
B
ˉ
,
…
)
(
3
a
)
y
(
t
)
=
C
h
(
t
)
(
1
b
)
y
t
=
C
h
t
(
2
b
)
y
=
x
∗
K
ˉ
(
3
b
)
第一阶段通过固定公式
A
ˉ
=
f
A
(
Δ
,
A
)
\bar{\mathbf{A}}=f_A(\Delta, \mathbf{A})
Aˉ=fA(Δ,A)和
B
=
f
b
(
Δ
,
A
,
B
)
B=f_b(\Delta, \mathbf{A}, \mathbf{B})
B=fb(Δ,A,B)将"连续参数"
(
D
e
l
t
a
,
A
,
B
)
(Delta, \mathbf{A}, \mathbf{B})
(Delta,A,B)转换为"离散参数"
(
A
ˉ
,
B
ˉ
)
(\mathbf{\bar{A}}, \mathbf{\bar{B}})
(Aˉ,Bˉ), 其中
(
f
A
,
f
B
)
(f_A, f_B)
(fA,fB)成为离散化规则,可以使用各种规则,,例如零阶保持(ZOH):
A
ˉ
=
e
x
p
(
Δ
A
)
B
ˉ
=
(
Δ
A
)
−
1
(
e
x
p
(
Δ
A
−
I
)
)
⋅
Δ
B
离散化与连续时间系统有很深的联系,可以赋予它们额外的属性。然而从机械角度来看,离散化可以简单地视为SSMs前向传递中计算图的第一步。SSMs的替代风格可以绕过离散化步骤并直接参数化
(
A
,
B
)
(\mathbf{A}, \mathbf{B})
(A,B), 这可能更容易推理。
参数从
(
Δ
,
A
,
B
,
C
)
→
(
A
,
B
,
C
)
(\Delta, \mathbf{A}, \mathbf{B}, \mathbf{C})\to(\mathbf{A}, \mathbf{B}, \mathbf{C})
(Δ,A,B,C)→(A,B,C)转换后,可以通过两种方式计算模型: 线性递推(公式1)或全局卷积(公式2)。
通常,模型使用卷积训练模式(公式3)来实现高效地并行化(提前看到整个输入序列),并切换到循环模式(公式2)用于高效地自回归推理(一次看到一个时间步的输入)
公式1到公式2的一个重要属性是模型的动态随时间保持恒定。换句话说, ( Δ , A , B , C ) (\Delta, \mathbf{A, B, C}) (Δ,A,B,C)以及 ( A , B ) (\mathbf{A,B}) (A,B)对于所有时间步都是固定的。该属性称为线性时间不变性(LTI) ,它与递归和卷积密切相关。作者认为LTI SSMs等同于任何线性递归(公式2a)或卷积(公式3b),并使用LTI作为此类模型的总称。
到目前为止,由于基本效率限制,所有结构化SSMs都是LTI(例如computed as convolutions)。然而,这项工作的核心见解是, LTI模型在对某些类型的数据进行建模时存在根本局限性,而本文的技术贡献涉及消除LTI约束,同时克服效率瓶颈。
最后,作者注意到结构化SSMs之所以如此命名,是因为有效地计算它们需要在矩阵 A \mathbf{A} A上施加结构。最流行的结构形式是对角线,本文也使用了它。
在这种情况下, A ∈ R N × M , B ∈ R N × 1 , C ∈ R 1 × N \mathbf{A}\in\mathbb{R}^{N\times M}, \mathbf{B}\in\mathbb{R}^{N\times1},\mathbf{C}\in\mathbb{R}^{1\times N} A∈RN×M,B∈RN×1,C∈R1×N矩阵都可以用 N N N个数表示。为了对具有D个通道的batch size为B, 长度为L的输入序列 x x x进行操作, SSMs独立应用于每个通道。值得注意的是,在这种情况下,总隐藏状态的每个输入的维度为 D N DN DN, 并且在序列长度上计算需要 O ( B L D N ) O(BLDN) O(BLDN)的时间和内存。
可以注意到状态空间模型是一个非常广泛的含义,它简单地表示任何具有潜在状态的循环过程的概念。它被用来指代不同学科中的许多不同概念,包括马尔科夫决策过程(MDP)、动态因果模型(DCM)、卡尔曼滤波器、隐马尔可夫模型(HMM)和线性动力系统(LDS)(机器学习)以及一般地循环模型(有时是卷积)(深度学习)。
在整篇论文中,使用术语"SSMs"来专门指代结构化SSMs类或S4模型,并且这些术语可以互换使用。为了方便起见,还可能包含此类模型的衍生模型,例如那些侧重于线性递归或全局卷积观点的模型,并且在必要时澄清细微差别。
SSMs是独立的序列转换,可以合并到端到端神经网络架构中(有时也将SSMs架构称为SSNN, 其与SSMs层的关系就像CNN与线性卷积层的关系一样)。作者讨论了一些最著名的SSMs架构,其中许多架构也将作为本文的主要baseline
参考博客: https://blog.csdn.net/m0_63745825/article/details/138136975
S4在SSMs的基础上有三个升级
- 离散化SSM
- 循环/卷积表示
- 基于HiPPO处理长序列
这样采样值就是离散输出,并且可以针对
A
、
B
\mathbf{A}、\mathbf{B}
A、B按如下方式做零阶保持:
A
ˉ
=
e
x
p
(
Δ
A
)
B
ˉ
=
(
Δ
A
)
−
1
(
e
x
p
(
Δ
A
)
−
I
)
⋅
Δ
B
其中,
A
,
B
\mathbf{A,B}
A,B为离散化矩阵。最终从连续SSMs转变为离散SSM, 使得不再是函数导函数
x
(
t
)
→
y
(
t
)
x(t)\to y(t)
x(t)→y(t), 而是序列到序列
x
k
→
y
k
x_k\to y_k
xk→yk。所以使用的是
k
k
k表示离散的时间步长而不是
t
t
t。
每个时间步,都会涉及到隐藏状态的更新。比如 h k h_k hk取决于 B ˉ x k \bar{\mathbf{B}}x_k Bˉxk和 A ˉ h k − 1 \bar{\mathbf{A}}h_{k-1} Aˉhk−1的共同作用,然后通过 C h k \mathbf{C}h_k Chk预测输出 y k y_k yk
模型展开后如下图所示(
h
k
h_k
hk始终是
B
ˉ
x
k
\bar{\mathbf{B}}x_k
Bˉxk和
A
ˉ
h
k
−
1
\bar{\mathbf{A}}h_{k-1}
Aˉhk−1的共同作用下进行更新)。
在经典的图像识别任务中,使用过滤器(卷积核)来导出聚合特征,而SSMs也可以表示呈卷积的形式
而用来表示这个过滤器的SSMs公式为
HiPPO: Recurrent Memory with Optimal Polynomial Projections
作者认为序列建模的一个基本问题是: 将上下文压缩为更小的状态。事实上,作者从这个角度来看待流行序列模型的权衡。例如,注意力既有效又低效,因为它明确地根本不压缩上下文。这可以从以下事实看出: 自回归推理需要显式存储整个上下文(即KV缓存),这直接导致Transformers的线性时间推理和二次时间训练缓慢。另一方面,循环模型的高效的,因为它们具有有限状态,这意味着恒定时间推理和线性时间训练。然而,它们的有效性受到该状态压缩上下文程度的限制。
为了理解这一原理,作者重点关注两个合成任务的运行示例
这些任务揭示了LTI模型的故障模式。从循环试图来看,它们的恒定动态(公式2中的 A ˉ , B ˉ \mathbf{\bar{A}, \bar{B}} Aˉ,Bˉ转换)不能让它们从上下文中选择正确的信息,也不能以输入相关的方式影响沿序列传递的隐藏状态。从卷积的角度来看,全局卷积可以解决普通复制任务,因为它只需要时间感知,但由于缺乏内容感知,他们很难完成选择性复制任务(上面的图)。更具体地说,输入到输出之间的间距变化,无法通过静态卷积核建模。
总之,序列建模的效率与有效性权衡的特征在于它们压缩状态的程度: 高效模型必须具有较小的状态,而有效模型必须具有包含上下文所有必要信息的状态。反过来,文章提出构建序列模型的基本原则是选择性: 或上下文感知能力,以将输入集中或过滤到顺序状态中。
将选择机制纳入模型的一种方法是让影响序列交互的参数(例如RNN的循环动态或CNN的卷积核)依赖于输入。
上面两个算法说明了文章使用的主要选择机制。主要区别在于简单地输入的 多个参数 Δ , B , C \Delta, \mathbf{B},\mathbf{C} Δ,B,C成为了函数,以及整个张量形状的改变。
作者特别选择 S B ( x ) = L i n e a r N ( x ) , S c ( x ) = L i n e a r N ( x ) , S Δ ( x ) = B o r a d c a s t D ( L i n e a r 1 ( x ) ) S_B(x)=Linear_N(x), S_c(x)=Linear_N(x), S_{\Delta}(x)=Boradcast_D(Linear_1(x)) SB(x)=LinearN(x),Sc(x)=LinearN(x),SΔ(x)=BoradcastD(Linear1(x))和 τ Δ = s o f t p l u s \tau_{\Delta}=softplus τΔ=softplus, 其中 L i n e a r d Linear_d Lineard是维度d的参数化投影。 s Δ s_\Delta sΔ和 τ Δ \tau_\Delta τΔ的选择在后面解释。
卷积核Transformer等硬件友好型架构得到了广泛应用。本节的目标是让选择性SSM在现代硬件(GPU)上也能高效运行。选择机制可以很自然的结合特殊的选择情况。然而,使用SSM的核心限制是其计算效率。
选择机制的目的是克服LTI模型的局限性;与此同时,需要重新审视SSM的计算问题。文章通过三种经典技术来解决这个问题: 内核融合、并行扫描和重新计算:
主要思想是利用GPU的特性,仅在内存层次结构的更高效级别中实现状态h。基于扫描操作,使用内核融合来减少内存IO量,从而进行加速。
最后,应用经典的重新计算技术来减少内存需要。
选择性SSM与结构化SSM一样是独立的序列转换,可以灵活地合并到神经网络中。Mamba通过将由线性启发的块组成的注意力和MLP合并为一个组件来简化H3架构。如下图所示。这是收到门控注意力单元(GAU)的启发,它对注意力做了类似的事情。
该架构涉及通过可控扩展因子 E E E来扩展模型维度 D D D。对于每个块,大多数参数 ( 3 E D 2 ) (3ED^2) (3ED2)都在线性投影中( 2 E D 2 2ED^2 2ED2用于输入投影, E D 2 ED^2 ED2用于输出投影),而内部SSMs贡献较少。相比之下, SSMs参数量( Δ , B , C \Delta, \mathbf{B,C} Δ,B,C的投影和菊展 A \mathbf{A} A)要少得多。重复这个块并与标准化和残差连接交织形成Mamba架构。
选择机制是一个更宽泛的概念,可以以不同的方式应用,例如应用于更传统的RNN或CNN, 应用于不同的参数或使用不同的Transformer s ( x ) s(x) s(x)。
最重要的联系: RNN的经典门控机制是SSMs选择机制的一个实例。作者注意到RNN门控和连续时间系统的离散化之间的联系中得到了很好的建立。SSMs中的 Δ \Delta Δ可以被视为发挥了RNN门控机制的通用作用。作者认为SSM的离散化是启发式门控机制的原则基础。
定理
1
:
W
h
e
n
N
=
1
,
A
=
−
1
,
B
=
1
,
s
Δ
=
L
i
n
e
a
r
(
x
)
并且
τ
Δ
=
s
o
f
t
p
l
u
s
,
那么选择性
S
S
M
递归
(
算法
2
)
采用形式
:
g
t
=
σ
(
L
i
n
e
a
r
(
x
t
)
)
h
t
=
(
1
−
g
t
)
h
t
−
1
+
g
t
x
t
定理1: When\ N=1, A=-1, B=1, s_\Delta=Linear(x)并且\tau_{\Delta}=softplus, 那么选择性SSM递归(算法2)采用形式:\\
s
Δ
,
τ
Δ
s_\Delta, \tau_\Delta
sΔ,τΔ的具体选择来自这个链接。需要注意的是,如果给定的输入
x
t
x_t
xt应该被完全忽略(合成任务中需要),那么所有通道
D
D
D都应该忽略它,因此将输入投影投影到1维,然后使用
Δ
\Delta
Δ进行重复/广播。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。