Accurate and efficient time-domain classification with adaptive spiking recurrent neural networks


郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!

Nat. Mach. Intell., (2021): 905-913

Abstract

  受生物神经元详细建模的启发,脉冲神经网络(SNN)被研究为具有生物学合理性和高性能的神经计算模型。脉冲神经元之间的稀疏二值通信可能会实现强大且节能的神经网络。然而,与人工神经网络相比,SNN的性能仍然有所欠缺。在此,我们展示了活动正则化替代梯度如何与可调自适应脉冲神经元的循环网络相结合,为SNN在时域具有挑战性的基准(例如语音和手势识别)上产生最先进的技术。这也超过了标准经典循环神经网络的性能,并接近了最好的现代人工神经网络的性能。由于这些SNN表现出稀疏脉冲,我们表明,与具有相似性能的循环神经网络相比,它们在理论上的计算效率要高出一到三个数量级。总之,这将SNN定位为人工智能硬件实现的有吸引力的解决方案。

  受大脑启发的人工智能深度学习的成功自然将注意力重新集中到神经科学的灵感和抽象上1。一个这样的例子是将生物神经元之间通信的稀疏、脉冲和基于事件的性质抽象为神经单元,这些神经单元在每次迭代或评估的时间步骤上传达真实值,将生物脉冲神经元的发放率作为模拟值(图1a)。脉冲神经元,作为更详细的神经抽象,理论上比模拟神经单元更强大,因为它们允许单个脉冲的相对时间来携带重要信息。自然界中的一个真实示例是使用精确的脉冲时序对动物(如谷仓猫头鹰)进行有效的声音定位。通信的稀疏和二值性质同样有可能以神经形态计算的形式大幅降低专用硬件的能耗。

  自从引入5-9以来,已经开发了许多在脉冲神经网络(SNN)中学习的方法。所有这些方法都定义了如何将输入信号转换为脉冲序列,以及如何根据目标、学习规则或损失函数来解释输出脉冲序列。对于监督学习,计算损失函数相对于权重的梯度的方法必须处理神经元内部脉冲机制的不连续性。局部线性化近似,如SpikeProp5可以推广到近似替代梯度10,甚至在特殊情况下精确计算11。特别是替代梯度的使用最近导致在选定基准上的性能迅速提高,缩小了与传统深度学习方法在CIFAR10和(Fashion) MNIST等较小图像识别任务上的性能差距,并展示了在时间任务上的改进性能,例如TIMIT语音识别12。尽管如此,SNN仍然难以证明其优于经典人工神经网络(ANN)13,14的明显优势。

  可以在硬基准上进行高性能训练,以在除一个基准之外的所有基准上超越SNN的当前最先进水平,并接近或超过经典循环人工神经网络中的最先进水平。SRNN的高性能是通过使用新的多高斯替代梯度和自适应脉冲神经元将时序反向传播(BPTT)16应用于脉冲神经元来实现的,其中内部时间常数参数与网络权重共同训练。构建多高斯替代梯度以包括负斜率(类似于sigmoid类dSilu激活函数的梯度17,18);我们发现它始终优于其他现有的替代梯度。同样,共同训练自适应脉冲神经元的内部时间常数总是被证明是有益的。我们证明这些成分共同将性能提高到具有竞争力的水平,同时保持稀疏的平均网络活动。

  我们展示了SRNN在具有固有时间维度的知名基准测试中的卓越性能,例如心电图(ECG)波形分类、语音(Google Speech Commands, GSC; TIMIT)、雷达手势识别(project Soli)和经典硬基准,例如序列MNIST及其置换变体。我们发现SRNN需要很少的通信,平均脉冲神经元每3到30个时间步骤发出一次脉冲,具体取决于任务。计算理论能量成本,然后我们表明廉价的累加操作在SRNN中优于更昂贵的加乘(MAC)操作。基于相对MAC与累积能量成本13,14,我们认为这些稀疏脉冲SRNN与RNN和ANN相比具有一到三个数量级的能量优势,并且具有相当的准确性,具体取决于网络和任务的复杂性。

图1 | 脉冲神经网络中处理和学习的图示。a,顶部:经典人工神经单元计算输入激活的加权和,然后使用非线性传递函数从该总和计算输出激活。时间被建模为网络图的迭代重计算。底部:脉冲神经元接收到经过加权并添加到内部状态(膜电位)的脉冲,该内部状态(膜电位)根据微分方程随着时间的推移而进一步发展。当膜电位超过阈值时,会发出脉冲信号并重置电位。b,SRNN的示例架构:输入层投影到一层循环连接的脉冲神经元。循环层然后投影到读出层。多个循环层可以前馈方式连接,此处显示了两个循环层。c,LIF和ALIF神经元的衰减阈值和膜电位可以建模为由自循环诱导的内部状态。d,用于序列 t = 0...T 的BPTT的脉冲神经元计算图的roll-out。e,不同替代梯度函数作为神经元膜电位和阈值的函数的图示,其中多高斯参数化如下实验所示(s = 6, h = 0.15)。

SRNNs. 我们在这里关注循环连接的脉冲神经元的多层网络,如图1b所示;变化包括接收双向输入的脉冲循环神经网络(bi-SRNN; 扩展数据图2a)。

  脉冲神经元来源于捕捉真实生物神经元行为的模型。尽管Hodgkin-Huxley模型等生物物理模型是准确的,但它们的计算成本也很高。现象学模型,例如LIF神经元模型以生物合理性水平换取可解释性和降低计算成本:LIF以泄漏方式整合输入电流,并在其膜电位从下方越过其阈值时发出脉冲,之后,膜电位被重置为重置膜电位;电流泄漏由衰减时间常数τm确定。

  作为一个极其简单的脉冲神经元模型,LIF神经元缺乏真实神经元的许多复杂行为,包括表现出更长历史依赖性的反应,例如脉冲发放率适应20。Bellec及其同事21展示了如何使用使用通用适应形式的脉冲神经元模型来提高其SNN的性能。在这个自适应LIF (ALIF)神经元中,LIF神经元模型增加了一个自适应阈值,该阈值在每个发放脉冲后增加,然后随着时间常数τadp呈指数衰减。LIF和ALIF神经元都可以被认为是具有自循环的神经单元,如图1c所示。

BPTT, surrogate-gradient and multi-Gaussian. 给定在特定时间 t 的神经活动上定义的损失函数L(t|θ),BPTT算法16通过使用链式法则计算偏导数以更新网络参数 θ 来最小化损失。这里 θ 包括突触权重和相应的神经时间常数。在循环连接的网络中,过去的神经激活会影响当前的损失,并且通过展开网络,这些过去的激活对当前损失的贡献被考虑在内。网络活动的展开,通过它计算梯度,如图1d所示。

  脉冲神经元中脉冲机制的不连续性使得很难应用连接神经输出和神经输入之间反向传播梯度的链式法则;在实践中,用平滑梯度函数(替代梯度)替换不连续梯度已被证明是有效的10,12,22,并且具有允许在优化的深度学习框架(如PyTorch和Tensorflow)中将SNN映射到RNN的额外好处10。已经提出并评估了多个替代梯度函数,包括Gaussian、linear21和SLayer6函数;但是,这些函数的性能没有显著差异10

  我们在此将多高斯定义为一个新的替代梯度,包括多个高斯的加权和,其中超参数 h 和 s 的选择使得多高斯包含负部分:

其中 ut 是脉冲神经元的膜电位,σ 是高斯的宽度,? 是其内部阈值。多高斯替代梯度的灵感来自dSilu17激活函数,它被证明在准确性和学习速度方面都优于标准sigmoid激活函数,并且具有类似于多高斯的导数。多高斯梯度的负部分有效地规范了活动,因为它们惩罚了相对较大的输入和较小的输入18。因此,梯度函数有助于SNN在稀疏神经活动的情况下实现高精度。多高斯和各种其他替代梯度函数的形状如图1e所示。 

图 2 | 复杂度计算。a,不同层的理论能量计算。计算复杂度计算遵循Hunger50。 给定用于评估单个神经LIF、ALIF或LSTM单元(左)的公式,计算单个循环连接层的复杂度,其中每个神经元接收 n 个具有平均脉冲概率的前馈输入Frin和 m 个具有平均脉冲概率的循环输入Frout;EAC和EMAC分别表示累加(AC)和MAC操作的能量成本。b,LIF、ALIF和LSTM内部操作示意图。

