可变精度神经形态学结构的制作方法

文档序号:16756186发布日期:2019-01-29 17:23阅读:238来源:国知局
可变精度神经形态学结构的制作方法

本申请要求于2017年7月20日提交的美国临时申请no.62/535,187和于2018年2月7日提交的美国非临时申请no.15/891,220的优先权和权益,在此通过引用并入其全部内容。

根据本发明的实施例的一个或多个方面涉及人工神经网络,并且更具体地,涉及可变精度神经形态学结构。



背景技术:

人工神经网络(或,如本文所使用的,简称“神经网络”)可以使用在计算上昂贵的数据处理(例如,包括大量的乘积累加(mac)运算)来执行机器学习和决策制定。这种计算成本可能导致处理缓慢,或者如果要提高速度的话,则会导致功耗和设备成本高。

因此,需要一种改进的人工神经网络。



技术实现要素:

本公开的实施例的方面针对于一种用于通过编程在神经网络中提供可变精度的神经形态学结构。逻辑突触前神经元形成为物理突触前人工神经元的可配置集合,逻辑突触后神经元形成为物理突触后人工神经元的可配置集合,并且逻辑突触前神经元通过逻辑突触连接至逻辑突触后神经元,每个逻辑突触包括物理人工突触的集合。逻辑突触的权重的精度可以通过改变每个逻辑突触前神经元中的物理突触前人工神经元的数量和/或通过改变每个逻辑突触后神经元中的物理突触后人工神经元的数量而被改变。

根据本发明的实施例,提供了一种神经网络,包括多个突触前人工神经元;多个突触后人工神经元;和多个人工突触,所述人工突触中的每个连接在所述突触前人工神经元的各个突触前人工神经元和所述突触后人工神经元的各个突触后人工神经元之间,所述人工突触中的每个具有各自的权重,所述突触前人工神经元中的每个包括各自的乘法电路,所述乘法电路可编程为按照从分别为a,2a,4a,...2n-1a的n个增益值的集合中选择的增益因子来放大其输出信号,其中n是大于1的整数并且a是常数,所述突触前人工神经元中的每个被编程为按照与其他突触前人工神经元不同的增益因子放大其输出信号,所述突触后人工神经元中的每个包括可编程为放大其输入信号的各自的乘法电路,并且所述突触后人工神经元中的每个被编程为按照与其它突触后神经元不同的增益因子放大其输出信号。

在一个实施例中,所述突触前人工神经元中的每个被配置为产生电压作为所述输出信号。

在一个实施例中,所述权重中的每个是电阻性元件的电导。

在一个实施例中,每个电阻性元件被配置为操作在以下之一:第一状态,其中所述电阻性元件具有第一电导;以及第二状态,其中所述电阻性元件具有与所述第一电导不同的第二电导。

在一个实施例中,每个电阻性元件是自旋转移力矩随机存取存储器单元(spin-transfertorquerandomaccessmemorycell)内的可编程电阻性元件。

在一个实施例中,所有权重都具有相同的第一电导,并且所有权重都具有相同的第二电导。

在一个实施例中,所述突触后人工神经元中的每个被配置为接收电流作为输入信号。

在一个实施例中,所述突触后人工神经元中的每个具有可编程为按照从分别为b,2nb,42nb,...2(m-1)nb的m个增益值的集合中选择的增益因子放大其输出信号,其中m是大于1的整数并且b是常数。

根据本发明的实施例,提供了一种神经网络,包括:多个逻辑突触前神经元;多个逻辑突触后神经元;和多个逻辑突触,所述逻辑突触前神经元的第一逻辑突触前神经元具有输入并且包括n个突触前人工神经元,n是大于1的整数,所述n个突触前人工神经元中的每个具有各自的输入,所述突触前人工神经元的所有输入连接至所述第一逻辑突触前神经元的输入,所述逻辑突触后神经元的第一逻辑突触后神经元具有输出并且包括:m个突触后人工神经元,m是大于1的整数;和求和电路,具有:连接到所述第一逻辑突触后神经元的输出的输出,以及多个输入,所述m个突触后人工神经元中的每个具有各自的输出,所述突触后人工神经元中的每个的输出连接到所述求和电路的多个输入中各自的输入。

在一个实施例中,所述n个突触前人工神经元中的每个包括各自的乘法电路,所述乘法电路可编程为按照从分别为a,2a,4a,...2na的n个增益值的集合中选择的增益因子放大其输出信号,其中a是常数。

