一种基于自回落神经元模型的脉冲神经网络的训练方法

文档序号:33122319发布日期:2023-02-01 04:10阅读:29来源:国知局
一种基于自回落神经元模型的脉冲神经网络的训练方法

1.本发明涉及脉冲神经网络技术领域,具体涉及一种基于自回落神经元模型的脉冲神经网络的训练方法。


背景技术:

2.随着神经网络的发展,脉冲神经网络的能耗低、并行能力更强,在专门的神经形态计算平台上可以加速运算效率,得到了广泛的应用。然而随着网络结构的复杂化,脉冲发射频率也随之骤增,产生更多的计算与存储消耗,同时冗杂的脉冲序列可能会降低神经网络的工作效率。
3.lif神经元是目前最常用的神经元,该模型无需刻意描述动作电位的形状。为了得到瞬时电压与输入电流的关系,使用电学的基本理论来解释该问题。膜电压上升到阈值时就会引起动作电位从而产生脉冲,在没有输入的情况下,膜电位会指数衰减到静息电位。随着网络结构与前神经元数量的增加,将导致后神经元膜电压的快速积累,由于常规神经元较为单一的脉冲触发机制,会造成脉冲激发的频率骤增并形成冗杂的脉冲序列,使得神经元处理过多信息甚至更新为错误的神经元状态。
4.中国专利cn114037047a公开了一种脉冲神经网络的训练方法,具体是将目标卷积神经网络转换为初始脉冲神经网络,同时在时间域和空间域对所述初始脉冲神经网络进行训练,解决了完成一次前向推理所需要的时间步长较长的问题。但是使用转化的方法获得脉冲神经网络受到人工神经网络的精度与结果等方面约束,且训练成本高。
5.中国专利cn113255905a公开了脉冲神经网络中神经元的信号处理方法及该网络训练方法,具体是将多脉冲机制引入神经元的信号处理,同时添加抑制神经元活跃程度作为损失等技术手段,实现了脉冲神经网络高效训练。虽然使用自学习的训练方式,引入了多脉冲机制,然而该机制导致了脉冲数的增加。同时增加了不同的损失计算,在两者机制的共同作用下,将导致网络产生额外计算消耗。


技术实现要素:

6.本发明的目的是解决随着现有脉冲神经网络的复杂化,脉冲发射频率增加,产生了更多的计算与存储消耗,使得神经网络的精度与工作效率均有所降低的问题,而提供一种基于自回落神经元模型的脉冲神经网络的训练方法。
7.为达到上述目的,本发明采用的技术方案为:
8.一种基于自回落神经元模型的脉冲神经网络的训练方法,其特殊之处在于,包括以下步骤:
9.步骤1、采集接收原始图像并进行预处理,设定脉冲神经网络的结构参数,建立脉冲神经网络;
10.所述脉冲神经网络包括若干层,每层至少包括一个神经元;
11.步骤2、利用脉冲神经网络中的神经元对预处理后的原始图像进行编码生成脉冲
序列,再进行信号处理,生成新的脉冲序列;
12.神经元对编码后的脉冲序列进行信号处理具体包括接收期、积累期和激活期;所述接收期为:至少一个神经元接收预处理后的脉冲序列或上层神经元输出的脉冲序列;所述积累期为:神经元基于自身膜电压与接收的脉冲序列计算求和,更新神经元当前膜电压;所述激活期为:设定初始激发阈值,观察神经元当前膜电压的状态,在其满足激发条件时,触发神经元激发脉冲;
13.所述神经元的激发条件为:在单个模拟时间步长内,神经元当前膜电压变化状态同时满足:

当前膜电压超过初始激发阈值;

