脉冲神经网络研究进展综述——论文摘抄

 

0 引言

  神经网络被认为是当前人工智能发展的主要驱动力,其经历了几个发展阶段。第1个阶段是感知机。1958年;美国神经学家Rosenblatt提出了可以模拟人类感知能力的机器,并称之为"感知机",随后成功地在IBM704机上完成了感知机的仿真,并于1960年基于感知机实现了能够识别一些英文字母的神经计算机。第2个阶段是基于联结主义的多层人工神经网络(artificial neural network, ANN),其兴起于20世纪80年代中期,并在2006年以后以深度卷积网络引领了近十几年人工智能的发展。然而,ANN在生物学上是不精确的,缺少神经内部的动力学机制,不能较准确地模仿生物大脑神经元的运作机制。近年来,起源于脑科学的脉冲神经网络(spiking neural network, SNN)被誉为新一代的神经网络,以其丰富的时空领域的神经动力学特性、多样的编码机制、事件驱动的优势引起了学者的关注。与此同时,脉冲神经网络的发展使得当前以脑科学成果为基础和启发,以"人工通用智能"(图1)以及高效终(云)端智能解决方案为目标的一种新型计算范式——类脑计算(brain-inspired computing, BIC)[7]呈星火燎原之势。

  2014~2020年是国内外类脑计算与人工智能系统发展大爆炸的几年:谷歌旗下人工智能公司DeepMind在Nature期刊连续报道了诸多成果;Science报道了以IBM TrueNorth为代表实现脉冲神经网络的神经形态芯片以及海德堡大学的SpiNNaker 芯片与英特尔Loihi芯片。这些研究已经慢慢模糊了类脑计算与人工智能的严格分界线,促进了人工智能、神经形态系统和类脑计算领域的深入交叉、相互借鉴、扬长避短,共同促进智能系统的长足发展。2019年,清华大学研制的ANN/SNN异构融合天机芯登上Nature封面,指出计算机科学导向的深度学习和神经科学导向的脉冲神经网络的交叉融合将是人工通用智能的发展方向。

  DeepMind在Nature期刊连续报道了诸多成果;Science报道了以IBM TrueNorth为代表实现脉冲神经网络的神经形态芯片以及海德堡大学的SpiNNaker芯片与英特尔Loihi芯片。2019年,清华大学研制的ANN/SNN异构融合天机芯登上Nature封面,指出计算机科学导向的深度学习和神经科学导向的脉冲神经网络的交叉融合将是人工通用智能的发展方向。

  当前,丰富的任务和数据集、友好的编程工具(如TensorFlow和Pytorch)、以误差反向传播(backpropagation, BP)为代表的训练算法以及高效的训练平台(GPU)共同推进了ANN在各个深度学习领域的繁荣(如计算机视觉和自然语言处理),也推进了支持ANN的各种深度学习加速器的研究,如:中国科学院计算所的"寒武纪"系列芯片、Google公司的TPU芯片、清华大学的Thinker芯片以及美国麻省理工学院Eyeriss芯片等。与ANN领域的繁荣相比,SNN领域的研究仍然处于快速发展的早期阶段。当前,SNN领域的研究主要围绕神经元模型、训练算法、编程框架、数据集以及硬件芯片加速五大方向进行。

1)神经元模型

  寻找兼具高生物可实现性、良好的网络学习能力以及超大规模集成电路构建能力的神经元模型是目前需要研究的问题。

2)训练算法

  尽管训练算法众多,当前SNN在超大超深层的网络训练算法上,仍然面临脉冲信号如何编码、梯度消失、训练资源开销大甚至算法收敛性的问题。因此,研究超大超深层SNN网络的编码方式和匹配的训练算法是需要研究的问题。

3)编程框架 

  但是在SNN领域,目前仅有BindsNET、Spyketorch等少数平台可以支持大规模SNN的构建与训练。搭建一个大的SNN网络仍需要编程者具有非常良好的编程功底。因此,开发用户友好的编程工具以有效地部署大规模SNN对该领域的发展至关重要。

4)数据集

  而适合SNN的数据集由时空事件流构成,目前仅有Neuromorphic-MNIST、N-Caltech101、DVS-CIFAR10、DVS-Gesture等比较小的数据集。发展更大规模且更加契合SNN时空处理能力的数据集将成为SNN发展的驱动力之一。

