脉冲神经网络中数据处理的方法、装置

文档序号:1832193 发布日期:2021-11-12 浏览:23次 >En<

阅读说明:本技术 脉冲神经网络中数据处理的方法、装置 (Method and device for processing data in impulse neural network ) 是由 田中棋 周栋焯 程捷 郭青海 于 2020-05-11 设计创作,主要内容包括:本申请提供脉冲神经网络中数据处理的方法,包括:获取第一神经元在t-1时刻的第一膜电压和在t-1时刻的第一输入电流;确定第一膜电压在单位时间内的变化率是否大于第一预设阈值;如果第一膜电压的变化率大于第一预设阈值,根据第一膜电压和第一输入电流,通过第一算法计算第一神经元在t时刻的第二膜电压;或如果第一膜电压的变化率不大于第一预设阈值,根据第一膜电压和第一输入电流,通过第二算法计算所述第二膜电压,第一算法的计算效率高于第二算法,第二算法的计算精度高于第一算法。本申请提供的技术方案既可以实现较高的膜电压的计算效率,还可以提高膜电压的计算精度。(The application provides a method for data processing in a spiking neural network, comprising: acquiring a first membrane voltage of a first neuron at a time t-1 and a first input current of the first neuron at the time t-1; determining whether a rate of change of the first membrane voltage per unit time is greater than a first preset threshold; if the change rate of the first membrane voltage is larger than a first preset threshold value, calculating a second membrane voltage of the first neuron at the time t through a first algorithm according to the first membrane voltage and the first input current; or if the change rate of the first membrane voltage is not larger than a first preset threshold, calculating the second membrane voltage through a second algorithm according to the first membrane voltage and the first input current, wherein the calculation efficiency of the first algorithm is higher than that of the second algorithm, and the calculation accuracy of the second algorithm is higher than that of the first algorithm. The technical scheme provided by the application can realize higher membrane voltage calculation efficiency and can also improve the membrane voltage calculation precision.)

脉冲神经网络中数据处理的方法、装置

技术领域

本申请涉及神经网络领域,并且更具体地,涉及一种脉冲神经网络中数据处理的方法、装置。

背景技术

人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。

脉冲神经网络(spiking neural network,SNN),作为一种新兴人工神经网络,其在信息处理方式和生物学模型上比传统人工神经网络更加接近真实的生物处理系统。在计算脉冲神经元上膜电压的计算过程中,如何既可以实现较高的计算效率的同时,还可以提高膜电压的计算精度成为亟需要解决的问题。

发明内容

本申请提供一种脉冲神经网络中数据处理的方法、装置及脉冲神经网络,既可以实现较高的膜电压的计算效率,还可以提高膜电压的计算精度。

第一方面,提供了一种脉冲神经网络中数据处理的方法,包括:获取第一神经元在t-1时刻的第一膜电压和在t-1时刻的第一输入电流;确定第一膜电压在单位时间内的变化率是否大于第一预设阈值;如果第一膜电压的变化率大于第一预设阈值,根据第一膜电压和第一输入电流,通过第一算法计算第一神经元在t时刻的第二膜电压;或如果第一膜电压的变化率不大于第一预设阈值,根据第一膜电压和第一输入电流,通过第二算法计算所述第二膜电压,第一算法的计算效率高于第二算法,第二算法的计算精度高于第一算法。

上述技术方案中,在第一膜电压的变化率大于第一预设阈值(即处于刚性区域)的情况下,采用计算效率较高的算法计算第一神经元在t时刻的第二膜电压,在第一膜电压的变化率不大于第一预设阈值(即处于非刚性区域)的情况下,采用计算精度较高的算法计算第一神经元在t时刻的第二膜电压,这样,在不同的区域采用不同的算法,既可以实现较高的膜电压的计算效率,还可以提高膜电压的计算精度。

在一种可能的实现方式中,还包括:确定所述第一神经元的第一放电时刻T,所述第一放电时刻T位于所述t-1时刻和所述t时刻之间;根据所述第一放电时刻T和所述t时刻确定电流增量;向所述第二神经元输出所述电流增量,所述电流增量用于指示所述第二神经元根据所述电流增量对从所述第一神经元处接收到的第二电流进行调整,所述第二电流为所述第一神经元确定所述第二膜电压大于第二预设阈值时向所述第二神经元输出的电流,所述第二神经元为所述第一神经元的下一层神经元。

在另一种可能的实现方式中,根据插值算法确定所述第一神经元的第一放电时刻T。

在另一种可能的实现方式中,根据线性插值算法确定所述第一神经元的第一放电时刻T。

在另一种可能的实现方式中,根据所述t-1时刻以及所述第一膜电压、所述t时刻以及所述第二膜电压确定所述第一神经元的放电时刻T。

在另一种可能的实现方式中,第一算法为指数时间差分ETD算法。

在另一种可能的实现方式中,所述根据所述第一膜电压和所述第一输入电流,通过ETD算法确定所述第一神经元上的第二膜电压,具体包括:根据所述第一膜电压和所述第一输入电流确定所述第一膜电压变化率的次要成分的估计值;根据所述第一神经元在所述t-1时刻的离子通道的门控变量确定所述第一膜电压变化率的线性主成分的估计值;根据所述第一膜电压变化率的次要成分的估计值以及所述第一膜电压变化率的线性主成分的估计值确定所述第一神经元上的第二膜电压的估计值;根据所述第二膜电压的估计值确定所述第二膜电压变化率的次要成分的估计值;根据所述第一膜电压变化率的次要成分的估计值、所述第一膜电压变化率的线性主成分的估计值以及所述第二膜电压变化率的次要成分的估计值,确定所述第二膜电压。

在另一种可能的实现方式中,所述第二算法为龙格库塔RK算法。

在另一种可能的实现方式中,所述根据所述第一膜电压和所述第一输入电流,通过RK算法确定所述第二膜电压,具体包括:根据所述第一膜电压和所述第一输入电流确定所述第一膜电压变化率的次要成分的估计值;根据所述第一膜电压变化率的次要成分的估计值确定所述第一神经元上的第二膜电压的估计值;根据所述第二膜电压的估计值确定所述第二膜电压变化率的次要成分的估计值;根据所述第一膜电压变化率的次要成分的估计值以及所述第二膜电压变化率的次要主成分的估计值,确定所述第二膜电压。

第二方面,提供了一种脉冲神经网络中数据处理的装置,包括:

获取模块,用于获取第一神经元上的第一膜电压和第一输入电流,所述第一膜电压是所述第一神经元在t-1时刻的膜电压值,所述第一输入电流是所述第一神经元在所述t-1时刻根据接收到的输入脉冲确定的;

确定模块,用于确定所述第一膜电压在单位时间内的变化率是否大于第一预设阈值;

