掌桥专利:专业的专利平台
掌桥专利
首页

用于神经网络学习的突触阵列、运算电路及操作方法

文献发布时间:2024-04-18 19:58:26


用于神经网络学习的突触阵列、运算电路及操作方法

技术领域

本发明属于神经网络运算技术领域,更具体地,涉及一种用于神经网络学习的突触阵列、运算电路及操作方法。

背景技术

人工神经网络是一种应用类似于大脑神经突触联接的结构,它是一种模仿动物神经网络行为特征,进行信息处理的数学模型进行分布式并行信息处理的算法数学模型。在众多机器学习的算法中,神经网络的适用性广,鲁棒性强。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。

神经网络包括输入层、若干隐藏层和输出层,每层包括大量的神经元,每相邻两层之间的神经元通过突触进行连接,突触是神经网络中最多的处理元件,突触权重则为神经网络进行训练更新的重要参数。在突触器件方面,已有很多器件被报道如磁性存储器,相变存储器和忆阻器等。这其中,由于忆阻器非易失,易集成,低功耗以及可实现多位存储,是非常有前途的候选者。且忆阻器的模拟记忆功能类似于生物突触,其电导可以通过施加相对较大的电压偏置而连续改变,但在施加较小的偏压或无偏压时保持不变。

神经网络的监督学习是一个非常复杂的过程,其包括前向传播、反向传播和权重更新等步骤。目前,在搭建神经元网络学习运算硬件电路时,所采用的突触阵列多为单层结构,即单层交叉横杆阵列,如CN109460817B-一种基于非易失存储器的卷积神经网络片上学习系统,利用的基于忆阻器的单层交叉横杆阵列作为突触权重。这种突触阵列虽然结构简单,但是,在进行监督学习的反向传播和权重更新时,则需要借助大量的片外计算资源执行误差计算和权重更新量的计算,导致神经网络训练需要大量的计算资源,运算量大,运算速度慢且功耗高。

发明内容

针对现有技术的以上缺陷或改进需求,本发明提供了一种神经网络的突触阵列、运算电路及操作方法,其目的在于实现神经网络学习的高效运算、降低运算功耗。

为实现上述目的,按照本发明的一个方面,提供了一种用于神经网络学习的突触阵列,其特征在于,包括:

上层交叉横杆阵列,包括N个字线sWL、M个位线sBL和连接在任意一字线sWL与任意一位线sBL之间的上层基础单元,每个上层基础单元包括串联的开关器件和定值电阻;

下层交叉横杆阵列,包括N个字线WL、M个位线BL和连接在任意一字线WL与任意一位线BL之间的下层基础单元,每个下层基础单元包括串联的忆阻器和晶体管;

其中,每个上层基础单元与每个下层基础单元一一对应连接,连接方式为:从上层基础单元的开关器件和定值电阻的连接端引出互连线与对应的下层基础单元的晶体管的栅极相连;

每个忆阻器的电导值用于计算所连字线WL和位线BL之间的权重,在前向传播过程中,每个字线WL用于接收神经元的发放信号,位线BL输出发放信号与权重矩阵的相乘结果,所述权重矩阵为所述突触阵列的所有权重。

在其中一个实施例中,开关器件为阈值转换器件、晶体管或二极管。

在其中一个实施例中,所有位线相互平行,所有字线相互平行,字线和位线相交叉。

在其中一个实施例中,所述忆阻器为导电丝忆阻器或相变存储器。

按照本发明的另一方面,提供了一种用于神经网络学习的运算电路,包括存储模块以及位于神经网络每相邻两层之间的突触阵列、积分模块和阈值比较模块,其中,

所述突触阵列为上述的用于神经网络学习的突触阵列,前一突触阵列的位线BL的数量与后一个突触阵列的字线WL的数量相同;第k层至第k+1层之间的突触阵列F

所述积分模块用于将对应权重矩阵的相乘结果进行线性积分后得到第k+1层的膜电位y

所述阈值比较模块用于将所述膜电位y