在一个实施例中,所述m个突触后人工神经元中的每个包括各自的乘法电路,所述乘法电路可编程为按照从分别为b,2nb,42nb,...2(m-1)nb的m个增益值的集合中选择的增益因子放大其输出信号,其中b是常数。

在一个实施例中,所有突触前人工神经元的仅在其各自编程的增益因子方面不同。

在一个实施例中,所有突触后人工神经元仅在其各自编程的增益因子方面不同。

在一个实施例中,每个突触前人工神经元中的输入是数字输入;每个突触前人工神经元中的乘法电路是与所述突触前人工神经元的输入相连的数字乘法电路;并且,每个突触前人工神经元还包括数模转换器,所述数模转换器具有与所述数字乘法电路的输出相连的输入和与突触前人工神经元的输出相连的输出。

在一个实施例中,每个突触后人工神经元中的输出是数字输出;每个突触后人工神经元中的乘法电路是与所述突触后人工神经元的输出相连的数字乘法电路;并且每个突触后人工神经元还包括模数转换器,所述模数转换器具有连接到突触后人工神经元的输入的输入和连接到所述数字乘法电路的输入的输出。

在一个实施例中,所述第一逻辑突触后神经元还包括数字求和电路,所述数字求和电路具有m个输入,每个输入连接到所述m个突触后人工神经元的输出中的相应一个,以及输出,并且所述输出连接到所述第一逻辑突触后神经元的输出。

在一个实施例中,突触前人工神经元中的每个被配置为产生电压作为输出信号;每个逻辑突触包括多个人工突触,所述人工突触中的每个具有各自的权重,每个权重是电阻性元件的电导;和每个突触后人工神经元中的被配置为接收电流作为输入信号。

在一个实施例中,每个电阻性元件被配置为操作在以下之一:第一状态,其中所述电阻性元件具有第一电导;和第二状态,其中所述电阻性元件具有不同于第一电导的第二电导。

在一个实施例中,每个电阻性元件是自旋转移力矩随机存取存储器单元内的可编程电阻性元件。

根据本发明的实施例,提供了一种神经网络,包括:多个突触前人工神经元;多个突触后人工神经元;和用于形成多个连接的部件,每个连接在所述突触前人工神经元的各自的突触前人工神经元和所述突触后人工神经元的各自的突触后人工神经元之间,所述突触前人工神经元中的每个包括各自的乘法电路,所述乘法电路可编程为按照从分别为a,2a,4a,...2na的n个增益值的集合中选择的增益因子放大其输出信号,其中n是大于的整数且a是常数,所述多个突触前人工神经元中的每个被编程为按照与其它突触前人工神经元不同的增益因子放大其输出信号,所述突触后人工神经元中的每个包括各自的乘法电路,所述乘法电路可编程为放大其输入信号,以及所述突触后人工神经元中的每个被配置为按照与其它突触后人工神经元不同的增益因子放大其输出信号。

附图说明

参照说明书、权利要求书和附图,将认识和理解本发明的这些及其他特征和优点,其中:

图1是根据本发明的实施例的神经网络的一部分的框图;

图2a是根据本发明的实施例的与神经网络有关的等式;

图2b是根据本发明的实施例的与神经网络有关的等式;

图2c是根据本发明的实施例的与神经网络有关的等式;

图3a是根据本发明的实施例的神经网络的一部分的框图;

图3b是根据本发明的实施例的神经网络的一部分的框图;

图3c是根据本发明的实施例的突触(synapse)的几种配置的图;

图4是根据本发明的实施例的神经网络的一部分的框图;

图5是根据本发明的实施例的神经网络的一部分的框图;

图6是根据本发明的实施例的神经网络的一部分的框图;

图7a是根据本发明的实施例的人工神经元的框图;

图7b是根据本发明的实施例的人工神经元的框图;以及

图7c是根据本发明的实施例的逻辑神经元的框图。

具体实施方式

以下结合附图阐述的详细描述旨在作为对根据本发明提供的可变精度神经形态学结构的示例性实施例的描述,并且不旨在表示可构建或利用本发明的唯一形式。该描述结合所示实施例阐述了本发明的特征。然而,应当理解的是,相同或等同的功能和结构可以通过不同的实施例来实现,这些实施例也意图包含在本发明的精神和范围内。如本文其他地方所表示的,相同的附图标记旨在表示相同的元件或特征。