计算模块,如果所述第一膜电压在所述单位时间内的变化率大于所述第一预设阈值,用于根据所述第一膜电压和所述第一输入电流,通过第一算法计算所述第一神经元上的第二膜电压,其中,所述第二膜电压是所述第一神经元在t时刻的膜电压值,所述t-1时刻为所述t时刻的前一时刻;或

如果所述第一膜电压在所述单位时间内的变化率不大于所述第一预设阈值,用于根据所述第一膜电压和所述第一输入电流,通过第二算法计算所述第一神经元上的第二膜电压,其中,所述第一算法的计算效率高于所述第二算法的计算效率,所述第二算法的计算精度高于所述第一算法的计算精度。

在一种可能的实现方式中,所述确定模块还用于:确定所述第一神经元的第一放电时刻T,所述第一放电时刻T位于所述t-1时刻和所述t时刻之间;根据所述第一放电时刻T和所述t时刻确定电流增量;

所述装置还包括:

输出模块,用于向所述第二神经元输出所述电流增量,所述电流增量用于指示所述第二神经元根据所述电流增量对从所述第一神经元处接收到的第二电流进行调整,所述第二电流为所述第一神经元确定所述第二膜电压大于第二预设阈值时向所述第二神经元输出的电流,所述第二神经元为所述第一神经元的下一层神经元。

在另一种可能的实现方式中,所述确定模块具体用于:根据插值算法确定所述第一神经元的第一放电时刻T。

在另一种可能的实现方式中,所述确定模块具体用于:根据线性插值算法确定所述第一神经元的第一放电时刻T。

在另一种可能的实现方式中,所述确定模块具体用于:根据所述t-1时刻以及所述第一膜电压、所述t时刻以及所述第二膜电压确定所述第一神经元的放电时刻T。

在另一种可能的实现方式中,所述第一算法为指数时间差分ETD算法。

在另一种可能的实现方式中,当所述第一算法为指数时间差分ETD算法,所述计算模块具体用于:根据所述第一膜电压和所述第一输入电流确定所述第一膜电压变化率的次要成分的估计值;根据所述第一神经元在所述t-1时刻的离子通道的门控变量确定所述第一膜电压变化率的线性主成分的估计值;根据所述第一膜电压变化率的次要成分的估计值以及所述第一膜电压变化率的线性主成分的估计值确定所述第一神经元上的第二膜电压的估计值;根据所述第二膜电压的估计值确定所述第二膜电压变化率的次要成分的估计值;根据所述第一膜电压变化率的次要成分的估计值、所述第一膜电压变化率的线性主成分的估计值以及所述第二膜电压变化率的次要成分的估计值,确定所述第二膜电压。

在另一种可能的实现方式中,所述第二算法为龙格库塔RK算法。

在另一种可能的实现方式中,当第二算法为龙格库塔RK算法,所述计算模块具体用于:根据所述第一膜电压和所述第一输入电流确定所述第一膜电压变化率的次要成分的估计值;根据所述第一膜电压变化率的次要成分的估计值确定所述第一神经元上的第二膜电压的估计值;根据所述第二膜电压的估计值确定所述第二膜电压变化率的次要成分的估计值;根据所述第一膜电压变化率的次要成分的估计值以及所述第二膜电压变化率的次要主成分的估计值,确定所述第二膜电压。

第三方面,提供了一种脉冲神经网络,其特征在于,包括:

第一电流寄存器,用于存储第一神经元在t-1时刻的第一输入电流,所述第一输入电流是所述第一神经元在所述t-1时刻根据接收到的输入脉冲确定的;

第一电压寄存器,用于存储所述第一神经元在所述t-1时刻的第一膜电压;

第一比较器,与所述第一电压寄存器相连,用于确定所述第一电压寄存器中存储的所述第一膜电压在单位时间内的变化率是否大于第一预设阈值;

第一算法电路,与所述第一电流寄存器和所述第一电压寄存器相连,用于在所述第一膜电压在所述单位时间内的变化率大于所述第一预设阈值的情况下,根据所述第一膜电压和所述第一输入电流,通过第一算法计算所述第一神经元上的第二膜电压,其中,所述第二膜电压是所述第一神经元在t时刻的膜电压值,所述t-1时刻为所述t时刻的前一时刻;或

用于在所述第一膜电压在所述单位时间内的变化率不大于所述第一预设阈值的情况下,通过第二算法计算所述第一神经元上的第二膜电压,其中,所述第一算法的计算效率高于所述第二算法的计算效率,所述第二算法的计算精度高于所述第一算法的计算精度。

在一种可能的实现方式中,还包括:

估计电路,存储有所述第一神经元的第一放电时刻T,所述第一放电时刻T位于所述t-1时刻和所述t时刻之间;

电流增量寄存器,与所述估计电路相连,用于根据所述第一放电时刻T和所述t时刻确定电流增量,并向所述第二神经元输出所述电流增量,所述电流增量用于指示所述第二神经元根据所述电流增量对从所述第一神经元处接收到的第二电流进行调整,所述第二电流为所述第一神经元确定所述第二膜电压大于第二预设阈值时向所述第二神经元输出的电流,所述第二神经元为所述第一神经元的下一层神经元。

在另一种可能的实现方式中,还包括:

第二电压寄存器,用于存储所述第一神经元上的第二膜电压;

所述估计电路,与所述第二电压寄存器以及所述第一电压寄存器相连,具体用于:根据所述t-1时刻以及所述第一膜电压、所述t时刻以及所述第二膜电压确定所述第一神经元的放电时刻T,并存储所述第一神经元的第一放电时刻T。

在另一种可能的实现方式中,所述第一算法为指数时间差分ETD算法。

在另一种可能的实现方式中,当所述第一算法为指数时间差分ETD算法,所述第一算法电路具体用于:根据所述第一膜电压和所述第一输入电流确定所述第一膜电压变化率的次要成分的估计值;根据所述第一神经元在所述t-1时刻的离子通道的门控变量确定所述第一膜电压变化率的线性主成分的估计值;根据所述第一膜电压变化率的次要成分的估计值以及所述第一膜电压变化率的线性主成分的估计值确定所述第一神经元上的第二膜电压的估计值;根据所述第二膜电压的估计值确定所述第二膜电压变化率的次要成分的估计值;根据所述第一膜电压变化率的次要成分的估计值、所述第一膜电压变化率的线性主成分的估计值以及所述第二膜电压变化率的次要成分的估计值,确定所述第二膜电压。

在另一种可能的实现方式中,所述第二算法为龙格库塔RK算法。

