首页> 中国专利> 用于脉冲神经网络的图表示时空反向传播算法

用于脉冲神经网络的图表示时空反向传播算法

摘要

本发明涉及脉冲神经网络技术领域,具体是一种用于脉冲神经网络的图表示时空反向传播算法,通过神经元在网络结构中的网络前向传播获得脉冲神经网络;通过损失函数评估所述脉冲神经网络对任务的误差;通过误差反向传播对所述脉冲神经网络进行训练;通过神经网络优化算法完成训练过程中的参数更新。本发明通过误差反向传播提高了脉冲神经网络的准确率,通过稀疏正则化降低脉冲发放率从而提高了脉冲(事件)驱动计算下的能量效率,并通过图表示的方法适应于各种仿生网络结构的训练过程。

著录项

说明书

技术领域

本发明涉及脉冲神经网络技术领域,尤其涉及一种用于脉冲神经网络的图表示时空反向传播算法。

背景技术

近年来,受到生物神经系统启发的人工神经网络(ANN)取得了飞速发展和巨大进步,并被广泛应用于物体检测、人脸识别、自动驾驶、语音识别以及翻译等领域。但传统ANN仍缺乏对神经元行为和神经系统的结构可靠模拟,使得ANN在推理、决策等智能化任务上与生物体之间存在一定差距,能量效率也远不及生物大脑高效。

脉冲神经网络(SNN)被誉为第三代人工神经网络。SNN因其对复杂的神经元动力学行为的模拟,以及受到生物神经系统功能区启发的各种结构设计,而有着处理丰富时空域特征的信号的巨大潜力。由于SNN像生物神经系统一样通过脉冲在神经元之间进行信息传递,神经元可以没有接收到脉冲时不执行大量计算,以维持较低的静息能量开销。这种脉冲(事件)驱动的计算特征有助于SNN实现更高的能量效率。

作为ANN的一种,SNN也需要经过训练以适应指定的任务。现有的训练算法包括基于转换的算法、突触可塑性算法和反向传播算法三类。基于转换的算法将传统ANN的参数转换到相同结构的SNN中,但是由于通过浮点数传递信息的ANN和通过脉冲传递信息的SNN无法完全吻合,而使得参数转换后的SNN存在信息损失,产生了网络准确率的下降。同时基于转换的方法使得SNN的结构仍受限于传统ANN结构,缺乏对生物神经系统结构的更进一步模仿。突触可塑性算法是一种基于生理学现象的训练算法,其通过神经元突触前后的脉冲时序调整突触的权重,即SNN的参数。突触可塑性算法适用于各种不同的网络结构,并且在学习过程中仅需较少的计算量。传统的突触可塑性算法适用于无监督的学习,使得SNN性能受到一定限制。新兴的改进突触可塑性算法在突触权重调整中加入了全局奖励信号进行调制,以实现一定程度的监督学习,但仍低于反向传播算法。因为反向传播算法通过误差的反向传播,使得网络参数可以被精确调整,而带来了较高的网络性能提升。现阶段适用于SNN的反向传播算法,通过构建各种可导的反向传播通路,或者对反向传播链路的近似替代,将误差传播至每个网络参数,通过梯度下降等方式实现对参数的更新和调整。但和基于转换方法相似的是,现有反向传播算法仅适用于类似传统ANN的前馈结构,而缺乏对各种模拟生物神经系统结构的复杂网络的支持。同时上述各种算法大多着眼于网络准确率,而缺乏对SNN能量效率的探索,使得SNN的优势未被完全利用。

发明内容

本发明的目的在于克服上述现有技术的问题,提出了一种用于脉冲神经网络的图表示时空反向传播算法,以解决各种具有复杂结构的脉冲神经网络的训练问题,并充分利用脉冲神经网络的脉冲(事件)驱动特性,实现较高的能量效率。

上述目的是通过以下技术方案来实现:

一种用于脉冲神经网络的图表示时空反向传播算法,包括:

通过神经元在网络结构中的网络前向传播获得脉冲神经网络;

通过损失函数评估所述脉冲神经网络对任务的误差;

通过误差反向传播对所述脉冲神经网络进行训练;

通过神经网络优化算法完成训练过程中的参数更新。

进一步地,所述神经元在网络结构中的网络前向传播,包括所述神经元在前馈网络结构中的网络前向传播,和所述神经元在循环网络结构中的网络前向传播。

