CN114565079A - 空时域脉冲神经网络训练方法、芯片及电子产品 - Google Patents

空时域脉冲神经网络训练方法、芯片及电子产品 Download PDF

Info

Publication number
CN114565079A
CN114565079A CN202210174051.0A CN202210174051A CN114565079A CN 114565079 A CN114565079 A CN 114565079A CN 202210174051 A CN202210174051 A CN 202210174051A CN 114565079 A CN114565079 A CN 114565079A
Authority
CN
China
Prior art keywords
network
neural network
current
layer
gradient
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
CN202210174051.0A
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.)
Shenzhen Shizhi Technology Co ltd
Original Assignee
Shenzhen Shizhi Technology Co ltd
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 Shenzhen Shizhi Technology Co ltd filed Critical Shenzhen Shizhi Technology Co ltd
Priority to CN202210174051.0A priority Critical patent/CN114565079A/zh
Publication of CN114565079A publication Critical patent/CN114565079A/zh
Pending legal-status Critical Current

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/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (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)
  • Image Analysis (AREA)

Abstract

本发明涉及一种空时域脉冲神经网络训练方法、存储介质、计算设备及芯片和电子产品。为了克服现有技术中仅仅关注脉冲神经网络的空域结构,忽视脉冲之间的时域依赖性缺陷,本发明通过将训练样本输入脉冲神经网络,获得当前网络损失,并在当前网络损失关于当前层的权重化的后突触输入的第二梯度中充分考虑了未来时间步的网络损失与当前时间步之间的时域依赖关系。本发明解决了现有网络训练方法收敛慢、不稳定的技术问题,确保了在训练时脉冲神经网络能够稳定、快速收敛,取得了降低网络训练时长、提升网络性能的技术效果,对于LIF或IAF神经元尤为显著。本发明适用于类脑芯片领域,尤其是训练脉冲神经网络领域。

Description

