基于脉冲神经网络的迁移学习算法与软件框架

2020-03-19 12:24尚瑛杰董丽亚
计算机工程 2020年3期
关键词:编码方式权值脉冲

尚瑛杰,董丽亚,何 虎

(清华大学 微电子与纳电子学系,北京 100084)

0 概述

脉冲神经网络(Spiking Neuron Network,SNN)被称为第三代人工神经网络,它在原理上更加接近生物神经网络[1],具有低计算量、低功耗和高维度等特点,是实现类脑计算和强人工智能的重要途径[2],近年来受到了越来越多的关注。但是,由于缺乏有效的学习算法,脉冲神经网络的研究还处在探索阶段。

目前,脉冲神经网络的学习算法主要有基于脉冲时间依赖型可塑性规则(Spike Timing Dependent Plasticity,STDP)的无监督学习算法、基于Widrow-Hoff推导的学习算法和基于反向传播的学习算法[3-5]。

STDP规则描述了脉冲神经网络中连接前后2个神经元之间的因果关系,可以实现权值的无监督训练,但基于STDP规则的学习,通常仅适用于网络的局部学习,在大规模网络中,存在计算量大和学习效率低等问题,需要结合其他规则进行使用[6-7]。其中,文献[8]采用STDP、侧抑制和内在可塑性等多种规则,优点是实现了脉冲神经网络的无监督训练,在MNIST测试集上的识别准确率为95%,缺点是算法规则复杂,不具备通用性,无法识别更为复杂的图片。

在基于Widrow-Hoff推导的学习算法中,最常用的是利用远程监督学习规则(Remote Supervised Method,ReSuMe)设计的算法[9-10]。文献[11]提出一种改进的ReSuMe算法,可以实现有效的监督式学习,提高了网络的局部学习精度。但是,这种学习算法对网络中间层监督信号的定义不明确,不适用于多层脉冲神经网络,因此,通常仅用于处理小规模网络,文中也未进行相关数据集识别实验。

基于反向传播的学习算法,也是目前脉冲神经网络领域中关注程度较高的一种算法[12]。它仿照传统反向传播算法的原理,利用数学技巧回避了离散脉冲序列无法求导的问题。文献[13]提出一种新的方法,将神经元的膜电位看作是可微信号,并将脉冲时间的不连续点看作是噪声,求导结果直接作用于脉冲信号和膜电位,该方法的优点在于成功地将反向传播算法应用到脉冲神经网络中,MNIST测试集上的识别准确率为98.66%,但其改变了脉冲神经网络工作机制,并且计算量大,仿真实施难度大。文献[14]将反向传播算法与STDP规则相结合,并使用差分操作代替微分操作,从而实现了脉冲神经网络的反向传播算法,在MNIST测试集上的识别准确率为97.20%,但该方法需要严格控制神经元的激活状态,保证它们每个仿真周期只发射一个脉冲,否则算法将失效。

脉冲神经网络是进行复杂时空信息处理的有效工具,但其学习算法存在计算量大、学习效率低、多层网络收敛困难和适用性弱等缺陷,导致脉冲神经网络无法大规模应用。然而,反向传播网络作为第二代神经网络,由于学习算法相对完善,已被广泛应用在人工智能领域。为此,本文设计一种迁移学习算法,将第二代神经网络的训练结果直接迁移到第三代神经网络中,以弥补脉冲神经网络学习算法的不足,发挥脉冲神经网络低功耗的优势。

1 脉冲神经网络和NEST模拟器

1.1 脉冲神经元模型

神经元是神经网络最基础的元素,而脉冲神经网络由于工作模式的不同,脉冲神经元模型也与传统的神经元模型有着明显的差别,其中最为常用的是泄漏积分放电模型(Leaky Integrate and Fire,LIF)[15-16],如图1所示。

图1 LIF模型和等效电路示意图Fig.1 Schematic diagram of LIF model and equivalent circuit

在LIF模型中,当输入端接收到脉冲信号时,其膜电位会不断升高,如果膜电位达到激发阈值,则会在输出端产生一个脉冲信号,同时将神经元膜电位重置;如果长时间没有输入脉冲信号或者输入脉冲信号较弱,LIF神经元的膜电位会缓慢降低至初始电位[17]。因此,LIF模型可以等效为一个带有偏置电压源的电阻-电容并联模型。

1.2 脉冲神经网络

脉冲神经网络在结构方面与反向传播网络类似,由脉冲神经元及其连接组成。但是脉冲神经网络的输入输出不是实数值,而是离散的脉冲信号,网络中信息的表达、传输和处理也都是基于脉冲序列进行的[18-19],如图2所示。

图2 脉冲神经网络模型Fig.2 Model of spiking neuron network

1.3 NEST模拟器