5)硬件芯片加速

  在硬件芯片加速方向, 正因为SNN在硬件电路上具有超低能耗实现的优势, 最近10年以曼彻斯特大学的SpiNNaker芯片、美国斯坦福大学Neurogrid芯片、IBM TrueNorth芯片、英特尔Loihi芯片、浙江大学达尔文芯片为代表,支持SNN硬件实现的神经形态芯片异军突起。2019年,清华大学研制出的ANN/SNN异构融合类脑天机芯片更是能够同时支持以MLP、CNN和LSTM为代表的深度学习常用ANN和从计算神经科学发展而来的SNN。未来可能基于新型神经形态器件的发展成熟以及现有优势技术的交叉融合这两个方向,进一步探索以超低功耗模拟人脑的复杂计算系统的构建。

  综上所述,SNN基于神经动力学的事件驱动机制在高效处理复杂、稀疏和嘈杂的时空信息方面取得了卓越的性能。事件驱动的通信在启用具有内存计算功能的高能效AI系统方面特别有吸引力,该系统将在普遍存在的智能领域中发挥重要作用。当前,SNN的研究仍在进行中,其神经元模型、训练算法、基准框架、编程工具和高效的硬件有望取得更大的进步。但是,由于相关的论文很多,出版速度极快,报道的方法大相径庭且缺乏系统的梳理,极大地妨碍了初学者获得正确的视野并以正确的方式入门。因此,本文希望通过对SNN领域的各个重点方向、发展的机遇和挑战进行全面系统的介绍梳理和分析比较,吸引不同学科的研究者,通过跨学科的思想交流和合作研究,推动SNN领域的快速发展。

 

1 脉冲神经网络的基本要素与生物学背景

  在本节中,将介绍脉冲神经网络的基本要素及其相关的生物学背景,包括作为基本处理单元的神经元模型、作为学习与记忆基础的突触可塑性理论、神经元通信中脉冲序列的编码方式以及网络层面上各基本层的拓扑结构。以上几种要素共同构成了脉冲神经网络,并使其拥有区别于人工神经网络的特质。

 

1.1 神经元模型

  神经元的典型结构主要包括树突(dendrite)、胞体(soma) 以及轴突(axon) 三个部分。其中:树突的功能是收集来自其他神经元的输入信号并将其传递给胞体;胞体起到中央处理器的作用,当接受的传入电流积累导致神经元膜电位超过一定阈值时产生神经脉冲(即动作电位);脉冲沿轴突无衰减地传播并通过位于轴突末端的突触(synapse)结构将信号传递给下一个神经元。

1)Hodgkin-Huxley 模型

2)LIF 模型

3)Izhikevich模型

4)SRM模型

5)ANN神经元模型

 

1.2 突触可塑性的生物学基础

  赫布学习与STDP规则成功揭示了突触结构内权重的修改过程,但它们不足以解释突触个体的改变如何协调以实现神经系统的整体目标。学习不能是短视、盲目的,因此如果要理解大脑的学习,则需要进一步揭示在整个网络中协调可塑性的原则。神经调质(neuromodulator)作为突触可塑性中除了前后神经元活动外的第3种影响因素,它的一系列发现丰富了原有的赫布规则。目前,人们已经知晓一些神经调质与奖励信号之间存在密切的联系,例如多巴胺神经元能够预估、检测奖励并相应地发出报警或激励信号,乙酰胆碱与去甲肾上腺素在处理新奇事物时分泌会有所增加。实验也证实了这些神经调质能够调整它们所到之处的突触可塑性,作用形式可能是作为使能的门控信号,或是对于STDP窗口的形状和极性进行调整,同时多种神经调质在组合下也可发挥不同的作用,这为在大脑不同区域实现各异的神经元可塑性提供了生理基础。

  总体来看,神经调质作为突触前后神经元活动外的第3种影响因素存在,可将其描述为:

其中:M表示神经调质的影响,pre表示突触前神经元的输出脉冲(序列),post表示突触后神经元的脉冲响应或电位响应,H表示突触活动在赫布规则下造成的预期影响或称为资格痕迹(eligibility trace)的可塑性变化暂态标记。

  赫布规则与STDP规则具有局部学习的特征,是脉冲神经网络模型中无监督算法模拟的重要对象,而神经调质的引入为微观上的突触结构变化与宏观上生物体适应性行为间建立了联系的桥梁,突触可塑性的变化因而具有了目的和方向。在整个神经网络功能优化的全局角度上,这样的三因子规则(three-factor learning rule)相较于原始赫布规则引入了监督性学习的特点,有力地推动了大脑深层网络的高效学习。

 