空时域脉冲神经网络训练方法、芯片及电子产品
技术领域
本发明涉及一种空时域(spatiotemporal)脉冲神经网络训练方法、存储介质及芯片、电子产品,具体涉及一种空时域误差返还(credit)分配策略的脉冲神经网络的训练方法、存储介质及芯片、电子产品。
背景技术
神经拟态计算(Neuromorphic Computing)是一种高能效的类脑智能计算。不同于传统人工神经网络(ANN)中基于纯数学函数的计算,神经拟态计算所使用的神经元在微观层面上同时具有时、空动力学特征,因而更加仿生,也是打破冯·诺依曼架构的新型计算架构。
神经拟态计算的研究主要涉及脉冲神经网络(Spiking Neural Network,SNN)模型及其训练方法、神经拟态硬件(俗称类脑芯片)。经过训练,可以获得脉冲神经网络对应的配置参数(突触权重、时间常数、轴突延迟等),将其部署至神经拟态硬件中,即可获得以超低功耗运行的、类似大脑工作的(神经拟态)芯片。
传统AI芯片(基于ANN)因面临可拓展性和电源效率方面的挑战(寒武纪-MLU220:16nm工艺,10瓦,225mm2;华为-昇腾310:12nm工艺,8瓦),而云端处理方案则面临网络接入带宽、延时、隐私侵犯等挑战。不论是从芯片成本还是功耗方面,传统AI芯片难以为百亿IoT设备(对芯片价格、功耗均敏感)赋予智能。事件触发的本质为脉冲神经网络带来十分省电的计算,因此神经拟态计算对赋予万物智能具有十分重要的意义。目前比较有影响力的类脑芯片功耗多在亚毫瓦至数百毫瓦之间,其功耗比传统AI芯片低2-4个数量级,这对实现always-on应用极为重要。
脉冲神经网络训练方法是一个极为重要的研究方向,尤其是发放离散的脉冲特性导致神经元的激活函数(spike function)不可导问题,而传统的人工神经网络中并不存在该问题。反向传播是传统人工神经网络中一种十分有效的网络训练方法,而为了在脉冲神经网络中借鉴和应用该方法,已有若干成果被提出,比如代理梯度技术。以下现有技术在此以全文引入的方式并入本发明所公开的技术内容,并在必要的时候辅助解释本发明技术术语含义、语义。
现有技术1:Lee,J.H.,Delbruck,T.,&Pfeiffer,M.(2016).Training deepspiking neural networks using backpropagation.Frontiers in neuroscience,10,508.
现有技术2:Shrestha,S.B.,&Orchard,G.(2018,December).SLAYER:spike layererror reassignment in time.In Proceedings of the 32nd InternationalConference on Neural Information Processing Systems(pp.1419-1428).
现有技术1根据脉冲神经元的膜电压反向传播误差,对于输入信号在一个给定的时间步分配误差,但仅仅只针对单个时间步,因此忽略了脉冲之间的时域依赖性。
脉冲神经元包括内部状态,这不仅取决于当前输入,还取决于它之前的状态。基于此,误差不仅应透过层(Layers)反向传播以体现脉冲神经网络的空域(spatial)性,还应透过时间以体现脉冲神经网络的时域(temporal)性,但这往往带来极大的计算代价。
现有技术2则克服现有技术1的缺点,提出了一种将误差反向传播至网络前层的时域返还(credit)分配策略,很好地反映了脉冲神经网络的空时特性。由于显式地定义了梯度以及在时间上将变量向量化,现有技术2还具有高效的执行效率。发明人独立研究并发现:在训练中,SLAYER方案存在不稳定和慢收敛的缺陷,尤其是当样本很大时,其网络配置参数的更新梯度经常变得非常大,这对神经网络训练十分不利。
发明内容
为了解决或缓解上述部分或全部技术问题,本发明是通过如下技术方案实现的:
一种空时域脉冲神经网络训练方法,该脉冲神经网络包括多个层(1,2,..,L),该方法包括如下步骤:
从训练数据集中接收一批样本数据,并将该一批样本数据作为脉冲神经网络的输入,运行该脉冲神经网络并获得脉冲神经网络的输出;
根据脉冲神经网络的输出,计算当前网络损失
Figure BDA0003519701560000021
从脉冲神经网络的输出层(第L层)为当前层(记为l)开始,依照层的倒序,依次计算当前网络损失关于当前层(l)与前一层(l-1)之间的突触权重矩阵W(l-1)的梯度
Figure BDA0003519701560000022
直至当前网络损失关于输入扩张矩阵W(0)的梯度;
通过当前网络损失
Figure BDA0003519701560000023
关于突触权重矩阵的梯度,更新脉冲神经网络的突触权重矩阵;
其中,在计算当前网络损失关于当前层(l)与前一层(l-1)之间的突触权重矩阵W(l-1)的梯度
Figure BDA0003519701560000024
前:在每个时间步(1,2,.n...,T)下,计算当前网络损失
Figure BDA0003519701560000025
关于当前层(l)的权重化的后突触输入z(l)的第二梯度d(l)
并在计算以某个时间步为当前时间步(n)的第二梯度d(l)[n]前:基于当前层(l)和当前时间步(n),带入代理梯度函数f′(l)[·],将获得的代理梯度函数的值f′(l)[n],作为当前时间步(n)对应的第一变量
Figure BDA0003519701560000026
的第一元素值
Figure BDA0003519701560000027
在计算当前时间步(n)对应的第一变量
Figure BDA0003519701560000028
的后一元素值
Figure BDA0003519701560000029
时,基于当前时间步(n)对应的第一变量的前一元素值
Figure BDA00035197015600000210
由此获得当前时间步对应的第一变量的全部元素值
Figure BDA00035197015600000211
在某类实施例中,所述的层中分别包括若干脉冲神经元。
在某类实施例中,所述第一变量的定义如下:
Figure BDA00035197015600000212
其中,
Figure BDA00035197015600000213
为第l层网络在第n时间步对应的第一变量的一个元素值,
Figure BDA00035197015600000214
是当前时间步对应的第一变量的第一元素值;v是不应期核;“*”是卷积操作;f′(l)[·]是第l层网络的代理梯度函数;l是当前层的序号。
在某类实施例中,所述第二梯度的定义如下:
Figure BDA00035197015600000215
其中,d(l)[n]为第l层网络在第n时间步的第二梯度;∈是脉冲响应核;⊙为互相关操作;e(l)[·]是当前网络损失关于第l层网络输出脉冲响应信号的第一梯度;n为时间步序号,且n=1,2,..,T,其中T为时间步的总长度。
在某类实施例中,所述第一梯度的定义如下:
当l=L时,
Figure BDA00035197015600000216
当l∈{1,..,L-1}时,e(l)[n]=d(l+1)[n]W(l)
其中,W(l)是第l层网络与第l+1层网络之间的突触权重矩阵;a(L)是第L层网络的输出脉冲序列与脉冲响应核卷积的结果;
Figure BDA00035197015600000217
是当前网络损失。
在某类实施例中,计算当前网络损失关于当前层与前一层之间的突触权重矩阵W(l-1)的梯度的方式为:
Figure BDA0003519701560000031
其中,T为转置标记。
在某类实施例中,在计算当前网络损失关于当前层与前一层之间的突触权重矩阵的梯度后,若l∈{2,..,L},则将网络的层反向前移一层,即将前移后的层作为当前层,并针对新的当前层,计算当前网络损失关于当前层与前一层之间的突触权重矩阵的梯度;若l=1,则通过网络损失关于突触权重矩阵的梯度,来更新网络突触权重矩阵。
在某类实施例中,所述脉冲神经网络中的神经元为LIF神经元或IAF神经元。
在某类实施例中,所述样本数据为视觉、听觉、触觉、嗅觉、心电、肌电、震动、IMU类型的信号中的一种或多种。
一种存储介质,该存储介质上存储有计算机代码,通过执行该计算机代码,以实现如前任意一项所述的空时域脉冲神经网络训练方法。
在某类实施例中,该计算机代码为源代码或计算机可直接执行的机器代码。
在某类实施例中,所述存储介质位于服务器中。如计算机代码托管服务器、企业技术支持服务器。
在某类实施例中,所述存储介质位于为神经网络提供训练服务的计算设备中。如个人计算机、企业私有服务器。
一种计算设备,该计算设备包括计算单元,以及如前所述的存储介质,通过加载或编译存储介质上的计算机代码并交由计算单元执行,获得脉冲神经网络的配置参数。
在某类实施例中,所述计算单元为CPU或GPU或神经网络训练专用处理器。
一种芯片,该芯片包括脉冲神经网络处理器,所述脉冲神经网络处理器上部署有脉冲神经网络的配置参数,且该脉冲神经网络的配置参数至少包括如前任意一项所述的空时域脉冲神经网络训练方法所获得的脉冲神经网络的突触权重矩阵。
一种电子产品,该电子产品包括如前所述的芯片。
在某类实施例中,该电子产品还包括触发模块和震动装置,以及动态视觉传感器;该触发模块受控于电子产品产生的控制指令,向震动装置发送执行震动的使能信号;接收该使能信号后,震动装置至少带动所述动态视觉传感器产生物理震动。
在某类实施例中,动态视觉传感器与脉冲神经网络处理器集成在一起。
本发明的部分或全部实施例,具有如下有益技术效果:
(1)、在网络损失的反向传播中,除了空域外,还考虑了时域依赖性,充分利用了脉冲神经网络的时空特性。
(2)、克服现有技术中网络训练时的不稳定和收敛慢的缺陷。
(3)、对于IAF/LIF类型神经元而言,具有很高的执行效率。
更多的有益效果将在优选实施例中作进一步的介绍。
以上披露的技术方案/特征,旨在对具体实施方式部分中所描述的技术方案、技术特征进行概括,因而记载的范围可能不完全相同。但是该部分披露的这些新的技术方案同样属于本发明文件所公开的众多技术方案的一部分,该部分披露的技术特征与后续具体实施方式部分公开的技术特征、未在说明书中明确描述的附图中的部分内容,以相互合理组合的方式披露更多的技术方案。
本发明任意位置所披露的所有技术特征所组合出的技术方案,用于支撑对技术方案的概括、专利文件的修改、技术方案的披露。
附图说明
图1是SRM脉冲神经元模型;
图2是脉冲神经网络结构的示意图;
图3是脉冲神经网络输入层的示意图;
图4是本发明中网络的前向过程的流程简图;
图5是本发明中网络的前向过程的流程详图;
图6是本发明中网络的反向过程的流程简图;
图7是本发明中网络的反向过程的流程详图;
图8是获得网络配置参数流程图;
图9是具有动态视觉信息主动获取的电子设备示意图;
图10是通过微颤主动获取信息的示例图。
具体实施方式
由于不能穷尽描述各种替代方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案中的要点内容进行清楚、完整地描述。对于下文未详细披露的其它的技术方案和细节,一般均属于本领域通过常规手段即可实现的技术目标或技术特征,限于篇幅,本发明不对其详细介绍。
除非是除法的含义,本发明中任意位置的“/”均表示逻辑“或”。本发明任意位置中的“第一”、“第二”等序号仅仅用于描述上的区分标记,并不暗示时间或空间上的绝对顺序,也不暗示冠以这种序号的术语与冠以其它定语的相同术语必然是不同的指代。
本发明会对各种用于组合成各种不同具体实施例的要点进行描述,这些要点将被组合至各种方法、产品中。在本发明中,即便仅在介绍方法/产品方案时所描述的要点,意味着对应的产品/方法方案也明确地包括该技术特征。
本发明中任意位置处描述存在或包括某步骤、模块、特征时,并不暗示这种存在是排它性地唯一存在,本领域技术人员完全可以根据本发明所披露的技术方案而辅以其它技术手段而获得其它实施例;基于本发明中具体实施例描述的要点,本领域技术人员完全可以对某些技术特征施加替换、删减、增加、组合、调换顺序等手段,获得一个仍遵循本发明构思的技术方案。这些未脱离本发明技术构思的方案也在本发明保护范围之内。
参考图1,其展示的脉冲响应(SRM)神经元模型,SRM神经元是一种通用性较好的神经元模型,LIF神经元和IAF神经元可以视为SRM神经元的两种特例。
通常地,在神经拟态计算领域,为了通过SRM神经元的公式表达LIF神经元,需要使用指数衰减脉冲响应核和不应期核,其中不应期核进一步还与阈值相乘;对于IAF神经元,需要使用Heaviside函数代替衰减脉冲响应核。对于具有突触动态的LIF神经元,脉冲响应核可以通过两个指数核之间的卷积来获得。
神经元接收多路(1、2、...、i、...)来自其它神经元发放的脉冲序列,而每一路脉冲序列包括多个脉冲或脉冲事件。对于该神经元的第i(正整数)路输入脉冲序列,其被记为Si(l)。该路脉冲序列经过脉冲响应核∈(t)的卷积后(该过程也称过滤处理),得到脉冲响应信号ai(t),即:ai(t)=(∈*si)(t),其中*为卷积操作(本发明中,*均代表卷积),该脉冲响应信号是图中神经元的输入脉冲响应信号,同时也可以视为该神经元前一层网络中某个神经元的输出脉冲响应信号。该脉冲响应信号再经过对应的突触权重ωi量化后,得到后突触电压(PSP),该神经元接收的所有的后突触电压汇总求和后,与不应期响应相加后,获得该神经元的膜电压u(t)。换言之,u(t)=v*s(t)+∑iωiai(t),其中v是不应期核(也称重置核),s(t)为该神经元的输出。由定义的不应期核符号所决定,膜电压计算形式中关于不应期核部分也可记为-v*s(t)。突触权重是脉冲神经网络需要学习(被训练)的重要脉冲神经网络配置参数(简称为网络参数)。
通常情况下,在膜电压超过阈值时,会发放一个脉冲(幅度可以视为1)。但在另一类实施例中,神经元也可以发放“多脉冲”,即由膜电压与阈值的比值,来决定脉冲的幅度或者数量(对应不同的实现方式),比如该比值的向下取整(具体可以参考已公开的中国发明专利:2021108083426)。神经元发放脉冲后,其膜电压一般会回归到静息电位。
对于不应期核、脉冲响应核的设定,本领域技术人员可以根据实际需要而有不同的设置,本发明不以此为限。
可选地,在另一类实施例中,脉冲响应核还可以被定义具有轴突延迟D属性,即∈D(t)=∈(t-D)。在该类实施例中,突触延迟也是网络需要学习的脉冲神经网络参数。
参考图2,其是脉冲神经网络结构的一般性描述。图中的每个黑色圆代表一个前述的神经元,若干神经元组成一个层,图中是共有L(正整数)层的脉冲神经网络。在第l至第l+1层的网络连接中,权重矩阵W(l),其对应一个
Figure BDA0003519701560000051
空间;轴突延迟D(l),其对应一个
Figure BDA0003519701560000052
空间,其中Nl和Nl+1分别是第l层网络(简称第l层)和l+1层网络中神经元的数量。该图的底部列举了部分本发明所涉及的符号与每一层的相对描述位置关系。
参考图3,其展示了输入脉冲序列与输入层(l=1)的连接关系。输入脉冲序列的数量与输入层神经元的数量可以不相等,二者之间通过输入权重矩阵W(O)(也称输入扩张矩阵,属于突触权重矩阵)来建立映射关系。
本发明公开了脉冲神经网络空时训练方法、存储介质和计算设备、芯片、电子产品。脉冲神经网络训练方法,也称脉冲神经网络学习方法,其基于大量的训练数据来调整网络参数。初始化时的网络参数,不能使得脉冲神经网络根据输入的训练数据获得准确推理结果(前向过程),但每次根据推理结果的误差程度调整网络参数(反向过程),使得网络朝着能更为准确地推理出正确结果的方向前进。大量的训练数据被用于辅助网络调整网络参数,最终获得比较理想的能够基本正确推理的网络参数。这样网络参数部署至神经拟态硬件(类脑芯片)后,芯片能够获得在特定应用场景下根据实际输入环境信号完成准确推理的能力。
脉冲神经网络的前向过程(也即运行该脉冲神经网络),是将网络的输入信号馈入网络然后由网络完成对其推理的过程。参考图4以及图5,该过程包括如下步骤:
步骤S401:从训练数据集中接收一批(batch)样本数据。该一批样本数据(简称样本)包括网络的输入脉冲序列,当前层序号l=1,网络的总层数L,网络的输入脉冲序列s(0)[n],时间步n=1,2,...,T。当前时间步可以记为n,n=1时是第一时间步,n=T时是最后时间步。
当训练一个网络模型时,对于一个连续的数据流(比如输入脉冲事件),通常将其分割成等时长的多个样本,每个样本会被分割成T个时间步,每个时间步等长。然后若干样本被合并成一批(batch),在训练时一批中的样本可以被并行处理。然而在另一类实施例中,也可以将相同数量的脉冲事件,划分在每个不同时间步中,如此以来每个时间步持续时间可能就不相等。本发明对样本及其时间步的划分方式不做限定。
网络的前向、反向等训练过程可由训练设备来执行。训练设备可以是服务器集群、含有GPU的高性能计算机、专门用于网络训练的处理器及其构建的计算设备、超级计算机、个人电脑等。
样本可以是从环境从采集而来的环境信号。比如视觉、听觉、触觉、嗅觉、震动、IMU等类型的信号,其可以是数字信号,也可以是模拟信号,其还可以是从其它数据集中转换而来的信号。本发明中的环境信号包括这些种类的信号,但不以此为限。
步骤S402:将脉冲响应核与当前层的输入脉冲序列卷积s(l-1),获得当前层的输入脉冲响应信号a(l-1)
参考图5,通过脉冲响应核与输入脉冲序列的卷积操作,获得当前层的输入脉冲响应信号a(l-1)[n]=(∈*s(l-1))[n],其中*为卷积操作,n为时间步的标记。作为网络结构的起始端,即对应于第l=1层,具体应为:a(0)[n]=(∈*s(0))[n]。
步骤s403:通过当前层突触权重矩阵W(l-1)对当前层的输入脉冲响应信号进行加权获得第一加权结果W(l-1)a(l-1)[n],并通过不应期核与当前层的输出脉冲序列卷积获第一卷积结果,基于第一加权结果和第一卷积结果获得当前层膜电压u(l)[n]。
为避免循环依赖计算,在实际训练中计算膜电压时,不应期核v与前一时间步(或更前时间步,不限于仅提前1个时间步)的当前层的输出脉冲序列之间执行卷积(v*s(l))[n-1],获得当前层神经元的膜电压。若提前的时间步超过1个,那么等效于将不应期核前端部分值设为0(若提前2个时间步则不应期核前1位为0,若提前3个时间步则不应期核前2位为0,以此类推)。
步骤ω404:根据当前层膜电压获得当前层输出脉冲序列,并将其作为下一层输入脉冲序列。
在脉冲神经网络中,如何定义神经元发放脉冲是已知的技术,本发明不以此为限。
通常地,在某类实施例中,根据神经元的膜电压与脉冲发放阈值θ之间大小关系来判断,当u(l)[n]>θ时,s(l)[n]=1,否则s(l)[n]=0。
在另一类实施例中,根据前述内容,神经元发放的“多脉冲”,即由膜电压与阈值的比值,来决定脉冲的幅度或者数量(对应不同的实现方式)。
步骤S405:根据脉冲神经网络的输出,计算当前网络损失。
当前网络损失(简称网络损失)
Figure BDA0003519701560000061
(本领域通常记法,不同于网络层数L)是脉冲神经网络的输出S(L)[1,2,...,T]的函数。脉冲神经网络的损失函数的定义方式可以有多种,包括但不限于:均方误差、前向Kullback Leibler差、逆向Kullback Leibler差等(参考已公开的中国发明专利202110550756.3)。
在执行步骤S405之前,循环执行步骤S402至S404,网络中层的序号也从l=1递增至L。参考图2,最后一层(第L层)网络中的神经元输出的脉冲序列,也即整个网络的输出S(L)[1,2,...,T]。网络损失反映的是根据当前网络配置参数(比如突触权重矩阵),对输入数据进行推理的结果与期望的结果之间的差距。
虽然在前述描述中,在考察网络每一层的过程中,即已完成该层在全部时间步(1,..,T)下状态的计算,逐层推进直至最后一层网络,但是这并不是唯一方式。在另一类实施例中,则可以分别考察在每个时间步下,含有多个层的整个网络的运行状态,然后根据之前时间步的整个网络状态,考察下一时间步下整个网络的运行状态。二者均能获得等价的网络运行推理结果,本发明不以网络状态分析的具体实现方式为限制。
据此,根据训练数据集中该一批样本,整个网络完成推理并获得网络损失。后续步骤中则是根据此处获得的网络损失,调整网络配置参数。
脉冲神经网络的反向(也称误差反向传播)过程,是以当前网络损失为依据,调整网络配置参数(比如突触权重矩阵)的过程。参考图6和图7,其包括如下步骤:
步骤S601:计算在每个时间步n=1,2,..,T下当前网络损失关于第l=L层网络输出脉冲响应信号a(L)的第一梯度e(L)[n]。
网络从最后一层,也即第L层开始,计算网络损失
Figure BDA0003519701560000062
关于第l=L层网络输出脉冲响应信号a(L)的第一梯度
Figure BDA0003519701560000063
其中第L层输出脉冲响应信号a(L)是第L层网络的输出脉冲序列(也即脉冲神经网络的输出s(L)[1,2,...,T])与脉冲响应核卷积的结果(从信号处理领域角度,该过程可视为“过滤”处理)。
步骤S602:基于代理梯度函数,通过递增数值m(从n开始直至T),逐个计算第一变量的值
Figure BDA0003519701560000064
代理梯度函数是本领域的一种通常做法,其目的在于解决脉冲神经网络中的不可导难题。任意合理的代理梯度函数在此均是可行的,本发明不以此为限。举例而言,这里的代理梯度函数可以是现有技术2中所定义的代理梯度函数ρ(t),也可以是周期指数函数或Heaviside函数。
在某类实施例中,整个网络都使用统一的代理梯度函数。在另一些实施例中,每一层均使用不同的代理梯度函数,其中第l层网络的代理梯度函数记为f′(l)[·]=f′(l)[u(l)[·]]。而在另一些实施例中,所有的网络层分别使用某几种代理梯度函数,比如L>2时,L层网络中的某几层选择第一类型代理梯度函数,而另外几层选择第二类型代理梯度函数。
在计算第l层网络在第n时间步对应的第一变量的一个元素值
Figure BDA0003519701560000065
时,其计算公式如下:
Figure BDA0003519701560000066
在计算时,从m=n开始计算
Figure BDA0003519701560000067
(结果为f′(l)[n]),然后计算
Figure BDA0003519701560000068
(使用到前述的
Figure BDA0003519701560000069
),然后再计算
Figure BDA00035197015600000610
(使用到
Figure BDA00035197015600000611
),一直逐个迭代计算至m=T,最终得到
Figure BDA00035197015600000612
由此得到了
Figure BDA00035197015600000613
Figure BDA00035197015600000614
的值(即
Figure BDA00035197015600000615
)。
步骤S603:计算在每个时间步下,网络损失关于第l层的权重化的后突触输入z(l)[n]的第二梯度d(l)[n]。
在数学上,有如下公式成立:
Figure BDA0003519701560000071
其中第l层的权重化的后突触输入z(l)[n]=W(l-1)a(l-1)[n],并且有:
Figure BDA0003519701560000072
其中⊙为互相关(cross-correlation)操作。根据前述步骤S601和步骤S602的结果,容易得到关于第二梯度d(l)[n]的值。
在某类实施例中,在计算第二梯度时,脉冲响应核还可以是前述的具有轴突延迟的脉冲响应核∈D(t)=∈(t-D)。
对于第n时间步的d(l)[n]而言,其依赖e(l)[n→T]以及
Figure BDA0003519701560000073
的结果,换言之,本发明将第n至T时间步的网络损失返还(credit)分配给了当前第n时间步。该步骤体现了本发明中的脉冲之间的时域依赖性。
步骤S604:计算网络损失关于突触权重矩阵W(l-1)的梯度
Figure BDA0003519701560000074
突触权重矩阵W(l-1)是第l层(当前层)与第l-1层(前一层)网络之间的连接权重矩阵。
对于该梯度的计算,其公式为:
Figure BDA0003519701560000075
其中T为转置标记。
对于整个网络的反向传播过程,当执行完一次步骤S604,当前层反向(相对于网络推理时的前向过程)移动一层,层数l递减1,接着执行步骤S605,并接着顺序执行步骤S602、S603、S604。由此,误差逐层(体现空域特点)反向传播至输入层(第一层),执行完步骤S604后发现若l=1,则跳出循环,执行步骤S606。
步骤S605:针对每个时间步,计算网络损失关于第l层网络输出脉冲响应信号a(l)[n]的第一梯度e(l)[n]。
对于第一梯度,满足
Figure BDA0003519701560000076
为了向前一层传播,通过计算e(l)[n]=d(l+1)[n]W(l)(当l=1,2,..,L-1时)得到关于第l层网络输出脉冲响应信号的第一梯度。对于非第L层网络,其第一梯度的计算借助于突触权重矩阵和第二梯度。
步骤S606:通过网络损失关于突触权重矩阵的梯度,来更新网络突触权重矩阵。
对于前述步骤获得的网络损失关于突触权重矩阵的梯度来获得更新后的突触权重矩阵。这里的更新方式为本领域所熟知的技术,任意合适的优化方案都是可行的,本发明不以某种具体的更新方式为限。举例而言,
Figure BDA0003519701560000077
其中η为学习率,W*(l)为更新后的突触权重矩阵,而W(l)则是更新前的突触权重矩阵,l=0,1,2,...,L-1;以及各种已知的随机梯度下降(SGD)、Adam方法。
由上述前向过程和反向过程,完成针对一批样本的学习。然后事实上,需要大量这样包括样本的批(batch)来支持网络配置参数(如突触权重矩阵)的更新/学习/训练。
当然除了网络的突触权重矩阵外,实际应用中还需要更新其它网络配置参数,如轴突延迟等。
在某类实施例中,所述脉冲神经网络中的神经元为LIF神经元或IAF神经元。即,将SRM神经元特例化为LIF神经元或IAF神经元。
参考图8,作为一个完整的脉冲神经网络训练和使用的步骤,其涵盖如下步骤:
步骤S1:采集样本数据,形成训练数据集。样本数据可以是通过动态视觉传感器(Dynamic Vision Sensor,DVS)来获取事件流。根据实际应用数据需要,可以通过DVS采集手势(比如拳、剪刀等)、采集人跌倒的数据、人脸数据、坐姿数据等等。还可以使用麦克风采集语音数据,比如关于命令词(开灯、打开、关闭、三档等等)的语音。也可以是惯性传感器IMU所搜集到的数据、心电/肌电信号等。
步骤S2:将训练数据集至少用于脉冲神经网络的突触权重矩阵的训练,在训练中不断更新突触权重矩阵的值。
这里更新突触权重矩阵的值的方法,可以是前述任一种方法。
步骤S3:通过部署设备,至少将突触权重矩阵的值下载至类脑芯片中。
部署设备,可以是一种计算设备,比如各种类型的计算机,其上部署有专用的部署软件,通过该软件至少将前述的脉冲神经网络的突触权重矩阵的值下载至类脑芯片中。
存储介质,该存储介质上存储有计算机代码,通过执行该计算机代码,以实现如前任意一项所述的空时域脉冲神经网络训练方法。
计算设备,该计算设备包括计算单元,以及如前所述的存储介质,通过加载或编译存储介质上的计算机代码并交由计算单元执行,获得脉冲神经网络的配置参数。
类脑芯片(包含脉冲神经网络处理器)部署有前述的包括突触权重矩阵在内的网络配置参数后,上电后即可完成特定的功能。该芯片通常部署在电子产品(玩具、家电、汽车等)中,以发挥其侦测环境(视觉、听觉、心电、肌电等)信号,并通过脉冲神经网络做出针对环境信号判决结果(比如侦测到某事件发生时,发送对应类型的激活信号)的功能。通常类脑芯片是事件触发机制,因此相比于传统方案,其可以实现超低功耗检测事件发生的效果。
事件成像装置,比如动态视觉传感器(DVS),其部署有多个独立的动态视觉像素单元,每个像素单元独立感受光线明暗变化,并在光线发生改变时独立输出一个脉冲事件。脉冲事件通常包括该像素的坐标、时间戳、以及极性。这种新颖的传感器摒除了传统视觉传感器以帧为单位向后一级传输视觉信息所带来的大量数据冗余的问题。通常地,DVS可以高效地捕捉动态信息,十分契合事件触发系统的需要。
通常情况下,视觉信息采集设备都在极力避免传感器发生抖动,比如云台设备可以缓解录像设备抖动问题,各种防抖动算法、传感器。但是对于某些场景下,目标物体并未运动,或者运动信息不足,而诸如机器人、摄像头等电子设备存在获取当前状态信息的困难。因此,在这种情况下,难以做出准确的决策判断。
基于此,本发明还提出一种方案用于解决该类问题,在目标物体未运动或运动信息不足的情况下,事件成像装置仍能获取当前状态信息,以为合理决策提供信息。参考图9,其展示了是一种具有主动环境探知能力的电子产品(电子设备)。该电子产品还包括触发模块和震动装置,以及动态视觉传感器;该触发模块受控于电子产品产生的控制指令,向震动装置发送执行震动的使能信号;接收该使能信号后,震动装置至少带动所述动态视觉传感器产生物理震动。
由此,DVS因为受到震动而可以捕捉到当前环境信号,并将其捕捉的脉冲事件交由脉冲神经网络处理器处理。在某类实施例中,DVS可以与脉冲神经网络处理器集成在一起,组成感算一体的芯片。在某类实施例中,震动装置属于电子设备的一部分。在某类实施例中,触发模块可以根据用户的需要而制定特定的触发逻辑及对应控制指令,举例地,可以是周期性触发、脉冲神经网络处理器发出特定输出(比如检测到某特定事件发生)后触发、后续状态持续检测目的。在某类实施例中,所述的DVS包括两块及其以上的DVS(双目主动探知动态视觉)。
图10是某个应用实例。比如在检测目标人物跌倒后,为了检测目标人物最新的当前状态,通过触发模块发出的控制信号,振动装置做出响应,使DVS产生微颤,由此通过DVS捕捉当前视场下的视觉信息。基于最新的信息,可以获得当前最新视觉状态信息,并交由后一级系统进一步处理。
尽管已经参考本发明的具体特征和实施例描述了本发明,但是在不脱离本发明的情况下仍可以对其进行各种修改、组合、替换。本发明的保护范围旨在不限于说明书中描述的过程、机器、制造、物质组成、装置、方法和步骤的特定实施例,并且这些方法、模块可能还被实施在相关联、相互依赖、相互配合、前/后级的一个或多个产品、方法当中。
因此,说明书和附图应简单地视为由所附权利要求限定的技术方案的部分实施例的介绍,因而应根据最大合理解释原则对所附权利要求解读,并旨在尽可能涵盖本发明公开范围内的所有修改、变化、组合或等同物,同时还应避免不合常理的解读方式。
为了实现更好的技术效果或出于某些应用的需求,本领域技术人员可能在本发明的基础之上,对技术方案做出进一步的改进。然而,即便该部分改进/设计具有创造性或/和进步性,只要依赖本发明的技术构思,覆盖了权利要求所限定的技术特征,该技术方案同样应落入本发明的保护范围之内。
所附的权利要求中所提及的若干技术特征可能存在替代的技术特征,或者对某些技术流程的顺序、物质组织顺序可以重组。本领域普通技术人员知晓本发明后,容易想到该些替换手段,或者改变技术流程的顺序、物质组织顺序,然后采用了基本相同的手段,解决基本相同的技术问题,达到基本相同的技术效果,因此即便权利要求中明确限定了上述手段或/和顺序,然而该些修饰、改变、替换,均应依据等同原则而落入权利要求的保护范围。
结合本文中所公开的实施例中描述的各方法步骤或模块,能够以硬件、软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用或设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为在本发明所要求保护的范围之外。

Claims (13)

1.一种空时域脉冲神经网络训练方法,该脉冲神经网络包括多个层,其特征在于,该方法包括如下步骤:
从训练数据集中接收一批样本数据,并将该一批样本数据作为脉冲神经网络的输入,运行该脉冲神经网络并获得脉冲神经网络的输出;
根据脉冲神经网络的输出,计算当前网络损失;
从脉冲神经网络的输出层为当前层开始,依照层的倒序,依次计算当前网络损失关于当前层与前一层之间的突触权重矩阵的梯度,直至当前网络损失关于输入扩张矩阵的梯度;
通过当前网络损失关于突触权重矩阵的梯度,更新脉冲神经网络的突触权重矩阵;
其中,在计算当前网络损失关于当前层与前一层之间的突触权重矩阵的梯度前:在每个时间步下,计算当前网络损失关于当前层的权重化的后突触输入的第二梯度;
并在计算以某个时间步为当前时间步的第二梯度前:基于当前层和当前时间步,带入代理梯度函数,将获得的代理梯度函数的值,作为当前时间步对应的第一变量的第一元素值;在计算当前时间步对应的第一变量的后一元素值时,基于当前时间步对应的第一变量的前一元素值,由此获得当前时间步对应的第一变量的全部元素值。
2.根据权利要求1所述的一种空时域脉冲神经网络训练方法,其特征在于:
所述第一变量的定义如下:
Figure FDA0003519701550000011
其中,
Figure FDA0003519701550000012
为第l层网络在第n时间步对应的第一变量的一个元素值,
Figure FDA0003519701550000013
是当前时间步对应的第一变量的第一元素值;v是不应期核;“*”是卷积操作;f′(l)[·]是第l层网络的代理梯度函数;l是当前层的序号。
3.根据权利要求2所述的一种空时域脉冲神经网络训练方法,其特征在于:
所述第二梯度的定义如下:
Figure FDA0003519701550000014
其中,d(l)[n]为第l层网络在第n时间步的第二梯度;∈是脉冲响应核;⊙为互相关操作;e(l)[·]是当前网络损失关于第l层网络输出脉冲响应信号的第一梯度;n为时间步序号,且n=1,2,…,T,其中T为时间步的总长度。
4.根据权利要求3所述的一种空时域脉冲神经网络训练方法,其特征在于:
所述第一梯度的定义如下:
当l=L时,
Figure FDA0003519701550000021
当l∈{1,…,L-1}时,e(l)[n]=d(l+1)[n]W(l)
其中,W(l)是第l层网络与第l+1层网络之间的突触权重矩阵;a(L)是第L层网络的输出脉冲序列与脉冲响应核卷积的结果;
Figure FDA0003519701550000022
是当前网络损失。
5.根据权利要求4所述的一种空时域脉冲神经网络训练方法,其特征在于:
计算当前网络损失关于当前层与前一层之间的突触权重矩阵W(l-1)的梯度的方式为:
Figure FDA0003519701550000023
其中,
Figure FDA0003519701550000024
为转置标记。
6.根据权利要求5所述的一种空时域脉冲神经网络训练方法,其特征在于:
在计算当前网络损失关于当前层与前一层之间的突触权重矩阵的梯度后,若l∈{2,…,L},则将网络的层反向前移一层,即将前移后的层作为当前层,并针对新的当前层,计算当前网络损失关于当前层与前一层之间的突触权重矩阵的梯度;若l=1,则通过网络损失关于突触权重矩阵的梯度,来更新网络突触权重矩阵。
7.根据权利要求1-6任意一项所述的空时域脉冲神经网络训练方法,其特征在于:所述脉冲神经网络中的神经元为LIF神经元或IAF神经元。
8.根据权利要求1-6任意一项所述的一种空时域脉冲神经网络训练方法,其特征在于:所述样本数据为视觉、听觉、触觉、嗅觉、心电、肌电、震动、IMU类型的信号中的一种或多种。
9.一种存储介质,该存储介质上存储有计算机代码,其特征在于:通过执行该计算机代码,以实现权利要求1-8任意一项所述的空时域脉冲神经网络训练方法。
10.一种计算设备,其特征在于:该计算设备包括计算单元,以及如权利要求9所述的存储介质,通过加载或编译存储介质上的计算机代码并交由计算单元执行,获得脉冲神经网络的配置参数。
11.一种芯片,该芯片包括脉冲神经网络处理器,其特征在于:所述脉冲神经网络处理器上部署有脉冲神经网络的配置参数,且该脉冲神经网络的配置参数至少包括如权利要求1-8任意一项所述的空时域脉冲神经网络训练方法所获得的脉冲神经网络的突触权重矩阵。
12.一种电子产品,其特征在于:该电子产品包括如权利要求11所述的芯片。
13.根据权利要求12所述的电子产品,其特征在于:该电子产品还包括触发模块和震动装置,以及动态视觉传感器;
该触发模块受控于电子产品产生的控制指令,向震动装置发送执行震动的使能信号;
接收该使能信号后,震动装置至少带动所述动态视觉传感器产生物理震动。
CN202210174051.0A 2022-02-24 2022-02-24 空时域脉冲神经网络训练方法、芯片及电子产品 Pending CN114565079A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210174051.0A CN114565079A (zh) 2022-02-24 2022-02-24 空时域脉冲神经网络训练方法、芯片及电子产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210174051.0A CN114565079A (zh) 2022-02-24 2022-02-24 空时域脉冲神经网络训练方法、芯片及电子产品