在另一种可能的实现方式中,当第二算法为龙格库塔RK算法,所述第一算法电路具体用于:根据所述第一膜电压和所述第一输入电流确定所述第一膜电压变化率的次要成分的估计值;根据所述第一膜电压变化率的次要成分的估计值确定所述第一神经元上的第二膜电压的估计值;根据所述第二膜电压的估计值确定所述第二膜电压变化率的次要成分的估计值;根据所述第一膜电压变化率的次要成分的估计值以及所述第二膜电压变化率的次要主成分的估计值,确定所述第二膜电压。

第四方面,提供了一种计算设备,包括通信接口和处理器。其中,该处理器用于控制该通信接口收发信息,该处理器与该通信接口连接,并用于执行第一方面或第一方面任意一种可能的实现方式中的方法。

可选地,该处理器可以是通用处理器,可以通过硬件来实现也可以通过软件来实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。

第五方面,提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算设备上运行时,使得计算设备执行上述第一方面或第一方面可能的实现方式中的方法。

第六方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算设备上运行时,使得计算设备执行上述第一方面或第一方面可能的实现方式中的方法。

附图说明

图1是本申请实施例提供的一种可能的神经网络结构。

图2是脉冲神经元上的膜电压随时间的变化示意图。

图3是本申请提供一种计算设备100的架构图。

图4是本申请实施例提供的一种脉冲神经网络中数据处理的方法的示意性流程图。

图5是本申请实施例提供的另一种脉冲神经网络中数据处理的方法的示意性流程图。

图6是本申请实施例提供的一种确定脉冲神经元放电时间的示意图。

图7是本申请实施例提供的一种脉冲神经网络中数据处理的装置700的示意性框图。

图8是本申请实施例提供的一种脉冲神经网络的示意性电路框图。

图9是本申请实施例提供的一种统一演化算法电路840的示意性框图。

具体实施方式

下面将结合附图,对本申请中的技术方案进行描述。

人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。在机器学习和认知科学领域中,神经网络(neural network,NN)是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。生物大脑内部是由大量的神经元通过不同的连接方式组合而成,前一个神经元与后一个神经元之间是通过突触结构连接起来进行信息传递的。

图1示出了一种可能的神经网络结构。参见图1,该神经网络中可以包括多个节点,每个节点模拟一个神经元,用于执行某个特定运算,例如激活函数。前一个神经元与后一个神经元之间的连接模拟神经突触(synapse)。应理解,突触是两个神经元之间传递信息的载体,突触的权重值代表了两个神经元之间的连接强度。

脉冲神经网络(spiking neural network,SNN),经常被誉为第三代人工神经网络。脉冲神经网络作为一种新兴人工神经网络,其在信息处理方式和生物学模型上比传统人工神经网络更加接近真实的生物处理系统。因此其在运行过程中具有功耗更低的特性,使得它在未来模式识别、自然语言处理、复杂控制与最优化等领域有着更加广泛的应用。

脉冲神经网络中的神经元之间通过脉冲的形式进行信息的传递,是基于发生在某些时间点的离散值活动,而不是连续值。一个脉冲的发生是由代表各种生物处理过程的微分方程所决定,其中最重要的是神经元的膜电压。每一个神经元通过累积前序神经元的脉冲序列,其膜电压会随着的输入的脉冲而发生改变。当神经元的膜电压达到某一预设电压值,该神经元会被激活后会产生一个新的信号(例如,发放一个脉冲),并将该信号传递给与其连接的其他神经元。该神经元发放脉冲后,其膜电压会继续通过累积前序神经元的脉冲序列而改变神经元的膜电压。脉冲神经网络中的神经元通过上述方式实现信息的传递和处理,具有非线性、自适应以及容错性等信息处理能力。

作为示例,下面介绍一种刻画脉冲神经网络中神经元膜电压的方程。

其中,下标i表示脉冲神经网络中的第i个脉冲神经元;

Vi表示第i个脉冲神经元上的膜电压;

C表示脉冲神经元上的膜电容;

mi表示第i个脉冲神经元上钠离子电流通道的门控变量参数;

ENa表示脉冲神经元上钠离子的反转电位;

GNa表示脉冲神经元上钠离子的最大电导;

hi表示第i个脉冲神经元上钾离子电流通道的门控变量参数;

EK表示第i个脉冲神经元上钾离子的反转电位;

GK表示第i个脉冲神经元上钾离子的最大电导;

ni表示第i个脉冲神经元上漏电电流通道的门控变量参数;

EL表示脉冲神经元上漏电电流的反转电位;

GL表示脉冲神经元上漏电电流的最大电导;

αm表示脉冲神经元上m关于Vi的函数,可以通过实验数据拟合得到;

αh表示脉冲神经元上h关于Vi的函数,可以通过实验数据拟合得到;

αn表示脉冲神经元上n关于Vi的函数,可以通过实验数据拟合得到;

表示第i个脉冲神经元接收到的输入电流。

上述公式(1)也可以称为霍奇金·赫克斯利(Hodgkin-Huxley,HH)模型,该HH模型可以用于描述第i个脉冲神经元上的膜电压随输入电流而改变的过程。

应理解,前序神经元的发放的脉冲通过一定的转换关系,形成后序神经元的输入电流后序神经元接受输入电流使得该神经元的膜电压升高,当膜电压达到一定的阈值电压时,该神经元会产生一个新的脉冲传递至该神经元的后序神经元。

需要说明的是,SNN中的两个神经元之间可以采用一个突触连接,或者还可以采用多突触连接,本申请对此不做具体限定。每个突触上具有可修改的突触权值,突触前的神经元传递的多个脉冲可以根据突触权值的大小产生不同的突触后膜电压。

作为示例,前序神经元发放的脉冲信号被后序神经元接受后,产生的输入电流可以通过如下所示的公式(2)刻画。

其中,表示脉冲神经网络中第i个脉冲神经元的输入电流;

表示外界输入电流;

Sij表示从第j个脉冲神经元到第i个脉冲神经元之间连接的权重;

表示从第j个脉冲神经元到第i个脉冲神经元之间连接的权重是兴奋或抑制;

Tjk表示第j个脉冲神经元发放的第k次脉冲的时刻,即第j个脉冲神经元的放电时刻,可以是第j个脉冲神经元和第i个脉冲神经元之间开始作用的起点;

EQ表示反转电位;

αQ表示电导,该电导可通过如下的公式(3)刻画。

其中,σd表示缓慢衰减的时间尺度变量;

σr表示快速上升的时间尺度变量。

下面结合图2,对脉冲神经元在接收到输入电流后其膜电压的变化进行说明。

图2是脉冲神经元上的膜电压取值的变化示意图。其中,横坐标代表时间t,纵坐标代表脉冲神经元上膜电压V的取值。