Computational cost. 为了估计SNN的效率并将它们与ANN进行比较,我们计算了累积(AC)和MAC操作所需的计算次数23。我们对具有LIF或ALIF神经元的SRNN网络执行此操作,并将其与复杂的循环ANN结构进行比较,例如长短期记忆(LSTM)网络24(图2;其他ANN参见扩展数据图2b)。在人工神经网络中,一个神经元对另一个神经元的贡献需要每个时间步骤的MAC,将每个输入激活乘以各自的权重,然后再将其添加到内部总和中。相比之下,对于脉冲神经元,传输的脉冲只需要在目标神经元处进行累积,从而增加电位的权重,而脉冲可能非常稀疏。此外,脉冲神经元的内部状态需要在每个时间步骤更新,代价是几个MAC,具体取决于脉冲神经元模型的复杂性。由于计算MAC比计算AC在能量上要昂贵得多(例如,在45 nm互补金属氧化物半导体上要贵31倍),SNN的相对效率取决于连接数乘以活动稀疏度和脉冲神经元模型的复杂性。我们还注意到,在数字硬件上,乘法电路比加法电路需要更多的芯片面积26

图 3 | 任务执行的详细信息。a-c,为每个时间步骤标记的单个ECG信号通道的示例(a);SHD数据集中口语数字7的输入脉冲序列(b);以及手势数据的示例(c),其中顶行显示手势的时间演变,底行显示相应的距离多普勒图像。d,各种替代梯度对性能的影响。e,训练时间常数超参数τm和τadp的效果。图例表示训练了哪些超参数,而ReLU表示非脉冲模拟SRNN。f,SRNN在各种任务上的每时间步骤脉冲概率。g,每个样本的总平均脉冲操作(SOP)和每个样本每步骤的SOP(每帧的时间步骤)。h,神经元类型对不同梯度的测试准确性和稀疏性的影响(针对Soli数据集显示)。节点的大小表示网络大小,而节点的颜色表示梯度类型。i,隐藏循环层的数量对具有各种梯度的测试准确性和稀疏性的影响(针对SHD数据集显示)。

Results

