CN113826122A - 人工神经网络的训练 - Google Patents
人工神经网络的训练 Download PDFInfo
- Publication number
- CN113826122A CN113826122A CN202080034604.1A CN202080034604A CN113826122A CN 113826122 A CN113826122 A CN 113826122A CN 202080034604 A CN202080034604 A CN 202080034604A CN 113826122 A CN113826122 A CN 113826122A
- Authority
- CN
- China
- Prior art keywords
- weight
- weights
- bit
- digital memory
- synapse
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 57
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 15
- 210000000225 synapse Anatomy 0.000 claims abstract description 114
- 210000002569 neuron Anatomy 0.000 claims abstract description 73
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000003860 storage Methods 0.000 claims abstract description 29
- 230000001902 propagating effect Effects 0.000 claims abstract description 12
- 210000004027 cell Anatomy 0.000 claims description 58
- 238000012545 processing Methods 0.000 claims description 23
- 238000004364 calculation method Methods 0.000 claims description 22
- 230000008672 reprogramming Effects 0.000 claims description 18
- 230000000644 propagated effect Effects 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 230000000737 periodic effect Effects 0.000 claims description 3
- 210000000352 storage cell Anatomy 0.000 claims description 3
- 239000003990 capacitor Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000004913 activation Effects 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 8
- 238000003491 array Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000000946 synaptic effect Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 101100269885 Arabidopsis thaliana ANN1 gene Proteins 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000002364 input neuron Anatomy 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 210000000653 nervous system Anatomy 0.000 description 1
- 210000004205 output neuron Anatomy 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Neurology (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Complex Calculations (AREA)
- Semiconductor Memories (AREA)
Abstract
提供了用于训练人工神经网络的方法和装置,该人工神经网络具有具备插入的突触层的一系列神经元层,每个突触层具有相应的N位定点权重集{w},用于经由信号传播和权重更新计算操作的迭代循环来对在其相邻神经元层之间传播的信号进行加权。这样的方法包括,对于每个突触层,将每个N位权重w的多个p个最低有效位存储在数字存储器中,并将每个权重w的接下来n位部分存储在包括数字存储器元件阵列的模拟乘法‑累加单元中。每个数字存储器元件包括n个二进制存储单元,用于存储权重的n位部分的各个位,其中n≥1且(p+n+m)=N,其中m≥0对应于突触层权重中的最高有效零位的限定数量。
Description
背景技术
本发明一般地涉及人工神经网络的训练。
人工神经网络(Artificial Neural Network,ANN)已被开发为以受神经系统的生物结构所启发的方式执行计算任务。这些网络基于生物系统的基本原理,由此神经元经由突触互连,突触在神经元之间传递加权信号。ANN基于包括具有插入的突触层的一系列神经元层的逻辑结构。突触层存储权重,用于对在其相邻神经元层中的神经元之间传播的信号进行加权。给定层中的神经元ni可以连接到下一层中的一个或多个神经元nj,并且不同的权重wij可以与每个神经元-神经元连接ni-nj相关联,以用于对从ni到nj发送的信号进行加权。每个神经元根据其累加的加权输入生成输出信号,由此加权信号可以在网络的连续层上传播。
ANN已成功应用于各种复杂的分析任务,例如语音和图像识别,例如基于MNIST(Modified National Institute of Standards and Technology)数据集的手写数字的分类。ANN经历训练阶段,在该阶段中确定各个突触层的权重集。在迭代训练过程中,网络暴露于训练数据集(例如,手写数字的图像数据),在该过程中当网络从训练数据“学习”时,权重被重复更新。训练涉及信号传播和权重更新计算操作的迭代循环,其中网络权重被逐渐更新,直到达到收敛条件。然后,具有经由训练操作定义权重的所得到的训练网络可以应用于新的(未见的)数据,以执行所讨论应用的推断任务。
ANN的训练可能具有多个神经元层和数百万个突触权重,是计算密集型和时间密集型的任务。已经提出了使用基于忆阻(memristive)突触阵列的模拟乘法-累加单元的训练方法来缓解这些问题,其中突触权重存储在例如PCM(Phase Change Memory)器件等忆阻器件的模拟电导值中。这些单元采用忆阻器件的交叉阵列,忆阻器件连接在行线和列线之间,用于将信号施加到器件,其中每个器件实施具有对应于(可变)器件电导的权重的突触。可以利用这些乘法-累加阵列的并行计算能力在具有O(1)计算复杂度的模拟域中执行廉价的向量-矩阵计算(如根据需要生成在突触层上传播的累加-加权信号)。这种将训练期间突触权重的更新累加在高精度数字累加器中的训练方法在本领域中是已知的。在本领域中还已知一种模拟乘法-累加单元,其中1位权重以数字方式存储在二进制SRAM(StaticRandom-Access Memory)单元中用于神经网络推断计算。
仍然需要进一步的神经网络训练系统来降低复杂性,同时保持训练的准确性。
发明内容
根据本发明的至少一个实施例,提供了一种用于训练人工神经网络的方法,该人工神经网络具有具备插入的突触层的一系列神经元层,每个突触层具有相应的N位定点权重集{w},用于经由信号传播和权重更新计算操作的迭代循环来对在其相邻神经元层之间传播的信号进行加权。该方法包括,对于每个突触层,将每个N位权重w的多个p个最低有效位存储在数字存储器中,并将每个权重w的接下来n位部分存储在包括数字存储器元件阵列的模拟乘法-累加单元中。每个数字存储器元件包括n个二进制存储单元,用于存储权重的n位部分的各个位,其中n≥1且(p+n+m)=N,其中m≥0对应于突触层权重中的最高有效零位的限定数量。该方法还包括通过将突触层将要加权的信号提供给乘法-累加单元来执行信号传播操作,以获得取决于所存储的权重的n位部分的累加加权信号,以及在数字处理单元(可操作地耦合到数字存储器和乘法-累加单元)中执行权重更新计算操作,以根据由神经元层传播的信号来计算突触层的更新权重。该方法还包括周期性地对数字存储器和乘法-累加单元重新编程以存储更新权重的位。
在体现本发明的训练方法中,以具有训练操作的期望精度的N位定点格式定义权重。对于每个N位权重w,将权重的(至少)p个最低有效位存储在数字存储器中。接下来n位部分(即,n个次最高有效位)被以数字方式存储在模拟乘法-累加单元的数字存储器元件的二进制存储单元中。该n位部分对应于权重w的精度降低的权重值。在信号传播操作期间,使用这些精度降低的权重来执行乘法累加操作。在权重更新操作中,更新的突触层的N位权重在数字处理单元中进行计算。因此,以数字精度执行权重更新计算,并且周期性地对数字存储器和乘法-累加单元重新编程以存储更新权重的适当位(即,分别为p个最低有效位和n位部分)。通过使用存储在数字存储器和乘法-累加阵列的数字元件的组合中的N位定点权重,该方法将权重更新操作中的准确性优点与用于信号传播的快速、低复杂度的向量矩阵计算相结合。以精度降低的权重执行向量矩阵运算,降低了复杂性,从而降低了乘法-累加单元的功率和片上面积。因此,本发明的实施例提供了基于乘法-累加阵列的快速、高效的ANN训练方法。
对于突触层,参数m可以被定义为m=0,而不管任何给定层的权重中最高有效零位的实际数量。这给出了一种简单的实施方式,其中(p+n)=N。在本发明的其他实施例中,可以根据突触层的权重{w}中的最高有效零位的数量来定义突触层的m的初始值,然后随着权重集{w}中的最高有效零位的数量的变化,m的值可以在训练期间动态地调整。在本发明的这些实施例中,权重w的至少p=(N-n-m)个最低有效位存储在数字存储器中,并且随着m的值在训练期间进行调整,存储在乘法-累加单元中的n位部分被重新定义并且动态地重新编程。这为各种网络层提供了精度降低的权重的更优定义,从而提高了训练准确性。
在本发明的一些实施例中,每个N位权重仅有p个最低有效位存储在数字存储器中。数字存储器可以分布在乘法-累加单元中,使得每个N位权重存储在单位单元中,该单位单元包括数字存储器的p位(存储该权重的p个最低有效位)和数字存储器元件(存储该权重的n位部分)。这为基于具有小占用空间的单位单元的组合数字/模拟存储单元提供了面积高效的实施方式。
在本发明的其他实施例中,每个N位权重的所有N位可以存储在提供数字存储器的数字存储单元中。这提供了在数字存储器中执行权重更新的高效操作,允许对乘法累加单元中精度降低的权重进行不频繁的更新。例如,只有在网络已经处理了许多批次的训练示例之后,才可以更新精度降低的权重。为了进一步提高权重更新操作的效率,只有在训练期间在数字存储器中该权重更新期间第(N-p)位发生位溢出时,更新权重的n位部分才可以从数字存储器复制到乘法-累加单元。
在所有突触层的N位权重都存储在数字存储器中的本发明实施例中,当信号传播通过网络时,乘法-累加单元可以重新用于不同层的精度降低的权重。随着连续的突触层集对于信号传播变得活跃,那些层的权重的n位部分可以动态地存储在数字存储器元件的阵列中。
本发明的至少一个其他实施例提供了用于在信号传播和权重更新计算操作的迭代训练循环中实施人工神经网络的装置。该装置包括存储每个突触层的每个N位权重w的多个p个最低有效位的数字存储器,以及用于存储突触层的每个权重w的接下来n位部分的模拟乘法-累加单元。如上所述,乘法-累加单元包括数字存储器元件阵列,每一个数字存储器元件包括n个二进制存储单元。该装置还包括数字处理单元,其可操作地耦合到数字存储器及乘法-累加单元。在信号传播操作中,数字处理单元适于将每个突触层将要加权的信号提供给乘法-累加单元,以获得取决于所存储的权重的n位部分的累加加权信号。数字处理单元还适于执行权重更新计算操作,以根据由神经元层传播的信号来计算每个突触层的更新权重,并且控制数字存储器和乘法-累加单元的周期性重新编程,以存储更新权重的适当位。
根据一个方面,提供了一种用于训练人工神经网络的方法,该人工神经网络具有具备插入的突触层的一系列神经元层,每个突触层具有相应的N位定点权重集{w},用于经由信号传播和权重更新计算操作的迭代循环来对在其相邻神经元层之间传播的信号进行加权。该方法包括,对于每个突触层:将每个N位权重w的多个p个最低有效位存储在数字存储器中;并将每个权重w的接下来n位部分存储在包括数字存储器元件阵列的模拟乘法-累加单元中,每个数字存储器元件包括n个二进制存储单元,用于存储权重的n位部分的各个位,其中n≥1且(p+n+m)=N,其中m≥0对应于突触层权重中的最高有效零位的限定数量;通过将突触层将要加权的信号提供给乘法-累加单元来执行所述信号传播操作,以获得取决于所存储的权重的n位部分的累加加权信号;以及在数字处理单元(可操作地耦合到数字存储器和乘法-累加单元)中执行权重更新计算操作,以根据由神经元层传播的信号来计算突触层的更新权重;以及周期性地对数字存储器和乘法-累加单元重新编程以存储更新权重的位。
根据另一方面,提供了一种用于实施人工神经网络的装置,该人工神经网络具有具备插入的突触层的一系列神经元层,每个突触层具有相应的N位定点权重集{w},用于经由信号传播和权重更新计算操作的迭代循环来对在其相邻神经元层之间传播的信号进行加权,该装置包括:存储每个突触层的每个N位权重w的多个p个最低有效位的数字存储器;存储突触层的每个权重w的接下来n位部分的模拟乘法-累加单元,乘法-累加单元包括数字存储器元件阵列,每个数字存储器元件包括n个二进制存储单元,用于存储权重的n位部分的各个位,其中n≥1且(p+n+m)=N,其中m≥0对应于突触层权重中的最高有效零位的限定数量;以及可操作地耦合到数字存储器和乘法-累加单元的数字处理单元,数字处理单元适于:在信号传播操作中,通过将每个突触层将要加权的信号提供给乘法-累加单元,以获得取决于所存储的权重的n位部分的累加加权信号;执行权重更新计算操作,以根据由神经元层传播的信号来计算每个突触层的更新权重;以及控制数字存储器和乘法-累加单元的周期性的重新编程以存储更新权重的所述位。
附图说明
下面将参考附图,通过说明性和非限制性示例,更详细地描述本发明的实施例:
图1是示例性ANN的示意图;
图2是根据本发明实施例的用于在训练操作中实施ANN的装置的示意性框图;
图3指示了根据本发明实施例的ANN层的权重w的位结构;
图4示出了根据本发明实施例的图2的装置的乘法-累加单元中的数字存储器元件阵列的结构;
图5指示了根据本发明实施例的由图2装置执行的训练方法的步骤;
图6示出了图2装置的实施例中的存储器装置的结构;
图7示出了根据本发明实施例的图6装置中的模拟SRAM乘法-累加阵列的更详细结构;
图8示出了根据本发明实施例的图7阵列中的SRAM单位单元的结构;
图9示出了根据本发明实施例的图2装置的另一实施例中的存储器装置;
图10示出了根据本发明实施例的图9装置中的组合数字/模拟SRAM单元的更详细结构;
图11示出了图2装置的又一实施例中的存储器装置;以及
图12示出了该装置的模拟SRAM乘法-累加阵列的另一实施例。
具体实施方式
图1示出了根据本发明的一个实施例的全连接ANN的一个示例的逻辑结构。ANN1包括一系列具有插入的突触层的神经元层。在示出的简单示例中,网络具有三个神经元层:接收网络输入信号的输入神经元的第一层N1;提供网络的输出信号的输出神经元的最后一层N3;以及输入层和输出层之间的神经元中间(“隐藏”)层N2。N1层神经元由n1i(1≤i≤l1)表示,N2层神经元由n2j(1≤j≤l2)表示,N3层神经元由n3k(1≤k≤l3)表示,其中lx是Nx层中神经元的数量。如图所示,每一层中的所有神经元都连接到下一层中的所有神经元,由此将来自一层的神经元激活信号传输到下一层的神经元。突触层S1和S2与神经元层一起插入,具有各自的权重集{wij}和{wjk},用于对在其相邻神经元层之间传播的信号进行加权。为N1神经元n1i和N2神经元n2j之间的每个连接定义的权重wij,由此根据该神经元对的相应权重wij对从n1i传播到n2j的信号进行加权。因此,如图所示,突触层S1的权重集{wij}可以由具有权重wij的l2行和l1列的矩阵W表示。由N2神经元n2j传播到N3神经元n3k的信号类似地由突触层S2的相应权重wjk加权,突触层S2的权重集{wjk}可以由具有权重wjk的l3行和l2列的矩阵表示。
输入层神经元可以简单地传输它们接收到的输入数据信号作为N1层的激活信号。对于随后层N2和N3,每个神经元n2j、n3k生成取决于其累加输入的激活信号,即来自前一层中其连接的神经元的累加加权激活信号。每个神经元将非线性激活函数f应用于此累加操作的结果A,以生成其神经元激活信号用于向前传输。例如,神经元n2j的累加输入Aj由点积计算 给出,其中x1i是来自神经元n1i的激活信号。因此,计算神经元n2j的累加输入的向量A可以由权重wij的矩阵W与来自神经元n1i的激活信号的向量x之间的矩阵-向量乘法Wx表示。然后,每个N2神经元n2j生成其激活信号x2j作为x2j=f(Aj)以传播到N3层。
虽然图1示出了全连接网络的简单示例,但是一般任何给定层中的神经元可以连接到下一层中的一个或多个神经元,并且网络可以包括隐藏神经元的一个或多个(通常多达30个或更多个)连续层。神经元层可以包括一个或多个偏置神经元(未示出),其不接收输入信号,但是将偏置信号传输到下一个神经元层。其他计算也可以与一些ANN层相关联。在一些ANN中,例如卷积神经网络(Convolutional Neural Network,CNN),神经元层可以包括神经元的三维体积,在突触层中具有相关联的三维权重阵列,尽管信号传播计算仍然可以按照矩阵-向量运算来表达。
ANN训练涉及信号传播和权重更新计算操作的迭代循环,以响应作为网络输入提供的训练示例的合集。例如,在手写数字的监督学习中,来自MNIST数据集的训练示例(其中标签(这里是0到9的数字类别)是已知的)被重复输入到网络中。对于每个训练示例,信号传播操作包括前向传播操作和后向传播操作,在前向传播操作中,信号从第一个神经元层向前传播到最后一个神经元层,在后向传播操作中,误差信号从最后一个神经元层通过网络后向传播。在前向传播操作中,通过如上所述的网络,激活信号x被逐层加权并传播。对于输出层中的每个神经元,将前向传播后的输出信号与当前训练示例的预期输出(基于已知标签)进行比较,以获得该神经元的误差信号ε。输出层神经元的误差信号通过网络的除输入层之外的所有层进行后向传播。在相邻神经元层之间后向传播的误差信号由插入的突触层的适当权重进行加权。因此,后向传播导致计算除输入层之外的每个神经元层的误差信号。然后,基于信号传播操作中神经元层传播的信号计算每个突触层的权重的更新。一般而言,可以针对给定迭代中的一些或所有权重计算权重更新。例如,一层中的神经元i与下一层中的神经元j之间的权重wij的更新Δwij可以计算为:
Δwij=ηxiεj
其中xi是来自神经元i的前向传播激活信号;εj是神经元j的后向传播误差信号;η是网络的预定义学习参数。因此,训练过程会逐渐更新网络权重,直到达到收敛条件,由此得到的具有训练权重的网络可以应用于ANN推断操作。
图2示出了根据优选实施例的用于在训练操作中实施ANN 1的装置。装置2包括存储器装置3和数字处理单元4,该数字处理单元在本文通过系统总线5可操作地耦合到存储器装置3。存储器装置3包括数字存储器(示意性地指示为6)和模拟乘法-累加(Multiply-Accumulate,MAC)单元7。如下文进一步描述的,MAC单元7包括至少一个基于二进制存储单元的数字存储器元件阵列。存储器控制装置,指示为存储器控制器8,控制数字存储器6和MAC单元7的操作。数字处理单元4包括中央处理单元(CPU)9和存储器10。存储器10存储一个或多个程序模块11,程序模块11包括可由CPU 9执行的程序指令,以实施下文描述操作的功能步骤。
DPU 4在迭代训练过程中控制装置2的操作。DPU适于生成由神经元层在前向传播和后向传播操作中传播的激活信号和误差信号,并且执行训练操作的权重更新计算。网络的各个突触层的权重集{w}存储在存储器装置3中。以N位定点格式定义权重w,其中N根据特定训练操作所需的精度来选择。在本发明的这个实施例中,N=32给出了高精度32位定点权重。然而,在本发明的其他实施例中,可以不同地设置N,例如N=64。
在装置2的操作中,突触层的N位权重w被存储在数字存储器6和MAC单元7的数字存储器元件的组合中。具体地,参考图3,对于每个突触层,在数字存储器6中存储每个权重w的至少多个p个最低有效位(LSB,Least-Significant Bit)。每个权重w的接下来n位部分(即第(p+1)位到第(p+n)位)至少在信号传播计算需要时被存储在MAC单元7中。具体地,每个n位部分被存储在MAC单元7中的数字存储器元件阵列中。这些数字存储器元件中的每一个都包括(至少)n个二进制存储单元,用于存储权重的n位部分的各个位。对于不同的突触层,n的值可以不同。然而,一般而言,n≥1且(p+n+m)=N,其中m≥0对应于突触层权重中的最高有效零位的限定数量。m的值因此可以在突触层之间变化,也可以如下文描述针对任何给定层都定义为m=0,在这种情况下(p+n)=N。因此,可以看出每个权重w的n位部分定义了该权重的精度降低的权重值,在下文用W表示。
根据一个实施例,图4示出了MAC单元7中存储突触层的精度降低的权重W的数字存储器元件阵列的逻辑结构。阵列15可以方便地由如图所示连接在行线与列线之间的数字存储器元件16(具有下文描述的相关联模拟电路)的交叉阵列实施。该示例示出了存储图1ANN中的突触层S1的精度降低的权重{Wij}的交叉阵列。阵列中的每个元件16存储所指示的相应精度降低的权重Wij的n位。元件16按逻辑行和列排列,每个器件连接在特定的行线ri和列线cj之间,用于将信号施加到该器件。行线和列线经由行和列数-模/模-数转换器(未示出)连接到存储器装置3的控制器8,该行和列数-模/模-数转换器在数字域和模拟域之间转换阵列输入/输出信号。
在突触层的信号传播操作中,由DPU 4生成的信号经由总线5提供给存储器装置3,其中控制器8将信号提供给存储精度降低的权重Wij的阵列15。在前向传播操作中,控制器8将激活信号x1i提供给阵列15的行线ri。在列线cj上得到的输出信号对应于由控制8返回至DPU 4的累加加权信号∑iWijx1i。突触层的后向传播计算可类似地通过将误差信号εj施加至阵列的列线以获得行线上的累加加权信号∑j(Wijεj)来执行。因此,阵列15实施跨突触层的信号传播所需的矩阵-向量计算。
虽然描述了装置2的示例性实施例,但是DPU 4可以包括一个或多个可以由一个或多个微处理器实施的CPU。存储器10可以包括一个或多个数据存储实体,并且可以包括主存储器,例如DRAM(动态随机存取存储器)和/或与CPU 9物理上分离的其他存储器,以及高速缓存和/或CPU 9本地的其他存储器。一般而言,DPU 4可以由一个或多个(通用或专用)计算机/可编程数据处理装置实施,由DPU 4执行的处理操作的功能步骤一般可以通过硬件或软件或其组合来实施。控制器8还可以包括一个或多个处理器,处理器能够由软件指令配置以控制存储器装置2执行本文描述的功能。在本发明的一些实施例中,DPU 4和/或控制器8可以包括电子电路,例如可编程逻辑电路、现场可编程门阵列(Field-Programmable GateArray,FPGA)或可编程逻辑阵列(Programmable Logic Array,PLA),用于执行程序指令以实施所描述的功能。在参考流程图描述本发明的实施例的情况下,将理解,流程图的每个块和/或流程图中的块的组合可以由计算机可执行程序指令来实施。程序指令/程序模块可以包括执行特定任务或实施特定抽象数据类型的例程、程序、对象、部件、逻辑、数据结构等。流程图中的块或块的组合也可以由基于专用硬件的系统来实施,该系统执行指定的功能或动作或执行专用硬件和计算机指令的组合。
系统总线5可以包括若干类型的总线结构中的任何一种的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口,以及使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例而非限制,这些体系结构包括工业标准体系结构(Industry Standard Architecture,ISA)总线、微通道体系结构(Micro ChannelArchitecture,MCA)总线、增强型ISA(Enhanced ISA,EISA)总线、视频电子标准协会(VideoElectronics Standards Association,VESA)局部总线和外围部件互连(PeripheralComponent Interconnect,PCI)总线。
MAC单元的存储器元件16中的二进制存储单元可以包括SRAM单元、DRAM(动态RAM)单元、MRAM(磁阻RAM)单元、浮栅单元、RRAM(电阻RAM)单元,或者更一般地包括用于以数字方式存储精度降低的权重的各个位的任何二进制单元。下文详细描述基于SRAM单元的模拟MAC阵列的示例性实施方式。一般而言,MAC单元7可以包括一个或多个模拟乘法-累加阵列,其中的每一个可以包括数字存储器元件的一个或多个交叉阵列。在任何时间,MAC单元7可以存储一个或多个突触层的精度降低的权重W的全部或其子集。在本发明的一些实施例中,每个突触层的所有权重W可以存储在MAC单元的相应阵列中。在其他实施例中,MAC单元可以仅存储当前在信号传播操作中活跃的突触层集(一个或多个)的权重W。然而,对于每个突触层S,由装置2实施的训练方法涉及图5的流程图中所指示的基本步骤。
如图5的步骤20所指示,突触层的每个高精度权重w的至少p个LSB被预先存储在数字存储器6中。如步骤21所指示,将该层权重的随后n位部分(即,精度降低的权重W)存储(预先存储或动态加载)到MAC单元7。步骤22表示突触层的信号传播操作。如参考图4所解释的,对于前向传播,将激活信号x提供给MAC阵列以获得取决于精度降低的权重W的累加加权信号。在随后的后向传播操作中,误差信号ε被提供给阵列以获得取决于权重W的累加加权信号。这些乘法-累加操作中生成的信号被返回至DPU4。在步骤23中,DPU 4计算突触层的更新N位权重w。这里,基于如上文所描述的由神经元层传播的信号为相应权重w计算权重更新Δw,并且每个权重被更新到w=w+Δw。在步骤24中,DPU 4确定是否已经达到训练操作的预定收敛条件。(收敛可以以各种已知方式定义,并且特定的收敛条件与本文描述的操作正交)。如果没有达到(步骤24处的“N”),则操作进行到步骤25,其中DPU 4控制存储器装置4中的权重w的重新编程。如下文进一步解释的,在任何给定的迭代中,取决于实施方式,该步骤可以涉及对存储在数字存储器6中的或者存储在数字存储器6和MAC单元7两者中的权重的位重新编程。然而,数字存储器6和MAC单元7在训练期间都被周期性地重新编程(在相同或不同时间)以存储更新权重w的适当位。然后,操作返回到步骤22,用于下一个训练样本。该过程迭代直到检测到收敛(步骤24处的“Y”),由此训练操作终止。
利用上述方法,可以在DPU 4中高精度(这里是32位精度)地计算权重更新,以确保ANN训练的准确性。此外,使用以数字方式存储在模拟MAC单元中的精度降低的权重W,可以有效地执行用于信号传播的乘法-累加计算。这里使用精度降低的权重降低了MAC单元的复杂度、功耗和片上面积。n的值可以在突触层之间变化,提供每层所需精度的权重W以优化训练。例如,在逐层的基础上,n的值可以被设置为1≤n≤8。根据优选实施例,体现本发明各方面的方法因此提供了人工神经网络的高效训练。
图6是第一实施例中图2的存储器装置3的结构的示意性表示。对于该实施例,对于所有突触层,参数m定义为m=0,由此(p+n)=N,在该示例中N=32。在本实施例的存储器装置30中,数字存储器由数字存储器(这里是SRAM)单元31提供,其仅存储突触层的每个32位权重w的p=(32-n)个LSB。由各个权重w的剩余最高n个有效位(Most-Significant Bit,MSB)定义的精度降低的权重W被存储在MAC单元的SRAM模拟MAC阵列33的数字存储器元件32中。数字存储单元31和MAC单元7共用的全局存储器控制器34,作用于存储单元以及到/来自用于信号传播的MAC阵列33的信号的输入/输出的权重的编程。在每次权重更新计算(图5的步骤23)之后,控制器34通过对数字SRAM 31中权重的p个LSB以及MAC阵列33中权重的n位部分重新编程,来存储更新的32位权重w+Δw。
图7是模拟MAC阵列33的实施例的更详细图示。阵列33包括SRAM单位单元35的行和列。每一行提供了存储n位精度降低权重W的数字存储器元件32。n位中的每一位存储在元件的相应单位单元35中。每个单位单元35包含数字存储器元件32的二进制SRAM单元和用于实施模拟MAC阵列的模拟电路。这些单位单元(以下称为“模拟”SRAM单元)的结构如图8所示出。每个单位单元35包括二元SRAM单元38、电容器39和如图示出连接的开关40、41a和41b。每个单位单元中的电容器39的大小取决于与存储在相连的二进制单元38中的位相对应的2的幂。图7中单位单元35的第一列存储每个n位权重的LSB。如果这些单元中的电容器39具有电容C,则:单位单元的第二列中的电容器39具有电容(21×C);第三列中的电容器具有电容(22×C);依此类推,直到第n列,其中电容器39具有电容(2n-1×C)。单元35的行连接到字线控制电路42,单元35的列连接到位线控制电路43。该控制电路包括标准SRAM电路,例如输入电压发生器、线驱动器/解码器电路、读出放大器和ADC/DAC电路,用于根据需要对单元进行寻址和重新编程以及输入/输出信号。
在阵列32中的乘法-累加操作中,元件32的SRAM单元38连接到图4阵列的适当行线ri。输入电压发生器每行施加不同的模拟电压,其中每个电压对应于该行的输入信号x的值。通过闭合开关41a,模拟SRAM单元35中的所有电容器被充电到该值。然后,输入电压被关断并且开关41a被断开,因此模拟单元35中的SRAM单元38然后基于这些单元存储“0”还是“1”而对它们的相邻电容器放电。具体地,如果单元38存储“0”,则开关40闭合以对电容器放电。如果单元38存储“1”,则开关40保持断开,如图8所示出。该步骤有效地将SRAM单元值乘以输入电压。随后,闭合连接到同一列线cj的SRAM单元中的开关41b,以短路同一列中的所有电容器,通过将这些电容器上的电荷重新分配来执行模拟加法和平均操作。通过电容器的指数大小调整来适应不同位的幂。因此,列线中电容器上的所得输出电压对应于乘法和累加操作的结果,并且经由ADC被取得。
图9示出了存储器装置的另一实施例。在该存储器装置45中,数字存储器分布在MAC单元阵列中。突触层的每个N位权重w被存储在组合的数字/模拟SRAM MAC阵列47的单位单元46中。每个单位单元46包括数字SRAM的p=(32-n)位,存储该权重的p个LSB,以及n个模拟SRAM单元35,其对应于上文所描述的MAC阵列33的行。该n个模拟SRAM单元的二进制SRAM单元38提供存储n位精度降低的权重W的n位数字存储器元件32。存储器控制器48控制对如上文所描述的用于乘法-累加操作的单位单元46的模拟SRAM单元35的访问,以及对单位单元46的数字SRAM的访问。根据本发明的一个实施例,在图10中更详细地示出了组合MAC阵列47的结构。该实施例的组合数字/模拟单位单元为高面积效率的实施方式提供了小的片上占用空间。
图11示出存储器装置的又一实施例的结构。与图6那些部件相对应的部件由类似的附图标记指示。该存储器装置50包括数字存储器(这里是SRAM)单元51,其存储突触层的每个32位权重w的所有位。如上文所描述,将n位精度降低的权重W存储在SRAM模拟MAC阵列33的数字存储器元件32中。如前文所描述,标准SRAM控制器52控制数字SRAM单元51,MAC控制器53控制MAC阵列33。在该实施例中,每次权重更新计算(图5的步骤23)之后,SRAM控制器52将存储在数字单元51中的32位权重w重新编程为更新的权重w+Δw。因此,在数字SRAM 51中累加权重更新。SRAM控制器52周期性地(例如,在已经为一批训练示例执行了权重更新操作之后)经由MAC控制器53将n位精度降低的权重W从单元51复制到MAC单元。因此,更新后的32位权重的n位部分复制到MAC阵列33中存储对应精度降低的权重的数字存储器元件32。在本文描述的本发明实施例中,存储器控制器52可以适于只有在该批权重更新操作中对该权重的更新期间第(N-p)位发生位溢出时,才将更新权重w的n位部分复制到MAC单元。这减少了用于更新精度降低的权重的编程操作的数量,并且因此减少了SRAM 51和MAC单元之间的数据传输。
在图6和图9的存储器装置中,每个突触层的精度降低的权重W存储在MAC单元的相应阵列中。利用图11的存储器结构,随着信号传播的进行,给定的MAC阵列可以被重新用于不同突触层的权重W。具体地,在DPU4的控制下,随着信号传播操作的进行和不同的层变得活跃,SRAM控制器52可以动态地存储MAC阵列中连续的活跃突触层集(一个或多个)的权重w的n位部分。MAC阵列可以用于为一批训练示例在活跃层上执行传播,然后可以使用精度降低的权重为随后的活跃层集重新编程。
在图11实施例的修改中,如果突触层的权重矩阵对于MAC阵列而言太大而不能存储该层的所有权重W,则可以通过在MAC阵列中连续存储权重W的块(有效子矩阵)、为每个块执行乘法累加操作、然后为DPU 4中的所有块累加所得信号来执行信号传播操作。
图12示出了用于存储器装置2中的模拟MAC阵列的另一实施例。除了阵列55的所有模拟SRAM单元56包含具有相同电容C的电容器外,该阵列55的部件一般对应于图7的部件。该实施例的阵列控制电路包括57所指示的数字移位相加电路。该电路在乘法-累加操作中对列线上的输出执行移位相加操作,以适应存储在单元56的不同列中的位的2的不同次幂。在列线输出的数字化之后,电路57:将第n列的数字输出值移位(n-1)位;将第(n-1)列的数字输出值移位(n-2)位;等等。然后,在电路57中加入来自所有n列的结果,以获得图4的逻辑阵列配置中的存储器元件列中的n位权重的乘法-累加操作的结果。MAC阵列55也可以集成在与图10的阵列结构相对应的组合数字/模拟阵列结构中。
根据网络,不同突触层中的权重可以跨越不同的范围,并且使用N位权重的相同n位来表示精度降低的权重W可能不是最优的。这可以通过根据每个突触层的权重中的最高有效零位的数量来定义每个突触层参数m(见图3)的初始值来解决。具体地,如果层中的所有权重w具有M(M>0)个最高有效零位,则可以将m设置为初始值m=M。然后,存储在数字存储器中的(至少)多个p个LSB被定义为p=(N-n-m)。在训练期间,在存储器控制器8的控制下,根据突触层的权重中的最高有效零位的数量的变化来调整m的值。响应于调整m的值,根据调整后的m的值重新定义突触层的权重的n位部分。因此,图3中的n位部分有效地沿着N位权重值而“滑动”,因为m随着权重{w}中的零MSB的数量而变化。然后,当需要存储重新定义的权重的n位部分时,存储器控制器8对MAC单元重新编程。例如,重新定义的n位部分可以从存储于存储器装置的数字SRAM中的N位权重复制。
对于突触层,当m>0时,基于MAC阵列中n位权重值的乘法-累加操作的结果可以在提供给DPU 4之前在存储器控制器8中按2-m比例缩放。当在数字存储器中N位权重的权重更新期间检测到第(N-m)位的位溢出时,存储器控制器8可以降低用于层的m的值。存储器控制器可以周期性地读取为层存储的当前n位权重,并在所有n位权重的MSB为零时增加m。该方案给出了用于乘法累加操作的权重的更优定义,提高了训练的准确性。
当然,可以对所描述的本发明的示例性实施例进行许多改变和修改。例如,虽然在MAC单元7中执行乘法-累加运算以用于上文的前向传播和后向传播操作,但是可以设想本发明的实施例,其中MAC单元7仅用于前向传播和后向传播中的一个。例如,前向传播可以使用MAC单元7来执行,而后向传播计算在DPU 4中完成。
流程图的步骤可以以与示出的顺序不同的顺序来实施,并且在适当的情况下可以并行地执行一些步骤。一般而言,在本文参考体现本发明的各方面的方法来描述特征的情况下,可以在体现本发明的方面的装置中提供对应的特征,反之亦然。
本发明的各种实施例的描述已经出于说明的目的而呈现,但并不旨在穷举或限于所公开的本发明的实施例。在不背离本发明所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员来说将是显而易见的。选择本文所使用的术语以最好地解释本发明的实施例的原理、实际应用或对市场上发现的技术的技术改进,或为了使本领域的其他普通技术人员能够理解本文所公开的本发明的实施例。
本发明可以是系统、计算机实施方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,计算机可读存储介质上具有用于使处理器执行本发明的方面的计算机可读程序指令。
计算机可读存储介质可以是能够保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或上述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码装置(例如,打孔卡或其上记录有指令的凹槽中的凸起结构),以及上述的任何合适的组合。如本文所使用的,计算机可读存储介质不应被解释为本身是瞬态信号,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲),或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(Instruction-Set-Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,该编程语言包括面向对象的编程语言(例如Smalltalk、C++等)以及传统的过程式编程语言(例如“C”编程语言或类似的编程语言)。计算机可读程序指令可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为独立的软件包执行、部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路,可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以个性化电子电路,来执行本发明的方面。
本文参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各方面。应当理解,流程图和/或框图的每个块以及流程图和/或框图中的块的组合,可以由计算机可读程序指令来实施。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以生产机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实施流程图和/或框图的一个或多个块中指定的功能/动作的组件。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式运行,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实施流程图和/或框图的一个或多个块中指定的功能/动作的方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤以产生计算机实施的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实施流程图和/或框图的一个或多个块中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能和操作。在这点上,流程图或框图中的每个块可以表示指令的模块、段或部分,其包括用于实施指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,块中所提及的功能可以不按图中所提及的顺序发生。例如,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图的每个块以及框图和/或流程图中的块的组合,可以由专用的基于硬件的系统来实施,该系统执行指定功能或动作,或执行专用硬件和计算机指令的组合。
本发明的各种实施例的描述已经出于说明的目的而呈现,但并不旨在穷举或限于所公开的本发明的实施例。在不背离本发明所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员来说将是显而易见的。选择本文所使用的术语以最好地解释本发明的实施例的原理、实际应用或对市场上发现的技术的技术改进,或为了使本领域的其他普通技术人员能够理解本文所公开的本发明的实施例。
Claims (26)
1.一种用于训练人工神经网络的方法,所述人工神经网络具有具备插入的突触层的一系列神经元层,每个突触层具有相应的N位定点权重集{w},用于经由信号传播和权重更新计算操作的迭代循环来对在其相邻神经元层之间传播的信号进行加权,所述方法包括,对于每个突触层:
将每个N位权重w的多个p个最低有效位存储在数字存储器中;
将每个权重w的接下来n位部分存储在包括数字存储器元件阵列的模拟乘法-累加单元中,每个数字存储器元件包括n个二进制存储单元,用于存储权重的所述n位部分的各个位,其中n≥1且(p+n+m)=N,其中m≥0对应于所述突触层权重中的最高有效零位的限定数量;
通过将所述突触层将要加权的信号提供给所述乘法-累加单元来执行所述信号传播操作,以获得取决于所存储的所述权重的n位部分的累加加权信号;
在可操作地耦合到所述数字存储器和所述乘法-累加单元的数字处理单元中执行所述权重更新计算操作,以根据由所述神经元层传播的信号来计算所述突触层的更新权重;以及
周期性地对所述数字存储器和所述乘法-累加单元重新编程以存储所述更新权重的所述位。
2.根据权利要求1所述的方法,其中,对于所述突触层,m被定义为m=0,由此(p+n)=N。
3.根据权利要求2所述的方法,其中,每个N位权重仅有所述p个最低有效位被存储在所述数字存储器中。
4.根据权利要求3所述的方法,其中,所述重新编程是在所述权重更新计算操作之后,通过对所述数字存储器中的权重的所述p个最低有效位和所述乘法-累加单元中的权重的所述n位部分重新编程来执行的。
5.根据权利要求4所述的方法,其中,所述数字存储器在数字存储单元中提供,并且其中,所述重新编程由所述数字存储单元和所述乘法-累加单元共用的存储器控制器执行。
6.根据权利要求4所述的方法,其中,所述数字存储器分布在所述乘法-累加单元中,使得每个N位权重存储在单位单元中,所述单位单元包括存储所述权重的p个最低有效位的数字存储器的p位,以及存储所述权重的所述n位部分的所述数字存储器元件。
7.根据权利要求2所述的方法,包括将每个N位权重的所有N位存储在提供所述数字存储器的数字存储单元中。
8.根据权利要求7所述的方法,其中,所述重新编程通过以下执行:
在所述权重更新计算操作之后,将所述数字存储单元中的N位权重重新编程为所述更新权重;以及
周期性地将所述数字存储单元中的更新权重的所述n位部分复制到所述数字存储器元件,所述数字存储器元件将所述权重的所述n位部分存储在所述乘法-累加单元中。
9.根据权利要求8所述的方法,包括在一批权重更新计算操作之后将更新权重的所述n位部分复制到所述数字存储器元件。
10.根据权利要求9所述的方法,包括只有在所述批权重更新计算操作中对所述权重的更新期间第(N-p)位发生位溢出时,才将更新权重的所述n位部分复制到所述数字存储器元件。
11.根据权利要求7所述的方法,还包括:
将所有突触层的N位权重存储在所述数字存储单元中;以及
将连续的所述突触层的集合的权重的n位部分动态地存储在所述数字存储器元件阵列中,以执行所述信号传播操作。
12.根据权利要求1所述的方法,还包括:
根据所述突触层的权重中的所述最高有效零位的数量来定义所述突触层的m的初始值;
对于所述突触层,定义所述多个p为p=(N-n-m);
根据所述突触层的权重中的所述最高有效零位的数量的变化,在所述训练期间调整m的值;以及
响应于调整m的值,根据所述调整后的m的值重新定义所述突触层的所述权重的所述n位部分,以及对所述数字存储器元件阵列重新编程以存储所述权重的所述重新定义的n位部分。
13.根据权利要求1所述的方法,其中,每个所述信号传播操作包括信号从第一神经元层通过网络传播的前向传播操作,以及信号从最后神经元层通过网络后向传播的后向传播操作,所述方法包括,对于每个突触层,将在所述前向传播操作和后向传播操作中将由所述突触层加权的信号提供给所述乘法-累加单元。
14.根据权利要求1所述的方法,包括定义每个突触层的相应的n的值。
15.根据权利要求1所述的方法,其中,对于每个突触层,N=32且n≤8。
16.一种用于实施人工神经网络的装置,所述人工神经网络具有具备插入的突触层的一系列神经元层,每个突触层具有相应的N位定点权重集{w},用于在信号传播和权重更新计算操作的迭代训练循环中,在相邻神经元层之间传播的信号进行加权,所述装置包括:
存储每个突触层的每个N位权重w的多个p个最低有效位的数字存储器;
存储所述突触层的每个权重w的接下来n位部分的模拟乘法-累加单元,所述乘法-累加单元包括数字存储器元件阵列,每个数字存储器元件包括n个二进制存储单元,用于存储权重的所述n位部分的各个位,其中n≥1且(p+n+m)=N,其中m≥0对应于所述突触层的权重中的最高有效零位的限定数量;以及
可操作地耦合到所述数字存储器和乘法-累加单元的数字处理单元,所述数字处理单元被适配为:
在所述信号传播操作中,通过将每个突触层将要加权的信号提供给所述乘法-累加单元,以获得取决于所存储的所述权重的所述n位部分的累加加权信号;
执行所述权重更新计算操作,以根据由所述神经元层传播的信号来计算每个突触层的更新权重;以及
控制所述数字存储器和所述乘法-累加单元的周期性的重新编程,以存储所述更新权重的所述位。
17.根据权利要求16所述的装置,其中,对于所述突触层,m被定义为m=0,由此(p+n)=N。
18.根据权利要求17所述的装置,其中,每个N位权重仅有所述p个最低有效位存储在所述数字存储器中。
19.根据权利要求18所述的装置,包括提供所述数字存储器的数字存储单元,以及所述数字存储单元和所述乘法-累加单元共用的用于执行所述重新编程的存储器控制器。
20.根据权利要求18所述的装置,其中,所述数字存储器分布在所述乘法-累加单元中,使得每个N位权重存储在单位单元中,所述单位单元包括存储所述权重的p个最低有效位的数字存储器的p位,以及存储所述权重的所述n位部分的所述数字存储器元件。
21.根据权利要求17所述的装置,其中,将每个N位权重的所有N位存储在提供所述数字存储器的数字存储单元中。
22.根据权利要求21所述的装置,其中,所有突触层的N位权重被存储在所述数字存储单元中,并且其中,所述装置被适配为将连续的所述突触层的集合的权重的n位部分动态地存储在所述数字存储器元件阵列中,以执行所述信号传播操作。
23.根据权利要求16所述的装置,其中,所述乘法-累加单元包括存储每个突触层的所述权重的所述n位部分的所述数字存储器元件的相应阵列。
24.根据权利要求16所述的装置,其中,对于每个突触层,根据所述突触层的权重中的所述最高有效零位的数量来定义m的初始值,并且对于所述突触层,所述多个p被定义为p=(N-n-m),其中所述装置被适配为:
根据所述突触层的权重中的所述最高有效零位的数量的变化,在所述训练期间调整所述突触层的m的值;以及
响应于调整m的值,根据调整后的m的值重新定义所述突触层的所述权重的所述n位部分,以及对所述数字存储器元件阵列重新编程以存储所述权重的所述重新定义的n位部分。
25.根据权利要求16所述的装置,其中,所述二进制存储单元包括SRAM单元。
26.一种计算机程序,包括程序代码组件,当所述程序在计算机上运行时,所述程序代码组件被适配为执行权利要求1至15中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/413,738 | 2019-05-16 | ||
US16/413,738 US11531898B2 (en) | 2019-05-16 | 2019-05-16 | Training of artificial neural networks |
PCT/EP2020/063194 WO2020229468A1 (en) | 2019-05-16 | 2020-05-12 | Training of artificial neural networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113826122A true CN113826122A (zh) | 2021-12-21 |
Family
ID=70738523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080034604.1A Pending CN113826122A (zh) | 2019-05-16 | 2020-05-12 | 人工神经网络的训练 |
Country Status (10)
Country | Link |
---|---|
US (1) | US11531898B2 (zh) |
EP (1) | EP3970073A1 (zh) |
JP (1) | JP7427030B2 (zh) |
KR (1) | KR102672586B1 (zh) |
CN (1) | CN113826122A (zh) |
AU (1) | AU2020274862B2 (zh) |
CA (1) | CA3137231A1 (zh) |
IL (1) | IL288055B2 (zh) |
SG (1) | SG11202110345XA (zh) |
WO (1) | WO2020229468A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11301752B2 (en) * | 2017-10-24 | 2022-04-12 | International Business Machines Corporation | Memory configuration for implementing a neural network |
US12026601B2 (en) * | 2019-06-26 | 2024-07-02 | Micron Technology, Inc. | Stacked artificial neural networks |
US20210049504A1 (en) * | 2019-08-14 | 2021-02-18 | Rain Neuromorphics Inc. | Analog system using equilibrium propagation for learning |
US11562205B2 (en) * | 2019-09-19 | 2023-01-24 | Qualcomm Incorporated | Parallel processing of a convolutional layer of a neural network with compute-in-memory array |
US11347477B2 (en) * | 2019-09-27 | 2022-05-31 | Intel Corporation | Compute in/near memory (CIM) circuit architecture for unified matrix-matrix and matrix-vector computations |
KR20220119315A (ko) * | 2021-02-19 | 2022-08-29 | 베리실리콘 마이크로일렉트로닉스 (상하이) 컴퍼니 리미티드 | 누적 시스템들 및 방법들 |
TWI775402B (zh) * | 2021-04-22 | 2022-08-21 | 臺灣發展軟體科技股份有限公司 | 資料處理電路及故障減輕方法 |
US20220414444A1 (en) * | 2021-06-29 | 2022-12-29 | Qualcomm Incorporated | Computation in memory (cim) architecture and dataflow supporting a depth-wise convolutional neural network (cnn) |
US20230083270A1 (en) * | 2021-09-14 | 2023-03-16 | International Business Machines Corporation | Mixed signal circuitry for bitwise multiplication with different accuracies |
JP7209068B1 (ja) | 2021-10-19 | 2023-01-19 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
KR102517156B1 (ko) * | 2021-12-10 | 2023-04-03 | 인하대학교 산학협력단 | 경계값을 이용한 이진 인공신경망 학습 방법 |
US11899518B2 (en) | 2021-12-15 | 2024-02-13 | Microsoft Technology Licensing, Llc | Analog MAC aware DNN improvement |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160358075A1 (en) | 2015-06-08 | 2016-12-08 | The Regents Of The University Of Michigan | System for implementing a sparse coding algorithm |
US10216703B2 (en) | 2016-02-08 | 2019-02-26 | Spero Devices, Inc. | Analog co-processor |
CN107533459B (zh) * | 2016-03-31 | 2020-11-20 | 慧与发展有限责任合伙企业 | 使用电阻存储器阵列的数据处理方法和单元 |
JP6556768B2 (ja) | 2017-01-25 | 2019-08-07 | 株式会社東芝 | 積和演算器、ネットワークユニットおよびネットワーク装置 |
JP6794891B2 (ja) | 2017-03-22 | 2020-12-02 | 株式会社デンソー | ニューラルネットワーク回路 |
US10726514B2 (en) | 2017-04-28 | 2020-07-28 | Intel Corporation | Compute optimizations for low precision machine learning operations |
US20190005035A1 (en) | 2017-05-31 | 2019-01-03 | Semiconductor Energy Laboratory Co., Ltd. | Information search system, intellectual property information search system, information search method, and intellectual property information search method |
US11348002B2 (en) | 2017-10-24 | 2022-05-31 | International Business Machines Corporation | Training of artificial neural networks |
US11138497B2 (en) * | 2018-07-17 | 2021-10-05 | Macronix International Co., Ltd | In-memory computing devices for neural networks |
US11061646B2 (en) | 2018-09-28 | 2021-07-13 | Intel Corporation | Compute in memory circuits with multi-Vdd arrays and/or analog multipliers |
US11133059B2 (en) * | 2018-12-06 | 2021-09-28 | Western Digital Technologies, Inc. | Non-volatile memory die with deep learning neural network |
-
2019
- 2019-05-16 US US16/413,738 patent/US11531898B2/en active Active
-
2020
- 2020-05-12 IL IL288055A patent/IL288055B2/en unknown
- 2020-05-12 AU AU2020274862A patent/AU2020274862B2/en active Active
- 2020-05-12 CA CA3137231A patent/CA3137231A1/en active Pending
- 2020-05-12 EP EP20726050.6A patent/EP3970073A1/en active Pending
- 2020-05-12 JP JP2021568206A patent/JP7427030B2/ja active Active
- 2020-05-12 SG SG11202110345XA patent/SG11202110345XA/en unknown
- 2020-05-12 WO PCT/EP2020/063194 patent/WO2020229468A1/en active Application Filing
- 2020-05-12 CN CN202080034604.1A patent/CN113826122A/zh active Pending
- 2020-05-12 KR KR1020217036993A patent/KR102672586B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR102672586B1 (ko) | 2024-06-07 |
EP3970073A1 (en) | 2022-03-23 |
WO2020229468A1 (en) | 2020-11-19 |
IL288055B1 (en) | 2024-01-01 |
SG11202110345XA (en) | 2021-10-28 |
US20200364577A1 (en) | 2020-11-19 |
IL288055A (en) | 2022-01-01 |
JP2022533124A (ja) | 2022-07-21 |
CA3137231A1 (en) | 2020-11-19 |
IL288055B2 (en) | 2024-05-01 |
AU2020274862B2 (en) | 2023-03-09 |
US11531898B2 (en) | 2022-12-20 |
AU2020274862A1 (en) | 2021-10-14 |
KR20210154816A (ko) | 2021-12-21 |
JP7427030B2 (ja) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7427030B2 (ja) | 人工ニューラル・ネットワークのトレーニング方法、装置、プログラム | |
JP7182835B2 (ja) | 人工ニューラル・ネットワークを訓練する方法および人工ニューラル・ネットワークを実施する装置(人工ニューラル・ネットワークの訓練) | |
CN107688849B (zh) | 一种动态策略定点化训练方法及装置 | |
US11373092B2 (en) | Training of artificial neural networks | |
CN107679618B (zh) | 一种静态策略定点化训练方法及装置 | |
US9646243B1 (en) | Convolutional neural networks using resistive processing unit array | |
US11386319B2 (en) | Training of artificial neural networks | |
Ponghiran et al. | Spiking neural networks with improved inherent recurrence dynamics for sequential learning | |
AU2021291671B2 (en) | Drift regularization to counteract variation in drift coefficients for analog accelerators | |
TW202234232A (zh) | 用於標準化功能的數位電路系統 | |
EP4035273A1 (en) | Design and training of binary neurons and binary neural networks with error correcting codes | |
KR20230029759A (ko) | 아날로그 크로스바 어레이들을 업데이트하기 위한 희소 수정가능 비트 길이 결정 펄스 생성 | |
Zhang et al. | Xma2: A crossbar-aware multi-task adaption framework via 2-tier masks | |
US20220391684A1 (en) | Asynchronous mixed precision update of resistive processing unit array | |
CN115796250A (zh) | 权重部署方法及装置、电子设备和存储介质 | |
CN116128035A (zh) | 训练方法及装置、电子设备和计算机存储介质 | |
CN118860328A (zh) | 面向存算一体架构的非均匀数值表示方法、装置及存储介质 | |
CN118228785A (zh) | 使用基于静态随机存取存储器的存内计算来进行非线性函数逼近的方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |