SNN论文阅读与翻译(2):优化低延迟尖峰神经网络的潜在初始化

优化低延迟尖峰神经网络的潜在初始化

作者:Tong Bu,Jianhao Ding, Zhaofei Yu, Tiejun Huang

发布时间:2022.2.3

机构:北京大学人工智能研究所,北京大学计算机科学与技术系

[论文原文]: https://doi.org/10.48550/arXiv.2202.01440

摘要

背景:

  • 训练深度snn最有效的方法是通过ANN-to-SNN转换,这种方法在深度网络结构和大规模数据集中获得了最好的性能。

问题:

  • 然而,准确性和延迟之间存在权衡。为了实现与原始人工神经网络的高精度,需要较长的模拟时间将尖峰神经元的放电速率与模拟神经元的激活值相匹配,这阻碍了SNN的实际应用。

工作:

  • 我们旨在以极低的延迟(少于 32 个时间步长)实现高性能转换 SNN。
  • 我们首先从理论上分析 ANN-to-SNN 转换,并表明缩放阈值确实与权重归一化具有相似的作用
  • 我们通过优化初始膜电位来减少每一层的转换损失,应用了更直接的方法。此外,我们证明了膜电位的最佳初始化可以实现预期的无误差ANN-toSNN转换。
  • 在 CIFAR10、CIFAR-100 和 ImageNet 数据集上评估我们的算法,并使用更少的时间步长实现了最先进的准确性。

I. 引言

SNN背景与发展,优势:事件驱动的计算、稀疏激活和无乘法特性,具有固有的对抗鲁棒性。
SNN 的使用仍然有限,因为训练高性能 SNN 仍然具有挑战性。
训练多层SNN主要有两种方法:

(1)直接训练

虽然已经提出了替代梯度方法来缓解snn阈值触发发射的不可微问题(Shrestha和Orchard 2018;Wu等人2018;Neftci, Mostafa和Zenke 2019),但当层深入时梯度变得不稳定时,它仍然局限于浅层snn(Zheng et al. 2021)。此外,基于梯度的优化方法比 ANN 训练需要更多的 GPU 计算。

(2)ANNto-SNN转换

ANN-to-SNN 转换需要与 ANN 训练几乎相同的 GPU 计算时间,并且在深度网络结构和大规模数据集中产生了最佳性能。尽管有这些优势,但准确性和延迟之间存在权衡。

CIFAR-10 数据集上具有/不具有膜电位初始化的 VGG-16 转换 SNN 的传播延迟的比较。

图1·CIFAR-10 数据集上具有/不具有膜电位初始化的 VGG-16 转换 SNN 的传播延迟的比较。

虽然膜电位的零初始化可以使模拟神经元的激活与尖峰神经元的动力学联系起来更容易,但它也不可避免地存在长延迟问题。如图 1 所示,我们发现如果没有适当的初始化,转换后的 SNN 中的神经元需要很长时间来触发第一个尖峰,因此网络在前几个时间步中是“不活跃的”。在此基础上,从理论上分析了ANN-to-SNN转换,并证明了当初始膜电位是放电阈值的一半时,平方转换误差的期望达到最小值。同时,转换误差的期望为零。

主要贡献:

  • 从理论上分析了 ANN-to-SNN 转换,并表明缩放阈值确实起到了与权重归一化相似的作用
  • 证明了膜电位的初始化(对于所有神经元通常选择为零)可以被优化以实现预期的无误差ANN到SNN的转换。
  • 在CIFAR-10、CIFAR100和ImageNet数据集上证明了所提出的方法在深度网络架构中的有效性。
  • 我们表明,我们的方法可以应用于其他ANNSNN转换方法,并在时间步长较小时显著提高性能。

II.相关工作

基于梯度的优化

基于梯度的优化方法通过反向传播直接计算梯度,主要有两类:

(1)基于激活的方法

由于激活相对于膜电位的梯度是不可微的,因此经常使用代理梯度。然而,缺乏对代理梯度的严格理论分析,当snn层变得更深(>50层)时,梯度变得不稳定,网络会出现退化问题。

(2)基于时间的方法

基于时间的方法利用一些近似方法来估计发射尖峰相对于尖峰定时膜电位的时间梯度,这可以显着提高 BP 训练的运行时效率。然而,它们通常仅限于浅层网络(<10层)。