Tasks. 循环神经网络在需要内存的各种序列任务中提供最先进的性能27(通常在小型和紧凑的网络中)并且能够以在线方式运行。我们区分两种序列任务:(1) 流式任务,其中许多输入映射到许多指定的输出(多对多);(2) 分类任务,其中输入序列映射到单个输出值(多对一)。序列分类任务也可以在线方式计算,其中为每个时间步骤确定分类。

  我们选择了具有固有时间维度的基准任务,这些任务也可以使用大小适中的RNN进行计算,以适应SNN的动态和约束。对于这些任务,我们用各种梯度、超参数和脉冲神经元模型训练了几种不同的SRNN网络架构,并将它们与经典和最先进的RNN架构进行了比较。使用对训练数据的三重交叉验证来选择超参数。

  ECG28信号由六种不同的特征波形(P、PQ、QR、RS、ST和TP)组成,其形状和持续时间可告知临床医生心血管系统的功能。该任务需要连续识别所有六个波形,我们使用来自QTDB数据集28的信号。ECG波标记是仅使用过去信息的在线和流式任务。序列和置换序列S/PS-MNIST数据集是长度为784的标准序列分类任务,源自经典的MNIST数字识别任务(通过一次呈现一个像素)。置换版本还首先置换每个数字类删除空间信息。Spiking Heidelberg Digits (SHD)和Spiking Speech Command (SSC)数据集29是特定于SNN的序列分类基准,其中包含基于详细耳朵模型转换为尖峰序列的音频数据。

  Soli数据集30手势识别任务包括一组手势,其中每个手势都作为从固态毫米波雷达传感器(Soli)收集的一系列雷达回波进行测量。我们通过序列处理帧将Soli任务视为在线流式传输和分类任务;因此,我们获得了两个度量,流的每帧精度和分类的全序列精度。

  GSC31和TIMIT数据集32都是经典的语音识别基准,对于TIMIT,我们计算帧错误率(FER)和位置,类似于参考文献12,我们应用了一个双向架构,这样未来的信息也被用来对每一帧进行分类(如扩展数据图2a中所示)。ECG、SHD和Soli数据集的样本如图3a-c所示。

  如表1所示,我们发现这些SRNN在除一项任务外的所有任务上都达到了SNN的最先进性能,超过了LSTM模型等传统 RNN,并且接近或超过了现代RNN的最先进水平。对于GSC,我们超越了SNN最先进的循环和在线处理,并接近参考文献33的非流式结果。此外,我们看到 SRNN在卷积神经网络(CNN)和基于注意力的网络等非循环架构上大大缩小了准确度差距(SHD、SSC、GSC);然而,这些网络通常包含更多的神经元或参数,并且不能以在线或流式方式计算。

  我们在图3d中绘制了使用不同替代梯度的各种任务的准确度:尽管我们看到以前开发的梯度(例如高斯、线性和SLayer)之间几乎没有差异,但我们发现多高斯函数始终优于这些梯度。为了更好地理解为什么多高斯是有益的,我们删除了梯度的左负部分或右负部分进行比较。我们一致地发现,这两个部分的性能和稀疏性都得到了改善(扩展数据表2,以及扩展数据图3和4),这表明多高斯的负部分可以作为有效的正则化器。

  如图3e中的消融研究所示,我们还发现,与使用的替代梯度无关,在ALIF神经元中训练时间常数始终可以提高性能;不训练τm或τadp——或者都不训练——会降低性能。SRNN的大部分功能似乎来自其多层循环和自循环架构。当我们通过消除脉冲机制并传达膜电位的整流线性单元(ReLU)值使脉冲神经元不产生脉冲时,对于几乎所有任务,我们的性能都略高于脉冲SRNN。

  训练好的SRNN通信很少:大多数网络表现出小于0.1的稀疏性,并且只有ECG任务需要更多的脉冲,因为它被调整为使用最小的SRNN网络(46个神经元)。神经活动的稀疏性(表示为每个神经元每个时间步骤的平均发放概率)绘制在图3f中。一般来说,我们发现增加网络大小可以提高准确性,同时降低平均稀疏度(图3h, i),尽管网络中使用的脉冲总数会增加。图3g给出了性能最高的SRNN的每个样本(SOP)和每个样本每步(SOP每步)所需的总平均脉冲数。我们还评估了与层内循环连接相比,脉冲神经元的内部循环在多大程度上做出了贡献:我们发现添加层内循环连接持续提高了准确性(参见补充信息中的扩展数据表2)。

  使用ALIF或LIF神经元绘制网络的性能,我们发现ALIF神经元持续改善网络中的性能和活动稀疏性(图3h)。类似地,在SRNN架构中将单个大型循环层分成两层循环连接层可以提高SHD任务的性能和稀疏性(图3i),其他任务也有类似的改进。

  我们在Soli和SHD数据集上对 h 和 s 超参数进行了网格搜索,以确定使用交叉验证的多高斯替代梯度的最佳参数值。我们发现有一系列值可以同时获得具有竞争力的准确性和高稀疏性(图4a, b中橙色虚线左上角的区域)。我们对其他任务使用了类似的超参数搜索,仅使用来自此处确定的高精度/低活动区域的选定值;训练过程还学习了各个任务的时间常数。如图4c所示,对于SHD任务,从时间常数的紧密分布开始,训练网络中的脉冲神经元收敛到使用各种时间常数——在其他任务中观察到相同的效果(未展示)。

  一些任务的流式和在线性质允许网络随时做出决定。图4d显示了每个时间步骤的各种ECG波形的分类。当出现新波形时,在正确识别此类之前会有短暂的延迟。在图4e-i中,显示了S-MNIST、PS-MNIST、SHD、SSC和Soli数据集的平均在线分类性能。我们看到可以快速可靠地识别S-MNIST和PS-MNIST数字,而SSC声音需要更多时间。SHD声音识别更加不稳定,对数据的检查表明这是由于声音剪辑中不同时间放置的各种类造成的。图4i将准确度绘制为Soli任务显示的帧数的函数。在42帧中仅呈现25帧后,大多数手势已经能够可靠地识别,与参考文献30相比具有优势:SRNN允许更早做出更准确的决策。

  鉴于参考文献14,25,34的相对累积和MAC能量成本和图2a计算的计算复杂度,我们在表2中绘制了各种网络的相对能量效率。我们看到,对于更复杂的任务,在同等性能??水平下,理论上SRNN的能效至少是RNN的59倍,而对于大多数任务,非脉冲(ReLU) SRNN的表现最为有利。更经典的RNN结构(如LSTM)需要更多的参数和操作,效率通常低1000倍——我们还在扩展数据表1中计算了其他RNN结构的类似估计值。