所述存储模块用于记录每层的信号发放时间。

在其中一个实施例中,还包括误差计算模块,用于根据输出层实际输出信息与目标输出信息计算输出层的误差值。

按照本发明的另一方面,提供了一种用于神经网络学习的运算电路的操作方法,基于上述的用于神经网络学习的运算电路进行操作以实现前向传播运算、反向传播运算,其中,

实现前向传播运算的操作包括:

在字线sWL和位线sBL上施加电压,保证上层所有开关器件开启,以使下层所有晶体管开启;

将训练数据作为第一层发放的单位阶跃信号输入突触阵列F

实现反向传播运算的操作包括:

计算输出层在当前轮次的误差值δ

将突触前信号

将第k+1层的误差值δ

在其中一个实施例中,还包括权重更新运算操作,对于任意突触阵列F

分第一阶段和第二阶段向突触阵列F

根据第k+1层的误差值δ

当δ

当δ

当δ

在其中一个实施例中,在实现突触阵列F

分两个阶段向突触阵列F

在第一阶段,向突触阵列F

在第二阶段,向突触阵列F

根据第k+1层的误差值δ

当δ

当δ

在其中一个实施例中,

当δ

当δ

当δ

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

本发明提出一种新的突触阵列,其包括上下双层交叉横杆阵列结构,上层包括sWL、位线sBL、开关器件和定值电阻,下层包括字线WL、位线BL、忆阻器和晶体管。相比于传统的突触阵列,本发明的突触阵列增加了上层交叉横杆阵列,通过调节上层交叉横杆阵列字线和位线的电位差,可以控制各开关器件的开关状态,继而控制下层忆阻器支路的导通和关断状态。也就是说,每个忆阻器都可以从两个维度进行控制,第一个维度是下层字线和位线的控制,也可调节施加于忆阻器两端的电压差,该电压差决定忆阻器电导值的调节程度;第二个维度是上层字线和位线的控制,实际是通过上层字线和位线控制开关器件,继而控制下层忆阻器支路是否导通,从而决定误差能否进行反向传播、忆阻器能否进行电导调制以及控制电导调制的时长,实现神经网络的片上学习运算,无需占用大量的片外计算资源,提高运算速度且降低功耗。

进一步地,本发明基于用于神经网络学习的运算电路的操作方法,依赖于突触阵列的设计。突触阵列以开关器件和定值电阻为基本单元的上层交叉横杆阵列与以忆阻器和晶体管为基本单元的下层交叉横杆阵列构成双层交叉横杆阵列,两层交叉横杆阵列中对应的基本单元间由导线连接;双层交叉横杆阵列能够实现神经网络的前向传播、反向传播和权重更新过程。前向过程输入信号施加在下层交叉横杆阵列的字线上,从输入端到输出端逐层和下层交叉横杆阵列中的忆阻器矩阵进行向量矩阵乘法运算。反向传播过程中误差信号施加在下层交叉横杆阵列中的位线上,从输出端开始向输入端逐层和忆阻器矩阵的转置进行向量矩阵乘法,并由开关器件控制误差信号是否能够反向传播。权重更新过程中,根据脉冲时间依赖可塑性在下层交叉横杆阵列的字线和位线上施加电压以并行地改变忆阻器电导值,并且根据每层的误差信号控制开关器件的导通状态进而控制晶体管的开关状态来决定下层交叉横杆阵列的字线和位线上电压能否改变忆阻器电导值。本发明所提的基于用于神经网络学习的运算电路的操作方法,基于突触阵列的设计,能够高效实现时间编码的脉冲神经网络的片上训练。

附图说明

图1为一实施例的突触阵列的结构示意图;

图2为一实施例的神经网络结构示意图;

图3为一实施例的用于神经网络学习的运算电路框架示意图;

图4(a)为一实施例的前向传播运算操作示意图;

图4(b)为一实施例的前向传播过程信号变化示意图;

图5(a)为一实施例的误差反向传播运算操作示意图;

