首页 / 专利库 / 电脑零配件 / 硬件 / 神经网络权重编码方法、计算装置及硬件系统

神经网络权重编码方法、计算装置及硬件系统

阅读:80发布:2024-02-07

专利汇可以提供神经网络权重编码方法、计算装置及硬件系统专利检索,专利查询,专利分析的服务。并且一种用于神经网络的非拼接权重编码方法,包括:权重定点化步骤,将权重矩阵的每个矩阵元素转换为具有预定比特位数的第一数(S210);误差引入步骤,在所述第一数中引入具有预定标准差的噪声,获得第二数(S220);和训练步骤,对以第二数表示的权重矩阵进行训练,训练至收敛后,再将训练结果作为最终的权重矩阵写入对应表示一个矩阵元素的单个模拟 电路 器件中(S230),其中,通过单个模拟电路器件而非多个模拟电路器件的拼接来表示单个矩阵元素。根据所述用于神经网络的编码方法,可以在不影响效果的情况下,极大的降低资源的消耗,从而节省资源开销,以在有限资源的条件下布置规模巨大的神经网络。,下面是神经网络权重编码方法、计算装置及硬件系统专利的具体信息内容。

1.一种用于神经网络的非拼接权重训练方法,包括:
权重定点化步骤,将权重矩阵的每个矩阵元素转换为具有预定比特位数的第一数;
误差引入步骤,在所述第一数中引入具有预定标准差的噪声,获得第二数;和训练步骤,对以第二数表示的权重矩阵进行训练,训练至收敛后,得到训练结果,其中,所述训练结果将作为最终的权重矩阵,其各个矩阵元素被逐个写入对应表示一个矩阵元素的单个模拟电路器件中,其中通过单个模拟电路器件而非多个模拟电路器件的拼接来表示单个矩阵元素。
2.根据权利要求1所述的非拼接权重训练方法,其中,在权重定点化步骤中,通过线性关系或对数关系进行第一数的转换。
3.根据权利要求1所述的非拼接权重训练方法,其中,所述噪声为模拟电路的读写误差,并且服从正态分布规律。
4.根据权利要求1所述的非拼接权重训练方法,其中,所述模拟电路器件为忆阻器、电容比较器或者电压比较器。
5.根据权利要求1所述的非拼接权重训练方法,其中,所述第一数为定点数并且第二数为浮点数。
6.一种用于神经网络的非拼接权重编码方法,包括如下步骤:将权重矩阵的每个矩阵元素逐个写入对应表示一个矩阵元素的单个模拟电路器件中,以便通过单个模拟电路器件而非多个模拟电路器件的拼接来表示单个矩阵元素,
其中,所述权重矩阵是通过权利要求1到5中任一项所述的非拼接权重训练方法得到的。
7.根据权利要求6所述的非拼接权重编码方法,其中,在写入步骤之前,还包括如下步骤:
权重定点化步骤,将权重矩阵的每个矩阵元素转换为具有预定比特位数的第一数;
误差引入步骤,在所述第一数中引入具有预定标准差的噪声,获得第二数;和训练步骤,对以第二数表示的权重矩阵进行训练,训练至收敛后,得到训练结果。
8.一种神经网络芯片,具有通过模拟电路器件以硬件形式执行矩阵向量乘的操作的基本模
其中,权重矩阵的每个矩阵元素被逐个写入对应表示一个矩阵元素的单个模拟电路器件中,以便通过单个模拟电路器件而非多个模拟电路器件的拼接来表示权重矩阵的单个矩阵元素。
9.根据权利要求8的神经网络芯片,其中所述权重矩阵是通过权利要求1到5中任一项所述的非拼接权重训练方法得到的。
10.一种计算装置,包括存储器和处理器,存储器上存储有计算机可执行指令,所述计算机可执行指令当被处理器执行时执行权利要求1到5中任一项所述的非拼接权重训练方法或权利要求6到7中任一项所述的非拼接权重编码方法。
11.一种神经网络系统,包括:
如权利要求10所述的计算装置;以及
如权利要求8-9中任一项所述的神经网络芯片。

说明书全文

神经网络权重编码方法、计算装置及硬件系统

技术领域

[0001] 本发明总体地涉及神经网络技术领域,更具体地涉及用于神经网络的权重编码方法、计算装置以及硬件系统。

背景技术

