当前位置: 首页 > 专利查询>清华大学专利>正文

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

技术编号:21176599 阅读:52 留言:0更新日期:2019-05-22 12:09
一种用于神经网络的非拼接权重编码方法,包括:权重定点化步骤,将权重矩阵的每个矩阵元素转换为具有预定比特位数的第一数(S210);误差引入步骤,在所述第一数中引入具有预定标准差的噪声,获得第二数(S220);和训练步骤,对以第二数表示的权重矩阵进行训练,训练至收敛后,再将训练结果作为最终的权重矩阵写入对应表示一个矩阵元素的单个模拟电路器件中(S230),其中,通过单个模拟电路器件而非多个模拟电路器件的拼接来表示单个矩阵元素。根据所述用于神经网络的编码方法,可以在不影响效果的情况下,极大的降低资源的消耗,从而节省资源开销,以在有限资源的条件下布置规模巨大的神经网络。

Neural Network Weight Coding Method, Computing Device and Hardware System

A non-splicing weight coding method for neural networks includes: weighting fixed-point step, converting each matrix element of the weight matrix into the first number (S210) with a predetermined bit number; error introduction step, introducing noise with a predetermined standard deviation into the first number to obtain the second number (S220); and training step, training the weight matrix expressed in the second number. After training, the training results are written into a single analog circuit device (S230) that represents a matrix element as the final weight matrix after convergence, in which the single matrix element is represented by a single analog circuit device rather than a combination of multiple analog circuit devices. According to the coding method for the neural network, the resource consumption can be greatly reduced without affecting the effect, thus saving the resource overhead and arranging the large-scale neural network under the condition of limited resources.