NEST是一款面向脉冲神经网络的开源模拟器,其提供了大量的神经元模型和突触模型,避免了繁琐的数学建模工作。同时,脉冲神经元模型的设计参考了生物学相关研究成果,具有很强的生物可解释性。本文基于NEST模拟器,使用Python编程,提供了快速搭建脉冲神经网络的软件环境。

2 迁移学习算法

迁移学习算法的整体步骤为:构建相同结构的反向传播网络和脉冲神经网络,利用反向传播网络成熟的算法和仿真环境对权值进行训练,然后通过权值映射关系将训练好的权值参数迁移到脉冲神经网络中。脉冲神经网络只完成推理工作,不涉及训练过程。

迁移学习算法包含反向传播网络训练算法、脉冲编码方式、自适应权值映射关系、脉冲神经网络推理算法4个关键性部分。

2.1 反向传播网络训练算法

反向传播网络的训练是基于TensorFlow框架实现的,并采用了GPU加速,具有参数设定简单、网络结构设计灵活和仿真速度快等特点。同时,算法采用了指数衰减型学习率解决局部最优问题,运用正则化避免过拟合问题,使用滑动平均模型增强算法鲁棒性。在网络充分训练之后,将网络权值存入csv文件,具体的算法步骤如下:

步骤1读取数据和配置参数,转步骤2。

步骤2根据配置参数构建网络结构,转步骤3。

步骤3通过反向传播算法和梯度下降算法进行网络权值训练,转步骤4。

步骤4网络识别准确率是否达到期望值或达到最大迭代次数,若是则转步骤5;否则转步骤3。

步骤5将网络权值存入weights.csv文件,结束。

2.2 脉冲编码方式

由于脉冲神经网络的信息载体是脉冲序列,而非实数值,因此需要设计合理的脉冲编码方式,将实数值转换为脉冲序列[20]。本文设计了线性编码、指数编码、反函数编码和幂函数编码4种脉冲编码方式。

为方便表述,本文做如下规定:将输入图片记为D,输入图片中的像素记为d,输入数据列表D中最大元素记为dmax,输入数据列表D中最小元素记为dmin,脉冲序列起点时间记为Tmin,终点时间记为Tmax,转换得到的脉冲序列记为S(d)。

为避免奇异样本数据影响网络收敛,在脉冲编码之前需要先对数据进行归一化操作,本文中使用的是min-max标准归一化方法,如式(1)所示:

(1)

线性编码如式(2)所示:

S(d)=Tmax-R(d)×(Tmax-Tmin)

(2)

指数编码如式(3)所示:

S(d)=(0.5R(d)-1-1)×(Tmax-Tmin)+Tmin

(3)

反函数编码如式(4)所示:

(4)

幂函数编码如式(5)所示:

S(d)=(R(d)-1)2×(Tmax-Tmin)+Tmin

(5)

上述的4种脉冲编码方式,都是将输入数据的数值转换为脉冲时间,而具体的脉冲形式则通过NEST模拟器中的脉冲发生器模型生成。在4种脉冲编码方式下,像素值与脉冲时间转换曲线如图3所示。

图3 4种脉冲编码方式的像素值与脉冲时间转换对比Fig.3 Comparison of pixel value and pulse timeconversion of four spiking encoding modes

从图3可以看出,在4种脉冲编码方式下,像素值与脉冲时间呈负相关关系,这种设计方式是考虑到一般图片中背景的像素值较小。像素值小的部分,对应的脉冲时间靠后。而在脉冲神经网络中,时间靠后的脉冲信号会因神经元漏电而消失,或无法在仿真结束之前到达输出层,从而被自动滤除,有助于特征提取。

2.3 自适应权值映射关系

由于工作原理的不同,反向传播网络的权值不能直接迁移到脉冲神经网络中,否则会引发参数失配问题,即:如果权值过小,脉冲神经元达不到激发阈值,会导致脉冲信号无法有效传导到输出层;如果权值过大,脉冲神经元激发过于频繁,会导致仿真计算负担重和模型参数越界等问题,同时也不利于发挥脉冲神经网络低功耗特性。

因此,反向传播网络权值需要乘以一个缩放因子,才可以合理地映射到脉冲神经网络中。将缩放因子记为A,网络输出层神经元个数记Nout,缩放因子的自适应调整算法步骤如下:

步骤1缩放因子A初始化为1,读取weights.csv文件中权值,记为变量Wweight,并设置2个辅助变量Astart=0,Aend=A,转步骤2。

步骤2Wweight=Wweight×A,根据Wweight变量设置脉冲神经网络的权值,转步骤3。

步骤3每类图片随机选取一张作为输入,每张图片仿真一次,并记录仿真后输出层脉冲数量。最后,将输出层脉冲数量对仿真次数求均值,记为Nspike,转步骤4。

步骤4如果Nout

缩放因子A经过自适应算法的调整,能够保证反向传播网络的权值按照合适的缩放比例映射到脉冲神经网络中。

2.4 脉冲神经网络推理算法

在定义了脉冲编码格式和自适应权值映射关系之后,就可以利用反向传播的训练结果,在脉冲神经网络中完成推理功能。脉冲神经网络的推理算法步骤如下:

步骤1读取数据和配置参数,转步骤2。

步骤2根据配置参数构建网络结构,并根据权值映射关系,将反向传播网络训练好的权值加载到脉冲神经网络对应的连接中,转步骤3。

步骤3调整缩放因子A,并更新脉冲神经网络权值,转步骤4。

步骤4开启仿真,检测每个输出神经元发出的脉冲数量,脉冲数量最多的神经元所代表的类别即为最终的输出结果。

3 软件框架

软件框架主要由基于TensorFlow的反向传播网络训练和基于NEST模拟器的脉冲神经网络推理两部分构成。

基于TensorFlow的反向传播网络训练部分的软件框架如图4所示。

图4 反向传播网络训练框架Fig.4 Training framework of back propagation network

基于TensorFlow的反向传播网络训练部分的软件框架由以下内容组成:

1)配置文件:网络参数配置文件提供了网络层数、网络层尺寸和激活函数等信息;算法参数配置文件提供了损失函数、学习率、滑动平均等操作的相关参数;系统参数配置文件则提供TensorFlow的相关配置信息。

2)数据集:提供训练和推理所用的数据集,并提供相应的数据集读取格式。

3)反向传播网络训练模块:根据配置文件构建网络结构,并结合用户的参数设置,调用TensorFlow完成网络的训练任务。

4)权值文件:将训练好的网络权值以csv文件的格式进行存储。

基于NEST模拟器的脉冲神经网络推理部分的软件框架如图5所示。

图5 脉冲神经网络推理框架Fig.5 Inference framework of spiking neuron network

基于NEST模拟器的脉冲神经网络推理部分的软件框架由以下内容组成:

1)配置文件:网络参数配置文件提供了网络层数、网络层尺寸和神经元模型等信息;算法参数配置文件提供了脉冲转换函数、脉冲序列时间区间和仿真周期等参数;系统参数配置文件则提供NEST模拟器相关配置信息。

2)数据集:提供推理所用的数据集,将数据经过脉冲转换器编码成为脉冲信号,提供给脉冲神经网络进行仿真。

3)权值文件:读取训练好的网络权值,并乘以缩放因子A,然后载入到脉冲神经网络的连接中。

4)脉冲神经网络推理模块:调用NEST模拟器,完成脉冲神经网络的推理功能,并将分类结果输出。

4 实验结果与分析

在多层脉冲神经网络中,为验证迁移学习算法和软件框架的有效性,基于本文设计的软件框架,搭建了迁移学习算法的仿真环境,并使用两层全连接网络,对MNIST手写体数字数据集进行了训练和推理。在算法有效性验证方面,为测试通用性,做了额外的实验,使用LeNet-5网络模型,对CIFAR-10数据集进行识别实验。

4.1 脉冲序列转换实验

为直观展示图片转换为脉冲序列的过程,在实验中将MNIST数据集中的一张图片经过脉冲编码后,送入输入层,通过对输入层每一个神经元的脉冲信号发射时间的记录,将结果绘制成图,如图6所示。

图6 图片转脉冲信号分布示意图Fig.6 Schematic diagram of picture to pulsesignal distribution

在图6中,左边的MNIST图片经过脉冲编码,形成了如右边所示脉冲信号分布。在脉冲信号分布图中,横轴为输入层神经元,按照输入层的顺序,每个神经元对应一个刻度值;纵轴为脉冲时间,表示每一个输入神经元发射脉冲的时刻,单位为仿真平台的最小仿真周期。

4.2 迁移学习算法有效性实验

迁移学习实验共分为反向传播网络的训练和脉冲神经网络的推理2个主要步骤。另外,本文实验采用MNIST和CIFAR-10两种数据集。

4.2.1 MNIST数据集实验

由于迁移算法要求反向传播网络和脉冲神经网络必须具备相同的结构,本文实验采用的反向传播网络和脉冲神经网络均采用如下结构:输入层尺寸为784,中间层尺寸为500,输出层尺寸为10,如图7所示。

图7 MNIST识别实验网络结构Fig.7 Network structure of MNIST recognition experiment

MNIST数据集实验方法如下:

1)采用50 000张MNIST数据集图片对反向传播网络进行训练,训练后的反向传播网络对10 000张MNIST测试集图片的识别准确率达到了98.42%。

2)通过迁移学习算法,将反向传播网络权值通过自适应的映射关系,加载到脉冲神经网络中。

在不同的编码方式下,脉冲神经网络对10 000张MNIST测试集图片的识别准确率如表1所示。

