一种神经形态计算装置的制作方法

文档序号:31124527发布日期:2022-08-13 02:46阅读:93来源:国知局
一种神经形态计算装置的制作方法

1.本发明涉及神经元计算领域,尤其涉及一种神经形态计算装置(或称为神经元计算机)。


背景技术:

2.1936年,英国数学家艾伦
·
图灵提出一种抽象的计算模型来代替人类进行数学运算,该计算模型被称为图灵机(turing machine)。图灵机非常简单,由三部分组成:(1)无限长的纸带用于保存数据内容、(2)读写头用于读取纸带内容并更新纸带内容、(3)控制器按照特定程序规则决定读写头的具体操作方式。
3.经过近100年的发展,如今,图灵机已成为大多数现代计算机系统的基础计算模型,从微型嵌入式计算机到大型超级计算机,所有现代计算机系统都属于图灵机。图灵机计算模型的核心功能是实现数学运算,数学运算的规则以程序的形式存储,因此,图灵机是一种“按照程序规则更新数据”的计算系统。
4.神经网络是一种模拟人类大脑神经系统的数学抽象模型,可以通过把神经网络数学模型分解成图灵机可运行程序的方式,在图灵计算机中实现神经网络模型的运算。然而,图灵计算机“按照程序规则更新数据”的计算方式会引入大量程序控制等额外操作,计算效率低下。
5.除了传统图灵计算机方案,近年来也出现一些神经形态专用计算方案,例如ibm truenorth、intel loihi以及清华tianjic等。
6.现有神经形态计算方案,在物理上构建了一个由神经元及其互连组成的计算系统,例如,ibm truenorth是由1百万个神经元相互连接而成的神经形态计算系统;清华大学tianjic是由4万个神经元相互连接而成的神经形态计算系统。
7.现有计算方案的一大缺陷是拥有有限的神经元规模,大于物理神经元规模的神经网络无法在该神经形态计算系统中运行,只能通过扩展的方式来运行(例如合并多个计算系统来实现更大规模的计算)。
8.由于人脑神经系统的规模十分庞大,人类大脑约由1000亿个神经元组成,每个神经元包含1000~10000个突触。如果按照现有技术方案实现人脑规模神经形态计算系统,相关系统将变得十分庞大而几乎不可能实现。


技术实现要素:

9.为了解决上述问题,本发明提出一种神经形态计算装置来实现规模不受限的神经网络计算。
10.为实现上述目的,本发明提供了一种神经形态计算装置,包括神经元状态存储器、神经元互连存储器、控制器、物理神经元、外部神经元激励输入单元和外部神经元激活输出单元,
11.所述神经元状态存储器和所述神经元互连存储器共同实现神经网络的数据化存
储,神经网络中的每个神经元对应一个虚拟神经元,其中,所述神经元状态存储器用于保存每个虚拟神经元的神经元状态信息,所述神经元互连存储器用于保存每个虚拟神经元的神经元互连信息;
12.所述物理神经元用于实现多种神经元模型的计算;
13.所述控制器用于:周期性地从神经元互连存储器读取虚拟神经元的神经元互连信息,根据虚拟神经元的先后顺序,依次配置物理神经元内的神经元模型为对应虚拟神经元,启动物理神经元计算直到所有虚拟神经元遍历完成;
14.所述外部神经元激励输入单元用于连接外部神经网络系统,接收并存储来自外部神经元的激励信息,并最终被物理神经元所使用;
15.所述外部神经元激活输出单元用于连接外部神经网络系统,接收并存储来自内部神经元的激活信息,并最终被外部神经网络系统所使用。
16.进一步的,所述物理神经元包括虚拟神经元状态缓存模块、虚拟神经元状态读写模块、虚拟神经元控制模块、突触计算模块、树突计算模块以及胞体计算模块;其中,所述虚拟神经元控制模块用于接收来自所述控制器的配置信息,并根据配置信息配置所述虚拟神经元状态读写模块为相应的互连模式,配置突触计算模块、树突计算模块以及胞体计算模块为相应的功能模式;
17.在配置完成后,所述虚拟神经元状态读写模块、所述虚拟神经元状态缓存模块、所述突触计算模块、所述树突计算模块和所述胞体计算模块组成数据计算通路,所述虚拟神经元状态读写模块从所述神经元状态存储器读取输入神经元状态信息,从所述外部神经元激励输入单元读取激励输入,并把输入神经元状态和激励输入存储在所述虚拟神经元状态缓存中;
18.所述突触计算模块从所述虚拟神经元状态缓存中获取计算所需数据,按照功能模式完成突触计算,并把计算结果传递给所述树突计算模块;所述树突计算模块获得数据后,按照功能模式完成树突计算,并把计算结果传递给所述胞体计算模块;所述胞体计算模块获得数据后,按照功能模式完成胞体计算,并把计算结果传递给所述虚拟神经元状态读写模块;最后,所述虚拟神经元状态读写模块获得来自胞体计算的计算结果,并把该计算结果更新到所述神经元状态存储器或所述外部神经元激活输出单元。
19.进一步的,神经元的状态指神经元模型的生物状态,包含如下信息:(1)轴突脉冲信息,代表某个时刻神经元是否被激活输出0、1或-1的脉冲;(2)膜电位,代表某个时刻神经元的膜电位;(3)突触权重,代表神经元间互连的权重。
20.进一步的,所述虚拟神经元的先后顺序以输入神经元是否完成更新为标准,也即所有输入神经元都完成更新的神经元先进行计算。
21.进一步的,所述神经形态计算装置动态更新神经网络中所有神经元的状态数据,其实现方法为:在正常工作状态下,神经网络中所有神经元的状态数据以δt时间间隔周期性更新:外部输入神经元以δt时间间隔发送激励信息;在δt时间间隔内,神经网络所有神经元的状态完成更新;最终,以δt时间间隔输出激活信息给外部输出神经元。
22.进一步的,所述激励信息包括轴突脉冲信息和膜电位信息;所述激活信息包括轴突脉冲信息和膜电位信息。
23.进一步的,所述神经元状态存储器和所述神经元互连存储器为同一存储器的两个
功能区块,或为两个独立的存储器。
24.进一步的,所述神经元状态存储器、神经元互连存储器、控制器、外部神经元激励输入单元和外部神经元激活输出单元和所述物理神经元通过系统总线连接。
25.进一步的,所述神经形态计算装置包括一个或多个物理神经元。
26.进一步的,所述神经形态计算装置包括一个或多个控制器,或一个多核控制器。
27.本发明实现了如下技术效果:
28.本发明的神经形态计算装置(简称神经元计算机)是一种基于神经网络数据化存储,以δt时间间隔为周期,完成外部神经元激励输入、神经元状态更新以及外部神经元激活输出的计算系统,具备神经元存储与神经元计算所分离、神经元状态与神经元互连所分离以及物理神经元自主运算等特点,可以实现灵活、通用和任意规模神经网络的计算。
附图说明
29.图1是现有技术的神经网络模型;
30.图2是本发明的神经网络的数据化存储示意图;
31.图3是本发明的神经网络数据的动态更新示意图;
32.图4是本发明的神经元计算机的功能框图;
33.图5是本发明的物理神经元内部结构框图。
具体实施方式
34.为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
35.现结合附图和具体实施方式对本发明进一步说明。
36.本发明提出一种神经形态计算装置(简称神经元计算机)。神经元计算机的核心功能是实现神经网络的计算,神经网络以数据的方式存储,因此,神经元计算机是一种“按照神经网络结构更新神经元状态”的计算系统。
37.所述神经网络指人类大脑神经系统的数学抽象模型,该神经网络模型由相互连接的神经元组成,一个典型的神经网络如图1所示。
38.在神经元计算机中,所述神经网络被数据化存储。神经网络的数据化是指把神经网络中神经元的状态以及神经元间的互连按照特定的数据格式进行表达。其中,神经元的状态指神经元模型的生物状态,一般来讲主要包含几类信息:(1)轴突脉冲信息,代表某个时刻神经元是否被激活输出0、1或-1的脉冲;(2)膜电位,代表某个时刻神经元的膜电位;(3)突触权重,代表神经元间互连的权重。神经元间的互连指不同神经元间的输入输出连接关系。
39.对神经网络实现数据化表达后,该数据通常存放在存储器中,神经元的状态存储于神经元状态存储器中,神经元间的互连存储于神经元互连存储器中,如图2所示。
40.在实际应用中,神经元状态存储器和神经元互连存储器可以是同一存储器的两个存储区块,也可以是不同的存储器。
41.在神经元计算机中,神经网络以数据化方式存储,静态的来看,该数据不仅表达完
整神经网络的结构与互联,还代表该神经网络在某个t时刻的实时状态,例如在某个t时刻所有神经元的轴突脉冲信息以及膜电位等。
42.神经元计算机的核心功能是动态更新神经网络中所有神经元的状态数据,如图3所示,在正常工作状态下,神经网络中所有神经元的状态数据以δt时间间隔周期性更新:外部的输入神经元以δt时间间隔发送输入激励信息;在δt时间间隔内,神经网络所有神经元的状态完成更新;最终,以δt时间间隔输出激活信息给外部的输出神经元。
43.神经元计算机可以实现基于数据化存储的神经网络计算任务,也即在δt时间间隔内完成外部神经元的激励输入、神经元状态的更新以及外部神经元的激活输出。
44.我们给出神经元计算机的定义如下:神经元计算机是一种基于神经网络数据化存储,以δt时间间隔为周期,完成外部神经元激励输入、神经元状态更新以及外部神经元激活输出的计算系统。
45.实施例1
46.在本实施例中,神经元计算机由六部分组成,包括神经元状态存储器10、神经元互连存储器20、控制器30、物理神经元40、外部神经元激励输入单元50和外部神经元激活输出单元60。如图4所示。
47.神经元状态存储器10和神经元互连存储器20共同实现神经网络的数据化存储,其中,神经元状态存储器10保存神经元的生物状态(神经元状态信息),神经元互连存储器20保存神经元间的输入输出连接关系(即神经元互连信息)。神经元状态存储器10和神经元互连存储器20中所描述的神经元被称为虚拟神经元。神经网络中的每个神经元对应一个虚拟神经元,其中,神经元状态存储器10用于保存每个虚拟神经元的神经元状态信息,神经元互连存储器20用于保存每个虚拟神经元的神经元互连信息。理论上,神经元计算机所能处理的神经网络的规模仅受限于上述存储器的容量。
48.物理神经元40是神经元计算机的核心计算部件。物理神经元40是一个独立的神经元计算模块,可实现多种神经元模型的计算。当被配置为某种计算模式(对应某种神经元模型),物理神经元40可独立完成从神经元状态存储器10读取神经元状态、从外部神经元激励输入单元50读取激励输入、完成神经元模型所对应的计算、并最终把结果写出到神经元状态存储器10以更新神经元状态或写出到外部神经元激活输出单元60。
49.控制器30是神经元计算机的核心部件。以δt时间间隔为周期,控制器30从神经元互连存储器20读取虚拟神经元的神经元互连信息。根据虚拟神经元的先后顺序,依次配置物理神经元40内的神经元模型为对应虚拟神经元,启动物理神经元计算直到所有虚拟神经元遍历完成,即将神经网络模型的计算按步骤分成多个神经元计算,并按步骤将相应的神经元模型配置到物理神经元40中以执行相应的神经元计算。所述虚拟神经元的先后顺序以输入神经元是否完成更新为标准,也即所有输入神经元都完成更新的神经元先进行计算。
50.外部神经元激励输入单元50用于连接外部神经网络系统,其主要作用是接收并存储来自外部神经元的激励信息,如轴突脉冲信息或膜电位信息,并最终被物理神经元40所使用。
51.外部神经元激活输出单元60用于连接外部神经网络系统,其主要作用是接收并存储来自内部神经元的激活信息,如轴突脉冲信息或膜电位信息,并最终被外部神经网络系统所使用。
52.神经元计算机是一种神经元存储与神经元计算所分离的计算系统,存储与计算分离的一大优势是使得神经元计算机具备通用性与灵活性。一方面,神经元计算机所能处理的神经网络规模(神经元和神经元互连的数量)完全由存储器的容量决定,如果存储器的容量足够大,神经元计算机可以实现任意规模的神经网络计算。另一方面,神经元计算机的计算资源的规模仅决定神经网络系统的计算延迟,可以通过采用更大规模计算资源的神经元计算机来实现计算延迟的降低。
53.神经元计算机是一种神经元状态与神经元互连所分离的计算系统。神经元状态与互连分离的一大优势是使得物理神经元可实现任意虚拟神经元的计算,从而使得神经元计算机具备任意神经网络计算的通用性。其中,神经元互连以控制的形式决定物理神经元读取并更新哪些神经元状态数据,神经元状态以数据的形式被物理神经元读写。因此,通过不断更新物理神经元中有关神经元互连的相关控制逻辑,可使物理神经元改变神经元读取以及神经元更新的目标地址,从而实现任意虚拟神经元的计算。
54.神经元计算机通过神经元状态存储器保存神经网络系统中所有神经元的生物状态,通过神经元互连存储器保存神经网络系统中所有神经元的互连状态。神经元计算机以δt时间间隔周期性工作。在δt时间内,神经元计算机完成神经元状态存储器中所有神经元状态的更新:控制器读取神经元互连状态,依次配置物理神经元为对应虚拟神经元,物理神经元根据配置信息主动从状态存储器中获取数据,完成相应计算,并最终更新相应神经元的状态。
55.物理神经元40类似于通用计算机中的图像处理器gpu,神经元计算机包含一个或多个(包括2个)物理神经元40。控制器30相当于通用计算机中的通用处理器cpu,神经元计算机包含一个或多个(包括2个)控制器30,或一个多核控制器。和通用计算机相似,神经元状态存储器10、神经元互连存储器20、控制器30、物理神经元40、外部神经元激励输入单元50和外部神经元激活输出单元60之间通过系统总线(包括数据总线、地址总线和控制总线,如pci-e总线)连接,从而使多个物理神经元40可以共享神经元状态存储器10、神经元互连存储器20、外部神经元激励输入单元50和外部神经元激活输出单元60,并受单个或多个控制器30控制,以实现神经元的并行计算或分布式计算。
56.外部神经元激励输入单元和外部神经元激活输出单元均可以是由多个功能模块组成,以提供丰富的输入输出接口,支持模拟量信号和数字量信号的输入输出。外部神经元激励输入单元可以是图像传感器或动态传感器接收装置,用于接收外部传感器信号并转换成神经元激励信号。外部神经元激活输出单元可以是图像发送装置,用于把神经元激活输出信号转换成图像信号发送给外部系统。
57.在本实施例中,物理神经元40的内部结构如图5所示。
58.物理神经元40由虚拟神经元状态缓存模块401、虚拟神经元状态读写模块402、虚拟神经元控制模块403、突触计算模块404、树突计算模块405以及胞体计算模块406组成。
59.其中,虚拟神经元控制模块403接收来自控制器30的配置信息,配置虚拟神经元状态读写模块402为相应的互连模式,配置突触计算模块404、树突计算模块405和胞体计算模块406为相应的功能模式。
60.配置完成后,虚拟神经元状态读写模块402、虚拟神经元状态缓存模块401、突触计算模块404、树突计算模块405和胞体计算模块406组成数据计算通路。虚拟神经元状态读写
模块402从神经元状态存储器10读取输入神经元状态,从外部神经元激励输入单元50读取激励输入,并把输入神经元状态和激励输入存储在虚拟神经元状态缓存模块401中。
61.突触计算模块404从虚拟神经元状态缓存模块401中获取计算所需数据,按照功能模式完成突触计算,并把计算结果传递给树突计算模块405。树突计算模块405获得数据后,按照功能模式完成树突计算,并把计算结果传递给胞体计算模块406。胞体计算模块406获得数据后,按照功能模式完成胞体计算,并把计算结果传递给虚拟神经元状态读写模块402。最后,虚拟神经元状态读写模块402获得来自胞体计算的计算结果,并把该结果更新到神经元状态存储器10或外部神经元激活输出单元60。
62.突触计算模块404、树突计算模块405和胞体计算模块406的功能由神经元模型决定,例如,在某种神经元模型下,突触计算模块404实现数据与参数的乘法计算,树突计算模块405实现突触计算结果的累加,胞体计算模块406实现树突计算结果的上下限阈值激活。
63.尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1