如图2所示,脉冲神经元在接受到外界输入的时候,它的膜电压会随时间增加。当它的膜电压超过一个固定阈值时(例如,图2中的水平直线),该脉冲神经元可以产生一个动作电位。在接下来的放电区域内,该脉冲神经元上膜电压的斜率较大。而在非放电区域,该脉冲神经元上膜电压的斜率较小。

应理解,膜电压的斜率可以是单位时间内膜电压的变化率。斜率较大说明该脉冲神经元在单位时间内,膜电压的变化率较大。斜率较小说明该脉冲神经元在单位时间内,膜电压的变化率较小。

本申请实施例中,可以将单位时间内膜电压的变化率较大的区域称为刚性区域,将单位时间内膜电压的变化率较小的区域称为非刚性区域。脉冲神经元的膜电压超过一个固定阈值时,会产生一个动作电位,并进入刚性区域。

一种相关的技术中,可以通过二阶龙格库塔(second-order runge-kutta,RK2)算法,根据HH模型计算第i个脉冲神经元的膜电压。由于脉冲神经元的刚性区域中,其膜电压的斜率较大,因此,RK2算法在第i个脉冲神经元的非刚性区域可以采用较大的时间步长,为了满足稳定性的需求,RK2算法需要在第i个脉冲神经元的刚性区域采用较小的时间步长。较小的时间步长会导致膜电压的计算效率较低。

另一种相关的技术中,可以通过二阶指数时间差分(second-order exponentialtime differencing,ETD2)算法,根据HH模型计算第i个脉冲神经元的膜电压。ETD2算法虽然可以在刚性区域和非刚性区域均可以采用较大的时间步长,计算效率较高,但是,ETD2算法每次计算膜电压均需要先对HH模型进行分解(例如,分解为线性刚性部分和非线性非刚性部分),每次分解均会累积膜电压的计算误差,从而影响膜电压的计算精度。

本申请实施例提供了一种脉冲神经网络中数据处理的方法,可以在计算脉冲神经元上膜电压的计算过程中,既可以实现较高的计算效率的同时,还可以提高膜电压的计算精度。

在对本申请实施例提供的脉冲神经网络中数据处理的方法进行介绍之前,先对本申请实施例所适用的应用场景和系统架构进行介绍。

本申请实施例提供的脉冲神经网络中数据处理的方法可以应用到人工智能通用平台上,例如,计算机和芯片上。还可以应用到仿真,车载芯片,手机芯片上,以实现人工智能(例如,图片识别,场景识别,自动驾驶等)。

本申请实施例提供的脉冲神经网络中数据处理的方法可以由数据处理的装置执行,数据处理的装置可以是一个硬件装置,例如:服务器、终端计算设备等。数据处理的装置也可以是一个软件装置,具体为运行在硬件计算设备上的一套软件系统。本申请实施例中并不限定数据处理的装置所部署的位置。示例性的,数据处理的装置可以部署在服务器上。

数据处理的装置在逻辑上也可以是由多个部分构成的装置,如数据处理的装置可以包括获取模块、确定模块等。数据处理的装置中的各个组成部分可以分别部署在不同的系统或服务器中。数据处理的装置的各部分可以分别运行在云计算设备系统、边缘计算设备系统或终端计算设备这三个环境中,也可以运行在这三个环境中的任意两个环境中。云计算设备系统、边缘计算设备系统和终端计算设备之间由通信通路连接,可以相互进行通信。

下面结合图3,以数据处理的装置为计算设备为例进行描述。

图3示例性的提供了本申请的计算设备100的一种可能的架构图。如图3所示,计算设备100可以包括处理器101、存储器102、通信接口103和总线104。

在计算设备100中,处理器101的数量可以是一个或多个,图3仅示意了其中一个处理器101。

可选的,处理器101可以是中央处理器(central processing unit,CPU)。若计算设备100具有多个处理器101,多个处理器101的类型可以不同,或者可以相同。可选的,计算设备100的多个处理器还可以集成为多核处理器。处理器101可以用于执行对象识别的方法的步骤。实际应用中,处理器101可以是一块超大规模的集成电路。在处理器101中安装有操作系统和其他软件程序,从而处理器101能够实现对存储器102等器件的访问。

可以理解的是,在本申请实施例中,处理器101是以CPU为例进行介绍的,实际应用中,还可以是其他特定集成电路(application specific integrated circuit,ASIC)。

存储器102存储计算机指令和数据,存储器102可以存储实现本申请提供的脉冲神经网络中数据处理的方法所需的计算机指令和数据。例如,存储器102存储用于实现本申请提供的脉冲神经网络中数据处理的方法中获取模块执行步骤的指令。再例如,在存储器102存储用于本申请提供的脉冲神经网络中数据处理的方法中确定模块执行步骤的指令。

还应理解,本申请实施例中的存储器102可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random accessmemory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。

通信接口103可以是以下器件的任一种或任一种组合:网络接口(如以太网接口)、无线网卡等具有网络接入功能的器件。通信接口103用于计算设备100与其他计算设备100或者终端进行数据通信。在本申请中,可以通过通信接口103从接收待识别对象的第一特征脉冲序列。

图3用一条粗线表示总线104。总线104可以将处理器101与存储器102、通信接口103连接。这样,通过总线104,处理器101可以访问存储器102,还可以利用通信接口103与其它计算设备100或者终端进行数据交互。

在本申请中,计算设备100执行存储器102中的计算机指令,使用计算设备100实现本申请提供的脉冲神经网络中数据处理的方法。例如,使得计算设备100执行脉冲神经网络中数据处理的方法中由获取模块执行的步骤。再例如,使得计算设备100执行脉冲神经网络中数据处理的方法中由确定模块执行步骤的指令。

下面结合图4,对本申请实施例提供的一种脉冲神经网络中数据处理的方法进行详细描述。

图4是本申请实施例提供的一种脉冲神经网络中数据处理的方法的示意性流程图。如图4所示,该方法可以包括步骤410-440,下面分别对步骤410-440进行详细描述。

步骤410:获取第一神经元上的第一膜电压和第一输入电流。

其中,第一膜电压是第一神经元在t-1时刻的膜电压值,第一输入电流是第一神经元在所述t-1时刻根据接收到的输入脉冲确定的。

步骤420:确定所述第一膜电压在单位时间内的变化率是否大于第一预设阈值。

应理解,第一膜电压在单位时间内的变化也可以称为第一膜电压的导数或斜率。如果第一膜电压在单位时间内的变化率大于第一预设阈值,执行步骤430。如果第一膜电压在单位时间内的变化率不大于第一预设阈值,执行步骤440。

步骤430:根据第一膜电压和第一输入电流,通过第一算法计算第一神经元在t时刻的第二膜电压。步骤440:根据第一膜电压和第一输入电流,通过第二算法计算第一神经元在t时刻的第二膜电压。其中,所述第一算法的计算效率高于所述第二算法,所述第二算法的计算精度高于所述第一算法。