ANN-to-SNN转化

这种方法使用ReLU激活训练ANN,然后通过用峰值神经元替换激活将ANN转换为SNN。

已经提出了进一步的方法来分析转换损失并提高转换 SNN 的整体性能,例如权重归一化和阈值平衡(Diehl 等人 2015;Rueckauer 等人 2016;Sengupta 等人 2019)。在之前的工作中,对 IF 神经元应用了软重置机制(Rueckauer 等人,2016;Han、Srinivasan 和 Roy 2020),以避免神经元重置时信息丢失。这些工作可以通过较长的推理时间步骤实现无损失的转换(Kim et al. 2020),但在相对较小的时间步长下仍然存在严重的精度损失。

在最近的工作中,大多数研究侧重于使用转换后的 SNN 加速推理。Stockl 和 Maass (2021) 提出了新的尖峰神经元,以更好地将 ANN 与 SNN 联系起来。Han 和 Roy (2020) 使用基于时间的编码方案来加速推理。RMP (Han, Srinivasan, and Roy 2020)、RNL (Ding et al. 2021)和TCL (Ho and Chang 2020)试图通过动态调整阈值来缓解准确性和延迟之间的权衡。Ding等人(2021)提出了一种最优拟合曲线来量化ann激活和snn放电速率之间的拟合,并证明了通过优化拟合曲线的上界可以减少推理时间。Hwang等人(2021)提出了一种分层搜索算法,并进行了充分的实验来探索膜电位的最佳初始值。Deng等人(2020)和Li等人(2021)提出了一种新的方法,在每一层中移动权重、偏差和膜电位,使转换后的snn具有相对较低的延迟。

与上述方法不同,我们直接优化了初始膜电位,以提高低推理时间的性能。

III.方法

ANNs and SNNs

1.ANN

具体地说,对于ANN,层 l l l(l=1,2,…, l l l)中模拟神经元的ReLU激活函数可以描述为
a l = max ⁡ ( W l a l − 1 + b l , 0 ) ( 1 ) \boldsymbol{a}^l=\max(W^l\boldsymbol{a}^{l-1}+\boldsymbol{b}^l,0)\quad\quad\quad\quad\quad\quad(1) al=max(Wlal1+bl,0)(1)
其中,向量 a l a^l al表示 l l l层中所有神经元的输出激活值, W l W^l Wl l − 1 l−1 l1层中神经元和 l l l层中神经元之间的权重矩阵, b l b^l bl l l l层中的神经元的偏差。

2.SNN

对SNN来说,我们考虑神经元模型为IF模型(Integrate-and-Fire model),如果层内的峰值神经元在t时刻接收到输入 x l − 1 ( t ) x^{l−1}(t) xl1(t),则时间膜电位 v t e m p l ( t ) v^l_{temp}(t) vtempl(t)表示为其在 t − 1 t−1 t1时刻的膜电位 v l ( t − 1 ) v^l(t−1) vl(t1)的相加和加权输入之和:
v t e m p l ( t ) = v l ( t − 1 ) + W l x l − 1 ( t ) + b l ( 2 ) \boldsymbol{v}_{temp}^l(t)=\boldsymbol{v}^l(t-1)+W^l\boldsymbol{x}^{l-1}(t)+\boldsymbol{b}^l\quad\quad(2) vtempl(t)=vl(t1)+Wlxl1(t)+bl(2)

