
























要把 S4(Structured State Space Sequence model) 放进深度神经网络里,本质上是把一个经典的 状态空间模型(State Space Model, SSM) 变成一个“可训练的序列层(layer)”。但很多人一开始容易误解:一层 ≠ 一个时间步,而是一层实现整个时间序列的状态演化。
我们从数学形式 → 神经网络映射,一步一步拆。
标准连续时间 SSM:
\[\begin{aligned} \frac{dx(t)}{dt} &= Ax(t) + Bu(t) \\ y(t) &= Cx(t) + Du(t) \end{aligned} \]
离散化后(真正用于神经网络):
\[x_{t+1} = \bar{A}x_t + \bar{B}u_t \]
\[y_t = Cx_t + Du_t \]
其中:
在 Transformer 里:
在 S4 里:
更具体:
\[y = \text{SSM}(u) = K * u \]
其中卷积核 (K) 来自状态空间:
\[K_t = C \bar{A}^t \bar{B} \]
关键点:
S4层 = 用状态空间生成的长卷积核
你问的核心:神经网络 vs 状态方程参数
| 状态空间 | 神经网络中的角色 |
|---|---|
| (A) | 状态转移矩阵(决定“记忆如何衰减/传播”) |
| (B) | 输入投影(input → state) |
| (C) | 状态读出(state → output) |
| (D) | skip connection(类似 residual) |
对应关系可以理解为:
input u_t
↓ (B)
state x_t
↓ (A dynamics across time)
state sequence
↓ (C)
output y_t
+ D u_t(残差)
| Transformer | S4 |
|---|---|
| token 维度 | 时间 t |
| layer 维度 | 不同 SSM 参数 |
👉 所以:
不是一层对应一个时间步
而是:
\[x_{t+1} = \bar{A}x_t + \bar{B}u_t \]
逐步计算(类似 RNN):
for t:
x[t+1] = A x[t] + B u[t]
y[t] = C x[t] + D u[t]
用卷积替代递归
\[y = K * u \]
优点:
| 操作 | 状态空间解释 |
|---|---|
| 输入 embedding | (u_t) |
| S4 kernel convolution | 展开后的 (A,B,C) 动态 |
| residual | (D u_t) |
| activation | 非线性(SSM外加) |
反向传播本质就是:
但关键难点是:
A 是高维结构化矩阵(HiPPO + diagonal + low-rank)
S4 的 trick:
| 梯度路径 | 实际含义 |
|---|---|
| ∂L/∂y → ∂L/∂K | 卷积核梯度 |
| ∂L/∂K → ∂L/∂(A,B,C) | 状态空间参数更新 |
| ∂L/∂u | 传回上一层 |
如果压缩成最本质的理解:
S4 = 用状态空间系统参数化的长卷积层
实际代码中一层 S4 大概是:
def S4Layer(u):
K = compute_kernel(A, B, C) # 频域 or recurrence
y = conv(u, K) # 核心计算
return y + D * u # residual
然后堆叠:
x -> S4 -> GELU -> S4 -> GELU -> ...
如果你把 S4 理解成:
“类似 RNN 的 step-by-step 状态更新”
那你会错过它最重要的点:
它本质是“可并行的全局卷积模型”,不是RNN
先把一个常见误解掐掉:Mamba 不是简单“更快的 S4”。它在“是否线性时不变(LTI)”这个根上动了刀,这直接改变了表达能力、并行方式和工程实现。
下面按“本质差异”来拆,而不是表面指标。
S4 的状态方程(离散):
\[x_{t+1} = \bar{A}x_t + \bar{B}u_t,\quad y_t = Cx_t + Du_t \]
👉 关键点:
因此可以展开为卷积:
\[y = K * u \]
Mamba 做了一个关键改动:
\[x_{t+1} = A(u_t),x_t + B(u_t)u_t \]
参数变成:
由于 LTI:
类似:
一个固定 attention pattern
Mamba 引入:
可以实现:
| 模型 | 类比 |
|---|---|
| S4 | 固定卷积核 |
| Mamba | 动态卷积核(input-conditioned) |
| Transformer | fully dynamic attention |
复杂度:
Mamba不能用卷积,因为:
系统不再是 LTI
所以它用:
复杂度:
| 维度 | S4 | Mamba |
|---|---|---|
| 核心算子 | 卷积 | scan |
| 并行方式 | FFT | prefix-scan |
| streaming | ❌ | ✅ |
| kernel 是否固定 | ✅ | ❌ |
这是理解 Mamba 的关键。
问题:
引入 gating:
控制:
类似:
Mamba = SSM + attention-like selection
优点:
缺点:
优点:
代价:
x → SSM(conv) → FFN → residual
x
→ input projection
→ selective SSM (scan)
→ output projection
→ residual
多了:
这是最有价值的视角
RNN → S4(线性SSM,可并行)
→ Mamba(非线性SSM,带选择)
→ Transformer(完全动态)
如果你只记一个结论:
S4 的本质是“结构化长卷积”
Mamba 的本质是“可学习的动态状态机”
不是因为 S4 不好,而是:
而大模型真正需要的是:
memory + selectivity + scalability
如果你在做系统设计:
长序列建模(信号 / 时间序列)
S4 仍然很强
LLM / agent / reasoning
优先 Mamba
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。