图 4 | 学习权衡和分类延迟。a,b,网格搜索 h (高度)和 s (尺度),用于Soli数据集上的多高斯替代梯度。虚线以高精度(>0.91) (a) 和高发放稀疏度(>0.09) (b) 划分的左上角区域。绿色虚线框表示选定的 h 和 s 值。c,脉冲神经元时间常数在训练前后的演变。d,ECG流分类的一个例子:每个输出标签的预测概率是根据归一化输出神经元的膜电位(虚线,底部)计算的。顶部,颜色编码的真实标签。e-i,S-MNIST识别 (e)、PS-MNIST (f) 和SHD识别 (g) 任务、SSC数据集 (h) 和Soli数据集 (i) 的分类精度的时间演化。

注:使用推断期间所需的MAC和AC的数量计算相对能量成本,其中Ratio是相对能量比,使用1 MAC = 31 AC计算(参考文献25)。每个时间步骤的SRNN中的平均脉冲概率用 fr 表示。Soli数据集中的精度是每帧精度。对于GSC,ReLU SRNN没有收敛。双向LSTM网络包含290个LSTM单元。b 对于TIMIT,相对精确的网络的复杂性不可用。 

Discussion

  我们展示了多层循环网络结构如何能够为SNN在序列和时间任务上实现新的最先进的性能。这是通过使用具有学习时间动力学的自适应脉冲神经元来实现的,该神经元使用新的替代梯度多高斯梯度训练BPTT,其中多高斯梯度始终优于其他替代梯度。这些结果接近或等于传统RNN的准确度,其中非脉冲ReLU-SRNN始终略微优于脉冲版本,证明了SRNN网络架构的有效性。当用计算操作表示时,它们展示了比传统RNN高一到三个数量级的决定性理论能量优势。对于需要更大网络才能准确解决的更复杂的任务,这一优势进一步增加。

  多高斯梯度的灵感来自为标准人工神经元dSilu开发的sigmoid式饱和激活函数,它具有类似形状的梯度。与dSilu一样,我们还发现梯度的负值部分有助于提高准确性,并且在SRNN中也有稀疏性。后者表明梯度的负部分充当有效的正则化器。

  SRNN和提出的RNN都没有进行超出准确性和(对于SRNN)稀疏性的优化:没有应用修剪和量化等优化。当我们将用于GSC任务的SRNN与基于注意力的CNN网络TinySpeech23(效率优化语音识别的最新技术)进行比较时,我们发现在同等性能??水平下,SRNN仍然需要少19.6倍MAC,以及与TinySpeech不同的是,SRNN以在线和流媒体方式运行(扩展数据表1)。

  我们专注于输入维度相对有限的时间或序列问题。使用RNN,此类问题可以通过相对较小的神经网络来解决,并有望在超低功耗EdgeAI解决方案中实现。这也是强调不需要或需要固定预处理和缓冲的流式处理或在线解决方案的原因:首先必须对时间流进行分段,然后对这些段进行分类的问题大大增加了此类解决方案的复杂性。我们表明,大多数分类决策可以及早做出接近最佳的准确度。

  这里讨论的数据集都被选择为适合SRNN进行流式处理和在线处理,而预处理非常有限;例如,计算log Mel过滤器。在初步工作中,使用传统的卷积网络层来提取有用的特征被证明有助于简单的后续脉冲神经元层35。我们同样发现(使用混合CNN-SRNN,我们在DVS128数据集上获得了97.91%的准确率,在GSC数据集上获得了96.5%的准确率,CNN-SRNN代码可在https://github.com/byin-cwi/Efficient-spiking-networks/tree/main/DVS128),深度预处理显着提高了诸如GSC和DVS128数据集36等任务的准确性,其中SRNN的分数超过了参考文献33,35报告的分数。这表明,对于比这里的研究更大的问题,深度预处理在平衡对复杂性和能源需求的影响以及处理基于事件的流数据的能力时具有很大的前景。

  使用替代梯度,可以使用标准深度学习框架计算SRNN中的BPTT梯度,其中我们使用了PyTorch37。该代码可在https://github.com/byin-cwi/Efficient-spiking-networks获得。通过这种方法,可以使用最先进的优化器、正则化器和可视化工具来训练复杂的架构和脉冲神经元模型。同时,这种方法在内存使用和训练时间方面成本很高,因为计算图在所有时间步骤上完全展开,排除了在线和片上学习。此外,框架中没有利用丰富的空间和时间稀疏性。这也限制了可以应用这种方法的网络的规模;对于相当大的网络,需要专用硬件和/或稀疏优化框架38。BPTT的近似值(例如 eProp12)或替代的循环学习方法(例如RTRL39)也可能有助于缓解这一限制。

  我们注意到,我们计算的SRNN的能量优势是理论上的:尽管MAC的计算成本已被广泛接受23,34,但该度量忽略了现实世界的现实,例如是否存在足够的本地内存、访问内存的成本和将脉冲从一个神经元路由到另一个神经元的潜在成本。在许多EdgeAI应用中,传统传感器的能源成本也可能在能源公式中占主导地位。同时,我们提供的数字是未经优化的,因为除了针对稀疏性和准确性优化替代梯度外,我们没有修剪网络或应用其他标准优化和量化技术。这里的实质性改进应该相当简单。SRNN中脉冲神经元模型的训练参数可以进一步扩展到包括参数化短期可塑性和更复杂的脉冲神经元模型的方法。

  为任务调整时间常数参数的有效性也可能对神经科学产生影响:尽管真实脉冲神经元的有效时间常数是可变的和动态的,但在SRNN中训练这些参数的好处表明,这些神经特性可能会受到生物学中的学习过程的影响。

Methods

  在SRNN中,LIF脉冲神经元被建模为:

其中是输入信号,包括时间 t处的脉冲,由权重 w和注入电流Iinj,t加权;u 是神经元膜电位,它随 τm 呈指数衰减,ur 是复位电位,? 是阈值,Rm 是膜电阻(我们在突触权重中吸收)。函数fs(ut, ?)将脉冲生成机制建模为 ? 的函数,当神经元脉冲时设置为1,否则为0(其中近似的替代梯度为)。复位电位 ur 的值设置为零。ALIF神经元类似地建模为:

其中 α, γ 是与时间动力学相关的参数(α = exp(-dt/τm)和ρ = exp(-dt/τadp)),? 是包含固定最小阈值b0和自适应贡献βηt的动态阈值;ρ 表示具有时间常数τadp的阈值的单时间步骤衰减。参数β是控制阈值自适应大小的常数;我们默认将自适应神经元的 β 设置为1.8。类似地,α 表示膜电位随时间常数 τm 的单时间步骤衰减。

  SRNN使用BPTT、各种具有可塑性时间常数和各种替代梯度的脉冲神经元模型进行训练。在可用的情况下使用标准验证集来确定过拟合;对于SHD,我们保留了5%的训练数据,对于(P)S-MNIST,我们保留了10%。除了SSC和SHD数据集之外,模拟输入值被编码为脉冲,或者使用电平交叉方案(ECG)生成的脉冲,或者通过将比例电流直接注入第一个脉冲层(S-MNIST, PS-MNIST, Soli, TIMIT, GSC)。我们使用两种方法中的一种来解码网络的输出:对于(P)S-MNIST任务,在整个时间窗口内进行脉冲计数,非脉冲LIF神经元(TIMIT, SHD, Soli和GSC)或脉冲ALIF神经元(ECG)。使用脉冲计数,分类是从输出脉冲的总和解码为,其中是输出神经元 i 在时间 t 的脉冲。对于非脉冲LIF神经元和脉冲ALIF神经元作为输出,softmax分类是根据每个时间步骤的输出神经元的膜电位uout,t计算得出的。对于ECG,我们使用脉冲ALIF神经元进行输出,因为它们表现最好,我们认为这与以下事实有关:这是样本内分类切换的唯一任务(脉冲然后有效地起到重置的作用)。我们使用标准的BPTT方法12来最小化使用Adam41优化器的每个任务的交叉熵或负对数似然损失,其中我们从头到尾展开所有输入时间步骤。在更新权重之后的所有时间步中计算并累积误差梯度。 尖峰神经元的 BPTT 与自复发电路一起逆行计算。如图所示。1d,给定一个输入序列 X = x0, x1, x2, ..., xT 和一个初始状态为 {uh,0, uo,0, Sh,0, So,0} 的神经元,我们得到每个时间步 t ∈ {  0, T} 尖峰神经元状态 {uh,t, Sh,t, uo,t, So,t},其中 Sh,t 表示隐藏层中的神经元是否放电,So,t 表示输出 神经元(如果尖峰),uh,t 和 uo,t 表示隐藏和输出神经元的膜电位。然后,我们为每个时间步或整个序列 ?y 和相关损失获得分类 ?y(t)。 在 C 类的分类任务中,在读取整个序列后计算类 c – ^ yc 的预测概率,然后计算网络的损失为 L = ΣC c=1 yclog ^ yc,其中 yc 是目标 c类的概率。 在流式任务(ECG,Soli)中,总损失计算为每个时间步的损失总和,L = ΣTt =1 Lt。对于 BPTT 派生梯度,我们计算 ?L ?z = ?y - y 并且对于 循环权重 Wh2o,我们计算 ?L ?Wh2o = ?L ?z ΣTt ′ ?So,t′ ?Wh2o ,其中每个项可以在每个时间步 t′ 计算为 ?So,t′ ?Wh2o = ?So,t  ′ ?uo,t′ ?uo,t′ ?Wh2o +Σt′ -1 ξ=0 ?So,t′ ?ut′ ?uo,t′ ?uo,ξ ?uo,ξ ?Wh2o 和 ?So,t′  ?Wh2h = Σt′ ξ=0 ?So,t′ ?uh,ξ ?uh,ξ ?Wh2h ,其中 Wh2h 指隐藏层神经元之间的权重,而 Wh2o 指隐藏和输出神经元之间的权重。 不连续尖峰函数作为项 ?S ?u 进入梯度,这里我们使用可微的替代梯度 10。

  对于多高斯替代梯度,我们根据网格搜索找到有效参数值 h = 0.15 和 s = 6.0,并将 σ 设置为 0.5。 标准替代梯度在参考文献之后定义。  10,线性替代梯度为 ^fs ′(ut|?) = ReLU(1 - αlinear|ut - ?|);  SLayer6 梯度为 ^fs ′(ut|?) = exp(?αslayer|ut - ?|),高斯替代梯度为 ^fs ′(ut|?) = N(ut|?, σG); 对于所有梯度,α 为正。 我们使用网格搜索优化了实验中的所有替代梯度超参数; 在实验中,我们使用了 αlinear = 1.0、αslayer = 5.0 和 σG = 0.5。

Network initialization. 与 ANN 相比,SRNN 需要初始化权重和尖峰神经元的超参数(即神经元类型、时间常数、阈值、起始电位)。 我们使用补充表 1 中给出的每层特定参数随机初始化时间常数,遵循严格的正态分布(μ,σ)。对于所有神经元,膜电位的起始值用在范围内均匀分布的随机值初始化 [0,θ]。网络的偏置权重初始化为零,所有前馈权重均使用 Xavier-uniform 初始化; 循环连接的权重被初始化为正交矩阵。 我们比较了具有常数、统一和正态初始化器的网络的时间常数,发现正态初始化器实现了最佳性能(扩展数据图 1)。

  对于各种任务,损失函数、序列长度、最大时期数、学习率和衰减计划以及小批量大小在补充表 1 中指定。验证表明 SRNN 不易过拟合,并且测试准确度在 最后一个纪元。 除非另有说明,否则网络架构由密集连接到一个或多个完全循环连接的脉冲神经元层的输入组成,这些脉冲神经元连接到输出神经元层,如图 1b 所示。 对于心电图任务,QTDB 数据集 28 由两个心电图信号通道组成。 我们在归一化 ECG 信号的导数上应用电平交叉编码 42 阈值的变体,以将原始连续值 x 转换为尖峰序列:每个通道被转换为两个单独的尖峰序列,分别代表值增加事件和值减少事件 . 我们使用的水平交叉编码定义为:

其中 x 是被编码的信号,S+、S- 分别表示正和负尖峰序列的尖峰,我们使用 L+ = 0.3 和 L- = 0.3。

  对于 SHD,音频记录通过切割或用零完成对齐到 1 秒。 正如 Cramer 及其同事 29 的工作一样,为测试数据集保留了两个说话者,并且来自其他说话者的 5% 的样本也被添加到测试数据集中。 因此,训练数据集包含 8,156 个样本,而测试数据集包含 2,264 个样本。 对于 SSC 数据集,语音命令也以 250 Hz 的采样频率统一对齐到 1 s,数据集随机分为训练、验证和测试数据集,比例分别为 72:8:20%。 对于 Soli 数据集,40 个距离多普勒图像序列作为输入逐帧输入模型,并像 Wang 及其同事一样分为训练集和测试集 30。 原始的距离多普勒图像有四个通道,但我们凭经验发现使用一个通道就足够了。 对于 SRNN 的第一层 Soli 任务,我们使用前馈尖峰密集层,然后是循环层。与 Wang 及其同事 30 一样,针对任务的流式传输和分类版本,分别针对每帧准确度 (Accs) 和每序列准确度 (Accc) 训练了单独的网络。 在 S-MNIST 任务中,网络逐像素读取图像; 对于 PS-MNIST 任务,使用大小为 4 且步长为 1 的滑动窗口将像素读入网络。对于这两个任务,像素值作为注入第一隐藏层神经元的电流直接馈入网络 具有自身权重的全连接层。我们使用 GSC v.1(参考文献 31)。 对于预处理,使用 Librosa43 从原始音频信号中提取 log Mel 滤波器及其一阶和二阶导数。对于 FFT,使用 30 ms 的窗口和 10 ms 的跳跃。 模拟的时间步长为 10 ms。 我们使用 20 Hz 和 4 kHz 之间的 Mel 标度计算 40 个 Mel 滤波器系数的对数。 此外,对频谱图进行归一化以确保每个频率的信号在时间上的方差为 1; 然后我们选择前三个导数作为三个不同的输入通道。 因此,SRNN 的输入是 101 帧的序列,其中每帧包含一个 40 × 3 矩阵。

  TIMIT 数据库在训练和测试数据中分别包含 3,696 和 192 个样本。 我们使用 Mel 频率倒谱系数 (MFCC) 编码对原始音频数据进行预处理,如 Bellec 及其同事 12 中所述; 随机选择 10% 的训练数据集作为验证数据集,其余部分对网络进行训练。 与双向 LSTM 类似,我们使用双向自适应 SRNN 来完成此任务(参见扩展数据图 2a); 我们在网络中使用两个 SRNN 层,分别从前向和后向读取序列。 然后将这些层输出的平均值输入最后一层,即积分器,以生成类别预测。

Data availability

  本研究期间分析的数据是开源和公开的。ECG 流数据集的数据集源自原始 QTDB 数据集 (https://physionet.org/content/qtdb/1.0.0/)。  Spiking 数据集(SHD 和 SSC)属于 Spiking Heidelberg 数据集,可在 https://zenkelab 获得。org/resources/spiking-heidelberg-datasets-shd/。  MNIST 数据集可以从 http://yann.lecun.com/exdb/mnist/ 下载。  Soli 数据集可以在 https://polybox.ethz.ch/index.php/s/wG93iTUdvRU8EaT 下载。TIMIT Acoustic-Phonetic Continuous Speech Corpus 可通过 https://doi.org/10.35111/17gk-bn40 索取。 更多信息可以在我们的存储库中找到(参见代码可用性部分)。 本文提供了源数据。

Code availability

  研究中使用的代码可从 GitHub 存储库 (https://github.com/byin-cwi/Efficient-spiking-networks) 公开获得。

相关