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

本文围绕状态空间模型(SSM)在序列建模中的应用展开。介绍了因果序列模型、连续状态空间模型等基本概念,探讨了SSM的连续表示离散化、循环表示、卷积表示等多种形式,还分析了其与RNN、CNN等模型的关系,区分了不同类型的SSM命名约定。

Chapter 2 Sequence Modeling with State Space Models

Gu A. Modeling Sequences with Structured State Spaces[D]. Stanford University, 2023.

本文是MAMBA作者的博士毕业论文,为了理清楚MAMBA专门花时间拜读这篇长达330页的博士论文,由于知识水平有限,只能尽自己所能概述记录,并适当补充一些相关数学背景,欢迎探讨与批评指正。内容多,分章节更新以免凌乱。

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)∈RN×N,B(t)∈RN×M,C(t)∈RM×N,D(t)∈RM×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)=Ax(t)+Bu(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)是状态向量,它代表了系统在任何给定时间点的状态。AAA是状态转移矩阵,它定义了系统状态的演变方式。BBB 是输入矩阵,它描述了外部输入 u(t)u(t)u(t)(如控制信号或其他影响因素)如何影响系统状态的变化。x′(t)x^{\prime}(t)x(t) 表示状态向量随时间的导数,即状态的变化率。

    • 输出方程(Output Equation): y(t)=Cx(t)+Du(t)y(t)=C x(t)+D u(t)y(t)=Cx(t)+Du(t)这个方程定义了系统的输出y(t)y(t)y(t)。在这里,CCC是输出矩阵,它将系统的当前状态转化为输出。DDD是直接传递矩阵,它定义了系统输入如何直接影响输出,而不经过状态变化。通常在许多系统中,DDD通常为零或者不被考虑,特别是在那些输入不会立即影响输出的系统中。

    DDD这一项在模型中可以被看做不与状态xxx有关系的skip-connection

    这两个方程共同定义了一个线性时不变(Linear Time-Invariant, LTI)系统的动态行为。在实际应用中,这种模型被广泛用于各种领域,如控制系统、信号处理、经济模型等。它们的优势在于简洁性和易于分析,但也有局限性,主要是因为它们只能描述线性关系。在实际复杂系统中,可能需要更复杂的非线性模型来准确描述系统行为

  • 线性时不变SSM(Linear Time Invariant (LTI) SSMs):

般而言,状态空间模型(SSM)的动态可以随时间变化,即矩阵 A∈RN×N\boldsymbol{A} \in \mathbb{R}^{N \times N}ARN×N和向量B∈RN×1\boldsymbol{B} \in \mathbb{R}^{N \times 1}BRN×1, C∈R1×N\boldsymbol{C} \in \mathbb{R}^{1 \times N}CR1×N是时间ttt的函数。然而,当它们是常数时,动态随时间保持不变;这时的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)ds where K(t)=CetABy(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) 是系统的冲击响应。etAe^{tA}etA是矩阵指数,它是连续时间系统分析中的一个重要概念,用于描述系统状态如何随时间变化。

​ 冲击响应 K(t)K(t)K(t) : 在线性时不变(LTI)系统中,冲击响应是一个非常关键的概念。它描述了当系统输入为冲击信号(即狄拉克δ函数,这是一个在零时刻具有无限大值而其他时刻为零的理想化信号)时,系统的输出会如何响应。换句话说,冲击响应表达了系统对突然冲击的反应,它是理解系统动态特性的一个基本工具。

​ 矩阵指数 $e^{t \boldsymbol{A}} :在这个公式中,: 在这个公式中,:在这个公式中,e^{t \boldsymbol{A}} $ 是一个矩阵指数运算,其中 AAA是系统矩阵。矩阵指数是连续时间系统分析中的重要概念,它提供了一种方法来描述系统状态如何随时间演变。在数学上,矩阵指数定义为幂级数,类似于标量指数函数的泰勒级数展开。它是解决线性微分方程组的关键,这些方程组通常用来描述LTI系统的动态行为。

综合来看,K(t)=CetAB\quad K(t)=\boldsymbol{C} e^{t \boldsymbol{A}} \boldsymbol{B}K(t)=CetAB 表达了在LTI系统中,冲击响应如何随时间演变,并且如何通过系统矩阵 AAA, 输入矩阵 BBB, 和输出矩阵 CCC 互动来定义。这是分析和设计此类系统的一个关键方程。

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))转换为一阶近似 xk=xk−1+Δf(xk−1)x_{k}=x_{k-1}+\Delta f\left(x_{k-1}\right)xk=xk1+Δf(xk1)。在离散化过程中,论文引入了一个额外的步长参数Δ\DeltaΔ,它代表输入数据的分辨率。从概念上讲,离散的输入uku_kuk可以被视为来自隐含的连续信号u(t)u(t)u(t)的均匀间隔样本,其中uk=u(k∆)u_k = u(k∆)uk=u(k),这被称为时间尺度,是离散化的一个重要概念。

xk=xk−1+Δ(Axk−1+Buk)=(I+ΔA)xk−1+(ΔB)uk=A‾xk−1+B‾uk\be

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值