原创

第三代神经网络---脉冲神经网络


1.研究背景

神经网络被认为是当前人工智能发展的主要驱动力,其经历了几个发展阶段:第一个阶段是感知机,1957年美国神经学家Frank Rosenblatt提出可以模拟人类感知能力的机器,并称之为“感知机”。第二个阶段是基于联结主义的多层人工神经网络(Artificial Neural Network, ANN),其兴起于二十世纪80年代中期,并在2006年以后以深度卷积网络引领了近十几年人工智能的发展。然而,ANN 在生物学上是不精确的,缺少神经内部的动力学机制,不能较准确地模仿生物大脑神经元的运作机制。近年来起源于脑科学的脉冲神经网络 (Spiking Neural Network, SNN) 被誉为新一代的神经网络,以其丰富的时空领域的神经动力学特性多样的编码机制事件驱动的优势引起了学者的关注。与此同时,脉冲神经网络的发展使得当前以脑科学成果为基础和启发,以“人工通用智能”、以及高效云端智能解决方案为目标的一种新型计算范式——类脑计算。

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

2.神经元模型

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

针对神经元工作时电位的动态特性,神经生理学家建立了许多模型,它们是构成脉冲神经网络的基本单元,决定了网络的基础动力学特性。其中影响较大的主要有H-H模型,LIF模型,Izhikevich模型和脉冲响应SRM模型等(下图为主要的神经元模型),这里我们主要讨论LIF神经元模型的特点。

avatar

2.1 传统神经元模型

ANN神经元模型保留了生物神经元多输入单输出的信息处理功能,但对其阈值特性以及动作电位机制作了进一步的抽象简化,其建模如下:

avatar

式中y表示第l层第i个神经元的输出,w表示第l-1层第j个神经元对于下一层第i个神经元的权重值,x表示第l-1层第j个神经元的值,φ表示非线性激活函数。传统神经元模型的本质就是本层的神经元值由上一层神经元加权求和后再经过非线性激活函数计算得到的。

2.2 LIF神经元模型

早在1907年Lapicque就提出了Integrate-and-fire(I&F) 模型,由于当时对动作电位的产生机理知之甚少,动作电位的过程被简化描述为:“当膜电位达到阈值Vth 时神经元将激发脉冲,而膜电位回落至静息值Vreset”模型则针对描述阈下电位的变化规律,其中最为简单且常见的是 LIF模型:

avatar

其中τm表示膜时间常数,Vrest表示静息电位,Rm表示细胞膜的阻抗,I表示输入电流。LIF模型极大简化了动作电位过程,但保留了实际神经元膜电位的泄露积累以及阈值激发这三个关键特征。在此基础上存在系列变体,例如二阶LIF模型、指数LIF模型、自适应指数LIF模型等,这些变体模型注重对神经元脉冲活动细节的描述,以一定的额外实现代价进一步补充增强了LIF模型的生物可信度。

2.3 LIF模型与传统神经元模型对比

相较于脉冲神经网络,ANN神经元使用高精度的连续激活函数值而非离散脉冲序列进行通信,舍弃了在时间域上的运算而仅保留了逐层计算的空间域结构。SNN虽然表达精度较低,但保有更为丰富的神经元动态,当前状态除了接受空间域中的输入外,还天然地受到过去历史时刻的影响,因此SNN可能具有更强的时空数据处理潜力。此外,由于阈值特性的存在,SNN的脉冲信号通常具有稀疏性,且计算由事件驱动,结合0/1的脉冲信号表达形式可以避免ANN中高昂的乘法计算代价,表现出超低功耗的特性。

2.4 生物可信度与实现代价

SNN神经元具有的脉冲通信方式与动力学特征构成了与当前ANN之间最基本的差异,并赋予其进行超低功耗计算与时序任务处理的潜力。在大规模神经网络的层面上,对单个神经元允许投入的算力较为有限,这使得H-H模型等使用多变量多组微分方程进行精确活动描述的复杂模型无法应用,简化模型进而加速在计算机中的模拟与仿真过程是不可或缺的。当前在脉冲神经网络中较为广泛地采用LIF模型,正是因为其简洁的数学表达保证了较低的实现代价,然而较早的提出年代限制了LIF模型对神经元的了解,致使它在生物可信度上有所欠缺。因此在保证大规模集成电路构建能力的基础上,寻找兼具良好学习能力与高生物可信度的神经元模型,仍然是目前需要研究的问题。

