CN114819121B - 基于脉冲神经网络的信号处理装置及信号处理方法 - Google Patents

基于脉冲神经网络的信号处理装置及信号处理方法 Download PDF

Info

Publication number
CN114819121B
CN114819121B CN202210316654.XA CN202210316654A CN114819121B CN 114819121 B CN114819121 B CN 114819121B CN 202210316654 A CN202210316654 A CN 202210316654A CN 114819121 B CN114819121 B CN 114819121B
Authority
CN
China
Prior art keywords
pulse
pulse sequence
value corresponding
compressed
register
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.)
Active
Application number
CN202210316654.XA
Other languages
English (en)
Other versions
CN114819121A (zh
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.)
Institute of Automation of Chinese Academy of Science
Original Assignee
Institute of Automation of Chinese Academy of Science
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 Institute of Automation of Chinese Academy of Science filed Critical Institute of Automation of Chinese Academy of Science
Priority to CN202210316654.XA priority Critical patent/CN114819121B/zh
Publication of CN114819121A publication Critical patent/CN114819121A/zh
Application granted granted Critical
Publication of CN114819121B publication Critical patent/CN114819121B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明提供一种基于脉冲神经网络的信号处理装置及信号处理方法,所述装置包括:第一寄存器、第二寄存器、第三寄存器、加法器和移位器;第一寄存器的输出端和第二寄存器的输出端连接加法器的第一输入端;第一寄存器用于存储待处理信号对应的脉冲序列经压缩编码后的脉冲序列;加法器的输出端连接第三寄存器的输入端;第三寄存器的输出端连接移位器的输入端;移位器的输出端连接加法器的第二输入端;加法器用于获取当前时钟周期对应的脉冲积分值;第三寄存器还用于将最后一个时钟周期对应的脉冲积分值作为待处理信号的处理结果进行输出。本发明通过脉冲压缩编码加速SNN模型中的脉冲计算,可满足在有限硬件资源的情况下实现实时的信号处理。

Description