式中, x l − 1 ( t ) x^{l−1}(t) xl1(t)表示第 l l l层突触前神经元在时刻 t − 1 t-1 t1的未加权突触后电位, W l W ^l Wl为突触权值, b l b^l bl为第 l l l层尖峰神经元的偏置电位。当 v t e m p l ( t ) v^l_{temp}(t) vtempl(t)中的任何元素 v t e m p , i l ( t ) v^l_ {temp,i}(t) vtemp,il(t)超过第 l l l层的放电阈值 V t h l V^l_ {th} Vthl时,该神经元将引发一个未加权突触后电位 V t h l V^l_ {th} Vthl的尖峰;
s i l ( t ) = { 1 , i f v t e m p , i l ( t ) > V t h l 0 , o t h e r w i s e , ( 3 ) x l ( t ) = s l ( t ) V t h l . ( 4 ) \begin{aligned}&\boldsymbol{s}_i^l\left(t\right)=\begin{cases}1,&\mathrm{if}\quad\boldsymbol{v}_{temp,i}^l(t)>V_{th}^l\\0,&\mathrm{otherwise}&\end{cases}\quad,\quad(3)\\&\boldsymbol{x}^l(t)=\boldsymbol{s}^l\left(t\right)V_{th}^l.\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad(4)\end{aligned} sil(t)={1,0,ifvtemp,il(t)>Vthlotherwise,(3)xl(t)=sl(t)Vthl.(4)

这里 s i l ( t ) s^l_ i(t) sil(t) s l ( t ) s^l(t) sl(t)的第 i i i 个元素,它表示时刻 t t t 的输出尖峰,如果有尖峰则等于1,否则等于0。在触发一个尖峰后,在下一个时间步 t t t处的膜电位 v l ( t ) v^l(t) vl(t) 将回到重置值。两种方法通常用于复位电势 : “复位到零”和“减法复位”。为避免更大的损失,我们采用“减法重置”机制,具体来说,在放电后,膜电位降低的量等于放电阈值。因此膜电位的更新是根据公式(5):

v l ( t ) = v l ( t − 1 ) + W l x l − 1 ( t ) + b l − s l ( t ) V t h l . (5) \boldsymbol{v}^l(t)=\boldsymbol{v}^l(t-1)+W^l\boldsymbol{x}^{l-1}(t)+\boldsymbol{b}^l-\boldsymbol{s}^l\left(t\right)V_{th}^l.\quad\text{(5)} vl(t)=vl(t1)+Wlxl1(t)+blsl(t)Vthl.(5)

3.ANN-SNN转换理论

为了将snn的发射速率与人工神经网络的激活值联系起来,这里我们将Eq.(5)从时间1到$ T 开始累加,除以 开始累加,除以 开始累加,除以TV ^l_{ th}$,得到:
v l ( T ) T V t h l − v l ( 0 ) T V t h l = W l ∑ t = 1 T x l − 1 ( t ) T V t h l + b l V t h l − ∑ t = 1 T s l ( t ) T , ( 6 ) \begin{aligned}\frac{\boldsymbol{v}^l(T)}{TV_{th}^l}-\frac{\boldsymbol{v}^l(0)}{TV_{th}^l}=\frac{W^l\sum_{t=1}^T\boldsymbol{x}^{l-1}(t)}{TV_{th}^l}+\frac{\boldsymbol{b}^l}{V_{th}^l}-\frac{\sum_{t=1}^T\boldsymbol{s}^l\left(t\right)}{T},\quad\quad(6)\end{aligned} TVthlvl(T)TVthlvl(0)=TVthlWlt=1Txl1(t)+VthlblTt=1Tsl(t),(6)

r l ( T ) = ∑ t = 1 T s l ( t ) T r^l(T) =\frac{\sum_{t=1}^T\boldsymbol{s}^l\left(t\right)}{T} rl(T)=Tt=1Tsl(t)表示第 l l l 层神经元在0 到 T T T时间内的放电速率,将Eq.(4)代入Eq.(6),消去 x l − 1 ( T ) x^{l−1}(T) xl1(T),得到:

r l ( T ) = W l r l − 1 ( T ) V t h l − 1 + b l V t h l − v l ( T ) T V t h l + v l ( 0 ) T V t h l . ( 7 ) \boldsymbol{r}^l(T)=\frac{W^l\boldsymbol{r}^{l-1}(T)V_{th}^{l-1}+\boldsymbol{b}^l}{V_{th}^l}-\frac{\boldsymbol{v}^l(T)}{TV_{th}^l}+\frac{\boldsymbol{v}^l(0)}{TV_{th}^l}.\quad(7) rl(T)=VthlWlrl1(T)Vthl1+blTVthlvl(T)+TVthlvl(0).(7)

注意,**Eq.(7)是ANN-SNN转换的核心方程。**它描述了SNN相邻层神经元放电率的关系,并且可以与人工神经网络的转发过程相关(Eq.(1))。

为此,我们做如下假设:推理时间(延迟) T T T足够大,使得 v l ( T ) / T ≈ 0 , v l ( 0 ) / T ≈ 0 v^l (T)/T≈0,v^l (0)/T≈0 vl(T)/T0,vl(0)/T0。因此,Eq.(7)可简化为:
r l ( T ) = W l r l − 1 ( T ) V t h l − 1 + b l V t h l (8) = max ⁡ ( W l r l − 1 ( T ) V t h l − 1 + b l V t h l , 0 ) . \begin{aligned}\boldsymbol{r}^l(T)&=\frac{W^l\boldsymbol{r}^{l-1}(T)V_{th}^{l-1}+\boldsymbol{b}^l}{V_{th}^l}&\text{(8)}\\&=\max\left(\frac{W^l\boldsymbol{r}^{l-1}(T)V_{th}^{l-1}+\boldsymbol{b}^l}{V_{th}^l},0\right).\end{aligned} rl(T)=VthlWlrl1(T)Vthl1+bl=max(VthlWlrl1(T)Vthl1+bl,0).(8)

当发射速率 r l ( T ) r^l(T) rl(T)严格限制在[0,1]时,最后一个等式成立。相比之下,Eq.(1)中所有ann的ReLU激活值只需满足 a l > 0 a^l > 0 al>0即可。事实上,对于可数有限数据集,所有人工神经网络的激活值都有一个上界。因此,我们可以对Eq.(1)中的所有激活值进行归一化。具体来说,假设 z l   =   a l max ⁡ { a l } \boldsymbol{z}^l\:=\:\frac{\boldsymbol{a}^l}{\max\{\boldsymbol{a}^l\}} zl=max{al}al,其中 max ⁡ { a l } \max\{\boldsymbol{a}^l\} max{al}表示al的最大值,我们可以将Eq.(1)重写为:
z l = max ⁡ ( W l z l − 1 max ⁡ { a l − 1 } + b l max ⁡ { a l } , 0 ) . ( 9 ) \boldsymbol{z}^l=\max\left(\frac{W^l\boldsymbol{z}^{l-1}\max\{\boldsymbol{a}^{l-1}\}+\boldsymbol{b}^l}{\max\{\boldsymbol{a}^l\}},0\right).\quad\quad(9) zl=max(max{al}Wlzl1max{al1}+bl,0).(9)

通过比较Eq.(8)和Eq.(9),我们可以发现,通过复制权值和偏置,并设置触发阈值$V ^l_{th} 等于模拟神经元 R e L U 激活的上界 等于模拟神经元ReLU激活的上界 等于模拟神经元ReLU激活的上界\max{\boldsymbol{a}^l}$,可以将人工神经网络转换为SNN。我们的结果可以帮助解释之前的发现,即缩放触发阈值可以减少转换损失并改善推理延迟。实际上,缩放阈值确实起到了与权值归一化技术类似的作用。

从另一个角度来看,我们可以直接将相邻层尖峰神经元的突触后电位与人工神经网络的转发过程联系起来(Eq.(1))。如果用 a ^ l ( T )   =   r l ( T ) V t h l   =   ∑ t = 1 T V t h l s l ( t ) T   =   ∑ t = 1 T x l ( t ) T \hat{\boldsymbol{a}}^l(T)~=~\boldsymbol{r}^l(T){V}_{th}^l~=~\frac{\sum_{t=1}^TV_{th}^l\boldsymbol{s}^l(t)}{T}~=~\frac{\sum_{t=1}^T\boldsymbol{x}^l(t)}{T} a^l(T) = rl(T)Vthl = Tt=1TVthlsl(t) = Tt=1Txl(t)表示第 l − 1 l−1 l1层突触前神经元从0到 T T T的平均突触后电位,代入式(7),可得:

a ^ l ( T ) = W l a ^ l − 1 ( T ) + b l − v l ( T ) T + v l ( 0 ) T ( 10 ) = max ⁡ ( W l a ^ l − 1 ( T ) + b l − v l ( T ) T + v l ( 0 ) T , 0 ) . \begin{aligned}\hat{\boldsymbol{a}}^l(T)&=W^l\hat{\boldsymbol{a}}^{l-1}(T)+\boldsymbol{b}^l-\frac{\boldsymbol{v}^l(T)}T+\frac{\boldsymbol{v}^l(0)}T\quad\quad\quad\quad\quad(10)\\&=\max\left(W^l\hat{\boldsymbol{a}}^{l-1}(T)+\boldsymbol{b}^l-\frac{\boldsymbol{v}^l(T)}T+\frac{\boldsymbol{v}^l(0)}T,0\right).\end{aligned} a^l(T)=Wla^l1(T)+blTvl(T)+Tvl(0)(10)=max(Wla^l1(T)+blTvl(T)+Tvl(0),0).

膜电位的最佳初始化

上面讨论的神经网络的前进过程和相邻层的突触后电位之间的确切等效性取决于假设条件,即时间T足够大,使得 v l ( T ) T ≈ 0 \frac{v^l(T)}{T}≈0 TvlT0 v l ( 0 ) T ≈ 0 \frac{v^l(0)}T≈0 Tvl00。当应用于复杂的数据集时,SNN需要很长的模拟时间。此外,在低延迟约束下, r l ( T )和 z l r^l(T)和z^l rlT)和zl之间存在固有差异,这将逐层传输,导致转换后的SNN的精度显著下降。

a ^ l ( T ) = max ⁡ ( V t h l T ⌊ T W l a ^ l − 1 ( T ) + T b l + v l ( 0 ) V t h l ⌋ , 0 ) ( 11 ) r l ( T ) = max ⁡ ( 1 T ⌊ T W l r l − 1 ( T ) V t h l − 1 + T b l + v l ( 0 ) V t h l ⌋ , 0 ) ( 12 ) \begin{aligned}\hat{\boldsymbol{a}}^l(T)&=\max\left(\frac{V_{th}^l}T\left\lfloor\frac{TW^l\hat{\boldsymbol{a}}^{l-1}(T)+T\boldsymbol{b}^l+\boldsymbol{v}^l(0)}{V_{th}^l}\right\rfloor,0\right)\quad(11)\\\boldsymbol{r}^l(T)&=\max\left(\frac1T\left\lfloor\frac{TW^l\boldsymbol{r}^{l-1}(T)V_{th}^{l-1}+T\boldsymbol{b}^l+\boldsymbol{v}^l(0)}{V_{th}^l}\right\rfloor,0\right)\quad(12)\end{aligned} a^l(T)rl(T)=max(TVthlVthlTWla^l1(T)+Tbl+vl(0),0)(11)=max(T1VthlTWlrl1(T)Vthl1+Tbl+vl(0),0)(12)
其中 T W l a ^ l − 1 ( T ) + T b l + v l ( 0 ) TW^l\hat{\boldsymbol{a}}^{l-1}(T)+T\boldsymbol{b}^l+\boldsymbol{v}^l(0) TWla^l1(T)+Tbl+vl(0)表示从时间0到T的累计电位。Eq.(12)为: a ^ l ( T ) = r l ( T ) V t h l \hat a^l (T) = r^l(T) V^l_{th} a^l(T)=rl(T)Vthl。通过对比Eq.(11)和Eq.(1)、Eq.(12)和Eq.(9)可以发现,由于发射速率的离散特性,ANN和SNN之间存在固有的量化误差。

具体来说,我们假设 ANN 层$ l-1$ 中的 ReLU 激活$a^{l-1} 与 S N N 层 与 SNN 层 SNN l-1 $中的突触后电位 $\hat a^{l−1}(T ) 相同,即 相同,即 相同,即a^{l-1}=\hat a^{l−1}(T ) $, W l a l − 1 + b l = W l a l − 1 ( T ) + b l W^ la^{l−1} + b^l = W ^l a^{l−1}(T ) +b^l Wlal1+bl=Wlal1(T)+bl,然后比较第$ l$ 层 ANN 和 SNN 的输出。为了便于表示,我们使用 f ( z ) = m a x ( z , 0 ) f (z) = max(z, 0) f(z)=max(z,0)来表示ann的激活函数 a l = m a x ( W l a l − 1 + b l , 0 ) a^l = max(W ^la^{l−1} + b^l, 0) al=max(Wlal1+bl,0),即 a l = f ( z ) = m a x ( z , 0 ) , z = W l a l − 1 + b l a^l = f(z) = max(z, 0),z = W ^la^{l−1} + b^l al=f(z)=max(z,0),z=Wlal1+bl

此外,我们使用 f ′ ( z ) = m a x ( V t h l T ⌊ T z + v l ( 0 ) V t h l ⌋ , 0 ) f ' (z) = max(\frac{V ^l_ {th}}T⌊\frac{T z+v^l(0)}{V ^l_{ th}}⌋, 0) f(z)=max(TVthlVthlTz+vl(0),0)表示激活函数 a ^ l ( T ) = m a x ( V t h l T ⌊ T W l a ^ l − 1 ( T ) + T b l + v l ( 0 ) V t h l ⌋ , 0 ) \hat a^l(T) = max(\frac{V ^l_ {th}}{T}⌊\frac{T W^ l\hat a^{l−1}(T)+T b^l +v^l(0)}{V ^l_ {th}}⌋, 0) a^l(T)=max(TVthlVthlTWla^l1(T)+Tbl+vl(0),0),即 a ^ l ( T ) = f ′ ( z ) = m a x ( V t h l T ⌊ T z + v l ( 0 ) V t h l ⌋ , 0 ) , z = W l a ^ l − 1 ( T ) + b l \hat a^l(T) = f ' (z) = max(\frac{V ^l_ {th}}T⌊\frac{T z+v^l(0)}{V ^l_{ th}}⌋, 0),z = W ^l\hat a^{l−1}(T) + b^l a^l(T)=f(z)=max(TVthlVthlTz+vl(0),0),z=Wla^l1(T)+bl

a l a^l al a ^ l ( T ) \hat a^l(T) a^l(T)的期望平方差可定义为:
E z ∥ f ( z ) − f ′ ( z ) ∥ 2 2 = E z ∥ z − V t h l T [ T z + v l ( 0 ) V t h l ] ∥ 2 2 . ( 13 ) \begin{aligned}E_{\boldsymbol{z}}\left\|f\left(\boldsymbol{z}\right)-f^{'}\left(\boldsymbol{z}\right)\right\|_{2}^{2}=E_{\boldsymbol{z}}\left\|\boldsymbol{z}-\frac{V_{th}^{l}}{T}\left[\frac{T\boldsymbol{z}+\boldsymbol{v}^{l}\left(0\right)}{V_{th}^{l}}\right]\right\|_{2}^{2}.\quad\quad(13)\end{aligned} Ez f(z)f(z) 22=Ez zTVthl[VthlTz+vl(0)] 22.(13)

image-20240304210228655

定理1:当初始值 l ( 0 ) l(0) l(0) V t h l / 2 V^ l _{th}/2 Vthl/2时,平方转换误差的期望(式(13))达到最小,同时转换误差的期望达到0,即:
arg ⁡ min ⁡ v l ( 0 ) E z ∥ f ( z ) − f ′ ( z ) ∥ 2 2 = V t h l 2 , ( 14 ) E z ( f ( z ) − f ′ ( z ) ) ∣ υ l ( 0 ) = V t h l 2 = 0 . ( 15 ) \begin{aligned}\arg\min_{\boldsymbol{v}^{l}(0)}E_{\boldsymbol{z}}\left\|f\left(\boldsymbol{z}\right)-f^{'}\left(\boldsymbol{z}\right)\right\|_{2}^{2}&=\frac{\boldsymbol{V}_{th}^{l}}{2},\quad&(14)\\\left.E_{\boldsymbol{z}}\left(f\left(\boldsymbol{z}\right)-f^{'}\left(\boldsymbol{z}\right)\right)\right|_{\boldsymbol{\upsilon}^{l}(0)=\frac{\boldsymbol{V}_{th}^{l}}{2}}&=\boldsymbol{0}.\quad&(15)\end{aligned} argvl(0)minEz f(z)f(z) 22Ez(f(z)f(z)) υl(0)=2Vthl=2Vthl,=0.(14)(15)
因此,膜电位的最优初始化可以实现预期的无误差ann到snn的转换。

IV.实验

实施细节

我们评估了我们的方法在 CIFAR-10、CIFAR-100 和 ImageNet 数据集上分类任务的性能。为了比较,我们使用 VGG-16、ResNet-20 和 ResNet-18 网络结构作为之前的工作。

  1. 对于源ANN,我们将所有最大池化层替换为平均池化层
  2. 与 (Ho and Chang 2020) 类似,我们在源 ANN 中添加了可训练的裁剪层,从而能够更好地设置转换后的 SNN 的触发阈值。
  3. 对于 SNN,我们从源 ANN 中复制权重和偏差,并设置发射阈值$ V^l_ {th} ( ( (l$ = 1, 2,…, L) 等于模拟神经元激活的上限。
  4. 第$ l 层所有尖峰神经元的初始膜电位 层所有尖峰神经元的初始膜电位 层所有尖峰神经元的初始膜电位 v^l(0)$ 设置为相同的最优值 V t h l / 2 V ^l_{th}/2 Vthl/2

预处理

随机裁剪+调整大小+随机水平翻转+数据归一化

将CIFAR-10和CIFAR-100数据集的图像调整大小为32×32

对于ImageNet数据集,我们将图像调整大小为224×224

超参数

对于 CIFAR-10 和 CIFAR-100:
  • 优化器:随机梯度下降(SGD)
  • 动量参数:0.9
  • 学习率调度器:余弦衰减
  • 初始学习率:CIFAR-10 为 0.1,CIFAR-100 为 0.02
  • epoch:300
  • 权重和偏置的 L2 正则化系数:CIFAR 数据集为 5×10^-4
  • 上界参数 θ 的权重衰减:
    • CIFAR-10 上的 VGG-16 为 1×10^-3
    • CIFAR-10 上的 ResNet-18/20 为 5×10^-4
    • CIFAR-100 上的 VGG16/ResNet-18/20 为 5×10^-4
对于 ImageNet:
  • 优化器:随机梯度下降(SGD)
  • 动量参数:0.9
  • 学习率调度器:余弦衰减
  • 初始学习率:0.1
  • epoch:120
  • 权重和偏置的 L2 正则化系数:1×10^-4
  • 上界参数 θ 的权重衰减:ImageNet 上的 VGG-16 为 1×10^-4

训练细节

All experiments are implemented with PyTorch on a NVIDIA Tesla V100 GPU.

image-20240304151405557

图四:在CIFAR-10数据集上,在具有/不具有最佳初始膜电位的情况下,从ResNet-20转换的SNN的性能比较。

膜电位初始化的影响

image-20240304151804788

可以发现,具有非零初始化的转换SNN(橙色、绿色和红色曲线)的性能比具有零初始化的转化SNN(蓝色曲线)好得多,并且具有最优初始化的转化的SNN实现了最佳性能。如果延迟小于10个时间步长,则零初始化的SNN不能工作。正如图1所示,在未初始化的情况下,snn需要较长的时间才能激发。

image-20240304152158820

总体而言,较大的时间步长将带来更明显的性能改进,并且所有转换后的SNN的性能在足够的时间步长下接近源ANN的性能。并且由图可知,理论上最佳的初始膜电势是0.5。

与SOTA方法的比较

所提出的方法与先前在CIFAR-10数据集上的工作之间的性能比较
MethodANN Acc.T=8T=16T=32T=64T=128T=256T≥512
VGG-16 (Simonyan and Zisserman 2014) on CIFAR-10
Robust Norm (Rueckauer et al. 2017)92.82-10.1143.0381.5290.8092.7592.75
Spike Norm (Sengupta et al. 2019)91.70------91.55
Hybrid Train (Rathi et al. 2020)92.81----91.13-92.48
RMP (Han, Srinivasan, and Roy 2020)93.63--60.3090.3592.4193.0493.63
TSC (Han and Roy 2020)93.63---92.7993.2793.4593.63
Opt. (Deng and Gu 2021)95.72--76.2490.6494.1195.3395.73
RNL (Ding et al. 2021)92.82-57.9085.4091.1592.5192.9592.95
Calibration (Li et al. 2021)95.72--93.7195.1495.6595.7995.79
Ours94.5790.9693.3894.2094.4594.5094.4994.55
------------------------------------------------------------------------------------------------------
ResNet-20 (He et al. 2016) on CIFAR-10
Spike-Norm (Sengupta et al. 2019)89.10------87.46
Hybrid Train (Rathi et al. 2020)93.15-----92.2292.94
RMP (Han, Srinivasan, and Roy 2020)91.47----87.6089.3791.36
TSC (Han and Roy 2020)91.47---69.3888.5790.1091.42
Ours92.7466.2487.2291.8892.5792.7392.7692.75
------------------------------------------------------------------------------------------------------
ResNet-18 (He et al. 2016) on CIFAR-10
Opt. (Deng and Gu 2021)95.46--84.0692.4894.6895.3094.42
Calibration (Li et al. 2021)95.46--94.7895.3095.4295.4195.45
Ours96.0475.4490.4394.8295.9296.0896.0696.06

对于VGG16,所提出的方法仅使用32个时间步长就达到了94.20%的精度。所提出的方法使用前所未有的8个时间步长实现了90.96%的准确率,比RMP和Opt快8倍。使用64个时间步长。对于ResNet-20,它在32个时间步长内达到了91.88%的前1精度。

所提出的方法与先前在CIFAR-100数据集上的工作之间的性能比较

数据集CIFAR-100上,基于VGG-16

MethodANN Acc.T=8T=16T=32T=64T=128T=256T≥512
Spike-Norm (Sengupta et al. 2019)71.22------70.77
RMP (Han, Srinivasan, and Roy 2020)71.22----63.7668.3470.93
TSC (Han and Roy 2020)71.22----69.8670.6570.97
Opt. (Deng and Gu 2021)77.89--7.6421.8455.0473.5477.71
Calibration (Li et al. 2021)77.89--73.5576.6477.4077.6877.87
Ours76.3160.4970.7274.8275.9776.2576.2976.31

数据集CIFAR-100上,基于ResNet-20

MethodANN Acc.T=8T=16T=32T=64T=128T=256T≥512
ResNet-20 (He et al. 2016) on CIFAR-100
Spike-Norm (Sengupta et al. 2019)69.72------64.09
RMP (Han, Srinivasan, and Roy 2020)68.72--27.6446.9157.6964.0667.82
TSC (Han and Roy 2020)68.72----58.4265.2768.18
Ours70.4323.0952.3467.1869.9670.5170.5970.53

数据集CIFAR-100上,基于ResNet-18

MethodANN Acc.T=8T=16T=32T=64T=128T=256T≥512
ResNet-18 (He et al. 2016) on CIFAR-100
Opt. (Deng and Gu 2021)77.16--51.2770.1275.8177.2277.19
Calibration (Li et al. 2021)77.16--76.3277.2977.7377.6377.25
Ours79.3657.7072.8577.8678.9879.2079.2679.28

对于VGG-16,所提出的方法仅使用32个时间步长就达到了74.82%的精度,而Opt。在相同的时间步长下,校正率分别达到7.64%和73.55%。此外,对于ResNet-20和ResNet-18,我们的方法在16个时间步长内分别可以达到52.34%和72.85%的前1级准确率。这些结果表明,我们的方法使用更少的时间步长,达到了最先进的精度。

所提出的方法与ImageNet上先前工作的性能比较

image-20240304154502262

使用VGG-16架构在ImageNet数据集上测试了我们的方法,提出的方法仅使用32个时间步长就可以实现64.70%的top-1精度,仅使用64个时间步长就能实现72.47%的top-1准确性。这些结果表明,我们的方法在非常大的数据集上仍然有效,并且可以在所有数据集上达到最先进的精度。

对其他模型应用最佳初始电位

对于RMP模型,使用64个时间步长,具有最佳初始化的转换SNN的准确率比原始SNN高出20%(87%对67%)。对于RNL模型,使用64个时间步长,具有最佳初始化的转换SNN的准确率比原始SNN高37%(82%对45%)。此外,使用32个时间步长,具有最优初始化的RNL模型的准确率比原始SNN高45%(70%对25%)。这些结果表明,我们的方法与许多ANN到SNN的转换方法兼容

V.总结

从理论上推导了ANN的转发过程和SNN的动态之间的关系。我们证明了膜电位的最佳初始化不仅可以实现预期的无误差ANN-to-SNN转换,还可以将时间减少到神经元的第一个峰值,从而缩短推理时间。

感悟

这篇文章的主要内容就是证明初始化膜电位的影响以及ANN到SNN转换的数学表达,并由此做了一系列实验。实验过程中比较的方法有点老了,但是还算多。

不过有点小疑问,比如实验分析中的Ours方法,当时间步长比较小的时候,其他模型应该也有结果,虽然可能数值较小,但是还是写在表中比较好吧。更能证明方法的低延迟性能。

另外研究动机有一点是高性能SNN训练困难,但是提出的方法实际在准确度上并没有多少提升,也不算是完成了高性能这个任务。
定理1的证明在论文附录,有时间再看吧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值