avatar

3.数据集

数据集的发展对推动神经网络技术进步提供了至关重要的作用。在传统人工神经网络领域,近些年图像、语音等领域数据集的不断扩充以及任务场景的复杂化,对ANN的模型性能提出了挑战,也在另一方面推动着ANN技术的发展,随着SNN的逐渐发展人们也渐渐提出了一种适合SNN处理的特殊数据集。

3.1 传统数据集

ANN领域有种类繁多的数据集,它们常常被用作各类模型训练效果的标杆,例如:MNIST、CIFAR-10、FASHION-MNIST、ImageNet等等。MNIST是由Yann提供的手写数字数据库文件,60000张的训练图像和10000张的测试图像(大小为28*28的灰度图像),手写数字可以称作是最老最经典的数据集之一,对于任何一个研究神经网络的人来说都亲身体验过这个数据集。

avatar

CIFAR-10是由Alex Krizhevsky等提供的数据集,包含10个类别,每个类别6000个图像,50000张训练图像和10000张测试图像(大小为32x32的彩色图像),相较于灰度图像而言,这种彩色图像更加贴近真实图像,其中包含了很多噪声信息,十分考验模型对数据的处理能力,优秀的训练算法往往会节省很多算力甚至可以滤去很多不重要的图像信息。

6.png

FASHION-MNIST是由肖涵提供的衣裤鞋包数据集,包含10各类别,训练数据集共60000个图像,测试数据集共10000个图像(大小为28x28的灰度图像),与之前的MNIST相比,尽管它也是灰度图像,但是图像中物体的形状更加复杂。

7.png

3.2 神经形态数据集

神经形态视觉传感器是受生物视觉处理机制启发,捕捉视野中的光强变化并产生异步时间流的一类传感器。具有代表性的神经形态视觉传感器有动态视觉传感器(DVS)及动态主动成像传感器(DAVIS)等。该类传感器捕捉并记录视野中的变化信息,并根据信息变化的方向不同(增加或减少),记录正负两种变化方向的脉冲串信息。此类动态传感器主要关注视野中的变化特征而自动忽略背景中静态无关的信息,这也使得该类传感器具有低延迟异步稀疏的相应特性,进而在诸多领域具有非常广阔的前景,例如光流估计、目标跟踪、动作识别等。受此启发所产生的数据集一般被称为神经形态数据集。其中的数据一般由四维向量组成 (x,y,t,p),其中(x,y)记录了成像的拓扑坐标,t记录了脉冲产生的时间信息(精确到微秒),p记录了脉冲的极性(由正或负方向生成)。 神经形态数据集的以下特征使其适合用于脉冲神经网络的基准测试。一方面,脉冲神经网络可以自然地处理异步、事件驱动信息,使其与神经形态数据集的数据特征非常切合;另外一方面,神经形态数据集中内嵌的时序特征为展现脉冲神经元利用时空动力学特征处理信息的能力提供了很好的平台。

3.3 神经形态数据集的分类

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

8.png

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

9.gif

第三类是算法生成数据集:它主要利用带标签数据,通过算法模拟动态视觉传感器特性,进而生成得到。在许多项目中,这一过程需要利用MATLAB来完成,官方提供了相对应的函数便于研究人员直接使用。由于动态传感器主要捕捉视频流中的动态信息,这一过程可以间接地利用相邻帧的差分等信息得到。因此,其中一类数据集是直接从已有的视频流(或者图片)信息中,通过特定的差分算法或基于相邻帧的生成算法生成神经形态数据集的版本。

3.4 三种类型的神经形态数据集的局限性

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

4.拓扑结构

4.1 传统神经网络的结构