基于脉冲神经网络的信号处理装置及信号处理方法
技术领域
本发明涉及脉冲神经网络和集成电路技术领域,尤其涉及一种基于脉冲神经网络的信号处理装置及信号处理方法。
背景技术
随着脑科学和类脑计算技术的发展,脉冲神经网络(Spiking Neural Network,SNN)被认为是一种接近大脑信息处理方式的计算模型,可以模仿人类的大脑来处理图像或声音等信号,具有低功耗和结构简单的优点。
SNN模型对输入的信号形成多个脉冲序列,对多个脉冲序列进行实时的脉冲计算是SNN模型对输入信号进行处理的核心,SNN模型的脉冲计算主要有脉冲积分操作和池化操作。脉冲积分操作和池化操作是基于脉冲频率编码的方式计算脉冲,但是计算效率低,在硬件资源受限的情况下很难做到对信号的实时处理。
因此,如何加速SNN模型的脉冲计算效率来实现实时的信号处理是急需解决的技术问题。
发明内容
本发明提供一种基于脉冲神经网络的信号处理装置及信号处理方法,用以解决现有技术中SNN模型在资源有限的情况下很难实现实时的信号处理的缺陷。
本发明提供一种基于脉冲神经网络的信号处理装置,包括:第一寄存器、第二寄存器、第三寄存器、加法器和移位器;
所述第一寄存器的输出端和所述第二寄存器的输出端连接所述加法器的第一输入端;所述第一寄存器用于存储待处理信号对应的压缩编码脉冲序列;所述压缩编码脉冲序列是所述待处理信号对应的脉冲序列进行压缩编码后的脉冲序列;所述第二寄存器用于存储与所述压缩编码脉冲序列对应的权重值;
所述加法器的输出端连接所述第三寄存器的输入端;所述第三寄存器的输出端连接所述移位器的输入端;所述第三寄存器用于存储所述加法器输出的脉冲积分值,并将上一个时钟周期对应的脉冲积分值输入所述移位器中;
所述移位器的输出端连接所述加法器的第二输入端;所述移位器用于对所述上一个时钟周期对应的脉冲积分值进行缩放;
所述加法器用于根据所述压缩编码脉冲序列的脉冲表征值、所述压缩编码脉冲序列对应的权重值以及缩放后的上一个时钟周期对应的脉冲积分值获取当前时钟周期对应的脉冲积分值;
所述第三寄存器还用于将最后一个时钟周期对应的脉冲积分值作为所述待处理信号的处理结果进行输出。
可选地,所述压缩编码脉冲序列是所述待处理信号对应的脉冲序列以二进制补码的形式进行压缩编码后的脉冲序列。
可选地,所述压缩编码脉冲序列的编码位数是根据最大的输入脉冲个数确定的。
可选地,所述移位器具体用于:
根据所述压缩编码脉冲序列的压缩编码方式和所述压缩编码脉冲序列的输入方式对所述上一个时钟周期对应的脉冲积分值进行缩放。
本发明还提供一种基于任一种所述的基于脉冲神经网络的信号处理装置的信号处理方法,包括:
对待处理信号对应的脉冲序列进行压缩编码,获取压缩编码脉冲序列;
基于所述压缩编码脉冲序列,获取所述待处理信号的处理结果。
可选地,所述对待处理信号对应的脉冲序列进行压缩编码,获取压缩编码脉冲序列,包括:
对待处理信号对应的脉冲序列以二进制补码的形式进行压缩编码,获取压缩编码脉冲序列。
可选地,对待处理信号对应的脉冲序列以二进制补码的形式进行压缩编码,获取压缩编码脉冲序列之前,包括:
确定最大的输入脉冲个数;
根据所述最大的输入脉冲个数确定所述压缩编码脉冲序列的编码位数。
可选地,所述基于所述压缩编码脉冲序列,获取所述待处理信号的处理结果,包括:
在当前时钟周期内,根据所述压缩编码脉冲序列的脉冲表征值、所述压缩编码脉冲序列对应的权重值以及缩放后的上一个时钟周期对应的脉冲积分值,获取当前时钟周期对应的脉冲积分值;
循环迭代直至最后一个时钟周期,将所述最后一个时钟周期对应的脉冲积分值确定为所述待处理信号的处理结果。
可选地,所述当前时钟周期对应的脉冲积分值的表达式如下所示:
Figure BDA0003569171580000031
式中,Vt表示第t时钟周期对应的脉冲积分值,m表示缩放倍数,Vt-1表示第t-1时钟周期对应的脉冲积分值,Si(t)表示第i个压缩编码脉冲序列在第t时钟周期对应的脉冲表征值,Wi表示第i个压缩编码脉冲序列对应的权重值,n表示输入脉冲序列的个数,t的取值范围为1至编码位数的自然数。
可选地,所述缩放后的上一个时钟周期对应的脉冲积分值通过如下步骤获取:
根据所述压缩编码脉冲序列的压缩编码方式和所述压缩编码脉冲序列的输入方式,对所述上一个时钟周期对应的脉冲积分值进行缩放,获取所述缩放后的上一个时钟周期对应的脉冲积分值。
本发明提供的基于脉冲神经网络的信号处理装置及信号处理方法,通过脉冲压缩编码加速SNN模型中的脉冲计算,可满足在有限硬件资源的情况下实现实时的信号处理。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的基于脉冲神经网络的信号处理装置的结构示意图;
图2是本发明实施例提供的脉冲积分操作的示意图;
图3是本发明实施例提供的池化操作的示意图;
图4是本发明实施例提供的基于压缩编码脉冲序列计算脉冲积分的示意图;
图5是本发明实施例提供的以四进制补码进行脉冲压缩时脉冲积分的计算示意图;
图6是本发明实施例提供的基于脉冲神经网络的信号处理装置的信号处理方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的基于脉冲神经网络的信号处理装置的结构示意图,如图1所示,本发明提供脉冲神经网络的信号处理装置,该装置包括:
第一寄存器、第二寄存器、第三寄存器、加法器和移位器;
所述第一寄存器的输出端和所述第二寄存器的输出端连接所述加法器的第一输入端;所述第一寄存器用于存储待处理信号对应的压缩编码脉冲序列;所述压缩编码脉冲序列是所述待处理信号对应的脉冲序列进行压缩编码后的脉冲序列;所述第二寄存器用于存储与所述压缩编码脉冲序列对应的权重值;
所述加法器的输出端连接所述第三寄存器的输入端;所述第三寄存器的输出端连接所述移位器的输入端;所述第三寄存器用于存储所述加法器输出的脉冲积分值,并将上一个时钟周期对应的脉冲积分值输入所述移位器中;
所述移位器的输出端连接所述加法器的第二输入端;所述移位器用于对所述上一个时钟周期对应的脉冲积分值进行缩放;
所述加法器用于根据所述压缩编码脉冲序列的脉冲表征值、所述压缩编码脉冲序列对应的权重值以及缩放后的上一个时钟周期对应的脉冲积分值获取当前时钟周期对应的脉冲积分值;
所述第三寄存器还用于将最后一个时钟周期对应的脉冲积分值作为所述待处理信号的处理结果进行输出。
具体地,图2是本发明实施例提供的脉冲积分操作的示意图,如图2所示,用一个长度为N的0/1序列表示N个时刻内某个脉冲序列的输入情况,1表征该时刻有脉冲输入,0表征该时刻没有脉冲输入,用某个脉冲对应的权重Wα表示突触强度。将n个脉冲序列的脉冲表征值依次输入加法器中进行积分运算,输出脉冲积分结果。一个时钟周期内,一个脉冲序列只向加法器中输入一个脉冲表征值。再将积分结果输入加法器中,参与下一个时钟周期的脉冲积分运算,循环迭代直至最后一个时钟周期,获取脉冲积分运算的最终结果。最后一个时钟周期即脉冲序列向加法器中输入最后一位脉冲表征值的时钟周期。
在时钟周期为p时,脉冲积分操作计算的脉冲积分结果的表达式如下所示:
Figure BDA0003569171580000061
式中,Vp表示第p时钟周期对应的脉冲积分值,Vp-1表示第p-1时钟周期对应的脉冲积分值,Sα(p)表示第α个输入脉冲序列在第p时钟周期的脉冲表征值,Wα表示第α个输入脉冲的权重,n表示输入脉冲序列的个数,p的取值范围为1至脉冲序列长度的自然数。
可以看出,现有技术中SNN模型的脉冲积分操作对N个时刻的脉冲输入值需要用长度为N的寄存器来存放,而且需要计算N次(或N个时钟周期)才能得到最终的积分结果。在实际应用中,N的值通常会比较大,例如N为512,或者N为1024等,这样会导致脉冲积分的效率很低,不能满足实时对信号进行处理的需求。
图3是本发明实施例提供的池化操作的示意图,如图3所示,同样用一个长度为N的0/1序列表示N个时刻内某个脉冲序列的输入情况,1表征该时刻有脉冲输入,0表征该时刻没有脉冲输入,将n个脉冲序列依次输入池化神经元进行最大池化,即将脉冲数量最大的输入脉冲进行输出,这个过程需要对每一个输入池化神经元的脉冲序列进行脉冲计数然后比较出最大值。
可以看出,现有技术中SNN模型的池化操作过程复杂,不能满足实时对信号进行处理的需求。
由现有技术中SNN模型的脉冲积分操作和池化操作可知,脉冲频率编码用脉冲的个数表示信号的强度,而与脉冲的具体位置无关。因此,可以根据脉冲的个数对脉冲序列进行压缩编码,以缩小脉冲序列的存储空间和按指数级减少脉冲计算时间。
对待处理的信号对应的脉冲序列进行压缩编码,获取待处理信号对应的压缩编码脉冲序列。
例如,图像的像素值为200,则用脉冲序列里面随机产生200个脉冲来表示像素值200,像素值200对应的脉冲序列的长度最少为200位。可以对像素值200对应的脉冲序列进行压缩编码,以减少脉冲序列的长度。比如,将像素值200对应的脉冲序列压缩为脉冲序列长度为8位的脉冲序列,从而获取待处理信号对应的压缩编码脉冲序列。
可选地,所述压缩编码脉冲序列是所述待处理信号对应的脉冲序列以二进制补码的形式进行压缩编码后的脉冲序列。
具体地,对待处理信号对应的脉冲序列进行压缩编码,压缩编码方式可以采用二进制补码的形式,也可以采用四进制补码的形式,也可以采用八进制补码的形式,还可以采用十六进制补码的形式等,也就是说,压缩编码方式可以采用2x进制的补码的形式,x为自然数。优选地,采用二进制补码的形式对待处理信号对应的脉冲序列进行压缩编码。
在进行压缩编码之前需要知道编码位数,根据编码位数确定压缩编码脉冲序列的长度。
可选地,所述压缩编码脉冲序列的编码位数是根据最大的输入脉冲个数确定的。
具体地,根据最大的输入脉冲个数确定编码位数,再根据编码位数确定压缩编码脉冲序列的长度。最大的输入脉冲个数是设备允许单个输入脉冲序列的最大脉冲个数。
编码位数的表达式如下所示:
B=log2(M+1)
式中,B为编码位数,M为最大的输入脉冲个数。
常见的脉冲频率编码至少需要M位,脉冲积分也至少需要M个时钟周期。以二进制补码进行压缩编码后仅仅需要B位,脉冲积分也仅仅需要B个时钟周期。压缩倍数即为M/B,脉冲积分加速倍数也是M/B。
通过最大的输入脉冲个数确定编码位数,编码位数的确定有利于进行后续的压缩编码。
在确定编码位数之后,以二进制补码的形式对待处理信号对应的脉冲序列进行压缩编码,从而获取压缩编码脉冲序列。
例如,当最大的输入脉冲个数M为255时,可知编码位数B为8。将脉冲个数为20的脉冲序列以二进制补码的形式进行压缩编码,压缩编码脉冲序列为00010100。
例如,当最大的输入脉冲个数M为255时,可知编码位数B为8。将脉冲个数为255的脉冲序列以二进制补码的形式进行压缩编码,压缩编码脉冲序列为11111111。脉冲的存储空间压缩到原来的3.1%,积分速度提高到原来近32倍。
通过对待处理信号对应的脉冲序列以二进制补码的形式进行压缩编码,缩小了脉冲的存储空间,提高了脉冲计算速度。
图4是本发明实施例提供的基于压缩编码脉冲序列计算脉冲积分的示意图,如图4所示,对脉冲序列采用二进制补码进行压缩编码,用一个长度为B的0/1序列表示B个时钟周期内某个压缩编码脉冲序列的输入情况,1表征该时刻有脉冲输入,0表征该时刻没有脉冲输入,用某个压缩编码脉冲序列对应的权重Wi表示突触强度。将压缩编码脉冲序列的脉冲表征值按从最高阶位到最低阶位的顺序依次输入加法器进行脉冲积分运算,输出脉冲积分结果,再将脉冲积分结果输入移位器中,移位器对脉冲积分结果进行放大,将放大后的脉冲积分结果与下一个时钟周期对应的脉冲积分运算结果相加,循环迭代直至最后一个时钟周期,获取脉冲积分运算的最终结果。
若压缩编码脉冲序列的脉冲表征值按从最低阶位到最高阶位的顺序依次输入加法器进行脉冲积分运算,则移位器对脉冲积分结果进行缩小。
将待处理信号对应的压缩编码脉冲序列存储在第一寄存器中,压缩编码脉冲序列对应的权重值存储在第二寄存器中。在开始计算积分脉冲之前,将加法器、第三寄存器和移位器进行初始化。
第一寄存器将压缩编码脉冲序列按以最高阶位到最低阶位的顺序或者从最低阶位到最高阶位的顺序依次输入加法器中,第二寄存器将压缩编码脉冲序列对应的权重值也输入加法器中。
在第一个时钟周期时,加法器根据压缩编码脉冲序列的脉冲表征值和压缩编码脉冲序列的权重值获取第一个时钟周期对应的脉冲积分值,加法器将第一个时钟周期对应的脉冲积分值输入第三寄存器,第三寄存器再将第一个时钟周期对应的脉冲积分值输入移位器中,移位器对第一个时钟周期对应的脉冲积分值进行缩放,将缩放后的第一个时钟周期对应的脉冲积分值输入加法器中,在后续的时钟周期中,加法器根据当前时钟周期输入的压缩编码脉冲序列的脉冲表征值、压缩编码脉冲序列的权重值以及缩放的上一个时钟周期对应的脉冲积分值,得到当前时间周期的脉冲积分值。
循环迭代直至最后一个时钟周期,加法器计算出最后一个时钟周期对应的脉冲积分值,加法器将最后一个时钟周期对应的脉冲积分值输入第三寄存器,第三寄存器将最后一个时钟周期对应的脉冲积分值作为待处理信号的处理结果进行输出。
若压缩编码脉冲序列的脉冲表征值按从最高阶位到最低阶位的顺序依次输入加法器进行脉冲积分运算,则最后一个时钟周期是第一寄存器将压缩编码脉冲序列的最低阶位对应的脉冲表征值输入加法器的时钟周期。
若压缩编码脉冲序列的脉冲表征值按从最低阶位到最高阶位的顺序依次输入加法器进行脉冲积分运算,则最后一个时钟周期是第一寄存器将压缩编码脉冲序列的最高阶位对应的脉冲表征值输入加法器的时钟周期。
可选地,所述移位器具体用于:
根据所述压缩编码脉冲序列的压缩编码方式和所述压缩编码脉冲序列的输入方式对所述上一个时钟周期对应的脉冲积分值进行缩放。
具体地,移位器将脉冲积分值左移a位表示将脉冲积分值放大2a倍,移位器将脉冲积分值右移a位表示将脉冲积分值缩小1/2a倍。
压缩编码方式采用2x进制的补码形式,x为自然数,移位器将脉冲积分值移x位。
若压缩编码脉冲序列的输入方式为从最高阶位到最低阶位的顺序,则移位器对脉冲积分值进行左移,即放大脉冲积分值。若压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序,则移位器对脉冲积分值进行右移,即缩小脉冲积分值。
根据移位数和移位方向,移位器对上一个时钟周期对应的脉冲积分值进行移位处理,以达到对上一个时钟周期对应的脉冲积分值的缩放。
例如,在压缩编码方式为二进制补码的情况下,相邻高阶位对应的脉冲表征值是相邻低阶位对应的脉冲表征值的2倍,即移位数为1位。若压缩编码脉冲序列的脉冲表征值按从最高阶位到最低阶位的顺序依次输入加法器进行脉冲积分运算,则移位器需要将上一个时钟周期对应的脉冲积分值左移1位,即将上一个时钟周期对应的脉冲积分值放大2倍。若压缩编码脉冲序列的脉冲表征值按从最低阶位到最高阶位的顺序依次输入加法器进行脉冲积分运算,则移位器需要将上一个时钟周期对应的脉冲积分值右移1位,即将上一个时钟周期对应的脉冲积分值缩小1/2倍。
例如,在压缩编码方式为四进制补码的情况下,相邻高阶位对应的脉冲表征值是相邻低阶位对应的脉冲表征值的4倍,即移位数为2位。若压缩编码脉冲序列的脉冲表征值按从最高阶位到最低阶位的顺序依次输入加法器进行脉冲积分运算,则移位器需要将上一个时钟周期对应的脉冲积分值左移2位,即将上一个时钟周期对应的脉冲积分值放大4倍。若压缩编码脉冲序列的脉冲表征值按从最低阶位到最高阶位的顺序依次输入加法器进行脉冲积分运算,则移位器需要将上一个时钟周期对应的脉冲积分值右移2位,即将上一个时钟周期对应的脉冲积分值缩小1/4倍。
例如,在压缩编码方式为八进制补码的情况下,相邻高阶位对应的脉冲表征值是相邻低阶位对应的脉冲表征值的8倍,即移位数为3位。若压缩编码脉冲序列的脉冲表征值按从最高阶位到最低阶位的顺序依次输入加法器进行脉冲积分运算,则移位器需要将上一个时钟周期对应的脉冲积分值左移3位,即将上一个时钟周期对应的脉冲积分值放大8倍。若压缩编码脉冲序列的脉冲表征值按从最低阶位到最高阶位的顺序依次输入加法器进行脉冲积分运算,则移位器需要将上一个时钟周期对应的脉冲积分值右移3位,即将上一个时钟周期对应的脉冲积分值缩小1/8倍。
例如,在压缩编码方式为十六进制补码的情况下,压缩编码脉冲序列的相邻高阶位对应的脉冲表征值是相邻低阶位对应的脉冲表征值的16倍,即移位数为4位。若压缩编码脉冲序列的脉冲表征值按从最高阶位到最低阶位的顺序依次输入加法器进行脉冲积分运算,则移位器需要将上一个时钟周期对应的脉冲积分值左移4位,即将上一个时钟周期对应的脉冲积分值放大16倍。若压缩编码脉冲序列的脉冲表征值按从最低阶位到最高阶位的顺序依次输入加法器进行脉冲积分运算,则移位器需要将上一个时钟周期对应的脉冲积分值右移4位,即将上一个时钟周期对应的脉冲积分值缩小1/16倍。
通过压缩编码脉冲序列的压缩编码方式和压缩编码脉冲序列的输入方式对上一个时钟周期对应的脉冲积分值进行缩放,实现将上一个时钟周期对应的脉冲积分值参与到当前时钟周期的脉冲积分运算中,从而形成循环的脉冲积分计算。
输入加法器的压缩编码脉冲序列的个数跟压缩编码方式也有关系。压缩编码方式采用2x进制的补码形式,输入加法器的压缩编码脉冲序列的个数为原来的脉冲序列的个数的x倍。
例如,在压缩编码方式为二(21)进制补码的情况下,若原脉冲序列的个数为n时,压缩编码脉冲序列的个数还是为n。
例如,在压缩编码方式为四(22)进制补码的情况下,若原脉冲序列的个数为n时,压缩编码脉冲序列的个数变为2n。
例如,在压缩编码方式为八(23)进制补码的情况下,若原脉冲序列的个数为n时,压缩编码脉冲序列的个数变为3n。
例如,在压缩编码方式为十六(24)进制补码的情况下,若原脉冲序列的个数为n时,压缩编码脉冲序列的个数变为4n。
由此可见,只有在压缩编码方式为二进制补码的情况下,输入加法器的脉冲序列的个数才不发生改变,在其他的压缩编码方式情况下,一个脉冲序列会变成多个脉冲序列输入到加法器中,输入加法器的脉冲序列的个数发生了改变,导致了脉冲积分的运算过程与二进制补码压缩对应的脉冲积分运算过程有所不同。下面以压缩编码方式为四进制补码为例进行说明。
图5是本发明实施例提供的以四进制补码进行脉冲压缩时脉冲积分的计算示意图,如图5所示,一个脉冲序列采用二进制补码进行压缩编码时,压缩编码脉冲序列的长度为B位,相同脉冲序列采用四进制补码进行压缩编码时,一个脉冲序列变为2个压缩编码脉冲序列,每个压缩编码脉冲序列的长度为B/2位,一个寄存器存储压缩编码脉冲序列中偶数阶位对应的脉冲表征值,一个寄存器存储压缩编码脉冲序列中奇数阶位对应的脉冲表征值。图5中0,2、、、B-2表示偶数阶位,1,3、、、B-1表示奇数阶位,偶数阶位正下方的0/1序列表示压缩编码脉冲序列中偶数阶位对应的脉冲表征值,奇数阶位正下方的0/1序列表示压缩编码脉冲序列中奇数阶位对应的脉冲表征值。两个B/2位的压缩编码脉冲序列的脉冲表征值均按从最高阶位到最低阶位的顺序依次输入加法器进行脉冲积分运算,相对高的阶位对应的权重输入加法器之前需要进行移位操作,即将相对高的阶位对应的权重左移一位,低位补0或符号位,然后再输入到加法器中进行后续的脉冲积分运算。
以八进制补码或十六进制补码进行脉冲压缩时脉冲积分的计算过程与四进制补码类似,不同之处在于,输入加法器的压缩编码脉冲序列的个数不同,以及在输入加法器之前对不同阶位对应的权重进行移位的过程不同。
现有技术中的脉冲积分操作与本发明中的基于压缩编码计算脉冲积分最大的不同在于增加了一个移位器。实际上,增加该移位器根本不需要增加任何逻辑,而只需要在连线进行左移或右移,再补0或符号位即可。因此,编码后的脉冲积分不需要比编码前增加任何逻辑资源,但计算时间则缩短到原来的对数量级。
本发明提供的基于脉冲神经网络的信号处理装置,通过脉冲压缩编码加速SNN模型中的脉冲计算,可满足在有限硬件资源的情况下实现实时的信号处理。
图6是本发明实施例提供的基于脉冲神经网络的信号处理装置的信号处理方法的流程示意图,如图6所示,本发明提供一种信号处理方法,应用上述任一种基于脉冲神经网络的信号处理装置,该方法包括:
步骤601,对待处理信号对应的脉冲序列进行压缩编码,获取压缩编码脉冲序列。
具体地,待处理信号可以是待处理的图像信号或者是待处理的声音信号等信号。
脉冲神经网络处理的是脉冲信号,输入的待处理信号存在对应的脉冲序列,对待处理信号对应的脉冲序列进行压缩编码。
可选地,所述对待处理信号对应的脉冲序列进行压缩编码,获取压缩编码脉冲序列,包括:
对待处理信号对应的脉冲序列以二进制补码的形式进行压缩编码,获取压缩编码脉冲序列。
具体地,先确定待处理信号对应的脉冲序列中的脉冲个数,再根据脉冲个数对待处理信号对应的脉冲序列进行压缩编码,压缩编码方式采用二进制补码的形式,从而获取待处理信号的压缩编码脉冲序列。
压缩编码方式可以采用2的整数次方的补码的形式,因此,压缩编码方式还可以采用四进制补码、八进制补码或十六进制补码等。
通过以二进制补码的形式对待处理信号对应的脉冲序列进行压缩编码,从而减小了压缩编码脉冲序列的长度,缩小了存储压缩编码脉冲序列的存储空间,提高了脉冲计算的速度。
可选地,对待处理信号对应的脉冲序列以二进制补码的形式进行压缩编码,获取压缩编码脉冲序列之前,包括:
确定最大的输入脉冲个数;
根据所述最大的输入脉冲个数确定所述压缩编码脉冲序列的编码位数。
具体地,在对待处理的信号对应的脉冲序列进行压缩编码之前,需要先确定最大的输入脉冲个数。最大的输入脉冲个数是设备允许单个输入脉冲序列的最大脉冲个数。
根据最大的输入脉冲个数可以确定进行压缩编码时的编码位数。
编码位数的表达式如下所示:
B=log2(M+1)
式中,B为编码位数,M为最大的输入脉冲个数。
通过先确定最大的输入脉冲个数,再根据最大的输入脉冲个数确定编码位数,编码位数的确定有利于进行后续的压缩编码。
步骤602,基于所述压缩编码脉冲序列,获取所述待处理信号的处理结果。
具体地,获取压缩编码脉冲序列之后,基于压缩编码脉冲序列进行脉冲积分运算,获取脉冲积分结果,根据脉冲积分结果获取待处理信号的处理结果。
可选地,所述基于所述压缩编码脉冲序列,获取所述待处理信号的处理结果,包括:
在当前时钟周期内,根据所述压缩编码脉冲序列的脉冲表征值、所述压缩编码脉冲序列对应的权重值以及缩放后的上一个时钟周期对应的脉冲积分值,获取当前时钟周期对应的脉冲积分值;
循环迭代直至最后一个时钟周期,将所述最后一个时钟周期对应的脉冲积分值确定为所述待处理信号的处理结果。
具体地,在当前时钟周期内,当前时钟周期对应的脉冲积分值与压缩编码脉冲序列在当前时钟周期的脉冲表征值、压缩编码脉冲序列对应的权重值以及缩放的上一个时钟周期对应的脉冲积分值有关。
可选地,所述缩放后的上一个时钟周期对应的脉冲积分值通过如下步骤获取:
根据所述压缩编码脉冲序列的压缩编码方式和所述压缩编码脉冲序列的输入方式,对所述上一个时钟周期对应的脉冲积分值进行缩放,获取所述缩放后的上一个时钟周期对应的脉冲积分值。
具体地,确定对上一个时钟周期对应的脉冲积分值进行放大或缩小的,以及放大的倍数或缩小的倍数的确定,需要根据压缩编码脉冲序列的压缩编码方式和压缩编码脉冲序列的输入方式进行确定。不同的压缩编码脉冲序列的压缩编码方式和不同的压缩编码脉冲序列的输入方式对应着不同的对上一个时钟周期对应的脉冲积分值进行处理的方式。
例如,在压缩编码方式为二进制补码且压缩编码脉冲序列的输入方式为从最高阶位到最低阶位的顺序的情况下,需要将上一个时钟周期对应的脉冲积分值放大2倍,从而获取放大后的上一个时钟周期对应的脉冲积分值。
例如,在压缩编码方式为二进制补码且压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序的情况下,需要将上一个时钟周期对应的脉冲积分值缩小1/2倍,从而获取缩小后的上一个时钟周期对应的脉冲积分值。
例如,在压缩编码方式为四进制补码且压缩编码脉冲序列的输入方式为从最高阶位到最低阶位的顺序的情况下,需要将上一个时钟周期对应的脉冲积分值放大4倍,从而获取放大后的上一个时钟周期对应的脉冲积分值。
例如,在压缩编码方式为四进制补码且压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序的情况下,需要将上一个时钟周期对应的脉冲积分值缩小1/4倍,从而获取缩小后的上一个时钟周期对应的脉冲积分值。
例如,在压缩编码方式为八进制补码且压缩编码脉冲序列的输入方式为从最高阶位到最低阶位的顺序的情况下,需要将上一个时钟周期对应的脉冲积分值放大8倍,从而获取放大后的上一个时钟周期对应的脉冲积分值。
例如,在压缩编码方式为八进制补码且压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序的情况下,需要将上一个时钟周期对应的脉冲积分值缩小1/8倍,从而获取缩小后的上一个时钟周期对应的脉冲积分值。
例如,在压缩编码方式为十六进制补码且压缩编码脉冲序列的输入方式为从最高阶位到最低阶位的顺序的情况下,需要将上一个时钟周期对应的脉冲积分值放大16倍,从而获取放大后的上一个时钟周期对应的脉冲积分值。
例如,在压缩编码方式为十六进制补码且压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序的情况下,需要将上一个时钟周期对应的脉冲积分值缩小1/16倍,从而获取缩小后的上一个时钟周期对应的脉冲积分值。
通过根据压缩编码脉冲序列的压缩编码方式,对上一个时钟周期对应的脉冲积分值进行缩放,实现将上一个时钟周期对应的脉冲积分值参与到当前时钟周期的脉冲积分运算中,从而形成循环的脉冲积分计算。
可选地,所述当前时钟周期对应的脉冲积分值的表达式如下所示:
Figure BDA0003569171580000171
式中,Vt表示第t时钟周期对应的脉冲积分值,m表示缩放倍数,Vt-1表示第t-1时钟周期对应的脉冲积分值,Si(t)表示第i个压缩编码脉冲序列在第t时钟周期对应的脉冲表征值,Wi表示第i个压缩编码脉冲序列对应的权重值,n表示输入脉冲序列的个数,t的取值范围为1至编码位数的自然数。
具体地,缩放倍数m的值根据压缩编码脉冲序列的压缩编码方式和压缩编码脉冲序列的输入方式进行确定。
例如,在压缩编码方式为二进制补码且压缩编码脉冲序列的输入方式为从最高阶位到最低阶位的顺序的情况下,m为2;例如,在压缩编码方式为二进制补码且压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序的情况下,m为1/2。
例如,在压缩编码方式为四进制补码且压缩编码脉冲序列的输入方式为从最高阶位到最低阶位的顺序的情况下,m为4;例如,在压缩编码方式为四进制补码且压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序的情况下,m为1/4。
例如,在压缩编码方式为八进制补码且压缩编码脉冲序列的输入方式为从最高阶位到最低阶位的顺序的情况下,m为8;例如,在压缩编码方式为八进制补码且压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序的情况下,m为1/8。
例如,在压缩编码方式为十六进制补码且压缩编码脉冲序列的输入方式为从最高阶位到最低阶位的顺序的情况下,m为16;例如,在压缩编码方式为十六进制补码且压缩编码脉冲序列的输入方式为从最低阶位到最高阶位的顺序的情况下,m为1/16。
时钟周期的个数与编码位数的大小相同,即每个时钟周期只处理每个脉冲序列中一个编码位数对应的脉冲表征值。
通过明确了每个时钟周期对应的脉冲积分值的计算方法,进一步有利于实现加速SNN模型中的脉冲计算。
循环迭代直至最后一个时钟周期,也即循环迭代到压缩编码脉冲序列中的最后一位编码位对应的脉冲表征值,将最后一个时钟周期对应的脉冲积分值确定为待处理信号的处理结果。
通过先确定当前时钟周期的脉冲积分值,再通过循环迭代获取最后一个时钟周期的脉冲积分值,从而获取待处理信号的处理结果。
本发明提供一种信号处理方法,通过先对待处理信号对应的脉冲序列进行压缩编码,再基于压缩编码脉冲序列进行脉冲积分运算,实现对SNN模型计算的加速,从而实现对信号的实时处理。
本发明实施例中术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”所区别的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于脉冲神经网络的信号处理装置,其特征在于,包括:第一寄存器、第二寄存器、第三寄存器、加法器和移位器;
所述第一寄存器的输出端和所述第二寄存器的输出端连接所述加法器的第一输入端;所述第一寄存器用于存储待处理信号对应的压缩编码脉冲序列;所述压缩编码脉冲序列是所述待处理信号对应的脉冲序列进行压缩编码后的脉冲序列;所述第二寄存器用于存储与所述压缩编码脉冲序列对应的权重值;
所述加法器的输出端连接所述第三寄存器的输入端;所述第三寄存器的输出端连接所述移位器的输入端;所述第三寄存器用于存储所述加法器输出的脉冲积分值,并将上一个时钟周期对应的脉冲积分值输入所述移位器中;
所述移位器的输出端连接所述加法器的第二输入端;所述移位器用于对所述上一个时钟周期对应的脉冲积分值进行缩放;
所述加法器用于根据所述压缩编码脉冲序列的脉冲表征值、所述压缩编码脉冲序列对应的权重值以及缩放后的上一个时钟周期对应的脉冲积分值获取当前时钟周期对应的脉冲积分值;
所述第三寄存器还用于将最后一个时钟周期对应的脉冲积分值作为所述待处理信号的处理结果进行输出。
2.根据权利要求1所述的基于脉冲神经网络的信号处理装置,其特征在于,所述压缩编码脉冲序列是所述待处理信号对应的脉冲序列以二进制补码的形式进行压缩编码后的脉冲序列。
3.根据权利要求1所述的基于脉冲神经网络的信号处理装置,其特征在于,所述压缩编码脉冲序列的编码位数是根据最大的输入脉冲个数确定的。
4.根据权利要求1所述的基于脉冲神经网络的信号处理装置,其特征在于,所述移位器具体用于:
根据所述压缩编码脉冲序列的压缩编码方式和所述压缩编码脉冲序列的输入方式对所述上一个时钟周期对应的脉冲积分值进行缩放。
5.一种基于权利要求1-4中的任一项所述的基于脉冲神经网络的信号处理装置的信号处理方法,其特征在于,包括:
对待处理信号对应的脉冲序列进行压缩编码,获取压缩编码脉冲序列;
基于所述压缩编码脉冲序列,获取所述待处理信号的处理结果。
6.根据权利要求5所述的信号处理方法,其特征在于,所述对待处理信号对应的脉冲序列进行压缩编码,获取压缩编码脉冲序列,包括:
对待处理信号对应的脉冲序列以二进制补码的形式进行压缩编码,获取压缩编码脉冲序列。
7.根据权利要求6所述的信号处理方法,其特征在于,对待处理信号对应的脉冲序列以二进制补码的形式进行压缩编码,获取压缩编码脉冲序列之前,包括:
确定最大的输入脉冲个数;
根据所述最大的输入脉冲个数确定所述压缩编码脉冲序列的编码位数。
8.根据权利要求5所述的信号处理方法,其特征在于,所述基于所述压缩编码脉冲序列,获取所述待处理信号的处理结果,包括:
在当前时钟周期内,根据所述压缩编码脉冲序列的脉冲表征值、所述压缩编码脉冲序列对应的权重值以及缩放后的上一个时钟周期对应的脉冲积分值,获取当前时钟周期对应的脉冲积分值;
循环迭代直至最后一个时钟周期,将所述最后一个时钟周期对应的脉冲积分值确定为所述待处理信号的处理结果。
9.根据权利要求8所述的信号处理方法,其特征在于,所述当前时钟周期对应的脉冲积分值的表达式如下所示:
Figure FDA0003569171570000031
式中,Vt表示第t时钟周期对应的脉冲积分值,m表示缩放倍数,Vt-1表示第t-1时钟周期对应的脉冲积分值,Si(t)表示第i个压缩编码脉冲序列在第t时钟周期对应的脉冲表征值,Wi表示第i个压缩编码脉冲序列对应的权重值,n表示输入脉冲序列的个数,t的取值范围为1至编码位数的自然数。
10.根据权利要求8所述的信号处理方法,其特征在于,所述缩放后的上一个时钟周期对应的脉冲积分值通过如下步骤获取:
根据所述压缩编码脉冲序列的压缩编码方式和所述压缩编码脉冲序列的输入方式,对所述上一个时钟周期对应的脉冲积分值进行缩放,获取所述缩放后的上一个时钟周期对应的脉冲积分值。
CN202210316654.XA 2022-03-28 2022-03-28 基于脉冲神经网络的信号处理装置及信号处理方法 Active CN114819121B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210316654.XA CN114819121B (zh) 2022-03-28 2022-03-28 基于脉冲神经网络的信号处理装置及信号处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210316654.XA CN114819121B (zh) 2022-03-28 2022-03-28 基于脉冲神经网络的信号处理装置及信号处理方法