进一步地,,在所述前馈网络结构中,所述神经元的前向过程如下式:

式中,

进一步地,在所述前馈网络结构中,所述神经元的前向过程还可通过矩阵运算进行显著加速,如下式:

for t=0~T-1 do:

S(:,:,t)

式中,

进一步地,在所述循环网络结构中,所述神经元的前向过程如下式:

式中,

进一步地,在所述循环网络结构中,所述神经元的前向过程还可通过矩阵运算进行显著加速,如下式:

for t=0~T-1 do:

S(:,:,t)

式中,

进一步地,所述损失函数包括但不限于脉冲形式的平方损失函数、指数损失函数或交叉熵损失函数。

进一步地,所述损失函数中还加入稀疏正则化,以降低脉冲神经网络的脉冲发放率。

进一步地,所述神经网络优化算法包括但不限于批量梯度下降、随机梯度下降、动量、Adagrad、Adam或AdamW。

进一步地,所述脉冲神经网络中的神经元行为遵循LIF神经元动力学模型及其相应的变种。

有益效果

本发明所提供的一种用于脉冲神经网络的图表示时空反向传播算法,通过误差反向传播提高了脉冲神经网络的准确率,通过稀疏正则化降低脉冲发放率从而提高了脉冲(事件)驱动计算下的能量效率,并通过图表示的方法适应于各种仿生网络结构的训练过程。

附图说明

图1为本发明所述一种用于脉冲神经网络的图表示时空反向传播算法中前馈结构和循环结构网络层示意图;

图2为本发明所述一种用于脉冲神经网络的图表示时空反向传播算法在前馈网络结构的前向传播和反向传播过程示意图;

图3为本发明所述一种用于脉冲神经网络的图表示时空反向传播算法在循环网络结构的前向传播和反向传播过程示意图;

图4为本发明所述一种用于脉冲神经网络的图表示时空反向传播算法中稀疏正则化的结果图;

图5为本发明所述一种用于脉冲神经网络的图表示时空反向传播算法的算法流程图。

具体实施方式

下面根据附图和实施例对本发明作进一步详细说明。所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明所提出的一种用于脉冲神经网络的图表示时空反向传播算法,目的在于提高脉冲神经网络准确率的同时,降低脉冲发放率以提升能量效率。现有脉冲神经网络学习算法分为基于转换的算法、突触可塑性算法和反向传播三类,其中:

基于转换的算法受限于传统网络结构,无法实现模拟生物神经系统的脉冲神经网络;

突触可塑性的算法因其局部权重调整的特性而在网络性能(准确率)上受限;

反向传播取得了较好的网络性能,但是现有反向传播算法仍缺乏对更灵活的生物神经系统结构的支持,也缺少对脉冲发放率的考量,从而未能充分利用和探索脉冲神经网络的能量效率。

为解决上述问题,本方发明可以支持所有网络结构,并可以平衡网络准确率与脉冲发放率,方案如下:

通过神经元在网络结构中的网络前向传播获得脉冲神经网络;

通过损失函数评估所述脉冲神经网络对任务的误差;

通过误差反向传播对所述脉冲神经网络进行训练;

通过神经网络优化算法完成训练过程中的参数更新。

本方案分为网络前向传播和误差反向传播两个过程,并将网络结构分类为前馈结构和循环结构,如图1所示。其中:

前馈结构仅由输入神经元连接到网络层内部神经元的前馈层;

循环结构存在内部神经元连接到内部神经元的突触。

需注意,尽管前馈结构为一种循环结构的特例,但算法中做出的这种分类有助于对前馈结构的相关运算进行加速。

对于前馈网络结构中的LIF神经元(Leaky Integrate-and-Fire)神经元动力学模型),其前向过程遵循下列方程:

上式中,

上式描述了标准LIF模型的动力学过程,其他的神经元模型变种,在上述方程上进行调整,就可实现相应的过程。例如IF模型,是LIF模型在τ=1下的特殊情况。因此本发明提供的方法适用但不限于LIF模型,还包括了一系列衍生的模型变种。

上述过程可以通过矩阵运算进行显著加速。

算法的矩阵运算过程接受输入脉冲

for t=0~T-1 do:

S(:,:,t)

