一种低延迟局部二值脉冲神经网络及其训练方法

未命名 09-29 阅读:90 评论:0


1.本发明涉及二值脉冲神经网络及其训练方法,具体涉及一种具有精度损失估计器的低延迟局部二值脉冲神经网络及其训练方法。


背景技术:

2.脉冲神经网络是一种受大脑启发的模型,具有更强的时空信息处理能力和计算能量效率。然而,随着网络深度的增加,由网络权重引起的存储问题逐渐引起人们的关注。受人工神经网络量化技术的启发,引入二值脉冲神经网络来解决存储问题。由于缺乏合适的学习算法,脉冲神经网络通常通过人工神经网络到脉冲神经网络的转换来获得,其精度将受到训练的人工神经网络的限制。对于二值脉冲神经网络,通常根据实验经验将第一层和最后一层的权重进行二值化操作,以减少精度下降。这种方法通常有效,但无法在精度和空间量化之间取得平衡。此外,脉冲神经网络通常需要足够的时间步长来模拟神经动力学和编码信息,并且需要很长时间才能收敛,导致计算成本增大。


技术实现要素:

3.本发明的目的是解决现有二值脉冲神经网络根据实验经验将第一层和最后一层的权重进行二值化操作时无法在精度和空间量化之间取得平衡,并且脉冲神经网络通常需要足够的时间步长来模拟神经动力学和编码信息,且需要很长时间才能收敛,进而导致计算成本增大的不足之处,而提供一种低延迟局部二值脉冲神经网络及其训练方法。
4.为了解决上述现有技术所存在的不足之处,本发明提供了如下技术解决方案:
5.一种低延迟局部二值脉冲神经网络,其特殊之处在于:包括输出输入依次连接的输入层、n个端到端的脉冲卷积块、全局平均池化块、输出层;n为正整数;
6.所述输入层用于接收外部输入的原始图像,并将其编码为脉冲信号;
7.每个所述脉冲卷积块包括输出输入依次连接的精度损失估计器、脉冲卷积层、批处理规范化层、神经元和平均池化层;
8.所述精度损失估计器用于决定网络权重是否二值化,精度损失估计器的输入端连接输入层的输出端;所述脉冲卷积层用于提取特征;所述批处理规范化层用于对每个批次的输入进行归一化;所述平均池化层用于下采样和特征压缩;
9.所述全局平均池化块包括输出输入依次连接的卷积层、全局平均池化层,所述卷积层的输入端连接平均池化层的输出端,所述全局平均池化层的输出端连接所述输出层的输入端;
10.所述输出层用于对输入的脉冲信号进行分类,得到预测结果。
11.进一步地,所述精度损失估计器包括输出输入依次连接的二值权重计算模块、损失计算模块和权重误差衡量因子计算模块,所述二值权重计算模块用于根据全精度权重计算二值权重,损失计算模块用于根据二值权重分别计算二值化损失、空间损失与传播损失,权重误差衡量因子计算模块用于根据二值化损失、空间损失与传播损失计算权重误差衡量
因子,以决定网络权重是否二值化。
12.同时,本发明提供一种上述的低延迟局部二值脉冲神经网络的训练方法,其特殊之处在于,包括步骤如下:
13.步骤1、对原始数据集的原始图像进行预处理;同时,建立上述低延迟局部二值脉冲神经网络,并设置超参数;
14.步骤2、将经过步骤1处理的原始数据集输入步骤1建立的低延迟局部二值脉冲神经网络的输入层进行编码操作;
15.步骤3、将经过步骤2处理的原始数据集输入精度损失估计器计算二值权重,根据二值权重分别计算二值化损失、空间损失与传播损失,进而得到权重误差衡量因子;
16.步骤4、根据步骤3的权重误差衡量因子,选择部分网络层为非二值化层,采用全精度权重传播,对剩余网络层的网络权重进行二值化处理,采用二值权重传播,最终通过输出层得到预测结果;
17.步骤5、通过损失函数衡量步骤4的预测结果;
18.步骤6、在反向传播过程中,使用替代梯度函数近似计算网络权重的梯度;根据网络权重的梯度,对网络权重进行优化调整;
19.步骤7、判断网络权重的精度波动是否小于等于1%,若是,则执行步骤8,否则返回步骤2;
20.步骤8、根据链式规则计算权值损失l,根据权值损失l与学习率lr的乘积l
×
lr对二值权重进行调整;
21.步骤9、判断步骤8得到的网络权重是否满足精度要求,若满足,则完成训练,否则返回步骤2。
22.进一步地,所述步骤3具体为:
23.步骤3.1、将全精度权重w作为起始点进行初始化,使用n个二值化权重块对全精度权重进行二值化近似,得到二值权重bw,公式如下:
[0024][0025]
其中,n为小于等于5的正整数,ni为bi的调整系数,bi表示第i个二值化权重块得到的二值权重;
[0026]bi
=sign(w-mean(w)+(i-n)std(w))
[0027]
其中,mean()是取平均值,std()是取标准差,sign()是符号函数;
[0028]
步骤3.2、采用经过步骤2处理的原始数据集对步骤3.1的二值权重bw进行评估,分别计算二值化损失、空间损失与传播损失,进而得到权重误差衡量因子,公式如下:
[0029][0030]
[0031]
其中,r(x)为权重误差衡量因子,f(x)用于描述正向传播与反向传播每层对整体传播过程的影响;x是层的指数,∈是等于的因子,suml表示网络总层数,k表示原始数据集的类别数;
[0032]al
是第l层的二值化损失,公式如下:
[0033][0034]
其中,是第l层的第i个全精度权重,是第l层的第i个近似权重,是第l层的输出通道数;l=1,