【技术实现步骤摘要】
【国外来华专利技术】神经网络权重编码方法、计算装置及硬件系统
本专利技术总体地涉及神经网络
,更具体地涉及用于神经网络的权重编码方法、计算装置以及硬件系统。
技术介绍
随着摩尔定律逐渐失效,现有芯片工艺进步放缓,人们不得不面向新应用和新器件。近年来,神经网络(NeuralNetwork,NN)计算取得了突破性进展,在图像识别、语言识别、自然语言处理等诸多领域均取得了很高的准确率,但神经网络需要海量计算资源,现有的通用处理器已经很难满足深度学习的计算需求,设计专用芯片已经成为了一个重要的发展方向。与此同时,忆阻器的出现为神经网络芯片设计提供了一种高效的解决方案,忆阻器具有高密度、非易失、低功耗、存算合一、易于3D等优点,在神经网络计算中可以利用其阻值可调的特点作为可编程权重,并利用其存算合一的优点作高速乘加器。神经网络组成单元均为神经元,由大量神经元相互连接成网络。神经元之间的连接可以看作带权重的有向边,神经元的输出会被神经元之间的连接所加权,然后传递给所连到的神经元,而每个神经元接收到的所有输入会被累加起来进行进一步处理,产生神经元的输出。神经网络的建模通常以若干神经元为一层,层与层之间相互连接来构建,图1所示的是一种链状的神经网络,图中每一个圆表示一个神经元,每一个箭头表示神经元之间的连接,每个连接均有权重,实际神经网络的结构不限于链状的网络结构。神经网络的核心计算是矩阵向量乘操作,包含n个神经元的层Ln产生的输出可以用长度为n的向量Vn表示,与包含m个神经元的层Lm全相联,连接权重可以表示成矩阵Mn×m,矩阵大小为n行m列,每个矩阵元素表示一个连接的权重。则加权之后输入到Lm的向量为Mn×mVn,这样的矩阵向量乘法运算是神经网络最核心的计算。由于矩阵向量乘计算量非常大,在现有的通用处理器上进行大量的矩阵乘运算需要耗费大量的时间,因此神经网络加速芯片也都是以加速矩阵乘法运算为主要的设计目标。忆阻器阵列恰好能胜任上述工作。首先V为一组输入电压,电压与忆阻器电导G相乘并叠加输出电流,输出电流与接地电阻Rs相乘得到输出电压V’,整个过程在模拟电路下实现,具有速度快,面积小的优点。然而使用基于忆阻器的芯片计算也存在精度低、扰动大,数模/模数转换开销大,矩阵规模受限等不足。而且虽然忆阻器可以高效地进行矩阵向量乘法运算,但是由于忆阻器芯片矩阵向量乘是在模拟电路中实现,所以不可避免的带来噪声和扰动,所以相对于神经网络,忆阻器的计算结果是不准确的。由于忆阻器的工艺限制,使用忆阻器表示权重会有一定的误差。如图3所示,不同级的权重会有一定的重叠。为了避免重叠,现有方法一般是使用若干个低精度的忆阻器拼接来表示一个高精度权重,每个忆阻器精度都很低的情况下,可以认为权重数据是准确的。以用2个2比特忆阻器表示4比特权重为例,用一个2比特忆阻器来表示权重低2位,另一个表示高2位。现有的ISAAC技术首先用浮点数训练一个神经网络,然后将权重数据“写入”忆阻器。ISAAC是用4个2比特忆阻器器件来表示一个8比特的权重,这样可以利用更多的资源来提高矩阵运算精度。ISAAC使用拼接的方法来表示权重,效率比较低,需要很多的资源,比如表示一个1个权重,就需要4个忆阻器器件。与ISAAC类似,现有的PRIME技术首先也用浮点数训练一个神经网络,然后使用2个3比特精度的输入电压来表示一个6比特输入,2个4比特的忆阻器器件来表示一个8比特的权重,并且将正、负的权重分别用两组阵列表示。PRIME使用正负相加和高低位拼接方法来来表示权重,也需要大量的资源。即表示一个1个权重,就需要4个忆阻器器件。基于忆阻器器件实现神经网络,必须克服权重读取误差的问题,这个问题是由器件特性和现有工艺造成的,目前难以避免。这些现有技术使用若干个低精度可以认为是“没有误差”的忆阻器拼接来表示一个高精度的权重,需要大量的资源,资源利用效率低。因此,需要一种用于基于忆阻器神经网络的权重表示技术,以解决上述问题。
技术实现思路
鉴于上述情况,做出了本专利技术。根据本专利技术的一个方面,提供了一种用于神经网络的非拼接权重训练方法,包括:权重定点化步骤,将权重矩阵的每个矩阵元素转换为具有预定比特位数的第一数;误差引入步骤,在所述第一数中引入具有预定标准差的噪声,获得第二数;和训练步骤,对以第二数表示的权重矩阵进行训练,训练至收敛后,得到训练结果,其中,所述训练结果将作为最终的权重矩阵,其各个矩阵元素被逐个写入对应表示一个矩阵元素的单个模拟电路器件中,其中通过单个模拟电路器件而非多个模拟电路器件的拼接来表示单个矩阵元素。根据上述非拼接权重训练方法,在权重定点化步骤中,可以通过线性关系或对数关系进行第一数的转换。根据上述非拼接权重训练方法,所述噪声可以为模拟电路的读写误差,并且服从正态分布规律。根据上述非拼接权重训练方法,所述模拟电路器件可以为忆阻器、电容比较器或者电压比较器。根据上述非拼接权重训练方法,所述第一数可以为定点数并且第二数可以为浮点数。根据本专利技术的另一方面,提供了一种用于神经网络的非拼接权重编码方法,包括如下步骤:将权重矩阵的每个矩阵元素逐个写入对应表示一个矩阵元素的单个模拟电路器件中,以便通过单个模拟电路器件而非多个模拟电路器件的拼接来表示单个矩阵元素,其中,所述权重矩阵是通过上述非拼接权重训练方法得到的。根据上述非拼接权重编码方法,在写入步骤之前,可以还包括如下步骤:权重定点化步骤,将权重矩阵的每个矩阵元素转换为具有预定比特位数的第一数;误差引入步骤,在所述第一数中引入具有预定标准差的噪声,获得第二数;和训练步骤,对以第二数表示的权重矩阵进行训练,训练至收敛后,得到训练结果。根据本专利技术的另一方面,提供了一种神经网络芯片,具有通过模拟电路器件以硬件形式执行矩阵向量乘的操作的基本模块,其中,权重矩阵的每个矩阵元素被逐个写入对应表示一个矩阵元素的单个模拟电路器件中,以便通过单个模拟电路器件而非多个模拟电路器件的拼接来表示权重矩阵的单个矩阵元素。根据上述神经网络芯片,所述权重矩阵可以是上述非拼接权重训练方法得到的。根据本专利技术的又一方面,提供了一种计算装置,包括存储器和处理器,存储器上存储有计算机可执行指令,所述计算机可执行指令当被处理器执行时执行根据上述非拼接权重训练方法或根据上述非拼接权重编码方法。根据本专利技术的又一方面,提供了一种神经网络系统,包括:根据上述的计算装置;以及根据上述的神经网络芯片。根据本专利技术,提供了一种用于神经网络的编码方法,可以在不影响效果的情况下,极大的降低资源的消耗,从而节省资源开销,以在有限资源的条件下布置规模巨大的神经网络。附图说明从下面结合附图对本专利技术实施例的详细描述中,本专利技术的这些和/或其它方面和优点将变得更加清楚并更容易理解,其中:图1示出了链状的神经网络的示意图。图2示出了基于忆阻器的交叉开关结构的示意图。图3示出了在一个忆阻器上划分8级权重的权重统计分布图。图4示出了根据本专利技术的神经网络的编码技术的应用情境的示意图。图5示出了根据本专利技术的编码方法的总体流程图。图6示出了使用现有高低位拼接方法和根据本专利技术的编码方法的实验效果对比。具体实施方式为了使本领域技术人员更好地理解本专利技术,下面结合附图和具体实施方式对本专利技术作进一步详细说明。本申请提供一种新的编码方法本文档来自技高网
...

