CN111279366B - 人工神经网络的训练 - Google Patents

人工神经网络的训练 Download PDF

Info

Publication number
CN111279366B
CN111279366B CN201880069287.XA CN201880069287A CN111279366B CN 111279366 B CN111279366 B CN 111279366B CN 201880069287 A CN201880069287 A CN 201880069287A CN 111279366 B CN111279366 B CN 111279366B
Authority
CN
China
Prior art keywords
weight
digital
value
memristive
processing unit
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.)
Active
Application number
CN201880069287.XA
Other languages
English (en)
Other versions
CN111279366A (zh
Inventor
M·勒加洛-布尔多
A·塞巴斯蒂安
I·博伊巴特·卡拉
E·S·埃勒夫塞里奥
N·萨西德哈兰·拉贾勒克什米
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN111279366A publication Critical patent/CN111279366A/zh
Application granted granted Critical
Publication of CN111279366B publication Critical patent/CN111279366B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Image Analysis (AREA)
  • Complex Calculations (AREA)
  • Feedback Control In General (AREA)

Abstract

提供用于训练人工神经网络的方法和装置,所述人工神经网络具有插入突触层的一系列神经元层。一组忆阻器件的交叉式阵列,连接在行线和列线之间,实现所述突触层。每个忆阻器件存储一个将连续的神经元层中相应的一对神经元互连的突触的权重
Figure DDA0002464366220000011
。该训练方法包括通过以下步骤来执行迭代训练方案的前向传播、后向传播和权重更新操作:在方案的前向传播和后向传播操作中的至少一个中,将与相应神经元相关联的输入信号施加到该组阵列的行线和列线中的一种线,以获得所述行线和列线中的另一种线上的输出信号;将对应于所述输入和输出信号的数字信号值存储在可操作地耦合到该组阵列的数字处理单元中。通过在数字处理单元中根据所述数字信号值为相应忆阻器件计算数字权重校正值ΔW,并将编程信号施加到这些器件以根据相应数字权重校正值ΔW更新所存储的权重
Figure DDA0002464366220000012
,来执行所述方案的权重更新操作。

Description

人工神经网络的训练
背景技术
本发明总体上涉及人工神经网络的训练。
人工神经网络(ANN)已经被开发用来以神经系统生物学结构所启发的方式执行计算任务。这些网络基于的是神经元通过突触互连、突触在神经元之间传递信号的生物系统的原理。生物神经元处理其输入信号并生成输出信号,输出信号通过各自的突触发送到其他神经元。突触所发送信号的强度取决于突触的电导,也称为“突触功效”(synapticefficacy)或“权重”(weight)。突触的权重可以通过神经元的活动来改变,突触的这种“可塑性”对于记忆和其他脑功能至关重要。人工神经网络基于这样一种逻辑结构,其中,连续的神经元层插入突触层,每个突触将连续的神经元层中相应的一对神经元互连。经由突触中继的信号,按照为突触存储的相应突触权重被加权。加权的信号因此可以通过网络的一个接一个的层从输入神经元层向输出神经元层传播。
人工神经网络已经被成功地应用于诸如语音和图像识别等各种复杂的分析任务,例如基于MNIST(修改的国家标准与技术研究所)数据集的手写数字的分类。ANN操作包括一个在其中确定突触权重的训练阶段。在迭代训练方案中,向人工神经网络提供一组训练数据,例如手写数字的图像数据,随着网络根据训练数据进行“学习”,权重被重复地更新。在手写数字的监督学习中,例如,将标签(这里是从0到9的数字类别)已知的MNIST数据重复地提供给网络。将最后一个神经元层的输出信号与针对每个数位的预期网络输出进行比较,以确定误差,然后重复地对权重进行更新以减少误差,直到达到收敛条件。具体地,迭代训练过程的步骤包括前向传播操作、后向传播操作和权重更新操作。在前向传播操作中,将从训练数据导出的信号从输入神经元层传播到输出神经元层。然后,在后向传播操作中,通过网络将所得到的误差信号从输出神经元层传播回输入神经元层,以获得除输入层外的每一层中的神经元的误差信号。然后在权重更新操作中,基于这些误差信号和前向传播期间的神经元输出信号来更新突触权重。
人工神经网络的训练,可能具有多个(例如10个或更多)神经元层和数百万个突触权重,是需要大量处理资源和大量训练时间的计算密集型任务。已经有人提出了基于忆阻突触(memristive synapses)的交叉式阵列的模拟训练方法来缓解这些问题。这些方法利用了忆阻器件(memristive devices)阵列的并行计算能力—忆阻器件连接在行线和列线之间,用于将信号施加到器件,其中每个器件实现具有对应于(可变)器件电导的权重的突触。这些方法描述于:《使用相变存储器作为突触权重元件的大规模神经网络(165000个突触)的实验演示和耐受》(“Experimental demonstration and tolerancing of a large-scale neural network(165000synapses)using phase-change memory as the synapticweight element”,Burr et al.,IEEE Transactions on Electron Devices 62(11),pp.3498-3507,2015);以及《利用电阻性交叉点器件加速深度神经网络训练:设计考虑》(“Acceleration of Deep Neural Network Training with Resistive Cross-PointDevices:Design Considerations”,Gokmen&Vlasov,Frontiers in Neuroscience,Vol.10,2016)。这些系统通过将信号施加到行线和/或列线来对忆阻阵列执行前向传播、后向传播和权重更新计算,其中将从前向传播信号和后向传播误差导出的脉冲信号同时施加到器件的行线和列线用于权重更新操作。通过以这种方式利用忆阻阵列的能力,这些方法显著地降低了与ANN训练相关联的计算复杂度。然而,与高精度64位浮点数的实现相比,这两种系统的训练精度都有显著降低。Burr的系统对器件缺陷高度敏感,Gokmen的系统则要求现有忆阻器件的不可实现的大量电导状态才能获得与浮点实现方式相当的精度。
发明内容
根据本发明的至少一个实施例,提供了一种训练人工神经网络的方法,该人工神经网络具有连续的神经元层和一组连接在行线和列线之间的忆阻器件的交叉式阵列,交叉式阵列实现插入所述神经元层的突触层。每一个忆阻器件存储互连连续神经元层中的一对神经元的突触的权重
Figure BDA0002464366200000031
该方法包括执行迭代训练方案的前向传播、后向传播和权重更新操作,其中,在该方案的前向传播和后向传播操作中的至少一个中,将与相应神经元相关联的输入信号施加到该组阵列的行线和列线的其中之一,以获得行线和列线的另一个上的输出信号,并将与输入和输出信号相对应的数字信号值存储在与该组阵列操作地耦合的数字处理单元中。通过以下步骤来实现该方案的权重更新操作:在数字处理单元中为各个忆阻器件计算与所存储的数字信号值相关的数字权重校正值ΔW,以及向这些器件施加编程信号以根据各自的数字权重校正值ΔW来更新所存储的权重/>
Figure BDA0002464366200000032
本发明的实施例提供混合精度的人工神经网络训练方法,其中在前向和后向传播步骤中的一个或两个步骤中使用一组忆阻阵列进行(固有低精度)计算,并且使用数字处理单元来执行权重更新步骤的权重更新计算。这包括,作为权重更新计算的一个特别步骤,计算忆阻器件的数字权重校正值ΔW,即,对应于存储的权重的增量变化。以数字精度执行该计算,然后使用所得到的数字值来确定为更新所存储的权重而向忆阻器件施加的编程信号。该技术提供了权重更新操作中的改进的精度,同时保留了与忆阻阵列相关联的益处,即显著的速度、功率和面密度优势。因此,本发明的实施例提供了基于忆阻阵列的快速、高效的ANN训练方法。如针对下文描述的实施例所展示的那样,可容易地实现与浮点实施方案相当的准确度。
优选实施例通过将输入信号施加到该组阵列的行线以获得列线上的输出信号,来至少执行忆阻阵列上的前向传播操作。为了进一步利用忆阻阵列的并行计算功能,优选地,还通过将输入信号施加到该组阵列的列线以获得行线上的输出信号,来执行忆阻阵列上的后向传播。
在第一权重更新过程中,数字处理单元可以预定步长ε对每个权重校正值ΔW进行四舍五入,以产生舍入校正值ΔW。然后,施加到忆阻器件的编程信号将该器件的存储的权重W调整一个依舍入校正值
Figure BDA0002464366200000043
而定的量。与对新权重的完全重新编程相反,这执行了对所存储权重的增量更新,其优点在于无需在数字处理单元中存储权重集。
在其他实施例中,数字处理单元可以存储与由各个忆阻器件存储的权重
Figure BDA0002464366200000041
对应的数字权重值W。在这里的第二权重更新过程中,数字处理单元可以根据每个器件的存储的数字权重值和数字权重校正值ΔW,为各个器件计算新数字权重值。于是,施加到忆阻器件的编程信号取决于该器件的新数字权重值。这就提供了更高的精度,这是因为新权重值是根据当前存储的权重值W以数字精度计算的:新W=当前W+ΔW,因此,不会因像上述第一种方法那样的舍入而丢失关于ΔW的信息。
在特别优选的实施例中,数字处理单元存储各个忆阻器件的数字累积值χ。在这里的第三权重更新过程中,数字处理单元根据每个器件的权重校正值ΔW和存储的累积值χ来计算各个忆阻器件的更新的累积值,并根据每个器件的更新的累积值来确定权重调整量A。然后,所述施加到忆阻器件的编程信号以对应于该器件的权重调整量A的量来调节所存储的权重
Figure BDA0002464366200000042
数字处理单元通过从每个器件的更新的累积值中减去权重调整量,来计算各个器件的新的数字累积值。如下面进一步解释的,这提供了异常精确和有效率的操作,保持了累积值χ中ΔW的完全精度。
在第三个权重更新过程中,可以通过以预定步长ε舍入每个忆阻器件的更新后的累积值来确定权重调整量A,以获得向器件施加的n个所述编程脉冲,其中,步长ε指示器件响应于施加预定编程脉冲的权重变化。这允许简单地为每个器件实现以n个脉冲为形式的编程信号。在这里的其它实施例中,数字处理单元通过将每个忆阻器件的更新后的累积值与取决于步长ε的预定阈值进行比较,来确定权重调整量A。如果更新的累积值超过该阈值,则向器件施加编程脉冲。这允许由单个脉冲来实现编程信号,因此每次权重更新仅需要一个脉冲。
本发明的至少一个进一步的实施例提供了用于实现人工神经网络的装置。该装置包括存储计算单元(memcomputing unit)和可操作地耦合到存储计算单元的数字处理单元。存储计算单元包括一组连接在行线和列线之间的忆阻器件的交叉式阵列,每个忆阻器件存储相应突触的权重
Figure BDA0002464366200000051
存储计算单元还包括控制器,用于控制通过行线和列线向忆阻器件施加信号。数字处理单元适于由该装置控制根据上述方法的迭代训练方案的前向传播、后向传播和权重更新操作的性能。
下面将参考附图通过说明性和非限制性示例更详细地描述本发明的实施例。
附图说明
图1是一个人工神经网络的示意图;
图2是体现本发明的用于实现人工神经网络的装置的示意性框图;
图3示出图2的装置的忆阻阵列的结构;
图4是忆阻阵列中使用的示例性忆阻器件的示意图;
图5指示由图2的装置执行的训练方法的基本步骤;
图6指示前向传播操作的更详细的步骤
图7指示忆阻阵列在前向传播操作中的操作;
图8指示后向传播操作的更详细的步骤;
图9指示忆阻阵列在后向传播操作中的操作;
图10指示第一权重更新操作的步骤;
图11示出使用第一权重更新操作的训练方法的仿真结果;
图12指示第二权重更新操作的步骤;
图13示出了使用第二权重更新操作的训练方法的仿真结果;
图14指示第三权重更新操作的步骤;
图15和图16指示图14的操作的各步骤的不同实现;和
图17示出了使用第三权重更新操作的训练方法的模拟结果。
具体实施方式
图1示出了一个示例性ANN的逻辑结构。ANN 1包括一系列插入突触层的神经元层。在所示的简单示例中,该网络具有三个神经元层:接收网络输入信号的输入神经元层;提供网络的输出信号的输出神经元层;以及输入层和输出层之间的中间(“隐藏”)神经元层。输入层(层1)中的神经元在此由n1i(1≤i≤N1)表示,隐含层(层2)中的神经元由n2j(1≤j≤N2)表示,输出层(层3)中的神经元由n3k(1≤k≤N3)表示,其中Nx是层x中的神经元的数目。如图所示,每一层中的神经元经由突触sij或sjk连接到下一层中的神经元。每个突触sij、sjk互连连续神经元层中的相应的一对神经元。根据相应的突触权重wij或wjk,对突触sij或sjk在其相连的神经元之间中继的信号进行加权。输入神经元层和隐藏神经元层可以包括一个或多个偏置神经元(在图中用阴影示出)。偏置神经元不接收输入信号,但是将预定的偏置信号发送到下一个神经元层。虽然示出了全连接的配置,但是一般来说任何给定层中的神经元可以连接到下一层中的一个或多个神经元,并且网络可以包括一个或多个(通常多达30个或更多的)连续的隐藏神经元层。
图2示出了体现本发明的用于实现ANN 1的装置。装置2包括存储计算单元3和数字处理单元4,数字处理单元—这里是经由系统总线5—可操作地耦合到存储计算单元3。内存计算值单元3包括一组(一个或多个)忆阻交叉式阵列(memristive crossbar arrays)6和用于控制存储计算单元的操作的控制器7。数字处理单元4包括中央处理单元(CPU)7和存储器8。存储器8存储一个或多个程序模块9,程序模块包括可由CPU 7执行以实现下面描述的操作的功能步骤的程序指令。
图3示出了忆阻阵列6的集合的逻辑结构。在该示例中,该组包括连接在阵列的行线和列线之间的忆阻器件10的两个交叉式阵列。第一阵列a1实现图1的ANN 1中的第一神经元层和第二神经元层之间的突触层sij。阵列a1的每一忆阻器件10均存储一相应突触sij的权重
Figure BDA0002464366200000071
权重/>
Figure BDA0002464366200000072
对应于该器件的电导,而且在操作中可以通过把编程信号施加到该器件而被改变。因此,如重音符^所指示的那样,权重/>
Figure BDA0002464366200000073
固有地以低精度被存储。器件10按逻辑行和列排列,其中每个器件以特定的行线和列线连接,用于将信号施加到器件。阵列a1的行线ri可以被看作是ANN 1的相应输入神经元n1i与突触sij之间的连接。阵列a1的列线cj可以类似地被看作是ANN 1的相应层2神经元n2j与突触sij之间的连接。行线和列线通过行和列数模/模数转换器(DAC/ADCs)11和12连接到存储计算单元2的控制器7,所述转换器在数字和模拟域之间转换阵列输入/输出信号。
阵列组6的第二阵列a2实现ANN 1的第二和第三神经元层之间的突触层sjk。结构直接对应于阵列a1的结构。因此,阵列a2的器件10储存突触sjk的权重
Figure BDA0002464366200000074
其中行线rj代表相应层2神经元n2j与突触sjk之间的连接,而列线ck代表相应输出层神经元n3k与突触sjk之间的连接。
控制器7提供用于控制经由阵列的行线和列线将信号施加至忆阻器件10的控制电路。如下面详细解释的,用于装置2的计算操作的信号,以“读取”输入到阵列和从阵列输出,用于权重更新操作的编程信号,以“写入”(编程)模式施加到忆阻器件10。可以根据器件10中的特定忆阻突触实现方式以公知的方式实现读/写控制电路。在本领域中已知多种忆阻突触器件,例如基于诸如相变存储器(PCM)单元的电阻存储器单元。这些器件包括一个或多个存储器单元,其可以以各种电路配置来布置,以在单元的可编程电导状态中存储信息。本文中的优选实施例采用基于多个PCM单元的忆阻器件,提供信息的多位存储,如以下更详细描述的那样。控制器7在操作中还控制由存储计算单元3控制向系统总线5输出数据和从系统总线输入数据。
数字处理单元(DPU)4适于控制装置2对ANN 1的迭代训练方案的操作步骤的执行。训练过程由CPU7通过执行从存储器8中的程序模块9加载的程序指令来控制。存储器8还存储CPU 7在操作中使用的各种数据,包括在训练过程的各个步骤中提供给和接收自存储计算单元3的数据项。CPU 7在训练过程中执行DPU 4中所需的计算,并控制DPU 4从/向系统总线5的数据输入和输出。CPU 7还通过经由总线5发送到控制器7的控制指令来控制存储计算单元3的操作模式。
尽管描述了装置2的示例性实施例,DPU 4可以包括一个或多个CPU(包括GPU(图形处理单元)),其可以由一个或多个微处理器实现。存储器8可以包括一个或多个数据存储实体,并且可以包括主存储器,例如DRAM(动态随机存取存储器)和/或与CPU 7物理分离的其他存储装置,以及高速缓存和/或CPU 7本地的其他存储器。通常,DPU 4可以由一个或多个(通用或专用)计算机/可编程数据处理装置来实现,并且由DPU 4执行的处理操作的功能步骤通常可以由硬件或软件或其组合来实现。控制器7还可包括一个或多个处理器,其可由软件指令配置以控制存储计算单元2执行下文描述的功能。由控制器7执行的特定功能步骤可以以硬件或软件或其组合来实现。用于实现所述功能步骤的适当软件对于本领域技术人员来说是显而易见的。
在一些实施例中,DPU4和/或控制器7可以包括用于执行程序指令以实现所述功能的电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)。在参考流程图描述实施例的情况下,将理解,流程图的每个块和/或流程图中的块的组合可以由计算机可执行程序指令来实现。程序指令/程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。流程图中的方框或方框的组合也可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的基于专用硬件的系统来实现。
系统总线5表示若干类型的总线结构中的任何一种的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例而非限制,这些体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线。
通常,ANN 1的突触层sij、sjk可以由忆阻器件10的一个或多个交叉式阵列来实现。应当理解,这些阵列的“行”和“列”仅是逻辑命名,并且不暗示关于组件的物理取向或布置的任何约束。然而,在典型的基于PCM的器件阵列中,器件和电源线被布置成行和列的规则阵列,如图3中示意性地示出的那样。这种忆阻器件的密集交叉式阵列可以使用公知的材料处理技术制造成集成纳米级系统,提供大规模并行的和高度面积和能量效率的实现。
图4示出了基于多个PCM单元的忆阻器件10的示例性实现。如本领域所公知的,PCM单元利用设置在提供单元端子的一对电极之间的PCM材料—例如诸如GST(锗-锑-碲)的硫族化物—的可变电阻特性。在此实例中,器件10包括四个PCM单元20。每个单元20的一个端子连接到器件的列线cj。每个单元的另一个端子连接到器件的行线rj的相应组件线。通过经由相应组件行线和列线将适当的编程脉冲施加到单元20,可将所述单元编程到高电阻(非晶)或低电阻(结晶)状态。因此,每一单元20可存储一位信息,这四个单元根据处于高电阻状态及低电阻状态中的每个状态的单元的数目,共同地提供用于五个不同权重的存储。这就用如图所示的四个单元20提供存储的权重
Figure BDA0002464366200000091
的2位精度,一般地,2N个单元提供N位精度。控制器7对器件10的编程可以使用基于时钟的仲裁方案来执行,以确定为增加或减少所存储的权重而被寻址的特定单元20的顺序。通过将(低电压)读取信号施加到行线ri(的所有分量)—由此在器件的列线cj上产生的电流取决于所有四个单元的电导、因此取决于总的存储权重/>
Figure BDA0002464366200000092
可以“读取”所存储的权重。
在下面详细描述的实施例中,通过将预定的“激活”函数应用于神经元输入信号以生成作为输入提供给下一ANN层的神经元输出信号,在DPU 4中有效地实现ANN 1的神经元n1i、n2j、n3k的功能。在器件2的训练操作中,将训练样本的输入数据(例如,来自MNIST训练数据集的手写数字的图像的像素数据)存储在存储器8中。按照预定映射将输入数据点(例如图像像素)概念性地映射到输入层神经元n1i,该预定映射对于ANN操作保持固定。训练数据通常包括在训练过程中输入到网络的大量样本(例如,数千个手写数字的样本)。在此过程中,装置2实现一种迭代方法,其中重复地更新由忆阻器件10存储的权重
Figure BDA0002464366200000101
具体地,DPU 4控制装置2对以下描述的迭代训练方案的前向传播、后向传播和权重更新操作的执行。
该训练方案的基本步骤在图5的流程图中示出。在前向传播操作(步骤30)中,当前训练样本的输入数据从输入神经元层经过ANN 1前向传播到输出神经元层。下面将进一步详述的该操作,涉及计算DPU 4中的神经元n1i、n2j和n3k的分别由x1i、x2j和x3k表示的输出,以及将输入信号施加到忆阻阵列6以获得在这些计算中使用的阵列输出信号。在随后的后向传播操作(步骤31)中,DPU 4为各个输出神经元n3k计算误差值(由δ3k表示),并将这些误差值在后向传播方向上从输出层经过ANN 1传播回倒数第二层。这涉及将输入信号施加到忆阻阵列6以获得阵列输出信号,以及计算除输入神经元层之外的所有其他层中的神经元的误差值,在本例中,计算层2神经元n2j的误差δ2j。在随后的权重更新操作(步骤32)中,DPU使用在正向和后向传播步骤中计算的值来计算相应忆阻器件10的数字权重校正值ΔW。DPU 4然后控制存储计算单元3把编程信号施加到这些器件上,以便根据相应的数字权重校正值ΔW来更新所存储的权重W。在判断步骤33中,DPU 4确定是否已经达到预定收敛条件。(这个条件可以以各种方式为训练操作定义,例如基于输出神经元的误差值、迭代之间的误差值的变化、采样/迭代次数等,或者作为一个以上这种参数的函数。该特定收敛条件与本文描述的操作原理正交)。如果不是(在判断框33处为“否”(N)),则在步骤34中将下一个训练采样的输入数据加载到CPU 7,然后操作返回到步骤30。该过程就这样地循环,直到实现收敛时,训练过程终止。
在忆阻阵列6中存储的权重W,可以初始化为预定值,或者可以在训练过程开始时是随机分布的。对于初始化的权重分布的特定约束,可以取决于例如网络规模和针对要实现的给定收敛条件的神经元激活函数f(下面描述)。可以为每次迭代或者在预定次数的后向传播操作之后,执行权重更新步骤32,并且权重更新步骤32可以涉及如下面进一步描述的那样地更新全部权重
Figure BDA0002464366200000111
或者更新权重/>
Figure BDA0002464366200000112
的选定子集。在任何情况下,随着网络从训练数据学习,权重/>
Figure BDA0002464366200000113
在训练过程中被反复更新。
图6表示图1的ANN的前向传播操作的更详细的步骤。在步骤40中,输入当前训练样本的数据。在步骤41中,DPU通过将这里由f表示的激活函数应用于被映射到相应输入层神经元n1i的输入数据(di)来计算该神经元的数字信号值x1i。激活函数f通常包括非线性函数,例如S形函数、tanh函数、reLu函数等。在步骤42中,将输入层神经元的信号值x1i存储在存储器8中。在步骤43中,DPU 4通过总线5将信号值x1i提供给存储计算单元3,并将控制器7设置为前向传播模式。在步骤44中,控制器7将信号值x1i提供给忆阻阵列a1的行DAC 11。于是,与各个神经元n1i相关联的相应模拟电压信号被施加到阵列的各个行线ri,如图7中示意性地示出的那样。在列线ci上所得到的输出电流信号因此对应于依照每一列中的器件10的权重
Figure BDA0002464366200000114
的输入信号的加权和。这些输出信号对应于由ANN 1的各个层2神经元n2j接收的信号。列ADC 12将列输出信号转换成数字信号值/>
Figure BDA0002464366200000115
控制器7将所述数字信号值供应给DPU 4。在步骤45中,DPU4将所接收的数字信号值/>
Figure BDA0002464366200000116
存储在存储器8中,在步骤46中,DPU4计算相应层2神经元n2j的数字信号值x2j,如下:
Figure BDA0002464366200000117
在步骤47中,将信号值x2j存储在存储器8中。DPU因此通过将激活函数f应用于与从前一神经元层获得的阵列输出信号相对应的数字信号值来实现层2神经元n2j,以产生与和那些神经元n2j相关联的阵列输入信号相对应的数字信号值。
上面的步骤43到47实现了信号在ANN 1的层1和2之间的前向传播。步骤48到52分别对应于步骤43到47,但是在层2和3之间传播信号。因此,在步骤49中,与神经元n2j相关联的输入信号被施加到阵列a2的行线rj,以获得列线ck上的输出信号。相应的数字信号值
Figure BDA0002464366200000121
被提供给DPU 4,后者将输出神经元n3k的数字信号值x3k计算为:
Figure BDA0002464366200000122
信号值x3k为前向传播操作提供网络输出。
图8示出了ANN 1的后向传播操作的更详细的步骤,在步骤60中,对于前向传播操作中的最后一层的神经元,即输出神经元n3k,DPU 4计算相应的误差值δ3k。误差值δ3k取决于ANN针对当前训练样本的预期输出以及对应于从前一神经元层(层2)获得的阵列a2输出信号的数字信号值
Figure BDA0002464366200000123
具体来说,从每一神经元n3k的预期输出中减去该神经元的输出/>
Figure BDA0002464366200000124
以获得相应的误差值δ3k。可以根据当前训练样本的已知分类标签,例如MNIST样本的从0到9的标签,来确定每个神经元n3k的预期输出。(例如,每个类别0到9可以由相应的输出神经元来表示,当该类别中的样本被“示出”给网络时,预期该输出神经元具有最大输出。理想地,该神经元输出应当是“1”,并且对应于其他类别的所有其他神经元输出应当是“0”。在步骤61中,DPU 4存储误差值δ3k。在步骤62中,DPU 4通过总线5将误差值δ3k提供给存储计算单元3,并将控制器7设置为后向传播模式。在步骤63中,控制器7将误差值δ3k提供给忆阻阵列a2的列DAC 12。(该误差值可以在DPU 4中相应地缩放,以在作为电压被施加时使用DAC 12的全部范围(例如δk=δk/maxkk|)。因此,与各个神经元n3k相关联的相应模拟电压信号作为输入信号被施加到阵列的各个列线ck,如图9中示意性地示出的那样。因此,在行线rj上得到的输出电流信号对应于依照每行中的器件10的权重/>
Figure BDA0002464366200000125
的输入信号的加权和。行输出信号由行ADC 11转换成数字信号值/>
Figure BDA0002464366200000126
而数字信号值则由控制器7提供给DPU 4。在步骤64中,DPU 4接收并存储输出信号值/>
Figure BDA0002464366200000131
在步骤65中,DPU 4计算层2的相应误差值δ2j为:
Figure BDA0002464366200000132
其中g表示一个不同于激活函数f的非线性函数,并且在训练算法最小化均方误差目标函数的特定情况下包括f的导数。因此,层2中的神经元的相应误差值δ2j所基于的,是对应于在后向传播操作(层3)中从前一神经元层获得的阵列输出信号的数字信号值
Figure BDA0002464366200000133
以及在前向传播操作中从前一神经元层(层1)获得的阵列输出信号
Figure BDA0002464366200000134
在步骤66中,将误差值δ2j存储在存储器8中。
上面的步骤62到66实现误差信号在ANN 1的层3和2之间的后向传播。对于具有附加的隐藏层的人工神经网络,步骤62至66将针对后向传播方向上直到倒数第二个神经元层的每个后继神经元层重复进行。由于本示例中层2是倒数第二层,因此步骤66在此完成后向传播操作。
图10表示第一实施例中权重更新操作的步骤。为了简单起见,将描述针对第一阵列a1中的器件的操作。在步骤70中,从DPU 4中的存储器中检索层1信号值x1i和层2误差值δ2j。在步骤71中,DPU将阵列a1中的各个器件10的数字权重校正值ΔW计算为:
ΔWij=ηx1iδ2j
其中η是该网络的预定义学习参数。因此,互连ANN 1中的一对神经元n1i和n2j的突触sij对应的器件的权重校正值ΔWij,是根据在前向传播操作中从神经元n1接收的输入信号和在后向传播操作中为神经元n2计算的误差信号计算的。在步骤72中,DPU 4以预定步长ε舍入每个权重校正值ΔWij以产生舍入校正值
Figure BDA0002464366200000135
即/>
Figure BDA0002464366200000136
在此可以根据需要使用常规或随机舍入。步长ε优选地指示忆阻器件响应于预定编程脉冲(即,预定幅度和持续时间的脉冲)的施加的权重变化。在步骤73中,DPU 4将器件10的舍入校正值
Figure BDA0002464366200000137
发送至存储计算单元3,并且将控制器7设置为编程模式。在步骤74中,控制器7向每一个器件10施加编程信号以便将存储的权重/>
Figure BDA0002464366200000141
调整一个取决于该器件10的舍入校正值
Figure BDA0002464366200000142
的量。这里的编程信号可以包括对应于器件10的舍入校正值/>
Figure BDA0002464366200000143
的多个前述编程脉冲。所得到的存储的权重因此被更新为/>
Figure BDA0002464366200000144
在一些实施例中,可以为阵列中的所有器件10计算权重校正值ΔWij。在其它实施例中,可以仅针对一个器件的子集,例如随机选择的子集,或者针对x1i和/或δ2j超过阈值水平的器件,来计算ΔWij。通常,误差值δ2j可以是正的或负的,由此可以根据
Figure BDA0002464366200000145
的符号来增加(“增强”)或减少(“抑制”)权重。编程脉冲和步长ε可以根据忆阻器件的特性而对增强还是抑制有所不同。此外,权重更新可以在训练方案的每次迭代中的后向传播(“在线训练”)之后执行,或者在一定次数即K次的迭代(“批量训练”)之后执行。在后一种情况下,可以在K个训练样本上在DPU 4中累积权重校正值ΔWij
基于从阵列a2中的器件的数字权重校正值ΔWjk=ηx2jδ3k计算出的舍入权重校正值
Figure BDA0002464366200000146
类似地更新这些器件的权重/>
Figure BDA0002464366200000147
图10过程的步骤可以针对不同的忆阻阵列并行执行,也可以依次针对每个阵列依次执行。类似地,权重更新过程的步骤可以针对每个阵列中的特定忆阻器件或器件子集顺序执行。不同的编程脉冲和步长ε也可以用于实现15个实施例中不同突触层的器件。
上面的系统实现了一种混合精度的ANN训练方法,其中低精确的忆阻阵列用于正向和后向传播计算,但是权重更新操作则是基于DPU 4中以数字方式计算出的权重校正值ΔW。因此,以数字精度—优选地至少以16位(固定或浮点数)精度,来计算权重校正值,然后将所得出的数字值用于确定阵列的编程信号。该技术在利用忆阻阵列的高速度、低功耗并行计算功能的同时,提高了权重更新操作的准确性。与完全重新编程相比,存储的权重是增量更新的,并且忆阻阵列的权重集不需要存储在DPU 4中,从而减少了内存需求。
在训练ANN 1之后,可以在测试(或“推断”)模式下用装置2来根据经训练的权重
Figure BDA0002464366200000151
对输入数据进行分类。在推断模式中,输入数据(例如MNIST测试数字)被提供给在前向传播模式中操作的网络,并且所述输入数据被基于网络输出进行分类(例如,分类为数字0到9)。例如,可以在DPU 7中用softmax函数来进行分类。图11示出了在步骤72中使用上述具有随机舍入的权重更新操作进行训练之后利用MNIST测试数据进行推断操作的仿真结果。绘制了对照在器件10中存储权重W^的位精度的测试精度。还示出了用全64位浮点训练方法获得的等效结果以用于比较。可以看到,上述方法在存储的权重/>
Figure BDA0002464366200000152
仅为4位精度的情况下的测试精度接近64位精度的结果。在权重/>
Figure BDA0002464366200000153
为8或更高的比特精度的情况下,测试精度等效于64比特精度的实现。
利用上面的第一加权更新方法,如果步长ε大或权重更新不正确,则分类精度可能会降低。这是因为在舍入后丢失了关于ΔW的准确信息,因此无法精确地考虑误差。下面介绍解决此问题的优选权重更新过程。
图12表示权重更新过程的第二实施例的步骤。在该实施例中,DPU 4在存储器8中存储与由阵列组6中相应忆阻器件10存储的权重
Figure BDA0002464366200000154
对应的一组(高精度)数字权重值W。这里再次描述阵列a1中的器件的操作。在步骤80中,从DPU 4中的存储器中检索层1信号值x1i和层2误差值δ2j。在步骤81中,DPU如前所述计算器件10的数字权重校正值ΔW:
ΔWij=ηx1iδ2j
在步骤82中,DPU 4从存储器8检索各个器件10的数字权重值W。在步骤83中,DPU 4根据当前数字权重值W和在步骤81中计算出的每个器件的数字权重校正值ΔW,计算各个器件的新数字权重值:Wij+ΔWij=新Wij。因此,该计算以数字精度执行,优选地以高精度执行,即至少16位精度,并且如果需要,可以以例如32位或64位精度执行。在步骤84中,DPU 4控制存储计算单元3向每个器件10施加取决于该器件的新的数字权重值Wij的编程信号。
在此处的一种实现中,可以通过经由控制器7的读取模式操作读取由各个忆阻器件存储的权重
Figure BDA0002464366200000161
然后在DPU 4中计算一个器件的新数字权重值W与该器件的被读取的权重/>
Figure BDA0002464366200000162
之间的差异,来执行步骤84。然后将一个编程信号施加到该器件上,以将存储的权重
Figure BDA0002464366200000163
调整一个取决于针对该器件所计算的差异的量。这里的差异值可以根据步长ε(确定或随机地)四舍五入—该步长ε指示器件响应于预定编程脉冲的施加的权重变化,并且这里的编程信号可以包含对应于舍入后的差异值的多个编程脉冲。存储的权重/>
Figure BDA0002464366200000164
就这样被增量地更新。
在步骤84的另一种实现中,代替增量更新,可以完全重新编程权重
Figure BDA0002464366200000165
而不是预定的预定脉冲,并且此处的编程10信号可以包括与舍入后的差值相对应的多个编程脉冲。在这种情况下,根据器件的新数字权重值W施加编程信号以对每个器件进行重新编程。例如,这可以通过一种编程和校验方案来执行,在该方案中,迭代地编程权重并读取权重,以使/>
Figure BDA0002464366200000166
尽可能接近相应的数字值W。这里也可以使用W的(确定性或随机性)舍入形式。
图12的方法导致最终分类精度非常接近完整的64位浮点实现。这在图13中针对其中基于W的确定性舍入形式对权重进行重新编程的方法作出例示。由于W+ΔW的计算精度很高,因此分类精度得到了改善。因此,关于ΔW的信息没有丢失,并且该过程相应地补偿了对
Figure BDA0002464366200000167
的可能不准确的更新。
图12的方法在每次权重更新时由于回读权重或对整个阵列进行重新编程而涉及额外的开销,这有些实现来说可能不切实际。图14指示避免这种开销的第三种也即特别优选的权重更新方法的步骤。在该方法中,DPU 4在存储器8中为阵列组6中的各个忆阻器件10存储一组(高精度)数字累积值χ。这些累积值χ在训练操作开始时被初始化为零。图14的步骤90和91对应于图12的步骤80和81。在步骤92中,DPU 4从存储器8中检索各个器件10的数字累积值χ。在步骤93中,DPU 4根据每个器件的权重校正值ΔW和存储的累积值χ来计算相应器件的更新累积值:χij+ΔWij=更新的χij。在步骤94中,DPU 4根据每个器件的更新累积值χij确定权重调整量Aij。此步骤的详细示例如下所述。在步骤95中,DPU 4控制存储计算单元3向每个器件10施加编程信号,以将存储的权重
Figure BDA0002464366200000171
调节一个与该器件的权重调整量Aij相对应的量。在步骤96中,DPU 4然后通过从每个器件的更新的累积值中减去权重调整量来计算相应器件的新的数字累积值:χij-Aij=新χij。因此,累积值的计算是以数字精度进行的,优选地以至少16位精度进行的,并且如果需要可以以更高的精度(例如32位或64位)来进行。
图15示出了计算权重更新量Aij的过程的第一示例。步骤100到102执行图14的步骤94和95。在步骤100中,DPU 4通过以预定步长ε(ε>0)舍入(确定地或随机地)每个器件的更新的累积值χij来确定权重调整量Aij。同样,该步长ε指示忆阻器件响应于一个预定编程脉冲的施加的的权重变化。该舍入结果要施加到器件的这些编程脉冲的数量nij=round(χij/ε)。因此,每个器件的权重调整量在这里是Aij=nijε。一般来说,累积值χij,因此nij的值,可以是正的或负的,可以根据nij的符号增强或抑制权重(potentiated or depressed)。(编程脉冲和步长ε针对增强和抑制可以不同,针对于不同的ANN层也可以不同)。在步骤101中,DPU 4将得到的数字nij发送到存储计算单元3。如果nij>0,则控制器7将|nij|个增强编程脉冲施加到存储
Figure BDA0002464366200000172
的器件。如果nij<0,控制器7向该器件施加|nij|个抑制编程脉冲。返回到图14的步骤96,将针对每个器件的新累积值计算为:χij-nijε。
图16给出了计算权重更新量Aij的第二个示例过程。步骤105到108执行图14的步骤94和95。在该过程中,DPU 4将每个忆阻器件的更新累积值χij与取决于步长ε的预定阈值进行比较,其中ε如前所定义。在这个例子中,阈值是±ε,这取决于对应的χ_ij符号。如果χij>ε(在判定步骤105中的“是”),则在步骤106中,DPU指示控制器7对向器件施加一个增强编程脉冲。否则,操作继续到判定步骤107。如果这里的χij<-ε,则在步骤108中,DPU 4指示控制器7向器件施加一个抑制编程脉冲。对于-ε≤χij≤ε的情形来说,权重
Figure BDA0002464366200000173
不变。因此,器件的权重调整量Aij在此为零或±ε,并且在图14的步骤96中相应地计算新的累积值。
图16的实施例每次权重更新仅需要施加一个编程脉冲,从而在存储计算单元3中提供更简单的硬件实现。根据本技术的需要,可以使用基于步长ε的各种其它阈值,例如±ε/2。
基于图14的权重更新方法避免了对权重
Figure BDA0002464366200000181
进行完全重新编程或读回的需要,同时在数字累积值χ中保持了所有关于ΔW的信息。这为快速、高精确度的ANN训练提供了格外有效的实现。图17示出了使用图15方法的该技术可获得的极好的分类精度。
当然可以对所描述的示例性实施例进行许多改变和修改。例如,可以设想这样的实施例,其中训练方法仅针对前向和后向传播步骤中的一个使用存储计算单元3。例如,可以使用阵列-组6来执行前向计算,而在DPU 4中进行后向传播计算。此外,虽然在上述DPU 4中以高精度实现神经元激活函数f,但是在其他实施例中,可以通过存储计算单元3中的模拟电路来实现神经元功能。
一般来说,忆阻器件10可以以任何期望的方式实现,例如基于各种电路布置中的一个或多个PCM单元和/或其他忆阻存储元件来实现。可以使用任何类型的忆阻存储元件,例如PCM或其他电阻存储单元,诸如电阻RAM(RRAM或ReRAM)单元,包括导电桥RRAM单元、氧化物或金属氧化物RRAM单元、碳RRAM单元和磁阻随机存取存储器(MRAM)元件、铁电随机存取存储器(FeRAM)元件、光学存储元件;以及可以使用模拟忆阻元件的行为的电路器件,例如CMOS电路,包括晶体管、电阻器、电容器和/或电感器。
在一些情况下,流程图的步骤可以以与所示的顺序不同的顺序来实现,并且这些步骤可以视情况并行执行。
已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。

Claims (22)

1.一种用于训练人工神经网络的方法,所述人工神经网络具有一系列的神经元层和一组忆阻器件的交叉式阵列,所述交叉式阵列连接在行线和列线之间,实现插入所述神经元层的突触层,由此每个忆阻器件存储将连续的神经元层中相应的一对神经元互连的突触的权重
Figure FDA0004233928770000011
所述方法包括通过以下步骤来执行迭代训练方案的前向传播、后向传播和权重更新操作:
在所述方案的前向传播和后向传播操作中的至少一个中,将与相应神经元相关联的输入信号施加到该组阵列的行线和列线中的一种线,以获得所述行线和列线中的另一种线上的输出信号;
将对应于所述输入信号和输出信号的数字信号值存储在可操作地耦合到该组阵列的数字处理单元中;以及
通过在所述数字处理单元中根据所述数字信号值为相应忆阻器件计算数字权重校正值ΔW,并将编程信号施加到这些器件以根据相应数字权重校正值ΔW更新所存储的权重
Figure FDA0004233928770000012
来执行所述方案的权重更新操作,
所述方法还包括:在所述数字处理单元中,以预定步长ε舍入每个权重校正值ΔW以产生舍入校正值
Figure FDA0004233928770000013
其中施加到忆阻器件的所述编程信号将所存储的权重/>
Figure FDA0004233928770000014
调整取决于该器件的舍入校正值/>
Figure FDA0004233928770000015
的量。
2.如权利要求1所述的方法,包括在前向传播操作中,将所述输入信号施加到该组阵列的行线以获得列线上的输出信号。
3.如权利要求2所述的方法,包括在后向传播操作中,将所述输入信号施加到该组阵列的列线,以获得行线上的输出信号。
4.如权利要求1所述的方法,其中所述数字权重校正值由数字处理单元以至少16位的精度计算。
5.如权利要求1所述的方法,包括:
在所述数字处理单元中,存储与相应忆阻器件所存储的权重
Figure FDA0004233928770000016
相对应的数字权重值;以及
在权重更新操作中,在数字处理单元中根据针对每个器件存储的数字权重值和数字权重校正值ΔW来计算针对各个器件的新的数字权重值;
其中,施加到忆阻器件的所述编程信号取决于该器件的新的数字权重值。
6.如权利要求5所述的方法,其特征在于,在所述权重更新操作中包括:
读取相应忆阻器件所存储的权重
Figure FDA0004233928770000021
以及
在数字处理单元中计算一个器件的所述新的数字权重值与该器件的被读取权重
Figure FDA0004233928770000022
之间的差值;
其中施加到忆阻器件的所述编程信号将所存储的权重
Figure FDA0004233928770000023
调整取决于该器件的所述差值的量。
7.如权利要求5所述的方法,包括在权重更新操作中,基于每个器件的新的数字权重值施加所述编程信号以重新编程该器件。
8.如权利要求5所述的方法,其中所述数字权重值由所述数字处理单元以至少16位的精度存储。
9.如权利要求1所述的方法,包括在所述数字处理单元中存储相应忆阻器件的数字累积值,并且在所述权重更新操作中:
在所述数字处理单元中,根据每个器件的权重校正值ΔW和存储的累积值来计算相应忆阻器件的更新累积值,并根据每个器件的更新累积值来确定权重调整量,其中施加到忆阻器件的所述编程信号将存储的权重
Figure FDA0004233928770000024
调整与该器件的权重调整量相对应的量;以及
在所述数字处理单元中,通过从每个器件的所述更新累积值中减去所述权重调整量来计算各个器件的新的数字累积值。
10.如权利要求9所述的方法,包括在所述数字处理单元中,通过以表示所述器件响应于预定编程脉冲的施加的权重变化的预定步长ε来舍入每个忆阻器件的更新后的累积值以获得待施加到所述器件的编程脉冲的数量n,来确定所述权重调整量,其中施加到该忆阻器件的编程信号包括n个所述脉冲。
11.如权利要求9所述的方法,包括:
在所述数字处理单元中,将每个忆阻器件的更新后的累积值与预定阈值进行比较,所述预定阈值取决于表示响应于预定编程脉冲的施加的所述器件的权重变化的步长ε;以及
如果器件的所述更新的累积值超过所述阈值,则将所述编程脉冲作为所述编程信号施加到该器件。
12.如权利要求9所述的方法,其中所述数字权重校正值和所述新的数字累积值由所述数字处理单元以至少16位的精度计算。
13.如权利要求2所述的方法,包括在所述数字处理单元中,通过将激活函数应用于与从在前神经元层获得的所述输出信号相对应的数字信号值以产生对应于与那神经元相关联的输入信号的数字信号值,来在所述前向传播操作中实现所述层的神经元。
14.如权利要求3所述的方法,包括在所述后向传播操作中:
针对前向传播操作中的最后一层的神经元,在数字处理单元中根据神经网络的期望输出和与从前一神经元层获得的所述输出信号相对应的数字信号值来计算相应误差值;
应用对应于所述误差值的信号,作为与所述最后一层中的神经元相关联的所述输入信号;以及
针对直到倒数第二神经元层的每个后续神经元层,在所述数字处理单元中,根据与在所述后向传播操作中从所述前一神经元层获得的所述输出信号相对应的所述数字信号值和在所述前向传播操作中从所述前一神经元层获得的所述输出信号,计算该层中的神经元的相应误差值。
15.如权利要求14所述的方法,包括在所述数字处理单元中存储相应忆阻器件的数字累积值,并且在所述权重更新操作中在所述数字处理单元中:
作为在所述前向传播操作中从神经元n1接收的所述输入信号和在所述后向传播操作中针对神经元n2计算的所述误差信号的函数,计算与互连一对神经元n1和n2的突触相对应的忆阻器件的数字权重校正值ΔW;
根据所述权重校正值ΔW和每个器件的存储累积值为各个忆阻器件计算更新的累积值,并根据每个器件的更新的累积值确定权重调整量,其中所述施加到忆阻器件的编程信号将存储的权重
Figure FDA0004233928770000043
调整与该器件的权重调整量相对应的量;以及
通过从每个器件的更新的累积值中减去权重调整量来计算各个器件的新的数字累积值。
16.用于实现人工神经网络的装置,该人工神经网络具有插入突触层的一连串的神经元层,其中每个突触互连连续神经元层中的相应的一对神经元,该装置包括:
存储计算单元,包括一组连接在行线和列线之间的忆阻器件的交叉式阵列以及控制器,每个忆阻器件存储相应突触的权重W,控制器则用于控制通过所述行线和列线向忆阻器件施加信号;以及
数字处理单元,可操作地耦合到所述存储计算单元,适于控制所述装置对迭代训练方案的前向传播、后向传播和权重更新操作的执行,其中:
在所述方案的前向传播和后向传播操作中的至少一个中,所述控制器将与相应神经元相关联的输入信号施加到该组阵列的行线和列线中的一种线,以获得所述行线和列线中的另一种线上的输出信号;
数字处理单元存储与所述输入信号和输出信号相对应的数字信号值;以及
在所述方案的权重更新操作中,数字处理单元根据所述数字信号值来计算相应忆阻器件的数字权重校正值ΔW,并且所述控制器向这些器件施加编程信号以便根据相应数字权重校正值ΔW来更新所存储的权重
Figure FDA0004233928770000041
其中,所述数字处理单元适于以预定步长ε舍入每个加权校正值ΔW以产生舍入校正值
Figure FDA0004233928770000042
以及
所述控制器适于将所述编程信号施加到忆阻器件以便将存储的权重
Figure FDA0004233928770000053
调节一个量,所述量取决于该器件的所述舍入校正值/>
Figure FDA0004233928770000051
17.如权利要求16所述的装置,其中所述控制器适于在前向传播操作中将所述输入信号施加到该组阵列的行线以获得列线上的输出信号,并且在后向传播操作中将所述输入信号施加到该组阵列的列线以获得行线上的输出信号。
18.如权利要求17所述的装置,其中所述数字处理单元适于通过将激活函数应用于与从在前神经元层获得的所述输出信号相对应的数字信号值以产生与关联于一个所述层的神经元的所述输入信号相对应的数字信号值,来在所述前向传播操作中实现所述层的神经元。
19.如权利要求16所述的装置,其中:
所述数字处理单元适于存储与相应忆阻器件存储的权重
Figure FDA0004233928770000054
相对应的数字权重值,并且在权重更新操作中,根据每个器件的存储的数字权重值和数字权重校正值ΔW来计算相应器件的新的数字权重值;以及
所述装置适于使得向忆阻器件施加的编程信号取决于该器件的新的数字权重值。
20.如权利要求16所述的装置,其中:
所述数字处理单元适于存储相应忆阻器件的数字累积值;
在权重更新操作中,数字处理单元适于根据每个忆阻器件的权重校正值ΔW和存储的累积值计算相应忆阻器件的更新的累积值,根据每个器件的更新的累积值确定权重调整量,并通过从每个器件的更新的累积值减去权重调整量来计算相应器件的新的数字累积值;以及
该装置被适配成使得施加到忆阻器件的编程信号把存储的权重
Figure FDA0004233928770000052
调整一个与该器件的权重调整量相对应的量。
21.如权利要求20所述的装置,其中所述数字处理单元适于以至少16位精度计算所述数字权重校正值和所述新的数字累积值。
22.如权利要求16所述的装置,其中每个忆阻器件包括多个忆阻存储元件。
CN201880069287.XA 2017-10-24 2018-10-23 人工神经网络的训练 Active CN111279366B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762576081P 2017-10-24 2017-10-24
US62/576,081 2017-10-24
US16/022,950 US11348002B2 (en) 2017-10-24 2018-06-29 Training of artificial neural networks
US16/022,950 2018-06-29
PCT/IB2018/058251 WO2019082077A1 (en) 2017-10-24 2018-10-23 TRAINING ARTIFICIAL NEURAL NETWORKS

Publications (2)

Publication Number Publication Date
CN111279366A CN111279366A (zh) 2020-06-12
CN111279366B true CN111279366B (zh) 2023-06-27

Family

ID=66171101

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880069287.XA Active CN111279366B (zh) 2017-10-24 2018-10-23 人工神经网络的训练

Country Status (6)

Country Link
US (1) US11348002B2 (zh)
JP (1) JP7182835B2 (zh)
CN (1) CN111279366B (zh)
DE (1) DE112018004223B4 (zh)
GB (1) GB2581731B (zh)
WO (1) WO2019082077A1 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11468332B2 (en) * 2017-11-13 2022-10-11 Raytheon Company Deep neural network processor with interleaved backpropagation
US11361215B2 (en) * 2017-11-29 2022-06-14 Anaflash Inc. Neural network circuits having non-volatile synapse arrays
US11403529B2 (en) * 2018-04-05 2022-08-02 Western Digital Technologies, Inc. Noise injection training for memory-based learning
US11741362B2 (en) * 2018-05-08 2023-08-29 Microsoft Technology Licensing, Llc Training neural networks using mixed precision computations
US10432240B1 (en) 2018-05-22 2019-10-01 Micron Technology, Inc. Wireless devices and systems including examples of compensating power amplifier noise
JP7259253B2 (ja) * 2018-10-03 2023-04-18 株式会社デンソー 人工ニューラルネットワーク回路
US11133059B2 (en) * 2018-12-06 2021-09-28 Western Digital Technologies, Inc. Non-volatile memory die with deep learning neural network
US12032089B2 (en) 2019-03-14 2024-07-09 Infineon Technologies Ag FMCW radar with interference signal suppression using artificial neural network
DE102019106529A1 (de) 2019-03-14 2020-09-17 Infineon Technologies Ag Fmcw radar mit störsignalunterdrückung mittels künstlichem neuronalen netz
US11907829B2 (en) * 2019-03-14 2024-02-20 Infineon Technologies Ag FMCW radar with interference signal suppression using artificial neural network
US11531898B2 (en) * 2019-05-16 2022-12-20 International Business Machines Corporation Training of artificial neural networks
US10763905B1 (en) 2019-06-07 2020-09-01 Micron Technology, Inc. Wireless devices and systems including examples of mismatch correction scheme
US12026601B2 (en) * 2019-06-26 2024-07-02 Micron Technology, Inc. Stacked artificial neural networks
CN110458284A (zh) * 2019-08-13 2019-11-15 深圳小墨智能科技有限公司 一种模拟神经网芯片的设计方法及模拟神经网芯片
JP7118930B2 (ja) * 2019-08-19 2022-08-16 株式会社東芝 スパイキングニューラルネットワーク装置およびその学習方法
US11475946B2 (en) 2020-01-16 2022-10-18 International Business Machines Corporation Synapse weight update compensation
US10972139B1 (en) 2020-04-15 2021-04-06 Micron Technology, Inc. Wireless devices and systems including examples of compensating power amplifier noise with neural networks or recurrent neural networks
US12050997B2 (en) 2020-05-27 2024-07-30 International Business Machines Corporation Row-by-row convolutional neural network mapping for analog artificial intelligence network training
CN111833278B (zh) * 2020-07-13 2022-05-17 西南大学 基于忆阻器遗忘特性的图片处理方法
US11568217B2 (en) 2020-07-15 2023-01-31 International Business Machines Corporation Sparse modifiable bit length deterministic pulse generation for updating analog crossbar arrays
US11443171B2 (en) 2020-07-15 2022-09-13 International Business Machines Corporation Pulse generation for updating crossbar arrays
US11496341B2 (en) * 2020-08-13 2022-11-08 Micron Technology, Inc. Wireless devices and systems including examples of compensating I/Q imbalance with neural networks or recurrent neural networks
CN112215344A (zh) * 2020-09-30 2021-01-12 清华大学 神经网络电路的校正方法以及设计方法
US20220138579A1 (en) * 2020-11-02 2022-05-05 International Business Machines Corporation Weight repetition on rpu crossbar arrays
CN112418422B (zh) * 2020-11-20 2022-05-27 之江实验室 一种基于人脑记忆机制的深度神经网络训练数据采样方法
US20220230064A1 (en) * 2021-01-20 2022-07-21 Mediatek Singapore Pte. Ltd. Calibration of analog circuits for neural network computing
CN113517007B (zh) * 2021-04-29 2023-07-25 西安交通大学 一种流水处理方法、系统和忆阻器阵列
KR102574156B1 (ko) * 2021-07-06 2023-09-01 고려대학교 산학협력단 역전파와 음수 가중치 설정이 가능한 뉴로모픽 회로
CN113553293B (zh) * 2021-07-21 2024-09-03 清华大学 存算一体装置及其校准方法
CN113837373A (zh) * 2021-09-26 2021-12-24 清华大学 数据处理装置以及数据处理方法
CN115985380B (zh) * 2023-03-17 2023-06-20 之江实验室 一种基于数字电路控制的FeFET阵列数据校验方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105701541A (zh) * 2016-01-13 2016-06-22 哈尔滨工业大学深圳研究生院 一种基于忆阻器脉冲神经网络的电路结构
CN106650922A (zh) * 2016-09-29 2017-05-10 清华大学 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3353786B2 (ja) 1990-01-24 2002-12-03 株式会社日立製作所 情報処理装置
CN103455843B (zh) 2013-08-16 2016-03-02 华中科技大学 一种反馈型人工神经网络训练方法及计算系统
US9418331B2 (en) 2013-10-28 2016-08-16 Qualcomm Incorporated Methods and apparatus for tagging classes using supervised learning
US9489618B2 (en) 2014-05-27 2016-11-08 Purdue Research Foudation Electronic comparison systems
US10885429B2 (en) 2015-07-06 2021-01-05 University Of Dayton On-chip training of memristor crossbar neuromorphic processing systems
US10332004B2 (en) 2015-07-13 2019-06-25 Denso Corporation Memristive neuromorphic circuit and method for training the memristive neuromorphic circuit
CN105224986B (zh) 2015-09-29 2018-01-23 清华大学 基于忆阻器件的深度神经网络系统
US10248907B2 (en) 2015-10-20 2019-04-02 International Business Machines Corporation Resistive processing unit
US9646243B1 (en) 2016-09-12 2017-05-09 International Business Machines Corporation Convolutional neural networks using resistive processing unit array
CN106779059B (zh) 2016-12-30 2019-03-05 华中科技大学 一种基于忆阻的巴普洛夫联想记忆的人工神经网络电路
US11429862B2 (en) * 2018-03-20 2022-08-30 Sri International Dynamic adaptation of deep neural networks
US11188825B2 (en) * 2018-10-15 2021-11-30 International Business Machines Corporation Mixed-precision deep-learning with multi-memristive devices
US11074318B2 (en) * 2018-12-14 2021-07-27 Western Digital Technologies, Inc. Hardware accelerated discretized neural network
US11373092B2 (en) * 2019-04-10 2022-06-28 International Business Machines Corporation Training of artificial neural networks
US10825536B1 (en) * 2019-08-30 2020-11-03 Qualcomm Incorporated Programmable circuits for performing machine learning operations on edge devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105701541A (zh) * 2016-01-13 2016-06-22 哈尔滨工业大学深圳研究生院 一种基于忆阻器脉冲神经网络的电路结构
CN106650922A (zh) * 2016-09-29 2017-05-10 清华大学 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
杨玖 ; 王丽丹 ; 段书凯 ; .一种反向串联忆阻突触电路的设计及应用.中国科学:信息科学.(第03期),全文. *
王丽丹 ; 段美涛 ; 段书凯 ; .基于STDP规则的忆阻神经网络在图像存储中的应用.电子科技大学学报.(第05期),全文. *

Also Published As

Publication number Publication date
WO2019082077A1 (en) 2019-05-02
GB202006982D0 (en) 2020-06-24
US11348002B2 (en) 2022-05-31
DE112018004223B4 (de) 2024-09-05
JP2021500646A (ja) 2021-01-07
DE112018004223T5 (de) 2020-05-07
JP7182835B2 (ja) 2022-12-05
US20190122105A1 (en) 2019-04-25
GB2581731A (en) 2020-08-26
CN111279366A (zh) 2020-06-12
GB2581731B (en) 2022-11-09

Similar Documents

Publication Publication Date Title
CN111279366B (zh) 人工神经网络的训练
Nandakumar et al. Mixed-precision architecture based on computational memory for training deep neural networks
CN110352436B (zh) 用于神经网络训练的具有迟滞更新的电阻处理单元
JP7427030B2 (ja) 人工ニューラル・ネットワークのトレーニング方法、装置、プログラム
US11188825B2 (en) Mixed-precision deep-learning with multi-memristive devices
US11386319B2 (en) Training of artificial neural networks
US11087204B2 (en) Resistive processing unit with multiple weight readers
US11562249B2 (en) DNN training with asymmetric RPU devices
CN110852429B (zh) 一种基于1t1r的卷积神经网络电路及其操作方法
Kim et al. Zero-shifting technique for deep neural network training on resistive cross-point arrays
Nandakumar et al. Mixed-precision training of deep neural networks using computational memory
WO2023217017A1 (zh) 基于忆阻器阵列的贝叶斯神经网络的变分推理方法和装置
US10832773B1 (en) Architecture for enabling zero value shifting
US20220101142A1 (en) Neural network accelerators resilient to conductance drift
CN117136363A (zh) 深度神经网络训练
Gallo et al. Mixed-precision training of deep neural networks using computational memory
Zhou et al. Synchronous Unsupervised STDP Learning with Stochastic STT-MRAM Switching
Le et al. CIMulator: a comprehensive simulation platform for computing-in-memory circuit macros with low bit-width and real memory materials
Hasan et al. A reconfigurable low power high throughput architecture for deep network training
WO2024174354A1 (zh) 一种基于电导可调器件的神经网络训练操作系统及方法
Wu et al. A digitalized RRAM-based Spiking Neuron Network system with 3-bit weight and unsupervised online learning scheme
CN117610636A (zh) 一种存内计算存储器人工神经网络的片上训练方法
CN116128035A (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
GR01 Patent grant
GR01 Patent grant