【长文阅读】MAMBA作者博士论文<MODELING SEQUENCES WITH STRUCTURED STATE SPACES>-Chapter2

news2024/11/27 12:33:30

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} ARN×N和向量 B ∈ R N × 1 \boldsymbol{B} \in \mathbb{R}^{N \times 1} BRN×1, C ∈ R 1 × N \boldsymbol{C} \in \mathbb{R}^{1 \times N} CR1×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)=(Ku)(t)=0K(s)u(ts)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可以根据实际应用的需要,采取不同的计算方式。

image-20240119164954292

为了说明离散化,文档中提到了一个简单的方法,即著名的欧拉方法。它将 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=xk1+Δf(xk1)。在离散化过程中,论文引入了一个额外的步长参数 Δ \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=xk1+Δ(Axk1+Buk)=(I+ΔA)xk1+(ΔB)uk=Axk1+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=Axk1+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} ARN×N,BRN×M,ukRM,xkRN,ykRM。这意味着,尽管输入和输出被离散化处理,但是模型的参数形式保持不变。

循环模式的解释

在循环模式中, x k ∈ R N x_{k} \in \mathbb{R}^{N} xkRN可以被视为隐藏状态,具有转换矩阵 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 x1=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+CAk1Bu1++CABuk1+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=uK 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,,CAL1B).

计算复杂性分析: 论文讨论了不同卷积类型的计算复杂性,包括传统的密集卷积( 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} CAiBRM×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))xt1+σ(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 是初始条件。

皮卡迭代的基本步骤

  1. 初始化:从一个初始估计开始,通常选择 y 0 ( t ) = y 0 y_{0}(t)=y_{0} y0(t)=y0,即初始条件。

  2. 迭代过程:使用下面的积分公式进行迭代:

    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 次迭代的解。

  3. 收敛性:继续迭代,直到解的近似值在一定的误差范围内稳定下来。

皮卡迭代的特点

  • 收敛性:在某些条件下,皮卡迭代可以保证收敛到真实解。这通常要求函数 f ( t , y ) f(t, y) f(t,y) 在某种意义上是“良好”的,比如满足利普希茨条件。
  • 计算成本:皮卡迭代可能需要多次迭代才能达到满意的精度,这在计算上可能是昂贵的。
  • 适用性:虽然在理论上是一个强大的工具,但在实际应用中,特别是对于复杂或高度非线性的ODEs,直接应用皮卡迭代可能不是最有效的方法。

在机器学习和深度学习的背景下,皮卡迭代有时被用来说明深度学习模型(如RNN)如何在某种意义上近似或模拟复杂的动态系统。通过将每一层或每个时间步骤视为迭代的一个步骤,深度模型可以被看作是通过连续逼近来解决复杂问题的方式。

库普曼算子:论文还提及了通过库普曼算子理论,线性和非线性动力系统之间的另一种联系。在某些条件下,交替使用线性RNN层和非线性“前馈”块足以近似高度非线性系统。

补充一下库普曼算子:

库普曼算子理论(Koopman operator theory)是一种分析动力系统的方法,它是由美国数学家Bernard Koopman在1931年引入的。这一理论提供了一种从线性算子的角度来研究非线性动力系统的框架。

基本概念

  • 动力系统:在数学中,动力系统是一个用来描述一个点在空间中随时间演变的数学模型。这些系统可以是线性的,也可以是非线性的。
  • Koopman算子:对于给定的动力系统,Koopman算子是一个作用在观测函数上的线性算子。这些观测函数是系统状态的函数。即使原始动力系统是非线性的,Koopman算子也是线性的。

Koopman算子的关键特性

  1. 线性:尽管Koopman算子用于分析非线性系统,但它本身是线性的。这意味着它可以利用线性系统理论的工具和技术。
  2. 无限维:对于大多数非线性系统,Koopman算子是无限维的,这反映了从非线性系统到线性算子表示的复杂性。
  3. 演化描述: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)=Ku 其中 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)=enetAB,满足 x n ( t ) = ( u ∗ K n ) ( t ) x_{n}(t)=\left(u * K_{n}\right)(t) xn(t)=(uKn)(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=0N1CnKn(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构建的深度神经网络架构,将它们与其他神经网络组件(如残差连接和非线性激活)结合。

image-20240119233734281

其他神经网络系列用SSM方式解释:

  • Transformer:是基于注意力层构建的深度神经网络。
  • CNN(卷积神经网络):是围绕线性卷积层构建的深度神经网络。
  • SSNN(状态空间神经网络):是基于线性SSSM/S4层构建的深度神经网络。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1399563.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在微信公众号中加入ChatGPT聊天的方法

1 介绍 开源项目 "chatgpt-on-wechat" 支持通过微信公众号进行调用,这意味着用户可以在与公众号的交互中体验 ChatGPT。由于服务是部署在远端服务器上的,因此用户只需拥有一部手机,就可以在任何环境下与 ChatGPT 进行交流。例如&am…

回归预测 | Matlab基于OOA-SVR鱼鹰算法优化支持向量机的数据多输入单输出回归预测

回归预测 | Matlab基于OOA-SVR鱼鹰算法优化支持向量机的数据多输入单输出回归预测 目录 回归预测 | Matlab基于OOA-SVR鱼鹰算法优化支持向量机的数据多输入单输出回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab基于OOA-SVR鱼鹰算法优化支持向量机的数据…

forEach如何跳出或中断循环

文章目录 概要使用try...catch抛出错误设置数组长度为0使用splice删除数组的元素 概要 在Javascript中,我们使用forEach遍历循环的时候,往往会面临跳出循环和中断循环,我们可以采取以下几种方式: 使用try…catch抛出错误 const …

IGBT工作原理

IGBT(绝缘栅双极型晶体管) 在实际应用中最流行和最常见的电子元器件是双极结型晶体管 BJT 和 MOS管。 IGBT实物图电路符号图 你可以把 IGBT 看作 BJT 和 MOS 管的融合体,IGBT具有 BJT 的输入特性和 MOS 管的输出特性。 与 BJT 或 MOS管相比,…

手把手教你学会接口自动化系列二十三-引入allure优化我们的代码结构生成报告

优化之后的代码如下: # !/usr/bin/env python# -*- coding: utf-8 -*-# Time : 2024/01# Author : Laopiimport jsonimport loggingimport allurefrom testcase.conftest import *baseUrl GetYamlData(ConfigHandler.config_path).get_yaml_data()root_path os.p…

六、Netty核心模块组件

目录 6.1 BootStrap,ServerBootStrap6.2 Future,ChannelFuture6.3 Channel6.4 Selector6.5 ChannelHandler 以及其实现类6.6 Pipeline 和 ChannelPipeline6.7 ChannelHandlerContext6.8 ChannelOption6.9 EventLoopGroup和其实现类 NioEventLoopGroup6.1…

Forward(转发)和Redirect(重定向)的异同

Forward(转发)和Redirect(重定向)是两种不同的服务器端跳转机制,它们在Servlet中用于控制页面的跳转和处理请求的方式。 Forward(转发): 特点: 转发是在服务器内部进行的…

对接苹果CMS芒果影视APPV1.0(附安装教程+源码支持多端)内置采集脚本

目录 概述1. 演示效果1.1 视频演示1.2 图文演示1.2.1 首页1.2.2 专题页1.2.3 搜索1.2.4 观影 2. 支持功能3. 插件和框架4. 部署方法4.1 后端4.1.1 准备工具4.1.2创建站点4.1.3 上传后端代码到服务器4.1.4 导入数据库4.1.5 配置数据库信息4.1.6访问后台管理系统 4.2 前端4.2.1 准…

Modern C++ 一个例子学习条件变量

目录 问题程序 施魔法让BUG浮出水面 条件变量注意事项 修改程序 问题程序 今天无意中看到一篇帖子,关于条件变量的,不过仔细看看发现它并达不到原本的目的。 程序如下,读者可以先想想他的本意,以及有没有问题: #…

基于python旅游推荐系统 协同过滤算法 爬虫 Echarts可视化 Django框架(源码)✅

毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏) 毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总 🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题&#xff…

无忧秘书智脑:轻松玩转“AI彩超宝宝”功能,预见宝宝未来模样

作为准爸准妈,对肚子里的宝宝充满了好奇和期待。想象着宝宝的模样,是每个家庭都有的小确幸。如今,随着科技的发展,我们有了更先进的方式去一探究竟——那就是无忧秘书智脑的“AI彩超宝宝”功能。(功能;ai6a…

【JavaEE】网络原理:网络中的一些基本概念

目录 1. 网络通信基础 1.1 IP地址 1.2 端口号 1.3 认识协议 1.4 五元组 1.5 协议分层 什么是协议分层 分层的作用 OSI七层模型 TCP/IP五层(或四层)模型 网络设备所在分层 网络分层对应 封装和分用 1. 网络通信基础 1.1 IP地址 概念:IP地址…

Windows下载并配置Kettle

注意:需要windows配置Java 下载 Kettle 进入官网:https://www.hitachivantara.com/en-us/products/pentaho-plus-platform/data-integration-analytics/pentaho-community-edition.html 下载带有Pentaho Data Integration (Base Install)的文件&#…

Google用AI替代广告销售工作只是开始……

关注卢松松,会经常给你分享一些我的经验和观点。 前几天Google不是裁员3万人吗,其中有一个信息值得关注:就是Google的广告部门的部分员工,也被裁员了。 当然这不新鲜的,主要原因是Google的广告业务正在转向AI驱动了…

C语言从入门到实战——编译和链接

编译和链接 前言一、 翻译环境和运行环境二、 翻译环境2.1 预处理(预编译)2.2 编译2.2.1 词法分析2.2.2 语法分析2.2.3 语义分析 2.3 汇编2.4 链接 三、 运行环境 前言 在C语言中,编译和链接是将源代码转换为可执行文件的两个主要步骤。 编…

使用Element中的input组件如何实现文字和输入框在一行显示

利用 <el-form-item label"商品名称&#xff1a;">标签包裹即可&#xff0c;label写提示文字 <el-form ref"form" label-width"100px"><el-form-item label"商品名称&#xff1a;"><el-input v-model"na…

利用预训练模型SKEP进行情感分析

项目地址&#xff1a;文本情感分析 - 飞桨AI Studio星河社区 (baidu.com) baidu/Senta: Baidus open-source Sentiment Analysis System. (github.com) 本项目将详细全面介绍情感分析任务的两种子任务&#xff0c;句子级情感分析和目标级情感分析。 同时演示如何使用情感分析…

芯片禁售 AIGC爆发 元宇宙蓄能 | 且看思腾合力如何探索多元化发展之路

今年以来&#xff0c;百度、阿里、华为、京东、360、网易等国内互联网厂商&#xff0c;争相推出旗下的大模型解决方案。在众多厂商展开大模型“军备竞赛”&#xff0c;并纷纷落地应用之时&#xff0c;整个行业对算力也有了全新的需求。 不过&#xff0c;今年10月份&#xff0c;…

基于JavaWeb+SSM+Vue停车场微信小程序系统的设计和实现

基于JavaWebSSMVue停车场微信小程序系统的设计和实现 滑到文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 滑到文末获取源码 Lun文目录 目录 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计思想 1 2相关…

DBA技术栈MongoDB: 索引和查询优化

2.1 批量插入数据 单条数据插入db.collection.insertOne()多条数据插入db.collection.insertMany() db.inventory.insertMany( [{ item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },{ item: "notebook"…