1.3 编码方式

  生物对周围环境的持续感知、对自身内部环境稳态的平衡调节以及感官刺激下的行为反应,最终都通过神经元短暂的脉冲序列实现信息的传递。尽管信号通过动作电位与突触结构在神经元之间传播,但信息以何种形式蕴藏在具有一定时空模式的脉冲序列中尚不明了,这也是神经编码(neural coding)这一领域期待解决的问题。

  目前较为常见的神经编码方式主要包括频率编码(rate coding)、时间编码(temporal coding)、bursting编码和群编码(population coding)等(见图3)。具体的脉冲在持续时间、振幅或形状上都可能有所不同,但在神经编码研究中,它们通常被视为相同的定型事件。

  频率编码主要考察脉冲发放率(firing rate),即神经元发放的脉冲数量在其所对应记录时间上的平均值。刺激的强弱程度可由神经元发放脉冲的频率反映,强烈的刺激将导致更为高频的脉冲序列,而序列内部存在的时间结构,例如内部脉冲间隔(interspike interval, ISI)不被考虑。频率编码被视为是对神经元输出的一种量化衡量,在脉冲神经网络的深度学习领域,特别是在经由训练好的ANN网络向SNN转换的相关工作中,可将脉冲发放率与ANN中连续的输出值等价,这使得频率编码得到了大量的使用。相对于频率编码,时间编码更加注重在时间结构上的差异,除了完整的脉冲时间模式(temporal pattern)之外,从接受刺激到发放首个脉冲的时间以及脉冲之间的时序逻辑都被认为存在编码重要信息的可能,其中前者被称为首个脉冲时间编码(time-to-first-spike coding),后者被称为排序编码(rank order coding)如图3(c)、图3(d)所示。频率编码的概念在早期被广泛接受,但一些研究表明,其忽略时间结构仅计算脉冲数量的方式不利于信息的高效率传输,相较于时间编码可能需要更长的记录时间或更多的神经元参与。

  Bursting是广泛存在于大脑中的一种神经元活动模式,指神经元在某段时间内密集、快速地激发脉冲,随后进入较长时间静息的行为。早期人们通常认为bursting包含多个脉冲仅仅是为了增加信息传递的可靠性,但2003年,Izhikevich等的发现揭示了突触后神经元存在的阈下膜电位共振现象,这导致不同神经元针对bursting频率产生特异性选择,并可能为神经元间进行选择性通信提供了有效的编码机制。

  与更多关注神经元个体的频率编码、时间编码等不同,群编码认为刺激产生的神经元信息是由多个神经元的联合活动表征的。其中较为著名的是由Georgopoulos等提出的群体向量模型(population vector model)。在该模型中,尽管灵长类大脑运动皮层中手臂区域的单个神经元仅对三维空间中的某一方向表现出特异反应,但实际的精确运动方向能够以各个神经元的活动强度为依据,对特异方向向量进行加权求和得到。稀疏编码是群编码中较为特殊的一种,强调信息仅由较大群体中共同活跃的小部分神经元表达,且神经元数量可能远远大于输入信息的维度。这种过完备(overcomplete)的表达方式具有记忆容量与能耗上的理论优势和哺乳动物大脑皮层的实验观测证据[84],其相关理念也在计算机视觉等机器学习领域得到广泛应用。

  当前对于神经编码的具体方案仍未盖棺定论,而实际上在大脑中采用不同编码的神经元群也可能同时存在并互相配合,从而为时间信息的充分感知提供神经基础。神经编码方案可能在不同情景和大脑的不同区域中表现不同,现有的编码方案则对其提供了不同角度的描述。相较于目前SNN中通常预设单一编码方案的受限情形,更为理想、通用的SNN应能支持不同编码的混合运用,并灵活地借助不同编码的各自优势取得在任务表现、时延与功耗上的进一步优化。

 

1.4 拓扑结构

  在灵长类动物中,腹侧视觉通路(ventral visual pathway)被认为是涉及对象视觉识别的大脑区域。前期区域(如V1区)的神经元对视网膜图像相对简单的局部空间特征作出反应,而后期区域(如V4区和下颞叶皮层)对更大的视觉区域上更为复杂的特征作出反应。沿着腹侧视觉通路前进,神经元逐渐以更为鲁棒的方式来表征视觉物体,而不受限于确定视角与光照条件下的固定外观。目前,先进的人工神经网络就是受到人脑层级启发的深度结构,使用多层结构对潜在特征进行提取与表征。

 