[0002] 随着摩尔定律逐渐失效,现有芯片工艺进步放缓,人们不得不面向新应用和新器件。近年来,神经网络(Neural Network,NN)计算取得了突破性进展,在图像识别、语言识别、自然语言处理等诸多领域均取得了很高的准确率,但神经网络需要海量计算资源,现有的通用处理器已经很难满足深度学习的计算需求,设计专用芯片已经成为了一个重要的发展方向。与此同时,忆阻器的出现为神经网络芯片设计提供了一种高效的解决方案,忆阻器具有高密度、非易失、低功耗、存算合一、易于3D等优点,在神经网络计算中可以利用其阻值可调的特点作为可编程权重,并利用其存算合一的优点作高速乘加器。
[0003] 神经网络组成单元均为神经元,由大量神经元相互连接成网络。神经元之间的连接可以看作带权重的有向边,神经元的输出会被神经元之间的连接所加权,然后传递给所连到的神经元,而每个神经元接收到的所有输入会被累加起来进行进一步处理,产生神经元的输出。神经网络的建模通常以若干神经元为一层,层与层之间相互连接来构建,图1所示的是一种链状的神经网络,图中每一个圆表示一个神经元,每一个箭头表示神经元之间的连接,每个连接均有权重,实际神经网络的结构不限于链状的网络结构。
[0004] 神经网络的核心计算是矩阵向量乘操作,包含n个神经元的层Ln产生的输出可以用长度为n的向量Vn表示,与包含m个神经元的层Lm全相联,连接权重可以表示成矩阵Mn×m,矩阵大小为n行m列,每个矩阵元素表示一个连接的权重。则加权之后输入到Lm的向量为Mn×mVn,这样的矩阵向量乘法运算是神经网络最核心的计算。
[0005] 由于矩阵向量乘计算量非常大,在现有的通用处理器上进行大量的矩阵乘运算需要耗费大量的时间,因此神经网络加速芯片也都是以加速矩阵乘法运算为主要的设计目标。忆阻器阵列恰好能胜任上述工作。首先V为一组输入电压,电压与忆阻器电导G相乘并叠加输出电流,输出电流与接地电阻Rs相乘得到输出电压V’,整个过程在模拟电路下实现,具有速度快,面积小的优点。
[0006] 然而使用基于忆阻器的芯片计算也存在精度低、扰动大,数模/模数转换开销大,矩阵规模受限等不足。而且虽然忆阻器可以高效地进行矩阵向量乘法运算,但是由于忆阻器芯片矩阵向量乘是在模拟电路中实现,所以不可避免的带来噪声和扰动,所以相对于神经网络,忆阻器的计算结果是不准确的。
[0007] 由于忆阻器的工艺限制,使用忆阻器表示权重会有一定的误差。如图3所示,不同级的权重会有一定的重叠。为了避免重叠,现有方法一般是使用若干个低精度的忆阻器拼接来表示一个高精度权重,每个忆阻器精度都很低的情况下,可以认为权重数据是准确的。以用2个2比特忆阻器表示4比特权重为例,用一个2比特忆阻器来表示权重低2位,另一个表示高2位。
[0008] 现有的ISAAC技术首先用浮点数训练一个神经网络,然后将权重数据“写入”忆阻器。ISAAC是用4个2比特忆阻器器件来表示一个8比特的权重,这样可以利用更多的资源来提高矩阵运算精度。
[0009] ISAAC使用拼接的方法来表示权重,效率比较低,需要很多的资源,比如表示一个1个权重,就需要4个忆阻器器件。
[0010] 与ISAAC类似,现有的PRIME技术首先也用浮点数训练一个神经网络,然后使用2个3比特精度的输入电压来表示一个6比特输入,2个4比特的忆阻器器件来表示一个8比特的权重,并且将正、负的权重分别用两组阵列表示。
[0011] PRIME使用正负相加和高低位拼接方法来来表示权重,也需要大量的资源。即表示一个1个权重,就需要4个忆阻器器件。
[0012] 基于忆阻器器件实现神经网络,必须克服权重读取误差的问题,这个问题是由器件特性和现有工艺造成的,目前难以避免。这些现有技术使用若干个低精度可以认为是“没有误差”的忆阻器拼接来表示一个高精度的权重,需要大量的资源,资源利用效率低。
[0013] 因此,需要一种用于基于忆阻器神经网络的权重表示技术,以解决上述问题。

发明内容