图5(b)为一实施例的误差反向传播时突触前信号和突触后信号有时间重叠的情况下的信号变化示意图;

图5(c)为一实施例的误差反向传播时突触前信号和突触后信号无时间重叠的情况下的信号变化示意图;

图6(a)为一实施例的权重更新运算操作示意图;

图6(b)为一实施例的权重更新过程中误差信号大于0的信号变化示意图;

图6(c)为一实施例的权重更新过程中误差信号等于0的信号变化示意图;

图6(d)为一实施例的权重更新过程中误差信号小于0的信号变化示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

实施例1

本发明涉及一种用于神经网络学习的突触阵列。

如图1所示突触阵列为上下双层交叉横杆阵列结构,具体包括:

上层交叉横杆阵列,包括位于上层的字线sWL、位线sBL、任意一字线sWL与任意一位线sBL之间连接的上层基础单元,每个上层基础单元包括串联的开关器件和定值电阻。下层交叉横杆阵列,包括位于下层的字线WL、位线BL、任意一字线WL与任意一位线BL之间连接的下层基础单元,每个下层基础单元包括串联的忆阻器和晶体管。上层字线sWL与下层字线WL的数量相同,上层位线sBL与下层位线BL的数量相同。每个上层基础单元与每个下层基础单元一一对应连接,连接关系为从上层基础单元的开关器件和定值电阻的连接端引出互连线与对应的下层基础单元的晶体管的栅极相连。每个忆阻器的电导值用于计算所连字线和位线之间的权重,字线WL用于接收神经元的发放信号,位线BL输出发放信号与权重矩阵的相乘结果。

需要说明的是,字线与位线没有严格的区别,对于任意基础单元,其一端与字线连接,另一端则与位线连接。在一具体的实施例中,所有位线相互平行,所有字线相互平行,字线和位线相交叉。再同一层中,任意字线与任意位线的交叉位置处设置有一个对应的基础单元,通过字线和位线可以索引到对应的基础单元并针对性地施加信号。

具体而言,突触阵列包括上下两层交叉横杆阵列结构,上层交叉横杆阵列的基础单元为开关器件和定值电阻串联,下层交叉横杆阵列的基础单元为忆阻器和晶体管串联,基础单元两端连接交叉横杆阵列的字线和位线。上层交叉横杆阵列中的开关器件和定值电阻间引出互连线与下层交叉横杆阵列中对应的晶体管栅极连接。

可以理解的,开关器件具备的特性为:当开关器件两端的电压差大于其阈值时,开关器件导通。具体的,开关器件为阈值转换器件、晶体管或二极管,其中,晶体管在其栅源电压大于其阈值电压时导通。

定值电阻与开关器件相连,用于控制定值电阻和开关器件连接处的分压,定值电阻和开关器件间引出互连线与晶体管栅极相连,因此分压即为晶体管栅极电压,当分压大于晶体管阈值电压时,晶体管导通;当分压小于晶体管阈值电压时,晶体管截止。定值电阻的阻值由开关器件的阈值电压和晶体管的阈值电压决定。

忆阻器与晶体管相连,其存储的电导值与计算时所用的神经网络突触权重值相关联,例如,其存储的电导值可以直接作为突触权重值,或者根据电导值与突触权重值的函数关系,根据电导值得到对应的突触权重值,当晶体管处于导通状态时,信号能够通过忆阻器,实现对其电导值的调制;当晶体管处于截止状态时,信号不能通过忆阻器,其电导值不变。忆阻器包括导电丝忆阻器、相变存储器等非易失性存储器。

以实现2*2的突触阵列为例说明,即前一层的神经元数量为2,后一层神经元的数量也为2,前一层每个神经元与后一层的每个神经元之间具有突触连接,因此形成2*2的权重矩阵,权重矩阵中的元素a

