【论文精读(二十四)】SPM:SNN 联手 Mamba,省电 12 倍的“能耗杀手”(ICCV 2025)

Wu, P., Chai, B., Zheng, M., Zhang, Z., Li, W., Hu, Z., Chen, J., Li, H., & Sun, X. (2025). Efficient Spiking Point Mamba for Point Cloud Analysis. ICCV.


1. 背景与痛点:为什么要做这个?

在 3D 视觉领域,Point Transformer 等基于注意力机制的方法虽然效果好,但计算量是 O ( N 2 ) O(N^2) O(N2),且能耗巨大。

  • SNN (脉冲神经网络):虽然有生物可解释性和低功耗(0/1 稀疏计算)的优势,但往往难以捕捉复杂的 3D 几何结构,且性能通常不如 ANN。
  • Mamba (SSM):最近大火的状态空间模型,拥有 O ( N ) O(N) O(N) 的线性复杂度,擅长处理长序列。

SPM 的核心思路:用 Mamba 来处理点云的空间几何(解决 SNN 变傻的问题),用 SNN 来处理时间动态并实现稀疏加法(解决 Mamba 计算量大的问题)。


2. 前置知识:硬核科普 SNN (数学视角)

2.1 LIF 神经元动力学方程

论文中使用的 S N ( ⋅ ) \mathcal{SN}(\cdot) SN() 指代 Leaky Integrate-and-Fire (LIF) 神经元。它并非简单的 ReLU,而是具有时间动力学的微分方程。根据论文公式 (1)-(3),其离散化形式如下:

  1. 充电 (Integrate & Leaky)
    H t = f ( V t − 1 , X t ) = τ V t − 1 + X t H_t = f(V_{t-1}, X_t) = \tau V_{t-1} + X_t Ht=f(Vt1,Xt)=τVt1+Xt

    • H t H_t Ht t t t 时刻的膜电位(Membrane Potential),但在发放脉冲前。
    • V t − 1 V_{t-1} Vt1:上一时刻残留的电压。
    • X t X_t Xt:当前时刻的输入电流。
    • τ \tau τ:衰减因子 (Decay factor),体现了“遗忘”特性。
  2. 发放 (Fire)
    S t = Θ ( H t − V t h ) S_t = \Theta(H_t - V_{th}) St=Θ(HtVth)

    • S t S_t St:输出脉冲, S t ∈ { 0 , 1 } S_t \in \{0, 1\} St{0,1}
    • V t h V_{th} Vth:发放阈值 (Threshold)。 Θ ( ⋅ ) \Theta(\cdot) Θ() 为阶跃函数 (Heaviside function),超过阈值输出 1,否则输出 0。
  3. 重置 (Reset)
    V t = H t ⋅ ( 1 − S t ) + V r ⋅ S t V_t = H_t \cdot (1 - S_t) + V_r \cdot S_t Vt=Ht(1St)+VrSt

    • V t V_t Vt t t t 时刻最终的膜电位。如果发了脉冲 ( S t = 1 S_t=1 St=1),电压重置为 V r V_r Vr (通常为0);否则保持为 H t H_t Ht

2.2 理论能耗优势公式

SPM 省电的核心依据在于将 乘累加 (MAC) 转换为 稀疏加法 (AC)。根据论文第 4.3 节:

  • FP32 MAC 能耗 E M A C = 4.6 pJ E_{MAC} = 4.6 \text{pJ} EMAC=4.6pJ
  • FP32 AC 能耗 E A C = 0.9 pJ E_{AC} = 0.9 \text{pJ} EAC=0.9pJ

SNN 的能耗公式为:
E S N N = E A C ⋅ F L O P s ⋅ T ⋅ fr E_{SNN} = E_{AC} \cdot FLOPs \cdot T \cdot \text{fr} ESNN=EACFLOPsTfr
其中 fr \text{fr} fr 是脉冲发放率 (Firing Rate)。由于 fr \text{fr} fr 通常很低(稀疏),且 E A C ≈ 1 5 E M A C E_{AC} \approx \frac{1}{5} E_{MAC} EAC51EMAC,最终实现了 12.6 倍 的能效提升。


3. 网络框架与数据流 (Pipeline & Dimensions)

SPM 的网络结构清晰,核心在于处理 空间 (M)时间 (T) 的维度变换。以下是 Input 到 Task Head 的完整数据流:

在这里插入图片描述

Step 1: Input → \rightarrow HDE

  • Input: 原始点云 P P P
    • Shape: ( B , N , 3 ) (B, N, 3) (B,N,3),例如 ( 32 , 2048 , 3 ) (32, 2048, 3) (32,2048,3)
  • Module: HDE (Hierarchical Dynamic Encoding)。通过滑动窗口进行时序切片。
  • Output: 编码后的点云序列 E E E
    • Shape: ( B , T , M , 3 ) (B, T, M, 3) (B,T,M,3),例如 ( 32 , 4 , 256 , 3 ) (32, 4, 256, 3) (32,4,256,3)
    • 注: T T T 为时间步, M M M 为每帧采样点数。

