CN115936070B - 一种低延时低功耗脉冲神经网络转换方法 - Google Patents
一种低延时低功耗脉冲神经网络转换方法Info
- Publication number
- CN115936070B CN115936070B CN202211632517.3A CN202211632517A CN115936070B CN 115936070 B CN115936070 B CN 115936070B CN 202211632517 A CN202211632517 A CN 202211632517A CN 115936070 B CN115936070 B CN 115936070B
- Authority
- CN
- China
- Prior art keywords
- layer
- neural network
- low
- neuron
- value
- 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
Links
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Image Analysis (AREA)
Abstract
本申请提供一种低延时低功耗脉冲神经网络转换方法,包括:搭建适合进行转换的卷积神经网络,其中激活函数采用有限软阶梯激活函数替代,并采用反向传播算法对网络的权值进行训练;通过训练集图像对权重进行归一化;构建软重置IF神经元模型;构建基于事件驱动的最大池化层;采用神经元模型与最大池化层搭建与原ANN结构一致的脉冲神经网络,复用原ANN训练得到的权重参数;对输入进行重复编码,经过第一卷积层计算输出的幅值输入上述替换后的神经元,输出指定时间步的脉冲序列,将脉冲序列输入网络中得到分类结果。本申请提高网络的转换精度,降低了模型转换的精度损失。
Description
技术领域
本申请涉及人工智能技术领域,特别涉及一种低延时低功耗脉冲神经网络转换方法。
背景技术
脉冲神经网络(Spiking Neural Network,SNN)是源于生物启发的新一代人工神经网络模型,其与人工神经网络主要区别在于信息处理性质不同。传统的人工神经网络使用了实值计算,如信号的振幅,而脉冲神经网络则使用信号的时间信息,通过“整合放电”(integrate-and-fire)机制进行脉冲的接收与发放以实现信息交换,该特性使其便于部署在相关硬件上。SNN中的神经元的计算形式为事件驱动型,即只有在接收或发出脉冲信号时才处于活跃状态,因此可以大幅度降低能耗。
尽管脉冲神经网络有许多优势,但由于其离散计算的特性导致其不能像ANN一样使用直接求取梯度的方式进行训练。目前主要的训练方法有三种,包括基于STDP及其改进的一系列方法、代替梯度训练方法和基于转换的方法。其中基于转换的方法能够以比较快速的方式得到可用的脉冲神经网络,但在转换的过程中存在精度损失,目前一些研究提出了一些方法解决上述问题,一种方法是当模拟步长T足够大的时候,可以通过设置阈值电压等于对应ANN层最大的ReLU激活值和copy参数和偏差来将ANN转换为SNN,并且当每一层神经元的初始膜电势为阈值电压的一半时,可以使得转换误差最小。还有一些研究提出Burstneuron,使得在两个time step之间也可以发出脉冲,提高脉冲发放率,并提出LateralInhibition Pooling(LIPooling)来解决转换中的最大池化引发的问题。
但是,这些方法为了便于计算,采用平均池化代替最大池化,将平均池化运算后的浮点数作为该层神经元膜电势增量,使该层神经元更新膜电势并判断是否输出脉冲,忽视了这个过程在硬件实现时的能耗代价与精度损失。
发明内容
本申请提供了一种低延时低功耗脉冲神经网络转换方法,可用于解决脉冲神经网络在训练过程中能耗大的技术问题。
本申请提供一种低延时低功耗脉冲神经网络转换方法,方法包括:
步骤1,搭建适合进行转换的卷积神经网络,其中激活函数采用有限软阶梯激活函数替代,并采用反向传播算法对网络的权值进行训练;
步骤2,通过训练集图像对权重进行归一化;
步骤3,构建软重置IF神经元模型;
步骤4,构建基于事件驱动的最大池化层;
步骤5,采用神经元模型与最大池化层搭建与原ANN结构一致的脉冲神经网络,复用原ANN训练得到的权重参数;
步骤6,对输入进行重复编码,经过第一卷积层计算输出的幅值输入上述替换后的神经元,输出指定时间步的脉冲序列,将脉冲序列输入网络中得到分类结果。
可选的,卷积神经网络包括:
若干个卷积层、最大池化层与全连接层;所有层偏置均为0;特征提取部分网络顺序为卷积、ReLU、池化;训练过程中关闭bias的梯度使能;其中激活函数采用有限软阶梯激活函数替代,激活函数的特征公式为:
其中,ain与aout分别是激活函数的输入与输出;alimit为激活函数的输出上限值;K为量化系数;w控制相邻阶梯间的爬升坡度,通过n调整w的值,当w较大时,坡度较陡,上升较快,量化精度较高,在不影响训练的情况下,n取尽量大的值;c与量化精度有关,训练时随alimit变化而变化;bi为曲线的拐点对应的输入激活值,曲线的拐点个数与K有关。
可选的,通过训练集图像对权重进行归一化,包括:
步骤2-1,均匀抽取各个分类训练集数据的批量输入到ANN中;
步骤2-2,以层为单位,记录每层对应的最大激活值;
步骤2-3:使用权重参数对应前后两层的最大激活值的比值作为缩放系数对权重进行缩放,具体方法如下:
其中,wl表示ANN第l层的权重参数,αl,αl-1分别表示第l-1层与第l层激活值的最大值。
可选的,软重置IF神经元模型如下:
其中,Vthresh表示神经元的阈值电压,t表示当前时刻,T表示网络总时间步长,表示t时刻脉冲神经网络的第l层的第i个神经元的膜电压,表示t时刻脉冲神经网络的第l层的第i个神经元是否发放脉冲,发放则为1,否则为0。
可选的,构建基于事件驱动的最大池化层包括:
步骤4-1,初始化池化区域内的事件计数器与最大池化阈值为0;
步骤4-2,事件序列输入,根据事件序列的值判断事件计数器是否需要更新,输入为0则保持不变,输入为1则更新计数器的值;
步骤4-3,取当前事件为1的计数器的最大值为预激活值,与当前阈值比较,若超过阈值,则发放脉冲并更新阈值为该预激活值,否则不发放脉冲,阈值保持不变。
可选的,脉冲神经网络仅由卷积层、池化层与全连接层组成;各网络层的偏置均为0;其中卷积层与全连接层的神经元使用软重置IF神经元;池化层使用基于事件驱动构建的最大池化层。
可选的,对输入进行重复编码,经过第一卷积层计算输出的幅值输入上述替换后的神经元,输出指定时间步的脉冲序列具体特征包括:
连续T个时间步长的输入为相同的归一化后的图像,第一卷积层起到对卷积核提取的特征编码作用,卷积层计算结果经过软重置IF神经元,输出脉冲序列认为是图像的特征编码序列。
本申请设计的有限软阶梯激活函数,将转换的量化误差提前引入网络训练环节,能够提高网络的转换精度;本申请的事件驱动最大池化层采用定点数运算与二值输出,能够降低设备功耗,加快计算速度;本申请使用训练好的参数对感受野中提取的主要特征进行了编码,与传统的泊松编码相比,减少了编码的随机性,进一步降低了模型转换的精度损失。
附图说明
图1为本申请实施例提供的实现流程示意图;
图2为本申请实施例提供的事件驱动池化层的计算流程图;
图3为本申请实施例提供的输入图像编码成脉冲序列的流程图;
图4位本申请实施例提供的不同坡度情况下有限软阶梯激活函数的曲线图;
图5为本申请实施例提供的Cifar10数据集转换精度损失与脉冲序列长度的关系图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面首先结合附图对本申请实施例适用的可能的系统架构进行介绍。
本申请实施例提供了一种低延时低功耗脉冲神经网络转换方法,方法包括以下步骤:
步骤1,搭建一个适合进行转换的卷积神经网络,其中激活函数采用有限软阶梯激活函数替代,并采用反向传播算法对网络的权值进行训练;
步骤2,通过训练集图像对权重进行归一化;
步骤3,构建软重置IF神经元模型;
步骤4,构建基于事件驱动的最大池化层;
步骤5,采用上述神经元模型与上述最大池化层搭建与原ANN结构一致的脉冲神经网络,复用原ANN训练得到的权重参数;
步骤6,对输入进行重复编码,经过第一卷积层计算输出的幅值输入上述替换后的神经元,输出指定时间步的脉冲序列,将脉冲序列输入网络中得到分类结果。
进一步地,在其中一个实施例中,步骤1所述训练一个符合要求的ANN。
示例性的,针对Cifar10数据集,采用VGG16网络结构,其中不包含BN层,池化层使用最大池化,训练使用ADAM优化器,学习率为0.001,激活函数使用本发明的有限软阶梯激活函数,设计量化系数K为32,坡度系数n为100,训练得到精度为95.3%的ANN网络。
进一步的,在其中一个实施例中,步骤2所述通过训练集图像对权重进行归一化。具体过程包括:
步骤2-1:均匀抽取各个分类训练集数据的批量输入到ANN中;
步骤2-2:以层为单位,记录ANN每一层神经元的最大激活值。
步骤2-3:使用权重参数对应前后两层的最大激活值的比值作为缩放系数对权重进行缩放,其特征公式如下:
其中,wl表示ANN第l层的权重参数,αl,αl-1分别表示第l-1层与第l层激活值的最大值。
进一步地,在其中一个实施例中,步骤3所述构建软重置IF神经元模型。
使用前首先对神经元膜电位初始化,接收脉冲时,神经元膜电位更新,特征公式如下:
其中,nl表示第l层的神经元数量,表示l-1层第j个神经元与l层第i个神经元的突触权值,表示t-1时刻l-1层第j个神经元是否发放脉冲。
判断膜电位是否超过阈值电压,如果大于阈值电压则发放脉冲并更新膜电位,否则不发放脉冲并保持当前膜电位,特征公式如下:
进一步地,在其中一个实施例中,步骤4所述构建基于事件驱动的最大池化层。所述基于事件驱动的最大池化层具体过程包括:
步骤4-1:初始化池化区域内的事件计数器与最大池化阈值为0。
步骤4-2:事件序列输入,根据事件序列的值判断事件计数器是否需要更新,输入为0则保持不变,输入为1则更新计数器的值。
步骤4-3:取当前事件为1的计数器的最大值为预激活值,与当前阈值比较,若超过阈值,则发放脉冲并更新阈值为该预激活值,否则不发放脉冲,阈值保持不变。
以上述Cifar10数据集与VGG16网络为例,当池化的作用域为2*2,初始化事件计数器与阈值均为0,若t=1时刻输入的事件序列为0011,此时更新事件计数器分别为0、0、1、1,当前事件对应的事件计数器最大值为1,大于阈值,于是池化层输出1并更新阈值为1;若t=2时刻输入的时间序列为1000,此时更新事件计数器分别为1、0、1、1,当前事件对应的事件计数器最大值为1,等于阈值,于是池化层输出0保持阈值不变。按上述流程,若后续输入的时间序列依次为0001、1000、1001、0100、0000、0100、1000、1000,则池化层最终输出的脉冲序列为1100010101,可以验证,与输入的最大脉冲频率一致。
进一步地,在其中一个实例中,步骤5所述采用上述神经元模型与上述最大池化层搭建与原ANN结构一致的脉冲神经网络,复用原ANN训练得到的权重参数。具体特征为:网络仅由卷积层、池化层与全连接层组成;各网络层的偏置均为0;其中卷积层与全连接层的神经元使用上述软重置IF神经元实现;池化层使用上述基于事件驱动构建的最大池化层实现。
进一步地,在其中一个实施例中,步骤6所述对输入进行重复编码,经过第一卷积层计算输出的幅值输入上述替换后的神经元,输出指定时间步的脉冲序列具体特征包括:连续T个时间步长的输入为相同的归一化后的图像,第一卷积层起到对卷积核提取的特征编码作用,卷积层计算结果经过上述软重置IF神经元,输出脉冲序列认为是图像的特征编码。
以上述Cifar10数据集与VGG16网络为例,实验验证,仅需要不超过30个时间步,精度损失可以降低到0.5%,即可以在较少的时间步内完成分类任务,验证了本发明的有效性。
本申请设计的有限软阶梯激活函数,将转换的量化误差提前引入网络训练环节,能够提高网络的转换精度;本申请的事件驱动最大池化层采用定点数运算与二值输出,能够降低设备功耗,加快计算速度;本申请使用训练好的参数对感受野中提取的主要特征进行了编码,与传统的泊松编码相比,减少了编码的随机性,进一步降低了模型转换的精度损失。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。
Claims (6)
1.一种低延时低功耗脉冲神经网络转换方法,其特征在于,所述方法包括:
步骤1,搭建适合进行转换的卷积神经网络,其中激活函数采用有限软阶梯激活函数替代,并采用反向传播算法对网络的权值进行训练;
步骤2,通过训练集图像对权重进行归一化;
步骤3,构建软重置IF神经元模型;
步骤4,构建基于事件驱动的最大池化层;
步骤5,采用神经元模型与最大池化层搭建与原ANN结构一致的脉冲神经网络,复用原ANN训练得到的权重参数;
步骤6,对输入进行重复编码,经过第一卷积层计算输出的幅值输入上述替换后的神经元,输出指定时间步的脉冲序列,将脉冲序列输入网络中得到分类结果;
卷积神经网络包括:
若干个卷积层、最大池化层与全连接层;所有层偏置均为0;特征提取部分网络顺序为卷积、ReLU、池化;训练过程中关闭bias的梯度使能;其中激活函数采用有限软阶梯激活函数替代,激活函数的特征公式为:
其中,ain与aout分别是激活函数的输入与输出;alimit为激活函数的输出上限值;K为量化系数;w控制相邻阶梯间的爬升坡度,通过n调整w的值,当w较大时,坡度较陡,上升较快,量化精度较高,在不影响训练的情况下,n取尽量大的值;c与量化精度有关,训练时随alimit变化而变化;bi为曲线的拐点对应的输入激活值,曲线的拐点个数与K有关。
2.根据权利要求1所述的一种低延时低功耗脉冲神经网络转换方法,其特征在于,通过训练集图像对权重进行归一化,包括:
步骤2-1,均匀抽取各个分类训练集数据的批量输入到ANN中;
步骤2-2,以层为单位,记录每层对应的最大激活值;
步骤2-3:使用权重参数对应前后两层的最大激活值的比值作为缩放系数对权重进行缩放,具体方法如下:
其中,wl表示ANN第l层的权重参数,αl,αl-1分别表示第l-1层与第l层激活值的最大值。
3.根据权利要求2所述的一种低延时低功耗脉冲神经网络转换方法,其特征在于,软重置IF神经元模型如下:
其中,Vthresh表示神经元的阈值电压,t表示当前时刻,T表示网络总时间步长,表示t时刻脉冲神经网络的第l层的第i个神经元的膜电压,表示t时刻脉冲神经网络的第l层的第i个神经元是否发放脉冲,发放则为1,否则为0。
4.根据权利要求3所述的一种低延时低功耗脉冲神经网络转换方法,其特征在于,构建基于事件驱动的最大池化层包括:
步骤4-1,初始化池化区域内的事件计数器与最大池化阈值为0;
步骤4-2,事件序列输入,根据事件序列的值判断事件计数器是否需要更新,输入为0则保持不变,输入为1则更新计数器的值;
步骤4-3,取当前事件为1的计数器的最大值为预激活值,与当前阈值比较,若超过阈值,则发放脉冲并更新阈值为该预激活值,否则不发放脉冲,阈值保持不变。
5.根据权利要求4所述的一种低延时低功耗脉冲神经网络转换方法,其特征在于,脉冲神经网络仅由卷积层、池化层与全连接层组成;各网络层的偏置均为0;
其中卷积层与全连接层的神经元使用软重置IF神经元;池化层使用基于事件驱动构建的最大池化层。
6.根据权利要求5所述的一种低延时低功耗脉冲神经网络转换方法,其特征在于,对输入进行重复编码,经过第一卷积层计算输出的幅值输入上述替换后的神经元,输出指定时间步的脉冲序列具体特征包括:
连续T个时间步长的输入为相同的归一化后的图像,第一卷积层起到对卷积核提取的特征编码作用,卷积层计算结果经过软重置IF神经元,输出脉冲序列认为是图像的特征编码序列。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211632517.3A CN115936070B (zh) | 2022-12-19 | 2022-12-19 | 一种低延时低功耗脉冲神经网络转换方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211632517.3A CN115936070B (zh) | 2022-12-19 | 2022-12-19 | 一种低延时低功耗脉冲神经网络转换方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN115936070A CN115936070A (zh) | 2023-04-07 |
| CN115936070B true CN115936070B (zh) | 2025-09-02 |
Family
ID=86655678
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202211632517.3A Active CN115936070B (zh) | 2022-12-19 | 2022-12-19 | 一种低延时低功耗脉冲神经网络转换方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN115936070B (zh) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117574968B (zh) * | 2023-11-30 | 2024-12-17 | 中国海洋大学 | 基于量子衍生的脉冲卷积神经网络、图像处理方法及系统 |
| CN117634564B (zh) * | 2024-01-26 | 2024-05-24 | 之江实验室 | 一种基于可编程神经拟态核的脉冲延时测量方法及系统 |
| CN118095381B (zh) * | 2024-02-22 | 2024-10-15 | 电子科技大学 | 低延时低能耗脉冲神经网络处理器 |
| CN120409560A (zh) * | 2025-07-03 | 2025-08-01 | 北京大学 | 模型训练方法、模型推理方法及设备 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014012839A1 (en) * | 2012-07-20 | 2014-01-23 | Celka Garuda Biocomputing | A method and system for determining the state of a person |
| CN110378467A (zh) * | 2019-06-17 | 2019-10-25 | 浙江大学 | 一种针对深度学习网络参数的量化方法 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105654414A (zh) * | 2015-12-25 | 2016-06-08 | 浙江大学城市学院 | 基于开源体系架构和建筑物空间数据库的城市多灾害风险损失评测系统及方法 |
| CN110555523B (zh) * | 2019-07-23 | 2022-03-29 | 中建三局智能技术有限公司 | 一种基于脉冲神经网络的短程跟踪方法及系统 |
| CN110985651B (zh) * | 2019-12-04 | 2021-08-31 | 北京理工大学 | 一种基于预测的自动变速器多参数融合换挡策略 |
| KR102695116B1 (ko) * | 2020-05-22 | 2024-08-16 | 한국전자통신연구원 | 단조 감소하는 양자화 해상도를 기반으로 하는 기계 학습 장치 및 방법 |
| CN114186672A (zh) * | 2021-12-16 | 2022-03-15 | 西安交通大学 | 一种用于脉冲神经网络的高效高精度训练算法 |
-
2022
- 2022-12-19 CN CN202211632517.3A patent/CN115936070B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014012839A1 (en) * | 2012-07-20 | 2014-01-23 | Celka Garuda Biocomputing | A method and system for determining the state of a person |
| CN110378467A (zh) * | 2019-06-17 | 2019-10-25 | 浙江大学 | 一种针对深度学习网络参数的量化方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN115936070A (zh) | 2023-04-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN115936070B (zh) | 一种低延时低功耗脉冲神经网络转换方法 | |
| CN112633497B (zh) | 一种基于重加权膜电压的卷积脉冲神经网络的训练方法 | |
| Kim et al. | Deep neural networks with weighted spikes | |
| CN107688849B (zh) | 一种动态策略定点化训练方法及装置 | |
| CN107679618B (zh) | 一种静态策略定点化训练方法及装置 | |
| CN107092959B (zh) | 基于stdp非监督学习算法的脉冲神经网络模型构建方法 | |
| CN114091659B (zh) | 基于空时信息的超低延时脉冲神经网络及学习方法 | |
| CN113988449B (zh) | 基于Transformer模型的风电功率预测方法 | |
| CN114186672A (zh) | 一种用于脉冲神经网络的高效高精度训练算法 | |
| CN112887239B (zh) | 基于深度混合神经网络的快速准确水声信号调制方式识别方法 | |
| CN109003678A (zh) | 一种仿真文本病历的生成方法及系统 | |
| CN114943329B (zh) | 基于忆阻器的可片上强化学习脉冲gan模型及设计方法 | |
| CN111985523A (zh) | 基于知识蒸馏训练的2指数幂深度神经网络量化方法 | |
| CN109635938B (zh) | 一种自主学习脉冲神经网络权值量化方法 | |
| CN105139864A (zh) | 语音识别方法和装置 | |
| CN113902092A (zh) | 一种脉冲神经网络间接监督训练方法 | |
| CN110659730A (zh) | 基于脉冲神经网络的端到端功能性脉冲模型的实现方法 | |
| CN114282647B (zh) | 基于脉冲神经网络的神经形态视觉传感器目标检测方法 | |
| CN113723594A (zh) | 一种脉冲神经网络目标识别方法 | |
| CN111291861A (zh) | 一种应用于脉冲神经网络的输入脉冲编码方法 | |
| CN116702865A (zh) | 基于知识迁移的脉冲神经网络训练方法、设备及存储介质 | |
| CN115481733A (zh) | 一种人工神经网络的激活学习方法、系统及应用 | |
| CN118133121A (zh) | 一种基于脉冲神经网络实现快速推理和有效学习的数据分类方法 | |
| Yan et al. | CQ $^{+} $+ Training: Minimizing Accuracy Loss in Conversion From Convolutional Neural Networks to Spiking Neural Networks | |
| CN116629327A (zh) | 一种基于量化ann的脉冲神经网络转化训练方法、装置及芯片 |
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 |