CN115546556A - 用于图像分类的脉冲神经网络的训练方法 - Google Patents
用于图像分类的脉冲神经网络的训练方法 Download PDFInfo
- Publication number
- CN115546556A CN115546556A CN202211289610.9A CN202211289610A CN115546556A CN 115546556 A CN115546556 A CN 115546556A CN 202211289610 A CN202211289610 A CN 202211289610A CN 115546556 A CN115546556 A CN 115546556A
- Authority
- CN
- China
- Prior art keywords
- neural network
- branch
- pulse
- ann
- training
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Image Analysis (AREA)
Abstract
本发明针对现有技术的局限性,提出了一种用于图像分类的脉冲神经网络的训练方法,提供了一种快速、节省内存的脉冲神经网络训练方法,设计并运用了一种人工神经网络‑脉冲神经网络的权重共享框架,将脉冲神经网络的训练迁移到一个人工神经网络上进行,在相同的网络结构以及时间窗口设置下,本发明的训练速度以及显存消耗是脉冲反向传播模型的43%~67%,33%~55%。
Description
技术领域
本发明涉及类脑计算方法技术领域,具体地,涉及一种用于图像分类的脉冲神经网络的训练方法。
背景技术
脉冲神经网络(Spiking Neural Network,SNNs)是一种基于模仿生物神经元放电机制的一种神经网络模型。由于其能够有效地处理离散的时空事件,在低功耗设备上具有广阔的应用场景。SNN的基本组成单元包括脉冲神经元(Spiking Neuron)以及突触(Synapse)。脉冲神经元是SNN的基本计算单元,而突触则是神经元之间的连接,负责将来自突触前神经元产生的脉冲信号转化为刺激,输入到突触后神经元。整合发放(Integrate-and-Fire,IF)神经元被广泛应用于SNN的建模。脉冲神经元通过突触进行连接,所构建的SNN能够接受来自外界的脉冲事件并作出相应,通常可以用以下公式表示:zt=g(xt).
式中,xt表示t时刻的脉冲事件,函数g(·)表示SNN模型,它将脉冲事件xt作为输入,并输出相应值zt.与人工神经网络(Artificial Neural Networks,ANNs)一样,SNN包括输入层,隐藏层以及输出层,输入层负责接收脉冲事件,并将其传递给隐藏层。隐藏层包含多层网络,每一层网络包含干脉冲神经元,每一层网络通过逐层级联的方式进行连接。输出层不考虑累积-释放机制,其负责将最后一层隐藏层的脉冲输出通过突触整合到膜电压中,根据整个事件窗内累积的膜电压值大小对输入的脉冲事件进行响应。此外,每层神经元的连接结构一般可分为全连接结构以及卷积结构。全连接结构只的是突触前后两层神经元都具有连接,一般可用于连接最后一层隐藏层以及输出层;卷积连接结构则通过卷积核(通常为k×k×c大小的张量,其中k×k表示感受野的大小,c表示连接到突触后神经元的数目)将突触前网络的若干相邻神经元与突触后的神经元相连接。包含卷积连接结构的SNN通常成为卷积脉冲神经网络(Convolution Spiking Neural Network,CSNN),主要应用与处理视觉相关的任务。具有深层结构的SNN能够对输入的脉冲事件进行响应,但要使其具备识别能力,需要设计算法对网络进行学习。所谓的学习,也称为训练,其根据输入的样本对网络中神经元之间的突触权重进行调整,使得网络对特定模式的输入能够作出特定的响应。
目前,学习SNN的方法可以归纳为两类,一类是将预先训练好的人工神经网络转换(Artificial Neural Network,ANN)为对应的SNN,该方法成为ANN-to-SNN(ANN2SNN),另一类流行的训练方法是直接基于脉冲反向传播算法(Spike-based BP)训练SNN。利用人工神经网络-脉冲神经网络方法得到的SNN相比于其他方法能够获得更好的分类准确度,这主要得益于预训练ANN的良好的泛化性能。然而该类方法在分类任务上的良好表现建立在庞大的推理时间步之上,换句话说,ANN2SNN需要在一个较大的时间窗内处理输入信号才能够获得良好的分类准确度,使得推理效率较低。因此,基于转换的SNN在低功耗硬件上具有一定的局限性。脉冲反向传播是一种直接训练SNN的方法。训练时将每个训练样本输入至SNN,SNN输出预测值,随后构建损失函数,利用随机梯度下降(Stochastic Gradient Descent,SGD)算法计算预测值与样本真是标签之间的误差。该方法的核心是估计脉冲输出关于输入累积电位之间的梯度,使时空反向传播(Spatial-Temporal Back Propagation,STBP)算法能够将误差传递到各突触权重进行参数更新。
以公开时间为2021.04.09的中国发明申请:一种基于重加权膜电压的卷积脉冲神经网络的训练方法为例,基于脉冲反向传播算法已被证实能够有效地训练深度SNN。尽管在多数情况下表现不如ANN2SNN,脉冲反向传播训练通过时空反向传播的梯度对参数进行更新,使得SNN的推理时间大大缩短。然而,由于脉冲反向传播训练需要进行时间以及空间方向上的梯度计算,在训练过程中将消耗大量的内存资源,且存在训练速度慢的问题。
发明内容
针对现有技术的局限,本发明提出一种用于图像分类的脉冲神经网络的训练方法,本发明采用的技术方案是:
一种用于图像分类的脉冲神经网络的训练方法,包括以下步骤:
S1,获取输入图像,对所述输入图像进行包括图像规范化在内的数据预处理;
S2,获取待训练的脉冲神经网络以及相应的任务需求,根据所述任务需求,对所述脉冲神经网络进行网络初始化;
S3,根据所述步骤S2的结果,构建一个权重参数共享的人工神经网络-脉冲神经网络双分支网络结构;
S4,以所述步骤S1的结果,对所述人工神经网络-脉冲神经网络双分支网络结构中的人工神经网络分支进行训练;训练完成后,基于权重共享,以其中的脉冲神经网络分支作为可用于图像分类的脉冲神经网络训练结果。
相较于现有技术,提供了一种快速、节省内存的脉冲神经网络训练方法,设计并运用了一种人工神经网络-脉冲神经网络的权重共享框架,将脉冲神经网络的训练迁移到一个人工神经网络上进行,在相同的网络结构以及时间窗口设置下,本发明的训练速度以及显存消耗是脉冲反向传播模型的43%~67%,33%~55%。
作为一种优选方案,所述步骤S1的数据预处理包括以下过程:
对所述输入图像各通道的内容进行图像规范化;根据预设的时间窗口大小T,将所述输入图像复制成T张,构造出长度为T的图像序列。
作为一种优选方案,所述步骤S2的网络初始化包括以下过程:
根据任务需求,设定所述脉冲神经网络的网络层数、各层网络的结构、特征通道大小、卷积核大小、各层权重的初始值以及IF神经元的初始阈值电压。
进一步的,所述IF神经元按以下公式表示:
充电过程:ut+1,n=ut,n(1-ot,n)+It+1,n;
其中,n表示第n层脉冲神经网络,膜电压ut,n表示脉冲神经元的内部状态,膜电压ut,n通过累积-放电机制,将每一个时刻的输入刺激累积到膜电压中;It+1,n为时刻t+1的输入刺激,It+1,n根据网络权重作用于输入脉冲得到;ot.n表示时刻t的脉冲信号,Vth表示电压阈值。
更进一步的,在所述步骤S4中,通过以下方式对所述IF神经元的电压阈值进行自适应增长:
其中,k表示一轮训练代数中的第k次训练迭代,α∈[0,1]表示动量系数;ε∈[0,1]表示容忍度;τ>0表示尺度因子,Ω表示噪声脉冲的索引集合。
作为一种优选方案,在所述人工神经网络-脉冲神经网络双分支网络结构中:以整流脉冲单元或直通脉冲单元作为ANN分支的激活函数,将脉冲神经网络分支的每层脉冲输出作为ANN分支每层的激活值,使得ANN分支能够等价表示脉冲神经网络分支。
进一步的,所述整流脉冲单元的工作流程按以下公式表示:
其中,表示ANN分支的第n层激活输出,表示ANN分支的第n层网络经过其中的卷积以及线性整流单元后的输出;符号函数sign(·)表示将量化为0和1,用于得到线性整流单元输出的激活位置;°表示哈达玛积;表示来自脉冲神经网络分支第n层的累积脉冲输出。
进一步的,所述直通脉冲单元的工作流程按以下公式表示:
进一步的,在所述步骤S4中,对所述人工神经网络-脉冲神经网络双分支网络结构中的人工神经网络分支进行训练,包括以下过程:
通过使用整流脉冲单元或直通脉冲单元对ANN分支进行建模,使脉冲神经网络分支每层网络的前向计算能够被ANN分支表示;随后利用交叉熵损失函数作用于ANN分支的FC层输出,实现对分类误差的描述;最后利用反向传播算法,在ANN分支上进行训练。
本发明还提供以下内容:
一种存储介质,其上储存有计算机程序,所述计算机程序被处理器执行时实现前述的用于图像分类的脉冲神经网络的训练方法的步骤。
一种计算机设备,包括存储介质、处理器以及储存在所述存储介质中并可被所述处理器执行的计算机程序,所述计算机程序被处理器执行时实现前述用于图像分类的脉冲神经网络的训练方法的步骤。
附图说明
图1为本发明实施例提供的用于图像分类的脉冲神经网络的训练方法的流程示意图;
图2为本发明实施例提供的人工神经网络-脉冲神经网络双分支网络结构示意图;
图3为本发明实施例使用的整流脉冲单元示意图;
图4为本发明实施例使用的直通脉冲单元示意图;
图5为本发明实施例具体示例的网络结构示意图;
图6为本发明实施例整流脉冲单元(ReSU)、直通脉冲单元(STSU)以及自适应阈值调整(ATA)对分类性能的作用说明;
图7为本发明实施例的用于图像分类的脉冲神经网络的训练方法与时空反向传播算法(STBP)的训练时间(Train Time)以及显存消耗(GPU Mem)的比较结果;
图8为本发明实施例(SNN2ANN-ReSU,SNN2ANN-STSU)与时空反向传播算法(STBP-PLIF)以及ANN的准确度比较结果。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
应当明确,所描述的实施例仅仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请实施例保护的范围。
在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。以下结合附图和实施例对本发明做进一步的阐述。
为了解决现有技术的局限性,本实施例提供了一种技术方案,下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
请参考图1,一种用于图像分类的脉冲神经网络的训练方法,包括以下步骤:
S1,获取输入图像,对所述输入图像进行包括图像规范化在内的数据预处理;
S2,获取待训练的脉冲神经网络以及相应的任务需求,根据所述任务需求,对所述脉冲神经网络进行网络初始化;
S3,根据所述步骤S2的结果,构建一个权重参数共享的人工神经网络-脉冲神经网络双分支网络结构;
S4,以所述步骤S1的结果,对所述人工神经网络-脉冲神经网络双分支网络结构中的人工神经网络分支进行训练;训练完成后,基于权重共享,以其中的脉冲神经网络分支作为可用于图像分类的脉冲神经网络训练结果。
相较于现有技术,本发明提供了一种快速、节省内存的脉冲神经网络训练方法,设计并运用了一种人工神经网络-脉冲神经网络(ANN-SNN)的权重共享框架,将脉冲神经网络的训练迁移到一个人工神经网络上进行,在相同的网络结构以及时间窗口设置下,本发明的训练速度以及显存消耗是脉冲反向传播模型的43%~67%,33%~55%。
作为一种优选实施例,所述步骤S1的数据预处理包括以下过程:
对所述输入图像各通道的内容进行图像规范化;根据预设的时间窗口大小T,将所述输入图像复制成T张,构造出长度为T的图像序列。
作为一种优选实施例,所述步骤S2的网络初始化包括以下过程:
根据任务需求,设定所述脉冲神经网络的网络层数、各层网络的结构、特征通道大小、卷积核大小、各层权重的初始值以及IF神经元的初始阈值电压。
进一步的,所述IF神经元按以下公式表示:
充电过程:ut+1,n=ut,n(1-ot,n)+It+1,n; (1)
其中,n表示第n层脉冲神经网络,膜电压ut,n表示脉冲神经元的内部状态,膜电压ut通过累积-放电机制,将每一个时刻的输入刺激累积到膜电压中;It+1,n为时刻t+1的输入刺激,It+1,n根据网络权重作用于输入脉冲得到;ot,n表示时刻t的脉冲信号,Vth表示电压阈值。
具体的,根据公式(2),如果某个时刻累积的膜电压超出电压阈值,IF神经元将发放一个脉冲信号传递到与其相关的神经元。同时,根据公式(1),当前的膜电压会被重置到0,直到下一个时刻的输入刺激到达为止。如果当前膜电压未达到阈值,则将会累积到下一个时刻。
在所述步骤S2中,对于所述步骤2中的SNN网络层数,每层网络结构、特征通道大小、卷积核大小、各层权重的初始分布状态以及阈值膜电压,以CIFAR10图像数据集为例,它是共包含10个类别的RGB图像数据集,可设置17层残差网络结构神经网络用于实现图像分类网络。第一层为输入层,第二至第十六层为隐藏的卷积层,第十七层为全连接结构的输出层,将最后的脉冲特征图连接到10个输出类别。由于CIFAR10数据集中图片尺寸为32×32×3,分类类别共计10种,所以输入层尺寸应该为32×32×3个神经元,输出层为10个神经元,假设时间长度设定为T=10,对于每一个时刻,输入层接收当前的图像,将其传送至隐藏层进行脉冲编码得到二值的脉冲特征,最后将该特征输送至输出层得到预测结果。如果使用者需要进行更为复杂的分类任务,可根据自身经验设计网络层数和每层神经元数量。
作为一种优选方案,在所述人工神经网络-脉冲神经网络双分支网络结构中:以整流脉冲单元或直通脉冲单元作为ANN分支的激活函数,将脉冲神经网络分支的每层脉冲输出作为ANN分支每层的激活值,使得ANN分支能够等价表示脉冲神经网络分支。
具体的,所述步骤S3中构建出的人工神经网络-脉冲神经网络ANN-SNN双分支网络结构请参阅图2;其中,上部分为SNN分支,下部分为ANN分支,W和FC是两个分支网络共享的权重参数以及分类层,白色箭头表示网络前向计算过程,灰色箭头则表示反向传播训练过程。在ANN分支中,ReSU和STSU分别代表整流脉冲单元以及直通脉冲单元,它们将SNN每一层在整个时间窗内累积的脉冲映射到ANN分支中,并作为激活函数值在ANN分支进行前向传递。使得ANN分支的每层输出都等价于SNN每一层的累积脉冲,实现了使用ANN等价表示SNN。通过整流脉冲单元或直通脉冲单元将SNN每层的累积脉冲映射为ANN分支各层的激活值,从而使得SNN能够被一个ANN表示。
进一步的,所述整流脉冲单元的工作流程按以下公式表示:
其中,表示ANN分支的第n层激活输出,表示ANN分支的第n层网络经过其中的卷积以及线性整流单元后的输出;符号函数sign(·)表示将量化为0和1,用于得到线性整流单元输出的激活位置;表示哈达玛积;表示来自脉冲神经网络分支第n层的累积脉冲输出。
具体的,整流脉冲单元(Rectified Spiking Unit,ReSU):ReSU的具体结构请参阅图3;经过哈达玛积后,中与激活位置相同的脉冲保留,如图3中的输出脉冲所示,这部分保留的脉冲信息将在ANN分支传递到第n+1层网络。而SNN产生的不一致输出脉冲,如图3累计脉冲的红色部分(原图中确有红色部分,但为符合专利法要求对图片颜色进行调整后已无法与其他部分区分,以上内容仅用于对非本领域的技术人员进行原理说明,并不影响本领域技术人员的对本发明方案的理解,特此声明),将不会参与到ANN的前向计算。利用ReSU作为激活函数作用在ANN分支的每个线性整流单元之后,使得ANN分支前向传递时传递的是SNN分支中拥有相同激活位置的累积脉冲。根据图2,前向计算中,交叉熵损失利用这些脉冲信息计算训练误差。由于符号函数sign(·)不可导的性质,反向传播算法无法直接用于ANN分支的训练。为了解决这个问题,本发明假设ANN分支上前向传递的脉冲关于线性整流输出的梯度是1,即使得梯度能够通过链式法则从ANN分支的深层网络反向传播到浅层网络。同时,由于训练仅在ANN分支进行,累积脉冲关于权重的梯度为0,使梯度信息不会在SNN分支上传递。
进一步的,所述直通脉冲单元的工作流程按以下公式表示:
具体的,直通脉冲单元(Straight-Through Spiking Unit,STSU):STSU的具体结构请参阅图4。在ANN分支的前向计算中,c与相互抵消,使得在数值上等价于所有来自第n层SNN的所有累积脉冲利用STSU作为激活函数作用在ANN分支的每个线性整流单元之后,使得ANN分支前向的每一层前向传递的是SNN对应层的累积脉冲,使得两个分支各层输出完全等价。根据图2,前向计算中,交叉熵损失利用这些脉冲信息计算训练误差。尽管c与等值,但因为是常数,c不参数梯度计算。反向传播算法计算深层网络关于的梯度使得ANN分支的可以直接被训练。与ReSU相同,累积脉冲关于权重参数的梯度为0,梯度信息不会在SNN分支上传递。
进一步的,在所述步骤S4中,对所述人工神经网络-脉冲神经网络双分支网络结构中的人工神经网络分支进行训练,包括以下过程:
通过使用整流脉冲单元或直通脉冲单元对ANN分支进行建模,使脉冲神经网络分支每层网络的前向计算能够被ANN分支表示;随后利用交叉熵损失函数作用于ANN分支的FC层输出,实现对分类误差的描述;最后利用反向传播算法,在ANN分支上进行训练。
具体的,使用反向传播算法对ANN进行训练避免了梯度信息在SNN中的时空反向传播,从而降低了训练所需要的显存资源。
训练示意图见图2的下半部分,ANN分支,白色箭头表示前向计算,交叉熵损失根据ANN分支计算得到的最后特征进行误差度量,通过反向传播算法计算梯度用于每层网络的参数更新。
另外,由于IF神经元的动态特性,在权重共享的情况下,SNN分支中经过IF神经元的脉冲输出的激活位置与ANN分支中经过线性整流单元的激活位置会出现不一致的现象。特别地,IF神经元的激活位置在线性整流单元中可能是静息的,如图3、图4中“累计脉冲”中的红色部分所示(原图中确有红色部分,但为符合专利法要求对图片颜色进行调整后已无法与其他部分区分,以上内容仅用于对非本领域的技术人员进行原理说明,并不影响本领域技术人员的对本发明方案的理解,特此声明)。这些IF神经元的错误激活将产生噪声脉冲,从而影响SNN的性能。
对此,为了抑制SNN分支出现的与ANN分支不一致激活输出,更进一步的,在所述步骤S4中,通过以下方式对所述IF神经元的电压阈值进行自适应增长:
其中,k表示一轮训练代数中的第k次训练迭代,α∈[0,1]表示动量系数;ε∈[0,1]表示容忍度;τ>0表示尺度因子,Ω表示噪声脉冲的索引集合。
如果累积噪声的平均值大于ε,IF神经元的阈值将增加。反之,阈值电压将维持不变。该方法自适应地增加阈值,一定程度上减少了噪声脉冲发放的机会,使得IF神经元中不同于线性整流单元的激活位置的数量得以减少。以上对电压阈值的调整方式,可以称为自适应的电压阈值调整方法(Adaptive Threshold Adjustment,ATA)。
训练完毕后取出SNN分支用于决策:由步骤S3可知,在本发明所设计的ANN-SNN权重共享框架下,SNN被映射到ANN分支进行训练且两分支权重共享。当ANN分支训练完毕,SNN分支对特定模式的响应与ANN分支相近。因此训练完成后,SNN分支可以取出直接用于图像分类等决策。
接下来将结合具体的网络结构以及图像分类任务:基于VGG13和ResNet-17网络结构在CIFAR10、CIFAR100以及Tiny-ImageNet图像分类任务,对本发明的实施例进行具体的说明。
首先对输入RGB图像每个通道的图像进行标准化处理,规范化后,每个通道均值分别为0.4914,0.4822,0.4465,标准差分别为0.557,0.549,0.5534,首先对输入图像每个通道的图像进行标准化处理,对于输入为RGB图像,三通道的图像分别进行规范化。随后设定时间窗口大小为T,将图像复制T张,从而构造一个长度是T的RGB图像序列,则RGB图像被编码为T×H×W×3的图像序列。在本实施例中,对VGG-13网络结构,时间窗T的大小在CIFAR10,CIFAR100,Tiny-ImageNet任务上分别设置为5,4,3;对于ResNet-17网络结构,三个任务的时间窗均设置为5。对于CIFAR10和CIFAR100,H=W=32,对于Tiny-ImageNet,H=W=64。
网络初始化:选取VGG-13以及ResNet-17网络结构,如图5所示。其中,[k3c64s1]表示一个卷积核大小为3×3,输出通道数是64,步长是1的卷积层,×2表示该模块重复2次,M表示最大池化(Max Pooling),FC表示分类层;[k3c64-k3c64]表示一个残差网络模块,该模块由两个卷积核大小为3×3,输出通道数是64卷积层组成,输入与输出间存在残差连接将IF神经元的初始阈值电压设置成服从均匀分布的随机张量。
构建一个权重参数共享的ANN-SNN双分支网络结构:基于前面设定的网络层数以及结构,构建一个ANN-SNN双分支网络,具体如图2,两者共享参数。利用整流脉冲单元(ReSU)或直通脉冲单元(STSU)作为ANN分支的激活函数,将SNN的每层脉冲输出作为ANN分支每层的激活值。使用ReSU,则将SNN中的噪声脉冲过滤后映射到ANN分支作为每一层的激活值;使用STSU,则将SNN中的所有累积脉冲都映射为ANN每一层的激活值作用于前向计算。
训练ANN分支:通过使用ReSU或STSU对ANN分支进行建模,SNN每层网络的前向计算能够被ANN分支表示。随后利用交叉熵损失函数作用于ANN分支的FC层输出,实现对分类误差的描述。最后利用反向传播算法,在ANN分支上进行训练。在ReSU以及STSU的作用下,梯度信息仅在ANN分支上传递并更新参数。此外,本发明设计了一种自适应的阈值电压调整方法用于抑制SNN分支出现的噪声脉冲,进一步提升了SNN的性能,该实施例的实验数据见于图6。
由此,ANN分支上的参数训练收敛后,由于权重共享,可直接使用SNN分支进行决策。对于VGG-13网络结构,本实施例在CIFAR10,Tiny-ImageNet图像分类任务上训练400代(epoch),在CIFAR100上训练200代;对于ResNet-17结构,CIFAR10,CIFAR100,Tiny-ImageNet均训练两百代。由于ANN分支与SNN分支权重共享,ANN分支训练完毕后,可取出SNN单独进行分类。本实施例在图7给出了VGG-13,ResNet-17在CIFAR10、CIFAR100以及Tiny-ImageNet上每一代训练所需要的显存与训练时间,并与时空反向传播算法(Spatial-Temporal Back-Propagation,STBP)进行了比较。本发明的训练速度以及显存消耗是脉冲反向传播模型的43%~67%,33%~55%。同时,本实施例也在图8给出了SNN分支的预测准确度随训练代数的变化情况,并与ANN、STBP方法得到的预测准确度进行了比较。
实施例2
一种存储介质,其上储存有计算机程序,所述计算机程序被处理器执行时实现实施例1中的用于图像分类的脉冲神经网络的训练方法的步骤。
实施例3
一种计算机设备,包括存储介质、处理器以及储存在所述存储介质中并可被所述处理器执行的计算机程序,所述计算机程序被处理器执行时实现实施例1中的用于图像分类的脉冲神经网络的训练方法的步骤。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种用于图像分类的脉冲神经网络的训练方法,其特征在于,包括以下步骤:
S1,获取输入图像,对所述输入图像进行包括图像规范化在内的数据预处理;
S2,获取待训练的脉冲神经网络以及相应的任务需求,根据所述任务需求,对所述脉冲神经网络进行网络初始化;
S3,根据所述步骤S2的结果,构建一个权重参数共享的人工神经网络-脉冲神经网络双分支网络结构;
S4,以所述步骤S1的结果,对所述人工神经网络-脉冲神经网络双分支网络结构中的人工神经网络分支进行训练;训练完成后,基于权重共享,以其中的脉冲神经网络分支作为可用于图像分类的脉冲神经网络训练结果。
2.根据权利要求1所述的用于图像分类的脉冲神经网络的训练方法,其特征在于,所述步骤S1的数据预处理包括以下过程:
对所述输入图像各通道的内容进行图像规范化;根据预设的时间窗口大小T,将所述输入图像复制成T张,构造出长度为T的图像序列。
3.根据权利要求1所述的用于图像分类的脉冲神经网络的训练方法,其特征在于,所述步骤S2的网络初始化包括以下过程:
根据任务需求,设定所述脉冲神经网络的网络层数、各层网络的结构、特征通道大小、卷积核大小、各层权重的初始值以及IF神经元的初始阈值电压。
6.根据权利要求1所述的用于图像分类的脉冲神经网络的训练方法,其特征在于,在所述人工神经网络-脉冲神经网络双分支网络结构中:以整流脉冲单元或直通脉冲单元作为ANN分支的激活函数,将脉冲神经网络分支的每层脉冲输出作为ANN分支每层的激活值,使得ANN分支能够等价表示脉冲神经网络分支。
9.根据权利要求6所述的用于图像分类的脉冲神经网络的训练方法,其特征在于,在所述步骤S4中,对所述人工神经网络-脉冲神经网络双分支网络结构中的人工神经网络分支进行训练,包括以下过程:
通过使用整流脉冲单元或直通脉冲单元对ANN分支进行建模,使脉冲神经网络分支每层网络的前向计算能够被ANN分支表示;随后利用交叉熵损失函数作用于ANN分支的FC层输出,实现对分类误差的描述;最后利用反向传播算法,在ANN分支上进行训练。
10.一种计算机设备,其特征在于:包括存储介质、处理器以及储存在所述存储介质中并可被所述处理器执行的计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述的用于图像分类的脉冲神经网络的训练方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211289610.9A CN115546556A (zh) | 2022-10-20 | 2022-10-20 | 用于图像分类的脉冲神经网络的训练方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211289610.9A CN115546556A (zh) | 2022-10-20 | 2022-10-20 | 用于图像分类的脉冲神经网络的训练方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115546556A true CN115546556A (zh) | 2022-12-30 |
Family
ID=84735279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211289610.9A Pending CN115546556A (zh) | 2022-10-20 | 2022-10-20 | 用于图像分类的脉冲神经网络的训练方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115546556A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116051429A (zh) * | 2023-03-31 | 2023-05-02 | 深圳时识科技有限公司 | 数据增强方法、脉冲神经网络训练方法、存储介质和芯片 |
-
2022
- 2022-10-20 CN CN202211289610.9A patent/CN115546556A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116051429A (zh) * | 2023-03-31 | 2023-05-02 | 深圳时识科技有限公司 | 数据增强方法、脉冲神经网络训练方法、存储介质和芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112633497B (zh) | 一种基于重加权膜电压的卷积脉冲神经网络的训练方法 | |
CN110309732B (zh) | 基于骨架视频的行为识别方法 | |
Alaloul et al. | Data processing using artificial neural networks | |
CN109102000B (zh) | 一种基于分层特征提取与多层脉冲神经网络的图像识别方法 | |
CN112699956B (zh) | 一种基于改进脉冲神经网络的神经形态视觉目标分类方法 | |
CN113449864B (zh) | 用于图像数据分类的反馈型脉冲神经网络模型训练方法 | |
CN110288555B (zh) | 一种基于改进的胶囊网络的低照度增强方法 | |
US10776691B1 (en) | System and method for optimizing indirect encodings in the learning of mappings | |
CN112906828A (zh) | 一种基于时域编码和脉冲神经网络的图像分类方法 | |
KR102152374B1 (ko) | 인공신경망의 비트 양자화 방법 및 시스템 | |
CN108304912B (zh) | 一种运用抑制信号实现脉冲神经网络监督学习的***和方法 | |
CN113705769A (zh) | 一种神经网络训练方法以及装置 | |
CN113094357A (zh) | 一种基于时空注意力机制的交通缺失数据补全方法 | |
CN113205048B (zh) | 一种手势识别方法及识别*** | |
CN114998659B (zh) | 随时间在线训练脉冲神经网络模型的图像数据分类方法 | |
CN112183742A (zh) | 基于渐进式量化和Hessian信息的神经网络混合量化方法 | |
CN112712170B (zh) | 基于输入加权脉冲神经网络的神经形态视觉目标分类*** | |
CN111310816B (zh) | 基于无监督匹配追踪编码的仿脑架构图像识别方法 | |
CN111130909B (zh) | 基于自适应储备池esn的网络流量预测方法 | |
CN113505924A (zh) | 一种基于级联时空特征的信息传播预测方法及*** | |
CN113239897A (zh) | 基于时空特征组合回归的人体动作评价方法 | |
CN115546556A (zh) | 用于图像分类的脉冲神经网络的训练方法 | |
CN114266351A (zh) | 基于无监督学习时间编码的脉冲神经网络训练方法及*** | |
WO2021086861A1 (en) | Quantized architecture search for machine learning models | |
US20220358346A1 (en) | Systems, methods, and media for generating and using spiking neural networks with improved efficiency |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230605 Address after: Room A019, Building 2, No. 69, Huangge Section, Shinan Road, Nansha District, Guangzhou City, Guangdong Province, 511458 Applicant after: INTELLIGENT EYES AUTOMATION TECHNOLOGY (GUANGZHOU) CO.,LTD. Address before: 510275 No. 135 West Xingang Road, Guangzhou, Guangdong, Haizhuqu District Applicant before: SUN YAT-SEN University |