当前膜电压低于该神经元上一时刻膜电压;
14.步骤3、完成神经网络正向传输,利用损失函数计算脉冲神经网络的预测值与脉冲神经网络目标值之间的误差,获得脉冲神经网络的损失;
15.步骤4、根据脉冲神经网络的损失,采用误差反向传播算法对脉冲神经网络进行训练;
16.步骤5、设定脉冲神经网络精度阈值,当脉冲神经网络的损失小于等于精度阈值q时,结束训练;反之,调整脉冲神经网络结构或结构参数,返回步骤2,重新训练脉冲神经网络,直至获得满足精度要求的脉冲神经网络。
17.进一步地,步骤2的激活期中,所述神经元激发脉冲的幅度大小由当前膜电压与初始激发阈值的比值关系决定;
18.第n+1层神经元在t时刻的输出o
t,n+1
表示为:
[0019][0020]
其中,v
th
表示初始激发阈值;u
t,n+1
表示第n+1层神经元在t时刻的当前膜电压;u
t-1,n+1
表示第n+1层神经元在t-1时刻的膜电压。
[0021]
进一步地,步骤2中,所述神经元激发脉冲的幅度大小为当前膜电压与初始激发阈值的比值高斯函数向下取整的值、或者比值高斯函数向上取整的值、或者取整后数值的线性变换或非线性变换。
[0022]
进一步地,步骤2中还包括在激活期中设定脉冲的最大激发上限,以限制脉冲的过度增大,兼顾时间与空间的需求,提高其脉冲序列的利用率;所述神经元激发脉冲的幅度大小为当前膜电压与初始激发阈值的比值关系值与设定脉冲的最大激发上限值中的较小值。
[0023]
进一步地,步骤2积累期中第n+1层神经元在t时刻的当前膜电压u
t,n+1
表示为:
[0024]ut,n+1
=γu
t-1,n+1
(1-o
t-1,n+1
)+w
not,n-1
[0025]
其中,γ表示时间常数;u
t-1,n+1
表示第n+1层神经元在t-1时刻的当前膜电压;o
t-1,n+1
表示第n+1层神经元在t-1时刻的输出;wn表示第n层神经元的网络权重。
[0026]
进一步地,步骤3中,所述损失函数为脉冲神经网络的预测值与脉冲神经网络目标值之间的均方误差,表示为:
[0027][0028]
其中,xi表示脉冲神经网络中最后一层第i个神经元的预测值;y表示脉冲神经网
络目标值;n表示脉冲神经网络中最后一层神经元的数量,即神经网络需要进行分类的种类数。
[0029]
进一步地,步骤4中,所述误差反向传播算法中采用替代梯度函数进行反向传播,用于调整脉冲神经网络的权重;
[0030]
所述替代梯度函数h(u),表示为:
[0031][0032]
其中,u表示最终输出神经元的膜电压;sign()表示符号函数;a为决定曲线尖锐程度的参数;v
th
表示初始激发阈值。
[0033]
进一步地,所述决定曲线尖锐程度的参数a=1。
[0034]
进一步地,步骤2中,所述脉冲的最大激发上限为3;步骤5中,q=0.1。
[0035]
进一步地,步骤1具体为:
[0036]
1.1、将原始图像填充成正方形,填充大小为4;
[0037]
1.2、随机裁剪填充后的图像;
[0038]
1.3、以概率0.5随机水平翻转裁剪后的图像;
[0039]
1.4、对裁剪后的图像进行等比例放缩,使得其落入[0,1]区间;
[0040]
1.5、设定脉冲神经网络的结构参数,包括超参数学习率为0.001、初始激发阈值为0.5。各因素条件如学习率衰减策略等可自由选择。
[0041]
与现有技术相比,本发明具有的有益技术效果如下:
[0042]
1、本发明提供的基于自回落神经元模型的脉冲神经网络的训练方法,针对基于神经元构成脉冲神经网络,其中只有当神经元膜电压超过初始阈值且其膜电压开始衰减时,即神经元模型自身膜电压回落时才会触发脉冲激发,以减少发射脉冲数,简化脉冲序列。同时,脉冲激发为高可变脉冲,当膜电压符合激发条件后,将基于自身膜电压与初始阈值比值而决定最终的脉冲幅度大小,以此弥补了脉冲减少带来的精度损失。
[0043]
2、本发明提供的基于自回落神经元模型的脉冲神经网络的训练方法,用于处理信息的控制与传输过程。在神经元的作用下,网络中的神经元脉冲激发数将大幅度减少,获得的更加稀疏的脉冲序列节约大量的存储资源与计算消耗,同时使用新型神经元构建脉冲神经网络并进行训练。
[0044]
3、本发明基于自回落神经元模型的脉冲神经网络的训练方法中神经元处理数据的方式采用了与现有神经网络不同的脉冲激发机制。通常情况下,膜电压超过阈值,则激发脉冲,而本发明设定神经元膜电压超过初始阈值并保持增长态势,直至出现膜电压衰减时方才激发脉冲,大幅减少脉冲的产生,极大减少了计算消耗。
[0045]
4、本发明基于自回落神经元模型的脉冲神经网络的训练方法中神经元处理数据的方式采用了与现有神经网络不同的脉冲模式。通常情况下,膜电压超过阈值则激发01二值脉冲。而本发明设定神经元膜电压超过初始阈值激发脉冲的幅度大小由膜电压与初始阈值比值确定,同时,设置脉冲的最大激发上限,以限制脉冲的过度增大,在增加脉冲信息表示能力的同时,兼顾时间与空间的需求,提高其脉冲序列的利用率。
附图说明
[0046]
图1为本发明基于神经元的脉冲神经网络实施例中脉冲神经网络的结构示意图;
[0047]
图2为本发明实施例中神经元脉冲激发机制原理图;
[0048]
图3为本本发明基于自回落神经元模型的脉冲神经网络的训练方法流程图。
具体实施方式
[0049]
为使本发明的目的、优点和特征更加清楚,以下结合附图和具体实施例对本发明提出的一种基于自回落神经元模型的脉冲神经网络的训练方法作进一步详细说明。本领域技术人员应当理解的是,这些实施方式仅仅用来解释本发明的技术原理,目的并不是用来限制本发明的保护范围。
[0050]
本实施例以用于识别fashion-mnist数据集神经网络为例,说明本发明。如图1所示,该基于新型神经元的脉冲神经网络,包括依次连接的编码层、第一下采样层、卷积层、第二下采样层、第一全连接层和第二全连接层。神经网络每层至少包含一个神经元,编码层用于接收原始数据并对其进行编码获得脉冲序列,卷积层用于提取图片的特征信息,第一下采样层与第二下采样层均通过对邻域内的特征点求取平均值用于减少计算量,第一全连接层和第二全连接层均用于实现神经网络的学习。若需要进行更为复杂的分类任务,可根据自身经验改变网络层数和每层神经元数量,以适应更为复杂的数据处理任务。
[0051]
对上述脉冲神经网络进行训练,具体包括以下步骤:
[0052]
步骤1、采集接收原始数据并进行预处理,设定脉冲神经网络的结构参数,建立脉冲神经网络;
[0053]
为了增加噪声数据,提升模型的鲁棒性与泛化能力,对原始数据集进行以下预处理:
[0054]
1.1、将原始图像填充成正方形,填充大小为4;
[0055]
1.2、随机裁剪填充后的图像;
[0056]
1.3、以一定概率(设定为0.5)随机水平翻转裁剪后的图像;
[0057]
1.4、对裁剪后的图像中每个通道进行标准化处理(normalization),即对裁剪后的图像进行等比例放缩,使得其落入一个特定的区间,如[0,1]区间;
[0058]
1.5、设定脉冲神经网络结构参数:初始激发阈值为0.5、脉冲的最大激发上限为3与超参数学习率为0.001。各因素条件如学习率衰减策略等可自由选择。
[0059]
步骤2、利用脉冲神经网络中的神经元对预处理后的原始图像进行编码生成脉冲序列,再进行信号处理,生成新的脉冲序列;
[0060]
神经元的信号处理具体为:
[0061]
接收期:至少一个神经元接受预处理后的脉冲序列或上层神经元输出的脉冲序列;
[0062]
积累期:神经元基于自身膜电压与接收的脉冲序列计算求和,更新神经元当前膜电压;
[0063]
积累期中第n+1层神经元在t时刻的当前膜电压u
t,n+1
表示为:
[0064]ut,n+1
=γu
t-1,n+1
(1-o
t-1,n+1
)+w
not,n-1
[0065]
其中,γ表示时间常数;u
t-1,n+1
表示第n+1层神经元在t-1时刻的当前膜电压;o
t-1,n+1
表示第n+1层神经元在t-1时刻的输出;wn表示第n层的网络权重。
[0066]
激活期:设定初始激发阈值,观察神经元当前膜电压的状态,在其满足激发条件时,触发神经元激发脉冲;
[0067]
神经元的激发条件为:在单个模拟时间步长内,神经元当前膜电压变化状态同时满足:当前膜电压是否超过初始阈值,以及当前膜电压低于该神经元上一时刻膜电压,即为满足脉冲激发要求,允许激发脉冲,其他情况不给予响应。
[0068]
神经元激发脉冲的幅度大小由当前膜电压与初始激发阈值的比值关系决定,可以为比值高斯函数向下取整的值,比值高斯函数向上取整的值,或者取整后数值的某种线性、非线性变换。
[0069]
第n+1层神经元在t时刻的输出o
t,n+1
表示为:
[0070][0071]
其中,v
th
表示初始激发阈值。
[0072]
基于不同数据集的复杂程度,可以设定脉冲的最大激发上限,以提高计算效率,将当前膜电压与初始激发阈值的比值关系值与设定脉冲的最大激发上限进行比较,选择其中较小值作为最终的激发脉冲的幅度。
[0073]
步骤3、完成神经网络传输,利用损失函数计算脉冲神经网络的预测值与脉冲神经网络目标值之间的误差,获得脉冲神经网络的损失;
[0074]
选择均方误差作为损失函数mse,表示为:
[0075][0076]
其中,xi表示脉冲神经网络中最后一层第i个神经元的预测值;y表示脉冲神经网络目标值;n表示脉冲神经网络中最后一层神经元的数量,即神经网络需要进行分类的种类数。
[0077]
步骤4、根据脉冲神经网络的损失,采用误差反向传播算法对脉冲神经网络进行训练。
[0078]
误差反向传播算法中具体是采用替代梯度函数进行反向传播,调整脉冲神经网络的权重。替代梯度函数h(u),表示为:
[0079][0080]
其中,u表示最终输出神经元的膜电压;sign()表示符号函数;a为决定曲线尖锐程度的参数,通常设为1。
[0081]
步骤5、设定脉冲神经网络精度阈值,当脉冲神经网络的损失小于等于精度阈值q=0.1时,结束训练;反之,调整脉冲神经网络结构或机构参数,重新训练直至获得满足精度要求的脉冲神经网络。
[0082]
综上,上述基于神经元的脉冲神经网络训练方法,神经元只有当膜电压超过初始阈值且膜电压开始衰减时才激发脉冲,以自身膜电压与初始阈值比值确定激发脉冲的幅度
大小,以弥补脉冲减少带来的精度损失,同时神经元脉冲激发数大幅度减少,获得的更加稀疏的脉冲序列节约大量的存储资源与计算消耗,经过神经元处理信号后,最后再对脉冲神经网络进行训练,得到适用复杂的数据处理任务的脉冲神经网络。
[0083]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1