本申请涉及神经网络技术领域,特别是涉及一种神经元信息发送方法、装置和存储介质。
背景技术
当今时代大数据信息网络和智能移动设备的蓬勃发展,产生了海量非结构化信息,伴生了对这些信息的高效能处理需求的急剧增长。传统冯·诺依曼计算机在处理上述问题时面临两方面的巨大挑战。一方面是其处理器和存储器分离,由于采用总线通信、同步、串行和集中的工作方式,在处理大型复杂问题时不仅能耗高、效率低,而且面向数值计算的特性使其在处理非形式化问题时软件编程复杂度高,甚至无法实现。
随之出现了借鉴人脑发展类脑计算技术。神经网络由大量神经元构成,单个神经元结构和行为比较简单,通过一定地学习规则却能呈现出丰富的网络处理功能。但在传统的类脑计算技术中,神经元输出信息的格式比较单一,对于神经网络的发展产生了一定的制约。
技术实现要素:
基于此,有必要针对在传统的类脑计算技术中,神经元输出信息的格式比较单一的问题,提供一种神经元输出信息格式多样化的方法、装置和存储介质。
一种神经元信息发送方法,所述方法包括:
获取前端神经元输出信息和当前神经元历史信息;
根据所述前端脉冲神经元输出信息和所述当前神经元历史信息,计算当前神经元信息;
根据所述当前神经元信息确定当前神经元输出信息,所述当前神经元输出信息包括至少两个脉冲尖峰信号;
输出所述当前神经元输出信息。
在其中一个实施例中,所述根据所述当前神经元信息确定当前神经元输出信息,包括:
根据所述当前神经元信息和信息次数对应关系,确定脉冲发放次数;
则输出所述当前神经元输出信息,还包括:
通过输出与所述脉冲发放次数相等个数的脉冲尖峰信号,输出所述当前神经元输出信息。
在其中一个实施例中,所述根据所述当前神经元信息确定当前神经元输出信息,包括:
根据所述当前神经元信息和信息频率对应关系,确定脉冲发放频率;
则输出所述当前神经元输出信息,还包括:
通过所述脉冲发放频率输出脉冲尖峰信号,输出所述当前神经元输出信息。
在其中一个实施例中,所述前端神经元输出信息,包括:
人工神经元输出信息或脉冲神经元输出信息。
在其中一个实施例中,在输出所述当前神经元输出信息的步骤之后,所述方法还包括:
利用脉冲神经网络路由包逐个发送所述至少两个脉冲尖峰信号,将所述当前神经元输出信息发送至后端脉冲神经元。
在其中一个实施例中,在输出所述当前神经元输出信息的步骤之后,所述方法还包括:
利用人工神经网络路由包发送所述至少两个脉冲尖峰信号,将所述当前神经元输出信息发送至后端人工神经元。
在其中一个实施例中,所述利用人工神经网络路由包发送所述至少两个脉冲尖峰信号,将所述当前神经元输出信息发送至后端人工神经元,包括:
获取所述当前神经元输出信息的脉冲次数和脉冲频率;
根据所述脉冲次数和所述脉冲频率,确定人工神经元输出信息;
利用人工神经网络路由包发送所述人工神经元输出信息至后端人工神经元。
在其中一个实施例中,所述根据所述脉冲次数和所述脉冲频率,确定人工神经元输出信息,包括:
根据所述脉冲次数和/或所述脉冲频率计算脉冲神经元变化值;
根据所述脉冲神经元变化值、所述脉冲次数和所述脉冲频率,确定人工发送系数;
根据所述人工发送系数,所述脉冲次数和所述脉冲频率,确定所述人工神经元输出信息。
一种神经元信息发送装置,包括:
信息获取模块,用于获取前端神经元输出信息和当前神经元历史信息;
当前信息计算模块,用于根据所述前端脉冲神经元输出信息和所述当前神经元历史信息,计算当前神经元信息;
输出信息计算模块,用于根据所述当前神经元信息确定当前神经元输出信息,所述当前神经元输出信息包括至少两个脉冲尖峰信号;
信息输出模块,用于输出所述当前神经元输出信息。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以上任一实施例所提供方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以上任一实施例所提供方法的步骤:
上述神经元信息发送方法、装置和存储介质。通过前端神经元的输出信息、当前神经元的历史信息以及当前神经元信息,确定当前神经元的输出信息,并且当前神经元的输出信息包括至少两个脉冲尖峰信号。实现了当前神经元输出信息与后端神经元的匹配,实现了神经元输出信息格式的多样性,增强了神经网络的灵活性。
附图说明
图1为一个实施例中神经元信息发送方法的流程示意图;
图2为一个实施例中神经元信息发送装置的模块示意图;
图3为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种神经元信息发送方法,包括以下步骤:
步骤s100,获取前端神经元输出信息和当前神经元历史信息。
具体地,所述前端神经元输出信息,是与当前神经元的连接的前端神经元的输出信息。所述当前神经元历史信息,包括在当前神经元中存储的前端神经元发送的历史信息。可以理解,所述前端神经元可以是脉冲神经网络神经元(spikingneuralnetwork,snn),也可以是人工神经网络的神经元(artificialneuralnetwork,ann)。所述脉冲神经网络神经元采用基于stdp(spike-time-dependentplasticity)的算法构建完整的突触神经网络。脉冲神经网络的神经元之间的连接采用1比特量实现,并且所述脉冲神经网络的神经元在激活之后会进入一段时间的不应期。可以理解的,神经元在不应期内,对输入信号不再发生响应。在一定的时间范围内,脉冲发放的频率和模式代表着不同的信息。所述人工神经网络的神经元之间的连接采用多比特量(例如8比特)实现,且没有不应期。
具体地,当前神经元包括基于生物神经元burst现象的神经元。
步骤s102,根据所述前端脉冲神经元输出信息和所述当前神经元历史信息,计算当前神经元信息。
具体地,所述当前神经元信息是指根据前端神经元的输出信息作为当前神经元的输入信息,根据所述当前神经元历史信息对当前神经元的输入信息即前端神经元的输出信息进行神经网络运算,得到当前神经元信息。
步骤s104,根据所述当前神经元信息确定当前神经元输出信息,所述当前神经元输出信息包括至少两个脉冲尖峰信号。
具体地,根据所述当前神经元输出信息是指当前神经元向与当前神经元连接的后端神经元传送的输出信息。
步骤s106,输出所述当前神经元输出信息。
上述神经元信息发送方法,通过前端神经元的输出信息、当前神经元的历史信息以及当前神经元信息,确定当前神经元的输出信息,并且当前神经元的输出信息包括至少两个脉冲尖峰信号,实现了当前神经元输出信息与后端神经元的匹配,实现了神经元输出信息格式的多样性,增强了神经网络的灵活性。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,根据所述当前神经元信息确定当前神经元输出信息,包括:根据当前神经元信息和信息次数对应关系,确定脉冲发放次数。具体地,脉冲发放次数中包含了当前神经元的输出信息。在其中一个实施例中,所述输出所述当前神经元输出信息,还包括:通过输出与脉冲发放次数相等个数的脉冲尖峰信号,输出所述当前神经元输出信息。具体地,将脉冲发放次数中包含的当前神经元的输出信息转换为脉冲尖峰信号个数中包含的当前神经元的输出信息。可以理解的,通过上述信息承载方式的转换实现了不同神经元发放方式的兼容。
在一个实施例中,根据所述当前神经元信息确定当前神经元输出信息,包括:根据所述当前神经元信息和信息频率对应关系,确定脉冲发放频率。具体地,脉冲发放频率中包含了当前神经元的输出信息。在其中一个实施例中,输出当前神经元输出信息,还包括:通过脉冲发放频率输出脉冲尖峰信号,输出当前神经元输出信息。具体地,将脉冲发放频率中包含的当前神经元的输出信息转换为脉冲尖峰信号发送的频率中包含的当前神经元的输出信息。可以理解的,通过上述信息承载方式的转换实现了不同神经元发放方式的兼容。
在一个实施例中,前端神经元输出信息包括人工神经元输出信息或脉冲神经元输出信息。在一个实施例中,在输出所述当前神经元输出信息的步骤之后,所述方法还包括:利用脉冲神经网络路由包逐个发送所述至少两个脉冲尖峰信号,将所述当前神经元输出信息发送至后端脉冲神经元。具体地,脉冲神经网络神经元的基本模型是:对于一个脉冲神经元,接受来自前端神经元的输出信息之后脉冲神经元的胞体膜电位升高,当膜电位升高到一个阈值之上时,该神经元就发出一个脉冲作为输出,之后立刻屏蔽所有与该神经元连接的前端突触不再接受脉冲,此时膜电位回落到复位电压并维持一段时间,之后才重新接受脉冲输入。
在一个实施例中,在输出所述当前神经元输出信息的步骤之后,所述方法还包括:利用人工神经网络路由包发送所述至少两个脉冲尖峰信号,将所述当前神经元输出信息发送至后端人工神经元。
具体地,前端神经元的输出信息发送至当前神经元,若后端神经元为人工神经元,则当前神经元以人工神经元的形式发送当前神经元的输出信息;若后端神经元为脉冲神经元,则当前神经元以脉冲神经元的形式发送当前神经元的输出信息。具体地,人工神经网络从信息处理角度对人脑神经元网络进行抽象,建立简单模型,按不同的连接方式组成不同的网络。神经网络是一种运算模型,由大量的神经元之间相互连接构成。每个节点代表一种特定的输出函数,称为激励函数。
在一个实施例中,所述利用人工神经网络路由包发送所述至少两个脉冲尖峰信号,将所述当前神经元输出信息发送至后端人工神经元,包括:获取所述当前神经元输出信息的脉冲次数和脉冲频率;根据所述脉冲次数和所述脉冲频率,确定人工神经元输出信息;利用人工神经网络路由包发送所述人工神经元输出信息至后端人工神经元。可以理解的,通过上述神经元发送方法,可以将接收的脉冲神经元信息,通过当前神经元发送至人工神经元。
在一个实施例中,所述根据所述脉冲次数和所述脉冲频率,确定人工神经元输出信息,包括:根据所述脉冲次数和/或所述脉冲频率计算脉冲神经元变化值;根据所述脉冲神经元变化值、所述脉冲次数和所述脉冲频率,确定人工发送系数;根据所述人工发送系数,所述脉冲次数和所述脉冲频率,确定所述人工神经元输出信息。具体的,当前神经元通过调整人工发送系数,提高发送信息的准确性。
在一个实施例中,前端神经元为脉冲神经元,当前神经元接收前端脉冲神经元发送的信息。具体地,脉冲神经元的信息为相同高度的脉冲,不同的脉冲可以定义为0或1。脉冲神经元的脉冲发放频率对当前神经元会产生不同的影响。容易理解的,不同的脉冲频率在时间域上包含了不同的信息。在其中一个实施例中,当前神经元的膜电位累积方式为lit模型。具体地,lit模型中,膜电位的累积方式,用下述公式表示:
其中,vi(t)为神经元i在时刻t的膜电位,
具体地,当前神经元的胞体膜电位累积达到阈值时,产生多个脉冲尖峰信号,随后进入不应期。
在其中一个实施例中,当前神经元其胞体膜电位达到阈值后,当前神经元读取当前神经元输出信息的发放次数n和发放频率f,并以频率f生成脉冲神经网络路由包。具体地,每生成一个脉冲神经网络路由包,其发放次数计数器加1,当发放次数计数器达到n时,停止生成路由包。此时当前神经元共计产生了n个脉冲神经网络路由包,随后当前神经元进入一定时间的不应期,当前神经元的膜电位复位。
在一个实施例中,前端神经元为人工神经元,当前神经元的胞体膜电位达到阈值后,读取其当前神经元输出信息的发放次数n和发放频率f,并生成一个人工神经元路由包。设定一个变量k作为路由包中的数值,该路由包中的数值k是n和f的函数:
k=n+αf
其中α>0,其含义是,若当前神经元计算出以snn模式发放n个频率为f的路由包,则后端神经元膜电位的变化量δvsnn可表示为:
δvsnn=n·(w+vleak)
其中,w为两个神经元的连接权重。此时以ann形式发放后端ann神经元膜电位的变化量δvann:
δvann=kw=nw+αfw
通过选取适当的α,使得δvann≈δvsnn,保证在以ann形式发送对后端神经元的影响近似等效。可以看到由于vleak的存在,发放频率f越大,总的泄漏量越小,k越大,即f与k是正相关。
在一个实施例中,如图2所示,提供了一种神经元信息发送装置,包括:信息获取模块200,用于获取前端神经元输出信息和当前神经元历史信息;
当前信息计算模块202,用于根据所述前端脉冲神经元输出信息和所述当前神经元历史信息,计算当前神经元信息;
输出信息计算模块204,用于根据所述当前神经元信息确定当前神经元输出信息,所述当前神经元输出信息包括至少两个脉冲尖峰信号;
信息输出模块206,用于输出所述当前神经元输出信息。
关于神经元信息发送装置的具体限定可以参见上文中对于神经元信息发送方法的限定,在此不再赘述。上述神经元信息发送装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种神经元信息发送方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体地,计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以上任一实施例所提供方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上任一实施例所提供方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。