2 神经形态数据集

  由于脉冲神经网络的研究落后于ANN,发展适合于脉冲神经网络的数据集是未来的发展方向。其中,受神经形态视觉传感器成像机制启发所产生的数据集被认为是目前最适合脉冲神经网络应用的一类数据集。

  神经形态视觉传感器是受生物视觉处理机制启发,捕捉视野中的光强变化并产生异步时间流的一类传感器。具有代表性的神经形态视觉传感器有动态视觉传感器(DVS)及动态主动成像传感器(DAVIS)等。该类传感器捕捉并记录视野中的变化信息,根据信息变化的方向不同(增加或减少),记录正负两种变化方向的脉冲串信息。此类动态传感器主要关注视野中的变化特征而自动忽略背景中静态无关的信息,这也使得该类传感器具有低延迟、异步、稀疏的相应特性,进而在诸多领域具有非常广阔的前景,例如光流估计、目标跟踪、动作识别等。受此启发所产生的数据集被称为神经形态数据集,数据一般由四维向量组成(x, y, t, p)。其中:(x, y)记录成像的拓扑坐标, t 记录脉冲产生的时间信息(精确到μs), p记录脉冲的极性(由正或负方向生成)。

  神经形态数据集的以下特征使其适合用于脉冲神经网络的基准测试:1)脉冲神经网络可以自然地处理异步、事件驱动信息,使其与神经形态数据集的数据特征非常契合;2)神经形态数据集中内嵌的时序特征(比如精确的发放时间及帧之间的时序相关性)为展现脉冲神经元利用时空动力学特征处理信息的能力提供了很好的平台。

  按照数据集构建方式的不同,目前神经形态数据集可分为以下3类。

  第1类是实地场景采集而得的数据集,其主要通过神经形态传感器直接捕捉而生成无标签的数据。这类数据集生成简单,贴近实际应用场景,例如可用于追踪和检测的数据集(见图5)、用于光流估计的神经形态数据集、用于3D场景重构的数据集、用于手势识别的数据集等。得益于神经形态视觉传感器快速、高动态频率的特性,这类数据集对发展特定神经形态传感器的应用有着重要帮助。

  第2类数据集是转换数据集,它主要由带标签的静态图像数据集通过神经形态传感器实拍生成。不同于第1类直接对实际场景采集而成的数据集,此类数据集主要由已被广泛研究的、用于传统非脉冲任务的数据集转换得到(见图6),如N-MNIST、CIFAR10-DVS。为了生成此类数据集,研究者一般先固定一张静态的图片(如一张打印好的手写数字体图案),再用动态传感器沿指定方向平移产生相应数据的脉冲事件流版本。由于转换原始图片的特征及标签是已知的,使得研究者可以较为轻松地得到该类数据集的标签信息。转换数据集与原始广泛采用的数据集具有一定的特征相似性,此类转换数据集更易于使用和易于评估,因此,这类转换数据集也是目前脉冲神经网络领域使用最为广泛的数据集。

  第3类是生成数据集,它主要利用带标签数据,通过算法模拟动态视觉传感器特性,进而生成得到。由于动态传感器主要捕捉视频流中的动态信息,这一过程可以间接地利用相邻帧的差分等信息得到。因此,第3类数据集直接从已有的视频流(或者图片)信息中,通过特定的差分算法或基于相邻帧的生成算法,生成神经形态数据集的版本。如Yang等训练一个用于数据生成的卷积神经网络,通过输入相邻帧和目标精确时刻的信息,生成脉冲事件流版本的特定帧信息。这一做法可以避免数据采集所需要的大量工程实验,可以快速地生成研究所需要的含标签的特定场景信息。然而,由于传统视频流帧数有限,模拟得到的数据集帧数无法达到实际生成的数据集要求,同时也无法高分辨地模拟数据的事件驱动特性。

  尽管上述3类数据集的研究仍在持续发展中,但这3类数据集存在各自的局限性。例如,由于使用者对第1类数据集的预处理方式不统一(时间分辨率、图片压缩尺度等),所报道的结果目前很难被公平地比较;第2、第3类数据集主要是由原始数据二次转换生成,其数据很难表达丰富的时序信息,因此,无法充分利用脉冲神经网络的时空处理特性等。可以说目前对神经形态数据集的研究还尚在起步阶段,脉冲神经网络领域仍缺乏公认的、基准性的测试集。因此,发展规模更大、功能更契合(利用脉冲神经元时空处理能力和数据事件驱动特性)的数据集是今后的一大发展方向。

 

3 脉冲神经网络学习算法

  相比之下,当前脉冲神经网络领域尚不存在公认的核心训练算法与技术。在生物合理性与任务表现间存在不同的侧重度,以及网络采用的神经元模型和编码方式各异,均造成了训练算法的多样化。依据训练过程中是否使用标签信息,可以将其概括性地划分为无监督学习与有监督学习两类。其中:无监督学习主要包括基于第1.2节中Hebb与STDP两种突触可塑性规则的仿生学习算法;有监督学习则可以进一步划分为初期有监督学习算法和深度有监督学习算法。有监督学习面临的主要困难在于BP算法在脉冲神经网络中的应用,它的不应症主要来源于两个方面。一方面,BP算法自身缺乏生物合理性,突触信息传递的方向性使得前向传递和可能存在的反馈路径在生理上是分离的,而目前并不存在已知的方式来协调二者以实现反向传播中对前传权重的获取,这被称为weight transport问题;另一方面,脉冲神经网络中传递的信号为不可微的离散二值信号,脉冲形式的激活函数给基于梯度的优化算法的直接应用造成了困难。因此在21世纪初期,适应脉冲形式计算的有监督算法得到了广泛研究并发展得相当丰富。随后,以2012年作为一个标志性的分水岭,该年AlexNet在大规模视觉识别挑战赛ILSVRC中拔得头筹,使得深度学习方法在传统机器学习领域脱颖而出。脉冲神经网络的发展亦受到深度学习思想的影响,在训练算法、网络规模以及应用场景的追求上都与前期产生了一定的差异。

  脉冲神经网络学习算法概览如图7所示。

 