参考图1,在一个实施例中,神经网络包括通过多个人工突触115连接到多个突触后人工神经元110的多个突触前人工神经元105。如本文所使用的,“人工神经元”是具有输入和输出的元件,并且可以被配置为在输出处生成作为所述输入的非线性函数(其可以被称为“激活函数”或“传递函数”)的信号。突触前人工神经元105中的每一个可以生成电压作为输出,并且突触后人工神经元110中的每一个可以接收电流作为输入,该电流可以是通过人工突触115连接到的突触前人工神经元105的输出的加权和。每个人工突触115是突触前人工神经元105的输出和突触后人工神经元110的输入之间的连接。每个人工突触115可以是电阻器或其他电阻性元件。在这样的实施例中,加权和的权重可以是每个人工突触115的电导(即,电阻的倒数),以便例如由突触后人工神经元110接收的总电流可以是与其连接的所有突触前人工神经元105的对于每个这样的突触前人造神经元105的(i)突触前人工神经元105的输出(电压)与(ii)人造突触115的权重(即电导)的乘积之和(在图2a的等式中示出)。

图1示出了可包括级联连接的多个层的神经网络的一层(第l层)。例如,图1中所示的突触后人工神经元110中的每个可以具有通过额外的人工突触115连接到其他人工神经元的输出,并且因此可以作为后续层中的突触前人工神经元105。如此,可以通过标识层的上标(l)以及标识与人工突触115(与权重对应的)相连的突触前人工神经元105和突触后人工神经元110的第一和第二下标(i和j)来标识每个权重

突触后人工神经元110中的每个可以在其输入处具有诸如图2b的跨阻放大器或图2c的积分器的电路。后者可以用于其中信号是脉宽调制的实施例中(例如,较长持续时间的电压脉冲,导致较长持续时间的电流脉冲用于信令较大值,并且较短持续时间的电压脉冲,导致较短持续时间的电流脉冲用于信令较小值)。

诸如图3a那样的修正电路可以用于使用正电导的电阻性元件来实现负权重。在这样的实施例中,突触前人工神经元105中的每个的输出可以是承载差分电压信号的一对导体(即,一个导体上的正电压和另一导体上具有相同绝对值的负电压)。在该实施例中,人工突触115的权重可以是形成人工突触115的两个电阻性元件的电导之间的差。在另一实施例中,如图3b所示,突触前人工神经元105中的每个具有作为单个导体上的电压的输出,并且突触后人工神经元110中的每个具有输入,该输入是被配置为差分输入的一对导体。突触后人工神经元110中的每个的差分输入电路可以例如使用两个图2b的跨阻放大器来实现,两个跨阻放大器的输出连接到差分放大器。图3c示出了可以通过使用一个或两个电阻性元件实现权重的三种配置,该三种配置分别对应于图1、图3a和图3b的实施例。

在一些实施例中,每个权重是可控的或可编程的以在任何时间以两种状态(例如,高阻态和低阻态)之一进行操作。例如,每个这样的权重可以被实现或构造为自旋转移力矩随机存取存储器(stt-ram)单元(例如,基于磁性隧道结(mtj)器件的stt-ram单元)内的可编程电阻性元件。相应地,在诸如图1的实施例中,每个人工突触115可以在任何时间以两种状态之一操作,并且在诸如图3a或图3b的实施例中,每个人工突触115可以在任何时间以三种状态之一操作(四种状态是可能的,但可能有利的是,避免使用其中两种可编程电阻性元件均处于低电阻状态的状态的使用,因为该状态可能导致在突触后人工神经元110处的相同输入信号,而两个可编程电阻性元件均处于高阻态的状态消耗更多电流)。

具有相对低精度(例如,具有诸如图3c所示的两个或三个状态)的人工突触115可以在某些情况下(例如,当用于某些应用时)为人工神经网络(或简称为“神经网络”)提供可接受的性能。在其他情况下(例如,当用于其他应用时),如果使用了更高的精确度权重(其中每个权重都可编程以在更多数量的状态中的任何一种状态下进行操作),则可能有显著更好的性能。