,l;
[0035]ml
是第l层的空间损失,公式如下:
[0036][0037]
其中,是当第l层的输出通道数等于1时获得的a
l
,是当第l层的输出通道数等于权重总数时获得的a
l

[0038]
进一步地,步骤4中,所述部分网络层为步骤3.2中r(x)最大的2层。
[0039]
进一步地,所述步骤8具体为:
[0040]
根据链式规则计算权值损失l,并得到权值损失l与学习率lr的乘积l
×
lr;选择与l
×
lr最相近的n
ibi
,将其对应的bi由非零变为零或由零变为非零。
[0041]
进一步地,所述步骤5具体为:
[0042]
使用均方误差mse作为损失函数,为预测值f(x)与目标值y之间差值平方和的均值,公式如下:
[0043][0044]
进一步地,步骤6中,所述替代梯度函数h(u)如下:
[0045][0046]
其中,u为膜电压,sign()为符号函数,v
th
为阈值,a为决定曲线的尖锐程度的参数。
[0047]
进一步地,步骤1中,所述对原始数据集的原始图像进行预处理具体为:
[0048]
步骤a、将原始数据集中的原始图像填充成正方形,所述正方形大小为4,单位为像素;
[0049]
步骤b、对步骤a的正方形进行随机裁剪,得到剪裁后图像;
[0050]
步骤c、以0.5的概率随机水平翻转步骤b的剪裁后图像,得到翻转后图像;
[0051]
步骤d、对步骤c的翻转后图像进行逐通道标准化;
[0052]
x_normalized=(x0-mean)/std
[0053]
其中,x0是翻转后图像的原始值,mean是该通道的均值,std是该通道的标准差,x_normalized是翻转后图像的标准化值。
[0054]
进一步地,步骤1中,所述超参数中阈值v
th
为0.5,学习率lr初始化为0.001。
[0055]
与现有技术相比,本发明的有益效果是:
[0056]
(1)本发明一种低延迟局部二值脉冲神经网络,包括输入层、n个端到端的脉冲卷积块、全局平均池化块、输出层;本发明在脉冲卷积块中设置有精度损失估计器,用于通过估计不同网络层对网络精度的影响,在网络训练期间自动选择进行二值化和非二值化网络层,并且考虑了二值化引起的误差、权重存储空间的大小以及网络传播过程中层次的影响这三方面因素,以实现在精度和空间量化之间的平衡。
[0057]
(2)本发明一种低延迟局部二值脉冲神经网络的训练方法,首先使用n个二值化权重块来进行全精度权值的二值化逼近,并将其归类为求最优权系数的问题;其次,当神经网络训练趋于稳定时,由于系数优化已不能满足提高精度的要求,本发明通过调整二值权重可以进一步提高精度,从而减少了二值权重带来的误差,进一步降低了达到训练瓶颈的网络损耗,使网络性能接近全精度网络。
[0058]
(3)本发明一种低延迟局部二值脉冲神经网络的训练方法,平衡了网络的量化和识别能力,使网络保持了相当于全精度网络的识别能力,并减少了大量的存储空间,从而使该网络可以使用较少的时间步长来获得更好的识别精度。
附图说明
[0059]
图1为本发明一种低延迟局部二值脉冲神经网络的结构示意图;
[0060]
图2为本发明实施例中脉冲卷积块的结构示意图;
[0061]
图3为本发明实施例中全局平均池化块的结构示意图;
[0062]
图4为本发明一种低延迟局部二值脉冲神经网络的训练方法的流程图。
具体实施方式
[0063]
下面结合附图和示例性实施例对本发明作进一步地说明。
[0064]
参照图1至图3,一种低延迟局部二值脉冲神经网络,包括输出输入依次连接的输入层、n个端到端的脉冲卷积块、全局平均池化块、输出层;n为正整数。
[0065]
输入层用于接收外部输入的原始图,并将其编码为脉冲信号。
[0066]
每个脉冲卷积块包括输出输入依次连接的精度损失估计器、脉冲卷积层、批处理规范化层、神经元和平均池化层。
[0067]
精度损失估计器用于决定网络权重是否二值化,精度损失估计器的输入端连接输入层的输出端;精度损失估计器包括输出输入依次连接的二值权重计算模块、损失计算模块和权重误差衡量因子计算模块,二值权重计算模块用于根据全精度权重计算二值权重,损失计算模块用于根据二值权重分别计算二值化损失、空间损失与传播损失,权重误差衡量因子计算模块用于根据二值化损失、空间损失与传播损失计算权重误差衡量因子,以决定网络权重是否二值化。
[0068]
脉冲卷积层用于提取特征,脉冲卷积层的卷积核个数与其输出通道数相同,每个卷积核都由一个神经元组成,本实施例中采用lif神经元;批处理规范化层用于对每个批次的输入进行归一化;平均池化层用于下采样和特征压缩。
[0069]
全局平均池化块包括输出输入依次连接的卷积层、全局平均池化层,卷积层的输
入端连接平均池化层的输出端,卷积层为一层,全局平均池化层的输出端连接输出层的输入端,全局平均池化层为一层。卷积层设置有神经元,神经元个数与卷积层的卷积核个数一致。
[0070]
输出层用于对输入的脉冲信号进行分类,得到预测结果。
[0071]
参照图4,一种上述低延迟局部二值脉冲神经网络的训练方法,包括步骤如下:
[0072]
步骤1、对原始数据集的原始图像进行预处理;同时,基于lif神经元,建立权利要求1所述的低延迟局部二值脉冲神经网络,并设置超参数,其中设置阈值v
th
为0.5,学习率lr初始化为0.001;
[0073]
对原始数据集进行预处理具体为:
[0074]
步骤a、将原始数据集中的原始图填充成正方形,正方形大小为4,单位为像素;
[0075]
步骤b、对步骤a的正方形进行随机裁剪,得到剪裁后图像;
[0076]
步骤c、以0.5的概率随机水平翻转步骤b的剪裁后图像,得到翻转后图像;
[0077]
步骤d、对步骤c的翻转后图像进行逐通道标准化;
[0078]
x_normalized=(x0-mean)/std
[0079]
其中,x0是翻转后图像的原始值,mean是该通道的均值,std是该通道的标准差,x_normalized是翻转后图像的标准化值;
[0080]
步骤2、将经过步骤1处理的原始数据集输入步骤1建立的局部二值脉冲神经网络的输入层进行编码操作;
[0081]
步骤3、将经过步骤2处理的原始数据集输入精度损失估计器计算二值权重,根据二值权重分别计算二值化损失、空间损失与传播损失,进而得到权重误差衡量因子;
[0082]
步骤3.1、将全精度权重w作为起始点进行初始化,使用n个二值化权重块对全精度权重进行二值化近似,得到二值权重bw,公式如下:
[0083][0084]
其中,ni为bi的调整系数,bi表示第i个二值化权重块得到的二值权重;
[0085]bi
=sign(w-mean(w)+(i-n)std(w))
[0086]
其中,mean()是取平均值,std()是取标准差,sign()是符号函数
[0087]
本实施例,n取值为3,二值权重bw可以写为:
[0088]
bw≈n1b1+n2b2+n3b3[0089]
其中,n1=0.3,b1=1,n2=-0.5,b2=1,n3=-1.1,b3=1;
[0090]
步骤3.2、采用经过步骤2处理的原始数据集对步骤3.1的二值权重bw进行评估,分别计算二值化损失、空间损失与传播损失,进而得到权重误差衡量因子,公式如下:
[0091][0092]
[0093]
其中,r(x)为权重误差衡量因子,f(x)用于描述正向传播与反向传播每层对整体传播过程的影响;x是层的指数,∈是等于的因子,suml表示网络总层数,k表示原始数据集的类别数;
[0094]al
是第l层的二值化损失,公式如下:
[0095][0096]
其中,是第l层的第i个全精度权重,是第l层的第i个近似权重,是第l层的输出通道数;l=1,

,l;
[0097]ml
是第l层的空间损失,公式如下:
[0098][0099]
其中,是当第l层的输出通道数等于1时获得的a
l
,是当第l层的输出通道数等于权重总数时获得的a
l

[0100]
步骤4、根据步骤3的权重误差衡量因子,选择步骤3中r(x)最大的2层为非二值化层,采用全精度权重传播,对剩余网络层的网络权重进行二值化处理,采用二值权重传播,最终通过输出层得到预测结果;
[0101]
步骤5、通过损失函数衡量步骤4的预测结果;
[0102]
选择使用均方误差作为损失函数,其是预测值f(x)与目标值y之间差值平方和的均值,公式如下:
[0103][0104]
步骤6、在反向传播过程中,使用替代梯度函数近似计算网络权重的梯度;根据网络权重的梯度,使用随机梯度下降对网络权重进行调整;
[0105]
替代梯度函数如下:
[0106][0107]
其中,u为膜电压,v
th
为阈值,a为决定曲线的尖锐程度的参数,a=1;
[0108]
步骤7、判断网络权重的精度波动是否小于等于1%,若是,则执行步骤8,否则返回步骤2;
[0109]
步骤8、根据链式规则计算权值损失l,并得到权值损失l与学习率lr的乘积l
×
lr;选择与l
×
lr最相近的n
ibi
,将其对应的bi由非零变为零或由非零变为非零,随后执行步骤9;
[0110]
如计算得到l
×
lr=-0.45,则选择与l
×
lr最相近的n2b2,将b2由1变为0;
[0111]
步骤9、判断步骤8得到的网络权重是否满足精度要求,若满足,则完成训练,否则返回步骤2。
[0112]
步骤1中,lif神经元信息处理公式如下所示:
[0113][0114]
其中是t
i+1
时第l+1层第p个神经元的膜电压,是ti时第l+1层的第p个神经元输出,γ是时间常数,w
pq
代表到第p个神经元上的第q突触的权重,l
max
是第l层神经元的总数。
[0115][0116][0117]
其中,v
th
为阈值。