上述过程是随着时间的迭代计算,其中⊙为哈达马积(Hadamard product),表示矩阵之间的逐元素相乘;U(:,:,t)表示矩阵的切片操作。通过上式,前馈层的前向过程可以被计算并加速。

对于循环网络结构的前向过程,其遵循方程:

上述方程与前馈层的区别在于,存在层内部神经元之间的突触连接,并且突触权重通过w

上述过程依然可以受益于矩阵运算,其过程为:

for t=0~T-1 do:

S(:,:,t)

上式中[·|·]表示两个矩阵的合并;

通过如图5所示的前向传播过程,脉冲神经网络的状态已逐层逐时间的计算完毕,亦得到了脉冲输出。

脉冲神经网络的推断过程与上述过程一致。

脉冲神经网络通过损失函数评估对任务的学习情况,损失函数分为对分类任务的损失和稀疏正则项两部分。

以分类任务为例,可用的损失函数包括但不限于包括但不限于脉冲形式的平方损失函数、指数损失函数或Softmax交叉熵损失函数,具体为:

(1)平方损失函数:

其中Y为类别标签(label),i属于脉冲神经网络的输出层,即分类损失仅在输出层上进行计算;λ为正则系数,正则项对频繁的脉冲发放进行惩罚,从而迫使脉冲稀疏,并鼓励神经网络以更高效的脉冲发放进行信息表达。

损失函数对于输出层脉冲的偏导如下:

尽管存在

上式求得了输出层的误差,误差通过反向传播过程传递至其他层。

(2)逐点平方损失函数:

损失函数对输出层的偏导为:

(3)Softmax交叉熵损失函数:

损失函数对输出层的偏导为:

误差反向传播过程的传播路径与前向过程的传播路径相反。

对于前馈层,前向过程中各个状态量和参数之间的计算图如图2所示,箭头表示状态与参数间的计算路径;反向传播将计算图的路径反转,对各个前向过程求其损失函数的偏导,图中对应的部分偏导路径的计算公式为:

为建立反向传播路径,不可导函数

a和b为两个控制近似导数形状的参数,一般情况下可以取a=1与b=1。

损失函数对于输出层的偏导数

如图2所示,上式是在时间上的反演,且通过迭代计算的方式,算法将t时刻后所有时间的误差计入到了

将所有公式代入上式,可得:

上述反向传播计算过程可通过矩阵运算简化计算过程,充分利用计算资源。算法的接受输入量

U′

for t=T-2~0 do:

Δ

其中sum(·)表示矩阵在维度axis上的求和过程。

算法通过过程优化计算了无需时间依赖的中间量,对反向传播的运算速度进行了显著优化,使得算法显著受益于运行于CPU的矩阵运算库(如Intel的MKL)和GPU等为大型矩阵运算等设计的计算设备。

对于循环层的反向传播过程,其计算图如图3所示,区别于前馈层的是,循环层中存在层内神经元向其他神经元的连接,使得存在额外的误差传播路径:

因此误差也会通过层内某个神经元的膜电位,传播至层内其他神经元的脉冲。误差函数对膜电位的导数计算为:

上式仍是关于时间的反演,通过迭代计算将所有时刻的误差传播计入

可进一步求得误差函数对

除输出层外的其他层,在进行误差逐层传播时仍需进行稀疏正则项的修正:

上述相关计算过程仍可以通过矩阵运算进行加速。算法接收输入

需注意的是,

U′

for t=T-2~0 do:

Δ

axis=[0,3])

对于循环层的反向传播依然优化中间量的计算过程,并且算法在CPU与GPU等设备上获得了显著的加速效果。

通过如图5所示的误差反向传播过程,脉冲神经网络各参数的梯度已通过逐层的时间反演计算得到。在网络训练学习过程中,参数可通过诸如SGD、Adam、AdamW等网络优化算法更新。

以SGD为例,参数更新满足下式:

其中w与b代表网络中所有突触权重和偏置,

本方法一方面提供了更灵活脉冲神经网络结构的反向传播训练方法,另一方面平衡了脉冲神经网络的准确率和发放率。

如图4所示,通过调整稀疏正则项,可以在仅引起较少准确率损失的同时,大幅降低脉冲发放率。在专用脉冲神经网络硬件或类脑计算加速器等基于脉冲(事件)驱动的硬件平台上,更低的脉冲发放率可以带来更小的计算开销,从而在保持较高准确率的同时,提高脉冲神经网络的能量效率。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号