Gu A. Modeling Sequences with Structured State Spaces[D]. Stanford University, 2023.
本文是MAMBA作者的博士毕业论文,为了理清楚MAMBA专门花时间拜读这篇长达330页的博士论文,由于知识水平有限,只能尽自己所能概述记录,并适当补充一些相关数学背景,欢迎探讨与批评指正。内容多,分章节更新以免凌乱。
Chapter 2 Sequence Modeling with State Space Models
2.1 - 2.2
首先介绍了几个基本概念,这里将其作为背景知识展开描述一下:
-
因果序列模型(Causal Sequence Model):是一种深度学习模型,主要用于处理和生成序列数据,如文本、音频或视频序列。在这类模型中,“因果”(causal)一词指的是模型在处理序列时,输出仅依赖于先前的输入,而不依赖于未来的输入。这种特性使得因果序列模型非常适合用于生成任务,如文本生成、语音合成等。举个例子,当我们用因果序列模型来生成文本时,每一个新生成的单词只依赖于之前的单词,而不会依赖于之后的单词。这就像人类写作或说话时一样,我们在说下一个词之前通常不会知道后面的内容。这与某些其他类型的序列模型(如双向模型)不同,后者在处理每个序点时会考虑整个序列的上下文(包括未来的信息)。因此,因果序列模型特别适合于那些需要按照时间顺序逐步生成输出的场景。
-
连续状态空间模型(continuous state space model (SSM)):
x ′ ( t ) = A ( t ) x ( t ) + B ( t ) u ( t ) y ( t ) = C ( t ) x ( t ) \begin{aligned} x^{\prime}(t) & =\boldsymbol{A}(t) x(t)+\boldsymbol{B}(t) u(t) \\ y(t) & =\boldsymbol{C}(t) x(t) \end{aligned} x′(t)y(t)=A(t)x(t)+B(t)u(t)=C(t)x(t)
其中: A ( t ) ∈ R N × N , B ( t ) ∈ R N × M , C ( t ) ∈ R M × N , D ( t ) ∈ R M × M \boldsymbol{A}(t) \in \mathbb{R}^{N \times N}, \boldsymbol{B}(t) \in \mathbb{R}^{N \times M}, \boldsymbol{C}(t) \in \mathbb{R}^{M \times N},\boldsymbol{D}(t) \in \mathbb{R}^{M \times M} A(t)∈RN×N,B(t)∈RN×M,C(t)∈RM×N,D(t)∈RM×M
-
状态方程(State Equation): x ′ ( t ) = A x ( t ) + B u ( t ) x^{\prime}(t)=A x(t)+B u(t) x′(t)=Ax(t)+Bu(t) 这个方程描述了系统状态 x ( t ) x(t) x(t)随时间的变化规律。这里, x ( t ) x(t) x(t)是状态向量,它代表了系统在任何给定时间点的状态。 A A A是状态转移矩阵,它定义了系统状态的演变方式。 B B B 是输入矩阵,它描述了外部输入 u ( t ) u(t) u(t)(如控制信号或其他影响因素)如何影响系统状态的变化。 x ′ ( t ) x^{\prime}(t) x′(t) 表示状态向量随时间的导数,即状态的变化率。
-
输出方程(Output Equation): y ( t ) = C x ( t ) + D u ( t ) y(t)=C x(t)+D u(t) y(t)=Cx(t)+Du(t)这个方程定义了系统的输出 y ( t ) y(t) y(t)。在这里, C C C是输出矩阵,它将系统的当前状态转化为输出。 D D D是直接传递矩阵,它定义了系统输入如何直接影响输出,而不经过状态变化。通常在许多系统中, D D D通常为零或者不被考虑,特别是在那些输入不会立即影响输出的系统中。
D D D这一项在模型中可以被看做不与状态 x x x有关系的skip-connection
这两个方程共同定义了一个线性时不变(Linear Time-Invariant, LTI)系统的动态行为。在实际应用中,这种模型被广泛用于各种领域,如控制系统、信号处理、经济模型等。它们的优势在于简洁性和易于分析,但也有局限性,主要是因为它们只能描述线性关系。在实际复杂系统中,可能需要更复杂的非线性模型来准确描述系统行为
-
-
线性时不变SSM(Linear Time Invariant (LTI) SSMs):
般而言,状态空间模型(SSM)的动态可以随时间变化,即矩阵 A ∈ R N × N \boldsymbol{A} \in \mathbb{R}^{N \times N} A∈RN×N和向量 B ∈ R N × 1 \boldsymbol{B} \in \mathbb{R}^{N \times 1} B∈RN×1, C ∈ R 1 × N \boldsymbol{C} \in \mathbb{R}^{1 \times N} C∈R1×N是时间 t t t的函数。然而,当它们是常数时,动态随时间保持不变;这时的SSM被称为线性时不变(LTI)系统。
-
SSM的卷积形式:这里补充展开一下
LTI SSM 作为映射 u ( t ) ↦ y ( t ) u(t) \mapsto y(t) u(t)↦y(t) 可以表示为:
y ( t ) = ( K ∗ u ) ( t ) = ∫ 0 ∞ K ( s ) ⋅ u ( t − s ) d s where K ( t ) = C e t A B y(t)=(K * u)(t)=\int_{0}^{\infty} K(s) \cdot u(t-s) d s \quad \text { where } \quad K(t)=\boldsymbol{C} e^{t \boldsymbol{A}} \boldsymbol{B} y(t)=(K∗u)(t)=∫0∞K(s)⋅u(t−s)ds where K(t)=CetAB
数学上,卷积是一种计算两个函数相互作用产生第三个函数的操作,这在信号处理和系统理论中非常重要。 K ( t ) K(t) K(t) 是系统的冲击响应。 e t A e^{tA} etA是矩阵指数,它是连续时间系统分析中的一个重要概念,用于描述系统状态如何随时间变化。
冲击响应 K ( t ) K(t) K(t) : 在线性时不变(LTI)系统中,冲击响应是一个非常关键的概念。它描述了当系统输入为冲击信号(即狄拉克δ函数,这是一个在零时刻具有无限大值而其他时刻为零的理想化信号)时,系统的输出会如何响应。换句话说,冲击响应表达了系统对突然冲击的反应,它是理解系统动态特性的一个基本工具。
矩阵指数 $e^{t \boldsymbol{A}} : 在这个公式中, : 在这个公式中, :在这个公式中,e^{t \boldsymbol{A}} $ 是一个矩阵指数运算,其中 A A A是系统矩阵。矩阵指数是连续时间系统分析中的重要概念,它提供了一种方法来描述系统状态如何随时间演变。在数学上,矩阵指数定义为幂级数,类似于标量指数函数的泰勒级数展开。它是解决线性微分方程组的关键,这些方程组通常用来描述LTI系统的动态行为。
综合来看, K ( t ) = C e t A B \quad K(t)=\boldsymbol{C} e^{t \boldsymbol{A}} \boldsymbol{B} K(t)=CetAB 表达了在LTI系统中,冲击响应如何随时间演变,并且如何通过系统矩阵 A A A, 输入矩阵 B B B, 和输出矩阵 C C C 互动来定义。这是分析和设计此类系统的一个关键方程。
2.3 State Space Sequence Models
SSMs自20世纪60年代以来被广泛应用于多个科学领域,最初是从卡尔曼滤波器开始的。在本文中,SSMs被视为一种序列到序列的转换模型,这种处理方式与传统SSMs有本质上的不同。详细讨论了状态空间序列模型(SSMs)及其各种表现形式。
2.3.1 连续表示(离散化):
这一部分强调了将连续的状态空间模型转换为适应离散数据的重要性,同时也展示了不同的离散化方法和它们的应用。通过这种转换,SSMs能够更有效地处理和分析现实世界中的离散数据序列。
由于现实世界中的数据是离散的而不是连续的,因此需要对SSM的方程进行离散化处理。离散化后的输入可以看作是从一个隐含的连续信号u(t)中均匀间隔采样得到的。SSM可以通过递归或离散卷积的形式来计算。
论文配了一个很好的图,表明连续SSMS、RNN方式离散化、CNN方式离散化的过程。这意味着,SSM可以根据实际应用的需要,采取不同的计算方式。
为了说明离散化,文档中提到了一个简单的方法,即著名的欧拉方法。它将 ODE x ′ ( t ) = f ( x ( t ) ) x^{\prime}(t)=f(x(t)) x′(t)=f(x(t))转换为一阶近似 x k = x k − 1 + Δ f ( x k − 1 ) x_{k}=x_{k-1}+\Delta f\left(x_{k-1}\right) xk=xk−1+Δf(xk−1)。在离散化过程中,论文引入了一个额外的步长参数 Δ \Delta Δ,它代表输入数据的分辨率。从概念上讲,离散的输入 u k u_k uk可以被视为来自隐含的连续信号 u ( t ) u(t) u(t)的均匀间隔样本,其中 u k = u ( k ∆ ) u_k = u(k∆) uk=u(k∆),这被称为时间尺度,是离散化的一个重要概念。
x k = x k − 1 + Δ ( A x k − 1 + B u k ) = ( I + Δ A ) x k − 1 + ( Δ B ) u k = A ‾ x k − 1 + B ‾ u k \begin{aligned} x_{k} & =x_{k-1}+\Delta\left(\boldsymbol{A} x_{k-1}+\boldsymbol{B} u_{k}\right) \\ & =(\boldsymbol{I}+\Delta \boldsymbol{A}) x_{k-1}+(\Delta \boldsymbol{B}) u_{k} \\ & =\overline{\boldsymbol{A}} x_{k-1}+\overline{\boldsymbol{B}} u_{k} \end{aligned} xk=xk−1+Δ(Axk−1+Buk)=(I+ΔA)xk−1+(ΔB)uk=Axk−1+Buk
其中: A ‾ : = I + Δ A 和 B ‾ : = Δ B \overline{\boldsymbol{A}}:=\boldsymbol{I}+\Delta \boldsymbol{A} \text { 和 } \overline{\boldsymbol{B}}:=\Delta \boldsymbol{B} A:=I+ΔA 和 B:=ΔB是离散状态参数
然而,欧拉方法可能不稳定,通常使用更精确的方法,例如零阶保持(ZOH)或双线性变换(也称为塔斯廷方法),这些只是提供 A 和 B 的替代公式,并且可以互换。
总的来说,可以将离散化视为 SS(S)M 前向传递中计算图的第一步。它将连续参数 ( Δ , A , B ) (\Delta, \boldsymbol{A}, \boldsymbol{B}) (Δ,A,B)转换为离散参数 ( A ‾ , B ‾ ) (\overline{\boldsymbol{A}}, \overline{\boldsymbol{B}}) (A,B),以便下游计算仅使用 ( A ‾ , B ‾ ) (\overline{\boldsymbol{A}}, \overline{\boldsymbol{B}}) (A,B)。此变换由公式 A ‾ = f A ( Δ , A ) \overline{\boldsymbol{A}}=f_{A}(\Delta, \boldsymbol{A}) A=fA(Δ,A) 和 B ‾ = f B ( Δ , A , B ) \overline{\boldsymbol{B}}=f_{B}(\Delta, \boldsymbol{A}, \boldsymbol{B}) B=fB(Δ,A,B) 定义,其中 ( f A , f B ) (f_A, f_B) (fA,fB) 是离散化规则,例如欧拉、ZOH 或双线性 (Tustin)方法。
2.3.2 The Recurrent Representation (Efficient Inference)
这部分讨论了状态空间序列模型(SSMs)的循环表示(高效推理),从循环视图出发的离散化,然后通过展开循环推导出离散卷积视图。简要总结如下:
离散化后的SSM定义
离散化后的SSM被定义为一个序列到序列的映射。具体来说,这个映射通过方程如下方程表示:
x k = A ‾ x k − 1 + B ‾ u k y k = C x k \begin{aligned} x_{k} & =\overline{\boldsymbol{A}} x_{k-1}+\overline{\boldsymbol{B}} u_{k} \\ y_{k} & =\boldsymbol{C} x_{k} \end{aligned} xkyk=Axk−1+Buk=Cxk
该方程表明,每一个当前状态都是基于前一个状态和当前输入的线性组合。
参数形式的保持
离散化的SSM保留了其连续对应部分的参数形状。例如, A ‾ ∈ R N × N , B ‾ ∈ R N × M , u k ∈ R M , x k ∈ R N , y k ∈ R M \overline{\boldsymbol{A}} \in \mathbb{R}^{N \times N}, \overline{\boldsymbol{B}} \in \mathbb{R}^{N \times M}, u_{k} \in \mathbb{R}^{M}, x_{k} \in \mathbb{R}^{N}, y_{k} \in \mathbb{R}^{M} A∈RN×N,B∈RN×M,uk∈RM,xk∈RN,yk∈RM。这意味着,尽管输入和输出被离散化处理,但是模型的参数形式保持不变。
循环模式的解释
在循环模式中, x k ∈ R N x_{k} \in \mathbb{R}^{N} xk∈RN可以被视为隐藏状态,具有转换矩阵 A A A。这个隐藏状态携带了截至时间 k k k之前所有输入的上下文信息。换句话说,展开递归时,只需要维护当前状态。因此,SSMs(以及一般的循环模型)具有高效和有状态的推理能力:它们可以在每个时间步骤使用恒定的计算和空间来处理(潜在无限的)序列输入。
与其他模型的对比
与像CNNs和Transformers这样的模型不同,SSMs(和循环模型)可以处理潜在无限长的输入序列,同时每个时间步只使用恒定的计算和空间。这使得SSMs在处理长序列数据时更加高效,特别是在需要持续跟踪历史信息的应用场景中。
2.3.3 The Convolutional Representation (Efficient Training)
本节讨论了使用卷积表示进行状态空间模型(SSMs)高效训练的方法,总结如下:
循环SSM的低效率: 这一节首先指出了在现代硬件上训练循环状态空间模型(SSMs)的实际挑战,主要是由于它们的顺序性。这导致了探索更有效的替代方法。
递归的解析展开: 论文推导了如果初始状态为零,SSM的离散递归可以解析地展开。这种展开过程结果是SSM的等效卷积形式,有效地将循环计算转换为卷积计算。假设初始状态为 x − 1 = 0 x_{−1} = 0 x−1=0。由于离散递归是线性的,因此可以通过解析方式展开它,从而得到 SSM 的等效卷积形式。
x 0 = B ‾ u 0 x 1 = A B ‾ u 0 + B ‾ u 1 x 2 = A ‾ 2 B ‾ u 0 + A B ‾ u 1 + B ‾ u 2 y 0 = C B ‾ u 0 y 1 = C A B ‾ u 0 + C B ‾ u 1 y 2 = C A ‾ 2 B ‾ u 0 + C A B ‾ u 1 + C B ‾ u 2 \begin{array}{lll} x_{0}=\overline{\boldsymbol{B}} u_{0} & x_{1}=\overline{\boldsymbol{A} \boldsymbol{B}} u_{0}+\overline{\boldsymbol{B}} u_{1} & x_{2}=\overline{\boldsymbol{A}}^{2} \overline{\boldsymbol{B}} u_{0}+\overline{\boldsymbol{A} \boldsymbol{B}} u_{1}+\overline{\boldsymbol{B}} u_{2} \\ y_{0}=\boldsymbol{C} \overline{\boldsymbol{B}} u_{0} & y_{1}=\boldsymbol{C} \overline{\boldsymbol{A} \boldsymbol{B}} u_{0}+\boldsymbol{C} \overline{\boldsymbol{B}} u_{1} & y_{2}=\boldsymbol{C} \overline{\boldsymbol{A}}^{2} \overline{\boldsymbol{B}} u_{0}+\boldsymbol{C} \overline{\boldsymbol{A} \boldsymbol{B}} u_{1}+\boldsymbol{C} \overline{\boldsymbol{B}} u_{2} \end{array} x0=Bu0y0=CBu0x1=ABu0+Bu1y1=CABu0+CBu1x2=A2Bu0+ABu1+Bu2y2=CA2Bu0+CABu1+CBu2
从而得到输出序列的闭式表达: y k = C A ‾ k B ‾ u 0 + C A ‾ k − 1 B ‾ u 1 + ⋯ + C A B ‾ u k − 1 + C B ‾ u k y_{k}=\boldsymbol{C} \overline{\boldsymbol{A}}^{k} \overline{\boldsymbol{B}} u_{0}+\boldsymbol{C} \overline{\boldsymbol{A}}^{k-1} \overline{\boldsymbol{B}} u_{1}+\cdots+\boldsymbol{C} \overline{\boldsymbol{A} \boldsymbol{B}} u_{k-1}+\boldsymbol{C} \overline{\boldsymbol{B}} u_{k} yk=CAkBu0+CAk−1Bu1+⋯+CABuk−1+CBuk
进而通过显式公式向量化为单个卷积: y = u ∗ K ‾ where K ‾ = ( C B ‾ , C A B ‾ , … , C k B ‾ , … ) y=u * \overline{\boldsymbol{K}} \quad \text { where } \quad \overline{\boldsymbol{K}}=\left(\boldsymbol{C} \overline{\boldsymbol{B}}, \boldsymbol{C} \overline{\boldsymbol{A} \boldsymbol{B}}, \ldots, \boldsymbol{C}^{k} \overline{\boldsymbol{B}}, \ldots\right) y=u∗K where K=(CB,CAB,…,CkB,…)
换句话说,上面的式子是单个(非循环)卷积,论文中简称为状态空间内核(SSK)。
卷积模式解释: 作者将状态空间序列模型(SSSMs)解释为类似于卷积神经网络(CNNs)中的线性卷积层。然而,它们指出一个关键的不同点:SSSMs中的状态空间核理论上是无限长的,尽管实际上受到输入长度的限制。SSK可以进一步截断为任何更短的长度,以更像传统的 CNN(例如,为了强调局部性,或者为了提高计算效率)。后续论文中用如下符号引用输入长度 L L L 的截断版本SSK: K ‾ : = K L ( A ‾ , B ‾ , C ) : = ( C A ‾ k B ‾ ) k ∈ [ L ] = ( C B ‾ , C A B ‾ , … , C A ‾ L − 1 B ‾ ) . \overline{\boldsymbol{K}}:=\mathscr{K}_{L}(\overline{\boldsymbol{A}}, \overline{\boldsymbol{B}}, \boldsymbol{C}):=\left(\boldsymbol{C} \overline{\boldsymbol{A}}^{k} \overline{\boldsymbol{B}}\right)_{k \in[L]}=\left(\boldsymbol{C} \overline{\boldsymbol{B}}, \boldsymbol{C} \overline{\boldsymbol{A} \boldsymbol{B}}, \ldots, \boldsymbol{C} \overline{\boldsymbol{A}}^{L-1} \overline{\boldsymbol{B}}\right) . K:=KL(A,B,C):=(CAkB)k∈[L]=(CB,CAB,…,CAL−1B).
计算复杂性分析: 论文讨论了不同卷积类型的计算复杂性,包括传统的密集卷积( O ( L K ) O(L K) O(LK))和FFT卷积( O ( ( L + K ) log ( L + K ) ) O((L+K) \log (L+K)) O((L+K)log(L+K)))。特别强调FFT卷积的高效计算复杂性,这对于长序列是有益的。
隐含的卷积核: 这种情况下的卷积核是隐含的且无限长,由一组较小的参数生成( ( Δ , A , B , C ) → K ‾ (\Delta, \boldsymbol{A}, \boldsymbol{B}, \boldsymbol{C}) \rightarrow \overline{\boldsymbol{K}} (Δ,A,B,C)→K)。这与传统的CNNs形成对比,突出了SSSMs的独特属性。
马尔可夫参数和术语: 最后,这一节澄清了论文所称的状态空间核在SSM文献中被称为“马尔可夫参数”,这种区分强调了SSSMs与CNNs更紧密的关系。
2.3.4 Summary of SSM Representations
本节对ssm在序列模型中的不同表示方式进行了总结,概述如下:
前向传播的两种模式: 在序列模型中,状态空间模型(SSM)层的前向传播包括离散化步骤和计算离散SSM的不同等效方法。将首先离散化然后计算方程的计算图称为“循环模式”。类似地,将首先离散化然后计算方程的计算图称为“卷积模式”。
注意,SSSM 层实际上并不是神经网络,只是线性序列变换,因此其本身 不是 RNN,也不是 CNN。
2.3.5 A Note on SSM Dimensions
讨论了状态空间模型(SSMs)的不同维度变体及其特性。
定义 D D D 是模型尺寸或尺寸, N N N 是状态大小或维度,或“SSM 状态大小”以消除歧义, N H = N D / M NH = ND/M NH=ND/M 是“总状态大小”。
多头SSM的类比:
作者指出,将模型维度D划分为M大小的部分,然后对每个部分独立应用SSM的做法,与多头注意力机制的工作方式非常类似,这样可以被解释为多头SSM,其中头的数量H等于D/N。
SSM维度的定义:
论文详细描述了具有不同模型维度的SSM变体,这些包括:
- 单输入单输出(SISO)SSM: 这种SSM的特点是M(模型维度)等于1。
- 多输入多输出(MIMO)SSM: 在这种SSM中,M大于1。
- 最大MIMO案例: 通常使用MIMO特指最大MIMO案例,即M等于D(输入维度)。
- 多头SSM: 当M小于D时,特别强调多头SSM的情况,并定义头的数量H为M/D。需要注意的是,单输入单输出SSM(SISO SSM)可以视为具有最大数量头H等于D的多头SSM。
与RNN的关系:
RNN 对应于 MIMO( M = D M = D M=D 或 H = 1 H = 1 H=1)情况。总状态维度为 N N N,是独立于模型维度D的超参数;输入通过输入/输出投影矩阵 B B B 和 C C C 在这些维度之间进行转换。
与CNN关系:
对于 M = D M = D M=D 的 MIMO SSM,则 C A ‾ i B ‾ ∈ R M × M \boldsymbol{C} \overline{\boldsymbol{A}}^{i} \overline{\boldsymbol{B}} \in \mathbb{R}^{M \times M} CAiB∈RM×M 并且 K ‾ \overline{\boldsymbol{K}} K 是形状为 ( L , M , M ) (L,M,M) (L,M,M) 的张量。 K ‾ \overline{\boldsymbol{K}} K 卷积可以在标准 CNN 意义上进行解释,其维度为(sequence, out channels, in channels)。
多头 SSM 可被解释为分组卷积。
当M = 1,或者输入维度是不交互的独立通道时,可为解释为深度可分离卷积。
2.4 Interpreting SSM Representations
本节主要关注与相关序列模型相比如何解释SSSM
2.4.1 SSMs as Continuous Models
解释新引入的 Δ \Delta Δ参数的含义和作用
Δ \Delta Δ作为调节参数:文档提出一个观点,即在所有标准离散化方法(例如欧拉法、后向欧拉法、广义双线性变换、零阶保持法等)中,离散化系统仅通过 Δ \Delta Δ和 ( A , B ) (A, B) (A,B)的乘积 ( Δ A , Δ B ) (\Delta \boldsymbol{A}, \Delta \boldsymbol{B}) (ΔA,ΔB)来依赖 Δ \Delta Δ 和 和 和(A, B) 。这意味着 。这意味着 。这意味着\Delta$不仅仅代表固定的步长,而是可以作为一个额外的参数来调节核心的SSM参数(A, B)。
Δ \Delta Δ作为时间尺度: Δ \Delta Δ的调节解释意味着它可以被视为控制输入(离散)中依赖长度的参数。更具体地说,它捕捉与 1 Δ \frac{1}{\Delta} Δ1成比例的长度依赖。这一点从线性常微分方程(ODE)的缩放保持相同动态,但仅改变系统演化速率的观点得到直观理解。
调整采样率与 Δ \Delta Δ:尽管 Δ \Delta Δ不被视为数据的步长,但它仍然可以作为相对量来解释。例如,如果数据的步长缩放了 c c c(比如时间序列的采样率缩放了 1 / c 1/c 1/c),那么模型的 Δ \Delta Δ参数也应该按 c c c缩放。文档中给出了一个具体的例子来说明这一点。
在其他连续模型中的 Δ \Delta Δ:在深度学习中存在其他连续时间模型,例如最初的RNN通常被解释为连续动态系统的近似。这些模型中的离散化通常包括一个步长 Δ \Delta Δ,这是一个关键但非可训练的超参数。而与之相比,SSMs允许训练 Δ \Delta Δ以控制依赖长度。
在RNN和CNN中的 Δ \Delta Δ:文由于RNN和CNN的表达是离散化之后的产物,因此当直接将SSM视为RNN或CNN时, Δ \Delta Δ有额外的解释。接下来的小节将展示在典型的RNN中作为门控机制学习 Δ \Delta Δ的版本,以及在CNN中, Δ \Delta Δ可以被视为控制卷积核“宽度”的时间尺度。
2.4.2 SSMs as Recurrences
探讨了状态空间模型(SSMs)如何被解释为重复模型,并与流行的RNN(递归神经网络)模型进行了比较。
SSMs作为线性重复:文档先是讨论了如何将状态空间模型(SSM)解释和计算为线性重复模型。虽然SSM本质上是线性重复的,但流行的RNN模型是非线性序列模型,它们在每个时间步之间有激活函数。这提出了一个问题:SSMs在表达能力上与一般RNN相比如何。
RNN的门控机制:论文展示了两个将RNN和常微分方程(ODE)联系起来的结果。首先,RNN中普遍存在的“门控机制”实际上可以解释为步长或时间尺度 Δ \Delta Δ的类比。举例来说,一个一维的门控重复模型( x t = ( 1 − σ ( z ) ) x t − 1 + σ ( z ) u t x_{t}=(1-\sigma(z)) x_{t-1}+\sigma(z) u_{t} xt=(1−σ(z))xt−1+σ(z)ut)可以被看作是一维线性ODE的后向欧拉离散化( x ˙ ( t ) = − x ( t ) + u ( t ) \dot{x}(t)=-x(t)+u(t) x˙(t)=−x(t)+u(t))。
皮卡迭代作为非线性动力学的深度近似:第二个结果涉及使用皮卡迭代(一种经典的ODE技术)来近似连续系统。粗略地说,深度线性RNN的每一层可以被视为逐次皮卡迭代,近似一个由非线性ODE定义的函数。这表明使用线性重复而不是非线性重复不会损失建模能力,这些非线性可以转移到深度神经网络的“深度”方向,而不会牺牲表达性。
补充一下皮卡迭代:
皮卡迭代(Picard iteration)是一种用于求解常微分方程(ODEs)初始值问题的数学方法。这种方法基于迭代逼近,用于寻找微分方程解的近似值。其基本思想和步骤可以概括如下:
常微分方程的初始值问题
常微分方程的一般形式为:
y ′ ( t ) = f ( t , y ( t ) ) , y ( t 0 ) = y 0 y^{\prime}(t)=f(t, y(t)), \quad y\left(t_{0}\right)=y_{0} y′(t)=f(t,y(t)),y(t0)=y0
其中 y ′ ( t ) y^{\prime}(t) y′(t)是未知函数 y ( t ) y(t) y(t) 的导数, f ( t , y ( t ) ) f(t, y(t)) f(t,y(t)) 是给定的函数, t 0 t_{0} t0 是初始时间, y 0 y_0 y0 是初始条件。
皮卡迭代的基本步骤
初始化:从一个初始估计开始,通常选择 y 0 ( t ) = y 0 y_{0}(t)=y_{0} y0(t)=y0,即初始条件。
迭代过程:使用下面的积分公式进行迭代:
y n + 1 ( t ) = y 0 + ∫ t 0 t f ( s , y n ( s ) ) d s y_{n+1}(t)=y_{0}+\int_{t_{0}}^{t} f\left(s, y_{n}(s)\right) d s yn+1(t)=y0+∫t0tf(s,yn(s))ds
在这里, y n + 1 ( t ) y_{n+1}(t) yn+1(t) 是第 n + 1 n+1 n+1次迭代的解,而 y n ( s ) y_{n}(s) yn(s) 是第 n n n 次迭代的解。
收敛性:继续迭代,直到解的近似值在一定的误差范围内稳定下来。
皮卡迭代的特点
- 收敛性:在某些条件下,皮卡迭代可以保证收敛到真实解。这通常要求函数 f ( t , y ) f(t, y) f(t,y) 在某种意义上是“良好”的,比如满足利普希茨条件。
- 计算成本:皮卡迭代可能需要多次迭代才能达到满意的精度,这在计算上可能是昂贵的。
- 适用性:虽然在理论上是一个强大的工具,但在实际应用中,特别是对于复杂或高度非线性的ODEs,直接应用皮卡迭代可能不是最有效的方法。
在机器学习和深度学习的背景下,皮卡迭代有时被用来说明深度学习模型(如RNN)如何在某种意义上近似或模拟复杂的动态系统。通过将每一层或每个时间步骤视为迭代的一个步骤,深度模型可以被看作是通过连续逼近来解决复杂问题的方式。
库普曼算子:论文还提及了通过库普曼算子理论,线性和非线性动力系统之间的另一种联系。在某些条件下,交替使用线性RNN层和非线性“前馈”块足以近似高度非线性系统。
补充一下库普曼算子:
库普曼算子理论(Koopman operator theory)是一种分析动力系统的方法,它是由美国数学家Bernard Koopman在1931年引入的。这一理论提供了一种从线性算子的角度来研究非线性动力系统的框架。
基本概念
- 动力系统:在数学中,动力系统是一个用来描述一个点在空间中随时间演变的数学模型。这些系统可以是线性的,也可以是非线性的。
- Koopman算子:对于给定的动力系统,Koopman算子是一个作用在观测函数上的线性算子。这些观测函数是系统状态的函数。即使原始动力系统是非线性的,Koopman算子也是线性的。
Koopman算子的关键特性
- 线性:尽管Koopman算子用于分析非线性系统,但它本身是线性的。这意味着它可以利用线性系统理论的工具和技术。
- 无限维:对于大多数非线性系统,Koopman算子是无限维的,这反映了从非线性系统到线性算子表示的复杂性。
- 演化描述:Koopman算子描述了系统中每个点的时间演化。通过研究这个算子,可以获得有关系统整体行为的信息。
应用
Koopman算子理论在理论和应用数学中都有广泛的应用,尤其是在动力系统、控制理论和流体力学等领域。近年来,它在机器学习和数据科学中的应用也越来越受到关注,特别是作为分析复杂非线性系统的一种工具。
在深度学习中的应用
在深度学习背景下,Koopman算子理论提供了一种理解和设计深度神经网络的新视角。例如,通过考虑网络中的非线性动力学,可以利用Koopman算子理论来设计能够捕捉复杂系统行为的网络架构。这种方法在理解RNN和其他类型的深度学习模型在处理时间序列数据时的内在动力学中尤其有用。
总的来说,Koopman算子理论是一种强大的分析工具,它允许研究者从一个新的角度来看待和分析复杂的非线性系统,包括那些在机器学习和深度学习中遇到的系统。
讨论:RNN作为SSMs:一般的RNN可以被表示为围绕(线性)SSMs构建的深度神经网络。虽然这些结果在概念上是坚实的,并为RNN与SSM之间的联系提供了深刻的见解,但它们也有局限性。例如,当前SSMs(如S4)处理 Δ \Delta Δ的方式与门控RNN相比较为有限;而线性到非线性RNN的皮卡和库普曼联系更多是概念性的,例如仅在无限深度或宽度的情况下适用。
2.4.3 SSMs as Convolutions
探讨了状态空间模型(SSMs)如何被解释为卷积系统,并与传统的卷积神经网络(CNNs)进行了比较。
SSMs与卷积的关系:首先,l论文指出任何连续、线性时不变(LTI)的SSM都可以通过其系统的冲激响应 K K K 写成卷积的形式: S S M ( A , B , C ) ( u ) = K ∗ u S S M(A, B, C)(u)=K * u SSM(A,B,C)(u)=K∗u 其中 K ( t ) = C e t A B K(t)=\boldsymbol{C} e^{t \boldsymbol{A}} \boldsymbol{B} K(t)=CetAB。这表明SSMs可以被解释为卷积系统,其中卷积核 K K K 由SSM的参数 A , B , C A, B, C A,B,C 确定。
卷积表示的SSMs:接下来,说明了任何度为 N N N 的有理函数形式的卷积滤波器 K ( t ) K(t) K(t) 都可以由一个维度为 N N N 的状态空间模型表示。因此,(连续的)SSMs理论上可以表示任何(连续的)卷积模型,只要状态大小 N N N 趋于无穷大。
SSMs作为卷积系统的解释:论文定义了所谓的SSM基函数,这是理解SSM的卷积核的关键。给定一个 T-SSM ( A , B ) \text { T-SSM }(A, B) T-SSM (A,B),表达式 e t A B e^{t A} B etAB 是一个包含 N N N 个函数的向量,称为SSM基。每个基函数 K n ( t ) K_{n}(t) Kn(t) 定义为 K n ( t ) = e n ⊤ e t A B K_{n}(t)=\boldsymbol{e}_{n}^{\top} e^{t \boldsymbol{A}} \boldsymbol{B} Kn(t)=en⊤etAB,满足 x n ( t ) = ( u ∗ K n ) ( t ) x_{n}(t)=\left(u * K_{n}\right)(t) xn(t)=(u∗Kn)(t)。这个定义的动机是注意到 SSM 卷积核是由系数向量控制的 SSM 基的线性组合 C : K ( t ) = ∑ n = 0 N − 1 C n K n ( t ) \boldsymbol{C}: K(t)=\sum_{n=0}^{N-1} \boldsymbol{C}_{n} K_{n}(t) C:K(t)=∑n=0N−1CnKn(t)
SSMs与深度神经网络的比较:最后,文档将基于SSMs的深度神经网络与CNNs进行了比较。这种比较是非常紧密的,因为卷积层本质上是一个简单的线性变换,就像SSM一样;通过网络深度的激活函数,整个神经网络变得非线性。因此,一个深度SSM模型实际上就是一个具有全局、隐式卷积核的深度可分离卷积网络(depthwise-separable CNN)。
总的来说,2.4.3节通过将SSMs与卷积的概念联系起来,展示了SSMs在表示复杂数据结构和模式方面的强大能力。这一点在深度学习和时间序列分析中尤为重要,因为它提供了一种理解和构建能够有效处理序列数据的模型的新方法。
2.5 Discussion: Naming Conventions for SSMs
本节主要区分传统的统计SSM(例如卡尔曼滤波器)和深度学习中的SSM
经典状态空间模型(2.5.1):这些是像卡尔曼滤波器这样的老式SSM,用于统计和工程学。它们的特点是定义数据生成的概率模型,通过统计推断学习参数,并且通常为了易于处理而保持简单。
状态空间序列模型(2.5.2):这些与经典SSM不同,尤其是在深度学习环境中。它们定义确定性序列映射,通过梯度下降学习参数,并且在非线性深度神经网络架构中多次组合时非常有效。
深度状态空间模型(2.5.3):被称为深度SSM或状态空间神经网络(SSNN),这些是围绕SSM构建的深度神经网络架构,将它们与其他神经网络组件(如残差连接和非线性激活)结合。
其他神经网络系列用SSM方式解释:
- Transformer:是基于注意力层构建的深度神经网络。
- CNN(卷积神经网络):是围绕线性卷积层构建的深度神经网络。
- SSNN(状态空间神经网络):是基于线性SSSM/S4层构建的深度神经网络。