3.1 仿生无监督学习方法

 

3.2 初期有监督学习算法

 

3.3 深度有监督脉冲神经网络

  本节集中讨论具有深度脉冲神经网络实现能力的有监督学习算法,主要包含以转换SNN为代表的间接监督性学习算法和以时空反向传播为代表的直接监督性算法.。其中"间接监督性"体现在有监督信号仅在向SNN转换前的原始模型中进行训练这一点上,直接监督性学习则指在SNN结构中直接适用的有监督学习算法。

  转换SNN(ANN-converted SNN)是在神经形态硬件崭露头角后,为了在已发展出的深度学习成果上进一步利用事件驱动特性的低能耗优势,从ANN的视角出发为SNN的训练提供的一种替代做法。转换SNN的基本理念是在使用ReLU函数的ANN网络中,连续的激活函数值可以由SNN中频率编码下的平均脉冲发放率近似,在完成原始ANN训练后,再通过特定手段将其转换为SNN。实质上,转换SNN的训练依赖的仍是在ANN中进行的反向传播算法,因此它避免了对SNN进行直接训练所面临的困难。就性能表现而言,转换SNN保持着与ANN发展进程最小的差距,并具有在大规模的网络结构与数据集上实现的能力,例如Rueckauer等实现了SNN中的VGG-16与GoogLeNet模型;Sengupta报告了VGG-16模型以0.56%的转换精度损失在完整ImageNet数据集得到69.96%准确率;Hu等更是使用ResNet-50的深层结构取得72.75%准确率的分类成果。

  为方便转换,多数工作对原始的ANN模型作出了一定的约束,例如将偏置限制为零、无法使用批归一化方法、必须采用平均池化(average pooling)而非最大池化(max pooling)等。这会造成原始模型性能的部分下降。Rueckauer等针对以上约束讨论了适合SNN结构的实现方式,但这也使得转换后SNN的调整复杂化并潜在地造成更大的性能损失。此外,在转换方法中格外关键的一点是增加IF神经元的阈值项后,需要对阈值和权重进行重新平衡。过低的阈值使得神经元易于激发而丧失特异性,反之则会使得脉冲较难激发,深层网络的仿真步数大幅增加。

  2019年Severa等提出了一种称为"磨刀石"(whetstone)的新颖SNN转换方式:在ANN网络中采用有界ReLU函数作为激活函数,在完成最初网络训练之后,逐层地进行有界ReLU函数向阶跃函数的渐进式转换,并在观察到一定性能下降时重启对网络的训练,完整训练流程结束后即可得到对应的SNN网络。相比于针对完整网络进行单次转换,这种渐进的方式能够减缓转换带来的性能损失,但目前该方法得到的SNN仅使用单步仿真时长,在性能表现上相对不佳,且SNN本身在时域上可能的动态特性以及处理能力无法得到进一步的发掘与利用。

  整体而言,转换SNN可以较为快速地将ANN领域的突破转化应用至SNN领域,但这种方法也有其内在的局限性。除了对原始ANN施加约束造成的性能下降外,转换SNN完成一次前向推理通常需要几百至几千时间步的长时间模拟,与SNN直接训练算法差距颇大,这导致了与原始目的相悖的额外延迟和能耗。近期也有工作尝试结合转换SNN与直接训练算法,将转换SNN作为一种权重初始化手段并接受直接算法的后续训练,以期得到低时间步下的高性能表现。除此之外,令人遗憾的一点是转换SNN的视野大多专注于发展新结构的转换方法和缩小与ANN之间的性能差异,而不在于对SNN特质的探究,对SNN发展的直接推动较为有限。

  近年来,由于误差反向传播算法在深度神经网络中获得了广泛的成功,不少工作也开始重新考虑将其用于SNN端对端直接训练的可能性,而且在解决第3节之初提及的BP算法不应症上亦取得了一些进展。关于weight transport问题,Lillicrap等与Baldi等发现,反向连接对前传权重的精确获取,对于BP算法的有效实施可能并非不可或缺,通过将误差信号乘以随机权重实行的RBP (random backpropagation)并不会显著地影响学习表现。这对于误差信号在大脑中可能的利用形式提出了新的见解,适应脉冲形式的RBP也见诸报道。另一个在BP过程中突出面临的问题仍是脉冲函数可导性质的缺乏,目前较为常见的解决方案是采用与之相近的连续函数对脉冲函数或其导数进行替代,进而产生基于脉冲的反向传播算法(spike-based BP),相关综述可见Neftci等的工作。在具体函数形式选择与算法实现上,直接训练算法表现得较为多样化。例如:在Lee等的工作中,梯度求导主要围绕膜电势展开,脉冲输入采用低通滤波下的形式对膜电势产生连续影响,而膜电势存在的突变被视为噪声忽略处理;Jin等提出了HM2-BP算法(hybrid macro/micro level backpropagation),将SNN中的误差反向传播解构为微观上脉冲序列引起的突触后电位改变,以及宏观上由频率编码定义的损失函数反向传播这两个过程;S4NN方法采用首个脉冲时间编码,通过近似误差梯度得出了基于脉冲时延的BP算法,但网络内神经元受限仅能进行单次脉冲发放;Wu等基于近似脉冲函数导数的方式,提出了一种在SNN中兼顾空间域和时间域的反向传播算法STBP (spatio-temporal backpropagation, STBP),首先报道了在CIFAR-10数据集上实现高性能深层SNN直接训练的成果,随后的工作借助STBP进一步探索了SNN相较于ANN所具有的优势,在包含时空信息的数据流(例如N-MNIST与DVS-CIFAR10)处理上,SNN表现出以较低的计算开销获得比ANN更高任务性能的能力;Lee等将LIF神经元的导数处理为两个部分,首先采用不包含电位泄露特性的IF神经元的近似导数,再添加相应的泄露校正进行补偿,实现了在VGG以及ResNet等结构上对SNN的直接训练。

  应当指出的是,现有的直接训练算法在深层结构上的应用仍有待探索,与转换SNN或者ANN的发展现状之间依然存在一定的差距。这一方面是因为当前编程框架下SNN额外的时间维度将造成数倍于同规模ANN的训练显存需要,并且由于阈值激发特性与脉冲的稀疏性,当SNN趋于深层时可以预见的是仿真周期的延长,这将进一步提升对显存的需求;另一方面,深层网络训练的难点(例如梯度消失)在SNN结构中同样存在,而部分利于深度神经网络训练的技巧在SNN上进行简单移植时将破坏其保有的优势特征(例如批归一化手段可能造成SNN通信的脉冲形式无法得到保证)。这两点造成了深度训练算法的缺失,使得SNN无法在大规模数据集上获得足够令人信服的证据表现。因此未来一段时间内,高效深层SNN训练算法仍将是一块能够真正叩开深度学习社区大门的敲门砖。表1对SNN算法在不同数据集上的表现进行了总结。

 