技术特征:
1.一种低延迟局部二值脉冲神经网络,其特征在于:包括输出输入依次连接的输入层、n个端到端的脉冲卷积块、全局平均池化块、输出层;n为正整数;所述输入层用于接收外部输入的原始图像,并将其编码为脉冲信号;每个所述脉冲卷积块包括输出输入依次连接的精度损失估计器、脉冲卷积层、批处理规范化层、神经元和平均池化层;所述精度损失估计器用于决定网络权重是否二值化,精度损失估计器的输入端连接输入层的输出端;所述脉冲卷积层用于提取特征;所述批处理规范化层用于对每个批次的输入进行归一化;所述平均池化层用于下采样和特征压缩;所述全局平均池化块包括输出输入依次连接的卷积层、全局平均池化层,所述卷积层的输入端连接平均池化层的输出端,所述全局平均池化层的输出端连接所述输出层的输入端;所述输出层用于对输入的脉冲信号进行分类,得到预测结果。2.根据权利要求1所述的一种低延迟局部二值脉冲神经网络,其特征在于:所述精度损失估计器包括输出输入依次连接的二值权重计算模块、损失计算模块和权重误差衡量因子计算模块,所述二值权重计算模块用于根据全精度权重计算二值权重,损失计算模块用于根据二值权重分别计算二值化损失、空间损失与传播损失,权重误差衡量因子计算模块用于根据二值化损失、空间损失与传播损失计算权重误差衡量因子,以决定网络权重是否二值化。3.一种权利要求1所述的低延迟局部二值脉冲神经网络的训练方法,其特征在于,包括步骤如下:步骤1、对原始数据集的原始图像进行预处理;同时,建立权利要求1所述的低延迟局部二值脉冲神经网络,并设置超参数;步骤2、将经过步骤1处理的原始数据集输入步骤1建立的低延迟局部二值脉冲神经网络的输入层进行编码操作;步骤3、将经过步骤2处理的原始数据集输入精度损失估计器计算二值权重,根据二值权重分别计算二值化损失、空间损失与传播损失,进而得到权重误差衡量因子;步骤4、根据步骤3的权重误差衡量因子,选择部分网络层为非二值化层,采用全精度权重传播,对剩余网络层的网络权重进行二值化处理,采用二值权重传播,最终通过输出层得到预测结果;步骤5、通过损失函数衡量步骤4的预测结果;步骤6、在反向传播过程中,使用替代梯度函数近似计算网络权重的梯度;根据网络权重的梯度,对网络权重进行优化调整;步骤7、判断网络权重的精度波动是否小于等于1%,若是,则执行步骤8,否则返回步骤2;步骤8、根据链式规则计算权值损失l,根据权值损失l与学习率lr的乘积l
×
lr对二值权重进行调整;步骤9、判断步骤8得到的网络权重是否满足精度要求,若满足,则完成训练,否则返回步骤2。4.根据权利要求3所述的一种低延迟局部二值脉冲神经网络的训练方法,其特征在于,
所述步骤3具体为:步骤3.1、将全精度权重w作为起始点进行初始化,使用n个二值化权重块对全精度权重进行二值化近似,得到二值权重bw,公式如下:其中,n为小于等于5的正整数,n
i
为b
i
的调整系数,b
i
表示第i个二值化权重块得到的二值权重;b
i
=sign(w-mean(w)+(i-n)std(w))其中,mean()是取平均值,std()是取标准差,sign()是符号函数;步骤3.2、采用经过步骤2处理的原始数据集对步骤3.1的二值权重bw进行评估,分别计算二值化损失、空间损失与传播损失,进而得到权重误差衡量因子,公式如下:算二值化损失、空间损失与传播损失,进而得到权重误差衡量因子,公式如下:其中,r(x)为权重误差衡量因子,f(x)用于描述正向传播与反向传播每层对整体传播过程的影响;x是层的指数,∈是等于的因子,suml表示网络总层数,k表示原始数据集的类别数;a
l
是第l层的二值化损失,公式如下:其中,是第l层的第i个全精度权重,是第l层的第i个近似权重,是第l层的输出通道数;l=1,

