下一步:从手工特征走向深度学习与 Mamba

2026 年 10 月 8 日深度学习Mamba路线图

为什么要换

现在的基线是手工特征 + SVM:我们用 Welch 功率谱把每个 2 秒片段压成 95 个数字,再交给 RBF 核 SVM。

这套流程有三个天花板:

  1. 时间信息被平均掉了 —— 功率谱是对整个 2 秒做平均,模型从没见过波形本身。
  2. 特征是人工设计的 —— 频带划分、是否取 log、要不要做相对化,全靠人拍脑袋。
  3. 没有层次化表示 —— SVM 直接在 95 维空间划线,学不到“低级波形 → 中级模式 → 高级语义”这种结构。

但换之前,必须先做一件事

我们的批次混杂问题还没解决:只用采集时间戳就能达到 AUC 0.892。

深度模型的容量比 SVM 大几个数量级,它会把这个批次差异学得更彻底。如果不先解决就上深度模型,结果是“一个更漂亮的数字 + 一个更站不住的结论”。

所以顺序是严格串行的,不能并行。

四个阶段

阶段 0 · 批次校正(2–3 周)

  • 索取批次元数据
  • 用 ComBat 对各通道各频带功率做批次校正,重跑 SVM,看 AUC 掉多少
  • 定义“留一批次交叉验证”:用一种采集期的数据训练,用另一种测试
  • 验收标准:跨批次 AUC 是多少。这个数字才是今后一切工作的真实基线。

阶段 1 · 换深度基线(3–4 周)

  • 搭 PyTorch 环境
  • 评估框架一个字都不改:同一套按被试分组的 5 折、同样的被试级融合、同样的指标
  • 先做 EEGNet(参数量小、专为小样本设计)
  • 输入直接用 2 秒片段的原始波形 (B, 1, 19, 512)
  • 验收标准:与 SVM 的差距在 ±0.05 以内,或能解释差在哪

阶段 2 · 建立对照(4–6 周)

把编码器依次换成 1D-CNN → LSTM → Transformer,记录参数量、训练时间、被试级 AUC。

到这一步我们才有资格说“在探索 Mamba” —— 因为有了对照,而不是只有一个孤零零的结果。

阶段 3 · 上 Mamba(4–6 周)

  • 先手写最小 SSM(理解优先,不管速度)
  • 换用纯 PyTorch 实现,跑通 Bi-Mamba
  • 架构选择:
    • 方案 A:2 秒片段 → (B, 512, D) → N 层 Bi-Mamba → 池化
    • 方案 B:整段录音 → (B, 76800, D) → Bi-Mamba → 注意力池化
  • 与 Transformer 做同参数量、同数据、同评估的对比

为什么最终是 Bi-Mamba

模型处理序列的方式,一代比一代更远、更聪明、更便宜:

SVM 根本不看序列 → CNN 只看眼前一小段 → RNN 一个点一个点地看 → Transformer 一眼全看完(但 O(n²))→ S4 用固定规则压缩历史(便宜但死板)→ Mamba 按内容选择性记忆 → Bi-Mamba 前后一起看

Bi-Mamba 是唯一同时做到「线性复杂度 + 选择性记忆 + 双向上下文」的结构 —— 这就是 EEG 选它的理由(离线分析不受因果限制,未来信息可以用)。

但我们也要诚实

62 名被试的样本量,深度模型大概率不会超过 SVM。

这不是模型不够强,是数据不够多。所以我们对 Mamba 的定位是方法学探索,不是性能突破。如果最后的结论是“在我们的样本量下 Mamba 没有优势”,那也是合格的结论。

另外一个必须想清楚的问题:如果继续用 2 秒片段(512 个时间点),Mamba 相对 Transformer 没有优势 —— 这个长度下 O(n²) 根本不是瓶颈。

“上 Mamba”本质上取决于我们愿不愿意改任务设定:从“2 秒片段分类”改成“整段录音诊断”。 只有把整段 5–10 分钟录音当作一个序列,线性复杂度才真正有意义。而这更贴近临床场景。