3.4 其他脉冲神经网络学习算法

 

4 脉冲神经网络编程工具

  脉冲神经网络编程工具是用于帮助脉冲神经网络实现快速仿真、网络建模及学习训练的软件平台。由于研究目标以及实现手段的差异,现阶段存在多种脉冲神经网络编程平台(见表2)。不同的平台对脉冲神经元的生物特性的描述粒度、网络的功能支持及网络的模拟计算效率有很大差异。

  Neuron和Genesis是一类通用的用于模拟脉冲神经元及神经网络生物学特性的仿真平台。这类平台提供了用户友好的图像化接口及丰富的功能模块来实现高仿真特性的行为及神经元模型模拟,例如具有不同的形态学细节及功能的多房室神经元模型。此类平台主要基于C++语言并支持导入多种外接功能包以实现不同的任务需求。然而,目前此类平台主要支持同类型的大规模神经网络模拟,较难实现同时具有多类不同神经元的大规模网络模拟。

  Nest和Brian是一类高度灵活、可拓展的脉冲神经网络编程平台。它可以灵活地支持多房室的突触连接模型及多种不同类型的神经元模型(如LIF模型、Hodgkin-Huxley模型等),以及同时存在不同类神经元的大规模网络模拟。此外,此类平台还支持部分脉冲神经网络的仿生学习,例如Hebbian、STDP学习。该类平台支持将模拟结果写入文件,以便可以使用Matlab、Mathematica等工具交互,同时也支持利用多处理器和计算机群集来增加可用内存或加快仿真速度。

  NeuCube和Nengo是专注于脉冲神经网络高级行为模拟的编程平台。它们也可以很好地支持基于多种不同神经元所构建的大型神经网络,同时还支持对Matlab及Java等的交互,常被作为实现神经工程的基本框架以进行3D大脑脑区的功能及行为模拟。其中,Nengo是基于Python编写的开源项目,提供了TensorFlow等深度学习加速平台的接口,以提高仿真速度及提供部分机器学习方法的使用。

  BindsNet和Spyketorch是主要面向脉冲神经网络学习算法及应用的编程平台。该类平台为脉冲神经网络在仿生学习、监督学习以及强化学习任务中的构建提供便利。由于此类平台主要基于Pytorch/Tensorflow等深度学习加速平台编写而成,可直接利用其优化技术进行大规模加速模拟,同时也可以利用自动梯度求导机制对脉冲神经网络进行学习和训练。

 