参考图4,在一些实施例中,逻辑突触前神经元405、逻辑突触后神经元410和逻辑突触415可以由(物理)突触前人工神经元105、(物理)突触后人工神经元110和(物理)人工突触115的集合形成。在这样的实施例中,可以调整突触前人工神经元105、突触后人造神经元110和人工突触115的数量以实现多个精确度中的任何一个(例如,分别在图5和图6的相关实施例中的4位或6位)。例如,在图4的实施例中,逻辑突触前神经元405中的每个包括两个突触前人工神经元105,逻辑突触后神经元410中的每个包括两个突触后人工神经元110,并且逻辑突触415中的每个包括四个人工突触115。逻辑突触前神经元405、逻辑突触后神经元410和逻辑突触415可以(如突触前人工神经元105、突触后人工神经元110和人工突触115)是人工的(即,不是生物的),但是为了简洁起见,可以省略限定词“人工”。每个逻辑突触前神经元405中的突触前人工神经元105的输入可以连接在一起(形成逻辑突触前神经元405的输入),并且每个逻辑突触后神经元410中的突触后人工神经元110的输出可以被加和在一起(形成逻辑突触后神经元410的输出)。

参考图5,在一个实施例中,包括四个突触前人工神经元105、二十四个人工突触115和六个突触后人工神经元110的层可以通过适当的编程被配置以作为具有两个逻辑突触前神经元405、三个逻辑突触后神经元410和六个逻辑突触415的层进行操作。突触前人工神经元105中的每个包括各自的乘法器,该乘法器可被编程以按照可编程增益因子放大人工神经元的输出信号或输入信号(分别在突触前人工神经元105或突触后人工神经元110的情况)。例如,在第一逻辑突触前神经元405a中,第一和第二突触前人工神经元105具有被编程的乘法器(作为用于配置层的编程操作的结果)以将这些突触前人工神经元105的输出信号分别放大1和2倍(如图5中的标签“x1”和“x2”所示)。逻辑突触前神经元405中的另一个中的第一和第二突触前人工神经元105被类似地编程。而且,在第一逻辑突触后神经元410a中,第一和第二突触后人工神经元110具有被编程的乘法器以将这些突触后人工神经元110的输入信号分别放大1和4倍(如图5中的标签“x1”和“x4”所示)。第一逻辑突触415a包括具有权重的四个人工突触115,该权重被进一步(通过逻辑突触前神经元405和突触后人工神经元110中的乘法器)分别乘以如下增益因子:1×1(即,1,对于权重),2×1(即,2,对于权重),1×4(即,4,对于权重)和2×4(即,8,对于权重)。因此,第一逻辑突触415a具有可编程有4位精度的权重每个乘法器可以在(数字或模拟)硬件中实现为乘法电路,或者它可以在软件或固件中实现。

图6示出了与图5所示相同的突触前人工神经元105、突触后人工神经元110和人工突触115的集合,其被配置为替代形成其中每个逻辑突触415具有6位精度的可编程的权重的层。通常,对于其中每个逻辑突触前神经元405包括n个突触前人工神经元105并且每个逻辑突触后神经元410包括m个突触后人工神经元110的层,突触前人工神经元105中的每个乘法器可以按照从分别为a,2a,4a,...2n-1a(其中a是常数)的n个增益值的集合中选择的增益因子来放大输出信号,并且突触后人工神经元110中的每个乘法器可以按照从分别为b,2nb,42nb,...2(m-1)nb(其中b是常数)的m个增益值的集合中选择的增益因子来放大输入信号。逻辑突触前神经元405的每个突触前人工神经元105用于对输出信号放大的各个增益因子可以不同于逻辑突触前神经元105的每个其它突触前人工神经元405对其各自的输出信号放大的增益因子。类似地,逻辑突触后神经元410中的每个突触后人工神经元110对输入信号放大的各个增益因子可以不同于逻辑突触后神经元410的每个其他突触后人工神经元110对其各自的输入信号放大的增益因子。

在一些实施例中,在给定的层中,所有突触前人工神经元105可以是相同的(除了它们各自乘法器的各个增益因子(即,它们可以仅在这些增益因子方面不同)),所有突触后人工神经元110可以是相同的(除了它们各自乘法器的各个增益因子(即,它们可以仅在这些增益因子方面不同)),并且所有突触可以是相同的(除了各自编程的权重)。如此,可以制造其中每层具有可在制造后通过适当的编程来选择位精度的权重的神经网络。这样的神经网络可以被认为是具有神经形态学结构。

参考图7a,在一些实施例中,每个突触前人工神经元的输入是数字输入,每个突触前人工神经元的乘法器是连接到突触前人工神经元的输入的数字乘法器,并且每个突触前人工神经元还包括数模转换器,该数模转换器具有与数字乘法器的输出相连的输入和与突触前人工神经元的输出相连的输出。在这样的实施例中,可编程增益因子可以被实现为馈送乘法器的输入之一的数字寄存器。突触前人工神经元的激活函数(如果它包括一个的话),可以级联连接在乘法器之前或之后(作为数字激活函数)或在数模转换器之后(作为模拟激活函数)。