相比于传统的突触阵列,本发明的突触阵列增加了上层交叉横杆阵列,也就是说,每个忆阻器都可以从两个维度进行控制,第一个维度是下层字线和位线的控制,也可调节施加于忆阻器两端的电压差,该电压差决定忆阻器电导值的调节程度;第二个维度是上层字线和位线的控制,实际是通过上层字线和位线控制开关器件,继而控制下层忆阻器支路是否导通,从而决定忆阻器能否进行电导调制以及控制电导调制的时长。基于该突触阵列,当进行前向传播时,传输信号通过忆阻器进行加权求和。当进行反向传播时,可以直接让输出端的误差信号经突触阵列反向传播,并配合上层开关器件的开关状态,可以直接利用突触阵列实现各层误差计算。当进行权重更新时,通过控制上下两层字线、位线的信号,根据误差值实现对忆阻器的电导值的调制。因此,基于本发明的突触阵列,其双层交叉横杆阵列能够实现神经网络监督学习的前向传播、反向传播和权重更新过程,无需占用大量的片外计算资源,实现神经网络监督学习的高效运算、降低运算功耗。

实施例2

本发明还涉及一种用于神经网络学习的运算电路,包括存储模块以及位于神经网络每相邻两层之间的突触阵列、积分模块和阈值比较模块,其中,所述突触阵列为上文介绍的突触阵列。

对于任意相邻的两层,第k层至第k+1层之间的突触阵列F

积分模块用于将对应权重矩阵的相乘结果进行线性积分后得到第k+1层的膜电位y

所述阈值比较模块用于将所述膜电位y

所述存储模块用于记录每层的信号发放时间。

由于前一突触阵列的位线BL输出的每一路结果经处理后都会作为后一个突触阵列字线WL中每一路的输入信号,所以,前一突触阵列的位线BL的数量与后一个突触阵列的字线WL的数量相同。

以一个简单的例子说明,如图2所示为一个简化的神经网络结构示意图,其只具有三层,分别为输入层i,隐藏层h,输出层o,输入层i具有4个神经元,隐藏层h具有5个神经元,输出层o具有3个神经元。如图3所示为对应搭建的运算电路框架示意图,其包括两个突触阵列,即两个双层交叉横杆阵列,分别位于输入层i和隐藏层h之间以及位于隐藏层h和输出层o之间。第一个双层交叉横杆阵列的字线WL、sWL的数量均为4,位线BL、sBL的数量均为5,第二个双层交叉横杆阵列的字线WL、sWL的数量均为5,位线BL、sBL的数量均为3。

在一实施例中,该运算电路还包括误差计算模块,用于根据输出层实际输出信息与目标输出信息计算输出层的误差值。

在一实施例中,该运算电路还包括操控模块,用于根据设定的算法操控所述突触阵列的信号以实现前向传播运算、反向传播运算和权重更新运算。

实施例3

本发明还涉及一种用于神经网络学习的运算电路的操作方法,基于上文介绍的运算电路进行操作以实现时间编码的脉冲神经网络监督学习中的前向传播运算、反向传播运算和权重更新运算。

脉冲神经网络(Spiking Neural Network,SNN)是第三代神经网络,区别于模拟值编码的第二代神经网络,采用脉冲进行编码,即使用脉冲在神经网络中传递信息,是更为仿生的神经网络模型,能够更好地模拟人脑的工作方式。脉冲神经网络进一步可细分为两种不同的编码形式,脉冲发放率编码(Rate Coding)和脉冲时间编码(Timing Coding)。脉冲时间编码利用脉冲的发放时间来编码信息,相比于脉冲发放率编码来说,利用了脉冲神经网络相比于模拟神经网络来说所独有的信息,即脉冲发放时间,这也是脉冲神经网络作为第三代神经网络的优势所在。由于每个脉冲都包含了发放时间信息,时间编码的脉冲神经网络通常来说需要很少的脉冲甚至单个脉冲即可在层间传递大量信息,是脉冲神经网络的理想选择。但在目前应用广泛的监督学习领域,时间编码的脉冲神经网络缺乏硬件友好的训练手段,相比于模拟神经网络,其在时间尺度上的计算需求决定了它在传统的数字系统处理单元(例如CPU,GPU等)上的运算量大,功耗高。另一方面,脉冲神经网络具备的一些特有的学习规则,例如赫布法则(Hebb rule)、脉冲时间可塑性依赖(STDP)等等,在一些新型存储器(包括忆阻器、相变存储器等等)上的运算非常高效、便捷,以新型存储器为基础构建的电路能够很好地作为脉冲神经网络的载体,然而此类算法只能用于非监督学习,应用场景有限。

