CN117436490A - 一种基于fpga脉冲神经网络的神经元硬件实现系统 - Google Patents

一种基于fpga脉冲神经网络的神经元硬件实现系统 Download PDF

Info

Publication number
CN117436490A
CN117436490A CN202311545663.7A CN202311545663A CN117436490A CN 117436490 A CN117436490 A CN 117436490A CN 202311545663 A CN202311545663 A CN 202311545663A CN 117436490 A CN117436490 A CN 117436490A
Authority
CN
China
Prior art keywords
neuron
value
register
output
layer
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
Application number
CN202311545663.7A
Other languages
English (en)
Inventor
钟雪燕
叶云飞
杨杰
陈刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Institute of Railway Technology
Original Assignee
Nanjing Institute of Railway Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Institute of Railway Technology filed Critical Nanjing Institute of Railway Technology
Priority to CN202311545663.7A priority Critical patent/CN117436490A/zh
Publication of CN117436490A publication Critical patent/CN117436490A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/061Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Neurology (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于FPGA脉冲神经网络的神经元硬件实现系统,属于脉冲神经网络模型的技术领域,包括桶型移位寄存器、第一MUX选择器、第一加法器、寄存器和比较器;第一MUX选择器的输入端连接全连接单元和桶型移位寄存器;第一加法器的第一输入端与第一MUX选择器的输出端相连,第二输入端与寄存器的第二输出端相连;第一加法器的输出端与寄存器的输入端相连;寄存器的第一输出端与比较器的输入端相连,第二输出端连接第一加法器的第二输入端以及连接所述桶型移位寄存器的输入端;比较器的输入端与寄存器的第一输出端相连;本发明的运算速度大幅提高,整体资源消耗减少,同时也保证了MNIST数据集图像分类的准确性。

Description

一种基于FPGA脉冲神经网络的神经元硬件实现系统
技术领域
本发明属于脉冲神经网络模型的技术领域,具体涉及一种基于FPGA脉冲神经网络的神经元硬件实现系统。
背景技术
以模拟生物大脑为目标的脉冲神经网络(Spiking Neural Network,SNN)具有更高的生物特性,被誉为“下一代人工神经网络”。
计算功耗的降低也是SNN的一大优势,而将软件算法用硬件平台来实现可以显著降低功耗,因此硬件实现是SNN的一个重要研究方向,目前的神经网络大部分是在计算机上以软件的方式实现的,但在传统的冯·诺依曼架构的计算机上运行SNN效率不高,因此,开发脉冲神经网络的专用硬件电路成为了一个新兴的研究方向;理想状态下,SNN的专用硬件平台上,网络中的每个神经元都是一个单独的计算单元,其高度并行的结构、稀疏的通信方式以及存算一体都区别于目前常用的CPU和GPU平台,使得其计算效率与功耗都低于后者,现场可编程门阵列(FPGA)可以进行快速的硬件功能验证和评估,可以在对神经网络的约束较小的情况下快速设计迭代。
而现有的脉冲神经网络(SNN)图像分类模型存在的资源占用高、计算功耗大、速率慢、运算较复杂等实际约束问题,因此急需一种基于FPGA脉冲神经网络的神经元硬件实现系统。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种基于FPGA脉冲神经网络的神经元硬件实现系统,能够在保证图像分类准确性的同时,提升速率,降低能耗和资源占用率。
本发明提供了如下的技术方案:
提供了一种基于FPGA脉冲神经网络的神经元硬件实现系统,所述脉冲神经网络包括多层神经元;每层神经元均包括神经元硬件电路;所述神经元硬件电路包括桶型移位寄存器、第一MUX选择器、第一加法器、寄存器和比较器;
所述第一MUX选择器的输入端连接全连接单元和桶型移位寄存器,用于选择接收所述全连接单元输出的权值或者选择接收所述桶型移位寄存器输出的累加电压值;
所述第一加法器的第一输入端与所述第一MUX选择器的输出端相连,所述第一加法器的第二输入端与寄存器的第二输出端相连;所述第一加法器的输出端与寄存器的输入端相连;所述寄存器的第一输出端与比较器的输入端相连,所述寄存器的第二输出端连接所述第一加法器的第二输入端以及连接所述桶型移位寄存器的输入端;
当所述第一MUX选择器选择接收所述全连接单元输出的权值时,所述第一加法器用于将前一层的神经脉冲与当前层神经元的权值进行累加,以获取当前层权值累加值,并送至寄存器内,所述寄存器对第一加法器输出的当前层权值累加值进行储存;
当所述第一MUX选择器选择接收所述桶型移位寄存器输出的累加电压值时,所述寄存器将储存的当前层权值累加值和当前层的神经元电压值送至所述桶型移位寄存器;所述桶型移位寄存器对当前层的神经元电压值与当前层权值累加值进行移位相乘,并输出累加电压值;所述第一加法器将当前层的神经元电压值与所述桶型移位寄存器输出的累加电压值进行累加,并输出神经元膜电压值;所述寄存器对输出的神经元膜电压值进行暂存,以便送至比较器;
所述比较器的输入端与寄存器的第一输出端相连,所述比较器用于判断神经元膜电压值是否大于阈值,当神经元膜电压大于电压阈值时,生成神经脉冲输出,同时将神经元膜电压值复位至静息膜电压值并送至寄存器中进行储存;否则,则不生成神经脉冲。
优选地,所述神经元硬件电路基于LIF神经元模型;所述LIF神经元模型的神经元膜电压值计算公式为:
ui(t+1)=ui(t)+Kt(-ui(t)+wi)
ui(t)=ureset,ui(t)≥uth
其中,ui(t)为t时刻神经元i的膜电压值;Kt为时间常数的倒数,ui(t+1)为t+1时刻神经元i的膜电压值;wi为当前层权值累加值;ureset为静息膜电压值。
优选地,所述桶型移位寄存器对所述输入的当前层的神经元电压值进行取反,并将取反后的电压值中的低24位保持原值,高16位为当前层的神经元电压值的符号位值;所述桶型移位寄存器对移位相乘的计算结果取高24位舍弃低16位的小数位。
优选地,所述全连接单元用于将前一层的神经元输出脉冲与当前层神经元的权值的每一个bit位进行与运算;所述静息膜电压值为0。
优选地,所述当前层神经元的权值通过权值更新单元进行确定;所述权值更新单元包括查找表、权值存储器和第二加法器;所述查找表的输入端连接上一层神经单元的脉冲信号、当前层神经单元的输出脉冲信号、当前层输出脉冲的时间间隔信号以及上一层神经单元输出脉冲的时间间隔信号;所述查找表用于提取上一层神经元产生脉冲时,根据脉冲发放时间步数取值的第一权值变化值,以及提取当前层神经元产生脉冲时,根据脉冲发放时间步数取值的第二权值变化值;所述查找表的输出端连接第二加法器的输入端;所述权值存储器的输出端也连接第二加法器的输入端;所述第二加法器用于对所述权值存储器中的权值、第一权值变化值和第二权值变化值进行加法运算,以确定当前层神经元的权值,所述第二加法器还将确定的当前层神经元的权值送至全连接单元,以及使用确定的当前层神经元的权值对权值寄存器的权值进行更新。
优选地,所述查找表是将STDP算法中权值变化值分20个时间间隔形成的。
优选地,每层神经元还包括侧向抑制电路;所述侧向抑制电路包括减法器和第二MUX选择器;所述减法器的第一输入端与第一加法器的输出端相连,所述减法器的输出端与寄存器的输入端相连;所述减法器的第二输入端与所述第二MUX选择器的输出端相连;所述第二MUX选择器用于选择侧向抑制信号的值。
优选地,当有侧向抑制信号时,所述第二MUX选择器选择的侧向抑制信号的值为0.5,若没有侧向抑制信号时,所述第二MUX选择器选择的侧向抑制信号的值为0。
优选地,所述多层神经元为输入层、隐藏层和输出层;所述输入层有784个神经元,所述隐藏层有20个神经元,所述输出层有10个神经元。
与现有技术相比,本发明的有益效果是:
采用桶形移位寄存器实现神经元的乘积运算,节省硬件资源损耗,同时增加侧向抑制电路优化神经元,保证脉冲传递的稀疏性和学习特征的特异性;将STDP算法中权值变化值分20个时间间隔做成查找表,通过查找表方式实现权值更新,相较于直接指数运算更新权值,节省资源、缩短计算运行时间;神经网络前一层与后一层通过循环移位的方式实现全连接,用FPGA并行流水的优势加速SNN算法运行,整个SNN模型在ZCU104 EvaluationBoard上运行MNIST数据集图像分类,资源占用率不足20%,功耗为1.285W,图像分类的准确性为95.82%。
附图说明
图1a是本发明的LIF模型的RC电路示意图;
图1b是本发明的LIF模型的神经元的膜电位u与时间t的关系示意图;
图1c是本发明的LIF模型的神经元的输入电流I与时间t的关系示意图;
图2是本发明的神经元硬件电路的示意图;
图3是本发明的桶型移位寄存器的计算示意图;
图4是本发明的STDP算法曲线图;
图5是本发明的脉冲时间间隔计算流程图;
图6是本发明的权值更新单元的硬件实现图;
图7是本发明的侧向抑制电路的影响示意图;
图8是本发明的侧向抑制电路的硬件图;
图9是本发明的全连接硬件实现图。
图中标记为:1为桶型移位寄存器,2为第一MUX选择器,3为第一加法器,4为寄存器,5为比较器,6为全连接单元,7为查找表,8为权值存储器,9为第二加法器,10为减法器,11为第二MUX选择器。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图2所示,提供了一种基于FPGA脉冲神经网络的神经元硬件实现系统,所述脉冲神经网络包括多层神经元;具体地,如图9所示,所述多层神经元为输入层、隐藏层和输出层;前一层神经元的输出循环移位分段传递给后一层神经元的输入,输入层有784个神经元,隐藏层有20个神经元,输出层有10个神经元;前一层的神经元脉冲输出传递给后一层的神经元输入后,当时钟脉冲来临时,前一层的输出循环左移一位,继续传递给下一层,这样实现两层之间的全连接。
如图2所示,每层神经元均包括神经元硬件电路;所述神经元硬件电路基于LIF神经元模型;LIF神经元模型是现阶段脉冲神经网络的搭建与训练过程中使用最多的神经元模型,既保留了HH(Hodgkin-Huxley)模型中关于生物神经元的核心思想,具有一定的仿生型,也兼顾了普通人工神经元计算效率高的特点,所以本文就LIF神经元展开数字硬件化研究。该模型由法国生物学家Louis Lapicque于1907年提出,以一个RC电路(如图1a所示),的形式建立起了生物神经元的简化模型(准确来说应该是神经元细胞膜的简易模型),图1b和图1c直观描述了神经元的膜电位u和输入电流I之间的关系,其中膜电位u的变换过程如下面一阶微分方程描述:
变形可得标准的LIF微分模型:
ui(t)=ureset,ui(t)≥uth (2)
其中ui(t)表示t时刻神经元i的细胞膜电位,ureset表示静息膜电压,τmem=RmCm是细胞膜时间常数,表示膜电位达到平衡时所需的时间。当细胞膜电位ui超过阈值uth时,神经元发放脉冲并且复位到ureset
其中ureset=0将公式(2)简化为
将其离散化可化为:
公式(3)中Δt趋向于一个时钟脉冲,即Δt→1,故可将公式(2)化为:
定义时间常数τmem=6,令
公式(4)化简为ui(t+1)=ui(t)+Kt(-ui(t)+RmIi(t)),只有当前一层神经元产生的脉冲时才会对下一层神经元产生刺激,由于神经元细胞膜阈值电压Vth=1,所以前一层神经元产生的脉冲对下一层神经元的刺激RmIi(t)=Vth×wi=wi,最后LIF模型的公式可以化为:
所述LIF神经元模型的神经元膜电压值计算公式为:
其中,ui(t)为t时刻神经元i的膜电压值;Kt为时间常数的倒数,ui(t+1)为t+1时刻神经元i的膜电压值;wi为当前层权值累加值;ureset为静息膜电压值。
如图2所示,神经元硬件电路包括桶型移位寄存器1、第一MUX选择器2、第一加法器3、寄存器4和比较器5。
第一MUX选择器2的输入端连接全连接单元6和桶型移位寄存器1,用于选择接收所述全连接单元6输出的权值或者选择接收所述桶型移位寄存器1输出的累加电压值;所述全连接单元6用于将前一层的神经元输出脉冲与当前层神经元的权值的每一个bit位进行与运算;所述第一加法器3的第一输入端与所述第一MUX选择器2的输出端相连,所述第一加法器3的第二输入端与寄存器4的第二输出端相连;所述第一加法器3的输出端与寄存器4的输入端相连;所述寄存器4的第一输出端与比较器5的输入端相连,所述寄存器4的第二输出端连接所述第一加法器3的第二输入端以及连接所述桶型移位寄存器1的输入端。
当所述第一MUX选择器2选择接收所述全连接单元6输出的权值时,所述第一加法器3用于将前一层的神经脉冲与当前层神经元的权值进行累加,并送至寄存器4内,所述寄存器4对第一加法器3输出的当前层权值累加值进行储存。
当所述第一MUX选择器2选择接收所述桶型移位寄存器1输出的累加电压值时,所述寄存器4将储存的当前层权值累加值和当前层的神经元电压值送至所述桶型移位寄存器1;所述当前层的神经元电压值可以由LIF模型的模拟值直接确定并存储在寄存器4内;所述桶型移位寄存器1对当前层的神经元电压值与当前层权值累加值进行移位相乘,并输出累加电压值;所述第一加法器3将当前层的神经元电压值与所述桶型移位寄存器1输出的累加电压值进行累加,并输出神经元膜电压值;所述寄存器4对输出的神经元膜电压值进行暂存,以便将所述神经元膜电压值送至比较器5。
比较器5的输入端与寄存器4的第一输出端相连,所述比较器5用于判断神经元膜电压值是否大于阈值,当神经元膜电压大于电压阈值时,生成神经脉冲输出,同时将神经元膜电压值复位至静息膜电压值并送至寄存器4中进行储存;否则,则不生成神经脉冲。
具体地,在FPGA运算过程中,定义权值weight和电压值V为24位,高8位为整数位,低16位为小数位,根据公式(5)所示,在进行电压值累加时,第一MUX选择器2的mux_sel选择weight,此时前一层的神经元输出脉冲spike依次全连接到该层的神经元,与该层的神经元权重weight的每一个bit位进行与运算,前一层有脉冲则权重(电压值)累加,没有脉冲则无变化,实现前一层有神经脉冲时对后一层神经元的刺激,实现了公式(5)中权重ωi(电压值)累加,当把前一层的所有神经元脉冲都累加结束后,电压值V取负值乘以Kt,这时第一MUX选择器2的mux_sel选择shifted。
乘积项Kt定义为24位,高8位为整数位,低16位为小数位,所以Kt值为00000000,00101010,10101011。
故:
其中,V'=V×2-16
24位小数与24位小数直接相乘,占用大量硬件资源,为此,采用了桶形移位寄存器4循环累加实现,如图3所示,首先,由于乘数Kt是小于1的小数,为了防止数据溢出,将输入桶形移位寄存器4的数据电压值V左移Kt小数位的位数16位,变成V′,其中高8位为整数位,低32位小数位,即低24位保持电压值V原值,高16位给其电压值V的符号位值,其次,电压值V经过移位运算后,Kt可以看成整数进行乘法移位运算,将Kt转换成权值相加模式,利用乘法分配法,V×Kt转换成V′和Kt权值乘积的累加模式,而V′和Kt权值乘积采用二进制移位来实现,为此需要判断Kt二进制中所有1的位数,即公式(6)中2的指数,作为桶形移位寄存器4移位位数shift输入,故设定寄存器4n_ones_Kt存放Kt中1的个数,设计n_ones_Kt个寄存器4的数组shifts_Kt存放Kt二进制中所有1的位数,逐个读取给桶形移位寄存器4的输入shift,进行移位乘积运算,运算结果取高24位,舍弃低16位小数位。
桶型移位寄存器1输出的累加电压值加上当前层的神经元电压值V,完成了LIF模型中电压的计算。同时在电压计算过程中,判断神经元膜电压值是否大于电压阈值Vth,只要比阈值大,生成神经脉冲输出,同时神经元膜电压值复位到静息膜电压值,所述静息膜电压值为0。
在一些其他的实施例中,所述当前层神经元的权值通过权值更新单元进行确定;所述权值更新单元包括查找表7、权值存储器8和第二加法器9;所述查找表7的输入端连接上一层神经单元的脉冲信号、当前层神经单元的输出脉冲信号、当前层输出脉冲的时间间隔信号以及上一层神经单元输出脉冲的时间间隔信号;所述查找表7可以提取上一层神经元产生脉冲时,根据脉冲发放时间步数取值的第一权值变化值,以及提取当前层神经元产生脉冲时,根据脉冲发放时间步数取值的第二权值变化值;所述查找表7的输出端连接第二加法器9的输入端;所述权值存储器8的输出端也连接第二加法器9的输入端;所述第二加法器9用于对所述权值存储器8中的权值、第一权值变化值和第二权值变化值进行加法运算,以确定当前层神经元的权值,所述第二加法器9还将确定的当前层神经元的权值送至全连接单元6,以及使用确定的当前层神经元的权值对权值寄存器4的权值进行更新。
具体地,所述查找表7是将STDP算法中权值变化值分20个时间间隔形成的。
具体地,脉冲时间依赖可塑性(spike-timing-dependent plasticity,STDP)是一个时序非对称形式的Hebb学习法则,是调节大脑中神经元之间的连接强度的生物学过程,该过程根据特定神经元输入脉冲的相对时序调整连接强度,受突触前和突触后神经元峰值之间的紧密时间相关性影响。与其他形式的突触可塑性一样,人们普遍认为它是大脑学习和信息存储的基础,也是大脑发育过程中神经元回路的发展和完善的基础。
如果突触前脉冲在突触后脉冲前几毫秒内到达,会导致Long-Term Potentiation(LTP)。反之,会引起Long-Term Depression(LTD)。突触的变化作为突触前和突触后动作电位的相对时间的函数被称为STDP函数,在不同的突触类型之间变化。
其学习机制可以表达为;
其中,tpost表示突触后神经元产生脉冲的时间,tpre表示突触前神经元产生脉冲的时间,表明了突触权重的变化由所有突触前神经元的脉冲发放时间和突触后的脉冲发放时间所影响,常规的STDP时间函数如下:
其中,Δt表示突触后神经元产生脉冲的时间,A+和A-代表权重调整的范围,τ+和τ-表示不同神经元模型的常量。由式(5)还可以看出,当突触后神经元在突触前神经元之前产生脉冲时,则减少两者之间的权重,反之如果突触后神经元在突触前神经元之后产生脉冲,则增加两者之间的权重。
STDP算法中参数取值如表1所示,该参数下得出的STDP算法曲线图如图4所示。从图中看到当Δt<0时,表示前神经元与后神经元之间构成因果联系,突触权重增量呈指数增大,且脉冲时间相隔越短说明联系越紧密,对应突触权重增加得越多;当Δt≥0时,则表示前后神经元之间存在逆因果联系,权重增量呈指数减小,且时间差越短对应权重减少得越多。
表1 STDP学习参数
在FPGA中,指数运算资源和时间损耗比较大故采用查找表7的方式来实现STDP算法,具体查找表7数据如表2所示,权重变化二进制值和LIF中的权值统一,定义为24位,高8位为整数位,低16位为小数位。从表格变化可以看出20个时间间隔后,权重变化值已经很小了,可以忽略不记,故神经脉冲对神经元的影响在本论文中计算了20个时间间隔。
表2为查找表7的具体数据
如图5所示,当产生神经脉冲时,STDP算法对下一层神经元的影响是20个时间间隔。其中,T_BACK为受STDP算法影响的20个时间间隔,当有脉冲发生时,spike_counter计数器在下一步变成1;当spike_counter累计步数大于T_BACK时,复位为0;当既没有脉冲发生,spike_counter又不是0时,说明还没满足20个时间间隔,所有spike_counter继续加1,直到满足20个时间间隔或是有下个脉冲发生。
如图6所示,如果是上一层神经元产生脉冲,根据脉冲发放时间步数取值相应的LUT_pos的第一权值变化值ω_pos,如果是当前层神经元产生脉冲,根据脉冲发放时间步数取值相应的LUT_neg的第二权值变化值ω_neg,再依据spike_counter计数器的值,可以到查找表7中提取对应的权值变化值,所以当前神经元的权值为权值存储器8中的权值加上脉冲发送时间引起的STDP算法的权值变化,即w(t)=w(t-1)+w_pos(Δt)+w_neg(Δt),将该权值传递给LIF模型后,同时更新权值存储器8中的权值。
在一些其他的实施例中,每层神经元还包括侧向抑制电路;所述侧向抑制电路包括减法器10和第二MUX选择器11;所述减法器10的第一输入端与第一加法器3的输出端相连,所述减法器10的输出端与寄存器4的输入端相连;所述减法器10的第二输入端与所述第二MUX选择器11的输出端相连;所述第二MUX选择器11用于选择侧向抑制信号的值。
具体地,当有侧向抑制信号时,所述第二MUX选择器11选择的侧向抑制信号的值为0.5,若没有侧向抑制信号时,所述第二MUX选择器11选择的侧向抑制信号的值为0。
具体地,如图7和8所示,当前层的神经元产生神经脉冲时,侧向抑制信号Li_flag有效,传递给相邻神经元;神经元接收到相邻神经元的侧向抑制信号Li_flag后,确定相邻神经元产生脉冲,该神经元的电压值衰减侧向抑制值vli0.5,达到侧向抑制的目的。
将侧向抑制的硬件实现融入神经元的硬件电路中,如图8所示,在神经元硬件电路中加了减法器10用来侧向抑制,没有侧向抑制信号时,MUX选择器选择0,有侧向抑制信号时,MUX选择器选择侧向抑制值vli0.5,送到减法器10中对电压值衰减。
对本神经元硬件实现系统进行实验验证与分析:
处理对象为MNIST数据集,对MNIST数据集的手写数字从0到9分类。MNIST数据集图像像素为28*28,总共784个像素点,在MATLAB中对这784个像素点频率编码生成神经脉冲。首先用0对图像边缘数据扩展,成为32*32像素,像素值归一化处理,再将其与5*5卷积核卷积提取图像特征,再通过电压插值运算将像素值转换为细胞膜电压值,根据电压值与周期的反比例关系,得到对应的周期或是频率,最后进行频率编码得到脉冲序列。得到的脉冲序列存储至文件中,SNN模型直接读取送到图9中的输入层,输入层总共784个神经元,处理28*28图像生成的脉冲,输入层神经元输出全连接到隐藏层20个神经元,隐藏层神经元输出全连接到输出层10个神经元,这10个神经元对应着数字0-9的分类。
实验环境是Zynq UltraScale+ZCU104 Evaluation Board,主控芯片为XCZU7EV-2FFVC1156E,实验所使用的网络参数如表3所示,重复实验取最终稳定后的测试集准确率结果的平均值作为模型的性能评价指标,同时记录训练集准确率以作参考,在MATLAB里建立模型测试,使用32位的浮点数,准确率达到97%以上,而在FPGA上采用24位的浮点数,故准确率有所下降,准确率为95.82%左右。
表3为SNN模型的网络参数
参数
时间步长 400
积分时间 0.0025
静息电压 0
阈值电压 1
细胞膜时间常数 6
整个算法在FPGA上实现时硬件占用如表4所示,整体资源占用率比较低,整体占用率不足20%。该算法的片上总功耗为1.285W,包括0.619W的设备静态功耗和0.766W的动态功耗,时钟频率可达到300MHz,线路延迟最多0.5ns。由于并行流水运算以及较高时钟频率,相比于用软件实现SNN算法,基于FPGA的实现运算速率快、功耗低、资源占用少,同时适合硬件移植,具有良好应用价值。
表4硬件资源表
Resource Estimation Available Utilization%
LUT 45242 230400 19.64
LUTRAM 202 10760 0.20
FF 54331 460800 11.79
BRAM 20 312 6.41
DSP 6 1728 0.35
IO 10 360 2.78
BUFG 2 544 0.37
PLL 1 16 6.25
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (9)

1.一种基于FPGA脉冲神经网络的神经元硬件实现系统,其特征在于,所述脉冲神经网络包括多层神经元;每层神经元均包括神经元硬件电路;所述神经元硬件电路包括桶型移位寄存器(1)、第一MUX选择器(2)、第一加法器(3)、寄存器(4)和比较器(5);
所述第一MUX选择器(2)的输入端连接全连接单元(6)和桶型移位寄存器(1),用于选择接收所述全连接单元(6)输出的权值或者选择接收所述桶型移位寄存器(1)输出的累加电压值;
所述第一加法器(3)的第一输入端与所述第一MUX选择器(2)的输出端相连,所述第一加法器(3)的第二输入端与寄存器(4)的第二输出端相连;所述第一加法器(3)的输出端与寄存器(4)的输入端相连;所述寄存器(4)的第一输出端与比较器(5)的输入端相连,所述寄存器(4)的第二输出端连接所述第一加法器(3)的第二输入端以及连接所述桶型移位寄存器(1)的输入端;
当所述第一MUX选择器(2)选择接收所述全连接单元(6)输出的权值时,所述第一加法器(3)用于将前一层的神经脉冲与当前层神经元的权值进行累加,以获取当前层权值累加值,并送至寄存器(4)内,所述寄存器(4)对第一加法器(3)输出的当前层权值累加值进行储存;
当所述第一MUX选择器(2)选择接收所述桶型移位寄存器(1)输出的累加电压值时,所述寄存器(4)将储存的当前层权值累加值和当前层的神经元电压值送至所述桶型移位寄存器(1);所述桶型移位寄存器(1)对当前层的神经元电压值与当前层权值累加值进行移位相乘,并输出累加电压值;所述第一加法器(3)将当前层的神经元电压值与所述桶型移位寄存器(1)输出的累加电压值进行累加,并输出神经元膜电压值;所述寄存器(4)对输出的神经元膜电压值进行暂存,以便送至比较器(5);
所述比较器(5)的输入端与寄存器(4)的第一输出端相连,所述比较器(5)用于判断神经元膜电压值是否大于阈值,当神经元膜电压大于电压阈值时,生成神经脉冲输出,同时将神经元膜电压值复位至静息膜电压值并送至寄存器(4)中进行储存;否则,则不生成神经脉冲。
2.根据权利要求1所述的基于FPGA脉冲神经网络的神经元硬件实现系统,其特征在于,所述神经元硬件电路基于LIF神经元模型;所述LIF神经元模型的神经元膜电压值计算公式为:
ui(t+1)=ui(t)+Kt(-ui(t)+wi)
ui(t)=ureset,ui(t)≥uth
其中,ui(t)为t时刻神经元i的膜电压值;Kt为时间常数的倒数,ui(t+1)为t+1时刻神经元i的膜电压值;wi为当前层权值累加值;ureset为静息膜电压值。
3.根据权利要求1所述的基于FPGA脉冲神经网络的神经元硬件实现系统,其特征在于,所述桶型移位寄存器(1)对所述输入的当前层的神经元电压值进行取反,并将取反后的电压值中的低24位保持原值,高16位为当前层的神经元电压值的符号位值;所述桶型移位寄存器(1)对移位相乘的计算结果取高24位舍弃低16位的小数位。
4.根据权利要求1所述的基于FPGA脉冲神经网络的神经元硬件实现系统,其特征在于,所述全连接单元(6)用于将前一层的神经元输出脉冲与当前层神经元的权值的每一个bit位进行与运算;所述静息膜电压值为0。
5.根据权利要求4所述的基于FPGA脉冲神经网络的神经元硬件实现系统,其特征在于,所述当前层神经元的权值通过权值更新单元进行确定;所述权值更新单元包括查找表(7)、权值存储器(8)和第二加法器(9);所述查找表(7)的输入端连接上一层神经单元的脉冲信号、当前层神经单元的输出脉冲信号、当前层输出脉冲的时间间隔信号以及上一层神经单元输出脉冲的时间间隔信号;所述查找表(7)用于提取上一层神经元产生脉冲时,根据脉冲发放时间步数取值的第一权值变化值,以及提取当前层神经元产生脉冲时,根据脉冲发放时间步数取值的第二权值变化值;所述查找表(7)的输出端连接第二加法器(9)的输入端;所述权值存储器(8)的输出端也连接第二加法器(9)的输入端;所述第二加法器(9)用于对所述权值存储器(8)中的权值、第一权值变化值和第二权值变化值进行加法运算,以确定当前层神经元的权值,所述第二加法器(9)还将确定的当前层神经元的权值送至全连接单元(6),以及使用确定的当前层神经元的权值对权值寄存器(4)的权值进行更新。
6.根据权利要求5所述的基于FPGA脉冲神经网络的神经元硬件实现系统,其特征在于,所述查找表(7)是将STDP算法中权值变化值分20个时间间隔形成的。
7.根据权利要求1所述的基于FPGA脉冲神经网络的神经元硬件实现系统,其特征在于,每层神经元还包括侧向抑制电路;所述侧向抑制电路包括减法器(10)和第二MUX选择器(11);所述减法器(10)的第一输入端与第一加法器(3)的输出端相连,所述减法器(10)的输出端与寄存器(4)的输入端相连;所述减法器(10)的第二输入端与所述第二MUX选择器(11)的输出端相连;所述第二MUX选择器(11)用于选择侧向抑制信号的值。
8.根据权利要求7所述的基于FPGA脉冲神经网络的神经元硬件实现系统,其特征在于,当有侧向抑制信号时,所述第二MUX选择器(11)选择的侧向抑制信号的值为0.5,若没有侧向抑制信号时,所述第二MUX选择器(11)选择的侧向抑制信号的值为0。
9.根据权利要求1所述的基于FPGA脉冲神经网络的神经元硬件实现系统,其特征在于,所述多层神经元为输入层、隐藏层和输出层;所述输入层有784个神经元,所述隐藏层有20个神经元,所述输出层有10个神经元。
CN202311545663.7A 2023-11-20 2023-11-20 一种基于fpga脉冲神经网络的神经元硬件实现系统 Pending CN117436490A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311545663.7A CN117436490A (zh) 2023-11-20 2023-11-20 一种基于fpga脉冲神经网络的神经元硬件实现系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311545663.7A CN117436490A (zh) 2023-11-20 2023-11-20 一种基于fpga脉冲神经网络的神经元硬件实现系统

Publications (1)

Publication Number Publication Date
CN117436490A true CN117436490A (zh) 2024-01-23

Family

ID=89553335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311545663.7A Pending CN117436490A (zh) 2023-11-20 2023-11-20 一种基于fpga脉冲神经网络的神经元硬件实现系统

Country Status (1)

Country Link
CN (1) CN117436490A (zh)

Similar Documents

Publication Publication Date Title
CN110048827B (zh) 一种基于深度学习卷积神经网络的类模板攻击方法
Liang et al. Stacked denoising autoencoder and dropout together to prevent overfitting in deep neural network
US20190087713A1 (en) Compression of sparse deep convolutional network weights
CN111967586B (zh) 一种用于脉冲神经网络存内计算的芯片及计算方法
CN113826122A (zh) 人工神经网络的训练
CN108304912B (zh) 一种运用抑制信号实现脉冲神经网络监督学习的系统和方法
US20230274150A1 (en) Performing Inference And Training Using Sparse Neural Network
US5630023A (en) Signal processor
CN109635938B (zh) 一种自主学习脉冲神经网络权值量化方法
JP7186591B2 (ja) テキスト分類装置、学習装置、およびプログラム
Vialatte et al. A study of deep learning robustness against computation failures
CN114266351A (zh) 基于无监督学习时间编码的脉冲神经网络训练方法及系统
Li et al. Input-aware dynamic timestep spiking neural networks for efficient in-memory computing
Ma et al. Temporal pyramid recurrent neural network
Jokar et al. On the existence of proper stochastic Markov models for statistical reconstruction and prediction of chaotic time series
CN115879530B (zh) 一种面向rram存内计算系统阵列结构优化的方法
CN117436490A (zh) 一种基于fpga脉冲神经网络的神经元硬件实现系统
CN113033795B (zh) 基于时间步的二值脉冲图的脉冲卷积神经网络硬件加速器
US20230004351A1 (en) Method and device for additive coding of signals in order to implement digital mac operations with dynamic precision
CN115358485A (zh) 一种基于图自注意力机制与霍克斯过程的交通流预测方法
CN112561180B (zh) 基于元学习的短期风速预测方法、装置、计算机设备及存储介质
CN110378469B (zh) 基于异步电路的scnn推理装置及其pe单元、处理器及计算机设备
US12003255B2 (en) Method and device for binary coding of signals in order to implement digital MAC operations with dynamic precision
CN114092763A (zh) 一种脉冲神经网络模型构建方法
CN116134415A (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