目前,先进的人工神经网络就是受到人脑层级启发的深度结构,使用多层结构对潜在特征进行提取与表征。用于构建神经网络的基本层拓扑结构主要包括全连接层、循环层以及卷积层。它们对应形成的神经网络分别是多层感知机(MLP)、循环神经网络(RNN)和卷积神经网络(CNN)。RNN和MLP分别只包括具有或不具有层内循环连接的堆叠全连接层。与MLP和RNN中的一维特征不同,卷积层使得CNN 能够完成面向二维特征的处理。卷积层中的每个神经元只接收来自前一层特征映射 (Feature Map) 局部感受野 (Receptive Field) 的输入,并重复使用卷积核权重进行局部的二维卷积计算。CNN也使用池化层调整特征映射的尺寸,并使用全连接层构建最终的分类器。

10.gif

4.2 脉冲神经网络的结构

如下图所示,可见脉冲神经网络的基本拓扑结构,每个神经元可以看作有了独立的环路,在单神经元水平,传播被分解为垂直路径和水平路径。观察左下角的电压变化图象,可以发现电压在整个变化过程属于一个不断积累增加的过程,直到达到一个阈值Threshold时,便会恢复到最开始的电压值,在这整个过程中便产生了所谓的脉冲序列,将脉冲序列输入脉冲神经网络中,以便模型进行学习。

11.png

5.学习算法

人工神经网络的学习是以数据为基础,面向特定任务进行网络关键参数的调整与优化的过程。学习算法无疑在其中扮演着至关重要的角色。与误差反向传播相结合的梯度下降 (Gradient Descent)算法是目前人工神经网络优化理论的核心,其系列变体由随机梯度下降法SGD逐渐演进到 ADAM、AMSGrad等算法,在此之外例如:批归一化 (Batch Normalization,BN)与分布式训练等手段的加入使得大规模、高性能的人工神经网络得以实现,并广泛应用于人工智能领域的实际场景中。

相比之下,当前脉冲神经网络领域尚不存在公认的核心训练算法与技术。在生物合理性与任务表现间存在不同的侧重度,以及网络采用的神经元模型和编码方式各异造成了训练算法的多样化。依据训练过程中是否使用标签信息,可以将其概括性地划分为无监督学习有监督学习两类。其中无监督学习主要包括:Hebb与STDP两种突触可塑性规则的仿生学习算法,有监督学习则可以进一步划分为两个阶段:初期有监督学习算法、深度有监督学习算法。

5.1 有监督学习面临的困难

有监督学习面临的主要困难:一方面,BP算法自身缺乏生物合理性,突触信息传递的方向性使得前向传递和可能存在的反馈路径在生理上是分离的,而目前并不存在已知的方式来协调二者以实现反向传播中对前传权重的获取,这被称为Weight Transport问题。另一方面,脉冲神经网络中传递的信号为不可微的离散二值信号,脉冲形式的激活函数为基于梯度的优化算法的直接应用造成了困难。

5.2 深度有监督学习算法

深度脉冲神经网络有监督学习算法主要包含:转换SNN(为代表的间接监督)、时空反向传播STBP(为代表的直接监督)。“间监督性”:有监督信号仅在向SNN转换前的原始模型中进行训练这一点上,“直接监督性”:在SNN结构中直接适用的有监督学习算法。

5.3 转换SNN(间接性监督)

转换SNN:从ANN的视角出发为SNN的训练提供的一种替代做法。转换SNN的基本理念是在使用ReLU函数的ANN网络中,连续的激活函数值可以由SNN中频率编码下的平均脉冲发放率近似,在完成原始ANN训练后,再通过特定手段将其转换为SNN。实质上,转换SNN的训练依赖的仍是在ANN中进行的反向传播算法,因此它避免了对SNN进行直接训练所面临的困难。就性能表现而言,转换SNN保持着与ANN发展进程最小的差距,并具有在大规模的网络结构与数据集上实现的能力。