5 神经形态计算平台

  神经形态的概念最早由加州理工学院的Mead提出,通过采用专用集成电路实现神经科学计算。本文中的神经形态计算平台主要指面向脉冲神经网络的专用处理平台,如图9所示。

  不同于传统的冯·诺依曼处理器架构,神经形态计算平台通常采用"计算核→芯片→系统"的可扩展架构,许多计算核和芯片同时工作,通过一个路由网络交换中间结果数据。整个系统通常没有统一的外部存储器,而是每个计算核有自己独立的存储空间,呈现去中心化的运行模式,从而具有极高的并行性和访存效率。每个计算核模拟一定数量神经元和所对应突触的功能行为,主要由几大部分组成:轴突输入缓存、突触权重存储、树突输入积分、胞体神经动力学、突触连接路由网络和突触学习更新。其中:轴突用于缓存当前时刻的神经元输出脉冲信息,作为下一时刻的输入;突触用于存储神经元之间的连接权重信息;树突对脉冲输入信息进行加权积分;胞体负责更新神经元状态(如膜电位等)并决定是否发放脉冲;路由网络的存在主要是由于一个计算核和芯片不可能放下所有的神经元并实现物理直连,需要在每个计算核中加入路由单元以实现神经元发放数据的传递,这种数据搬运可能在核内。也可能在核间甚至芯片间;突触学习更新主要用于改变突触连接权重从而改变网络功能,完成学习过程,该模块根据场景需求进行取舍以及根据学习规则进行特殊设计。

  现有的神经形态计算平台,从功能上可以按照是否支持学习功能分为离线学习平台和在线学习平台,而从电路技术上则可以分为数模混合电路平台和全数字电路平台。按照此分类,图10展示了现有主要的神经形态计算平台。

 

5.1 离线学习神经形态计算平台

  这里的离线学习是指脉冲神经网络的参数(如权重) 已提前训练完毕, 只需将模型部署至神经形态计算平台而在之后的运行过程中参数不再更新. 因此,离线学习神经形态计算平台实际上只支持脉冲神经网络的推理过程,而不支持产生模型参数的训练过程. 接下来, 将对基于数模混合电路和基于全数字电路的离线学习神经形态计算平台进行详细介绍.

 

5.1.1 数模混合电路

  从20世纪末至21世纪初,开始出现基于模拟电路技术的视网膜、耳蜗与神经元等早期神经形态研究工作,为后来出现的基于模拟电路技术的神经形态计算平台奠定了基础。由于路由网络部分存在跨核和跨芯片的长程数据传输,难以用模拟电路精确完成,即便计算核主要采用模拟电路技术完成,路由网络仍会采用数字电路技术,总体呈现数模混合的架构特点。传统基于数模混合电路的离线学习神经形态计算平台的典型代表是美国斯坦福大学的Neurogrid和瑞士苏黎世大学的DYNAPs,如图11所示。

 

5.1.2 全数字电路

 

5.2 在线学习神经形态计算平台

  与离线学习神经形态计算平台不同,在线学习神经形态计算平台在脉冲神经网络模型运行过程中支持参数的更新;而与离线学习神经形态计算类似的是,在线学习神经形态计算平台也包括基于数模混合电路和基于全数字电路两大类。

 

5.2.1 数模混合电路

 

5.2.2 全数字电路

 

