RNN

循环神经网络(Recurrent Neural Networks,RNNs)是一类特别适用于处理序列数据的神经网络。与传统的前馈神经网络不同,RNNs具有循环连接,可以在序列的每个时间步之间传递信息,使其能够捕捉数据中的时间依赖性和动态行为

在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但这对于需要用到前一个时间节点结果的问题是没有办法的,例如预测后一个单词需要用到前一个单词。

RNN存在的问题:

  • 虽然每个隐藏状态都是所有先前隐藏状态的聚合,然随着时间的推移,RNN 往往会忘记某一部分信息
  • RNN没法并行训练,相当于推理快但训练慢 

LSTM

长短期记忆网络(Long Short-Term Memory, LSTM)是一种特殊的循环神经网络(RNN)架构,专门设计用来解决传统RNN在处理长序列时的梯度消失和梯度爆炸问题。LSTM通过引入记忆单元和门机制,能够在长时间序列中保留和处理信息。

如图可以看到,RNNt时刻的输入有上个阶段的输出h_{t-1}和当前阶段的输入x_{t},输出仅h_{t}。而LSTM有三个输入,具体如下图:

 t时刻的输入有:

  • C_{t-1}:上一阶段的单元状态
  • h_{t-1}:上一阶段的输出
  • x_{t}:当前阶段的输入

 t时刻的而输出有:

  • C_{t}:当前阶段的单元状态
  • h_{t}:当前阶段的输出

单元状态可以被视为LSTM的“记忆”,它在每个时间步之间传递并通过遗忘门、输入门和输出门进行调节。这使得LSTM能够选择性地记住或忘记特定的信息,从而在处理长时间序列时保留重要的历史信息。

RNN存在的问题:

  • RNN的梯度问题在LSTM及其变种里面得到了一定程度的解决,但还是不够,故同样存在遗忘问题。
  • 没法并行训练,相当于推理快但训练慢 。

SSM

SSM(Structured State Space Models,有时也称为State Space Models,状态空间模型)是一类用于建模和推断时间序列数据的统计模型。SSM利用隐含的状态变量来描述系统的动态行为,并通过观测数据来推断这些隐含状态。

状态空间模型是一种描述动态系统行为的数学模型,它使用一组一阶微分方程(连续时间系统)或差分方程(离散时间系统)来表示系统的内部状态的演化,同时用另一组方程来描述系统状态和输出之间的关系。这些方程可以表示为矩阵和向量的形式,以处理多变量系统。

换一种说法就是,状态空间(State Space)是控制理论、信号处理、统计学和时间序列分析中一种描述系统动态行为的框架。状态空间方法通过状态变量来表示系统的当前状态,并用状态转移方程和观测方程来描述系统的动态特性和观测过程。

状态空间方程如下:

h'(t)=Ah(t)+Bx(t)

y(t)=Ch(t)

其中:

  • t表示时间步长,
  • x_{t}表示输入,
  • h_{t}表示隐藏状态,
  • y_{t}表示输出。
  • A\in \mathbb{R}^{N\times N}:演化参数
  • B\in \mathbb{R}^{N\times 1} ,C\in \mathbb{R}^{1\times N}:投影参数

由上图可知:h(t+\Delta )\approx h(t)+\Delta h'(t) ;\Delta为时间步长

将状态空间方程的h'(t)代入进一步化简可得:

h(t+\Delta )=h(t)+\Delta (Ah(t)+Bx(t)) =h(t)+\Delta Ah(t)+\Delta Bx(t) =(\Delta A+I)h(t)+\Delta Bx(t)

即: h(t)=(\Delta A+I)h(t)+\Delta Bx(t)

\bar{A}=\Delta A+I;\bar{B}=\Delta B,可得:

h'(t)=\bar{A}h(t)+\bar{B}x(t)

采用ZOH对\bar{A},\bar{B}进行离散化可得:

\bar{A}=exp(\Delta A)

\bar{B}=(\Delta A)^{-1}(exp(\Delta A)-I)\cdot \Delta B

综合以上可得:

h(t)=\bar{A}h(t-1)+\bar{B}x(t)

y(t)=Ch(t)

\bar{A}=exp(\Delta A)

\bar{B}=(\Delta A)^{-1}(exp(\Delta A)-I)\cdot \Delta B

具体过程如下图所示:蓝色部分为Selection Mechanism

其中:

  • h_{t-1}:为前一个时间点的隐藏状态
  • x_{t}:当前时间点的输入
  • y_{t}:当前时间点的输出
  • h_{t}:当前时间点的隐藏状态 

优势:

  • 循环结构表示:方便快速推理
  • 卷积结构表示:方便并行训练

    由此推的:
    由于其中三个离散参数A、B、C都是常数,因此我们可以预先计算左侧向量并将其保存为卷积核,这为我们提供了一种使用卷积超高速计算y的简单方法,如以下两个方程所示:
    至此,总结一下,将 SSM 表示为卷积的一个主要好处是它可以像卷积神经网络CNN一样进行并行训练。然而,由于内核大小固定,它们的推理不如 RNN 那样快速

Mamba

其中的“选择性SSM(即Selective SSM)”具有以下属性:

  • Recurrent SSM通过离散化创建循环SSM
  • HiPPO对矩阵A进行初始化A以捕获长程依赖性
  • 选择性扫描算法(Selective scan algorithm)选择性压缩信息
  • 硬件感知算法(Hardware-aware algorithm)加速计算

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