CN112529176A - 一种加速脉冲神经网络的训练方法、终端及存储介质 - Google Patents
一种加速脉冲神经网络的训练方法、终端及存储介质 Download PDFInfo
- Publication number
- CN112529176A CN112529176A CN202011395802.9A CN202011395802A CN112529176A CN 112529176 A CN112529176 A CN 112529176A CN 202011395802 A CN202011395802 A CN 202011395802A CN 112529176 A CN112529176 A CN 112529176A
- Authority
- CN
- China
- Prior art keywords
- pulse sequence
- neural network
- neuron
- value
- initial
- 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
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种加速脉冲神经网络的训练方法、终端及存储介质,所述方法包括:获取用于训练的脉冲序列和初始突触权值,根据所述脉冲序列和所述初始突触权值生成脉冲神经元的输入信号;获取基于所述输入信号产生的实际输出脉冲序列;获取期望输出脉冲序列,根据所述实际输出脉冲序列以及所述期望输出脉冲序列对所述初始突触权值进行更新,以实现对脉冲神经网络进行训练。本发明通过主机设备读取图片数据并转成脉冲序列以及设定初始权值。然后将脉冲神经网络训练中最耗时的参数更新任务交由专门的加速设备处理,提高了参数更新的速度,进而加速了脉冲神经网络的训练过程。从而解决了现有技术中脉冲神经网络的训练过程耗时长的问题。
Description
技术领域
本发明涉及神经网络领域,尤其涉及的是一种加速脉冲神经网络的训练方法、终端及存储介质。
背景技术
脉冲神经网络作为第三代人工神经网络,其模拟脉冲神经元更加接近人类的神经模型,且加上了时间信息。脉冲神经网络使用脉冲作为其传输信息,脉冲是一种发生在时间上的离散事件,而不是一些连续值,这更符合信息在生物神经内传播的过程。因此,脉冲神经网络中的脉冲神经元是以生物突触结构为基础构建的脉冲神经元。脉冲神经元所进行的处理是接受由突触传递而来的脉冲,依据突触权重通过脉冲方程产生突出后膜电压。一旦电压超过某一阈值,该脉冲神经元向下一脉冲神经元发出脉冲信号。但是由于脉冲信号加上了时间要素,脉冲神经网络的计算量大幅增长,导致其训练过程需要大量的时间成本。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种一种加速脉冲神经网络的训练方法、终端及存储介质,旨在解决现有技术中脉冲神经网络训练过程耗时长的问题。
本发明解决问题所采用的技术方案如下:
第一方面,本发明实施例提供一种加速脉冲神经网络的训练方法,其中,所述方法应用于加速设备,包括:
获取用于训练的脉冲序列和初始突触权值,根据所述脉冲序列和所述初始突触权值生成脉冲神经元的输入信号;
获取基于所述输入信号产生的实际输出脉冲序列;
获取期望输出脉冲序列,根据所述实际输出脉冲序列以及所述期望输出脉冲序列对所述初始突触权值进行更新,将更新后的突触权值发送给主机设备以实现对脉冲神经网络进行训练。
在一种实施方式中,所述获取用于训练的脉冲序列和初始突触权值,根据所述脉冲序列和所述初始突触权值生成脉冲神经元的输入信号包括:
获取主机设备发送的调度指令,根据所述调度指令获取主机内存中存储的用于训练的脉冲序列和初始突触权值;
对所述脉冲序列和所述初始突触权值的乘积进行累积,将累积后得到数据作为脉冲神经元的输入信号。
在一种实施方式中,所述获取基于所述输入信号产生的实际输出脉冲序列包括:
获取基于所述输入信号产生的脉冲神经元的膜电位的数值;
根据所述脉冲神经元的膜电位的数值获取实际输出脉冲序列。
在一种实施方式中,所述获取基于所述输入信号产生的脉冲神经元的膜电位的数值包括:
获取突触前神经元的输入电流;
根据脉冲神经元模型计算脉冲神经元的膜电位变化量;
根据所述突触前神经元的输入电流、所述脉冲神经元的膜电位变化量以及脉冲神经元的膜电位方程计算基于所述输入信号产生的脉冲神经元的膜电位的数值。
在一种实施方式中,所述根据所述脉冲神经元的膜电位的数值获取实际输出脉冲序列包括:
将所述脉冲神经元的膜电位的数值与预设阈值进行比较,当所述脉冲神经元的膜电位的数值大于所述预设阈值时,获取所述脉冲神经元输出的脉冲序列;
将所述脉冲神经元输出的脉冲序列作为实际输出脉冲序列。
在一种实施方式中,所述获取期望输出脉冲序列,根据所述实际输出脉冲序列以及所述期望输出脉冲序列对所述初始突触权值进行更新,将更新后的突触权值发送给主机设备以实现对脉冲神经网络进行训练包括:
获取期望输出脉冲序列,根据预设的误差函数计算所述实际输出脉冲序列与所述期望输出脉冲序列之间的误差值;
根据所述误差值和所述初始突触权值生成目标突触权值集合;
将所述目标突触权值集合发送至主机设备,使所述主机设备基于所述目标突触权值集合对所述脉冲神经网络的每一层中间层的初始突触权值进行更新,将更新后的突触权值发送给主机设备以实现对脉冲神经网络进行训练。
在一种实施方式中,所述根据所述误差值和所述初始突触权值生成目标突触权值集合包括:
获取预设的期望误差值,将所述误差值与所述期望误差值进行比较;
当所述误差值大于或者等于所述期望误差值时,根据所述误差值和所述初始突触权值生成目标突触权值集合。
在一种实施方式中,所述当所述误差值大于或者等于所述期望误差值时,根据所述误差值和所述初始突触权值生成目标突触权值集合包括:
当所述误差值大于或者等于所述期望误差值时,根据所述误差值以及预设的反向传播学习算法,按照与所述脉冲神经网络输出层的连接距离由近到远的顺序依次计算所述脉冲神经网络的每一层中间层的初始突触权值的改变量;
根据所述脉冲神经网络的每一层中间层的初始突触权值和所述初始突触权值的改变量计算所述脉冲神经网络的每一层中间层的目标突触权值;
根据所有计算出的目标突触权值生成目标突触权值集合。
第二方面,本发明实施例还提供一种移动终端,其中,包括:处理器、与处理器通信连接的存储介质,所述存储介质适于存储多条指令;所述处理器适于调用所述存储介质中的指令,一致性实现上述任一项所述的一种加速脉冲神经网络的训练方法的步骤。
第三方面,本发明实施例还提供一种计算机可读存储介质,其上存储有多条指令,其中,所述指令适用于由处理器加载并执行,以实现上述任一项所述的一种加速脉冲神经网络的训练方法的步骤。
本发明的有益效果:本发明实施例通过获取用于训练的脉冲序列和初始突触权值,根据所述脉冲序列和所述初始突触权值生成脉冲神经元的输入信号;获取基于所述输入信号产生的实际输出脉冲序列;获取期望输出脉冲序列,根据所述实际输出脉冲序列以及所述期望输出脉冲序列对所述初始突触权值进行更新,以实现对脉冲神经网络进行训练。本发明通过主机设备读取图片数据并转成脉冲序列以及设定初始权值。然后将脉冲神经网络训练中最耗时的参数更新任务交由专门的加速设备处理,提高了参数更新的速度,进而加速了脉冲神经网络的训练过程。从而解决了现有技术中脉冲神经网络的训练过程耗时长的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种加速脉冲神经网络的训练方法的流程示意图。
图2是本发明实施例提供的获取输入信号的流程示意图。
图3是本发明实施例提供的获取实际输出脉冲序列的流程示意图。
图4是本发明实施例提供的对脉冲神经网络进行训练的流程示意图。
图5是本发明实施例提供的终端的原理框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
脉冲神经网络作为第三代人工神经网络,其模拟脉冲神经元更加接近人类的神经模型,且加上了时间信息。脉冲神经网络使用脉冲作为其传输信息,脉冲是一种发生在时间上的离散事件,而不是一些连续值,这更符合信息在生物神经内传播的过程。因此,脉冲神经网络中的脉冲神经元是以生物突触结构为基础构建的脉冲神经元。脉冲神经元所进行的处理是接受由突触传递而来的脉冲,依据突触权重通过脉冲方程产生突出后膜电压。一旦电压超过某一阈值,该脉冲神经元向下一脉冲神经元发出脉冲信号。但是由于脉冲信号加上了时间要素,脉冲神经网络的计算量大幅增长,导致其训练过程需要大量的时间成本。
针对现有技术的上述缺陷,本发明提供了一种加速脉冲神经网络的训练方法,通过主机设备与加速设备两者配合来加速脉冲神经网络的训练过程,让主机设备读取图片数据并转成脉冲序列以及设定初始权值。将主机完成的计算结果保存至全局变量中,交由加速设备进行反向传播训练加速工作,确定脉冲神经网络的目标权值,主机设备再获取所述目标权值,最后完成脉冲神经网络的训练。本发明将脉冲神经网络训练中最耗时的参数更新任务交由专门的加速设备处理,提高了参数更新的速度,进而加速了脉冲神经网络的训练过程。从而解决了现有技术中脉冲神经网络的训练过程耗时长的问题。
如图1所示,所述方法包括如下步骤:
步骤S100、获取用于训练的脉冲序列和初始突触权值,根据所述脉冲序列和所述初始突触权值生成脉冲神经元的输入信号。
本实施例的最终目标是对待训练脉冲神经网络中脉冲神经元连接的突触的权值进行更新,以实现对所述待训练脉冲神经网络的训练。因此首先需要获取用于训练的脉冲序列以及确定待训练脉冲神经网络中脉冲神经元连接的突触的初始权值,本实施例中将待训练脉冲神经网络中脉冲神经元连接的突触的初始权值作为初始突触权值。然后根据所述脉冲序列和所述初始突触权值生成脉冲神经元的输入信号,开始对待训练的脉冲神经网络进行训练。
在一种实现方式中,为了提高脉冲神经网络的训练效率,本实施例将生成用于训练的脉冲序列以及确定脉冲神经网络中脉冲神经元连接的突触的初始权值这两个步骤交由主机设备处理。具体地,主机设备首先读取训练图片,然后通过泊松脉冲编码将读取的训练图片转换成训练脉冲神经网络所需要的脉冲序列。此外主机设备还需要对所述待训练脉冲神经网络中脉冲神经元连接的突触的权值进行随机初始化操作,将所述随机初始化操作后得到的权值作为初始突触权值。然后主机设备将所述脉冲序列以及所述初始突触权值拷贝至自身设备的全局内存中,以供加速设备读取。
如图2所示,在一种实现方式中,所述步骤S100具体包括如下步骤:
步骤S110、获取主机设备发送的调度指令,根据所述调度指令获取主机内存中存储的用于训练的脉冲序列和初始突触权值;
步骤S120、对所述脉冲序列和所述初始突触权值的乘积进行累积,将累积后得到数据作为脉冲神经元的输入信号。
当启动加速任务以后,主机设备即执行设备内核任务,并向加速设备发送调度指令,以实现调度加速设备进行加速训练任务。当所述加速设备获取到所述主机设备发送的调度任务以后,即启动并开始训练任务,训练方式选取的后向传播方式进行训练。首先获取所述主机设备的主机内存中存储的先前生成的脉冲序列和计算出的初始突触权值,然后对所述脉冲序列和所述初始突触权值的乘积进行累积,将累积后得到数据作为脉冲神经元的输入信号,进行权值参数的训练。具体地,脉冲序列是脉冲神经网络中的传输信息,而脉冲神经网络中的神经元是以生物突触结构为基础构建的脉冲神经元,当将脉冲序列输入至脉冲神经网络以后,所述脉冲序列结合对应的突触权重共同产生传递给脉冲神经元的输入信号。举例说明,有N个输入的脉冲序列X与N个相应的突触权值ω,则者N个X和N个ω对应相乘并累加以后传递给脉冲神经元,即input=x1*ω1+x2*ω2+x3*ω3+Λxn*ωn。
为了完成脉冲神经网络的训练,如图1所示。所述方法还包括如下步骤:
步骤S200、获取基于所述输入信号产生的实际输出脉冲序列。
本实施例中脉冲神经网络的训练目标是对输入脉冲序列和期望输出脉冲序列,通过监督训练脉冲神经网络,调整突触权值,实现神经网络实际输出脉冲序列与期望输出脉冲序列之间的差距尽可能小。因此为了实现对脉冲神经网络的训练,首先需要获取脉冲神经元输出的实际输出脉冲序列。
如图3所示,在一种实现方式中,所述步骤200具体包括如下步骤:
步骤S210、获取基于所述输入信号产生的脉冲神经元的膜电位的数值;
步骤S220、根据所述脉冲神经元的膜电位的数值获取实际输出脉冲序列。
具体地,脉冲神经元对输入信号进行运算产生突触后膜电压。一旦输入信号使脉冲神经元的膜电位超过预设阈值,该脉冲神经元向下一脉冲神经元发出脉冲信号,该脉冲信号即为实际输出脉冲序列。换言之,只有在突触后膜电压超过预设阈值的情况下,脉冲神经元才会输出脉冲序列,因此为了获取实际输出脉冲序列,本实施例需要首先计算脉冲神经元的膜电位的数值。
为了计算脉冲神经元的膜电位的数值,在一种实现方式中,本实施例通过获取突触前神经元的输入电流,然后根据脉冲神经元模型计算脉冲神经元的膜电位变化量,最后根据所述突触前神经元的输入电流、所述脉冲神经元的膜电位变化量以及脉冲神经元的膜电位方程计算所述脉冲神经元的膜电位的数值。举例说明,根据IF神经元模型,当输入刺激使神经元的膜电位超过某个阈值时即产生一个尖峰脉冲,膜电位方程为:
其中,y>0为膜电位时间变化常数,I为突触前神经元的输入电流,当膜电位Vt超出阈值Vth电位时即产生放电脉冲,此时Vt的数值重置为静息电位Vrest。
获取到输入脉冲神经元的膜电位的数值之后,将所述脉冲神经元的膜电位的数值与预设阈值进行比较,当所述脉冲神经元的膜电位的数值大于所述预设阈值时,获取所述脉冲神经元输出的脉冲序列,将所述脉冲神经元输出的脉冲序列作为实际输出脉冲序列。
为了完成对脉冲神经网络的训练,如图1所示,所述方法还包括如下步骤:
步骤S300、获取期望输出脉冲序列,根据所述实际输出脉冲序列以及所述期望输出脉冲序列对所述初始突触权值进行更新,将更新后的突触权值发送给主机设备以实现对脉冲神经网络进行训练。
具体地,为了对脉冲神经网络进行监督学习,调整突触权值,本实施例在获取到脉冲神经元的实际输出脉冲序列以后,还需要获取预先设定的期望输出脉冲序列,通过所述实际输出脉冲序列与所述期望输出脉冲序列对所述初始突触权值进行更新,从而完成对脉冲神经网络的训练。
如图4所示,在一种实现方式中,所述步骤S300具体包括如下步骤:
步骤S310、获取期望输出脉冲序列,根据预设的误差函数计算所述实际输出脉冲序列与所述期望输出脉冲序列之间的误差值;
步骤S320、根据所述误差值和所述初始突触权值生成目标突触权值集合;
步骤S330、将所述目标突触权值集合发送至主机设备,使所述主机设备基于所述目标突触权值集合对所述脉冲神经网络的每一层中间层的初始突触权值进行更新,将更新后的突触权值发送给主机设备以实现对脉冲神经网络进行训练.
本实施例针对脉冲神经网络的主要训练目标是为了实现脉冲神经网络实际输出脉冲序列与期望输出脉冲序列之间的差距尽可能小,因此需要首先获取期望输出脉冲序列,根据预设的误差函数计算所述实际输出脉冲序列与所述期望输出脉冲序列之间的误差值。
然后根据所述误差值和所述初始突触权值生成目标突触权值集合。其中,所述目标突触权值集合包括脉冲神经网络中每一中间层用于更新现有的突触的权值的新的突触权值。
具体地,在获取目标突触权值集合之前,需要首先判断当前的初始突触权值是否需要更新。因此在一种实现方式中,需要获取预设的期望误差值,将所述误差值与所述期望误差值进行比较。然后,当所述误差值大于或者等于所述期望误差值时,表示当前脉冲神经网络中的突触的权值需要更新,因此需要根据所述误差值和所述初始突触权值生成用于更新权值的目标突触权值集合。而当所述误差值小于所述期望误差值时,表示当前脉冲神经网络的突触的权值不需要更新,则不需要对突触的权值进行改变,沿用所述初始突触权值即可。
为了获取目标突触权值集合,在一种实现方式中,本实施例在当所述误差值大于或者等于所述期望误差值时,根据所述误差值以及预设的反向传播学习算法,按照与所述脉冲神经网络输出层的连接距离由近到远的顺序依次计算所述脉冲神经网络的每一层中间层的初始突触权值的改变量。具体地,所述初始突触权值的改变量是由STDP(spike timedependent plasticity脉冲时间依赖可塑性)机制主导的,其中STDP机制指的是依据突触前后神经元放电时刻的差值调节突触电导值,从而改变突触前后神经元之间电流传输能力的大小。若神经元是兴奋性神经元:则当突触前神经元先于突触后神经元放电时,两神经元之间的突触连接得到加强;若突触后放电时刻先于突触前时则突触连接受到抑制。抑制性神经元恰恰相反:当突触前神经元先于突触后神经元放电时,突触连接受到抑制;反之,突触连接得到加强。
计算完毕所述脉冲神经网络的每一层中间层的初始突触权值的改变量以后,根据所述脉冲神经网络的每一层中间层的初始突触权值和所述初始突触权值的改变量计算所述脉冲神经网络的每一层中间层的目标突触权值。最后,根据所有计算出的目标突触权值生成目标突触权值集合。
具体地,反向传播学习算法是一种有监督学习方式,需要事先给定一个目标输出向量,并且给定一个期望的输出。反向传播学习算法处理信息的基本原理是:输入信号经过激活函数变换处理,通过中间层神经元(隐层神经元)作用于输出层神经元,从而产生输出信号,然后计算出实际输出向量与对应的期望输出向量之间的偏差,根据计算得到的偏差基于梯度下降规则更新输出层的连接权值。接着用此偏差估计计算输出层与直接前导层的偏差,再用计算的偏差更新前导层的连接权值;继续估计前导层前一层的偏差,形成将输出层表现出的偏差沿着与输入信号相反的方向逐层向输入层传递的过程,这样就可以得到所有其它各层的偏差,并用这些估计计算得到的偏差实现对各层连接权值的更新。通过使用误差反向传播算法对网络的权值进行反复的训练调整,使实际输出向量与期望输出向量能够尽可能地接近,最后当网络输出的向量与期望的目标向量间的偏差值达到规定的误差范围时学习结束,保留此时的网络权值和偏差。
生成目标突触权值集合以后,加速设备将所述目标突触权值集合发送至主机设备,使所述主机设备基于所述目标突触权值集合对所述脉冲神经网络的每一层中间层的初始突触权值进行更新,以完成对脉冲神经网络进行训练。
概括地讲,因为现有技术的反向传播学习算法要根据误差函数求导,使得误差函数值最小。而脉冲神经网络训练的脉冲序列是一些离散的序列,无法求导,因此本发明采用的预设的反向传播学习算法是改进过的反向传播学习算法。通过先给定一个期望输出脉冲序列,并随机初始化脉冲神经元连接的突触权值,将N个输入脉冲时间序列X与N个相应突触权值ω相乘并累加后传递给脉冲神经元,即input=x1*ω1+x2*ω2+x3*ω3+Λxn*ωn。然后脉冲神经元再对输入信号进行运算,当其膜电位超过激发阈值时发放一个脉冲,然后恢复到静息电位,等待下一次输入信号的来临。等到脉冲神经元发放脉冲完毕后,输出一条脉冲时间序列。再使用定义的误差函数(如下所示)计算实际输出与目标输出间的误差,并根据误差和算法更新突触权值。从而实现在脉冲神经网络训练中使用反向传播学习算法。
鉴于FPGA(Field-Programmable Gate Array,现场可编程门阵列)强大的计算能力,在一种实现方式中,将FPGA设备作为加速设备。FPGA具有计算速度快,面积小,,集成度高,并行计算,可重复配置等特点。FPGA是一种特殊的数字集成电路实现方式,具有低功耗、灵活性好、并行计算能力强等优点,成为神经网络的一大定制化平台。相较于传统的低能效硬件例如CPU或者GPU,高能效的FPGA设备更加助力于脉冲神经网络在嵌入端或者边缘端的应用。此外,相关实验成果也表明,本发明提出的一种加速脉冲神经网络的训练方法的加速结果与CPU+GPU异构计算平台相比,训练速度有显著提升。
基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图5所示。该智能终端包括通过系统总线连接的处理器、存储器、网络接口、显示屏。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种加速脉冲神经网络的训练方法。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏。
本领域技术人员可以理解,图5中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一种实现方式中,所述智能终端的存储器中存储有一个或者一个以上的程序,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行一种加速脉冲神经网络的训练方法的指令。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
综上所述,本发明公开了一种加速脉冲神经网络的训练方法、终端及存储介质,所述方法包括:获取用于训练的脉冲序列和初始突触权值,根据所述脉冲序列和所述初始突触权值生成脉冲神经元的输入信号;获取基于所述输入信号产生的实际输出脉冲序列;获取期望输出脉冲序列,根据所述实际输出脉冲序列以及所述期望输出脉冲序列对所述初始突触权值进行更新,以实现对脉冲神经网络进行训练。本发明通过主机设备读取图片数据并转成脉冲序列以及设定初始权值。然后将脉冲神经网络训练中最耗时的参数更新任务交由专门的加速设备处理,提高了参数更新的速度,进而加速了脉冲神经网络的训练过程。从而解决了现有技术中脉冲神经网络的训练过程耗时长的问题。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种加速脉冲神经网络的训练方法,其特征在于,所述方法应用于加速设备,包括:
获取用于训练的脉冲序列和初始突触权值,根据所述脉冲序列和所述初始突触权值生成脉冲神经元的输入信号;
获取基于所述输入信号产生的实际输出脉冲序列;
获取期望输出脉冲序列,根据所述实际输出脉冲序列以及所述期望输出脉冲序列对所述初始突触权值进行更新,将更新后的突触权值发送给主机设备以实现对脉冲神经网络进行训练。
2.根据权利要求1所述的一种加速脉冲神经网络的训练方法,其特征在于,所述获取用于训练的脉冲序列和初始突触权值,根据所述脉冲序列和所述初始突触权值生成脉冲神经元的输入信号包括:
获取主机设备发送的调度指令,根据所述调度指令获取主机内存中存储的用于训练的脉冲序列和初始突触权值;
对所述脉冲序列和所述初始突触权值的乘积进行累积,将累积后得到数据作为脉冲神经元的输入信号。
3.根据权利要求1所述的一种加速脉冲神经网络的训练方法,其特征在于,所述获取基于所述输入信号产生的实际输出脉冲序列包括:
获取基于所述输入信号产生的脉冲神经元的膜电位的数值;
根据所述脉冲神经元的膜电位的数值获取实际输出脉冲序列。
4.根据权利要求3所述的一种加速脉冲神经网络的训练方法,其特征在于,所述获取基于所述输入信号产生的脉冲神经元的膜电位的数值包括:
获取突触前神经元的输入电流;
根据脉冲神经元模型计算脉冲神经元的膜电位变化量;
根据所述突触前神经元的输入电流、所述脉冲神经元的膜电位变化量以及脉冲神经元的膜电位方程计算基于所述输入信号产生的脉冲神经元的膜电位的数值。
5.根据权利要求3所述的一种加速脉冲神经网络的训练方法,其特征在于,所述根据所述脉冲神经元的膜电位的数值获取实际输出脉冲序列包括:
将所述脉冲神经元的膜电位的数值与预设阈值进行比较,当所述脉冲神经元的膜电位的数值大于所述预设阈值时,获取所述脉冲神经元输出的脉冲序列;
将所述脉冲神经元输出的脉冲序列作为实际输出脉冲序列。
6.根据权利要求1所述的一种加速脉冲神经网络的训练方法,其特征在于,所述获取期望输出脉冲序列,根据所述实际输出脉冲序列以及所述期望输出脉冲序列对所述初始突触权值进行更新,将更新后的突触权值发送给主机设备以实现对脉冲神经网络进行训练包括:
获取期望输出脉冲序列,根据预设的误差函数计算所述实际输出脉冲序列与所述期望输出脉冲序列之间的误差值;
根据所述误差值和所述初始突触权值生成目标突触权值集合;
将所述目标突触权值集合发送至主机设备,使所述主机设备基于所述目标突触权值集合对所述脉冲神经网络的每一层中间层的初始突触权值进行更新,将更新后的突触权值发送给主机设备以实现对脉冲神经网络进行训练。
7.根据权利要求6所述的一种加速脉冲神经网络的训练方法,其特征在于,所述根据所述误差值和所述初始突触权值生成目标突触权值集合包括:
获取预设的期望误差值,将所述误差值与所述期望误差值进行比较;
当所述误差值大于或者等于所述期望误差值时,根据所述误差值和所述初始突触权值生成目标突触权值集合。
8.根据权利要求7所述的一种加速脉冲神经网络的训练方法,其特征在于,所述当所述误差值大于或者等于所述期望误差值时,根据所述误差值和所述初始突触权值生成目标突触权值集合包括:
当所述误差值大于或者等于所述期望误差值时,根据所述误差值以及预设的反向传播学习算法,按照与所述脉冲神经网络输出层的连接距离由近到远的顺序依次计算所述脉冲神经网络的每一层中间层的初始突触权值的改变量;
根据所述脉冲神经网络的每一层中间层的初始突触权值和所述初始突触权值的改变量计算所述脉冲神经网络的每一层中间层的目标突触权值;
根据所有计算出的目标突触权值生成目标突触权值集合。
9.一种移动终端,其特征在于,包括:处理器、与处理器通信连接的存储介质,所述存储介质适于存储多条指令;所述处理器适于调用所述存储介质中的指令,一致性实现上述权利要求1-8任一项所述的一种加速脉冲神经网络的训练方法的步骤。
10.一种计算机可读存储介质,其上存储有多条指令,其特征在于,所述指令适用于由处理器加载并执行,以实现上述权利要求1-8任一项所述的一种加速脉冲神经网络的训练方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011395802.9A CN112529176A (zh) | 2020-12-03 | 2020-12-03 | 一种加速脉冲神经网络的训练方法、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011395802.9A CN112529176A (zh) | 2020-12-03 | 2020-12-03 | 一种加速脉冲神经网络的训练方法、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112529176A true CN112529176A (zh) | 2021-03-19 |
Family
ID=74996666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011395802.9A Pending CN112529176A (zh) | 2020-12-03 | 2020-12-03 | 一种加速脉冲神经网络的训练方法、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112529176A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113255905A (zh) * | 2021-07-16 | 2021-08-13 | 成都时识科技有限公司 | 脉冲神经网络中神经元的信号处理方法及该网络训练方法 |
CN113269313A (zh) * | 2021-06-04 | 2021-08-17 | 北京灵汐科技有限公司 | 突触权重训练方法、电子设备和计算机可读介质 |
CN113269113A (zh) * | 2021-06-04 | 2021-08-17 | 北京灵汐科技有限公司 | 人体行为识别方法、电子设备和计算机可读介质 |
CN114781608A (zh) * | 2022-04-19 | 2022-07-22 | 安徽科技学院 | 一种基于数字孪生的煤矿供电系统故障预警方法 |
WO2022267385A1 (zh) * | 2021-06-22 | 2022-12-29 | 中国科学院深圳先进技术研究院 | 神经元信号的处理方法、处理装置以及可读存储介质 |
US11954579B2 (en) | 2021-06-04 | 2024-04-09 | Lynxi Technologies Co., Ltd. | Synaptic weight training method, target identification method, electronic device and medium |
-
2020
- 2020-12-03 CN CN202011395802.9A patent/CN112529176A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113269313A (zh) * | 2021-06-04 | 2021-08-17 | 北京灵汐科技有限公司 | 突触权重训练方法、电子设备和计算机可读介质 |
CN113269113A (zh) * | 2021-06-04 | 2021-08-17 | 北京灵汐科技有限公司 | 人体行为识别方法、电子设备和计算机可读介质 |
US11954579B2 (en) | 2021-06-04 | 2024-04-09 | Lynxi Technologies Co., Ltd. | Synaptic weight training method, target identification method, electronic device and medium |
CN113269113B (zh) * | 2021-06-04 | 2024-04-30 | 北京灵汐科技有限公司 | 人体行为识别方法、电子设备和计算机可读介质 |
CN113269313B (zh) * | 2021-06-04 | 2024-05-10 | 北京灵汐科技有限公司 | 突触权重训练方法、电子设备和计算机可读介质 |
WO2022267385A1 (zh) * | 2021-06-22 | 2022-12-29 | 中国科学院深圳先进技术研究院 | 神经元信号的处理方法、处理装置以及可读存储介质 |
CN113255905A (zh) * | 2021-07-16 | 2021-08-13 | 成都时识科技有限公司 | 脉冲神经网络中神经元的信号处理方法及该网络训练方法 |
CN113255905B (zh) * | 2021-07-16 | 2021-11-02 | 成都时识科技有限公司 | 脉冲神经网络中神经元的信号处理方法及该网络训练方法 |
CN114781608A (zh) * | 2022-04-19 | 2022-07-22 | 安徽科技学院 | 一种基于数字孪生的煤矿供电系统故障预警方法 |
CN114781608B (zh) * | 2022-04-19 | 2023-06-20 | 安徽科技学院 | 一种基于数字孪生的煤矿供电系统故障预警方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112529176A (zh) | 一种加速脉冲神经网络的训练方法、终端及存储介质 | |
CN107077637B (zh) | 神经网络中的差分编码 | |
US10339447B2 (en) | Configuring sparse neuronal networks | |
Balduzzi et al. | Kickback cuts backprop's red-tape: Biologically plausible credit assignment in neural networks | |
US11676026B2 (en) | Using back propagation computation as data | |
US9330355B2 (en) | Computed synapses for neuromorphic systems | |
JP6092477B2 (ja) | ニューラルダイナミクスを修正するための自動化された方法 | |
JP2017525038A (ja) | ニューラルネットワークにおける畳込み演算の分解 | |
EP3108414A2 (en) | In situ neural network co-processing | |
US9672464B2 (en) | Method and apparatus for efficient implementation of common neuron models | |
WO2015127110A2 (en) | Event-based inference and learning for stochastic spiking bayesian networks | |
EP3097517A1 (en) | Monitoring neural networks with shadow networks | |
WO2015153150A2 (en) | Probabilistic representation of large sequences using spiking neural network | |
WO2015127130A2 (en) | Dynamic spatial target selection | |
WO2015148044A1 (en) | Conversion of neuron types to hardware | |
WO2015057302A2 (en) | Congestion avoidance in networks of spiking neurons | |
EP3058517A1 (en) | Dynamically assigning and examining synaptic delay | |
US9342782B2 (en) | Stochastic delay plasticity | |
WO2014197175A2 (en) | Efficient implementation of neural population diversity in neural system | |
CN114239405A (zh) | 一种脉冲神经网络神经元膜电压计算方法 | |
US20150242742A1 (en) | Imbalanced cross-inhibitory mechanism for spatial target selection | |
CN113642719A (zh) | 脉冲神经网络中数据处理的方法、装置 | |
Averkin et al. | Modular SOM for dynamic object identification |
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 |