尖峰神经网络中的学习及召回的制作方法

文档序号:29210263发布日期:2022-03-12 04:40阅读:207来源:国知局
尖峰神经网络中的学习及召回的制作方法

1.本发明总体上涉及尖峰神经网络中的学习和召回。提供了用于存储尖峰神经网络中的数据信号的方法,以及实现此类方法的装置和计算机程序产品。所存储的数据信号可随后通过激活网络的神经元来召回。


背景技术:

2.尖峰神经网络(snn)是由神经系统的生物架构启发的神经形态处理系统。在人脑中,信息由通过突触互连的神经元的复杂网络处理。生物神经元可以集成它接收的输入信号。表示所存储的神经元状态的神经元“膜电位”通过神经元输入信号的到达而渐进地修改。当膜电位穿过特定的电压阈值时,神经元将“激发”,从而生成被称为“动作电位”或“尖峰”的输出信号,并且然后恢复至其初始状态。这些尖峰经由突触被传递至其他神经元,这些突触由于神经元活动而改变它们的连接强度(“可塑性”或“突触权重”)。
3.snn的基本组件包括模拟神经元和突触的功能,其中神经元经由突触互连,突触根据存储的突触权重在神经元之间中继尖峰。snn中的信息处理依赖于尖峰神经元的网络之间的全或无的基于尖峰的通信。
4.不同大脑区域的实验证据表明,在试验中可以学习并且可靠地再现精确的尖峰定时,从而提供用于存储和召回信息的机制。在神经形态系统中,学习自主地再现表示数据信号的时空尖峰模式是仅最近被尖峰神经网络的模型接近的基本挑战(参见例如:“被编排为形成和检索记忆的不同突触可塑性机制(diverse synaptic plasticity mechanisms orchestrated to form and retrieve memories)”,zenke等人,自然通讯(nature communications),2015;以及“用尖峰神经网络在序列学习中进行匹配召回和存储(matching recall and storage in sequence learning with spiking neural networks)”,brea等人,神经科学杂志(journal of neuroscience),2013)。
5.用于存储snn中的数据信号的改进的技术将是高度期望的。


技术实现要素:

