CN112116010B - 基于膜电势预处理的ann-snn转换的分类方法 - Google Patents

基于膜电势预处理的ann-snn转换的分类方法 Download PDF

Info

Publication number
CN112116010B
CN112116010B CN202010995633.6A CN202010995633A CN112116010B CN 112116010 B CN112116010 B CN 112116010B CN 202010995633 A CN202010995633 A CN 202010995633A CN 112116010 B CN112116010 B CN 112116010B
Authority
CN
China
Prior art keywords
layer
membrane potential
neural network
network
ann
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010995633.6A
Other languages
English (en)
Other versions
CN112116010A (zh
Inventor
李杨
赵东城
曾毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Automation of Chinese Academy of Science
Original Assignee
Institute of Automation of Chinese Academy of Science
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Automation of Chinese Academy of Science filed Critical Institute of Automation of Chinese Academy of Science
Priority to CN202010995633.6A priority Critical patent/CN112116010B/zh
Publication of CN112116010A publication Critical patent/CN112116010A/zh
Application granted granted Critical
Publication of CN112116010B publication Critical patent/CN112116010B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/061Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明属于类脑智能、人工智能领域,具体涉及一种基于膜电势预处理的ANN‑SNN转换的分类方法,旨在解决现有的ANN‑SNN转换方法获取的脉冲神经网络存在较大的时间延迟以及网络分类性能较低的问题。本系统方法包括获取待分类数据并进行实值编码,将实值编码后的数据作为输入数据;将输入数据输入通过ANN‑SNN转换后的脉冲神经网络中,结合IF神经元的软重置,通过设定时间步长的膜电势预处理,得到预初始化的膜电势信息;将输入数据重新输入所述脉冲神经网络中,结合预初始化的膜电势信息,通过前向传播得到待分类数据的分类结果。本发明提高了收敛速度,减小了时间延迟,并提高了网络的分类性能。

Description

基于膜电势预处理的ANN-SNN转换的分类方法
技术领域
本发明属于类脑智能、人工智能领域,具体涉及一种基于膜电势预处理的ANN-SNN转换的分类方法、系统、装置。
背景技术
人工神经网络(ANN)通过对生物神经元的抽象模拟以及从低层到高层的逐层抽象机制,在诸如图像识别、目标检测、物体分割等任务上取得了优异的表现,但是人工神经网络只是在脉冲发放率上对生物神经元进行了抽象,使用实值表示神经元的脉冲发放频率在多层神经网络的信息处理过程中带来了极大的能耗。脉冲神经网络(SNN)通过加入神经元动力学特性,使用脉冲对信息进行编码,每个神经元接收来自前一层神经元的脉冲输入,膜电势进行累加,当膜电势超过阈值后,神经元才会发放一次脉冲,极大地减少了网络信息传递的能耗。特别是在深层神经网络中,随着网络层数加深,神经元活动逐渐稀疏,完成任务所需的能耗更少。
但是由于脉冲神经网络的非连续性和不可微分的特性,训练一个较深的网络通常比较困难。目前脉冲神经网络的训练方法有很多,如基于脉冲时序依赖可塑性的无监督学习方法、基于脉冲发放时间误差或脉冲发放率的监督信息的监督学习方法、基于奖赏的强化学习方法等,但是都没有反向传播算法那样高效。为了充分结合高效的反向传播算法和低能耗的脉冲神经网络,人们提出了基于人工神经网络转换的脉冲神经网络学习算法,即训练一个与目标的脉冲神经网络相同的拓扑结构的人工神经网络,使用反向传播算法进行训练,将学习好的权重映射到脉冲神经网络的对应结构中,从而完成脉冲神经网络的训练。
转换方法的核心是将脉冲神经元的脉冲发放频率逼近人工神经网络中神经元的激活值,为了保证转换的精度,ANN中通常使用ReLU激活函数,在脉冲神经元阈值为1和足够的仿真时长下,脉冲神经元的脉冲发放率能够很好地逼近ANN中神经元的激活值;ANN中的偏置作为脉冲神经元的额外恒定突触电流进行输入;ANN中的批归一化(BatchNorm)在测试阶段会使用训练得到的均值与方差对输入进行归一化,然后通过线性运算进行输出,但在脉冲神经网络中使用的是0、1脉冲来表示信息,因此无法进行归一化运算,这里通过将BN层的运算与上层卷积层运算进行融合,从而隐式地完成BatchNorm操作;ANN中的均值池化操作可以认为是权重均为卷积和的倒数的卷积运算;ANN中的最大池化操作通常会选择SNN中具有最大脉冲发放率的神经元所发放的脉冲;为了保证信息损失最小,转换方法中SNN使用实值输入和软重置方法,软重置即当神经元膜电势超过阈值时,神经元发放脉冲,然后膜电势减去阈值,将多余的信息保留到下个时刻,而不是将膜电势重置为0(硬重置)。
直接使用训练好的人工神经网络权重的SNN通常会有很大的性能下降以及较大的时间延迟,即需要比较多的时间步长其性能才会稳定。最大值归一化在ANN的测试阶段会根据部分训练数据记录每层的最大值,然后在从输入层开始对每个卷积层和全连接层的权重与偏置进行归一化处理,每层的偏置除以对应位置的最大值,每层的权重除以本层的最大值然后乘以上层的最大值,第一层的权重只除以本层的最大值,池化与dropout因为不涉及参数,因此对应层不做处理,然后将处理好的权重映射到SNN中去。这种方法能够在训练数据足够多的情况下保证信息不丢失,较好地实现ANN的性能。但是基于最大值归一化的方法的抗噪能力比较差,因异常数据或个别样本造成的最大值特别大的情况下,该方法中SNN的权重会非常小,造成很大的时间延迟。Spike-norm方法是在将训练好的权重映射到SNN之后,通过对训练数据逐层传播从而获得每层的最大值,这种方法与model-based的归一化作用相似,即保证每一个时间步的操作都不会出现大于1的突触后膜电势,使用硬重置,即神经元膜电势到达阈值后膜电势为零的情况下也能完整地保留信息。
而且以往的工作都会忽视一个问题,在转换过程中,精度的下降不止来源于信息的损失,同时也来自于错误信息的传播,即当神经元激活值输入到ReLU函数之前是小于0的情况时,在脉冲神经网络中,早期的几个时间步长下神经元的突触后膜电势可能为正值,也就有可能发放错误的脉冲,当网络层次较深时,前几层的错误脉冲就会产生更大的错误信息,从而导致性能下降。基于此,本发明提出了一种基于膜电势预处理的ANN-SNN转换的分类方法。
发明内容
为了解决现有技术中的上述问题,即为了解决现有的ANN-SNN转换方法获取的脉冲神经网络存在较大的时间延迟以及网络分类性能较低的问题,本发明第一方面,提出了一种基于膜电势预处理的ANN-SNN转换的分类方法,该方法包括:
步骤S10,获取待分类数据并进行实值编码,将实值编码后的数据作为输入数据;
步骤S20,将所述输入数据输入通过ANN-SNN转换后的脉冲神经网络中,结合IF神经元的软重置,通过设定时间步长的膜电势预处理,得到预初始化的膜电势信息;
步骤S30,将所述输入数据重新输入所述脉冲神经网络中,结合所述预初始化的膜电势信息,通过前向传播得到所述待分类数据的分类结果;
所述ANN-SNN转换其方法为:
步骤A10,构建与待转换的脉冲神经网络具有相同拓扑结构的人工神经网络,作为第一网络;并基于获取的训练样本数据,通过反向传播算法对所述第一网络进行训练;
步骤A20,对所述第一网络的BN层,将其以及其前一卷积层在训练过程中学习更新的参数进行融合,融合后去掉其,得到第二网络;
步骤A30,将所述训练样本数据输入所述第二网络,获取第二网络卷积层、全连接层的神经元的激活值,并进行升序排序;通过预设的选取方法在排序后的激活值中选取一个激活值,作为第一激活值;
步骤A40,对所述第二网络中的卷积层、全连接层,结合其对应的第一激活值,通过p-norm函数对其的权重与偏置进行归一化处理;
步骤A50,将归一化后的权重、偏置映射到所述待转换的脉冲神经网络,得到转换后的脉冲神经网络。
在一些优选的实施方式中,步骤A20中“对所述第一网络的BN层,将其以及其前一卷积层在训练过程中学习更新的参数进行融合”,其方法为:
其中,γ、β表示BN层学习的尺度参数、偏移参数,ω、b表示卷积层学习的权重参数、偏置参数,ω′、b′表示融合后的权重参数、偏置参数,表示BN层学习的训练样本数据的均值、标准差,∈表示无穷小量,防止/>为0时出现运算错误,一般取10-5
在一些优选的实施方式中,步骤A30中“通过预设的选取方法在排序后的激活值中选取一个激活值,作为第一激活值”,其方法为:
对所述第二网络的卷积层、全连接层,获取其神经元的总数,将该总数与第一区间中随机选取的值相乘,将相乘后的值在排序后的队列中对应序号的激活值作为其对应的第一激活值;所述第一区间为[0.99,0.9999]。
在一些优选的实施方式中,步骤A40中“通过p-norm函数对其的权重与偏置进行归一化处理”,其方法为:
其中,ωl、bl表示人工神经网络第l层的权重参数、偏置参数,λl-1,λl表示人工神经网络第l-1、l层的第一激活值。
在一些优选的实施方式中,所述IF神经元的软重置,其方法为:
其中,Vthre表示预设的膜电势阈值,表示t、t-1时刻第l层神经元i的膜电势,/>表示连接第l-1层神经元j与第l层神经元i的权重,/>表示t-1时刻第l-1层神经元j的脉冲发放情况,有脉冲为1,无脉冲为0,/>表示偏置项,N表示神经元的个数。
在一些优选的实施方式中,步骤S20中“通过设定时间步长的膜电势预处理,得到预初始化的膜电势信息”,其方法为:
将输入数据输入通过ANN-SNN转换后的脉冲神经网络中,当预处理所述脉冲神经网络第k层的膜电势信息时,结合膜电势预处理的设定时间步长,将输入数据通过前向传播从第一层传播至第k层,传播完成后,丢弃掉所有层的脉冲信息,仅保留膜电势信息,作为第k层得到的预初始化的膜电势信息;其中,k为自然数;
循环对所述脉冲神经网络的所有层进行设定时间步长的膜电势预处理,直至得到所有层预初始化的膜电势信息。
本发明的第二方面,提出了一种基于膜电势预处理的ANN-SNN转换的分类系统,该系统包括实值编码模块、膜电势预处理模块、分类获取模块;
所述实值编码模块,配置为获取待分类数据并进行实值编码,将实值编码后的数据作为输入数据;
所述膜电势预处理模块,配置为将所述输入数据输入通过ANN-SNN转换后的脉冲神经网络中,结合IF神经元的软重置,通过设定时间步长的膜电势预处理,得到预初始化的膜电势信息;
所述分类获取模块,配置为将所述输入数据重新输入所述脉冲神经网络中,结合所述预初始化的膜电势信息,通过前向传播得到所述待分类数据的分类结果;
所述ANN-SNN转换其方法为:
步骤A10,构建与待转换的脉冲神经网络具有相同拓扑结构的人工神经网络,作为第一网络;并基于获取的训练样本数据,通过反向传播算法对所述第一网络进行训练;
步骤A20,对所述第一网络的BN层,将其以及其前一卷积层在训练过程中学习更新的参数进行融合,融合后去掉其,得到第二网络;
步骤A30,将所述训练样本数据输入所述第二网络,获取第二网络卷积层、全连接层的神经元的激活值,并进行升序排序;通过预设的选取方法在排序后的激活值中选取一个激活值,作为第一激活值;
步骤A40,对所述第二网络中的卷积层、全连接层,结合其对应的第一激活值,通过p-norm函数对其的权重与偏置进行归一化处理;
步骤A50,将归一化后的权重、偏置映射到所述待转换的脉冲神经网络,得到转换后的脉冲神经网络。
本发明的第三方面,提出了一种存储装置,其中存储有多条程序,所述程序适用于由处理器加载并执行以实现上述的基于膜电势预处理的ANN-SNN转换的分类方法。
本发明的第四方面,提出了一种处理装置,包括处理器、存储装置;处理器,适用于执行各条程序;存储装置,适用于存储多条程序;所述程序适用于由处理器加载并执行以实现上述的基于膜电势预处理的ANN-SNN转换的分类方法。
本发明的有益效果:
本发明提高了收敛速度,减小了时间延迟,并提高了脉冲神经网络的分类性能。
(1)本发明舍弃极个别的神经元的部分信息,结合各层神经的激活值的数量,仅使用在设定区间内选取的第一激活值作为本层神经元的最大激活值进行归一化(p-norm),这种方法在仅做出很小的信息损失的情况下极大地提高了收敛速度,减小了时间延迟;
(2)本发明根据脉冲神经网络中脉冲信息传递的特点提出了一种基于膜电势预处理方法,该方法通过逐层推进式推理,舍弃脉冲,直到传到最后一层,然后只需执行很少的时间步长便能达到与ANN相当的性能,以极小的时间延迟极大地保证性能。同时结合p-norm方法,使得网络极大地减少错误信息的传播,极大的保留网络信息,实现几乎无损的转换,提高了转换后的脉冲神经网络的分类性能。
附图说明
通过阅读参照以下附图所做的对非限制性实施例所做的详细描述,本申请的其他特征、目的和优点将会变得更明显。
图1是本发明一种实施例的基于膜电势预处理的ANN-SNN转换的分类方法的流程示意图;
图2是本发明一种实施例的基于膜电势预处理的ANN-SNN转换的分类系统的框架示意图;
图3是本发明一种实施例的ANN-SNN转换的流程示意图;
图4是本发明一种实施例的错误脉冲的发放的示意图;
图5是本发明一种实施例的Conv1层与第一个全连接层的神经元激活值的统计直方图;
图6是本发明一种实施例的脉冲神经网络在未使用本发明前Conv1层的错误脉冲发放与对应激活值的对照图和SNN中错误放电的最后的放电时刻的统计直方图;
图7是本发明一种实施例的在MNIST数据集上进行分类任务的效果对比图;
图8是本发明一种实施例的CIFAR10数据集上进行分类任务的效果对比图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明的基于膜电势预处理的ANN-SNN转换的分类方法,,如图1所示,包括以下步骤:
步骤S10,获取待分类数据并进行实值编码,将实值编码后的数据作为输入数据;
步骤S20,将所述输入数据输入通过ANN-SNN转换后的脉冲神经网络中,结合IF神经元的软重置,通过设定时间步长的膜电势预处理,得到预初始化的膜电势信息;
步骤S30,将所述输入数据重新输入所述脉冲神经网络中,结合所述预初始化的膜电势信息,通过前向传播得到所述待分类数据的分类结果;
所述ANN-SNN转换其方法为:
步骤A10,构建与待转换的脉冲神经网络具有相同拓扑结构的人工神经网络,作为第一网络;并基于获取的训练样本数据,通过反向传播算法对所述第一网络进行训练;
步骤A20,对所述第一网络的BN层,将其以及其前一卷积层在训练过程中学习更新的参数进行融合,融合后去掉其,得到第二网络;
步骤A30,将所述训练样本数据输入所述第二网络,获取第二网络卷积层、全连接层的神经元的激活值,并进行升序排序;通过预设的选取方法在排序后的激活值中选取一个激活值,作为第一激活值;
步骤A40,对所述第二网络中的卷积层、全连接层,结合其对应的第一激活值,通过p-norm函数对其的权重与偏置进行归一化处理;
步骤A50,将归一化后的权重、偏置映射到所述待转换的脉冲神经网络,得到转换后的脉冲神经网络。
为了更清晰地对本发明基于膜电势预处理的ANN-SNN转换的分类方法进行说明,下面结合附图对本发明方法一种实施例中各步骤进行展开详述。
在下述实施例中,先对ANN-SNN转换的方法进行描述,再对基于膜电势预处理的ANN-SNN转换的分类方法获取待分类数据的分类结果的过程进行详述。
1、ANN-SNN转换的方法,如图3所示,具体如下:
步骤A10,构建与待转换的脉冲神经网络具有相同拓扑结构的人工神经网络,作为第一网络;并基于获取的训练样本数据,通过反向传播算法对所述第一网络进行训练;
在本实施例中,根据预定义待转换的SNN(脉冲神经网络)结构,设计对应的ANN(人工神经网络)拓扑结构,作为第一网络。本发明中使用的ANN网络模型为VGG-16,网络的激活函数使用ReLU,池化函数使用AvgPooling,使用adam优化器,初始学习率设置为1e-4,迭代次数为100次,使用反向传播算法进行训练,分类的benchmark(性能评估)CIFAR10数据集,即在此数据集上对本发明的方法进行性能评估。
另外,若ANN(人工神经网络)基于LeNet构建,则在MNIST数据集进行性能评估。由于LeNet网络不含BN层,可以直接将其作为第二网络,跳转步骤A30进行激活值的选取。
步骤A20,对所述第一网络的BN层,将其以及其前一卷积层在训练过程中学习更新的参数进行融合,融合后去掉其,得到第二网络;
在本实施例中,基于ANN网络在训练过程中,更新学习的参数,将第一网络的BatchNorm(BN)层(批归一化层)与BN层的前一卷积层进行参数融合,从而消除单独对脉冲信息进行BN操作的副作用。具体如下:
根据训练好的ANN的网络参数,将ANN中的BN层与前层的卷积层进行融合,融合后的卷积层具有前层卷积和BN层的作用,卷积层的kernel参数ω,b,以及输入参数x,紧随其后的BN层参数(已学习到):尺度参数γ、偏移参数β、以及训练样本数据的均值和标准差卷积层输出为ωx+b,BN层的输出为/>融合后的公式如(1)(2)所示:
其中,ω、b表示卷积层学习的权重参数、偏置参数,ω′、b′表示融合后的权重参数、偏置参数,∈表示无穷小量,防止为0时出现运算错误,一般取10-5
参数融合后,去掉基于VGG-16构建的ANN的BN层,将去掉BN层的ANN网络作为第二网络。
步骤A30,将所述训练样本数据输入所述第二网络,获取第二网络卷积层、全连接层的神经元的激活值,并进行升序排序;通过预设的选取方法在排序后的激活值中选取一个激活值,作为第一激活值;
在本实施例中,根据训练好的ANN参数和融合后的卷积层参数,使用全部或部分训练样本数据输入第二网络,进行前向传播,并使用hook记录使用的第二网络每层神经元的激活值,将每层神经元的所有激活值进行升序排序,获取每层神经元的总数,将该总数与第一区间中随机选取的值相乘,将相乘后的值在升序排序后的队列中对应序号的激活值作为各层对应的第一激活值,也可以看作为本层的最大激活值,第一区间为[0.99,0.9999]。这样可以有效地避免个别神经元激活值过大导致归一化后产生较大的时间延迟,将所有的卷积与全连接层的第一激活值保存为λl=max[al],al表示第l层所有神经元的激活值,λl表示第l层的第一激活值。
步骤A40,对所述第二网络中的卷积层、全连接层,结合其对应的第一激活值,通过p-norm函数对其的权重与偏置进行归一化处理;
图5中(A)(B)分别显示了第二网络中Conv1和fc1层(即卷积层、全连接层)神经元的激活值,Count表示数量,ANN Activations表示ANN网络的激活函数,可以看到Conv1层有相当一部分神经元的激活值大于1,这些大于1的激活值在脉冲神经网络中是无法被有效表示的,fc1层所有神经元的激活值都小于1,这会大大增加时间延迟,因此本实施例需要执行p-norm函数操作,该操作仅对卷积层和全连接层做处理,对池化、dropout、上采样等不做处理,归一化的过程如公式(3)(4)所示:
其中,ωl、bl表示人工神经网络第l层的权重参数、偏置参数,λl-1,λl表示人工神经网络第l-1、l层的第一激活值。对于第一层,λl-1=1。
步骤A50,将归一化后的权重、偏置映射到所述待转换的脉冲神经网络,得到转换后的脉冲神经网络。
在本实施例中,待转换的脉冲神经网络其结构包括卷积层、全连接层、池化层、dropout层、上采样层,各层均保持VGG-16的拓扑结构和参数设置,待转换的脉冲神经网络去掉了ReLU层和BN层,因为BN层的参数已经融合到前一层的卷积结构中。将归一化后卷积层和全连接层的权重参数、偏置参数以及第二网络其他层在训练过程中更新学习的参数映射到的到构建好的待转换的SNN中,得到转换后的脉冲神经网络。
本发明转换后的脉冲神经网络使用IF神经元,没有泄漏通道,阈值设为1,上述第二网络所有保留的拓扑结构均由之前的简单运算变为将运算后的结果作为突触后膜电势输入到IF神经元中,IF神经元使用软重置,即当突触后膜电势超过阈值后,膜电势不会重置为0,而是重置为突触后膜电势减去阈值,这样信息就能够得到最大的保留,IF神经元的表示如公式(5)(6)所示:
其中,Vthre表示预设的膜电势阈值,表示t、t-1时刻第l层神经元i的膜电势,/>表示连接第l-1层神经元j与第l层神经元i的权重,/>表示t-1时刻第l-1层神经元j的脉冲情况,有脉冲发放则为1,无脉冲发放则为0,/>表示神经元i的偏置项,N表示神经元的个数,Nl-1表示脉冲神经网络第l-1层神经元的个数,←表示赋值,与等号作用相同。
本发明之所以使用IF神经元来建模ReLU激活函数的ANN,是因为二者能够较好地实现脉冲发放率的近似,都能够对负的输入进行抑制,对正的输入进行无损通过。在T个仿真时间下,IF神经元接收恒定输入,当膜电势超过1时发放脉冲数为N,则使用IF神经元的脉冲发放频率的计算如公式(7)所示:
其中,T表示总的仿真时长,zi表示神经元i每个时刻接收的恒定输入,表示ANN中神经元的激活值。
可以看到,使用软重置的IF神经元在T个时间步长下能够很好地逼近ANN的神经元激活值,仿真时间越长,误差越小。
脉冲神经网络层与层之间传递脉冲信息,SNN中的最大池化不像ANN中在实值内取最大数通过,而是取截止到当前时刻具有最大脉冲发放频率的神经元在此刻的脉冲信息通过。另外,脉冲神经网络使用实值编码,相较于泊松编码在输入层根据输入像素强度作为脉冲发放概率发放脉冲,实值编码能够直接将像素值作为突触电流输入到IF神经元中,不会产生多余的噪声与干扰,且输入信息更加准确。
2、基于膜电势预处理的ANN-SNN转换的分类方法
步骤S10,获取待分类数据并进行实值编码,将实值编码后的数据作为输入数据;
在本实施例中,获取待分类的数据,并进行实值编码,将实值编码后的待分类的数据作为输入数据。
步骤S20,将所述输入数据输入通过ANN-SNN转换后的脉冲神经网络中,结合IF神经元的软重置,通过设定时间步长的膜电势预处理,得到预初始化的膜电势信息;
如图4所示,神经元上方括号内的数字表示要逼近的ANN的激活值,直线下方的数字表示神经元连接的权重,采用IF神经元能够很好地逼近ANN中神经元的激活值,但是SNN中使用脉冲传递信息,可能会导致错误脉冲的传递,使得网络性能下降以及产生较大的时间延迟。图6A为100个样本数据在VGG-16第2个卷积层的脉冲发放情况,结果显示有4%的神经元错误放电,激活值的绝对值越小,在SNN中的每个时间步长中得到的突触后电势变化越大,也就越容易产生错误的脉冲;ANN中激活值(Activation Value)的绝对值越大,在SNN的每个时间步长中得到的突触后电势越稳定,一般不会产生错误的脉冲(Wrong Spike)。图6B为错误放电的神经元最后一个放电时刻(Last Spike time)的统计直方图(仿真时间为1000个时间步长),对于使用实值编码的脉冲神经网络,第二层中发放错误脉冲的神经元有66%是在前20个时间步长内发放的,而后膜电势逐渐下降,不会再超过阈值。也就是说,脉冲神经网络早期的错误脉冲发放导致SNN性能下降,因此通过膜电势预处理来解决错误脉冲发放问题是必要的。具体的膜电势预处理方法如下:
步骤S21,将输入数据输入到脉冲神经网络中,从第一层开始对网络进行逐层的前向传播,预处理第二层神经元时,输入数据从第一层传到第二层,同时考虑到性能与时间延迟,膜电势预处理的时间步长一般取5-20次;
步骤S22:前向传播过程完成后,丢弃掉所有层的脉冲信息,仅保留膜电势信息,作为第二层预初始化的膜电势信息。丢弃掉所有层的脉冲信息是因为开始几个时间步长内的脉冲信息包含了很多错误的脉冲信息;
步骤S23:预处理下一层(假设为第k层)时,输入数据通过前向传播从第一层重新传播至第k层,执行步骤S21-S22的方法,得到第k层预初始化的膜电势信息;k为自然数;
步骤S24,循环执行步骤S23,直至得到脉冲神经网络所有层预初始化的膜电势信息。
步骤S30,将所述输入数据重新输入所述脉冲神经网络中,结合所述预初始化的膜电势信息,通过前向传播得到所述待分类数据的分类结果。
在本实施例中,膜电势预处理完成后,将输入数据重新输入到脉冲神经网络中,进行前向传播,最终输出待分类数据的分类结果。
另外,本发明在MNIST和CIFAR10数据集上验证本发明的有效性。对于在CIFAR10上分类性能为85.07%的ANN,使用基于膜电势预处理的脉冲神经网络转换学习方法得到的性能几乎没有损失,达到了85.80%;对于在MNIST数据集上分类性能为99.17%的ANN,使用基于膜电势预处理的人工神经网络到脉冲神经网络的转换方法得到的性能达到了99.14%,本发明提出的算法在MNIST和CIFAR10数据集上的分类效果图分别如图7和图8所示,图中的direct conversion表示不经过任何处理,直接将ANN训练好的权重映射到SNN中,max-norm表示每层的最大值取本层所有激活值的最大作为最大激活值,p-norm表示选取的第p值(第一区间中随机选取的值)乘以本层神经元总数的值得到的第一激活,preprocessing表示膜电势预处理,其中的t表示预处理的时长,p-norm与prerocessiing结合时p的取值为图例中最后一个p-norm样例所用的p值,Accurary表示准确度,Time(ms)表示时长。
本发明第二实施例的一种基于膜电势预处理的ANN-SNN转换的分类系统,如图2所示,包括:实值编码模块100、膜电势预处理模块200、分类获取模块300;
所述实值编码模块100,配置为获取待分类数据并进行实值编码,将实值编码后的数据作为输入数据;
所述膜电势预处理模块200,配置为将所述输入数据输入通过ANN-SNN转换后的脉冲神经网络中,结合IF神经元的软重置,通过设定时间步长的膜电势预处理,得到预初始化的膜电势信息;
所述分类获取模块300,配置为将所述输入数据重新输入所述脉冲神经网络中,结合所述预初始化的膜电势信息,通过前向传播得到所述待分类数据的分类结果;
所述ANN-SNN转换其方法为:
步骤A10,构建与待转换的脉冲神经网络具有相同拓扑结构的人工神经网络,作为第一网络;并基于获取的训练样本数据,通过反向传播算法对所述第一网络进行训练;
步骤A20,对所述第一网络的BN层,将其以及其前一卷积层在训练过程中学习更新的参数进行融合,融合后去掉其,得到第二网络;
步骤A30,将所述训练样本数据输入所述第二网络,获取第二网络卷积层、全连接层的神经元的激活值,并进行升序排序;通过预设的选取方法在排序后的激活值中选取一个激活值,作为第一激活值;
步骤A40,对所述第二网络中的卷积层、全连接层,结合其对应的第一激活值,通过p-norm函数对其的权重与偏置进行归一化处理;
步骤A50,将归一化后的权重、偏置映射到所述待转换的脉冲神经网络,得到转换后的脉冲神经网络。
所述技术领域的技术人员可以清楚的了解到,为描述的方便和简洁,上述描述的系统的具体的工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
需要说明的是,上述实施例提供的基于膜电势预处理的ANN-SNN转换的分类系统,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块或者步骤再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。
本发明第三实施例的一种存储装置,其中存储有多条程序,所述程序适用于由处理器加载并实现上述的基于膜电势预处理的ANN-SNN转换的分类方法。
本发明第四实施例的一种处理装置,包括处理器、存储装置;处理器,适于执行各条程序;存储装置,适于存储多条程序;所述程序适于由处理器加载并执行以实现上述的基于膜电势预处理的ANN-SNN转换的分类方法。
所述技术领域的技术人员可以清楚的了解到,未描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实例中的对应过程,在此不再赘述。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的模块、方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,软件模块、方法步骤对应的程序可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。
术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

Claims (9)

1.一种基于膜电势预处理的ANN-SNN转换的分类方法,用于图像分类,其特征在于,该方法包括以下步骤:
步骤S10,获取待分类数据并进行实值编码,将实值编码后的数据作为输入数据;所述待分类数据包括图像数据;所述输入数据为像素值;
步骤S20,将所述输入数据输入通过ANN-SNN转换后的脉冲神经网络中,结合IF神经元的软重置,通过设定时间步长的膜电势预处理,得到预初始化的膜电势信息;
步骤S30,将所述输入数据重新输入所述脉冲神经网络中,结合所述预初始化的膜电势信息,通过前向传播得到所述待分类数据的分类结果:即所述图像数据对应的分类结果;
所述ANN-SNN转换其方法为:
步骤A10,构建与待转换的脉冲神经网络具有相同拓扑结构的人工神经网络,作为第一网络;并基于获取的训练样本数据,通过反向传播算法对所述第一网络进行训练;所述训练数据包括图像数据;
步骤A20,对所述第一网络的BN层,将其以及其前一卷积层在训练过程中学习更新的参数进行融合,融合后去掉其,得到第二网络;
步骤A30,将所述训练样本数据输入所述第二网络,获取第二网络卷积层、全连接层的神经元的激活值,并进行升序排序;通过预设的选取方法在排序后的激活值中选取一个激活值,作为第一激活值;
步骤A40,对所述第二网络中的卷积层、全连接层,结合其对应的第一激活值,通过p-norm函数对其的权重与偏置进行归一化处理;
步骤A50,将归一化后的权重、偏置映射到所述待转换的脉冲神经网络,得到转换后的脉冲神经网络。
2.根据权利要求1所述的基于膜电势预处理的ANN-SNN转换的分类方法,其特征在于,步骤A20中“对所述第一网络的BN层,将其以及其前一卷积层在训练过程中学习更新的参数进行融合”,其方法为:
其中,γ、β表示BN层学习的尺度参数、偏移参数,ω、b表示卷积层学习的权重参数、偏置参数,ω′、b′表示融合后的权重参数、偏置参数,表示BN层学习的训练样本数据的均值、标准差,∈表示无穷小量,防止/>为0时出现运算错误,一般取10-5
3.根据权利要求1所述的基于膜电势预处理的ANN-SNN转换的分类方法,其特征在于,步骤A30中“通过预设的选取方法在排序后的激活值中选取一个激活值,作为第一激活值”,其方法为:
对所述第二网络的卷积层、全连接层,获取其神经元的总数,将该总数与第一区间中随机选取的值相乘,将相乘后的值在排序后的队列中对应序号的激活值作为其对应的第一激活值;所述第一区间为[0.99,0.9999]。
4.根据权利要求2所述的基于膜电势预处理的ANN-SNN转换的分类方法,其特征在于,步骤A40中“通过p-norm函数对其的权重与偏置进行归一化处理”,其方法为:
其中,ωl、bl表示人工神经网络第l层的权重参数、偏置参数,λl-1,λl表示人工神经网络第l-1、l层的第一激活值。
5.根据权利要求4中所述的基于膜电势预处理的ANN-SNN转换的分类方法,其特征在于,所述IF神经元的软重置,其方法为:
其中,Vthre表示预设的膜电势阈值,表示t、t-1时刻第l层神经元i的膜电势,/>表示连接第l-1层神经元j与第l层神经元i的权重,/>表示t-1时刻第l-1层神经元j的脉冲发放情况,有脉冲为1,无脉冲为0,/>表示偏置项,N表示神经元的个数。
6.根据权利要求1所述的基于膜电势预处理的ANN-SNN转换的分类方法,其特征在于,步骤S20中“通过设定时间步长的膜电势预处理,得到预初始化的膜电势信息”,其方法为:
将输入数据输入通过ANN-SNN转换后的脉冲神经网络中,当预处理所述脉冲神经网络第k层的膜电势信息时,结合膜电势预处理的设定时间步长,将输入数据通过前向传播从第一层传播至第k层,传播完成后,丢弃掉所有层的脉冲信息,仅保留膜电势信息,作为第k层得到的预初始化的膜电势信息;其中,k为自然数;
循环对所述脉冲神经网络的所有层进行设定时间步长的膜电势预处理,直至得到所有层预初始化的膜电势信息。
7.一种基于膜电势预处理的ANN-SNN转换的分类系统,用于图像分类,其特征在于,该系统包括实值编码模块、膜电势预处理模块、分类获取模块;
所述实值编码模块,配置为获取待分类数据并进行实值编码,将实值编码后的数据作为输入数据;所述待分类数据包括图像数据;所述输入数据为像素值;
所述膜电势预处理模块,配置为将所述输入数据输入通过ANN-SNN转换后的脉冲神经网络中,结合IF神经元的软重置,通过设定时间步长的膜电势预处理,得到预初始化的膜电势信息;
所述分类获取模块,配置为将所述输入数据重新输入所述脉冲神经网络中,结合所述预初始化的膜电势信息,通过前向传播得到所述待分类数据的分类结果,即所述图像数据对应的分类结果;
所述ANN-SNN转换其方法为:
步骤A10,构建与待转换的脉冲神经网络具有相同拓扑结构的人工神经网络,作为第一网络;并基于获取的训练样本数据,通过反向传播算法对所述第一网络进行训练;所述训练数据包括图像数据;
步骤A20,对所述第一网络的BN层,将其以及其前一卷积层在训练过程中学习更新的参数进行融合,融合后去掉其,得到第二网络;
步骤A30,将所述训练样本数据输入所述第二网络,获取第二网络卷积层、全连接层的神经元的激活值,并进行升序排序;通过预设的选取方法在排序后的激活值中选取一个激活值,作为第一激活值;
步骤A40,对所述第二网络中的卷积层、全连接层,结合其对应的第一激活值,通过p-norm函数对其的权重与偏置进行归一化处理;
步骤A50,将归一化后的权重、偏置映射到所述待转换的脉冲神经网络,得到转换后的脉冲神经网络。
8.一种存储装置,其中存储有多条程序,其特征在于,所述程序适用于由处理器加载并执行以实现权利要求1-6任一项所述的基于膜电势预处理的ANN-SNN转换的分类方法。
9.一种处理装置,包括处理器、存储装置;处理器,适用于执行各条程序;存储装置,适用于存储多条程序;其特征在于,所述程序适用于由处理器加载并执行以实现权利要求1-6任一项所述的基于膜电势预处理的ANN-SNN转换的分类方法。
CN202010995633.6A 2020-09-21 2020-09-21 基于膜电势预处理的ann-snn转换的分类方法 Active CN112116010B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010995633.6A CN112116010B (zh) 2020-09-21 2020-09-21 基于膜电势预处理的ann-snn转换的分类方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010995633.6A CN112116010B (zh) 2020-09-21 2020-09-21 基于膜电势预处理的ann-snn转换的分类方法

Publications (2)

Publication Number Publication Date
CN112116010A CN112116010A (zh) 2020-12-22
CN112116010B true CN112116010B (zh) 2023-12-12

Family

ID=73800384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010995633.6A Active CN112116010B (zh) 2020-09-21 2020-09-21 基于膜电势预处理的ann-snn转换的分类方法

Country Status (1)

Country Link
CN (1) CN112116010B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112819139A (zh) * 2021-01-27 2021-05-18 电子科技大学 一种从人工神经网络到脉冲神经网络的最优转换方法
CN113159276B (zh) * 2021-03-09 2024-04-16 北京大学 模型优化部署方法、系统、设备及存储介质
CN114781633B (zh) * 2022-06-17 2022-10-14 电子科技大学 一种融合人工神经网络与脉冲神经网络的处理器
CN115496209B (zh) * 2022-11-16 2023-08-08 深圳时识科技有限公司 激活归一化方法和存储介质、芯片及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019141193A1 (zh) * 2018-01-19 2019-07-25 杭州海康威视数字技术股份有限公司 对视频帧数据进行处理的方法和装置
CN110555523A (zh) * 2019-07-23 2019-12-10 中建三局智能技术有限公司 一种基于脉冲神经网络的短程跟踪方法及系统
CN110826602A (zh) * 2019-10-23 2020-02-21 中国科学院自动化研究所 基于膜电位调控脉冲神经网络的图像分类方法、系统
CN111340181A (zh) * 2020-02-11 2020-06-26 天津大学 基于增强脉冲的深层双阈值脉冲神经网络转换训练方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019141193A1 (zh) * 2018-01-19 2019-07-25 杭州海康威视数字技术股份有限公司 对视频帧数据进行处理的方法和装置
CN110555523A (zh) * 2019-07-23 2019-12-10 中建三局智能技术有限公司 一种基于脉冲神经网络的短程跟踪方法及系统
CN110826602A (zh) * 2019-10-23 2020-02-21 中国科学院自动化研究所 基于膜电位调控脉冲神经网络的图像分类方法、系统
CN111340181A (zh) * 2020-02-11 2020-06-26 天津大学 基于增强脉冲的深层双阈值脉冲神经网络转换训练方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于脉冲神经网络的迁移学习算法与软件框架;尚瑛杰;董丽亚;何虎;;计算机工程(03);第53页-第59页 *

Also Published As

Publication number Publication date
CN112116010A (zh) 2020-12-22

Similar Documents

Publication Publication Date Title
CN112116010B (zh) 基于膜电势预处理的ann-snn转换的分类方法
CN111124840B (zh) 业务运维中告警的预测方法、装置与电子设备
TWI769754B (zh) 基於隱私保護確定目標業務模型的方法及裝置
US11087086B2 (en) Named-entity recognition through sequence of classification using a deep learning neural network
JP6847386B2 (ja) ニューラルネットワークの正則化
CN113704075B (zh) 一种基于故障日志的高性能计算系统故障预测方法
US11954579B2 (en) Synaptic weight training method, target identification method, electronic device and medium
EP3591584B1 (en) Probabilistic training for binary neural networks
CN111226234A (zh) 用于创建深度神经网络的方法、设备和计算机程序
CN111723901A (zh) 神经网络模型的训练方法及装置
US9471885B1 (en) Predictor-corrector method for knowledge amplification by structured expert randomization
CN114819114B (zh) 脉冲神经网络硬件加速器及其在卷积运算中的优化方法
CN113935475A (zh) 具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法
Urgun et al. Composite system reliability analysis using deep learning enhanced by transfer learning
CN113269113B (zh) 人体行为识别方法、电子设备和计算机可读介质
CN113380340A (zh) 飞灰浓度预测模型的训练方法、装置、计算机设备
CN115496947A (zh) 一种基于脉冲神经网络的图像分类方法和装置
JP7230324B2 (ja) ニューラルネットワークの学習方法、コンピュータプログラム及びコンピュータ装置
CN110852361B (zh) 基于改进深度神经网络的图像分类方法、装置与电子设备
CN113792804A (zh) 图像识别模型的训练方法、图像识别方法、装置及设备
CN109308565B (zh) 人群绩效等级识别方法、装置、存储介质及计算机设备
Ali et al. Character Recogntion System: Performance Comparison of Neural Networks and Genetic Algorithm
CN117236900B (zh) 基于流程自动化的个税数据处理方法及系统
CN113011476B (zh) 基于自适应滑动窗口gan的用户行为安全检测方法
WO2019149375A1 (en) Method and system for processing input data and propagating variance in a neural network

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant