深层脉冲神经网络模型及深层SNN片上实时学习处理器
未命名
08-14
阅读:272
评论:0

深层脉冲神经网络模型及深层snn片上实时学习处理器
技术领域
1.本发明涉及人工智能和类脑智能芯片,具体涉及一种支持片上实时dfa-errortrigger学习的深层脉冲神经网络模型及深层snn片上实时学习处理器。
背景技术:
2.随着人工智能技术的飞速发展,智能边缘端系统对成本、处理速度和能量效率提出了更高的要求。然而目前主流的人工神经网络(artificial neural network,ann)模型需要大量神经元参与同步密集运算,即使采用专用加速芯片,其实时处理速度和能效指标依然存在较严重的瓶颈。然而在进行学习和认知等复杂计算时,人脑消耗的功耗大约只有20w,具有很高的能量效率。近年来,人们对仿生学脉冲神经网络模型和神经形态系统的研究兴趣不断增加。脉冲神经网络(spiking neural network,snn)处理器利用时空上稀疏的二进制脉冲序列来传递和处理感知数据,非常适用于低成本、高速度和高能量效率的智能边缘端系统。
3.现有的大规模通用神经形态处理器可以被组装成大型的芯片阵列,来模拟成千上百万个神经元以及数百万到数十亿个神经突触。这些芯片主要服务于神经科学研究和数据中心计算,且它们面积成本和功耗较高,不适用于边缘智能系统。为了适应目前的多用途边缘计算,一些小型神经形态专用集成电路(application specific integrated circuit,asic)系统被提出,该系统只能配置有限的神经元和神经突触,且在神经元模型、网络拓扑结构和片上学习方面的配置灵活性较差。并且在图像识别任务中,这些小型芯片的片上识别精度较低。边缘神经形态硬件研究的另一个分支是,利用现场可编程门阵列(field programmable gate array,fpga)设备快速探索和验证不同的神经元模型、各种片上学习算法,以及可实现的硬件架构。然而,其中许多处理器的片上识别精度较低(接近或低于90%)。其原因在于,它们采用的是无监督脉冲时间依赖可塑性(spike-timing-dependent synaptic plasticity,stdp)算法,该算法非常有利于硬件实现,但其学习能力较低。最近,重庆大学石匆研究员团队融合三重类脑snn算法,基于zynq-7045 fpga实现了256个神经元的单层snn处理器。该处理器在mnist数据集上达到了95.1%的识别精度,并且实现了1350帧/秒的处理速度。但其全连接突触权重需要1024(输入节点数)
×
256(神经元数)
×
16-bit(突触权重比特精度)=512kb的片上存储资源,并且功耗约为1w。这不利于其在一些对硬件资源成本、功耗要求高的边缘计算场景中的部署。
4.为了实现边缘神经形态系统设计在硬件资源成本、数据吞吐量、处理延迟和片上学习精度方面的整体提升,本发明提出了一种支持片上实时dfa-errortrigger学习的深层脉冲神经网络模型及深层snn片上实时学习处理器。
技术实现要素:
5.本发明提出了一种支持片上实时dfa-errortrigger学习的深层脉冲神经网络模型及深层snn片上实时学习处理器,能达到较高的识别精度,实现快速片上学习。
6.为了实现上述目的,本发明采用的技术方案如下:
7.第一方面,本发明所述的一种深层脉冲神经网络模型,包括输入层、l-1个隐藏层和输出层,各层均由多个if神经元组成,每一层均通过突触权重w(l)与前一层完全连接;
8.其中,突触权重w(l)的训练方法为通过固定的随机反馈矩阵b(l)将输出层误差向量e(l)直接投影到各隐藏层,1≤l≤l-1;
9.在处理训练样本的脉冲序列期间,每当输出层的if神经元j在时间步t发射脉冲但其标签与训练样本标签不匹配时,输出层的l中神经元j的误差极性p(l,j)=-1,立即触发各层神经元的突触权重w(l)更新;
10.在处理完训练样本的所有脉冲后,每个从未发射但其标签与输入样本标签匹配的输出层的if神经元都会有一个正误差,即p(l,j)=+1,触发各层的if神经元的突触权重w(l)更新。
11.可选地,输入脉冲编码的方式为:基于泊松分布的速率编码。
12.可选地,出脉冲解码的方式为:统计每一类包含所有if神经元的发射脉冲总数,对应脉冲总数最多的类别作为输入样本的分类结果;如果有两个及以上类别的脉冲总数同样多时,分类结果判断为未知。
13.第二方面,本发明所述的一种深层snn片上实时学习处理器,包括m1个异构多核的阵列和误差管理单元;各阵列依次连接,且最后一个阵列与误差管理单元连接;
14.各阵列并行计算,各阵列均基于脉冲事件驱动,并以aer的形式处理脉冲事件;其中,aer包括脉冲事件产生的源地址;
15.所述阵列包括m2个并行的神经计算核、一个输入aer fifo和一个按顺序发送各神经计算核输出aer的仲裁器,所述输入aer fifo分别与各神经计算核连接,所述仲裁器分别与神经计算核连接;当前一个阵列有输出的aer就放在后一个阵列的输入fifo内,当后一个阵列处理完一个aer,就从本阵列的输入aer fifo里取aer;
16.所述深层snn片上实时学习处理器内集成有如本发明所述的实时dfa-errortrigger学习算法模型。
17.可选地,所述神经计算核包括局部控制器、if神经元模块、学习引擎模块、输出aer fifo、膜电位存储器和突触权重存储器;所述局部控制器分别与if神经元模块、学习引擎模块、输出aer fifo、膜电位存储器和突触权重存储器连接,所述if神经元模块分别与学习引擎模块、输出aer fifo、膜电位存储器和突触权重存储器连接,突触权重存储器还与学习引擎模块连接。
18.可选地,所述if神经元模块采用两级流水线,在第一级流水中,当有来自前一层的输入脉冲aer时,串行更新所有if神经元的膜电位;第二级流水线用于决定是否发射输出脉冲aer。
19.可选地,所述学习引擎模块采用两级流水线,来自误差管理单元的if神经元j的误差pj触发学习引擎模块串行更新该if神经元的突触权重w(l),在推理过程中不启动学习引擎模块。
20.本发明的有益效果:
21.(1)本发明提出了支持片上实时dfa-errortrigger学习的深层脉冲神经网络模型,基于直接反馈对齐(dfa)理论框架,利用误差触发机制,能够达到较高识别精度的同时,
利于实时性要求高的智能边缘端系统实现。
22.(2)本发明的硬件架构基于事件驱动,采用异构双核的并行阵列和流水线电路设计,能够大幅提升吞吐量性能。
23.(3)本发明所提出的硬件架构具有良好的可扩展性:针对不同的应用场景需求,通过参数配置,可实现硬件架构的灵活配置。
附图说明
24.图1为本实施例的深层脉冲神经网络模型。
25.图2为本实施例的深层snn片上实时学习处理器的硬件架构。
26.图3为本实施例中的if神经元模块的电路图。
27.图4为本实施例中的学习引擎模块的电路图。
具体实施方式
28.如图1所示,本实施例中,一种深层脉冲神经网络模型,该深层脉冲神经网络模型是一种支持片上实时dfa-errortrigger学习的深层脉冲神经网络模型。基于直接反馈对齐(dfa)理论框架,利用误差触发机制,能够达到较高识别精度,利于实时性要求高的智能边缘端系统实现。所设计的硬件基于事件驱动,采用异构双核的并行阵列和流水线电路设计,能够大幅提升吞吐量性能。
29.1.深层脉冲神经网络模型的设计:
30.近年来出现的直接反馈对齐理论框架通过固定的随机反馈矩阵将神经网络的输出层误差独立投影到各个隐藏层,替代了标准误差反向传播(bp)中的误差逐层传播,显著降低了计算复杂度和延迟。errortrigger学习规则,基于突触上累积的输入脉冲个数进行权重更新,操作简单,利于硬件实现。
31.本实施例中,基于dfa理论框架,结合errortrigger学习规则,设计了深层脉冲神经网络模型。该深层脉冲神经网络模型中各层均由多个if神经元组成,每一层都通过突触权重矩阵w(l)与前一层完全连接。
32.2.片上学习规则的设计:
33.在dfa机制下,为训练突触权重w(l),可通过固定的随机反馈矩阵b(l)将输出层误差向量e(l)直接投影到各隐藏层(1≤l≤l-1),对于隐藏层l中的if神经元k,定义其广义误差极性p为:
[0034][0035]
其中b(l)(k,j)为矩阵b(l)中的元素(对于各隐藏层,b(l)中的元素随机确定,对于输出层b(l)等于单元矩阵i),p(l,j)为输出层l中if神经元j的误差极性,p(l,j)是三值的(即可以为+1/0/-1)。在处理训练样本的脉冲序列期间,每当输出层if神经元j在时间步t发射脉冲但其标签与训练样本标签不匹配时,p(l,j)=-1,立即触发各层的if神经元的突触权重w(l)更新,如下:
[0036]
δw
uv
(t)=ηcu(t)pv(t)
ꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0037]
其中:η为学习率,cu(t)为直到当前时间步t第r层if神经元v与前一层if神经元u
相连的突触上累积的脉冲数,其中,1≤r≤r,r为深层脉冲神经网络模型的层数,pv(t)为第r层if神经元v的误差。此外,在处理完训练样本的所有脉冲后,每个从未发射但其标签与输入样本标签匹配的输出层if神经元,都会有一个正误差,p(l,j)=+1,即触发各层if神经元的突触权重w(l)更新,同样以公式(2)的形式。
[0038]
3.输入脉冲编码及输出脉冲解码方式:
[0039]
输入脉冲编码:基于泊松分布的速率编码。
[0040]
输出脉冲解码:统计每一类包含的所有if神经元的发射脉冲总数,对应脉冲总数最多的类别作为输入样本的分类结果。如果有两个及以上类别的脉冲总数同样多时,分类结果判断为未知。
[0041]
4.软件定点,评估所提出深层脉冲神经网络模型在经典mnist数据集上的识别精度:
[0042]
基于c#编程语言,利用visual studio软件工具,对软件代码定点化,以便后续实验中软硬件数据对比。当深层脉冲神经网络模型为784-500-500-500-200时,即输入层由784个if神经元组成,各隐藏层分别由500个if神经元组成,输出层由200个if神经元组成,其在mnist数据集上的识别精度为96%。
[0043]
本实施例中,如图2所示,一种深层snn片上实时学习处理器,是一种支持片上实时dfa-errortrigger学习的物端数字神经形态类脑处理器。
[0044]
1.硬件整体架构设计
[0045]
如图2所示,本实施例中,包括m1个异构多核的阵列和误差管理单元;各阵列依次连接,且最后一个阵列与误差管理单元连接。各阵列并行计算,各阵列都基于事件驱动,并以地址-事件表示(aer)的形式处理它们的脉冲事件。其中,aer包括脉冲事件产生的源地址。
[0046]
如图2所示,所述阵列包括m2个并行的神经计算核、一个输入aer fifo和一个按顺序发送各神经计算核输出aer的仲裁器,所述输入aer fifo分别与各神经计算核连接,所述仲裁器分别与神经计算核连接;当前一个阵列有输出的aer就放在后一个阵列的输入fifo内,当后一个阵列处理完一个aer,就从本阵列的输入aer fifo里取aer;所述深层snn片上实时学习处理器内集成有如本实施例中所述的实时dfa-errortrigger学习算法模型。
[0047]
本实施例中,每个神经计算核串行执行最多m=128个if神经元的相关操作,所述神经计算核包含一个局部控制器、一个执行公式(1)计算的if神经元模块、一个执行公式(2)的学习引擎模块、一个输出aer fifo、一个膜电位存储器和一个突触权重存储器。所述局部控制器分别与if神经元模块、学习引擎模块、输出aer fifo、膜电位存储器和突触权重存储器连接,所述if神经元模块分别与学习引擎模块、输出aer fifo、膜电位存储器和突触权重存储器连接,突触权重存储器还与学习引擎模块连接。所提出的架构是可扩展的,并且可以灵活配置,以满足不同应用程序在处理速度、识别精度和资源成本之间权衡的需求。
[0048]
2.关键计算模块电路设计
[0049]
各计算模块采用流水线电路进行设计和优化,以保证高处理帧率。一旦脉冲事件到来,它们能以高达每个时钟周期一个神经元的速度完成相关的神经突触操作。在各计算模块的流水线电路中,一个阶段对应一个时钟周期。
[0050]
如图3所示,本实施例中,if神经元模块的电路结构,计算过程采用两级流水线,第
一级流水中,当有来自前一层的输入脉冲aer时,串行更新所有if神经元的膜电位。第二级流水线决定是否发射输出脉冲aer。
[0051]
如图4所示,本实施例中,学习引擎模块的电路,计算过程采用两级流水线。来自误差管理单元的神经元j的误差pj触发学习引擎模块串行更新该if神经元的突触权重。本实施例中使用16-bit来计算公式(2)中精确的权重变化量δw
ij
,但是以8-bit的形式存储权重w
ij
以节省存储空间。δw
ij
在添加到w
ij
之前被随机舍入。利用2的互补表达式的特点,将δw
ij
的最低8位作为概率p∈[0,1-2-8
]≈[0,1]的无符号分数进行四舍五入,并与由线性反馈移位寄存器(lfsr)生成的另一个无符号8比特随机分数r进行比较。如果p》r,舍入δw
ij
的最低8位,否则舍弃。在推理过程中不启动学习引擎模块。
[0052]
本实施例中,if神经元指网络各层的神经元模型采用积分点火(integrate&fire,if)神经元模型。if神经元块是指更新神经元膜电位,并判断该神经元是否发射脉冲(若神经元膜电位超过阈值则发射脉冲)的电路模块。
技术特征:
1.一种深层脉冲神经网络模型,其特征在于:包括输入层、l
−
1个隐藏层和输出层,各层均由多个if神经元组成,每一层均通过突触权重w(l)与前一层完全连接;其中,突触权重w(l)的训练方法为通过固定的随机反馈矩阵b(l)将输出层误差向量e(l)直接投影到各隐藏层,1 ≤ l ≤ l
−
1;在处理训练样本的脉冲序列期间,每当输出层的if神经元j在时间步t发射脉冲但其标签与训练样本标签不匹配时,输出层l中神经元j的误差极性p(l, j)=
ꢀ‑
1,立即触发各层神经元的突触权重w(l)更新;在处理完训练样本的所有脉冲后,每个从未发射但其标签与输入样本标签匹配的输出层的if神经元都会有一个正误差,即p(l, j) = +1,触发各层的if神经元的突触权重w(l)更新。2.根据权利要求1所述的深层脉冲神经网络模型,其特征在于:输入脉冲编码的方式为:基于泊松分布的速率编码。3.根据权利要求1或2所述的深层脉冲神经网络模型,其特征在于:输出脉冲解码的方式为:统计每一类包含所有if神经元的发射脉冲总数,对应脉冲总数最多的类别作为输入样本的分类结果;如果有两个及以上类别的脉冲总数同样多时,分类结果判断为未知。4.一种深层snn片上实时学习处理器,其特征在于:包括m1个异构多核的阵列和误差管理单元;各阵列依次连接,且最后一个阵列与误差管理单元连接;各阵列并行计算,各阵列均基于脉冲事件驱动,并以aer的形式处理脉冲事件;其中,aer包括脉冲事件产生的源地址;所述阵列包括m2个并行的神经计算核、一个输入aer fifo和一个按顺序发送各神经计算核输出aer的仲裁器,所述输入aer fifo分别与各神经计算核连接,所述仲裁器分别与神经计算核连接;当前一个阵列有输出的aer就放在后一个阵列的输入fifo内,当后一个阵列处理完一个aer,就从本阵列的输入aer fifo里取aer;所述深层snn片上实时学习处理器内集成有如权利要求1至3任一所述的实时dfa-errortrigger学习算法模型。5.根据权利要求4所述的深层snn片上实时学习处理器,其特征在于:所述神经计算核包括局部控制器、if神经元模块、学习引擎模块、输出aer fifo、膜电位存储器和突触权重存储器;所述局部控制器分别与if神经元模块、学习引擎模块、输出aer fifo、膜电位存储器和突触权重存储器连接,所述if神经元模块分别与学习引擎模块、输出aer fifo、膜电位存储器和突触权重存储器连接,突触权重存储器还与学习引擎模块连接。6.根据权利要求4所述的深层snn片上实时学习处理器,其特征在于:所述if神经元模块采用两级流水线,在第一级流水中,当有来自前一层的输入脉冲aer时,串行更新所有if神经元的膜电位;第二级流水线用于决定是否发射输出脉冲aer。7.根据权利要求4所述的深层snn片上实时学习处理器,其特征在于:所述学习引擎模块采用两级流水线,来自误差管理单元的if神经元j的误差p
j
触发学习引擎模块串行更新该if神经元的突触权重w(l),在推理过程中不启动学习引擎模块。
技术总结
本发明公开了一种深层脉冲神经网络模型及深层SNN片上实时学习处理器,包括输入层、L
技术研发人员:石匆 张靖雅 田敏 王腾霄 何俊贤 喻剑依 高灏然 王海冰 陈乐毅 陈思豪 庹云鹏
受保护的技术使用者:重庆大学
技术研发日:2023.05.29
技术公布日:2023/8/9

版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/