表1 不同编码方式下的MNIST识别准确率Table 1 MNIST recognition accuracy rate underdifferent encoding modes %

从表1可以看出,在不同的脉冲编码方式下,脉冲神经网络的识别准确率能够在97.00%以上,其中线性编码方式准确率最高,准确率为98.56%,甚至高于反向传播网络。在精度损失方面,4种编码格式下的准确率损失都在1%以下。

4.2.2 CIFAR-10数据集实验

为进一步验证在不同数据集下算法的有效性,本文基于LeNet-5网络模型,对10 000张CIFAR-10测试集进行了识别实验。CIFAR-10数据集由动物照片和交通工具照片组成,图像为彩色,并具有复杂的背景。在不同编码格式下的识别结果如表2所示。

表2 不同编码方式下的CIFAR-10识别准确率Table 2 CIFAR-10 recognition accuracy rate underdifferent encoding modes %

从表2可以看出,CIFAR-10数据集识别准确率最高能够达到56.00%,精度损失为-9.65%。相比于MNIST数据集识别实验,本文实验在精度损失方面有所增大。这主要是由于在脉冲神经网络中,CIFAR-10数据集图片的背景产生了大量的脉冲序列,而目前采用的脉冲编码方式过于简单,无法有效滤除这部分无用的脉冲序列。因此,在不同的脉冲编码方式下,算法损失精度有较大差异。对于该问题,可以通过设计更为精细的脉冲编码方式进行解决,从而进一步提升识别准确率。但由于本文主要目的是证明算法的有效性,同时,更加精细的脉冲编码方式仍需要大量研究工作,这也是未来工作的主要内容之一,因此本文不做进一步展开。

综上所述,通过MNIST数据集和CIFAR-10数据集的识别实验,证明了本文算法的有效性,表明该算法能够实现反向传播网络到脉冲神经网络的迁移学习,并且保证精度损失在可接受范围内。

4.3 脉冲神经网络低功耗评估

为验证脉冲神经网络的低功耗特性,本文实验基于LIF模型的工作原理和相关参数,对脉冲神经网络的功耗进行了估算。

由LIF模型的工作原理可知,神经元发射一个脉冲信号所消耗的能量可以通过电容上电压变化进行估算,如式(6)所示:

(6)

表3 LIF神经元模型参数Table 3 LIF neuron model parameters

根据上述计算关系,脉冲神经网络中神经元发射一个脉冲信号的能耗为0.234 375 pJ,而网络的功耗计算方式如式(7)所示:

P=Rimage×Nspike×W

(7)

其中,P为网络的功耗,Rimage为网络对图片的识别速率,Nspike为平均每张图片识别所需要发射的脉冲数量,W为发射一个脉冲所需要消耗的能量。

本文在训练反向传播网络时,采用的GPU型号为NVIDIA Quadro K2200,对MNIST数据集识别速率约为200 000张/s,功耗为60 μW。为方便功耗对比,脉冲神经网络中的识别速率也假定为200 000张/s。通过对10 000张MNIST数据集的识别实验,在脉冲神经网络中,统计了识别每张图片需要发射的脉冲数量的平均数,并估算网络功耗,结果如表4所示。

表4 脉冲神经网络MNIST识别功耗估算Table 4 Estimation of spiking neuron network MNISTrecognition power estimation

从表4数据可以看出,在200 000张/s的识别速率下,脉冲神经网络对MNIST数据集的识别功耗仅为微瓦级别,充分证明了本文设计的脉冲神经网络的低功耗特性。

5 结束语

本文设计一种自适应权值映射关系的迁移学习算法。该算法通过融合反向传播网络和脉冲神经网络的优势,能够有效解决多层脉冲神经网络训练收敛困难的问题。实验结果表明,训练后的脉冲神经网络对10 000张MNIST测试集图片的识别准确率达到98.56%,对10 000张CIFAR-10测试集图片的识别准确率达到56.00%,且在以200 000张/s的速率对MNIST图片进行识别的情况下,估算功耗在10 μW左右。本文设计的软件框架能够满足迁移学习算法的仿真需求,GPU加速功能保证了网络训练的效率。下一步将继续优化迁移学习算法,并将其应用范围向视频、语音等方面进行拓展。

猜你喜欢
编码方式权值脉冲
一种融合时间权值和用户行为序列的电影推荐模型
脉冲离散Ginzburg-Landau方程组的统计解及其极限行为
CONTENTS
上下解反向的脉冲微分包含解的存在性
基于MATLAB的LTE智能天线广播波束仿真与权值优化
黄芩苷脉冲片的制备
GCOA算法
基于权值动量的RBM加速学习算法研究
可穿戴式多通道传感系统功能需求分析及设计
浅谈计算机网络通信中实时差错控制技术