6.根据本发明的一个方面,提供了一种用于在尖峰神经网络中存储数据信号的方法。对于每个数据信号,该方法包括将与该数据信号相关的元数据供应至机器学习模型,该机器学习模型被训练为根据用于数据信号的输入元数据生成指示该数据信号的相关性类别的输出信号。该方法包括:将该数据信号迭代地供应给尖峰神经网络的经由突触权重互连的神经元子组件,以及训练突触权重以将该数据信号存储在该子组件中。该方法进一步包括根据模型的输出信号将网络的神经元指派给子组件,使得更大的子组件存储更相关的数据信号。
7.体现本发明的方法实现snn中的“相关性感知”学习。基于数据信号的元数据,经由通过机器学习模型实现的分类过程来确定要存储的数据信号的相关性。snn被动态地配置为用于基于输出信号,并且因此基于来自模型的相关性类别,存储每个数据信号,使得被分
类为更相关的数据信号存储在比不太相关的信号更大的子组件中。这提供了用于模拟类似大脑的特征的优雅且有效的技术,由此学习和召回功能可以依赖于关联来改进可靠性。特别地,常见的经验是相关/重要信息的学习和召回比不相关信息更可靠。通过基于从元数据得出的相关性类别动态地配置子组件,体现本发明的方法可以改善数据被存储并且随后在snn中被召回的保真度,从而提供高效的基于snn的数据存储。
8.根据模型输出信号,可以将神经元从snn的未指派给任何其他子组件的自由神经元池分配给子组件。这允许基于要存储的数据信号的相关性类别来将期望数量的神经元指派给子组件。在优选实施例中,神经元还可以从存储先前的数据信号的另一子组件被指派给子组件,这取决于:(1)用于要存储的当前数据信号的模型输出信号;以及(2)从用于先前数据信号的元数据生成的模型输出信号。这被实施,以使得存储更相关数据信号的组件比存储较不相关信号的组件保留更多数量的神经元。在这些实施例中,snn是可随时间重新配置的。随着新数据信号被存储,演进网络可以调整以根据相关性适当地适应所有数据信号。
9.在特别高效的实施方式中,机器学习模型包括实现分类过程的另外的snn。提供给snn的数据可以被编码在输入到网络的尖峰信号中的尖峰的出现(例如,速率或定时)中。优选实施例对提供给另外的snn的元数据采用尖峰频率编码,由此数据以尖峰信号中的尖峰的频率(速率)被编码,并且相关性类别优选地由另外的snn的输出信号中的尖峰频率指示。
10.由子组件存储的数据信号可以通过激活该子组件的神经元来召回,由此该子组件输出被编码在由该组件输出的尖峰信号中的存储数据信号。在优选实施例中,元数据包括数据信号的唯一标识符。该方法然后包括将每个子组件存储的数据信号的唯一标识符存储在与snn相关联的存储器中。这允许响应于从元数据输入随后接收到标识符而方便地召回所存储的数据信号。
11.本发明的另一方面提供用于存储数据信号的装置。装置包括:尖峰神经网络,尖峰神经网络用于接收要被存储的数据信号;分类器,分类器实现机器学习模型,该机器学习模型用于根据与数据信号相关的输入元数据生成指示数据信号的相关性类别的输出信号;以及被调整为实现如上所述的方法的控制逻辑。
12.本发明的附加方面提供一种计算机程序产品,其包含计算机可读存储介质,该计算机可读存储介质体现可由计算装置执行的程序指令,以使得计算装置执行上文描述的用于在snn中存储数据信号的方法。
13.下面将参考附图通过示例性而非限制性示例的方式来更详细地描述本发明的实施例。
附图说明
14.现在将参考附图仅通过示例的方式来描述本发明的实施例,在附图中:
15.图1是根据本发明的实施例的用于存储数据信号的装置的示意图;
16.图2表示由图1装置实现的方法的步骤;
17.图3示出了该装置的分类器的一个实施例;
18.图4示出了分类器的另一实施例;
19.图5示出了用于存储数据信号的装置的优选实施例;
20.图6示出了图5装置的存储snn;
21.图7表示由图5装置实现的方法的步骤;以及
22.图8表示一种用于召回由实施本发明的装置存储的数据信号的方法的步骤。
具体实施方式
23.本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
24.计算机可读存储介质可以是可保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式紧凑盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、具有记录在其上的指令的诸如穿孔卡或者凹槽中的凸起结构之类的机械编码设备、以及上述各项的任何合适的组合。如本文所使用的,计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过电线传输的电信号。
25.本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应计算/处理设备或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
26.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,该一种或多种程序设计语言包括面向对象的程序设计语言(诸如smalltalk、c++等)和常规的过程式程序设计语言(诸如“c”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上并且部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接至用户计算机,或者可以(例如,使用互联网服务提供商通过互联网)连接至外部计算机。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
27.下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的方面。应当理解,流程图和/或框图的每个框以及流程图和/或框图中各框的组合可以由计算机可读程序指令实现。
28.这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据
处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令可以引导计算机、可编程数据处理装置、和/或其他设备以特定方式起作用,使得其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的一个或多个框中指定的功能/动作的方面的指令的制造品。
29.也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的一个或多个框中指定的功能/动作。
30.附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在这方面,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的(一个或多个)逻辑功能的一个或多个可执行指令。在一些可替代实施方式中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合,可以由执行指定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
31.图1示出了根据本发明实施例的用于存储数据信号的装置的框图。装置1包括用于接收要存储的数据信号的snn 2、用于对数据信号进行分类的分类器3、以及用于控制装置的操作的控制逻辑(指示为控制器4)。控制器4接收要存储的数据信号以及与数据信号相关的关联元数据,并且控制snn 2的操作,以用于信号的存储和召回,如下面详述的。
32.snn 2包括经由突触权重互连的尖峰神经元的组件,如图1中的放大图中示意性地示出的。这显示了经由突触s互连的一对神经元,即nj和ni,突触s根据其存储的突触权重w
ij
将信号从nj中继到ni。突触前神经元nj将来自组件中的它的连接神经元的输入尖峰信号累加。当神经元膜电位经过发放(firing)阈值时,神经元生成输出尖峰,并且膜电位恢复到静息电位。来自突触前神经元nj的尖峰由突触s接收,突触s取决于突触权重w
ij
将突触后信号中继至突触后神经元ni。特别地,在尖峰被突触前神经元nj激发之后,nj和ni之间的突触连接引起突触后神经元ni的膜电位的瞬时改变。该变化的幅度反映突触权重w
ij
。在snn 2的操作中,突触权重w
ij
由神经元活动渐进地修改。该“突触可塑性”可以例如基于突触前和/或突触后神经元尖峰的定时经由stdp(尖峰定时依赖可塑性)规则来实现。权重w
ij
也可在训练操作期间被修改,以用于在snn 2中存储数据信号,如下文所详述的。在snn操作期间,突触权重可以由装置的控制逻辑(例如,控制器4)生成的控制信号来修改。
33.用于神经元和突触的各种实现在本领域中是已知的,包括利用纳米器件的忆阻特性的电路,例如,电阻式存储器单元,诸如相变存储器(pcm)单元,用于存储神经元膜电位或突触权重。这种忆阻器件的密集横条阵列提供大规模平行以及面积和能量高效的snn。snn架构可以高效地在集成电路中实现,如例如在2014年merolla等人的“具有可缩放通信网络和接口的百万尖峰神经元集成电路(amillion spiking-neuron integrated circuit with a scalable communication network and interface)”中所描述的。基于包括导电
桥rram单元、氧化物或金属氧化物rram单元以及碳rram单元的电阻式ram(rram或reram)单元的忆阻器件也可被用于神经元/突触实现。一般而言,神经元和突触可以任何期望的方式来实现,并且特定功能可由硬件或软件或其组合来提供。突触可塑性可基于输入神经元和输出神经元尖峰中的至少一者的(绝对或相对)定时经由各种stdp方案来实现。可塑性还可取决于snn操作中的其他变量/事件,诸如神经元膜电位和训练期间的网络优化过程的输出,如以下所解释的。
34.输入到装置1的数据信号可包括传感输入信号,诸如,图像信号、视频信号和音频信号,例如语音信号。数据信号可包括独立于时间的数据,诸如单个图像或其他静态图案或数据集,例如,数据文件或其他数据集的字节,或时间数据序列,诸如表示数据点集的时间演进的视频/音频数据。一般而言,输入数据信号可表示任何类型的数据并且可表示数据点的静态或时空集合。
35.要在装置1存储中的数据信号具有用于对这些数据信号进行分类的相关联的元数据。该元数据包括与相关联的数据信号有关的数据项的预定集合,并且可以被方便地表达为一组键值对,其中键标识特定属性类型并且该值指示相应的属性值。元数据可包括描述、定义、标识或以其他方式与数据信号的内容和/或上下文相关的各种数据项。元数据可包括例如通过提取数据集的预定义字段从数据信号本身提取或导出的数据和/或例如针对数据信号单独定义的数据项,例如,用户定义的数据项。
36.分类器3适于基于由控制器4提供的用于数据信号的输入元数据来对该数据信号进行分类。具体地,分类器3实现机器学习(ml)模型,其(至少部分地)被训练成根据用于数据信号的输入元数据生成输出信号,该输出信号指示用于该数据信号的相关性类别。在这里可以使用各种ml模型来进行分类,包括逻辑回归、支持向量机、基于图的分类模型、树集合(诸如随机森林模型)以及各种神经网络模型。这样的模型可被训练成经由迭代训练过程来对输入数据进行分类,其中训练输入数据被迭代地提供给模型,并且模型参数被优化用于新的(未看见的)输入数据的后续分类。在一些实施例中,分类器3可以集成在控制器4的功能中。在以下优选实施例中,分类器3包括另外的snn。
37.控制器4包括将输入数据信号编码为尖峰信号以提供给snn 2的神经元的功能。例如,表示图像帧序列的视频数据信号可被编码为其中尖峰信号对应于像素的空间-时间尖峰信号模式。像素值(例如,灰度值)可根据像素到神经元的预定映射在提供给snn 2的相应神经元的尖峰信号中的尖峰的出现(例如,速率或定时)中被编码。任何输入数据信号中的数据位、字节等可被类似地编码在尖峰信号中并被映射到snn 2的神经元。在一些实施例中,控制器4可以使用尖峰频率编码,由此以向snn提供的尖峰信号中的尖峰的出现速率对数据值进行编码。在其他实施例中,控制器4可以使用尖峰时间编码,由此在提供给snn的尖峰信号中的尖峰出现时对数据值进行编码。控制器4还包括控制snn 2的操作的功能,以用于存储数据信号,并且用于随后召回所存储的数据信号,如下面详细描述的。根据本文中的操作的描述,控制器4的适当的逻辑实施方式对于本领域的技术人员将是明显的。该控制器可以例如包括微控制器或片上系统,并且控制器功能可以(全部或部分地)集成在snn 2的控制电路中。通常,控制器4的功能可以由以硬件或软件或其组合实现的逻辑提供。这样的逻辑可以在由(通用或专用)计算装置执行的计算机系统可执行指令(诸如程序模块)的上下文中描述。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程
序、对象、组件、逻辑、数据结构等。
38.图2表示由装置1执行以存储输入数据信号的步骤。在步骤10中,控制器4接收数据信号和相关联的元数据。在步骤11中,控制器4将元数据提供给分类器3以获得模型输出信号,该模型输出信号指示数据信号的相关性类别。在步骤12中,控制器4控制用于存储数据信号的神经元子组件的snn 2中的配置。在该步骤中,根据分类器输出将神经元指派给该子组件。指示更相关的数据信号的较高相关性类别导致比指示较不相关的数据信号的较低相关性类别更多的神经元被指派给子组件。通过激活互连神经元的突触来将神经元指派给子组件,从而允许在随后的训练过程中修改突触权重。因此,控制器4控制snn 2,以配置所需大小的子组件,并且经由到突触的控制信号来激活突触权重。控制器4然后启动训练过程以训练突触权重,从而将输入数据信号存储在子组件中。如在步骤13处所指示的,(如上所述被编码在尖峰信号中的)输入数据信号被迭代地提供给新配置的子组件的神经元。响应于输入信号,该子组件的互连神经元生成尖峰信号,该尖峰信号如上所述地修改突触权重。突触权重还经由迭代优化过程来渐进地修改。例如,突触权重可以在输入信号被重复地提供给子组件的一组迭代之后递增地更新。如决策步骤14所指示的,控制器4周期性地检查是否已达到对应于优化的突触权重的预定义的收敛条件。如果不是(步骤14处的“否”),则操作返回至步骤13并且训练针对另一组迭代继续。训练因此继续直到检测到收敛(步骤14处的“是”),并且然后操作终止。输入数据信号的表示然后被有效地存储在子组件的经训练的突触权重中。
39.在图2的步骤12中,可以从snn的未指派给任何其他子组件的自由神经元池中将神经元指派给该子组件。神经元可以在snn中以所有对所有的方式连接,并且取决于从分类器3输出的相关性类别,可以从池中指派多个神经元,并且激活突触来配置组件。在一些实施例中,神经元可以经由仅在用于组件形成的预定义块内的所有对所有连接来互连,并且在块之间具有少于所有对所有连接。可以通过基于相关性类别输出来激活一个或多个块中的所有神经元或神经元子集之间的突触连接来配置组件,其中,块中的任何“未使用的”神经元被指派给自由神经元池以用于后面的组件。如以下详述的,优选实施例还可以将现有子组件的神经元指派给新子组件。通常,snn 2中的连接性可以被调整为适合于给定的应用,并且子组件可以以任何期望的方式被配置,使得子组件中的神经元的数量随着将被存储的数据信号的较高相关性而增加。
40.上述方法实现了在snn 2中存储数据信号的相关性感知学习。神经元被动态地指派给子组件,使得更相关的数据信号被更大的子组件存储,从而改善这些信号被存储并随后被snn 2召回的保真度。控制器4可以通过激活适当的子组件的神经元来召回所存储的数据信号,由此该子组件输出所存储的数据信号,如以下更详细描述的。
41.在优选实施例中,分类器3包括另外的snn。图3示出了基于snn的分类器的一个实例。如在此示意性地示出的,snn 20包括经由突触连接与输出神经元集合互连的输入神经元集合。在图中由虚线表示的这些突触连接是兴奋性连接,其中突触输出信号增强突触后输出神经元(增加其膜电位)。输出神经元经由如图中的实线所指示的抑制性突触连接来互连。在这些连接中,突触输出信号抑制突触后输出神经元(降低其膜电位)。如上所述在尖峰信号中编码的输入元数据被提供给snn 20的输入神经元。编码元数据项(例如,以键值对表示的值)的尖峰信号(在该示例中,经由值到输入神经元的一对一映射)映射到输入神经元。
由输入神经元生成的尖峰信号经由兴奋性突触被中继到输出神经元,并且突触可塑性经由学习规则(例如,stdp规则)来实现,以基于神经元活动来修改突触权重。输出神经元基于来自输入神经元的经累加的输入来生成输出尖峰信号。
42.在snn 20的训练期间,输入元数据包括标签,该标签指示针对与元数据相关联的数据信号的用户定义的分类,该分类对应于相关性类别。该标签用于训练阶段中的监督教学。具体而言,该标记用于生成教学信号,该教学信号调制输出神经元连接的抑制性权重,以使得特定输出神经元(或输出神经元组)对于特定类别更加活跃。在该示例中,一个输出神经元被指派给每个类别,并且经由“胜者全得”方法来执行分类,由此激发最多的输出神经元指示与输入元数据相关联的类别。使用训练数据集来训练snn,将元数据的示例从该训练数据集连续地提供给snn,并且基于相关联的类别标签来渐进地修改突触权重,直到达到所期望的分类准确度。在训练之后,新的(未看见的)元数据可被提供给snn的输入神经元。然后,指派给相关联的数据信号的类别由snn输出信号中的尖峰频率来指示,这里由响应于输入元数据而激发最多的输出神经元来指示。基于一些用户定义的相关性策略,例如,通过从与所讨论的应用最不相关到最相关对类别进行排序,向类别指派相关度。然后,如上所述,相关性类别被用于控制用于数据存储的组件形成。
43.尽管图3中示出了简单的两层网络,但snn可用各种方式来配置以执行分类操作,并且可包括输入神经元与输出神经元之间的附加内部(隐藏)神经元层。输出神经元组可被指派给每个类别,其中计算每组的平均活动以确定该输出类别。图4示出了snn分类器25包括多个隐藏神经元层和单个输出神经元的另一示例。这里,输出类别由单个输出神经元的尖峰频率v指示。可以在训练过程中定义类别,使得尖峰频率v的不同范围或值映射到不同的相关性类别,例如,其中v的值越高,表示相关性越高。可以设想许多其他snn配置来执行分类过程。此外,虽然有监督的学习是优选的,但是训练可以使用无监督的学习过程,其中,在没有元数据标签的情况下,基于训练元数据中的相关性来执行分类,其中相关性被指派给所得到的分类,如先前描述的。
44.现在将更详细地描述优选实施例的结构和操作。图5是本实施例中的存储装置的示意性表示。装置30包括:第一存储snn 31;第二分类器snn 32;snn控制器33和存储器34。分类器snn 32基于如上所述的输入元数据执行数据信号分类。在此示例中,分类器snn被实现为图4的snn 25,其中,输出信号的尖峰频率v直接映射到相关性类别以便于解释简单。snn控制器33包括用于在存储模式下对分别提供给snn 31和32的数据信号和元数据进行尖峰信号编码、并且还用于在召回模式下对存储snn 31输出的尖峰信号进行解码的功能。控制器33在存储和召回模式中控制存储snn 31的操作,在两种模式中控制snn的神经元/突触。控制器经由至snn 31的vm控制信号实现可见神经元集合(下文解释)在存储和召回期间的选择和激活,并经由至snn 31的突触控制信号实现突触控制以用于组件形成和训练。存储器34存储下文进一步讨论的由控制器33在存储和召回模式中使用的数据。
45.存储snn 31包括提供snn的输入/输出接口的多个“可见”神经元35以及多个隐藏神经元36。可见神经元35包括具有标识符vm的m个可见神经元集合,其中,m=1至m。可见神经元具有用于接收经编码的数据信号的输入,并经由突触权重与隐藏神经元36互连。隐藏神经元经由突触权重与其他隐藏神经元互连,并且隐藏神经元具有到可见神经元35的输入的输出突触连接。在该实施例中,snn 31提供可见和隐藏神经元的所有对所有连接性。然
而,一般而言,连接性的范围可从整个神经元组件的所有对所有连接性到部分连接性,例如,神经元的子组之间的所有对所有连接性,如给定应用所期望的。
46.在操作期间,在存储snn中配置的每个子组件包括可见神经元集合vm和隐藏神经元集合,如在图6中示意性地示出的。这示出了包括对应的可见神经元集合v1至v3和可变数量的隐藏神经元36的三个子组件s1至s3。子组件由如上所述的神经元之间的激活的突触连接来定义。活跃突触连接由图中的粗体虚线箭头示意性地表示。在所示的状态中,snn 31包括附加的、未使用的可见神经元集合v4至vm,以及当前未指派给任何子组件的自由神经元池38。到这些神经元的非活跃的突触连接在图中由灰色虚线箭头示意性地表示。在激活之前,可以将突触权重初始化为例如零或随机权重值。
47.snn 31的神经元根据以下神经元模型操作。神经元i的无噪声膜电位由下式给出:
[0048][0049]
其中:w
ij
是从神经元j到神经元i的突触权重,表示尖峰序列xk与内核α的卷积,其中,突触后内核是对于s≥0,权重适配内核是对于s≥0,其中,对于s<0两个内核都消失,并且u0表示静息电位。取决于无噪声膜电位u,通过随机尖峰来对噪声进行建模,即,神经元i在时间区间t处发射尖峰的概率是其膜电位u的函数ρ:
[0050]
p(xi(t)=1|ui(t))=ρ(ui(t)).
[0051]
图7表示在装置30中存储输入数据信号的方法的步骤。在步骤40中,控制器33接收数据信号和相关联的元数据。在该实施例中,控制器33对提供给分类器snn 32的元数据使用尖峰频率编码。此外,本实施例中的元数据包括(除了用于分类的元数据项之外)用于相关联的数据信号的唯一标识符(id)。在步骤41中,控制器33将尖峰信号中经频率编码的适当元数据项提供给分类器snn 32的输入神经元,并接收分类器输出信号,其中,当前尖峰频率v(t)指示数据信号的相关性类别。在时间t的分类器输出v(t)用于配置对应于时间t的子组件sm。在步骤42中,控制器33选择snn 31中的下一个未使用的可见神经元集合vm,并且在步骤43中,在存储器34中存储用于数据信号的数据元组{id;vm;v(t)}。在步骤44中,控制器将神经元指派给子组件sm,将突触控制信号提供给snn 31以基于分类器输出v(t)来配置子组件。在该实施例中,隐藏神经元以概率性方式从自由神经元池38中的隐藏神经元以及潜在地还在已经在snn 31中配置的另一子组件中的隐藏神经元被指派给该子组件,该另一子组件存储先前数据信号。特别地,在时间t将自由的隐藏神经元ni指派给新形成的子组件sm的概率是分类器输出v(t)的函数ζ1:
[0052]
p(ni(t)∈sm|v(t))=ζ1(v(t)).
[0053]
这里选择函数ζ1,使得更相关的数据信号被存储在更大的子组件中。例如,可将ζ1选择为尖峰发放速率v(t)的单调递增函数。此外,隐藏神经元ni(现有子组件sq的成员)在时间t被指派给新形成的子组件sm的概率是当前分类器输出v(t)和在形成sq的时间tq的分类器输出v(tq)的函数ζ2,(tq<t):
[0054]
p(ni(t)∈sm|ni(t-1)∈sq,v(t),v(tq))=ζ2(v(t),v(tq)).
[0055]
可以基于该子组件的数据元组{id;vm;v(t)}中的标识符vm从存储器34中检索该子
组件的分类器输出v(tq)。因此,根据分类器snn 32的当前尖峰发放速率和从先前数据信号的元数据中生成的分类器输出信号中的尖峰发放速率v(tq),神经元从存储先前数据信号的另一子组件被概率地指派给新子组件。执行该操作,使得存储更相关数据信号的组件比存储较不相关信号的组件保留更多数量的神经元。例如,该函数ζ2可以被选择为:单调地随着v(t)增大并且单调地随着v(tq)减小;或者单调地随着差值v(t)-v(tq)增大,其中,该差值大于零,否则ζ2=0。可以基于指数函数、s形函数或许多其他函数来构造函数ζ1和ζ2,以实现指定的目标。
[0056]
返回图7,在步骤45中,控制器启动针对子组件sm的突触权重的训练过程。在该实施例中,控制器33对提供给snn 31的数据信号使用尖峰时间编码。控制器激活可见神经元集合vm,使它们在几个连续时间段上同时发放尖峰以提供数据信号的开始序列。然后,编码该数据信号的尖峰信号被提供给神经元vm,由此概率性尖峰序列在该子组件中传播。尖峰信号被迭代地提供给神经元vm以用于一批迭代。在步骤46中,控制器检查该批次是否已经完成,并且如果未完成,则操作返回到步骤45。在步骤46处完成批次时,操作行进至步骤47,在步骤47中,控制器33激活子组件sm以召回到目前为止存储的数据信号。此处,控制器激活可见神经元vm以生成初始开始序列。在操作周期之后,表示所存储的数据信号的尖峰信号在对可见神经元vm的输入处被再现。在步骤48中,控制器比较用于数据信号的召回的尖峰序列与目标(即,原始输入)尖峰序列,并且在步骤49中判定是否已经达到收敛条件。如果否,则操作进行至步骤50,其中控制器49根据训练算法更新该子组件的突触权重。操作然后返回到步骤45以进行进一步的训练迭代。当在步骤49处检测到收敛时,经训练的突触权重被优化以用于数据信号在子组件sm中的准确存储。
[0057]
在该实施例中,snn 31中的训练涉及调整子组件中的nv个可见神经元和nh个隐藏神经元之间和之中的突触权重w
ii
,以最小化输入数据信号和存储在子组件中的数据信号之间的kullback-leibler(kl)散度:
[0058][0059]
其中p

(v)和pw(v)分别表示可见神经元vm的尖峰序列的目标分布和模型分布。特别地,可使用最小化kl散度的上限的学习规则经由分批随机梯度下降方法来执行最小化。假定子组件中的每个神经元的激发在给定过去的情况下独立于其他神经元中的活动,则可见(v)和隐藏(h)尖峰序列的概率可被因子分解为:
[0060]
pw(x)=pw(v,h)=rw(v|h)qw(h|v),
[0061]
其中
[0062]
以及
[0063][0064]
该分批随机梯度下降算法然后被表示为:
[0065]
[0066]
其中,η、β和是正常数。在图7的步骤50中,相应地计算突触权重w
ij
的更新δw
ij

[0067]
上述实施例提供了用于snn中的相关性感知存储的高度高效的系统。存储更相关的数据信号的子组件包括并保持比存储更不相关的信号的子组件更多的神经元,从而提高了存储相关信号的保真度并且还降低了这些信号被“遗忘”的可能性,因此提供了改进的信号召回。具有从现有组件指派的神经元的子组件的动态配置允许在自由神经元池被耗尽的情况下继续进行组件形成并且可以附加地加强存储更相关信号的组件。snn是可随时间重新配置的,从而允许网络随着新数据信号被存储而演进并且根据相关性被适当地调整以适应所有数据信号。因此,该系统基于相关性在所有数据信号中提供存储容量的高效分配,其中召回的保真度针对更相关的信号被优先化。可以设想实施例,其中相关性类别至少部分地基于预期的存储持续时间,其中较高的相关性指示较长的持续时间。可能较早被“遗忘”的较不相关的信号将被较早地检索并且可以被可靠地存储在较小的子组件中。然后可以经由子组件的动态配置针对所有数据信号实现召回的可靠保真度。
[0068]
图8示出了装置30中的数据信号召回的过程。在步骤60中,将存储的数据信号的唯一id提供给控制器33。在步骤61中,控制器访问存储器34以检索数据元组{id;vm;v(t)}中的标识符vm以用于输入id。在步骤62,控制器33随后激活该子组件的可见神经元vm,一般如图7的步骤47所描述的。只有所需子组件的神经元是活动的。该子组件因此输出在提供给控制器33的尖峰信号中的尖峰模式的绝对定时中编码的存储的数据信号。在步骤63,控制器解码尖峰信号,并在步骤64输出召回的数据信号。
[0069]
在召回期间,提供给控制器33的尖峰信号的可见活动模式被分布为pw(v)。由于用于学习期望模式的随机梯度算法收敛到kl散度界限的局部最小值,因此召回期间的权重变化的平均值为零。然而,权重变化的方差是非零的,因此发生扩散并且权重偏离最优设置。将“忘记”存储的模式所花费的时间估计为从所达到的kl散度极限的最小值漂移超过预定阈值所花费的时间。
[0070]
将看到,本发明的实施例提供了使用相关性感知学习来改进数据的存储和召回的高度高效的基于snn的存储系统。此类基于snn的存储系统提供比常规冯诺依曼架构显著更高的能量效率,从而促进在包括用于iot(物联网)的边缘计算技术的广泛范围的应用中的部署。
[0071]
应当理解,可以对上述示例性实施例进行许多改变和修改。作为示例,数据/元数据可以其他方式在提供至snn的尖峰信号中的尖峰的出现中被编码。其他实施例可采用尖峰时间和尖峰频率编码方案中的一个或不同组合。相关性类别可以经由分类器输出信号中的尖峰的出现以各种方式来指示。分类器输出还可以被转换成代表用于控制组件配置的相关性类别的任何信号。在开始存储操作之前,分类器本身可以被完全地或部分地训练。可以设想实施例,其中,分类器训练在组件形成期间,例如,基于存储在snn中的数据信号的元数据中包括的标签而继续。其他神经元模型和训练方案也可用于神经元实现和snn训练。
[0072]
通常,在本文中参照体现本发明的方法描述特征的情况下,可以在体现本发明的装置/计算机程序产品中提供相应的特征,反之亦然。流程图的步骤可以以与示出的顺序不同的顺序执行,并且一些步骤可以视情况同时执行。
[0073]
本发明的各种实施例的描述已经出于说明的目的而呈现,但并不旨在是详尽的或者限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变
化对本领域普通技术人员将是明显的。这里使用的术语被选择来最好地解释实施例的原理、实践应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1