本申请实施例中,所述t-1时刻为所述t时刻的前一时刻。

本申请实施例中,可以将单位时间内膜电压的变化率大于第一预设阈值的区域称为刚性区域,将单位时间内膜电压的变化率不大于第一预设阈值的区域称为非刚性区域。脉冲神经元的膜电压超过一个固定阈值时,会产生一个动作电位,并进入刚性区域。

上述技术方案中,在第一膜电压的变化率大于第一预设阈值(即处于刚性区域)的情况下,采用计算效率较高的算法计算第一神经元在t时刻的第二膜电压,在第一膜电压的变化率不大于第一预设阈值(即处于非刚性区域)的情况下,采用计算精度较高的算法计算第一神经元在t时刻的第二膜电压,这样,在不同的区域采用不同的算法,既可以实现较高的膜电压的计算效率,还可以提高膜电压的计算精度。

下面结合图5,对本申请实施例提供的脉冲神经网络中数据处理方法的一种具体实现方式进行详细描述。应注意,下文的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据文所给出的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。

图5是本申请实施例提供的另一种脉冲神经网络中数据处理的方法的示意性流程图。如图5所示,该方法可以包括步骤510-560,下面分别对步骤510-560进行详细描述。

步骤510:获取脉冲神经元在t-1时刻的参数信息Zt-1

本申请实施例中,脉冲神经元在t-1时刻的参数信息Zt-1可以包括脉冲神经元在t-1时刻的膜电压Vt-1

可选地,参数信息Zt-1还可以包括脉冲神经元在t-1时刻的输入电流以及脉冲神经元在t-1时刻的中间变量。其中,中间变量可以包括但不限于:钠离子电流通道的门控变量参数m、钾离子电流通道的门控变量参数h、漏电电流通道的门控变量参数n。

步骤520:确定脉冲神经元在t-1时刻是否处于刚性区域。

具体的,一种可能的实现方式中,可以根据脉冲神经元在t-1时刻的膜电压的斜率是否大于预设阈值确定其在t-1时刻是否处于刚性区域。也就是说,可以根据脉冲神经元在t-1时刻的膜电压在单位时间内的变化率是否大于预设阈值,从而确定其在t-1时刻是否处于刚性区域。应理解,膜电压的斜率也可以称为膜电压的导数

如果脉冲神经元在t-1时刻的膜电压的斜率大于预设阈值,可以确定脉冲神经元在t-1时刻处于膜电压变化较快的刚性区域,也可以确定脉冲神经元在t时刻处于膜电压变化较快的刚性区域。

如果脉冲神经元在t-1时刻的膜电压的斜率小于预设阈值,可以确定脉冲神经元在t-1时刻处于膜电压变化较慢的非刚性区域,也可以确定脉冲神经元在t时刻处于膜电压变化较慢的非刚性区域。

步骤530:在刚性区域和非刚性区域采用不同的算法确定脉冲神经元在t时刻的参数信息Zt

本申请实施例中,脉冲神经元在t时刻的参数信息Zt可以包括脉冲神经元在t时刻的膜电压Vt

可选地,脉冲神经元在t时刻的参数信息Zt还可以包括脉冲神经元在t时刻的输入电流以及脉冲神经元在t时刻的中间变量。其中,中间变量可以包括但不限于:钠离子电流通道的门控变量参数m、钾离子电流通道的门控变量参数h、漏电电流通道的门控变量参数n。

以公式(1)所示的HH模型为例,HH模型也可以通过如下的公式(4)-(5)表示。

其中,aV表示膜电压V导数(或变化率)的主成分,是方程线性部分的系数;

am表示参数m导数(或变化率)的主成分,是方程线性部分的系数;

ah表示参数h导数(或变化率)的主成分,是方程线性部分的系数;

an表示参数n导数(或变化率)的主成分,是方程线性部分的系数;

表示膜电压V导数(或变化率)的次要成分,是方程非线性部分;

表示参数m导数(或变化率)的次要成分,是方程非线性部分;

表示参数h导数(或变化率)的次要成分,是方程非线性部分;

表示参数n导数(或变化率)的次要成分,是方程非线性部分。

F函数可以通过如下的公式(6)表示。

本申请实施例中,为了便于描述,还可以将多个F函数(例如,)合并为一个其中,变量z可以分别取V,m,h,n。

一种可能的实现方式中,以步骤520确定的脉冲神经元在t-1时刻处于刚性区域为例,对确定脉冲神经元在t时刻的参数信息Zt的具体实现过程进行详细描述。

本申请实施例中,在刚性区域可以通过计算效率较高的算法确定脉冲神经元在t时刻的参数信息Zt。具体的,以计算效率较高的算法为ETD算法作为示例,在刚性区域通过ETD算法确定脉冲神经元在t时刻的参数信息Zt

下面对ETD算法进行详细描述和说明。

1、根据脉冲神经元在t-1时刻的参数信息Zt-1以及公式(7)确定参数信息Zt-1的导数的次要成分估计值Fz,1

其中,Fz,1表示参数信息Zt-1的导数的次要成分估计值。

本申请实施例中,当变量z分别取V,m,h,n时,可以分别计算FV,1,Fm,1,Fh,1,Fn,1

一种示例,以变量z取V。根据脉冲神经元在t-1时刻的膜电压Vt-1mt-1、ht-1

nt-1以及公式(6)中的方程公式(5)中的方程aV确定脉冲神经元在t-1时刻的膜电压Vt-1的导数(或变化率)的次要成分FV,1

另一种示例,以变量z取m。根据脉冲神经元在t-1时刻的膜电压Vt-1mt-1、ht-1、nt-1以及公式(6)中的方程公式(5)中的方程am确定脉冲神经元在t-1时刻的参数mt-1的导数(或变化率)的次要成分Fm,1

另一种示例,以变量z取h。根据脉冲神经元在t-1时刻的膜电压Vt-1mt-1、ht-1、nt-1以及公式(6)中的方程公式(5)中的方程ah确定脉冲神经元在t-1时刻的参数ht-1的导数(或变化率)的次要成分Fh,1

另一种示例,以变量z取n。根据脉冲神经元在t-1时刻的膜电压Vt-1mt-1、ht-1、nt-1以及公式(6)中的方程公式(5)中的方程an确定脉冲神经元在t-1时刻的参数nt-1的导数(或变化率)的次要成分Fn,1

2、根据Fz,1以及公式(8)确定脉冲神经元在t时刻的参数信息Zt

其中,cz表示脉冲神经元在t时刻的z的估计值。

本申请实施例中,当变量z分别取V,m,h,n时,可以分别计算cV,cm,ch,cn。并可以将cV作为脉冲神经元在t时刻的膜电压Vt,将cm作为脉冲神经元在t时刻的参数m的取值,将ch作为脉冲神经元在t时刻的参数h的取值,将cn作为脉冲神经元在t时刻的参数n的取值。

一种示例,以变量z取V。根据脉冲神经元在t-1时刻的mt-1、ht-1、nt-1公式(5)中的方程aV以及FV,1确定脉冲神经元在t时刻的膜电压的估计值cV。并可以将cV作为脉冲神经元在t时刻的膜电压Vt

另一种示例,以变量z取m。根据脉冲神经元在t-1时刻的mt-1、ht-1、nt-1公式(5)中的方程am以及Fm,1确定脉冲神经元在t时刻的参数m的估计值cm。并可以将cm作为脉冲神经元在t时刻的参数m的取值mt

另一种示例,以变量z取h。根据脉冲神经元在t-1时刻的mt-1、ht-1、nt-1公式(5)中的方程ah以及Fh,1确定脉冲神经元在t时刻的参数h的估计值ch。并可以将ch作为脉冲神经元在t时刻的参数h的取值ht

另一种示例,以变量z取n。根据脉冲神经元在t-1时刻的mt-1、ht-1、nt-1公式(5)中的方程an以及Fn,1确定脉冲神经元在t时刻的参数n的估计值cn。并可以将cn作为脉冲神经元在t时刻的参数n的取值nt

可选地,在一些实施例中,为了得到更精确的参数信息Zt,还可以进一步的再根据公式(9)-(10),确定参数信息Zt

其中,Fz,2表示参数信息Zt的导数的次要成分估计值。

本申请实施例中,当变量z分别取V,m,h,n时,可以分别计算FV,2,Fm,2,Fh,2,Fn,2

一种示例,以变量z取V。根据脉冲神经元在t时刻的V的估计值cV、m的估计值cm、h的估计值ch、n的估计值cn以及公式(6)中的方程确定脉冲神经元在t时刻的V的导数的次要成分估计值FV,2

另一种示例,以变量z取m。根据脉冲神经元在t时刻的V的估计值cV、m的估计值cm、h的估计值ch、n的估计值cn以及公式(6)中的方程确定脉冲神经元在t时刻的参数m的导数的次要成分估计值Fm,2

另一种示例,以变量z取h。根据脉冲神经元在t时刻的V的估计值cV、m的估计值cm、h的估计值ch、n的估计值cn以及公式(6)中的方程确定脉冲神经元在t时刻的参数h的导数的次要成分估计值Fh,2

另一种示例,以变量z取n。根据脉冲神经元在t时刻的V的估计值cV、m的估计值cm、h的估计值ch、n的估计值cn以及公式(6)中的方程确定脉冲神经元在t时刻的参数n的导数的次要成分估计值Fn,2

其中,Zt表示脉冲神经元在t时刻的z的取值。

一种示例,以变量z取V。根据脉冲神经元在t-1时刻的Vt-1、aV、脉冲神经元在t-1时刻的膜电压Vt-1的导数(或变化率)的次要成分FV,1以及脉冲神经元在t时刻的V的导数的次要成分估计值FV,2确定脉冲神经元在t时刻的V的取值Vt

另一种示例,以变量z取m。根据脉冲神经元在t-1时刻的mt-1、am、脉冲神经元在t-1时刻的参数mt-1的导数(或变化率)的次要成分Fm,1以及脉冲神经元在t时刻的参数m的导数的次要成分估计值Fm,2确定脉冲神经元在t时刻的m的取值mt

另一种示例,以变量z取h。根据脉冲神经元在t-1时刻的ht-1、ah、脉冲神经元在t-1时刻的参数ht-1的导数(或变化率)的次要成分Fh,1以及脉冲神经元在t时刻的参数h的导数的次要成分估计值Fh,2确定脉冲神经元在t时刻的h的取值ht

另一种示例,以变量z取n。根据脉冲神经元在t-1时刻的nt-1、an、脉冲神经元在t-1时刻的参数nt-1的导数(或变化率)的次要成分Fn,1以及脉冲神经元在t时刻的参数n的导数的次要成分估计值Fn,2确定脉冲神经元在t时刻的n的取值nt

另一种可能的实现方式中,以步骤520确定的脉冲神经元在t-1时刻处于非刚性区域为例,对确定脉冲神经元在t时刻的参数信息Zt的具体实现过程进行详细描述。

本申请实施例中,在非刚性区域可以通过计算精度较高的算法确定脉冲神经元在t时刻的参数信息Zt。具体的,以计算精度较高的算法为RK算法作为示例,在非刚性区域通过RK算法确定脉冲神经元在t时刻的参数信息Zt

需要说明的是,本申请实施例中,为了实现更高效的电路,可以把ETD算法和RK算法整合为一个电路。在上述公式(7)-(10)中的az取零时,可以得到RK算法。以变量z取V为例,aV的值为零。以变量z取m为例,am的值为零。以变量z取h为例,ah的值为零。以变量z取n为例,an的值为零。

通过RK算法计算脉冲神经元在t时刻的参数信息Zt的过程与通过ETD算法计算的过程类似,具体的请参考上文中对ETD算法的描述,此处不再赘述。

步骤540:判断脉冲神经元在t时刻的膜电压Vt是否超过阈值电压。

步骤550:如果脉冲神经元在t时刻的膜电压Vt超过阈值电压,则估计脉冲神经元的放电时刻。

如果前序脉冲神经元在t-1时刻的膜电压Vt-1没有超过阈值电压,在t时刻的膜电压Vt超过阈值电压,该前序脉冲神经元会向与其连接的后序脉冲神经元发放脉冲,后序脉冲神经元在接收到该脉冲后,可以根据公式(2)产生输入电流。

公式(2)中,后序脉冲神经元的输入电流是和前序脉冲神经元发放脉冲的放电时刻相关。相关的技术方案中,如果前序脉冲神经元在一个时间步长(t-1时刻至t时刻)内放电了,例如,在t-1时刻的膜电压Vt-1没有超过阈值电压,在t时刻的膜电压Vt超过阈值电压,放电时刻一般是默认该时间步长的末端,例如,放电时刻为t时刻。由于前序脉冲神经元的膜电压超过阈值电压可能是时间步长(t-1时刻至t时刻)内的某一个时刻,因此,将该时间步长的末端作为放电时刻不是很准确,这样,会导致后序脉冲神经元的输入电流不准确,从而影响后序脉冲神经元上膜电压的计算。

本申请实施例中,可以估计前序脉冲神经元的放电时刻。具体的,可以通过插值的方法,例如,线性插值的方法估计前序脉冲神经元的放电时刻。例如,参见图6,通过线性差值的方法估计的放电时刻位于时间步长(t-1时刻至t时刻)之间。