Step 2: HDE → \rightarrow SEL

  • Module: SEL (Spiking Embedding Layer)。包含 KNN 聚类、MLP 和 LIF 激活。
  • Transformation: 将 3D 坐标映射为 C C C 维特征,并二值化。
  • Output: 脉冲特征图 U 0 U_0 U0
    • Shape: ( B , T , M , C ) (B, T, M, C) (B,T,M,C),例如 ( 32 , 4 , 256 , 128 ) (32, 4, 256, 128) (32,4,256,128)
    • 注:从此阶段开始,Tensor 变为稀疏的 0/1 张量。

Step 3: SEL → \rightarrow SMB Backbone

  • Module: SMB (Spiking Mamba Block) × L \times L ×L 层堆叠。
  • Process: 在 T T T 维度进行双向交互 (Time Flip),在 M M M 维度进行 SSM 扫描。
  • Output: 深层特征 U n U_n Un
    • Shape: ( B , T , M , C ) (B, T, M, C) (B,T,M,C) 保持不变。

Step 4: Task Head

  • Classification Head:
    • Pool: Mean( T T T) → \rightarrow Max( M M M)。
    • Linear: ( B , C ) → ( B , NumClasses ) (B, C) \rightarrow (B, \text{NumClasses}) (B,C)(B,NumClasses)
  • Segmentation Head:
    • Upsample: 将 ( B , T , M , C ) (B, T, M, C) (B,T,M,C) 映射回 ( B , N , NumClasses ) (B, N, \text{NumClasses}) (B,N,NumClasses)

4. 核心模块详解:公式与原理

4.1 模块一:HDE (Hierarchical Dynamic Encoding)

功能:解决 SNN 静态输入问题,构建动态时序。
数学描述
给定 FPS 排序后的点集 S S S,对于时间步 i ∈ { 1 , … , T } i \in \{1, \dots, T\} i{1,,T}

  1. 有限前向滑动 (Finite Forward Sliding)
    F i ← { s j ∣ i ⋅ l ≤ j < F + i ⋅ l } F_i \leftarrow \{s_j \mid i \cdot l \le j < F + i \cdot l\} Fi{sjilj<F+il}
    • l = ⌊ L / T ⌋ l = \lfloor L/T \rfloor l=L/T 是滑动步长。这部分负责捕捉“骨架”的动态平移。
  2. 无限后向扩展 (Infinite Backward Extension)
    B i ← { s j ∣ M + i ⋅ r ≤ j < M + ( i + 1 ) ⋅ r } B_i \leftarrow \{s_j \mid M + i \cdot r \le j < M + (i+1) \cdot r\} Bi{sjM+irj<M+(i+1)r}
    • r = ⌊ R / T ⌋ r = \lfloor R/T \rfloor r=R/T 是扩展步长。这部分负责不断引入新的“细节”。
  3. 合并
    E i ← F i ∪ B i E_i \leftarrow F_i \cup B_i EiFiBi
    最终每帧输入 E i E_i Ei 既包含了稳定的主体,又包含了变化的细节。

4.2 模块二:SEL (Spiking Embedding Layer)

功能:特征升维与脉冲化。
公式
SPM 不仅利用 MLP,还引入了 EMP (Element-wise Max Pooling) 来聚合局部邻域特征:
G = EMP ( U ) G = \text{EMP}(U) G=EMP(U)
U ′ = MLP ( S N ( Concat ( U , G ) ) ) U' = \text{MLP}(\mathcal{SN}(\text{Concat}(U, G))) U=MLP(SN(Concat(U,G)))
U 0 = U ′ + RPE U_0 = U' + \text{RPE} U0=U+RPE
其中 RPE 为相对位置编码。这一步确保了进入 Mamba Block 之前,数据已经是包含局部几何信息的 0/1 脉冲。

4.3 模块三:SMB (Spiking Mamba Block)

这是全文最核心的公式推导部分。输入为 U n U_n Un,输出为 U n + 1 U_{n+1} Un+1

  1. 脉冲生成
    S n = S N ( U n ) S_n = \mathcal{SN}(U_n) Sn=SN(Un)
    首先将膜电位转化为脉冲 S n ∈ { 0 , 1 } S_n \in \{0, 1\} Sn{0,1},确保后续计算稀疏。

  2. SSM 分支 (双向 Time Flip)
    S n ′ = S N ( MLP ( S n ) ) S'_n = \mathcal{SN}(\text{MLP}(S_n)) Sn=SN(MLP(Sn))
    U n ′ , U t ′ = SSM ( S N ( DWConv ( S n ′ , S t ′ ) ) ) U'_n, U'_t = \text{SSM}(\mathcal{SN}(\text{DWConv}(S'_n, S'_t))) Un,Ut=SSM(SN(DWConv(Sn,St)))

    • S t ′ S'_t St S n ′ S'_n Sn 在时间维度上的翻转 (Time Flip)。
    • SSM ( ⋅ ) \text{SSM}(\cdot) SSM() 内部执行的是稀疏加法 h k = A ˉ h k − 1 + B ˉ x k h_k = \bar{A}h_{k-1} + \bar{B}x_k hk=Aˉhk1+Bˉxk (当 x k = 1 x_k=1 xk=1)。
    • 输出 U n ′ U'_n Un (正向) 和 U t ′ U'_t Ut (反向) 包含了双向时序特征。