Publications (2)

Publication Number Publication Date
CN114819121A CN114819121A (zh) 2022-07-29
CN114819121B true CN114819121B (zh) 2022-09-27

Family

ID=82530483

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210316654.XA Active CN114819121B (zh) 2022-03-28 2022-03-28 基于脉冲神经网络的信号处理装置及信号处理方法

Country Status (1)

Country Link
CN (1) CN114819121B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5611021A (en) * 1992-02-14 1997-03-11 Ricoh Company, Ltd. Multiple pulse series generating device and method applicable to random pulse series generating apparatus
US5633989A (en) * 1993-08-31 1997-05-27 Electronics And Telecommunications Research Institute Artificial neural circuit using pulse coding
CN109474825A (zh) * 2018-10-18 2019-03-15 北京大学 一种脉冲序列压缩方法及系统
CN111291861A (zh) * 2020-01-13 2020-06-16 浙江大学 一种应用于脉冲神经网络的输入脉冲编码方法
CN111583094A (zh) * 2020-05-09 2020-08-25 之江实验室 一种基于fpga的图像脉冲编码方法及系统
CN112101517A (zh) * 2020-08-04 2020-12-18 西北师范大学 基于分段线性脉冲神经元网络的fpga实现方法
CN112949834A (zh) * 2021-03-26 2021-06-11 北京航空航天大学 一种概率计算脉冲式神经网络计算单元和架构
WO2021213471A1 (zh) * 2020-04-22 2021-10-28 北京灵汐科技有限公司 基于脉冲神经网络的数据处理方法、计算核电路和芯片
CN114139695A (zh) * 2022-01-06 2022-03-04 国网浙江省电力有限公司电力科学研究院 脉冲神经网络加速方法及脉冲神经网络的事件驱动加速器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9129221B2 (en) * 2012-05-07 2015-09-08 Brain Corporation Spiking neural network feedback apparatus and methods

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5611021A (en) * 1992-02-14 1997-03-11 Ricoh Company, Ltd. Multiple pulse series generating device and method applicable to random pulse series generating apparatus
US5633989A (en) * 1993-08-31 1997-05-27 Electronics And Telecommunications Research Institute Artificial neural circuit using pulse coding
CN109474825A (zh) * 2018-10-18 2019-03-15 北京大学 一种脉冲序列压缩方法及系统
CN111291861A (zh) * 2020-01-13 2020-06-16 浙江大学 一种应用于脉冲神经网络的输入脉冲编码方法
WO2021213471A1 (zh) * 2020-04-22 2021-10-28 北京灵汐科技有限公司 基于脉冲神经网络的数据处理方法、计算核电路和芯片
CN111583094A (zh) * 2020-05-09 2020-08-25 之江实验室 一种基于fpga的图像脉冲编码方法及系统
CN112101517A (zh) * 2020-08-04 2020-12-18 西北师范大学 基于分段线性脉冲神经元网络的fpga实现方法
CN112949834A (zh) * 2021-03-26 2021-06-11 北京航空航天大学 一种概率计算脉冲式神经网络计算单元和架构
CN114139695A (zh) * 2022-01-06 2022-03-04 国网浙江省电力有限公司电力科学研究院 脉冲神经网络加速方法及脉冲神经网络的事件驱动加速器

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A biomimetic neural encoder for spiking neural network;Shiva Subbulakshmi Radhakrishnan 等;《Nature Communications》;20210409;第1-10页 *
Selection and Optimization of Temporal Spike Encoding Methods for Spiking Neural Networks;Bálint Petró 等;《IEEE Transactions on Neural Networks and Learning Systems》;20190412;第31卷(第2期);第358-370页 *
基于FPGA的卷积神经网络定点加速;雷小康 等;《计算机应用》;20201010;第40卷(第10期);第2811-2816页 *
基于类脑的脉冲神经网络研究及其应用;吕梦雨;《中国优秀硕士学位论文全文数据库 信息科技辑》;20220215(第02期);第I138-650页 *

