2024的新宠儿——Mamba(2):从SSM到S4的升级之路

SSM到S4的三步升级:离散化SSM、循环/卷积表示、基于HiPPO处理长序列

离散数据的连续化:基于零阶保持技术做连续化并采样

由于除了连续的输入之外,还会通常碰到离散的输入(如文本序列),不过,就算SSM在离散数据上训练,它仍能学习到底层蕴含的连续信息,因为在SSM眼里,sequence不过是连续信号signal的采样,或者说连续的信号模型是离散的序列模型的概括

那模型如何处理离散化数据呢?答案是可以利用零阶保持技术(Zero-order hold technique)

  1. 首先,每次收到离散信号时,我们都会保留其值,直到收到新的离散信号,如此操作导致的结果就是创建了 SSM 可以使用的连续信号
  2. 保持该值的时间由一个新的可学习参数表示,称为步长(siz)—— \Delta,它代表输入的阶段性保持(resolution)
  3. 有了连续的输入信号后,便可以生成连续的输出,并且仅根据输入的时间步长对值进行采样


这些采样值就是我们的离散输出,且可以针对A、B按如下方式做零阶保持(做了零阶保持的在对应变量上面加了个横杠)

最终使我们能够从连续 SSM 转变为离散SSM,使得不再是函数到函数x(t) → y(t),而是序列到序列xₖ → yₖ,所以你看到,矩阵\bar{A}\bar{B}现在表示模型的离散参数,且这里使用k,而不是t来表示离散的时间步长

注意:我们在保存时,仍然保存矩阵的连续形式(而非离散化版本),只是在训练过程中,连续表示被离散化(During training, the continuous representation is discretized)

循环结构表示:方便快速推理

总之,离散 SSM 允许可以用离散时间步长重新表述问题

在每个时间步,都会涉及到隐藏状态的更新(比如h_k取决于\bar{B}x_k\bar{A}x_{k-1}的共同作用结果,然后通过Ch_k预测输出y_k)

为方便大家理解其中的细节,我再展开一下

有没有眼前一亮?如此,便可以RNN的结构来处理

然后可以这样展开(其中,h_k始终是\bar{B}x_k\bar{A}x_{k-1}的共同作用之下更新的)

卷积结构表示:方便并行训练

在经典的图像识别任务中,我们用过滤器(即卷积核kernels)来导出聚合特征,而SSM也可以表示成卷积的形式

由于我们处理的是文本而不是图像,因此我们需要一维视角

而用来表示这个“过滤器”的内核源自 SSM 公式

但怎么理解这个公式呢?一般的文章可能一带而过,但本文咱们还是通过一个例子一步一步理解

      1.与卷积一样,我们可以使用 SSM 内核来检查每组token并计算输出


      2.内核将移动一次以执行下一步的计算


      3.最后一步,我们可以看到内核的完整效果:


至于上图中的是咋计算得到的,别忘

  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值