通过线性差值的方法估计前序脉冲神经元的放电时刻的具体实现方式请参见公式(11)。

其中,tspike表示放电时刻;

Vth表示阈值电压;

Vt-1表示脉冲神经元在t-1时刻的膜电压;

Vt表示脉冲神经元在t时刻的膜电压。

步骤560:向后续脉冲神经元输出电流增量,以便于后续脉冲神经元根据电流增量对输入电流进行修正。

本申请实施例中,确定的放电时刻tspike位于时间步长(t-1时刻和t时刻)之间。因此,相比较相关的技术方案中,放电时刻一般是默认该时间步长的末端而言,本申请确定的放电时刻tspike会引起后序脉冲神经元的输入电流增量。以便于后序脉冲神经元根据该输入电流增量对输入电流进行更新。

具体的,根据得到的放电时刻tspike确定电流增量的实现过程请参考公式(12)。

其中,表示电流增量。

前序神经元发放的脉冲信号被后序神经元接收后,可以根据公式(2)确定产生的输入电流本申请实施例中,前序神经元还会在估计得到放电时刻tspike后,根据公式(12)确定产生的电流增量并输出给后序神经元。后序神经元可以根据电流增量对产生的输入电流进行更新或调整,得到更新后的输入电流。具体的计算过程,请参见公式(13)中的描述。

其中,表示后序神经元更新后的输入电流。

本申请实施例中,可以根据HH模型在刚性区域和非刚性区域的不同,采用自适应的方法计算脉冲神经元上的膜电压。在刚性区域可以通过计算效率较高的算法(例如,ETD算法)计算脉冲神经元上的膜电压,在非刚性区域可以通过计算精度较高的算法(例如,RK算法)计算脉冲神经元上的膜电压。这样,一方面,相比较在刚性区域和非刚性区域均采用RK算法而言,可以提高计算效率。另一方面,相比较在刚性区域和非刚性区域均采用ETD算法而言,可以提高计算精度。

上文结合图1至图6,详细描述了本申请实施例提供的脉冲神经网络中数据处理的方法,下面将结合图7至图9,详细描述本申请装置的实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。

图7是本申请实施例提供的一种脉冲神经网络中数据处理的装置700的示意性框图。该数据处理的装置可以通过软件、硬件或者两者的结合实现成为装置中的部分或者全部。本申请实施例提供的装置可以实现本申请实施例图4中的方法流程,该脉冲神经网络中数据处理的装置700包括:获取模块710、确定模块720、计算模块730,其中:

获取模块710,用于获取第一神经元上的第一膜电压和第一输入电流,所述第一膜电压是所述第一神经元在t-1时刻的膜电压值,所述第一输入电流是所述第一神经元在所述t-1时刻根据接收到的输入脉冲确定的;

确定模块720,用于确定所述第一膜电压在单位时间内的变化率是否大于第一预设阈值;

计算模块730,如果所述第一膜电压在所述单位时间内的变化率大于所述第一预设阈值,用于根据所述第一膜电压和所述第一输入电流,通过第一算法计算所述第一神经元上的第二膜电压,其中,所述第二膜电压是所述第一神经元在t时刻的膜电压值,所述t-1时刻为所述t时刻的前一时刻;或

如果所述第一膜电压在所述单位时间内的变化率不大于所述第一预设阈值,用于根据所述第一膜电压和所述第一输入电流,通过第二算法计算所述第一神经元上的第二膜电压,其中,所述第一算法的计算效率高于所述第二算法的计算效率,所述第二算法的计算精度高于所述第一算法的计算精度。

可选地,所述确定模块720还用于:确定所述第一神经元的第一放电时刻T,所述第一放电时刻T位于所述t-1时刻和所述t时刻之间;根据所述第一放电时刻T和所述t时刻确定电流增量;

所述脉冲神经网络中数据处理的装置700还包括:

输出模块740,用于向所述第二神经元输出所述电流增量,所述电流增量用于指示所述第二神经元根据所述电流增量对从所述第一神经元处接收到的第二电流进行调整,所述第二电流为所述第一神经元确定所述第二膜电压大于第二预设阈值时向所述第二神经元输出的电流,所述第二神经元为所述第一神经元的下一层神经元。

可选地,所述确定模块720具体用于:根据插值算法确定所述第一神经元的第一放电时刻T。

可选地,所述确定模块720具体用于:根据线性插值算法确定所述第一神经元的第一放电时刻T。

可选地,所述确定模块720具体用于:根据所述t-1时刻以及所述第一膜电压、所述t时刻以及所述第二膜电压确定所述第一神经元的放电时刻T。

可选地,所述第一算法为指数时间差分ETD算法。

可选地,当所述第一算法为指数时间差分ETD算法,所述计算模块730具体用于:根据所述第一膜电压和所述第一输入电流确定所述第一膜电压变化率的次要成分的估计值;根据所述第一神经元在所述t-1时刻的离子通道的门控变量确定所述第一膜电压变化率的线性主成分的估计值;根据所述第一膜电压变化率的次要成分的估计值以及所述第一膜电压变化率的线性主成分的估计值确定所述第一神经元上的第二膜电压的估计值;根据所述第二膜电压的估计值确定所述第二膜电压变化率的次要成分的估计值;根据所述第一膜电压变化率的次要成分的估计值、所述第一膜电压变化率的线性主成分的估计值以及所述第二膜电压变化率的次要成分的估计值,确定所述第二膜电压。

可选地,所述第二算法为龙格库塔RK算法。

可选地,当第二算法为龙格库塔RK算法,所述计算模块730具体用于:根据所述第一膜电压和所述第一输入电流确定所述第一膜电压变化率的次要成分的估计值;根据所述第一膜电压变化率的次要成分的估计值确定所述第一神经元上的第二膜电压的估计值;根据所述第二膜电压的估计值确定所述第二膜电压变化率的次要成分的估计值;根据所述第一膜电压变化率的次要成分的估计值以及所述第二膜电压变化率的次要主成分的估计值,确定所述第二膜电压。

图8是本申请实施例提供的一种脉冲神经网络的示意性电路框图。该脉冲神经网络中可以包括至少两个神经元,每个所述神经元中包括多个寄存器,为了便于描述,图8中以神经元800为例进行说明。

应理解,神经元800是脉冲神经网络中多个神经元中的任意一个。神经元800的输入连接上一层神经元的输出,神经元800的传输连接下一层神经元的输入。

神经元800中可以包括:电流寄存器810、电压寄存器820、第一比较器830、统一演化算法电路840、电流寄存器850、电压寄存器860、第二比较器870、估计电路880、电流增量寄存器890。