,l;m
l
是第l层的空间损失,公式如下:其中,是当第l层的输出通道数等于1时获得的a
l
,是当第l层的输出通道数等于权重总数时获得的a
l
。5.根据权利要求4所述的一种低延迟局部二值脉冲神经网络的训练方法,其特征在于:步骤4中,所述部分网络层为步骤3.2中r(x)最大的2层。6.根据权利要求4所述的一种低延迟局部二值脉冲神经网络的训练方法,其特征在于,所述步骤8具体为:根据链式规则计算权值损失l,并得到权值损失l与学习率lr的乘积l
×
lr;选择与l
×
lr最相近的n
i
b
i
,将其对应的b
i
由非零变为零或由零变为非零。
7.根据权利要求3所述的一种低延迟局部二值脉冲神经网络的训练方法,其特征在于,所述步骤5具体为:使用均方误差mse作为损失函数,为预测值f(x)与目标值y之间差值平方和的均值,公式如下:8.根据权利要求3所述的一种低延迟局部二值脉冲神经网络的训练方法,其特征在于,步骤6中,所述替代梯度函数h(u)如下:其中,u为膜电压,sign()为符号函数,v
th
为阈值,a为决定曲线的尖锐程度的参数。9.根据权利要求3所述的一种低延迟局部二值脉冲神经网络的训练方法,其特征在于,步骤1中,所述对原始数据集的原始图像进行预处理具体为:步骤a、将原始数据集中的原始图像填充成正方形,所述正方形大小为4,单位为像素;步骤b、对步骤a的正方形进行随机裁剪,得到剪裁后图像;步骤c、以0.5的概率随机水平翻转步骤b的剪裁后图像,得到翻转后图像;步骤d、对步骤c的翻转后图像进行逐通道标准化;x_normalized=(x0-mean)/std其中,x0是翻转后图像的原始值,mean是该通道的均值,std是该通道的标准差,x_normalized是翻转后图像的标准化值。10.根据权利要求3所述的一种低延迟局部二值脉冲神经网络的训练方法,其特征在于:步骤1中,所述超参数中阈值v
th
为0.5,学习率lr初始化为0.001。

技术总结
本发明涉及二值脉冲神经网络及其训练方法,具体涉及一种具有精度损失估计器的低延迟局部二值脉冲神经网络及其训练方法,用于解决现有二值脉冲神经网络根据实验经验将第一层和最后一层的权重进行二值化操作时无法在精度和空间量化之间取得平衡,并且脉冲神经网络通常需要足够的时间步长来模拟神经动力学和编码信息,且需要很长时间才能收敛,进而导致计算成本增大的不足之处。该低延迟局部二值脉冲神经网络包括输入层、N个端到端的脉冲卷积块、全局平均池化块、输出层;同时,本发明公开一种上述低延迟局部二值脉冲神经网络的训练方法。方法。方法。


技术研发人员:徐长卿 裴乙鉴 刘毅 杨银堂
受保护的技术使用者:西安电子科技大学
技术研发日:2023.06.30
技术公布日:2023/9/23
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