CN113935475A - 具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法 - Google Patents
具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法 Download PDFInfo
- Publication number
- CN113935475A CN113935475A CN202111538288.4A CN202111538288A CN113935475A CN 113935475 A CN113935475 A CN 113935475A CN 202111538288 A CN202111538288 A CN 202111538288A CN 113935475 A CN113935475 A CN 113935475A
- Authority
- CN
- China
- Prior art keywords
- pulse
- time
- neuron
- synaptic
- moment
- 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/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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
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)
- Feedback Control In General (AREA)
Abstract
本发明公开了具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法,包括以下步骤:离散化的逐时间步更新神经元状态量,预估时间步范围内的是否产生脉冲发放及其时刻偏移量,根据突触连接计算下时刻的脉冲输入,重复此过程完成网络仿真;根据仿真结果延神经元状态量、脉冲发放量和时刻偏移量反传梯度误差,进行网络参数更新。本发明减小了脉冲神经网络逐时间步仿真计算中的误差,在同等精度条件下提高了仿真效率。同时,在误差反传算法中通过脉冲发放量和时刻偏移量两个维度传递脉冲误差,提高了训练的效率。
Description
技术领域
本发明涉及神经网络技术及类脑计算技术领域,尤其是涉及一种具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法。
背景技术
脉冲神经网络(SNN)是更精确模拟生物神经系统计算与通信机制,更接近人脑信息处理方式的神经网络技术。脉冲神经元的脉冲产生动力学机制使SNN具有固有的历史信息处理能力,与传统人工神经网络相比在处理时空信息上具有独特优势,同时脉冲传递信息的方式也更加节约计算资源。因此,脉冲神经网络是类脑智能领域重要的技术工具。
然而,SNN的连续动力学机制和脉冲放电过程也使SNN的软硬件仿真和训练更加困难。首先,SNN的动力学过程需要微分方程组描述,实际应用中一般需要按一定时间步长离散化的近似计算。这种时钟驱动(clock-driven)的计算方式导致神经元只能在时间步上计算脉冲发放,基于时间步的脉冲时刻与真实脉冲时刻之间存在一定误差。通过脉冲传递,脉冲时刻存在的误差会进一步扩大,严重影响了SNN的仿真计算精度。为保证计算精度,通常需要较小的时间步长,但是较小的时间步加大了仿真与训练的计算量,降低了计算效率。其次,由于SNN在脉冲产生过程具有不可微分的突变,导致SNN无法直接使用标准梯度误差反传的方法进行学习。已有SNN算法通常对脉冲传递采用替代梯度的方法通过每个时间步状态量反传误差,但是现有替代梯度方法无法逼近脉冲发放概率和脉冲时刻移动两个方向的梯度变化,因此对SNN网络的梯度计算存在较大偏差。综上,现有SNN时钟驱动的计算方式使SNN仿真与训练存在较大误差,限制了SNN技术在复杂人工智能任务上的应用。
发明内容
为解决现有技术的不足,实现同等时间步长条件下,提高了SNN的仿真与训练精度,从而提高了计算效率的目的,本发明采用如下的技术方案:
具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法,包括如下步骤:
S1,基于具有脉冲时刻偏移量的离散化脉冲神经元LIF(Leaky-Integrate-and-Fire),构建多层脉冲神经网络,设定网络结构中的恒定参数和变量初始值,并对连接等参数进行初始化,选取放电脉冲次数、脉冲时刻延迟等脉冲解码方式,将带类别标签的训练数据转化为脉冲信号,输入多层脉冲神经网络;
S2,基于突触输入的上一时刻脉冲发放量、脉冲时刻偏移量,以及神经元上一时刻状态量,通过具有时刻偏移量的神经元模型的离散化数值计算方法,更新此时刻神经元状态量;
S3,根据此时刻神经元状态量,如膜电压及膜电压对时间的导数(即电压变化率),预估此时刻到下一时刻之间,是否发放脉冲、发放脉冲的时刻,若发放脉冲,包括相应的时刻偏移量,判定下一时刻前,是否发放脉冲及时刻偏移量,并用神经元脉冲和脉冲时刻偏移二元组表征此时刻神经元的输出,即o=(o s ,o t ),o s 表示神经元输出脉冲,o s =1表示有脉冲输出,o s =0表示无脉冲输出,Δo t 表示准确的脉冲时刻距下一时刻的向前偏移量;
S4,前后神经元由突触连接,将突触权重与突触前神经元脉冲输出结合,并传递给相应的突触后神经元;
S5,重复S2到S4直至本次神经网络仿真结束,将多层脉冲神经网络输出层的脉冲序列,转化为对训练数据的类别预测等输出,通过损失函数,如CrossEntropy等,用于计算类别标签与类别预测误差,反传误差梯度并通过Adam、SGD等优化算法更新网络参数,完成一个批次样本的训练,重复S2到S5的训练过程,直至多层脉冲神经网络预测的正确率或误差达到训练标准或训练次数达到最大值为止,完成整个训练流程。
进一步地,S2中基于如下公式更新此时刻神经元状态量:
其中,神经元以dt为时间步长,逐步迭代计算神经元各变量的动力学过程,[t]表示第t步,I s 表示突触输入的脉冲发放分量,I t 表示突触输入的脉冲时刻偏移分量,F表示膜电压的下降势能分量,R表示膜电压的上升势能分量,o s 表示神经元自身放电脉冲发放量,Δo t 表示神经元脉冲时刻偏移量,V reset (·)表示放电重置电压,E表示膜电压的重置分量,V表示神经元膜电压,τ f 、τ r 、τ e 分别表示F、R、E的衰减时间常数,β f 、β r 、β e 分别表示由τ f 、τ r 、τ e 计算得到的变量衰减系数,计算公式为:
考虑到真实的脉冲放电并不一定在t+1时刻发放,而是相对t+1时刻提前了Δo t [t]的时间量,因此加入了时刻偏移量对t+1时刻重置操作的衰减作用,同理,突触脉冲输入也考虑到真实脉冲时刻与计算脉冲的时刻之间的偏差,引入脉冲时刻偏移量I t ,计算时刻偏移对膜电压分量F和R的影响,从而计算此时刻精确的突触输入,公式(1)引入脉冲时刻偏移量,补偿基于时间步计算的放电脉冲时刻与真实脉冲时刻之间的差异导致的SNN仿真误差。
若此时刻为初始时刻,则根据网络状态量的初始值更新网络状态量,并开始进行后续网络仿真流程,在训练过程中神经网络仿真,通常根据数据集大小以批量化的方式进行。
进一步地,S3根据此时刻膜电压及膜电压变化率,在膜电压变化率近似不变的假设条件下,估计膜电压到达阈值的精确时间,若此估计的到达阈值时间,在此时刻到下一时刻的范围内,则认为该神经元在此时间范围内发放脉冲,并以此精确脉冲时刻与下一步时刻的差距作为时刻偏移量,具体包括如下步骤:
S31,根据R与F的梯度,近似计算膜电压的梯度,即变化率ΔV,如下公式所示:
S32,根据当前时刻的膜电压与放电阈值之差,以及正数范围内的电压梯度,估计可能的脉冲时刻距下一个时刻的向前偏移量:
其中,V th 表示神经元膜电压的放电阈值,ɛ表示大于0的一个微小数值,max(·)表示输出ΔV[t]与ɛ中的最大值,Δo t 表示此脉冲的时刻偏移量,当估计的时刻偏移量大于零,即Δo t >0时,此时刻到下一时刻范围内神经元膜电压将达到阈值从而产生脉冲输出,神经元输出为o=(1,Δo t ),否则,此时间范围内神经元不产生脉冲,神经元输出为o=(0,0),变量ΔV采用如下公式近似计算:
传统通过阈值的计算方法只能计算此时刻脉冲发放,在下一时刻突触后神经元计算接收脉冲时具有一个时间步的延迟误差。而通过上述估计方法,神经元可以在下一时刻接收到此时刻到下时刻范围内的所有精确脉冲信息,解决了脉冲时刻的误差以及脉冲传递的延迟误差。
进一步地,S4包括如下步骤:
S41,判断突触连接是否存在传递延迟,若不存在延迟,则将突触前神经元此时刻脉冲输出,作为此突触下时刻的脉冲输入;若存在延迟,则将延迟按时间步长dt的倍数部分d和余数部分Δd表示,即突触延迟d *=d+Δd,并保存至少d个时间步内的脉冲序列缓存,将前d+1时刻的突触前神经元脉冲作为此时刻突触后神经元的输入,并且将脉冲时刻偏移量与突触延迟的余数部分结合;
S42,根据突触后神经元接收的脉冲输入和所有突触权值,计算突触后神经元此时刻的输入。
由于此时刻神经元估计的脉冲发放和时刻偏移量均是以下一时刻作为标准,因此在下时刻计算接收的脉冲输入时,不存在传统计算方法的一个时间步的延迟误差。
进一步地,S41中将此时刻之前第d步的脉冲输入的脉冲分量与减去Δd后的时刻偏移分量,作为下时刻此突触的脉冲输入,最后采用栈的方式更新此脉冲序列缓存,公式如下:
其中,[t]表示第t步,i s 表示下时刻此突触输入的脉冲发放分量,Δi t 表示下时刻此突触输入的脉冲时刻偏移分量。
进一步地,S42中突触后神经元将所有突触脉冲输入的脉冲发放分量和时刻偏移分量,分别乘以相应的突触权值后分别求和,得到突触后神经元此时刻总的加权脉冲分量和加权时刻偏移分量输入:
其中,w ij 表示突触连接权值,下标i是突触后神经元编号,下标j是突触前神经元编号,[t]表示第t步,i s(ij) 表示下时刻第j和i神经元之间的突触输入的脉冲发放分量,i t(ij) 表示下时刻第j和i神经元之间的突触输入的脉冲时刻偏移分量,I s 表示突触输入的脉冲发放分量,I t 表示突触输入的脉冲时刻偏移分量。
由于本发明提出的神经元模型具有线性可加性,所有脉冲输入的作用即是各脉冲输入作用之和,因此,通过上述公式,完整的描述了本发明提出的神经元网络的仿真计算过程,通过逐时间步迭代计算该方程组,可以实现精确的脉冲神经元网络活动仿真。
进一步地,S5中通过脉冲发放量和时刻偏移量的替代梯度,将误差梯度沿时间和神经集群空间方向进行反向传播,时间方向上,以每个神经元状态量由最后一个时刻向前时刻反向传递,空间方向上,以输出层神经元向输入层方向反向传递,最后根据误差反传得到的神经网络参数相对预测误差的梯度。
进一步地,针对脉冲发放量o s [t],脉冲发放量与神经元状态量存在如下关系:
其中,[t]表示第t步,F表示膜电压的下降势能分量,R表示膜电压的上升势能分量,E表示膜电压的重置分量,P表示替代脉冲发放能力的中间变量,则经过脉冲发放量反传的误差梯度按如下公式计算:
针对脉冲时刻偏移量Δo t [t],通过在脉冲产生时刻,膜电压V[t]对时间的变化率,近似膜电压V[t]对脉冲时刻偏移量Δo t [t]的偏导,即:
其中,τ f 、τ r 、τ e 分别表示F、R、E的衰减时间常数。
进一步地,反向传播中,脉冲输出时刻o t(j) 和突触延迟d * ij 的误差梯度,与其对应的前向偏移量Δo t(j) 和Δd ij 的误差梯度相同,则神经元此时刻脉冲输出的误差梯度表示为:
其中,∂为偏导符号,L表示损失函数,j表示突触前神经元,i表示突触后神经元,t表示任意时刻,o s(j) 表示输出脉冲,e s(j) 表示通过损失函数计算的输出脉冲误差梯度,δ s(j) 表示输出脉冲的反传误差,o t(j) 表示输出脉冲时刻偏移量,e t(j) [t]表示通过损失函数计算的输出脉冲时刻偏移量,δ t(j) 表示输出脉冲时刻偏移量的反传误差,误差e j [t]=(e s(j) [t],e t(j) [t])由具体损失函数决定,而由突触后神经元反传的误差为δ j [t]=(δ s(j) [t],δ t(j) [t]);
按链式法则得到输出脉冲的反传误差:
其中,I s 表示突触输入的脉冲发放分量,R表示膜电压的上升势能分量,F表示膜电压的下降势能分量;
输出脉冲时刻偏移量的反传误差按如下公式计算:
其中,I t 表示突触输入的脉冲时刻偏移分量,E表示膜电压的重置分量,和表示由突触后神经元反传的部分误差,和表示从自身神经元放电
重置反传的误差,神经元状态量F i [t]、R i [t]和E i [t]接收到上时刻自身状态量、此时刻脉冲
发放量和时刻偏移量三个方向反传的误差,具体公式如下:
通过公式(12)~(15)将损失函数计算的误差传递到整个时间和网络空间,进一步计算网络各参数的误差梯度。
进一步地,网络各参数的误差梯度的计算,包括:
突触连接权值的误差梯度按如下公式计算:
其中,w i 表示突触后神经元第i个突触连接的权值;
突触连接延迟的误差梯度按如下公式计算:
其中,d i 表示突触后神经元第i个突触连接的传递延迟;
衰减时间常数τ r 、τ f 和τ e 的误差梯度按如下公式计算:
其中,τ f 、τ r 、τ e 分别表示F、R、E的衰减时间常数,β f 、β r 、β e 分别表示由τ f 、τ r 、τ e 计算得到的变量衰减系数;
根据公式(16)~(20)并结合如SGD等优化算法,对脉冲神经网络相应参数进行更新学习。
本发明的优势和有益效果在于:
本发明在按时间步长离散化的SNN数值计算过程中,预估精度的放电脉冲时刻,消除现有方法中时间步长导致的固有误差。与现有脉冲神经网络计算方法相比,在同等时间步长情况下提高了SNN的仿真计算精度,也可以在同等精度条件下增大时间步长从而提高仿真效率。同时,针对该脉冲神经元网络模型提出了相应的多层误差反传算法,通过脉冲发放量和时刻偏移量两个方向的误差反传,提高了SNN无法反传的精度,从而提高了学习效率。
附图说明
图1是本发明方法的流程图。
图2是本发明中学习识别任务的脉冲神经网络结构示意图。
图3是本发明中基于膜电压与膜电压变化率估计脉冲放电和时刻偏移量的示意图。
图4是本发明一种具有脉冲时刻偏移量的脉冲神经网络的仿真与训练装置的结构图。
具体实施方式
本发明提供的脉冲神经元模型及其网络仿真训练方法可以应用于图像、音频信息识别等多种类脑智能任务中,下面以语音识别为例结合附图对本发明的实施方式进行详细描述,但本实施例和附图不用来限制本发明的范围。需要说明的是,在以下描述中为突出本发明的主要内容,实施方式中对现有方法的已知功能和设计的详细描述将被忽略。
如图1所示,具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法,应用于语音识别任务中,包括以下步骤:
S1,获取训练数据,选取脉冲编解码和损失函数,构建脉冲神经网络结构。
在语音识别等智能任务中,需要获取任务相关的带标签的训练数据集,例如本例使用的AudioMNIST口语数字数据集。根据应用需要构建如图2所示的脉冲神经网络模型,其中第一层神经元个数为800,第二层神经元个数为10。根据数据形式选取合适的脉冲编码方式,将数据信号转化为脉冲信号传递给神经网络输入层。
基于具有脉冲时刻偏移量的离散化脉冲神经元模型构建多层神经网络,设定网络结构中的恒定参数和变量初始值,并对连接等参数进行初始化。选取放电脉冲次数、脉冲时刻延迟等脉冲解码方式将神经网络的输出层脉冲序列转化为语音类别预测等输出。选取损失函数,如CrossEntropy等,用于根据数据标签计算训练所需输出误差。
S2,利用具有脉冲时刻偏移量的离散化神经元模型,基于上时刻神经网络脉冲输出和状态量,通过具有时刻偏移量的LIF神经元模型(Leaky-Integrate-and-Fire)的离散化数值计算方法,更新此时刻的神经元状态量。
根据突触输入和神经元上时刻状态,即神经元上一时刻的膜电压等状态变量,以及神经元接收的上一时刻脉冲输入与突触权值计算得到的突触脉冲发放量和时刻偏移量,按照如下神经元离散化模型公式更新此时刻神经元状态量:
其中,模型以dt=0.5为时间步长,逐步迭代计算神经元各变量的动力学过程,对于任意变量X,X[t]代表变量在第t步的数值;变量V代表神经元膜电压;变量F是膜电压的下降势能分量;R是膜电压的上升势能分量;E是膜电压的重置分量;o s 代表神经元自身放电脉冲发放量;Δo t 项代表自身神经元脉冲时刻偏移量;V reset 是放电重置电压;变量I s 代表突触输入的脉冲发放分量,变量I t 代表突触输入的脉冲时刻偏移分量;参数τ r =8.0是变量R的衰减时间常数,参数τ f =20.0是变量F的衰减时间常数,参数τ e =30.0是变量E的衰减时间常数,参数β r 、β f 、β e 分别是由时间常数τ r 、τ f 和τ e 计算得到的变量衰减系数,计算公式为:
根据上述神经元公式(1),当第时刻计算得到神经元产生脉冲发放时,公式中变量E的方程将在t+1时刻对膜电压执行赋值为V reset =0的重置操作。考虑到真实的脉冲放电并不一定在t+1时刻发放,而是相对t+1时刻提前了Δo t [t]的时间量,因此公式中加入了时刻偏移量对t+1时刻重置操作的衰减作用。同理,突触脉冲输入也考虑到真实脉冲时刻与计算脉冲的时刻之间的偏差,引入脉冲时刻偏移量I t 计算时刻偏移对膜电压分量F和R的影响,从而计算此时刻精确的突触输入。本公式引入脉冲时刻偏移量,补偿基于时间步计算的放电脉冲时刻与真实脉冲时刻之间的差异导致的SNN仿真误差。
若此时刻为初始时刻,则根据网络状态量的初始值更新网络状态量,并开始进行后续网络仿真流程。需要说明的是,在训练过程中神经网络仿真,通常根据数据集大小以批量化的方式进行。
S3,根据神经元膜电压及膜电压对时间的导数(即电压变化率),预估神经元到下时刻之前是否会产生脉冲放电以及放电时刻的时刻偏移分量,从而判定下时刻前是否发放脉冲及时刻偏移量,作为此时刻神经元输出。
对于每个神经元,根据当前时刻状态量,估算在此时刻到下一时刻范围内,是否发放脉冲以及发放脉冲的时刻(若发放脉冲,包括相应的时刻偏移量),并用神经元脉冲和脉冲时刻偏移二元组表征神经元脉冲输出,即o=(o s ,o t ),其中o s 表示神经元输出脉冲,o s =1代表有脉冲输出,o s =0代表无脉冲输出,Δo t 代表准确的脉冲时刻距下一时刻的向前偏移量。
计算方式如图3所示,根据此时刻膜电压及膜电压变化率,在膜电压变化率近似不变的假设条件下,估计膜电压到达阈值的精确时间,若此估计的到达阈值时间,在此时刻到下一时刻的范围内,则认为该神经元在此时间范围内发放脉冲,并以此精确脉冲时刻与下一步时刻的差距作为时刻偏移量。
具体地,根据变量F与R的梯度近似计算膜电压的梯度,即变化率ΔV,如下公式所示:
根据当前时刻的膜电压与放电阈值之差,以及正数范围内的电压梯度,估计可能的脉冲时刻距下一个时刻的向前偏移量:
其中,变量ΔV是膜电压变化率的近似值,V th 是神经元膜电压的放电阈值,函数max(x,y)输出x、y中的最大值,ɛ是大于0的一个微小数值,本例中ɛ=1.0e-8,Δo t 即为此脉冲的时刻偏移量,当估计的时刻偏移量大于零,即Δo t >0时,认为此时刻到下一时刻范围内神经元膜电压将达到阈值从而产生脉冲输出,神经元输出为o=(1,Δo t ),否则,认为此时间段内神经元不产生脉冲,神经元输出为o=(0,0),变量ΔV可采用如下公式近似计算:
传统通过阈值的计算方法只能计算此时刻脉冲发放,在下一时刻突触后神经元计算接收脉冲时具有一个时间步的延迟误差。而通过上述估计方法,神经元可以在下一时刻接收到此时刻到下时刻范围内的所有精确脉冲信息,解决了脉冲时刻的误差以及脉冲传递的延迟误差。
S4,根据突触连接与神经元脉冲输出,计算各神经元脉冲输入。
根据此时刻各突触前神经元计算得到的脉冲发放量和脉冲时刻偏移量输出,通过突触连接传递到相应的突触后神经元上。按照是否具有突触延迟,选择此时刻输出或前d时刻输出作为下一时刻突触后神经元的输入,并将其与突触权重相乘。需要说明的是,由于此时刻神经元估计的脉冲发放和时刻偏移量均是以下一时刻作为标准,因此在下时刻计算接收的脉冲输入时,不存在传统计算方法的一个时间步的延迟误差。
具体地,具有脉冲发放量和时刻偏移量的突触脉冲传递的计算方法,包括如下步骤:
首先考虑突触连接是否存在延迟:若不存在延迟,则直接将上一时刻突触前神经元的脉冲输出,作为此时刻突触后神经元的脉冲输入,即:
若存在突触延迟,则将突触延迟按时间步长dt的倍数部分d和余数部分Δd表示,即突触延迟d *=d+Δd。对每个突触连接建立容量至少为d的栈空间,保存此时刻之前的输入脉冲序列,将前d+1时刻的突触前神经元脉冲作为此时刻突触后神经元的输入,并且将脉冲时刻偏移量与突触延迟的余数部分结合,即:
其次,根据突触后神经元接收的脉冲输入和所有突触权值,则可以计算此时刻的突触输入,公式如下:
其中,w ij 代表的突触连接权值,下标i是突触后神经元编号,下标j是突触前神经元编号。由于本发明提出的神经元模型具有线性可加性,所有脉冲输入的作用即是各脉冲输入作用之和。通过上述公式,完整的描述了本发明提出的神经元网络的仿真计算过程,通过逐时间步迭代计算该方程组,可以实现精确的脉冲神经元网络活动仿真。
S5,根据网络输出计算损失函数,反传误差梯度,并更新网络参数。
通过重复步骤S2到S4直到完成本次仿真过程,并记录此过程中计算得到的神经元状态量和神经元脉冲输出。将网络输出层脉冲输出序列通过解码方法转化为类别预测输出,并根据损失函数和数据标签计算出预测误差。通过本发明提出的脉冲发放量和时刻偏移量的替代梯度以及根据链式法则推导的反传公式,将误差梯度沿时间和神经集群空间两个方向进行反传。时间方向上以每个神经元状态量由最后一个时刻向前时刻反向传递,空间方向上以输出层神经元向输入层方向反向传递。最后,根据误差反传得到的神经网络参数相对预测误差的梯度,通过Adam、SGD等优化算法对网络参数进行更新,完成一个批次样本的训练。重复S2到S5的训练过程,直到神经网络预测的正确率或误差达到训练标准或训练次数达到最大值为止,完成训练流程。
具体地,在神经元网络仿真结束后,基于记录的神经元活动和定义的损失函数,通过脉冲发放量、时刻偏移量和其它神经元变量沿时间和神经集群空间尺度上根据链式法则进行误差反传学习。
首先,考虑到神经元在脉冲产生发放过程中膜电压与输出脉冲均不连续,无法直接进行梯度计算,因此针对脉冲输出变量o s [t]和Δo t [t]提出如下替代梯度的方法:
针对脉冲发放量o s [t],假设脉冲发放量与神经元状态量存在如下关系:
其中变量P是替代脉冲发放能力的中间变量,则经过脉冲发放量反传的误差梯度可以按如下公式计算:
针对脉冲时刻偏移量Δo t [t],通过在脉冲产生时刻,膜电压对时间的变化率近似膜电压对脉冲时刻偏移量的偏导,即:
其次,定义任意突触前神经元j和突触后神经元i、在任意时刻t和损失函数L的条件下,通过损失函数计算的脉冲输出误差梯度为e j [t]=(e s(j) [t],e t(j) [t]),而由突触后神经元反传的误差为δ j [t]=(δ s(j) [t],δ t(j) [t])。需要说明的是,脉冲输出时刻o t(j) 和突触延迟d * ij 的误差梯度与其对应的前向偏移量Δo t(j) 和Δd ij 的误差梯度是相同的,则该神经元此时刻脉冲输出的误差梯度可以表示为:
其中,∂为偏导符号,误差e j [t]由具体损失函数决定,按照链式法则得到输出脉冲的反传误差按如下公式计算:
相应的,输出脉冲时刻偏移量的反传误差按如下公式计算:
其中,和代表由突触后神经元反传的部分误差,和
代表从自身神经元放电重置反传的误差,神经元状态量F i [t]、R i [t]和E i [t]接收到上时刻
自身状态量、此时刻脉冲发放量和时刻偏移量三个方向反传的误差,具体公式如下:
通过公式(12)~(15)可以将损失函数计算的误差传递到整个时间和网络空间,进一步可以计算网络各参数的误差梯度,例如突触连接权值的误差梯度按如下公式计算:
其中,w i 表示突触后神经元第i个突触连接的权值;
突触连接延迟的误差梯度按如下公式计算:
其中,d i 表示突触后神经元第i个突触连接的传递延迟;
衰减时间常数τ r 、τ f 和τ e 的误差梯度按如下公式计算:
根据公式(16)~(20)并结合如SGD等优化算法,则可以对脉冲神经网络相应参数进行更新学习。本例基于AudioMNIST数据集,通过关键点检测进行脉冲编码后,根据上述过程,基于dt=0.1ms步长进行300ms网络仿真计算,并进行100个epoch的训练。分别对基于具有时刻偏移量的仿真训练方法与传统方法在不同dt时长的结果进行了预测结果对比,其中,仿真时长是指仿真一个完整预测的计算机时间,仿真误差是采用不同仿真步长时输出层脉冲与步长为0.1ms时的输出脉冲的时刻和脉冲个数对比,分类正确率是指测试集预测正确率,如下表所示。
与前述具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法的实施例相对应,本发明还提供了具有脉冲时刻偏移量的脉冲神经网络的仿真与训练装置的实施例。
参见图4,本发明实施例提供的一种具有脉冲时刻偏移量的脉冲神经网络的仿真与训练装置,包括一个或多个处理器,用于实现上述实施例中的具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法。
本发明具有脉冲时刻偏移量的脉冲神经网络的仿真与训练装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本发明具有脉冲时刻偏移量的脉冲神经网络的仿真与训练装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。
Claims (10)
1.具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法,其特征在于包括如下步骤:
S1,基于具有脉冲时刻偏移量的脉冲神经元,构建脉冲神经网络,将带类别标签的训练数据转化为脉冲信号,输入脉冲神经网络;
S2,基于输入的上一时刻脉冲发放量、脉冲时刻偏移量,以及状态量,更新此时刻神经元状态量;
S3,根据此时刻神经元状态量,预估此时刻到下一时刻之间,是否发放脉冲、发放脉冲的时刻,判定并用神经元脉冲和脉冲时刻偏移表征此时刻神经元的输出;
S4,前后神经元由突触连接,将突触权重与突触前神经元脉冲输出结合,并传递给相应的突触后神经元;
S5,重复S2到S4直至本次神经网络仿真结束,将脉冲神经网络输出的脉冲序列,转化为对训练数据的类别预测,通过损失函数计算类别标签与类别预测误差,反传误差梯度并更新网络参数,完成一个批次的训练,重复S2到S5的训练过程,直至脉冲神经网络完成整个训练。
2.根据权利要求1所述的具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法,其特征在于所述S2中,基于如下公式更新此时刻神经元状态量:
其中,神经元以dt为时间步长,[t]表示第t步,I s 表示突触输入的脉冲发放分量,I t 表示突触输入的脉冲时刻偏移分量,F表示膜电压的下降势能分量,R表示膜电压的上升势能分量,o s 表示神经元放电脉冲发放量,Δo t 表示神经元脉冲时刻偏移量,V reset (·)表示放电重置电压,E表示膜电压的重置分量,V表示神经元膜电压,τ f 、τ r 、τ e 分别表示F、R、E的衰减时间常数,β f 、β r 、β e 分别表示由τ f 、τ r 、τ e 计算得到的变量衰减系数,计算公式为:
3.根据权利要求2所述的具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法,其特征在于所述S3根据此时刻膜电压及膜电压变化率,在膜电压变化率近似不变的假设条件下,估计膜电压到达阈值的精确时间,若此估计的到达阈值时间,在此时刻到下一时刻的范围内,则认为该神经元在此时间范围内发放脉冲,并以此精确脉冲时刻与下一步时刻的差距作为时刻偏移量,具体包括如下步骤:
S31,根据R与F的梯度,近似计算膜电压的梯度,即变化率ΔV,如下公式所示:
S32,根据当前时刻的膜电压与放电阈值之差,以及正数范围内的电压梯度,估计可能的脉冲时刻距下一个时刻的向前偏移量:
其中,V th 表示神经元膜电压的放电阈值,ɛ表示大于0的一个微小数值,max(·)表示输出ΔV[t]与ɛ中的最大值,Δo t 表示此脉冲的时刻偏移量,当Δo t >0时,此时刻到下一时刻范围内神经元膜电压将达到阈值从而产生脉冲输出,神经元输出为o=(1,Δo t ),否则,此时间范围内神经元不产生脉冲,神经元输出为o=(0,0),变量ΔV采用如下公式近似计算:
4.根据权利要求1所述的具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法,其特征在于所述S4包括如下步骤:
S41,判断突触连接是否存在传递延迟,若不存在延迟,则将突触前神经元此时刻脉冲输出,作为此突触下时刻的脉冲输入;若存在延迟,则将延迟按时间步长dt的倍数部分d和余数部分Δd表示,即突触延迟d *=d+Δd,并保存至少d个时间步内的脉冲序列缓存,将前d+1时刻的突触前神经元脉冲作为此时刻突触后神经元的输入,并且将脉冲时刻偏移量与突触延迟的余数部分结合;
S42,根据突触后神经元接收的脉冲输入和突触权值,计算突触后神经元输入。
7.根据权利要求1所述的具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法,其特征在于所述S5中,通过脉冲发放量和时刻偏移量的替代梯度,将误差梯度沿时间和神经集群空间方向进行反向传播,时间方向上,以每个神经元状态量由最后一个时刻向前时刻反向传递,空间方向上,以输出层神经元向输入层方向反向传递,最后根据误差反传得到的神经网络参数相对预测误差的梯度。
9.根据权利要求7所述的具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法,其特征在于所述反向传播中,脉冲输出时刻o t(j) 和突触延迟d * ij 的误差梯度,与其对应的前向偏移量Δo t(j) 和Δd ij 的误差梯度相同,则神经元此时刻脉冲输出的误差梯度表示为:
其中,∂为偏导符号,L表示损失函数,j表示突触前神经元,i表示突触后神经元,t表示任意时刻,o s(j) 表示输出脉冲,e s(j) 表示通过损失函数计算的输出脉冲误差梯度,δ s(j) 表示输出脉冲的反传误差,o t(j) 表示输出脉冲时刻偏移量,e t(j) [t]表示通过损失函数计算的输出脉冲时刻偏移量,δ t(j) 表示输出脉冲时刻偏移量的反传误差;
按链式法则得到输出脉冲的反传误差:
其中,I s 表示突触输入的脉冲发放分量,R表示膜电压的上升势能分量,F表示膜电压的下降势能分量;
输出脉冲时刻偏移量的反传误差按如下公式计算:
其中,I t 表示突触输入的脉冲时刻偏移分量,E表示膜电压的重置分量,和表示由突触后神经元反传的部分误差,和表示从自身神经元放电
重置反传的误差,神经元状态量F i [t]、R i [t]和E i [t]接收到上时刻自身状态量、此时刻脉冲
发放量和时刻偏移量三个方向反传的误差,具体公式如下:
通过公式(12)~(15)将损失函数计算的误差传递到整个时间和网络空间,进一步计算网络各参数的误差梯度。
10.根据权利要求9所述的具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法,其特征在于所述网络各参数的误差梯度的计算,包括:
突触连接权值的误差梯度按如下公式计算:
其中,w i 表示突触后神经元第i个突触连接的权值;
突触连接延迟的误差梯度按如下公式计算:
其中,d i 表示突触后神经元第i个突触连接的传递延迟;
衰减时间常数τ r 、τ f 和τ e 的误差梯度按如下公式计算:
其中,τ f 、τ r 、τ e 分别表示F、R、E的衰减时间常数,β f 、β r 、β e 分别表示由τ f 、τ r 、τ e 计算得到的变量衰减系数;
根据公式(16)~(20)并结合优化算法,对脉冲神经网络相应参数进行更新学习。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111538288.4A CN113935475A (zh) | 2021-12-16 | 2021-12-16 | 具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111538288.4A CN113935475A (zh) | 2021-12-16 | 2021-12-16 | 具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113935475A true CN113935475A (zh) | 2022-01-14 |
Family
ID=79289152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111538288.4A Pending CN113935475A (zh) | 2021-12-16 | 2021-12-16 | 具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113935475A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114399033A (zh) * | 2022-03-25 | 2022-04-26 | 浙江大学 | 基于神经元指令编码的类脑计算系统和计算方法 |
CN114611686A (zh) * | 2022-05-12 | 2022-06-10 | 之江实验室 | 基于可编程神经拟态核的突触延时实现系统及方法 |
CN116821591A (zh) * | 2023-04-04 | 2023-09-29 | 浙江万能弹簧机械有限公司 | 高频电源放电工况实时监控方法及其系统 |
-
2021
- 2021-12-16 CN CN202111538288.4A patent/CN113935475A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114399033A (zh) * | 2022-03-25 | 2022-04-26 | 浙江大学 | 基于神经元指令编码的类脑计算系统和计算方法 |
CN114611686A (zh) * | 2022-05-12 | 2022-06-10 | 之江实验室 | 基于可编程神经拟态核的突触延时实现系统及方法 |
CN116821591A (zh) * | 2023-04-04 | 2023-09-29 | 浙江万能弹簧机械有限公司 | 高频电源放电工况实时监控方法及其系统 |
CN116821591B (zh) * | 2023-04-04 | 2024-03-08 | 浙江万能弹簧机械有限公司 | 高频电源放电工况实时监控方法及其系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113935475A (zh) | 具有脉冲时刻偏移量的脉冲神经网络的仿真与训练方法 | |
US11308392B2 (en) | Fixed-point training method for deep neural networks based on static fixed-point conversion scheme | |
WO2023284142A1 (zh) | 脉冲神经网络中神经元的信号处理方法及该网络训练方法 | |
US20160034812A1 (en) | Long short-term memory using a spiking neural network | |
US20150269482A1 (en) | Artificial neural network and perceptron learning using spiking neurons | |
JP6092477B2 (ja) | ニューラルダイナミクスを修正するための自動化された方法 | |
US20150206050A1 (en) | Configuring neural network for low spiking rate | |
US20150212861A1 (en) | Value synchronization across neural processors | |
JP2017525038A (ja) | ニューラルネットワークにおける畳込み演算の分解 | |
EP3123404A2 (en) | Differential encoding in neural networks | |
JP2017515205A (ja) | Coldニューロンスパイクタイミングバックプロバゲーション | |
US10902311B2 (en) | Regularization of neural networks | |
CN112784976A (zh) | 一种基于脉冲神经网络的图像识别系统及方法 | |
KR20160123309A (ko) | 확률적 스파이킹 베이지안망들에 대한 이벤트-기반 추론 및 학습 | |
EP3066619A1 (en) | Implementing synaptic learning using replay in spiking neural networks | |
US20150278685A1 (en) | Probabilistic representation of large sequences using spiking neural network | |
CN112906828A (zh) | 一种基于时域编码和脉冲神经网络的图像分类方法 | |
CN112101535A (zh) | 脉冲神经元的信号处理方法及相关装置 | |
CN115293247A (zh) | 建立风险识别模型的方法、风险识别的方法及对应装置 | |
JP6219509B2 (ja) | シナプス遅延を動的に割り当てることおおよび検査すること | |
CN113628615B (zh) | 语音识别方法、装置、电子设备及存储介质 | |
US20150213356A1 (en) | Method for converting values into spikes | |
CN115204350A (zh) | 脉冲神经网络的训练方法和训练装置 | |
CN113269313A (zh) | 突触权重训练方法、电子设备和计算机可读介质 | |
CN117236900B (zh) | 基于流程自动化的个税数据处理方法及系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220114 |