【技术保护点】
1.一种用于神经网络的非拼接权重训练方法,包括:权重定点化步骤,将权重矩阵的每个矩阵元素转换为具有预定比特位数的第一数;误差引入步骤,在所述第一数中引入具有预定标准差的噪声,获得第二数;和训练步骤,对以第二数表示的权重矩阵进行训练,训练至收敛后,得到训练结果,其中,所述训练结果将作为最终的权重矩阵,其各个矩阵元素被逐个写入对应表示一个矩阵元素的单个模拟电路器件中,其中通过单个模拟电路器件而非多个模拟电路器件的拼接来表示单个矩阵元素。

【技术特征摘要】
【国外来华专利技术】1.一种用于神经网络的非拼接权重训练方法,包括:权重定点化步骤,将权重矩阵的每个矩阵元素转换为具有预定比特位数的第一数;误差引入步骤,在所述第一数中引入具有预定标准差的噪声,获得第二数;和训练步骤,对以第二数表示的权重矩阵进行训练,训练至收敛后,得到训练结果,其中,所述训练结果将作为最终的权重矩阵,其各个矩阵元素被逐个写入对应表示一个矩阵元素的单个模拟电路器件中,其中通过单个模拟电路器件而非多个模拟电路器件的拼接来表示单个矩阵元素。2.根据权利要求1所述的非拼接权重训练方法,其中,在权重定点化步骤中,通过线性关系或对数关系进行第一数的转换。3.根据权利要求1所述的非拼接权重训练方法,其中,所述噪声为模拟电路的读写误差,并且服从正态分布规律。4.根据权利要求1所述的非拼接权重训练方法,其中,所述模拟电路器件为忆阻器、电容比较器或者电压比较器。5.根据权利要求1所述的非拼接权重训练方法,其中,所述第一数为定点数并且第二数为浮点数。6.一种用于神经网络的非拼接权重编码方法,包括如下步骤:将权重矩阵的每个矩阵元素逐个写入对应表示一个矩阵元素的单个模拟电路器件中,以便通过单个模拟电路器件而非多个模拟电路器件的拼接来表示单个矩阵元素,其...

【专利技术属性】
技术研发人员:张悠慧季宇张优扬
申请(专利权)人:清华大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1