为方便转换,对原始的ANN模型作出了一定的约束,例如将偏置限制为零,无法使用批归一化方法,必须采用平均池化而非最大池化等。这会造成原始模型性能的部分下降,使得转换后SNN的调整复杂化并潜在地造成更大的性能损失。此外,在转换方法中格外关键的一点是增加I&F神经元的阈值项后,对于阈值和权重的重新平衡。过低的阈值使得神经元易于激发而丧失特异性,反之则会使得脉冲较难激发,深层网络的仿真步数大幅增加。整体而言,转换SNN可以较为快速地将ANN领域的突破转化应用至SNN领域,但这种方法也有其内在的局限性:除了对原始ANN施加约束造成的性能下降外,转换SNN完成一次前向推理通常需要几百至几千时间步的长时间模拟,与SNN直接训练算法差距颇大,这导致了与原始目的相悖的额外延迟和能耗。除此之外,令人遗憾的一点是转换SNN的视野大多专注于发展新结构的转换方法和缩小与ANN之间的性能差异,而不在于SNN特质的探究,对SNN发展的直接推动较为有限。

5.4 时空反传STBP(直接性监督)

时空反传STBP:一种针对SNN的直接监督学习方法,在训练阶段将空间域(SD)和时间域(TD)结合在一起。首先,建立具有SNN动力学的迭代LIF模型,该模型适用于梯度下降训练。在此基础上,在误差反向传播(BP)期间同时考虑了空间维和时间维,从而明显提高了网络精度,引入近似导数来解决峰值活动的不可微问题,系统分析了时间域动力学和不同方法对导数逼近的影响。在包含时空信息的数据流(例:N-MNIST与DVS-CIFAR10)处理上,SNN表现出以较低的计算开销获得比ANN更高任务性能的能力。

5.5 学习算法目前的不足

目前直接训练算法在深层结构上的应用仍有待探索,与转换SNN或是ANN的发展现状间依然存在一定的差距。这一方面是因为当前编程框架下SNN额外的时间维度将造成数倍于同规模ANN的训练显存需要,并且由于阈值激发特性与脉冲的稀疏性,当SNN趋于深层时可以预见的是仿真周期的延长,这将进一步提升对显存的需求。另一方面,深层网络训练的难点(例:梯度消失)在SNN结构中同样存在,而部分利于深度神经网络训练的技巧在SNN上做简单移植将破坏其保有的优势特征(例:批归一化手段可能造成SNN通信的脉冲形式无法得到保证),下图是当前研究领域应用各类学习算法的成绩记录。

12.png

6.脉冲神经网络编程工具

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

13.png

其中,BindsNetSpyketorch:主要面向脉冲神经网络学习算法及应用的编程平台。该类平台为脉冲神经网络在仿生学习,监督学习以及强化学习任务中的构建提供便利。由于此此类平台主要基于Pytorch/Tensorflow等深度学习加速平台编写而成,因此可直接利用其优化技术进行大规模加速模拟,同时也可以利用自动梯度求导机制便于对脉冲神经网络的学习及训练。NeuCubeNengo:专注于脉冲神经网络高级行为模拟的编程平台。它们也可以很好地支持基于多种不同神经元所构建的大型神经网络,同时支持对matlab/Java等的交互,常被作为实现神经工程的基本框架以进行3D大脑脑区的功能及行为模拟。其中Nengo是基于Python编写的开源项目,提供了 TensorFlow等深度学习加速平台的接口,以提高仿真速度及提供部分机器学习方法的使用。

网络资源

参考文献

[1] HU Y, Li G, Wu Y , Deng L. Spiking Neural Networks:A Survey on Recent Advances and New Directions.

[2] Lee, J. H.; Delbruck, T.; and Pfeiffer, M. 2016. Training deep spiking neural networks using backpropagation. Frontiers in Neuroscience 10.

[3] Sengupta, A.; Ye, Y.; Wang, R.; Liu, C.; and Roy, K. 2018. Going deeper in spiking neural networks: Vgg and residual architectures. arXiv preprint arXiv:1802.02627.

[4] Lee, C., Sarwar, S. S., and Roy, K. (2019a). Enabling spike-based backpropagation in state-of-the-art deep neural network architectures. arXiv [Preprint] arXiv:1903.06379.

[5] Wu, Y.; Deng, L.; Li, G.; Zhu, J.; and Shi, L. 2018. Spatio temporal backpropagation for training high-performance spiking neural networks. Frontiers in Neuroscience 12.

Python
深度学习
神经网络
  • 作者:李延松(联系作者)
  • 发表时间:2020-12-20 11:18
  • 版本声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 公众号转载:请在文末添加作者公众号二维码

评论

留言