本实施例是基于前文介绍的运算电路实现时间编码的脉冲神经网络的监督学习,其中,输入的发放信号为单位阶跃信号。

具体实现的脉冲神经网络运算包括前向传播运算、反向传播运算和权重更新运算:

所述脉冲神经网络中任意相邻两层的前向传播运算包括:

第k层发放单位阶跃信号ε(t-t

将膜电位y

当数据前向传播到输出层时,执行反向传播运算,包括:

根据输出层实际输出脉冲的时间与目标脉冲输出时间计算输出层的误差值δ

当得到各层的误差值后,执行权重更新运算得到各权重矩阵更新量Δw

利用如下公式计算权重矩阵更新量Δw

Δw

式中,ReLU(t

基于前文的运算电路,以下具体介绍运算的操作过程。

实现前向传播运算的操作包括:

上层操作:

在字线sWL和位线sBL上施加电压,保证上层所有开关器件开启,以使下层所有晶体管开启。也就是说,在前向过程中,在上层交叉横杆阵列的字线和位线上施加一定的电压使得开关器件始终保持在开启状态,从而下层交叉横杆阵列中的晶体管始终保持在开启状态。

下层操作:

将训练数据作为第一层发放的单位阶跃信号输入突触阵列F

具体而言,如图4(a)和4(b)所示,在前向传播过程中,数据(图中以两个神经元的发放数据为例,其中一个的发放时间为t

下层操作中,所引起的信号处理主要包括以下几个过程:

1、权重计算过程:数据输入到下层横杆阵列的字线WL中,经过突触阵列(权重矩阵)后在位线BL上获得加权叠加的电流信号,此操作即对应神经网络运算中的向量矩阵乘法运算。

以实施例1中的2*2的突触阵列为例说明,前一层神经元发放的信号经突触阵列传送给后一神经元的过程为:

晶体管T11~T22保持开启状态,前一层神经元的发放信号(U

2、膜电位计算过程:位线上的电流信号由积分模块积分为神经元的膜电位。

对于每层,第k层发放单位阶跃信号ε(t-t

其中,ε(t-t

t

本实施例中,设置发放信号为单位阶跃信号,则进行积分的膜电位y

y

x

ReLU()为线性整流单元函数(Rectified Linear Unit),α为常数系数。

3、阈值比较过程:膜电位经阈值比较模块比较膜电位与对应的阈值,当膜电位超过对应神经元的阈值时,由阈值比较模块向下一层发放单位阶跃信号,并输入到下一层突触阵列的字线WL上,同时,利用存储模块用于记录当前层的信号发放时间。

当膜电位y

神经网络的前向传播过程按照此规则逐层向前传播,直至在输出层发放信号,完成该轮次的前向传播,继而执行反向传播。

实现反向传播运算的操作包括:

计算输出层在当前轮次的误差值δ

当数据前向传播到输出层时,得到实际输出脉冲时间

在本实施例中,输出层误差值δ

获取第k层的误差值的操作包括:

上层操作:将突触前信号

下层操作;将第k+1层的误差值δ

在反向传播过程中,当前向传播到最后一层神经网络时,得到实际输出时间,计算实际输出时间和目标输出时间的误差值,缩放后输入到下层交叉横杆阵列的位线BL中,在误差信号持续时间内,突触前信号

以BL1上的误差信号、sWL1和sBL1上的突触前信号和突触后信号为例。如图5(a)和5(b)所示,突触前信号在t

实际上,上述反向操作所实现的误差运算公式为:

式中,β为设定的缩放系数,

当t

当t

在执行完反向传播的操作,得到各层的误差值后,继续执行突触权重更新的操作。

对于任意突触阵列F

下层操作:分第一阶段和第二阶段向突触阵列F

具体而言,在权重更新过程中,所施加的信号波形可分为两个阶段。

在第一阶段,突触前信号在t

上层操作:根据第k+1层的误差值δ

当δ

当δ

当δ

具体而言,权重更新过程中,每个双层交叉横杆阵列的更新信号由反向传播期间其下层交叉横杆阵列中的位线获取到的误差值所决定,更新信号施加在上层交叉横杆阵列的位线和字线上,以控制对应晶体管的状态,继而控制忆阻器支路是否导通,即忆阻器两端能否接收到下层字线和位线所施加的调制信号(突触前信号和突触后信号)。当晶体管开启,在晶体管开启的时间内,突触前信号和突触后信号重叠部分的电压差能够使忆阻器的电导值改变;在晶体管关闭的时间内,忆阻器的电导值不能被突触前信号和突触后信号改变。

当误差信号为正时,施加于上层位线和字线上的更新信号可以在调制电导值减小的阶段打开晶体管,以在晶体管开启期间,时间重叠的突触前信号s′

当误差信号为正时,施加于上层位线和字线上的更新信号无法打开晶体管,忆阻器电导值不被调制。

当误差信号为负时,施加于上层位线和字线上的更新信号可以在调制电导值增大的阶段打开晶体管,以在晶体管开启期间,时间重叠的突触前信号

可以理解的,具体操作时,可以在第一阶段调制电导增大、在第二阶段调制电导减小,也可以在第一阶段调制电导减小、在第二阶段调制电导增大。

以在第一阶段调制电导增大、在第二阶段调制电导减小为例。向突触阵列F

进一步的,在一实施例中,

当δ

当δ

当δ

如图6(a)~6(d)所示,以一个具体的例子进行说明。在权重更新期间,sWL1接地,在sBL1上的误差更新信号。

如图6(b)所示,当δ

如图6(c)所示,当δ

如图6(d)所示,当δ

此操作达到的效果为,当误差更新信号大于零时,按照原本脉冲突触可塑性应该改变的电导值进行更新;当误差更新信号小于零时,按照原本脉冲突触可塑性应该改变的电导值相反的方向进行更新。

此过程对应的权重更新增量的运算式为:

Δw

式中,ReLU(t

综上,本发明基于用于神经网络学习的运算电路的操作方法,依赖于突触阵列的设计。突触阵列以开关器件和定值电阻为基本单元的上层交叉横杆阵列与以忆阻器和晶体管为基本单元的下层交叉横杆阵列构成双层交叉横杆阵列,两层交叉横杆阵列中对应的基本单元间由导线连接;双层交叉横杆阵列能够实现脉冲神经网络的前向传播、反向传播和权重更新过程。前向过程输入信号施加在下层交叉横杆阵列的字线上,从输入端到输出端逐层和下层交叉横杆阵列中的忆阻器矩阵进行向量矩阵乘法运算。反向传播过程中误差信号施加在下层交叉横杆阵列中的位线上,从输出端开始向输入端逐层和忆阻器矩阵的转置进行向量矩阵乘法,并由开关器件控制误差信号是否能够反向传播。权重更新过程中,根据脉冲时间依赖可塑性在下层交叉横杆阵列的字线和位线上施加电压以并行地改变忆阻器电导值,并且根据每层的误差信号控制开关器件的导通状态进而控制晶体管的开关状态来决定下层交叉横杆阵列的字线和位线上电压能否改变忆阻器电导值。本发明所提的基于用于神经网络学习的运算电路的操作方法,基于突触阵列的设计,能够基于新型非易失性存储器高效实现运算。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

相关技术
  • 可编程阵列逻辑电路及其操作方法
  • 一种基于三端突触器件的联想学习神经网络阵列
  • 卷积及降采样运算单元、神经网络运算单元和现场可编程门阵列集成电路
技术分类

06120116490881