本发明专利技术的脉冲神经网络训练方法、装置以及终端,通过脉冲神经网络,根据输入实值计算对应的输出脉冲编码;对所述输出脉冲编码进行脉冲解码,以获得输出实值;基于误差函数,根据所述输出实值与所述输入实值所对应的数据标签计算当前网络计算误差,以供在未达到目标精度的情况下更新所述脉冲神经网络的网络参数。本发明专利技术在脉冲神经网络训练中所需的脉冲周期数少,模型精度比传统方法高,同时训练时间比常规的直接训练方法短。规的直接训练方法短。规的直接训练方法短。
【技术实现步骤摘要】
脉冲神经网络训练方法、装置以及终端
[0001]本专利技术涉及数据处理领域,特别是涉及一种脉冲神经网络训练方法、装置以及终端。
技术介绍
[0002]深度神经网络(DNN)研究近年来取得了飞速发展并得到初步应用。然而实现这样的算法,通常需要消耗大量的算力。以YOLO
‑
V3为例,在416*416像素分辨率输入下,需要658.6亿次的浮点计算。当输入尺寸增长到608,则需要1406.9亿次。
[0003]另一方面,脉冲神经网络(SNN)近年来以其低功耗和更接近人脑的特点吸引了学术界和产业界的关注。在脉冲神经网络中,树突是接收脉冲的单元,轴突是发送脉冲的单元,一个神经元通过轴突连接到多个树突,树突和轴突的连接点称为突触。轴突发送脉冲后,所有和这一轴突有突触连接的树突会收到脉冲,进而影响到轴突下游神经元。神经元将来自多个轴突的脉冲加权相加并与当前的膜电压累加,如果数值超过阈值,就向下游发送一个脉冲。脉冲神经网络内传播的是1比特的脉冲,脉冲的激活频率比较低,并且只需要加减法运算,没有乘法运算。相比于基于深度学习的神经网路,脉冲神经网络功耗更低。
[0004]将深度神经网络脉冲化转成脉冲神经网络,可以充分利用脉冲神经网络的低功耗优势。
[0005]除此之外,在很多实际工业场景条件下,用于训练网络的数据集往往不全面,训练的网络泛化能力较弱,加之运行时噪音较大,传统神经网络鲁棒性相对较差。脉冲神经网络因为其只传递脉冲的特性,在有限的信息量下尽可能地减小无关信息传入到下一层,因此抗干扰能力与泛化能力往往更强。不同于ANN(人工神经网络)模型,SNN模型的激活函数为阶跃函数。因为过程中涉及到了阶跃函数,其反向导数为冲击奇异函数,其不可导的性质给训练SNN提出了挑战。
[0006]目前脉冲神经网络主要采用两种方法获得,转换法和直接训练法。在“Optimal ANN
‑
SNN Conversion for Fast and Accurate Inference in Deep Spiking Neural Networks”一文中,作者详细叙述了如何采用转换法将训练好的ANN模型权重换算成对应的SNN权重。在“Going Deeper With Directly
‑
Trained Larger Spiking Neural Networks”中提出了利用导数替换方式直接训练SNN模型的流程。训练过程中,将阶跃函数的反向导数替换为sigmoid导数或者方波函数等,避免了奇异函数无法向后传播的问题。
[0007]然而,转换法由于其数学逼近的特性往往需要很多的脉冲周期(>100)才能逼近ANN模型,模型在推理阶段实时性差。直接训练方法解决了转换法脉冲周期数多的问题,但是训练时间过长(对应ANN版本的很多倍),在物体识别等回归问题的场景下精度也偏低。
技术实现思路
[0008]鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种脉冲神经网络训练方法,用于解决现有技术中出现的以上技术问题。
for Energy
‑
Effificient Object Detection
’
中脉冲网络训练方式在不同脉冲周期下的效果对比示意图。
[0026]图7显示为本专利技术一实施例中训练的模型在不同周期数下的效果示意图。
[0027]图8显示为本专利技术一实施例中的脉冲神经网络模型装置的结构示意图。
[0028]图9显示为本专利技术一实施例中的脉冲神经网络模型终端的结构示意图。
具体实施方式
[0029]以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0030]需要说明的是,在下述描述中,参考附图,附图描述了本专利技术的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本专利技术的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本专利技术的实施例的范围仅由公布的专利的权利要求书所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本专利技术。空间相关的术语,例如“上”、“下”、“左”、“右”、“下面”、“下方”、
““
下部”、“上方”、“上部”等,可在文中使用以便于说明图中所示的一个元件或特征与另一元件或特征的关系。
[0031]在通篇说明书中,当说某部分与另一部分“连接”时,这不仅包括“直接连接”的情形,也包括在其中间把其它元件置于其间而“间接连接”的情形。另外,当说某种部分“包括”某种构成要素时,只要没有特别相反的记载,则并非将其它构成要素,排除在外,而是意味着可以还包括其它构成要素。
[0032]其中提到的第一、第二及第三等术语是为了说明多样的部分、成分、区域、层及/或段而使用的,但并非限定于此。这些术语只用于把某部分、成分、区域、层或段区别于其它部分、成分、区域、层或段。因此,以下叙述的第一部分、成分、区域、层或段在不超出本专利技术范围的范围内,可以言及到第二部分、成分、区域、层或段。
[0033]再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
[0034]本专利技术实施例中提供一种脉冲神经网络训练方法、装置以及终端,通过基于脉冲神经网络,根据输入实值计算对应的输出脉冲编码;对所述输出脉冲编码进行脉冲解码,以获得输出实值;基于误差函数,根据所述输出实值与所述输入实值所对应的数据标签计算当前网络计算误差,以供在未达到目标精度的情况下更新所述脉冲神经网络的网络参数。本专利技术在脉冲神经网络训练中所需的脉冲周期数少,模型精度比传统方法高,同时训练时
间比常规的直接训练方法短。
[0035]下面以附图为参考,针对本专利技术的实施例进行详细说明,以便本专利技术所述
的技术人员能够容易地实施。本专利技术可以以多种不同形态体现,并不限于此处说明的实施例。
[0036]如图1展示本专利技术实施例中的一种脉冲神经网络训练方法的流程示意图。
[0037]所述方法包括:
[0038]步骤S11:基于脉冲神经网络,根本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种脉冲神经网络训练方法,其特征在于,包括:基于脉冲神经网络,根据输入实值计算对应的输出脉冲编码;对所述输出脉冲编码进行脉冲解码,以获得输出实值;基于误差函数,根据所述输出实值与所述输入实值所对应的数据标签计算当前网络计算误差,以供在未达到目标精度的情况下更新所述脉冲神经网络的网络参数。2.根据权利要求1中所述的脉冲神经网络训练方法,其特征在于,所述脉冲神经网络采用优化的LIF神经元模型;其中,所述优化的LIF神经元模型计算方式包括:在所述LIF模型中Leaky
‑
Integrate计算与Fire计算之间均插入批归一化计算。3.根据权利要求2中所述的脉冲神经网络训练方法,其特征在于,所述批归一化计算采用的β参数β
spike
为:β
spike
=β+th;其中,β为传统归一化计算采用的β参数,th为神经元电压阈值。4.根据权利要求3中所述的脉冲神经网络训练方法,其特征在于,所述神经元模型的每一计算层的电压衰减参数以及神经...
【专利技术属性】
技术研发人员:陈旭,陈克林,杨军民,梁龙飞,
申请(专利权)人:上海新氦类脑智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。