Publications (1)

Publication Number Publication Date
CN114565079A true CN114565079A (zh) 2022-05-31

Family

ID=81715461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210174051.0A Pending CN114565079A (zh) 2022-02-24 2022-02-24 空时域脉冲神经网络训练方法、芯片及电子产品

Country Status (1)

Country Link
CN (1) CN114565079A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114861892A (zh) * 2022-07-06 2022-08-05 深圳时识科技有限公司 芯片在环代理训练方法及设备、芯片及电子设备
CN117232638A (zh) * 2023-11-15 2023-12-15 常州检验检测标准认证研究院 机器人振动检测方法及系统
TWI832406B (zh) * 2022-09-01 2024-02-11 國立陽明交通大學 反向傳播訓練方法和非暫態電腦可讀取媒體
WO2024103639A1 (zh) * 2022-11-14 2024-05-23 清华大学 支持在线学习的气体识别方法、装置、设备、介质和产品

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114861892A (zh) * 2022-07-06 2022-08-05 深圳时识科技有限公司 芯片在环代理训练方法及设备、芯片及电子设备
CN114861892B (zh) * 2022-07-06 2022-10-21 深圳时识科技有限公司 芯片在环代理训练方法及设备、芯片及电子设备
TWI832406B (zh) * 2022-09-01 2024-02-11 國立陽明交通大學 反向傳播訓練方法和非暫態電腦可讀取媒體
WO2024103639A1 (zh) * 2022-11-14 2024-05-23 清华大学 支持在线学习的气体识别方法、装置、设备、介质和产品
CN117232638A (zh) * 2023-11-15 2023-12-15 常州检验检测标准认证研究院 机器人振动检测方法及系统
CN117232638B (zh) * 2023-11-15 2024-02-20 常州检验检测标准认证研究院 机器人振动检测方法及系统