解释:输入到SSM中的数据是按照最远点采样的序列,也就是说对每一个时间点t进行SSM

  1. Gate 分支 (EAP 全局门控)
    Z n = S N ( MLP ( S n ) ) Z_n = \mathcal{SN}(\text{MLP}(S_n)) Zn=SN(MLP(Sn))
    S n ′ ′ = S N ( U n ′ + U t ′ ) ∘ S N ( EAP ( Z n ) ) S''_n = \mathcal{SN}(U'_n + U'_t) \circ \mathcal{SN}(\text{EAP}(Z_n)) Sn′′=SN(Un+Ut)SN(EAP(Zn))
    • 关键公式 EAP ( Z n ) \text{EAP}(Z_n) EAP(Zn) 是对 Token 维度 M M M 求平均。
    • ∘ \circ 表示 Hadamard 积。这里用 EAP 生成的全局通道权重去门控 SSM 的输出,解决了脉冲相乘信息丢失的问题。

解释:这是全局门控,也就是说每个时间点t都会生成一个全局的向量!!!

  1. 残差连接
    U n + 1 = MLP ( S n ′ ′ ) + U n U_{n+1} = \text{MLP}(S''_n) + U_n Un+1=MLP(Sn′′)+Un

5. 实验:尤其是消融实验 📊

SPM 的实验非常扎实,不仅精度刷榜,消融实验也把每个模块的作用扒得干干净净。

5.1 主实验:精度与能耗的双赢

  • ScanObjectNN (PB_T50_RS):SPM 达到 85.6%,比之前的 SOTA SNN (Spiking Point Transformer) 高出 6.2%,甚至超过了 ANN 版本的 Point-MAE。
  • 能耗:SPM (1.5 mJ) vs PointMamba (18.9 mJ)。能耗降低 12.6 倍

5.2 消融实验:每个模块都很重要

在这里插入图片描述

1. SMB 模块设计 (Table 4)
作者对比了普通的 Mamba 结构和 SPM 的改进结构:

  • Model I (普通 Gate):直接用 LIF 替换 SiLU,精度只有 88.3%。
  • Model II (Gate II):加入 EAP 门控,精度提升到 89.3%。
  • SMB (最终版):Gate II + 双向 SSM,精度达到 90.2%
  • 结论:简单的替换激活函数是不够的,EAP 门控 ( S n ′ ′ S''_n Sn′′ 公式中的 ∘ \circ 操作) 对于保留稀疏脉冲的信息至关重要。

2. 双向策略:Flip Token 还是 Flip Time? (Table 5)

  • Token Flip (翻转 M M M 维度):效果一般 (88.9%)。因为点云是无序的,翻转 Token 顺序意义不大。
  • Time Flip (翻转 T T T 维度):效果最好 (89.6%)。
  • 结论时间维度的双向交互 ( U n ′ + U t ′ U'_n + U'_t Un+Ut) 才是 SNN 处理 3D 数据的关键。

3. HDE 编码策略 (Table 6)

  • 只用 Forward (滑窗):89.8%。
  • 只用 Backward (扩展):89.5%。
  • 双管齐下90.2%
  • 结论:前向滑窗 F i F_i Fi 负责“去噪”(丢掉不稳定的起点),后向扩展 B i B_i Bi 负责“增信”(引入更多细节),两者缺一不可。

6. 总结

Spiking Point Mamba (SPM) 是一篇非常精彩的架构设计论文。它没有生硬地缝合 SNN 和 Mamba,而是针对两者的痛点做了精准的互补:

  1. SNN 不懂几何? 用 Mamba 来扫 M = 256 M=256 M=256 的空间序列。
  2. Mamba 不懂时间? 用 HDE ( F i ∪ B i F_i \cup B_i FiBi) 和 Time Flip 强行制造时序动态。
  3. 计算太贵? 用 SNN 的 LIF 公式和 Gate 机制 ( E A C E_{AC} EAC) 把乘法全砍掉。

如果你关注 端侧设备部署脑类计算3D 视觉架构设计,这篇论文绝对值得精读!


📚 参考文献

[1] Wu, P., et al. Efficient Spiking Point Mamba for Point Cloud Analysis. ICCV 2025.

💬 互动话题:

  • 关于 SNN:你觉得 SNN(脉冲神经网络)未来能取代现在的 ANN 吗?还是只能在低功耗领域苟着?
  • 关于排序:PointMamba 用 Hilbert,SPM 用 FPS+滑窗。你觉得处理 3D 数据,空间邻域性(Hilbert)和 全局覆盖性(FPS)哪个更重要?

📚 附录:点云网络系列导航

🔥 欢迎订阅专栏【点云特征分析_顶会论文代码硬核拆解】持续更新中…

本文为 CSDN 专栏【点云特征分析_顶会论文代码硬核拆解】原创内容,转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

deep_drink

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值