脉冲神经网络硬件系统的膜电位存储复用机制
2024-04-03李声扬莫春梅
李声扬 莫春梅
关键词: 脉冲神经网络; 类脑芯片; 神经形态计算; 膜电位; 事件驱动
0 引言
脉冲神经网络模拟了哺乳动物大脑的关键信息处理机制和通信方法,它基于类似神经细胞动作电位的脉冲编码,从时间和空间两方面处理数据,被誉为第三代人工神经网络[1]。脉冲神经网络有着强类脑属性、生物属性、低计算复杂度、容错等能力[2]。得益于脉冲神经网络强大的能力,研究者开始研究使用物理平台实现脉冲神经网络以解决现实中的实际问题,如人工视觉系统、图片识别。脉冲神经网络硬件系统旨在高效使用电路实现脉冲神经网络,以类脑处理方法解决现实中的实际问题[2]。一般来说,脉冲神经网络硬件系统主要由神经计算单元、互联表、通信网络、權重存储器、膜电位存储器五大部分组成。神经计算单元接收其他计算单元产生的脉冲事件、更新膜电位、产生脉冲事件并发送给其他计算单元,完成神经元关键信息处理。互联表本质是一块存储器,存放着每一个神经元的突触前和突触后神经元地址,决定了脉冲神经网络的互联拓扑结构。通信网络根据互联表信息将脉冲事件等信息从源计算单元传输至目标计算单元,由于硬件系统往往容纳了大量的计算单元,通信量较大,一般采用片上网络技术实现大规模神经元互联通信。权重存储器存放着所有神经元间的连接强度。膜电位存储器存放着神经元的膜电位信息,当神经计算单元收到脉冲信号时,将根据该信号源地址从权重存储器中提取出对应权重并结合上一时间步的膜电位值更新膜电位。这五大部分协调工作,完成对生物神经网络的模拟与仿真。在先前的研究中,大量的工作已经对脉冲神经网络硬件系统整体硬件架构、局部模块微电路等硬件方面进行优化(生物真实性、面积消耗、功率消耗、工作频率、实现复杂度、吞吐量、延时等)[3-5],有的也结合算法层面、软件层面进行协调优化[6]。例如,针对神经计算单元的高硬件资源消耗和高计算复杂度问题,研究者通过随机计算技术用简单的门电路和LFSR随机数产生器替代复杂的算术运算逻辑[3]。针对通信网络,研究者使用高并行的片上网络技术去支持海里神经元间的数据传输,使用流量预测机制、脉冲拥塞策略去防止通信链路阻塞,最终减少脉冲事件传输延时,使用无缓冲路由器技术优化传统通信路由器的缓存器数量,进而减少通信网络的硬件开销[5]。在大多数脉冲神经网络硬件系统中,每一个脉冲神经元都部署了一个独立的膜电位存储单元,膜电位存储器消耗随神经元数量的增加而增加,尤其是对于拥有海量神经元的大规模神经硬件系统,消耗了大量的膜电位存储器。受上述研究工作和计算机主存与Cache之间经典映射方式的启发,文章针对膜电位存储器高开销问题,提出了存储复用机制,以减少膜电位存储器开销,最终减少脉冲神经网络硬件系统的硬件成本。
2 脉冲神经网络
脉冲神经网络由大量错综复杂互联在一起的脉冲神经元组成,详细地模拟了生物神经网络的动态行为[2]。脉冲神经元是脉冲神经网络最基本的单元,常见的模型包括Hodgkin-Huxley(H-H)、Izhikevich(Izh)、Spike Response Mode(SRM)、Leaky Integrate-and-Fire(LIF)等[7]。这些模型通过不同计算复杂度的数学方程对生物神经元动态行为进行不同程度的模仿与近似。其中,H-H模型能够模拟神经元的关键行为,且可以非常精确地模拟多种活动细节,如细胞膜的钠钾离子通道活动情况。但是其涉及复杂、大量的计算以及众多的参数,大多数硬件系统基于硬件实现复杂度和成本考虑,没有采用这一模型。相较于其他模型,LIF模型不仅能够对生物神经元关键行为进行抽象且具有低的计算复杂度,在生物真实性和计算复杂度两方面取得了平衡[7]。当前大多数硬件系统采用了该模型,通过低硬件实现复杂度完成神经网络计算。LIF可由以下公式描述:
U 表示神经元膜电位;当收到第i 个神经元产生的脉冲(动作电位)时,该神经元膜电位增加Wi,若未收到输入脉冲,膜电位将以τ 系数指数衰减。当膜电位超过开火阈值Uthes时,该神经元将产生一个脉冲并发送给所有突触后神经元,且膜电位快速置静息电位Ureset,在后续一段时间内膜电位维持该值,这一时期称为不应期。例如,如图1(a) 所示,假设某一神经元有三个突触前神经元1、2、3,对应权重分别为W1、W2、W3, 突触前神经元1分别在第2和5时间步,神经元2在第1、4、5时间步产生脉冲,神经元3在第2和5时间步产生脉冲。该神经元的膜电位动态变化规律如果1(b) 所示,膜电位随着有无脉冲输入、连接强度、τ 系数等情况变化而变化。大量如此属性的神经元互联在一起形成了脉冲神经网络,有着强大的类脑属性。
3 膜电位存储器复用机制
如图2所示,在大多数脉冲神经网络硬件系统中,每一个脉冲神经元都需要一个独立的膜电位存储单元,用于计算神经元在下一时间步是否产生脉冲,膜电位存储器消耗随神经元数量的增加而增加。由于硬件系统往往容纳了大量的神经元以支持大规模神经网络仿真和复杂的工程任务,因此传统的膜电位存储机制导致了较大的硬件开销。研究表明:相较于硬件电路的超高运行频率,单个脉冲神经元的典型动作电位产生速率非常低[4],每秒约15个[8]。此外,当脉冲神经元产生脉冲后,在一段时间内处于不应期,这期间神经元处于停机状态,其膜电位为静息电位[9]。这一电位值往往是预先给定的,因此单独存储此时的膜电位信息是没有意义的,在这种情况下,当多个神经元都处于不应期时,将导致多个存储单元存储着相同的值,膜电位存储器被浪费;实际中,可以使用一个专用的存储器预先存储该值。另一方面,在计算机领域中,主存与Cache之间存在着经典直接映射、组相联映射与全相联映射方式[10]。
受到上述研究的启发,文章针对大规模脉冲神经网络硬件系统高膜电位存储器消耗问题,提出了神经元膜电位存储器复用机制,包括多对一复用、多对多复用以及全连接复用。在该机制中,处于不应期的神经元将不占用存储器,膜电位存储单元数量少于神经元数量以减少硬件资源消耗。该机制存在一种特殊情况:当所有膜电位存储器都被占用,而其他神经元需要使用存储器时,即给定膜电位存储单元数量低于处于不应期外的神经元数量时,这将导致存储器冲突。此时,将取消膜电位存储器中的最大膜电位值对应神经元的存储占用,以分配给有需求的神经元。若这一最大膜电位值接近开火阈值,将强制使其对应神经元产生脉冲,否则,强制使其处于不应期。由于脉冲神经网络具有强容错性[2],这一策略将解决上述存储冲突问题。
为了详细描述文章所提出的存储器复用机制,假设系统需要实现K个神经元且给定éK/Mù个膜电位存储单元,M为正整数,限定éK/Mù当该存储单元空闲时,M 个神经元中的任意一个可以使用该存储器。当该存储单元被占用且其他神经元需要使用该存储单元时,将按照上述冲突策略处理。在该机制下,每个神经元的膜电位信息仅有一个存储空间可供选择,其发生存储冲突概率较大。然而,这一机制可采用低成本的M 输入1输出选择器硬件电路实现。多对多复用机制如图3(b) 所示,其工作原理与多对一复用机制类似,将K 个神经元以每组Q×M 数量(Q>1) 打包为若干组,即神经元1到Q×M、Q×M+1到2(Q×M) 、...、K- (Q×M)+1到K。给定的éK/Mù个膜电位存储单元以每组Q 数量均分为若干组(与神经元组数相等),即存储单元1到Q、Q+1到2Q、...、éK/Mù-Q+1到éK/Mù。每一神经元组都部署了Q个专门的膜电位存储单元,供组内所有神经元复用,即每一个神经元有Q 个膜电位存储空间可供选择。相较于多对一复用机制的一个可选对象,其发生存储器冲突的概率小。但这一机制需要使用Q×M 输入Q 输出交叉开关电路开关才能实现,其复杂度相较于多对一机制大。全连接复用机制如图3(c) 所示,主要工作原理和前兩策略相似,本质上相当于Q×M=K(K 个神经元为一组,éK/Mù个存储空间为一组)的多对多机制特例。每一个神经元都有éK/Mù个存储空间可供选择。相较于前两个机制,其发生存储冲突的概率最小,但硬件实现最复杂,因为交叉开关的输入和输出通道数最大。
总的来说,如表1所示,相较于传统脉冲神经元与膜电位存储单元一一对应策略,文章提出的三个膜电位存储器复用机制都能减少膜电位存储器的消耗,其存储冲突概率随其硬件实现复杂度增大而减少。多对一策略硬件实现复杂度最低,但存储冲突概率最大;全连接机制虽实现复杂度最大,但冲突概率最小;多对多策略在这两者之间取得了平衡。现实中,可根据实际应用场景、脉冲发放速率与硬件资源预算等选择合适的M、Q 值和存储机制。
4 结论
文章针对脉冲神经网络硬件系统高膜电位存储开销问题,提出了三个存储复用机制:多对一、多对多及全连接。它们以不同的硬件实现复杂度和存储冲突概率实现膜电位存储单元的减少,进而降低了整个硬件系统的成本。实际中,可以根据不同应用场景选择某一专门存储机制,也可使硬件系统动态支持这三个机制以应对复杂场景。未来的工作将基于液体状态机或前馈脉冲神经网络等模型,整合神经计算单元、权重存储器、片上网络技术与文章提出的膜电位存储器复用机制,使用FPGA(现场可编程门阵列)设备实现一个完整的脉冲神经网络硬件系统。