[0014] 鉴于上述情况,做出了本发明。
[0015] 根据本发明的一个方面,提供了一种用于神经网络的非拼接权重训练方法,包括:权重定点化步骤,将权重矩阵的每个矩阵元素转换为具有预定比特位数的第一数;误差引入步骤,在所述第一数中引入具有预定标准差的噪声,获得第二数;和训练步骤,对以第二数表示的权重矩阵进行训练,训练至收敛后,得到训练结果,其中,所述训练结果将作为最终的权重矩阵,其各个矩阵元素被逐个写入对应表示一个矩阵元素的单个模拟电路器件中,其中通过单个模拟电路器件而非多个模拟电路器件的拼接来表示单个矩阵元素。
[0016] 根据上述非拼接权重训练方法,在权重定点化步骤中,可以通过线性关系或对数关系进行第一数的转换。
[0017] 根据上述非拼接权重训练方法,所述噪声可以为模拟电路的读写误差,并且服从正态分布规律。
[0018] 根据上述非拼接权重训练方法,所述模拟电路器件可以为忆阻器、电容比较器或者电压比较器。
[0019] 根据上述非拼接权重训练方法,所述第一数可以为定点数并且第二数可以为浮点数。
[0020] 根据本发明的另一方面,提供了一种用于神经网络的非拼接权重编码方法,包括如下步骤:将权重矩阵的每个矩阵元素逐个写入对应表示一个矩阵元素的单个模拟电路器件中,以便通过单个模拟电路器件而非多个模拟电路器件的拼接来表示单个矩阵元素,其中,所述权重矩阵是通过上述非拼接权重训练方法得到的。
[0021] 根据上述非拼接权重编码方法,在写入步骤之前,可以还包括如下步骤:权重定点化步骤,将权重矩阵的每个矩阵元素转换为具有预定比特位数的第一数;误差引入步骤,在所述第一数中引入具有预定标准差的噪声,获得第二数;和训练步骤,对以第二数表示的权重矩阵进行训练,训练至收敛后,得到训练结果。
[0022] 根据本发明的另一方面,提供了一种神经网络芯片,具有通过模拟电路器件以硬件形式执行矩阵向量乘的操作的基本模,其中,权重矩阵的每个矩阵元素被逐个写入对应表示一个矩阵元素的单个模拟电路器件中,以便通过单个模拟电路器件而非多个模拟电路器件的拼接来表示权重矩阵的单个矩阵元素。
[0023] 根据上述神经网络芯片,所述权重矩阵可以是上述非拼接权重训练方法得到的。
[0024] 根据本发明的又一方面,提供了一种计算装置,包括存储器和处理器,存储器上存储有计算机可执行指令,所述计算机可执行指令当被处理器执行时执行根据上述非拼接权重训练方法或根据上述非拼接权重编码方法。
[0025] 根据本发明的又一方面,提供了一种神经网络系统,包括:根据上述的计算装置;以及根据上述的神经网络芯片。
[0026] 根据本发明,提供了一种用于神经网络的编码方法,可以在不影响效果的情况下,极大的降低资源的消耗,从而节省资源开销,以在有限资源的条件下布置规模巨大的神经网络。附图说明
[0027] 从下面结合附图对本发明实施例的详细描述中,本发明的这些和/或其它方面和优点将变得更加清楚并更容易理解,其中:
[0028] 图1示出了链状的神经网络的示意图。
[0029] 图2示出了基于忆阻器的交叉开关结构的示意图。
[0030] 图3示出了在一个忆阻器上划分8级权重的权重统计分布图。
[0031] 图4示出了根据本发明的神经网络的编码技术的应用情境的示意图。
[0032] 图5示出了根据本发明的编码方法的总体流程图
[0033] 图6示出了使用现有高低位拼接方法和根据本发明的编码方法的实验效果对比。

具体实施方式