参考图7b,在一些实施例中,每个突触后人工神经元的输出是数字输出,每个突触后人工神经元的乘法电路是与突触后人工神经元的输出相连的数字乘法电路,并且每个突触后人工神经元还包括模数转换器,该模数转换器具有与突触后人工神经元的输入相连的输入和与数字乘法电路的输入的相连的输出。在这样的实施例中,可编程增益因子可以被实现为馈送乘法器的输入之一的数字寄存器。突触后人工神经元的激活函数(如果它包括一个的话),可以级联连接在乘法器之前或之后(作为数字激活函数)或在模数转换器之前(作为模拟激活函数)。

参考图7c,每个逻辑突触后神经元410中的突触后人工神经元110的输出的求和可以类似地由数字求和电路执行。可以通过将逻辑突触后神经元410的输出连接到后续层的逻辑突触前神经元405的输入来将神经网络的多个层级联在一起。

鉴于上述内容,一些实施例提供了用于通过编程在神经网络中提供可变精度的神经形态学结构。逻辑突触前神经元形成为物理突触前人工神经元的可配置集合,逻辑突触后神经元形成为物理突触后人工神经元的可配置集合,并且逻辑突触前神经元通过逻辑突触连接至逻辑突触后神经元,每个逻辑突触包括物理人工突触的集合。逻辑突触的权重的精度可以通过改变每个逻辑突触前神经元中的物理突触前人工神经元的数量和/或通过改变每个逻辑突触后神经元中的物理突触后人工神经元的数量来改变。

这里提到的数字电路中的每个可以是处理电路或可以是其一部分。术语“处理电路”在本文用于表示用来处理数据或数字信号的硬件、固件和软件的任何组合。处理电路硬件可以包括例如专用集成电路(asic)、通用或专用中央处理单元(cpu)、数字信号处理器(dsp)、图形处理单元(gpu)和可编程逻辑器件(诸如现场可编程门阵列(fpga)。在处理电路中,如本文所使用的,每个功能由被配置为执行该功能的硬件(即,硬布线)执行,或者由被配置为运行存储在非暂态存储介质中的指令的更通用的硬件(诸如cpu)执行。处理电路可以制造在单个印刷电路板(pcb)上或分布在多个互连的pcb上。处理电路可以包含其他处理电路;例如处理电路可以包括在pcb上互连的两个处理电路,fpga和cpu。

应该理解,尽管在本文可以使用术语“第一”、“第二”、“第三”等来描述各种元件、组件、区域、层和/或部分,但这些元件、组件、区域、层和/或部分不应受这些术语的限制。这些术语仅用于区分一个元件、组件、区域、层或部分与另一元件、组件、区域、层或部分。因此,在不脱离发明构思的精神和范围的情况下,本文讨论的第一元件、组件、区域、层或部分可以被称为第二元件、组件、区域、层或部分。

如本文所使用的,除非上下文清楚地另有所指,否则单数形式的“一”和“一个”还旨在包括复数形式。将进一步理解的是,术语“包括”和/或“包含”当在本说明书中使用时,指明存在所陈述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整体、步骤、操作、元件、部件和/或它们的集合。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和所有组合。诸如“至少一个”之类的表达当在元素列表之前时,修饰整个元素列表而不修饰列表的单个元素。此外,当描述发明构思的实施例时,“可以”的使用指代“本发明的一个或多个实施例”。而且,术语“示例性”旨在指代示例或说明。如本文所使用的,术语“使用”可以被认为与术语“利用”同义。

应该理解,当元件或层被称为在另一元件或层“上”、“连接到”、“耦接到”另一元件或层、或与另一元件或层“相邻”时,它可以直接地在另一元件或层上、连接到、耦接到该另一元件或层、或与该另一元件或层相邻,或者可以存在一个或多个中间元件或层。相反,当元件或层被称为“直接地在......上”、“直接连接到”、“直接耦接到”或“紧邻”另一元件或层时,不存在中间元件或层。

尽管可变精度神经形态学结构的示例性实施例已经在本文中具体描述和示出,但是对于本领域技术人员而言,许多修改和变化将是显而易见的。因此,要理解的是,根据本发明的原理构造的可变精度神经形态学结构可以以本文具体描述的之外的方式来体现。本发明还限定在所附权利要求及其等同物中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1