Also Published As

Publication number Publication date
CN114819121A (zh) 2022-07-29

Similar Documents

Publication Publication Date Title
CN109858623B (zh) 用于执行人工神经网络正向运算的装置和方法
US11308406B2 (en) Method of operating neural networks, corresponding network, apparatus and computer program product
CN113168310B (zh) 用于转换数字的硬件模块
CN115311515A (zh) 混合量子经典的生成对抗网络的训练方法及相关设备
CN113850389A (zh) 一种量子线路的构建方法及装置
Xia et al. Design and simulation of quantum image binarization using quantum comparator
CN112256236A (zh) 一种基于近似定常数复数乘法器的fft电路及实现方法
CN115022637A (zh) 一种图像编码方法、图像解压方法以及装置
CN114819121B (zh) 基于脉冲神经网络的信号处理装置及信号处理方法
CN116170599B (zh) 一种同步实时图像压缩方法、系统、介质及终端
CN117273092A (zh) 一种模型量化方法、装置、电子设备及存储介质
EP2404224A1 (en) Analog computation using numerical representations with uncertainty
CN110555519A (zh) 一种基于符号随机计算的低复杂度卷积神经网络
CN113988279A (zh) 一种支持负值激励的存算阵列输出电流读出方法及系统
US20230046369A1 (en) Circuitry for performing a multiply-accumulate operation
CN111916049B (zh) 一种语音合成方法及装置
CN114819122B (zh) 基于脉冲神经网络的数据处理方法及装置
CN113971015B (zh) Uia2计算电路及其数据处理方法、芯片、电子设备及存储介质
Liguori Pyramid vector quantization for deep learning
Zhang et al. Design of low power LSTM neural network accelerator based on FPGA
CN115879554B (zh) 量子模数平方运算方法、装置、电子装置及模数算术组件
CN114398928B (zh) 基于振荡神经网络的信息内容确认方法、装置及系统
WO2024109730A1 (zh) 变量模乘运算器、运算方法及相关装置
EP2191382B1 (en) System, method, and/or apparatus for digital signal sorting
CN117669497A (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
GR01 Patent grant
GR01 Patent grant