1、电流寄存器810

位于神经元800的输入端,用于存储神经元800在上一时刻(t-1时刻)的输入电流。

2、电压寄存器820

用于存储神经元800在上一时刻(t-1时刻)的膜电压。

3、第一比较器830

用于实现步骤520中的方法步骤。具体的,用于根据神经元800在上一时刻(t-1时刻)是否处于刚性区域。

例如,第一比较器830中存储有预设阈值,如果神经元800在上一时刻(t-1时刻)的膜电压的导数大于预设阈值,可以确定神经元800在上一时刻(t-1时刻)处于刚性区域。

又如,如果神经元800在上一时刻(t-1时刻)的膜电压的导数大于预设阈值,可以确定神经元800在上一时刻(t-1时刻)处于非刚性区域。

4、统一演化算法电路840

用于实现步骤530中的方法步骤。具体的,用于根据神经元800在上一时刻(t-1时刻)的输入电流以及在上一时刻(t-1时刻)的膜电压,计算神经元800在当前时刻(t时刻)的膜电压。

参见图9,统一演化算法电路840中包括:寄存器841、寄存器842、寄存器843、寄存器844。

寄存器841,用于从电压寄存器820中获取存储的神经元800在上一时刻(t-1时刻)的参数,例如向量u=[V,m,h,n]T,并根据向量u=[V,m,h,n]T以及上述公式(5)确定并存储HH模型的线性部分,例如向量a=[aV,am,ah,an]T

寄存器842,用于从电压寄存器820中获取存储的向量u=[V,m,h,n]T、从寄存器841中获取存储的向量a=[aV,am,ah,an]T以及电流寄存器810中获取存储的神经元800在上一时刻(t-1时刻)的输入电流并根据u=[V,m,h,n]T、a=[aV,am,ah,an]T以及公式(6)确定并存储向量F1=[FV,1,Fm,1,Fh,1,Fn,1]T

寄存器843,用于获取向量F1=[FV,1,Fm,1,Fh,1,Fn,1]T以及向量u=[V,m,h,n]T,并根据F1=[FV,1,Fm,1,Fh,1,Fn,1]T、向量u=[V,m,h,n]T以及公式(8)确定并存储向量c=[FV,1,cm,ch,cn]T

寄存器844,用于获取向量c=[FV,1,cm,ch,cn]T、神经元800在上一时刻(t-1时刻)的输入电流并根据向量c=[FV,1,cm,ch,cn]T以及公式(9)确定并存储向量F2=[FV,2,Fm,2,Fh,2,Fn,2]T

本申请实施例中,统一演化算法电路840可以实现两种不同的算法,例如,将RK算法电路和ETD算法电路整合为一个统一演化算法电路840。可以在第一比较器830确定神经元800在上一时刻(t-1时刻)处于刚性区域时,使用例如ETD算法计算神经元800在当前时刻(t时刻)的膜电压。作为另一个示例,可以在第一比较器830确定神经元800在上一时刻(t-1时刻)处于非刚性区域时,使用例如RK算法计算神经元800在当前时刻(t时刻)的膜电压。

一种示例,在需要使用RK算法计算神经元800在当前时刻(t时刻)的膜电压时,可以将寄存器841中存储的向量a=[aV,am,ah,an]T取为零,使得统一演化算法电路840可实现RK算法。

另一种示例,在需要使用ETD算法计算神经元800在当前时刻(t时刻)的膜电压时,可以将寄存器841中存储的向量a=[aV,am,ah,an]T取为非零,使得统一演化算法电路840可实现ETD算法。

5、电流寄存器850

位于神经元800的输出端,用于存储神经元800在当前时刻(t时刻)的输出电流。

6、电压寄存器860

与统一演化算法电路840相连,用于存储统一演化算法电路840计算的神经元800在当前时刻(t时刻)的膜电压。

7、第二比较器870

用于实现步骤540中的方法步骤。具体的,用于判断神经元800在在t-1时刻的膜电压是否超过阈值电压,在t时刻的膜电压是否超过阈值电压。例如,第二比较器870中存储有阈值电压,如果神经元800在t-1时刻的膜电压未超过阈值电压,在t时刻的膜电压超过了阈值电压,可以理解为神经元800会在t-1时刻至t时刻的时间段内向下一层神经元发放脉冲。

8、估计电路880

用于实现步骤550中的方法步骤。具体的,用于根据第二比较器870中存储的阈值电压、电压寄存器820中存储的神经元800在上一时刻(t-1时刻)的膜电压以及电压寄存器860中存储的神经元800在当前时刻(t时刻)的膜电压计算神经元800的放电时刻tspike。具体的计算过程请参见公式(11),此处不再赘述。

需要说明的是,估计电路880的实现方式有多种,本申请不做具体限定。一种可能的实现方式中,估计电路880可以是一个寄存器,用于根据阈值电压、神经元800在上一时刻(t-1时刻)的膜电压以及当前时刻(t时刻)的膜电压当前时刻(t时刻)的膜电压放电时刻tspike,并存储放电时刻tspike。另一种可能的实现方式中,估计电路880还可以包括两个寄存器,其中一个寄存器用于根据上述方法计算放电时刻tspike,另外一个寄存器用于存储放电时刻tspike

9、电流增量寄存器890

用于实现步骤560中的方法步骤。具体的,用于根据得到的放电时刻tspike计算并存储电流增量。电流增量寄存器890与下一层神经元的输入相连,用于将电流增量寄存器890中存储的电流增量传输至下一层神经元,以便于下一层神经元根据该输入电流增量对输入电流进行更新。

本申请实施例中,一方面,可以将膜电压和电流的过程通过迭代算法实现,只需要存储当前时刻和上一时刻的相应参数就可以快速计算当前电压值,计算量大幅降低,同时大大提高了计算的可并行性。另一方面,电压阈值是常数不需要调整,只需要在时间步长末端修正输入电流,以上方法使得电路逻辑大大简化。

本实施例中,还提供了一种计算设备,该计算设备包括处理器和存储器,该存储器用于存储一个或多个指令,该处理器通过执行该一个或多个指令来实现上述所提供的脉冲神经网络中数据处理的方法。

本实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质存储有指令,当计算机可读存储介质中的指令在计算设备上被执行时,使得计算设备执行上述所提供的脉冲神经网络中数据处理的方法。

本实施例中,还提供了一种包含指令的计算机程序产品,当其在计算设备上运行时,使得计算设备执行上述所提供的脉冲神经网络中数据处理的方法,或者使得该计算设备实现上述提供的脉冲神经网络中数据处理的装置的功能。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的几个实施例中,应该理解到,以上所描述的脉冲神经网络实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口。

该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

该功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例该方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上该,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。

29页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种仿生情景认知模型构建方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!