状态空间模型SSM学习笔记

(主播内心呐喊:天呐,,,为什么会有这么多新的名词,脑子要炸了,,,)

Transformer驱动的模型都采用了注意力机制,针对长序列的处理速度会很慢。【实际应用中的例子就是需要处理一个比较大的文件时,模型的响应时间会很长】

Transformer训练阶段已知完整的输入与目标序列,通过因果掩码一次性将所有位置的标签送入模型,可以在时间维度上并行计算所有token的预测损失;同时其核心是大规模矩阵乘法,可以最大程度利用GPU的并行计算核心;推理阶段未来token尚未存在,模型必须逐个生成,时间串行,且每次生成一个token都要加载全部参数和不断增长的键值缓存,显存消耗大,GPU算力利用率低。所以,存在训练快、推理慢的问题【大多数生成任务+自回归模型的通病】。

状态空间模型【源于控制论】是一种用来描述动态系统随时间演化的数学框架,深度学习中它演变成了一类用固定大小的隐藏状态来压缩历史信息的序列建模方法。

状态方程:ht = Aht−1 + Bxt,描述上一状态如何通过转移矩阵 A 演化,并叠加当前输入 xt 的影响;输出方程:yt = Cht + Dxt,描述如何从当前隐藏状态映射出输出。【梦回本科学信号与系统的时候了。。。】矩阵B描述了输入如何影响系统,矩阵A描述了内部状态之间是如何连接的,矩阵C描述了状态是如何转化到输出的,矩阵D提供了一个直接从输入到输出的信号,通常称为跳跃连接。状态空间SSM通常被认为不包含跳跃连接的部分(D)。

状态空间模型(SSM)在深度学习和序列建模里原本是定义在连续时间上的(来自控制论、信号处理),但我们实际处理的几乎所有数据------语音、文本、传感器、视频帧------都是离散时间序列

结构化序列空间模型S4

S4是SSM的重要演进,矩阵A、B、C在序列处理中都是常量。使用HiPPO理论初始化矩阵A【普通 RNN:随便压缩,久了以前的信息被指数衰减冲掉;HiPPO:不记原始历史,记用一组正交多项式(类似 Legendre 多项式)去拟合历史函数的系数】,是指不遗忘久远信息。因为参数固定,S4可以把递归形式等价转换为卷积形式。但是由于内容不可知,S4无法根据输入token的重要性调整动态记忆,比如噪声中的关键语音片段没法多记一点。

选择性状态空间模型Mamba(S6)

Mamba就是为了解决S4不能根据内容选择性记忆的问题提出的。它让矩阵B和C离散化步长变为输入xt的函数(Bt​=LinearB​(xt​),Ct​=LinearC​(xt​),Δt​=Softplus(LinearΔ​(xt​))),遇到重要的信息,步长变大,遇到无关噪声,步长变小或直接忽略(遇到重要 token :Δₜ 大 → 状态快速更新,新信息写进去;遇到无关/噪声 token :Δₜ 小 → 状态几乎不动,不被污染。具体的离散化如下式,步长大,历史输入的系数就小,当前输入的系数大,从而更新信息)。但由于参数随输入变化,mamba无法静态卷积,便设计了硬件感知的并行扫描,保持了线性复杂度和高吞吐。

小结:

状态空间模型(SSM)就像给模型配了个固定大小的 笔记本,每来一个新信息就按一套数学规则(如HiPPO)把旧笔记和新内容揉进记忆里,永远不扩容,以此用线性复杂度和常数内存把长序列压缩记住;相比RNN (同是递归写笔记但靠纯数据驱动的门控,长期容易忘且训练难并行)和Transformer (不写笔记而是把所有人名贴满墙逐个比对,记性好但显存随长度暴增的O(L²)大户),SSM取了中间路线:训练可并行、推理轻量省内存。S4 是早期的SSM,用固定不变的更新规则(线性时不变)写笔记,擅长处理语音等连续信号但对内容重要性不分轻重,而Mamba给笔记规则加了"看人下菜碟"的选择性机制(让更新步长和方式随输入变),既能像Transformer那样关注重要内容,又保留了SSM边缘友好的轻量递归,是目前替代Transformer的有力选手。

RNN transformer SSM对比表格

|---------|--------------|-----------------------|------------------------|
| 维度 | RNN/LSTM/GRU | Transformer | SSM |
| tn时刻看什么 | hn-1(压缩历史) | t0,......tn-1(查看所有历史) | hn-1(压缩历史) |
| 实时友好度 | √(结构简单) | ×(内存/延迟瓶颈高) | √√(S4) |
| 内容关注 | √(有门控) | √(注意力权重) | ×(S4矩阵固定) √(mamba动态步长) |
| 核心机制 | 隐藏状态递归更新 | 全局自注意力 | 结构化状态递归(线性+可选选择性) |

附:aTENNuate 深度状态空间的试试语音增强模型

这是一篇基于SSM的实时轻量语音增强模型论文(如果不是在调研实时轻量语音增强模型研究方法我都不会了解到SSM,,,完全新领域来的),网络架构如下。

【暂时是将论文喂给AI帮我解读,还没有脑容量去仔细学习】模型大体也是UNet结构,只不过瓶颈层不是RNN也不是transformer,而是S4的SSM结构,且输入输出都是时域波形,即端到端,不做时频变换。后面将稍微仔细了解一下这种语音增强模型原理和构造。。。。下期见。

相关推荐
万岳科技系统开发8 小时前
智慧医院小程序开发满足医疗机构多场景服务需求
数据库·学习·小程序
笑鸿的学习笔记8 小时前
C++笔记之内存映射、零拷贝与共享内存(学习三)-操作系统术语概念图
笔记·学习
既然如此,那就开摆9 小时前
ULIP总结
笔记·学习
xin(n_n)b9 小时前
科研小白的进阶笔记(一)
人工智能·笔记
杨浦老苏9 小时前
实测2.8MB的Rust笔记服务:MinimaMemosa部署教程
笔记·docker·群晖
王燕龙(大卫)9 小时前
fastdds笔记
网络·c++·笔记
Mico1810 小时前
MySQL 8.0.35 源码编译安装笔记
数据库·笔记·mysql
秋雨梧桐叶落莳10 小时前
iOS——3GShare项目总结
学习·macos·ios·objective-c·cocoa
一只小菜鸡..10 小时前
Stanford CS144 学习笔记 (五):互联网核心应用与网络边缘 (NAT, HTTP, BT, DNS)
网络·笔记·学习