6 总结与展望

  大脑始终是人工智能的指向标与目的地。此篇综述的目的是让读者能够全面了解在脉冲神经网络领域中围绕神经元模型、训练算法、编程框架、数据集以及硬件芯片五大方面已经取得的历史成果以及未来可能的发展方向,并期待通过跨学科的思想交流与合作研究,加快迈向人工通用智能目标的步伐。

  在本篇综述中,首先介绍了脉冲神经网络的构成要素及其生物学渊源。SNN对于神经元脉冲特征及相应动力学的保留构成了它与ANN的基本差异,面向不同目的的仿真研究能够有针对性地使用不同精细度的建模层次。脉冲序列是SNN中信息传递的载体,在其上神经元拥有丰富的编码方式。但是当前相当数量的SNN算法仅对频率编码给予关注,而这一编码方式无视于序列内部的时间结构,很可能无法发挥SNN在时域信息处理上的优势。因此,适应于高信息密度时间编码的算法设计是目前有待探索的方向。

  在算法部分,将现有的SNN训练算法划分为两个主要方向。以STDP为代表的仿生无监督算法较好地遵循了大脑中神经元连接的强度调整规律,能够通过局部学习有效地进行特征提取。有监督训练算法针对脉冲函数的不可导性质提出了不同的解决方案,主要通过Widrow-Hoff规则或近似BP算法两种方式实现。相较于无监督算法,它们在生物合理性上有所缺失,BP算法更是面临weight transport问题,但引入作为监督信号的标签信息使得在相同数据集上的表现得到提升并更加支持网络向深层结构进行扩展。现有的算法在生物合理性与性能表现、模型容量之间始终存在矛盾,对此,Tavanaei等提出了BP-STDP算法,希望获得兼具可塑性规则的生物合理性与梯度下降方法最优性训练能力的综合算法。但整体而言,BP-STDP并不具有STDP局部学习与时间依赖的特点,其内核仍是梯度下降方法。对生物合理性与性能表现、模型容量两方面的有机结合依然会是SNN算法领域不懈的追求目标。另外,相较深度学习发展现状而言,当前SNN在真正大规模的深层网络训练算法上仍有亟待填补的空白。例如STBP等直接训练算法在仿真周期、模型性能以及网络规模上综合表现较优,可能能够作为未来SNN训练算法持续发展的途径,但是,在深度神经网络训练中存在的梯度消失、资源开销大甚至算法不收敛等问题都有待于进一步确认与探讨。

  转换SNN是针对时新深度学习成果进行SNN转化的一种快捷方式,在网络性能上拥有接近原始ANN网络的表现,但较长的仿真周期以及原始模型的额外约束使其受到一定的掣肘。从模型压缩的角度而言,SNN化的过程也是一种针对激活值进行的极端量化,在ANN中存在二值网络(binary neural network, BNN)等具有相似理念的工作,而对于二者之间的联系与差异以及额外时间维度可能造成的影响,目前还没有较为明确的阐述。SNN神经元所具有的阈值发放特性可能使其对模型压缩算法具有更高的接受度,因此,与权重量化、剪枝等压缩算法的结合也有待探索,以使SNN计算效率优势得到进一步发扬与利用。

  在ANN的发展历程中,数据集与编程工具都是领域发展与社区建设中不可或缺的驱动力,然而,目前与SNN相配套的二者仍处于较为初级的发展阶段。在ANN领域的静态图片数据集上,SNN的表现通常不如ANN,但有研究表明一味地在该类数据集上以单标准衡量SNN是不明智的,在包含更多动态时间信息且天然具有脉冲信号形式的数据集中,SNN完全可以在性能以及计算开销上取得更优的成绩。通过神经形态视觉传感器获得的数据集是当下SNN数据集的主流,但并不排除可能有其他更合适的数据来源仍待探索。在图像识别任务之外,希望能够发展出面向多样化任务的时空事件流数据集,最终为SNN提供广泛且公允的测试对比基准,并进一步挖掘SNN的潜在优势与可能的应用场景。编程工具则极大地关系到领域准入门槛的有效降低以及大规模SNN工程的高效开发,为SNN的科学研究与工业部署提供实质性的支撑。

  神经形态硬件作为遭遇冯·诺依曼瓶颈与摩尔定律失效的情况下对传统数字电路的一种替代计算范式,成为研究热点已经有十余年的历史,并取得了丰硕的成果。通过从大脑的结构和功能中汲取灵感,神经形态硬件为SNN中基于脉冲事件驱动的计算提供了高效的解决方案,实现了大量并行和超低功耗等重要特性。本文认为,在神经形态器件自身进行架构创新、继续追求更高能效的基础上,针对现有硬件平台探索各种优势技术的结合,是另一个需要深入钻研的重要方向。这种交叉融合可能体现在多个角度,例如低精度忆阻器与高精度数字电路的混合精度计算、ANN与SNN两类范式异构融合提升总体性能、高效率低准确率的无监督局部学习与高准确率低效率的有监督全局学习相结合的全能训练平台等等。此外,也同样期待神经形态计算平台能够像GPU之于机器学习一样,为SNN的推理与训练提供灵活高效的加速支撑,进而促进对SNN模型的探索,催化新兴SNN算法的诞生。

posted on 2021-03-11 17:31  穷酸秀才大草包  阅读(4825)  评论(9编辑  收藏  举报

导航