霍兵强,高彦钊,祁晓峰
1.天津市滨海新区信息技术创新中心,天津 300450; 2.信息工程大学信息技术研究所,郑州 450000
随着深度学习(张铁林和徐波,2021)在人工智能研究的不断深入和在各个领域广泛应用与发展,其技术经历了第1阶段的感知机以及第2阶段的多层人工神经网络发展,深度学习在模式识别、自动控制、预测估计、智能机器人和生物医学等领域应用愈发广泛和成熟。由于人工神经网络(artificial neural network, ANN)模型学习的本质是基于海量数据驱动的统计学习,缺少神经内部动力学机制而不能准确地模仿生物大脑神经元的运作机制,且需要消耗大量的计算资源,在处理具有不确定性、时空关联性等任务时表现远不如人脑。由脑科学所启发的类脑智能(黄铁军 等,2022)研究有望推动下一代人工智能技术和新型信息产业的发展。
脉冲神经网络(spiking neural network, SNN)(胡一凡 等,2021)是一种受生物脑启发,基于事件驱动的稀疏计算进行信息处理的新一代人工神经网络。由于其更真实地模拟生物脑神经元与信息传输处理方式,并加入时间维信息的内在特性,具有生物可解释性和类脑运行机制,在类脑智能科学(施路平 等,2020)研究中占据核心地位。与ANN领域的繁荣发展相比,SNN领域的研究仍然处于快速发展阶段,其当前的研究主要围绕神经元模型、训练算法和网络应用等方向。本文对脉冲神经网络进行总结:阐述了脉冲神经网络的基本原理;综述了脉冲网络模型改进;梳理脉冲神经网络的缺陷与发展状况;列举脉冲神经网络的应用,最后对网络进行总结和展望。
人脑是由800多亿神经元与数百万亿突触相互连接组成的极其复杂的网络结构,网络中神经元通过树突接收其他神经元传递的信息,再通过轴突将信息传递给下一个神经元。脉冲神经网络作为第3代人工神经网络,相较于以感知器为代表的第1代神经网络和以BP(back propagation)算法(蔺想红 等,2015)为代表的第2代神经网络,通过更精确模仿生物神经元、信息传递方式等,增强了处理时空数据和空间信息的能力,在展现强大计算潜能的同时具有低功耗、低延迟的优势。
脉冲神经网络由输入层、编码方式、脉冲神经元、突触权重学习规则和输出层等组成,具有类似于生物的多层网络拓扑结构(程龙和刘洋,2018)。SNN以时间和空间序列为编码方式,脉冲神经元以脉冲激发时间作为输入和输出,多个脉冲神经元构造不同拓扑结构,通过一定的学习规则进行学习,最后得到输出结果。脉冲神经网络减小了神经科学和机器学习之间的差距,使用生物神经元机制的模型进行计算,能够更好地模拟生物神经元,进而成为类脑计算的基础。脉冲神经网络经典结构如图1所示。
图1 脉冲神经网络结构图
受神经科学实验(Wang等,2020)的启发,典型的深层ANN具有多级的分层结构,通过卷积滤波器提取图像的重要特征,经过大量图像训练后,卷积操作达到了与视网膜和其他视觉系统中的神经元相同的功能。近年来,ANN在许多视觉信息(曹家乐 等,2022)相关的实际任务取得重要突破,如在图像识别和分类、分割和检测方面的性能已超越人类水平。但是ANN通过端到端的方式获取图像特征,难以解释底层网络特征所表示的含义。而脉冲神经网络将脉冲的点火时间作为网络的信息处理方式,增加了时域信息,提高了网络的计算能力,同时其事件驱动的特性,能够有效降低运行功耗,具有良好的生物可解释性。相较于ANN,SNN具有以下特点和优势:
1) 信息编码和表示。SNN 使用时间编码方案将信息编码为脉冲序列,而 ANN 使用速率编码方案将信息编码为标量。相比之下,SNN在处理复杂的时间或时空数据时具有更强大的信息表示能力。
2) 计算单元和网络仿真。ANN的基本计算单元是人工神经元,其中输入由激活函数处理;SNN 的基本计算单元是脉冲神经元,由微分方程表示。ANN的仿真策略是一个循序渐进的仿真过程,SNN主要是基于时钟驱动和事件驱动的仿真过程。
3)突触可塑性和学习。SNN的突触可塑性机制强调突触前和突触后神经元之间的脉冲时间依赖性可塑,而ANN的机制一般满足Hebb规则。与ANN误差反向传播算法不同的是,SNN目前研究中最大的困难是由复杂动力学机制和网络梯度在反向传播中的不连续和不可微分问题导致的训练难题。
4) 并行和硬件实现。SNN可以实现快速和大规模并行的信息处理,而 ANN相对较弱。SNN使用离散脉冲序列代替模拟信号来传输信息,更适合低能耗的硬件实现。
脉冲神经网络结构的改进从以下5方面进行介绍:编码方式、脉冲神经元、拓扑结构、训练算法改进以及结合其他算法,脉冲神经网络结构改进具体见图2。
图2 脉冲神经网络结构改进图
大脑神经元之间通过“全有或无”(all-or-nothing)的脉冲编码传递信息。信息通过动作电位与突触结构在神经元之间传播。当前神经科学研究表明,大脑很可能潜在着基于脉冲发放频率与时间的两种编码(Auge等,2021)方式。脉冲神经网络模拟大脑信息传递处理方式,通过将外部刺激以一定的方法编码为脉冲信号,刺激神经元完成信息处理并在一定条件下发放一系列脉冲信号实现信息传递。
到目前为止,SNN编码方式比较多,较典型的有12种:频率编码、时间编码、Bursting编码、群体编码、自适应编码、高斯差分感受野编码、单脉冲时间编码、卷积共享权重核编码、步进编码(step-forward,SW)、等级顺序编码(rank order coding,ROC)、新型ROC和首脉冲时间编码。
1)最常见的神经编码方式主要包括4种:频率编码(rate coding)、时间编码(temporal coding)、Bursting编码和群体编码。频率编码(Adrian和Zotterman,1926)是对脉冲信号的时间属性的抽象,通过计算两次脉冲之间的时间间隔(即脉冲频率)对信息进行编码,即脉冲数量与输入信号强度成正比,输入强度越高则产生脉冲越多。在生物学上,生物神经元受到较强的刺激时,会倾向于释放更加密集和更多的脉冲电流。相较于频率编码,时间编码(Rullen和Thorpe,2001)将每个刺激转换为具有精确时间延迟的脉冲,即信息均包含在脉冲产生时刻,其缺点是对噪声比较敏感。Bursting编码(Izhikevich等,2003)是神经元在一段时间内产生连续且快速的高频电位(脉冲),然后进入一段相对时间的静息时期。群体编码(population coding)(Georgopoulos等,1986) 是通过多个神经元的联合活动表示信息,即信息在大脑中由细胞群编码,而非单一细胞编码。在群体编码中,每个神经元在一组输入上都有一个响应分布,并且可以组合许多神经元的响应来确定信息。
2)自适应编码为结合卷积核自适应提取特征并转化为脉冲信号。针对SNN的特征提取受限的问题,张驰和唐凤珍(2022)提出自适应编码脉冲神经网络(self-adaptive coding for spiking neural network, SCSNN)。自适应编码融合CNN和SNN的优点,将SNN中提取的特征在CNN (convolutional neural networks)中进一步特征提取,采用替代梯度反向传播方法直接训练网络参数。
3)Ma等人(2018)提出高斯差分感受野的脉冲神经网络,使用高斯差分感受野编码图像的脉冲序列,并随机选择部分脉冲作为每个神经元的输入,使用随机选择脉冲策略模拟真实神经元的绝对不应期。
4)单脉冲时间编码是在单位时间内只产生一个脉冲信号。Zhou等人(2021)为避免训练过程中计算膜电位,使用响应表达式建立了抽象的SNN训练模型,并采用单脉冲时间编码的LIF(leaky integrate and fire)神经元,提出了一种直接训练深度SNN的框架。
5)Srinivasan等人(2018)提出随时间卷积的SNN模型,采用随时间推移与输入模式卷积的共享权重核,并编码代表性输入特征,从而提高学习模型的稀疏性和鲁棒性。
6)Petro等人(2020)提出三步编码流程。受限信号的特征选择,然后通过原始信号和重构信号之间的误差度量优化,最后进行对比验证。并分析了4种编码方法:BSA (Ben’s spiker algorithm)编码(Schrauwen和van Campenhout,2003)、基于阈值、步进 (SW) 和移动窗口 (moving-window,MW)时间编码,实验表明,SW编码方法比较稳健且易于优化。
7)Kheradpisheh和Masquelier(2020)采用等级顺序编码ROC的时间编码用于多层脉冲神经网络,所有的神经元在每个刺激下正好发射一个带有发射顺序信息的脉冲,第1个发射的神经元决定了刺激的类别。
8)针对采用ROC设计SNN出现准确率低和计算效率不高等问题, Tang等人(2020)提出了脉冲卷积神经网络(spiking CNN)架构,采用新型ROC的最大输入值生成脉冲序列,并以神经元为中心的膜电压更新方法提高了硬件效率,实现硬件友好、成本节约的SNN架构。
9)针对SNN资源占用高和运算较复杂等问题,刘宙思等人(2021)提出基于离散时间调度SNN图像自分类模型。通过高斯差分归一化和首脉冲时间编码实现脉冲编码,引入强化学习的奖惩机制抑制网络过拟合问题,在少量参数基础上实现网络较高准确率。
SNN中最基本的构成元素是脉冲神经元(王秀青 等,2019),通过发送和接收动作电位传递信息。脉冲神经元的两个决定性变量是膜电势和激活阈值,当信息经过脉冲神经元时,通过动作电位编码信息,网络中的神经元只有在电位累积达到某个阈值时才被激活,激活的神经元会产生一个脉冲,其余神经元保持沉默。两个神经元之间的连接强度由突触前神经元的脉冲信号强度决定。由于采用这种二进制性质的信息表示方式,SNN在能量和效率方面(Taherkhani等,2020)优于ANN。SNN在整合时间、相位和频率编码的信息方面及以自适应和自组织的方式处理大量数据方面更具有优越的能力。经典脉冲神经元信号传输模型如图3所示。
图3 脉冲神经元结构图
SNN网络构建中常用的脉冲神经元模型有霍金—霍胥黎模型(Hodgkin-Huxley, H-H)、积分点火模型(integrate and fire, IF)、泄漏积分点火模型(leaky integrate and fire, LIF)、脉冲响应模型(spike response model, SRM)和Izhikevich模型等5种。H-H模型(Hodgkin和Huxley,1952)更加真实地模拟生物神经元的特性,但缺点是表达形式复杂且计算烦琐,无法用于大规模的网络架构。IF和LIF模型(Abbott,1999)具有计算简单且适合硬件实现的优势,是脉冲神经网络中使用最广泛的神经元模型。Izhikevich模型(Izhikevich,2003)在生物合理性与计算效率之间进行了良好的权衡与折中。脉冲响应模型(Jolivet等,2003)是一种LIF的简化模型,其包含了对不应期(refractory period)的模拟,一次神经元的激发由累积时间、激发时间、绝对不应期、相对不应期和恢复期组成。综合来看,目前最常用的脉冲神经元模型为LIF和Izhikevich模型,LIF神经元模型表示为
(1)
式中,τm表示膜时间常数,Vreset表示静息电位,Rm表示细胞膜阻抗,I表示输入电流。Izhikevich神经元模型表示为
(2)
(3)
式中,u为钠离子抑制变量和钾离子激活变量;V为神经膜电位;a为膜电位衰减速率,b为激活变量对膜电位变化的敏感程度。
从目前的文献中看,脉冲神经元模型的改进主要有8种方法:粗糙规则脉冲神经元、残余膜电位(residual membrane potential, RMP)神经元、单脉冲时间编码神经元、加权神经元、归一化神经元、对抗性突触神经元、自适应LIF神经元和光子神经元。具体如下:
1)罗云芳等人(2020)提出一种粗糙规则脉冲神经元模型, 用上、下近似概念来确立神经元的激活条件,证明了改进后脉冲神经膜系统的计算完备性,该方法具有很强的计算能力。
2)针对采用 “硬复位”的脉冲神经元导致“ANN-to-SNN”转换带来的精度损失问题,Han 等人(2020)提出了使用“软复位”的脉冲神经元,软复位指RMP脉冲神经元在发射瞬间保留了高于阈值的 “残余”膜电位,能够有效保留脉冲信息。
3) Zhou等人(2021)提出了基于单脉冲时间编码的LIF神经元模型,该模型可直接用于训练深度SNN。实验表明,该模型在权值量化和噪声扰动方面具有鲁棒性。
4)Kim等人(2018)使用加权脉冲神经元进行图像分类,通过将不同的权重脉冲分配给脉冲神经元来降低延迟,并根据所属的时间阶段分配权重。实验结果表明,提出的SNN模型加权脉冲分类延迟和脉冲数量显著降低。
5)Zhou等人(2020)提出归一化神经元模型来提高SNN特征提取的能力。在卷积层和最大池化层之后添加神经元归一化机制,以调整神经元选择性并增强对象的特征值,该模型保留更有效的突触信息并实现更快的收敛。
6)Zheng等人(2019)提出对抗性突触脉冲神经元模型。该方法使用对抗性输入突触(兴奋性输入突触和抑制性输入突触),STDP(spike timing dependent plasticity)用于训练兴奋性输入突触中的权重。结果表明,所提出方法能够提高脉冲神经网络的图像分类结果。
7)Sung和Kim(2020)提出了一种自适应 LIF 神经元模型来提高准确性,脉冲神经元泄漏电位随时间变化以控制脉冲发射活动。
8)Zhang等人(2021)构建了光子脉冲神经元模型,突触前和突触后神经元是基于带有嵌入式饱和吸收器的垂直腔面发射激光器的光子神经元,改进监督学习算法用于训练。
目前,从拓扑结构实现的复杂程度、网络参数的更新迭代速度等角度考虑,脉冲神经网络拓扑结构主要分为3种:前馈型脉冲神经网络(feed-forward spiking neural network)、递归型脉冲神经网络(recurrent spiking neural network)和混合型脉冲神经网络(hybird spiking neural network)。SNN网络拓扑结构的模型构建可影响SNN学习算法的选择。本文从结构应用改进的角度总结了近年来脉冲网络拓扑结构的改进方向,主要有5种方法:小世界网络、局部连接的脉冲神经网络、集成脉冲神经网络、高并行度inception-like SNN以及spiking inception结构,具体如下:
1)郭磊等人(2021)针对传统抗电磁干扰方式的不足,以Izhikevich模型神经元为节点,构建了两种拓扑结构的脉冲神经网络:小世界网络和随机网络,并探究了在高斯噪声下两种网络的抗干扰性能。
2)Meng等人(2021)设计类似inception的高平行度架构inception-like SNN。网络架构有3个并行计算通路,3条通路的感受野设置不同的大小以获取不同尺度的图像特征,多尺度的特征最终在解码层合并在一起,实验表明该方法具有抗硬件损坏的稳健性。
3)Saunders等人(2019)提出利用局部连接的SNNs(locally-connected SNNs, LC-SNNs)学习图像特征的方法。局部连接的SNNs体现了生物神经元空间互动的关键拓扑学特征。通过子网络抑制性相互作用竞争,从输入空间的不同位置学习特征。与其他无监督学习的SNN方法相比,LC-SNNs具有快速收敛、可学习参数更少的优势。
4)Fu和Dong(2021)为了提高 SNN 性能,提出了集成 SNN 架构和迁移学习,迁移学习用于避免重新训练新的网络,投票方式的集成SNN可以提高分类精度,结果证明集成 SNN 通过迁移学习方式在不同对象识别任务中具有优秀的性能。
5)Meng等人(2020)提出spiking inception (Sp-Inception) 模块,该模块通过基于 STDP 的竞争学习进行训练,采用PRA (pooling-reshape-activate)层来堆叠Sp-Inception 模块并构建多层SNN。
根据不同的标准,训练算法有多种分类方式。根据有无监督学习可以将主流学习算法(Wang等,2020)分为无监督学习和有监督学习,其中无监督学习算法通过模拟生物神经的突触重塑规则来训练网络,有监督学习算法分为梯度下降学习算法、有监督STDP学习算法和基于脉冲序列卷积学习算法等;根据脉冲神经元突触权值实时或延时变化可以将主流学习算法分为在线学习和离线学习,其中在线学习可以对实时问题进行求解,离线学习只能对特定问题求解;根据学习规则是否具有局部特性可将算法分为局部学习和全局学习;从结构动力学的角度可分为在固定SNN结构中学习和在演化SNN结构中学习;从知识表示的角度可分为非基于知识的学习和知识表示的学习。本文根据以上学习算法总结,从4大方面梳理近年来主要学习算法的改进:基于BP训练算法、基于STDP学习规则、ANN-to-SNN以及其他学习算法等,改进算法总结如图4所示。
图4 SNN训练算法图
2.4.1 基于BP方法
SNN误差反向传播算法(蔺想红 等,2015)是目前最重要的监督学习算法,其基本思想是给定输入脉冲序列和期望输出脉冲序列,并通过SNN的处理得到实际输出脉冲序列,然后根据网络实际输出脉冲序列与期望输出脉冲序列两者之间误差及反向传播过程,采用梯度下降法训练并调整突触权值,最终使得神经元的输出值与目标期望之间的误差最小,其表达式为
(4)
1)王卫东等人(2020)为解决脉冲信号在瞬态变化中导致的误差驱动学习无法应用问题,在脉冲神经元模型中提岀基于突触前、后电位的自适应最小均方(least mean square, LMS)的误差反向传播(BP)学习算法, 该方法在类脑计算方面具有良好的有效性。
2)Zhang等人(2018)提出了一种有效且稳健的膜电位驱动(ERMPD) 监督学习方法,能够训练神经元生成所需的脉冲序列。为了提高效率,在不希望的输出时间,ERMPD 计算膜电位仅在指定的时间点与触发阈值进行比较。
3)Qiao等人(2021)引入权重二值化脉冲神经网络(binarized SNN)来识别时空事件的数据。在训练过程中使用一种代理梯度法用于替换脉冲序列的导数,并且权重被二值化。
4)为解决脉冲神经元收敛速度较慢的问题,Gautam和Singh(2020)提出了基于CSNN (convolutional spiking neural network)模型的学习算法,使用带有循环学习率和 RMSprop 优化器的误差反向传播算法,模型具有更好的准确性和鲁棒性。
5)尚瑛杰等人(2020)针对学习多层网络收敛困难的问题,构建基于反向传播的脉冲神经网络迁移学习算法,通过构建结构相似的ANN和SNN,采用BP算法训练ANN模型,然后通过自适应的权值映射将训练的权值迁移至脉冲神经网络。
6)针对SNNs存在输入编码效率低下和神经元参数的次优设置(发射阈值和膜漏)的问题,Rathi和Roy(2021)提出了基于低延迟的梯度下降法训练的深层脉冲网络DIET-SNN(direct input encoding and leakage and threshold optimization),以优化LIF阈值以及网络参数。每层的膜泄漏和阈值通过端到端反向传播进行优化,在降低延迟的情况下达到较好分类精度。
7)为解决使用非线性IF神经元难以产生响应于给定输入的理想脉冲序列,Anwani和Rajendran(2020)训练多层SNN,采用归一化近似下降(Norm-AD)的优化方法,该方法有效地训练多层SNN。
8) Kim等人(2021)提出了近似于反向传播算法的芯片上监督训练方法。在反向传播过程中简化学习算法,只使用delta值的符号更新权重进行简化,在MNIST(Modified National Institute of Standards and Technology Database)数据集上实现了较好的识别率。
9)Kheradpisheh和Masquelier(2020)提出了一种适用于多层脉冲神经网络监督学习规则S4NN,采用随机梯度下降法在具有任意层数的前馈网络中向后计算近似的误差梯度。
10)为避免SNN不可微分的问题,Mirsadeghi等人(2021)提出一种STiDi-BP的时间学习算法,采用分段线性神经元并单独估计每一层时间误差,为每一层更新权重,使用线性近似计算放电延迟,并避免反向传播梯度计算,实现基于脉冲时间位移的反向传播误差。
2.4.2 基于STDP规则方法
在神经科学中,脉冲效应(张慧港 等,2021)取决于两个神经元间的突触连接,突触可塑性(synaptic plasticity)(Song等,2000)是指神经细胞间的连接强度可调节的特性,该特性被认为是学习和记忆的生物学基础。STDP是一种基于脉冲时间信息进行学习的规则。突触前神经元的脉冲发放时间比突触后神经元早,则突触连接增强,该过程为长时间的兴奋刺激LTP(long-term potentiation);反之,将产生长时间的抑制LTD(long-term dcprcssion)。STDP机制是一种反映突触前后神经元对信息传递的因果关系。标准STDP的算法更新策略公式为
(5)
式中,Δωi,j表示权重改变量,ti和tj表示突触前后脉冲神经元发放时间,τ+和τ-表示影响STDP的时间窗尺度的时间常数,a+和a-表示对应突触的权重变化方向。
基于STDP规则方法的改进主要有8种方法:Reward STDP、STDP/anti-STDP和延迟学习的并行学习、石墨烯STDP、时间步长缩放STDP、初始突触权重随机分布STDP、对称STDP、随机STDP和基于图时空反向传播STDP。具体如下:
1)Liu等人(2021)在移动机器人应用中提出多任务自主学习范式,基于SNN的控制器采用奖励调制的STDP学习规则,奖励信号是根据突触前和突触后脉冲的瞬时频率产生,适应于感觉刺激和环境反馈,实现了多任务下的自主学习能力。
2)Taherkhani等人(2018)提出并行学习的监督学习算法来训练 SNN。该方法考虑突触延迟对SNN中神经元连接权重学习的影响,学习脉冲网络突触延迟,使用STDP、anti-STDP和延迟学习的并行学习。
3)为实现高能效、低面积和生物兼容的人工突触结构,以维持神经元之间的信号传输,Wang等人(2021)采用具有优良的电子特性、原子尺寸和低能量特性的石墨烯突触结构,该结构可以模拟基本的突触功能,即STDP和长期可塑性,并且可以表现出兴奋性或抑制性行为。
4)针对STDP的硬件所需的大存储区域和频繁内存访问导致的大能量消耗的限制,Kim 等人(2020a)提出时间步长缩放的STDP,在保持准确率不下降的前提下,可将脉冲STDP电路的面积减少 60%,降低脉冲所需的存储区域99.1%的能耗。
5)Kim等人(2021)分析了初始突触权重分布对基于STDP 学习规则的SNN学习速度、识别率和功耗的影响,并得到了当初始突触权重分布在最大值附近时,能实现更高性能的结论。
6)Hao等人(2020)发现对称脉冲时间依赖可塑性 (Sym-STDP) 规则,为监督学习提出了一种对称STDP的SNN模型。通过将 Sym-STDP 规则与生物似真突触缩放和动态阈值的内在可塑性相结合,在数据集识别中表现良好。
7)She等人(2019)提出随机 STDP 算法,该算法使用脉冲频率信息来动态调整突触行为,并在具有噪声输入的模式识别任务中进行了测试,结果优于确定性 STDP 的准确性。
8)Yan 等人(2021a)提出基于图时空反向传播 (graph-based spatio-temporal backpropagation, G-STBP)的训练方法,该方法通过将 SNN 描述为具有权重的有向图,适用于各种网络拓扑,旨在提高峰值稀疏性以提高能源效率,同时确保准确性。
2.4.3 ANN-to-SNN
作为一种受脑启发的新型人工神经网络模型,脉冲神经网络通过精确定时的脉冲序列对神经信息进行编码和处理,对处理复杂时间或时空信息具有一定的优势。然而,由于错综复杂的不连续和隐式非线性机制,为脉冲神经网络制定有效的监督学习算法很困难,已经成为该研究领域的一个重要问题。研究者对SNN算法的研究结果表明,ANN转换SNN的方法具有可执行性,并且能够达到与ANN类似的性能。
ANN-to-SNN基本原理是:构建具有连续激活值神经元组成的网络架构ANN,然后将训练的ANN架构映射到SNN上。目前,基于ANN训练与转换的深度SNN构建算法采用近似脉冲神经元响应特性的函数作为ANN的激活函数,通过对ANN网络结构进行裁剪以适应脉冲的特性,实现将SNN的权重训练过程转移到ANN的权重训练过程中,权重训练后再应用到具有相同结构的SNN网络中,由此避免了深度SNN难以直接训练的问题。该方法在图像分类的大型脉冲网络中能够达到与ANN相同的精确度。基于转换的训练方法的优点是免除了时域中的训练负担,但也存在转换的ANN的适应性较差、SNN精确损失等局限性。产生精度损失的主要原因是ANN神经元在模拟SNN神经元过程中两者在信息处理机制中的差异性,而且精度损失随网络规模和任务复杂程度的增加而增加。在ANN转换SNN过程中,为增加转换的适应性,常采用的操作包括训练过程中去除偏差、使用 ReLU激活函数(或其变体)以更好地匹配脉冲神经元的放电率、将最大池化更改为平均池化以增强与SNN 模型的兼容性、引入权重/激活归一化、阈值调整、采样误差补偿等以保持准确性。基于ANN-to-SNN方法主要有7种:Spiking-ResNet、阈值重缩放方法、TerMapping和AugMapping、Spiking-YOLO、RMP-SNN、二阶段CNN转SNN和SWE ResNet。具体如下:
1)Hu等人(2021)实现将ResNet转换为脉冲神经元网络spiking-ResNet,提出了一个残差转换模型,以适当扩展连续值激活以及匹配 SNN 中的发射速率,并建立补偿机制来减少离散化造成的错误。
2)为避免从传统 ANN 到 SNN 的直接转换性能损失,Xu等人(2017)提出通过重新调整 SNN 中每一层的阈值来减少损失的优化方法,这种阈值重缩放方法能够较好地提高SNN的性能。
3)Yu等人(2022)提出了一种新颖的ANN-to-SNN转换方法,即TerMapping和AugMapping。TerMapping 是双阈值平衡方法,通过正负两种激活函数增强SNN,而 AugMapping 是一种增强脉冲方法,该方法在时间步长信息上添加二进制的脉冲极性和数量信息。结果表明,该方案能够有效提高转换后的 SNN 的精度。
4)Kim 等人(2020b) 第一个提出基于脉冲的对象检测模型spiking-YOLO(spiking - you only look once),通过引入细粒度归一化和阈值不平衡的神经元,加快了不同速率的信息传输。
5)针对转换后SNN的精度损失较大和推理时间步骤较长的问题,Han等人(2020)提出了残余膜电位脉冲神经元,使用soft-reset的脉冲神经元模型实现ANN-to-SNN转换,在发射瞬间保留了高于阈值的 “残余”膜电位,有效实现脉冲信息保留。
6)针对心脏病的心电图分类问题,Yan 等人(2021b)提出了使用结合卷积神经网络和脉冲神经网络的心电图分类方法,首先卷积神经网络进行正常和异常ECG(electrocardiogram)信号分类,然后对异常ECG信号再次进行细分类,最后将CNN模型转为对应的SNN模型。
7)Fang等人(2022)提出脉冲元素的SEW(spike-element-wise)ResNet模型,通过深度 SNN 中的残差学习方法,实现残差连接并解决spiking ResNet中梯度消失和爆炸的问题,在ImageNet、DVS Gesture和CIFAR10-DVS 数据集效果较好。
2.4.4 其他学习算法
基于其他学习算法包括:细菌觅食优化算法(bacterial foraging optimization,BFO)、进化优化算法、相对排序学习(relative ordering learning,ROL)、自由能算法、SP-KMCR 路由算法、增强型贻贝游动优化算法(enhanced-mussels wandering optimization,E-MWO)、SALT等。具体如下:
1)针对腓骨肌萎缩症(Charcot-Marie-Tooth, CMT) 引起的牙齿疾病问题,Al-Kheraif等人(2018)构建基于SNN的CMT识别模型,采用牙齿图像并归一化处理,应用基于细菌觅食优化算法的SNN模型识别该疾病。
2)脉冲神经网络缺陷导致其在神经形态硬件系统的部署和训练较为困难,针对此问题,Schuman等人(2020)提出神经形态硬件系统的进化优化(evolutionary optimization for neuromorphic systems,EONS)方法,该方法在硬件约束下训练SNN,充分发挥了SNN的计算潜能。
3)Lin等人(2018)提出SNN的相对排序学习 (ROL)方法。ROL规则训练神经元发出第一个脉冲以响应相关刺激,不受指定精确触发时间的限制,ROL规则可以动态自适应地调整输出脉冲以适应输入特征。
4)生物突触可塑性STDP来源于费曼机器学习理论,Cho(2021)根据费曼路径积分形式主义原理(费曼路径积分形式表示点火动力学,形式主义表示神经网络的自由能原理)构建了基于路径积分形式和自由能原理的网络模型,描述生物神经网络中放电动力学。
5)Vu等人(2019)提出基于最短路径K均值的多组播路由算法 (shortest path K-means-based multicast routing algorithm, SP-KMCR),该路由算法结合最短路径K-means 聚类方法和基于树的多组播机制的优点,具有低延迟、高吞吐量和低功耗特点,适用于大规模嵌入式SNN芯片实现。
6)Abusnaina等人(2019)提出增强型贻贝游动优化(E-MWO) 算法,该算法能够调整和进化突触延迟,在训练SNN过程中无需调整连接权重,整体训练较好收敛且时间缩短。
7)针对稀疏脉冲活动导致的训练性能下降问题,Kim和Panda(2021)提出脉冲激活提升训练算法(spike activation lift training, SALT),该算法采用分层顺序优化,通过优化卷积层中的权重和阈值来增加所有层脉冲活动,有助于网络中跨层的信息传递。
结合其他算法的训练方法主要有GoogLeNet/VGG-16+SNN、遗传交叉算法+SNN、SRNN、MobileNetv2+SNN、投票竞争机制+SNN、SNN+强化学习和置换对频率矩阵。具体如下:
2)Orlosky和Grabowski (2021)研究了脉冲神经网络的自动进化领域,将遗传交叉算法应用于脉冲神经元,并比较了遗传交叉算法与随机突变算法在食物觅食和图像分类两种任务的影响。
3)Yin等人(2020)提出自适应脉冲递归神经网络(spiking recurrent neural network, SRNN),通过设计多时间尺度的自适应脉冲神经元,采用替代梯度和时间反向传播方法克服脉冲网络在反向传播中梯度不连续的问题,达到与RNN相同的效果。
5)庄祖江等人(2020)利用STDP学习算法构建脉冲神经网络,对分类层采用投票竞争机制,优化了网络结构,提高了图像分类的性能。
6)张耀中等人(2019)设计了脉冲转换的脉冲神经元,引入奖励或误差信号改进脉冲时间依赖可塑性规则, 构建了基于SNN和强化学习的网络结构,以提高网络的学习效率。
7)Mohanty等人(2020)针对鸟类物种的声波分类任务,使用置换对频率矩阵 (permutation pair frequency matrix,PPFM) 的脉冲神经网络分类, 该方法在提高准确率的同时减少计算时间。
ANN受生物大脑启发,但与真正大脑相比,其在生物系统的高度抽象(Tavanaei等,2019)方面和在捕捉生物神经元处理复杂系统时序动态特性方面均存在不足,并且在数据采集方式、结构、学习算法和学习规则方面与人脑存在根本差异,进而导致近年来深度学习发展出现瓶颈。而类脑计算事件驱动的特性可以较好地降低运行功耗;SNN的算法理论具有良好的生物可解释性;时域维度的信息更具有计算能力。另一方面,传统的基于帧的静态数据已逐渐无法满足SNN应用需求,且SNN在编码的静态数据上信息表达能力较弱,不利于SNN模型学习和推理。而具有时序特征、异步处理、低功耗、数据冗余少和时延低特性的DVS(dynamic vision sensor)神经形态数据集与SNN较为契合,在光流估计、目标跟踪和动作识别等诸多领域具有广阔的前景;最后相对于传统的神经网络,其具有硬件实现相对容易的优势。但脉冲神经网络也存在如缺乏有效的训练算法,以及由于脉冲神经元模型过于复杂,计算量大,训练相对低效等问题。根据SNN监督学习和无监督学习的特性逐一介绍其发展与不足。
在监督学习中,深度学习需要大量带标签的训练样本,使用反向传播以监督学习的方式训练深层人工神经网络,取得良好效果。目前来说,SNN在准确性方面仍落后于ANN,但差距正在缩小,在某些任务上达到了与ANN相同的效果,且操作更少、能耗更低。在SNN中,监督学习通过最小化期望与输出脉冲序列中的误差进行梯度下降的权重调整,然后通过增量更新规则调整所有突触权重。由于脉冲神经元是非线性的、不连续的脉冲信号,神经元的内部状态变量以及实际输出脉冲序列与期望输出脉冲序列之间的误差函数不再满足连续可微性的性质,导致其传递函数通常是不可微的,从而阻止了反向传播。Wu等人(2018)提出了一种SNN 的时空反向传播训练框架,该框架在训练阶段结合了空间域和时间域,采用脉冲活动的近似导数用于梯度下降训练。Neftci等人(2019)提出一种替代梯度的方法,实现与深度神经网络的梯度下降法类似的监督学习训练方法,脉冲神经元非线性的导数由截断二次函数的导数近似,从而产生一个ReLU函数作为代理导数,实现在脉冲神经元的可微性。
仿生无监督学习机制(富嘉育, 2020)在学习过程中并不需要按照期望的输出调节权值,根据所输入的刺激激励信息调整相应的权重值,在类脑计算领域无监督算法以赫布规则和STDP算法为理论核心,进而演化出多种学习算法,该方式与生物神经元的信息传递方式较为契合,然而,传统STDP学习规则在计算单个突触变化时,需要测量和存储突触的全部群体活动状态,计算量较大且计算困难,进而导致无法构建大规模深层次的网络模型;另一方面,由于目前研究对人脑复杂动力学机制尚未明确,对人脑神经元突触连接研究整体仍处于粗浅水平,该方向也是未来重点研究方向。
受大脑层次化结构和神经突触框架启发的人工神经网络为人类迈入智能化时代提供了关键支撑。类脑计算借鉴人脑信息处理方式,具有强大的时空处理能力和较好的生物可解释性。深度学习对复杂的脑信息(如脑电波(electroencephalography, EEG)、功能性磁共振成像(functional magnetic resonance imaging, fMRI))等信息的处理效果并不理想,脉冲神经网络在处理脑信息方面具有天然的优势。
1)研究大脑海马区域神经元类型能促进对大脑高级认知行为的理解。Sutton和Ascoli(2021)构建了基于人脑海马区功能的脉冲神经网络模拟的在线知识库。概述了海马体形成的理论、学习和记忆;并提供一个交互式平台,可用于调查海马功能的脉冲神经网络模型。
2) Doborjeh等人(2021)利用纵向MRI数据特征,构建SNN个性化预测系统,以准确检测、理解和预测个体功能性大脑状态,该类模型得到更精确的预测结果。
3)生物大脑在外界刺激下具有很强的鲁棒性。从大脑的结构特点和信息处理过程两方面出发,研究具有自适应容错能力的类脑网络对于脑科学研究和工程应用的发展具有重要意义,Guo等人(2021)构建了小世界拓扑的SNN和无标度拓扑的SNN模型,对于针对性攻击,小世界拓扑结构的SNN在高度针对性攻击下的抗损伤能力优于无标度拓扑结构的SNN。
4) Tan等人(2021)提出基于时空 EEG 模式下脉冲神经网络建模的短期情绪识别框架。采用面部标志的变化检测 EEG 信号,通过分割策略进行短期情绪表征,采用3D-SNN模块训练EEG脉冲特征获得情感分类精度,有助于了解与人类情绪相关的大脑神经信号的处理过程。
5) Virgilio等人(2020)提出基于EEG信号的SNN识别运动图像任务,该模型采用5种运动EEG信号,特征提取采用功率谱密度和小波分解方法,并比较具有恒定值的输入特征和具有时间信息的输入特征。实验表明,使用较少数量的具有时间信息的脉冲神经元,可获得更好的结果。
生物系统行为的仿生是了解生物和构成生物的神经网络如何工作的主要步骤。Fernández等人(2021)开发类似于反射弧中的预设结构的脉冲神经网络,以实现人类手臂控制算法。通过SNN模拟运动控制中枢神经系统的运动行为,达到控制手臂位置的目的,可再现反射弧的固定结构。Yao等人(2019)设计了基于空间导航任务的SNN控制机器人平台,机器人能够执行觅食和规避风险的任务。Getty等人(2020)探索采用运动学数据模拟机器人辅助微创手术的方法,改善患者治疗效果,通过模拟稀疏运动特征构建神经形态模型,在Nengo模拟框架上进行训练,且保持较高的准确性。
本文首先介绍脉冲神经网络的基本原理,然后在网络结构和学习算法两大方面阐述研究进展。并归纳脉冲神经网络的缺陷与发展,最后总结SNN在类脑计算和仿生计算的应用,对其研究具有积极意义。
目前,以深度学习为代表的第2代神经网络对大脑互连结构和生物信息表征的模拟极其不足,2维固化的结构和数据驱动的方式虽然在训练中具有便捷性,促进了目前深度学习的快速发展,但是也成为其发展的瓶颈。因此,基于事件驱动和脉冲化信息表征方式的脉冲神经网络具有较大的发展前景(黄铁军 等,2019),在此基础上,形成“小节点大网络”的层次化网络模型与网络结构,以超大规模神经元网络拓扑结构和连接强度进行信息记忆,并实现存算一体,将有可能实现强人工智能。