Similar Documents

Publication Publication Date Title
van Bergen et al. Going in circles is the way forward: the role of recurrence in visual inference
CN114565079A (zh) 空时域脉冲神经网络训练方法、芯片及电子产品
Yang et al. Hierarchical deep reinforcement learning for continuous action control
JP6901633B2 (ja) カプセルニューラルネットワーク
Balduzzi et al. Kickback cuts backprop's red-tape: Biologically plausible credit assignment in neural networks
Rathi et al. Exploring neuromorphic computing based on spiking neural networks: Algorithms to hardware
Williams et al. Gradient-based learning algorithms for recurrent networks and their computational complexity
Lukoševičius et al. Reservoir computing trends
JP6092477B2 (ja) ニューラルダイナミクスを修正するための自動化された方法
Stewart et al. Online few-shot gesture learning on a neuromorphic processor
US20130297541A1 (en) Spiking neural network feedback apparatus and methods
KR20170031695A (ko) 신경망들에서의 콘볼루션 동작의 분해
WO2015148189A2 (en) Differential encoding in neural networks
JP2016536679A (ja) ニューラルシミュレータ用の共有メモリアーキテクチャ
Javanshir et al. Advancements in algorithms and neuromorphic hardware for spiking neural networks
US20150248609A1 (en) Neural network adaptation to current computational resources
JP2016539414A (ja) スパイキングニューラルネットワークにおいてリプレーを使用するシナプス学習を実装すること
WO2014081671A1 (en) Dynamical event neuron and synapse models for learning spiking neural networks
EP3058518A2 (en) Congestion avoidance in networks of spiking neurons
US20210232930A1 (en) Temporal Coding in Leaky Spiking Neural Networks
Millidge et al. Predictive coding networks for temporal prediction
Fujimori et al. Modality-specific learning rate control for multimodal classification
Yu et al. CaMKII activation supports reward-based neural network optimization through Hamiltonian sampling
Zins Neuromorphic Computing Applications in Robotics
Lawrence et al. Rapid learning and robust recall of long sequences in modular associator networks

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