[0034] 为了使本领域技术人员更好地理解本发明,下面结合附图和具体实施方式对本发明作进一步详细说明。
[0035] 本申请提供一种新的编码方法(下文称为RLevel编码方法),其与现有方法的本质区别在于,新的编码方法并不要求使用单个器件表示的权重值不发生重叠,而是将这种误差引入训练当中。通过对含有噪声的权重矩阵进行训练,并使之能够训练至收敛,最后将收敛后的数值写入单个器件中,由此既能够增强该模型的抗噪能,也能够减少表示矩阵元素的器件的数量,降低了成本和资源消耗。
[0036] 下面将结合附图对本申请的技术原理和实施方式进行详细分析。
[0037] 图3示出了在一个忆阻器上划分8级权重的权重统计分布图。
[0038] 如图3所示,由于忆阻器器件引起的误差近似于正态分布,假设器件的误差服从正态分布N(μ,σ2),如果用忆阻器电导值来表示一个n比特的值,则μ有2n个可能的值。这里,本领域技术人员可以理解,为了简化计算,对应不同电导值μ,采用相同的标准差σ。
[0039] 虽然,在下面的具体实施方式中以忆阻器作为示例进行说明,但是除了忆阻器以外的其他能够实现矩阵向量乘的电路器件也是可以的,比如电容或电压比较器。
[0040] 根据正态分布叠加的性质:统计独立的常态随机变量X~(μx,σx2),Y~(μy,σy2),那么它们的和也满足正态分布U=X+Y~(μx+μy,σx2+σy2)。
[0041] 假设如现有技术那样,用2个器件拼接来表示一个高精度权重。l和h分别代表低位和高位器件,权重表示为2n*h+l,低位和高位的误差分别是L~(l,σ2),H~(h,σ2),则2n*H~(h,22n*σ2)。权重的取值范围是22n-l,权重误差的标准差是 我们把取值范围与标准差作为最终精度的标准,则拼接权重方法的精度为:
[0042] 相比,本申请中,用一个器件来表示高精度权重,其精度是(2n-l)/σ。
[0043] 从上述结果可见,使用高低位拼接方法和单个器件表示权重的精度基本相同。
[0044] 图4示出了根据本发明的神经网络的编码技术的应用情境的示意图。如图4所示,本公开的总体发明构思在于:将神经网络应用1100所采用的网络模型1200通过编码方法1300进行权重编码,将结果写入神经网络芯片1400的忆阻器器件,从而解决了基于忆阻器神经网络的权重表示需要大量器件的问题,最终在不明显损失精度的前提下,节省了大量的资源。
[0045] 一、编码方法
[0046] 图5示出了根据本发明的编码方法的总体流程图,包括如下步骤:
[0047] 1、权重定点化步骤S210,将权重矩阵的每个矩阵元素转换为具有预定比特位数的第一数;
[0048] 根据硬件设计(单个忆阻器器件的精度需要硬件支持),在前向网络中,将每一个权重值转换为一定精度的定点数,得到定点化权重。
[0049] 这里,为了更好地说明本发明的方法,以下面的表1的2*2大小的权重矩阵A为例子进一步说明。
[0050] 表1初始权重矩阵A
[0051]0.2641 0.8509
0.3296 0.6740
[0052] 当以4比特作为预定比特位数,将每个权重值转化为4比特定点数。其中,矩阵中的最大值0.8509对应于4比特的最大值,即24-1=15,而其他值相应地进行线性换算而得到定点化权重,获得表2的定点数矩阵。
[0053] 表2定点数矩阵B
[0054]5.0000 15.0000
6.0000 12.0000
[0055] 需要说明的是,上面是通过线性方式进行定点数的转换,但是本领域技术人员可以理解,也可以不通过线性方式,而通过对数或者其他计算方式进行转换。
[0056] 2、误差引入步骤S220,在所述第一数中引入具有预定标准差的噪声,获得第二数。
[0057] 根据忆阻器器件特性,加入标准差为σ的正态分布的噪声进行训练,即权重w=w+Noise,Noise~(0,σ2)。需要说明的是,在这里,将第一数设定为定点数,而第二数等于第一数加噪音,因此第二数为浮点数。例如0、1、2、3四个定点数,加入了噪音,变成-0.1、1.02、2.03、2.88四个浮点数,但是这样的设定并非限制性的,第一数也可以是浮点数。
[0058] 3、训练步骤S230,对以第二数表示的权重矩阵进行训练,训练至收敛后,再将训练结果作为最终的权重矩阵写入用于权重矩阵计算的电路器件中。
[0059] 二、理论验证
[0060] 下面给出实际的示例来从理论度说明以同样的输入,使用根据本发明的RLevel编码方法的输出和根据现有技术的高低位拼接方法的输出有着接近的精度。
[0061] 如果用两个2比特进行拼接,定点数矩阵B(表2)分解为高位矩阵H(表3)和低位矩阵L(表4):
[0062] 表3高位矩阵H
[0063]1.0000 3.0000
1.0000 3.0000
[0064] 表4低位矩阵L
[0065]1.0000 3.0000
2.0000 0.0000
[0066] 拼接中,定点数矩阵B等于高位矩阵H*4+低位矩阵L,即B=4*H+L,不管高位还是低位,最大值对应于2比特的最大值,即3。
[0067] 下面为了更好地模拟实际误差的引入,将定点数矩阵B分别按照RLevel方法和高低位拼接方法转换为4*10-6至4*10-5的电导值,则得到表5的Rlevel电导矩阵RC、高位电导矩阵HC和低位电导矩阵LC。
[0068] 需要注意的是,根据本发明的训练过程并不会将矩阵转换为电导值,而是在第一数的基础上增加标准差为σ的正态分布的噪声进行训练。此处是为了说明,实际误差的引入是由于忆阻器器件或者其他所使用的电路器件在读取和写入过程中由于噪声和扰动而引起的,因此下面基于作为模拟值的电导值进行数据分析。
[0069] 表5电导矩阵
[0070]
[0071] 假设输入电压为:
[0072] 0.10   0.15
[0073] 【无噪声】
[0074] 如果没有噪声,则基于上述输入电压,Rlevel电导矩阵RC、高位电导矩阵HC和低位电导矩阵LC的输出分别为:
[0075] 表6电导矩阵输出
[0076]Rlevel输出RC_out 高位输出HC_out 低位输出LC_out 拼接输出HLC_out
4.36000000E-06 4.0000E-06 1.0000E-05 2.18000000E-05
8.92000000E-06 5.8000E-06 4.6000E-06 4.46000000E-05
[0077] 上述拼接输出为按照高位输出*4+低位输出。
[0078] 如果将表6的结果,即Rlevel输出RC_out和拼接输出HL_out,转换为8比特定点数进行比较,则可以看出两者均为:
[0079] 125. 255.
[0080] 【加入噪声】
[0081] 如果对电导矩阵加入均值为0且标准差为0.05*4*10-5(即大约为5%)的噪声,则得到表7的噪声矩阵。
[0082] 表7噪声矩阵
[0083]
[0084] 仍然假设输入电压为:
[0085] 0.10   0.15
[0086] 则Rlevel、高位和低位噪声矩阵输出分别为:
[0087] 表8噪声矩阵输出
[0088]Rlevel输出RN_out 高位输出HN_out 低位输出LN_out 拼接输出HLN_out
4.5550E-06 4.2578E-06 6.3242E-06 2.3355E-05
9.0081E-06 9.9704E-06 4.1181E-06 4.4000E-05
[0089] 如果将表8的结果,即Rlevel输出RN_out和拼接输出HLN_out,转换为8比特定点数进行比较,则可以看出两者分别为:
[0090] Rlevel输出: 129.00  255.00
[0091] 拼接输出: 135.00  255.00
[0092] 由最终结果可见,无论加入噪声还是不加入噪声,根据本发明的RLevel编码方法都与现有技术的高低位拼接方法的输出有着非常接近的精度,因此,从理论角度验证了本发明的方案的实用性和可行性。
[0093] 三、数据验证
[0094] 为了从实验数据角度验证本发明的编码方法的有效性,申请人做了一系列的实验。
[0095] 图6示出了使用现有高低位拼接方法和根据本发明的RLevel编码方法的实验效果对比。
[0096] 本次实验使用卷积神经网络对CIFAR10数据集进行分类。该数据集有60000个32*32像素的彩色图片,每张图片都属于10种分类之一。如图6所示,横坐标为权重精度,纵坐标为正确率。图中有两根线,下面的线是使用RLevel方法,分别用一个器件表示2、4、6、8比特的权重,而上面的线是以分别为1、2、3、4比特的2个器件拼接来表示2、4、6、8比特。
[0097] 如图6所示,在本次实验中,用RLevel方法的准确率与用高低位拼接方法的准确率非常接近,但是由于只使用了一个器件,而不需要多个器件的拼接,属于非拼接编码,因此可以节省50%的资源。如此,根据本发明的权重编码方法,不需要采用高低位拼接,就能够提供与现有的高低位拼接基本相同的精度,既解决了通过忆阻器等模拟电路来进行神经网络的权重矩阵计算需要布置大量电路器件的问题,也降低了成本,节省了资源。
[0098] 以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本发明的保护范围应该以权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