CN110506282B - Rpu阵列的更新管理 - Google Patents

Rpu阵列的更新管理 Download PDF

Info

Publication number
CN110506282B
CN110506282B CN201880023799.2A CN201880023799A CN110506282B CN 110506282 B CN110506282 B CN 110506282B CN 201880023799 A CN201880023799 A CN 201880023799A CN 110506282 B CN110506282 B CN 110506282B
Authority
CN
China
Prior art keywords
computer
random
update
isotropic
implemented method
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
CN201880023799.2A
Other languages
English (en)
Other versions
CN110506282A (zh
Inventor
T.戈克曼
O.M.奥宁
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 CN110506282A publication Critical patent/CN110506282A/zh
Application granted granted Critical
Publication of CN110506282B publication Critical patent/CN110506282B/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • 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
    • 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/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
    • G06N3/065Analogue 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4814Non-logic devices, e.g. operational amplifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4828Negative resistance devices, e.g. tunnel diodes, gunn effect devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Machine Translation (AREA)

Abstract

提供了一种计算机实现的方法和计算机处理系统,用于神经网络的更新管理。该方法包括使用电阻处理单元在神经网络上执行各向同性更新过程。各向同性更新过程使用乘法运算中的被乘数和乘数。执行步骤包括缩放被乘数和乘数以具有相同的数量级。

Description

RPU阵列的更新管理
背景技术
技术领域
本发明一般涉及电阻处理单元,尤其涉及电阻处理单元(RPU)阵列的更新管理。
相关技术的描述
电阻处理单元(RPU)是可用于深度神经网络训练的电阻器件阵列。RPU由完全连接的层、卷积层、循环层等组成。但是,RPU的更新可能需要密集的时间和资源。因此,需要改进RPU的更新。
发明内容
根据本发明的一个方面,提供了一种用于神经网络的更新管理的计算机实现的方法。该方法包括使用电阻处理单元在神经网络上执行各向同性更新过程。各向同性更新过程使用乘法运算中的被乘数和乘数。执行步骤包括缩放被乘数和乘数以具有相同的数量级。
根据本发明的另一方面,提供了一种用于神经网络的更新管理的计算机程序产品。该计算机程序产品包括非暂时性计算机可读存储介质,具有与其一起体现的程序指令。程序指令可由计算机执行以使计算机执行方法。该方法包括使用电阻处理单元在神经网络上执行各向同性更新过程。各向同性更新过程使用乘法运算中的被乘数和乘数。执行步骤包括缩放被乘数和乘数以具有相同的数量级。
根据本发明的又一方面,提供了一种用于神经网络的更新管理的计算机处理系统。该计算机处理系统包括电阻处理单元(RPU),被配置为在神经网络上执行各向同性更新处理。各向同性更新过程使用乘法运算中的被乘数和乘数。RPU被配置为通过将被乘数和乘数缩放以具有相同的数量级来执行各向同性更新过程。
从以下对结合附图来阅读的说明性实施例的详细描述中,这些和其他特征和优点将变得显而易见。
附图说明
以下描述将参考以下附图提供优选实施例的细节,其中:
图1示出了根据本发明实施例的可以应用本发明原理的示例性处理系统;
图2示出了根据本发明实施例的RPU阵列上的示例性模拟向量矩阵乘法;
图3示出了根据本发明实施例的RPU阵列上的另一示例性模拟向量矩阵乘法;
图4示出了根据本发明实施例的可以应用本发明的示例性更新操作;
图5示出了根据本发明实施例的可应用本发明的RPU阵列的随机更新规则电路;
图6示出了根据本发明的一个实施例对应于图5的随机更新规则电路的更新周期;以及
图7示出了根据本发明实施例的用于RPU阵列的更新管理的示例性方法。
具体实施方式
本发明涉及电阻处理单元(RPU)阵列的更新管理。
在一个实施例中,针对RPU提出了各向同性更新方案,以便在提高整体性能的同时利用最少的周期用于训练所需来充分利用RPU的更新周期。
本发明可以应用于随机比特流和确定性比特流中的任何一个。
在一个实施例中,为RPU提出的更新方案包括填充随机比特流并使用重合的随机比特流来执行更新。
在一个实施例中,本发明在运行随机更新周期之前调节输入,以便消除由于必须乘以彼此不同的多个数量级的两个数而导致的错误空间相关性。也就是说,在一个实施例中,随机更新方案中的被乘数具有相同的数量级。使用此方法,RPU测试准确性可显着提高CNN和DNN的训练,使用单次迭代完成RPU阵列更新,从而加快更新周期。
使用最短的比特流使更新周期尽可能快。这种情况对应于BL=1,其中更新周期通过单个脉冲操作(使得最大和最小可能更新相同,同时相对于xiδj值仍然保持概率)。
为了尽可能有效地使用这个单脉冲窗口,我们提出了一种以更加各向同性的方式进行更新的方法。
在一个实施例中,本发明可以解决由硬件不完善引起的问题。在一个实施例中,本发明通过减小节点之间的相关性来降低(在RPU中)具有不对称行为的电阻元件的影响。本发明可以涉及缩放值以增加随机性并最小化设备对测试结果的不完美影响。
图1示出了根据本发明实施例的可以应用本发明原理的示例性处理系统100。
处理系统100包括总线102,用于互连一个或多个非线性滤波器(NLF)(统一地和单独地由附图标号110表示),一个或多个电阻处理单元(RPU)(统一地和单独地由附图标记120表示),一个或多个存储器(统一地和单独地由附图标记130表示),以及一个或多个输入/输出(I/O)电路(统一地和单独地由附图标记140表示)。
在处理系统100的集成电路(IC)实现的情况下,可以由总线102提供片上通信,而可以由I/O电路140提供片外通信。
当然,如本领域技术人员容易想到的,处理系统100还可以包括其他元件(未示出),并且省略某些元件。例如,各种其他输入设备和/或输出设备可以包括在处理系统100中,这取决于其特定实现,如本领域普通技术人员容易理解的。例如,可以使用各种类型的无线和/或有线输入和/或输出设备。此外,如本领域普通技术人员容易理解的,还可以使用各种配置的附加RPU、处理器、控制器、存储器等。鉴于本文提供的本发明的教导,本领域普通技术人员容易想到处理系统100的这些和其他变型。
图2示出了根据本发明实施例的RPU阵列上的示例性模拟向量矩阵乘法200。
模拟向量矩阵乘法200涉及一组数字输入值(δ)210,其中每个数字输入值(δ)210由相应的模拟信号脉冲宽度220表示。模拟信号脉冲宽度220被提供给具有运算放大器231的运算放大器(op-amp)积分电路230,电容器(Cint)232连接到运算放大器231的反相输入端(并跨越)运算放大器231的输出端。运算放大器231的非反相输入端接地。运算放大器231的输出还连接到模数转换器(ADC)240的输入。ADC 240输出信号y1,表示RPU阵列上模拟向量矩阵乘法200的(数字化)结果。
图3示出了根据本发明实施例的RPU阵列上的另一示例性模拟向量矩阵乘法300。乘法300基本上是图2中所示的乘法,使用不同的格式(表示)。
模拟向量矩阵乘法300涉及施加到运算放大器积分电路330的反相输入的一组输入值320。运算放大器积分电路330包括具有电容器(Cint)332的运算放大器331。输入值320对应于输入电压Vin和对应的跨导
Figure BDA0002225316220000041
Figure BDA0002225316220000042
Figure BDA0002225316220000043
Figure BDA0002225316220000044
运算放大器331的非反相输入端接地。电容器332连接到运算放大器331的反相输入端(并跨越)运算放大器331的输出端。运算放大器的输出端还连接到模数转换器(ADC)340的输入端。运算放大器331输出信号Vout,表示RPU阵列上的模拟向量矩阵乘法300的结果。ADC340将来自运算放大器331的模拟输出Vout转换为数字信号。
图4示出了根据本发明实施例的可以应用本发明的示例性更新操作400。
更新操作400涉及将原始向量输入δ411和原始向量输入x 412提供给电阻处理单元(RPU)420。如下提供RPU 420的输出:
wij=wij+η(xi×δj)
其中wij表示第i行和第j列之间的连接的权重,η表示学习速率(标量值),xi表示输入神经元处的活动,δj表示由输出神经元计算的误差。
在一个实施例中,使用反向传播方法训练RPU,该反向传播方法包括三个周期,即前向周期、后向周期和权重更新周期(这里简称为“权重更新”)。前向和后向周期主要涉及在前向和后向上计算向量-矩阵乘法。本发明基本上涉及权重更新周期。
图5示出了根据本发明实施例的可应用本发明的RPU阵列的随机更新规则电路500。图6示出了根据本发明的实施例对应于图5的更新规则电路500的更新周期600。
随机更新规则电路500包括转换器(TR)510、TR 520、AND(&)与门530和加法器540。TR可以是随机转换器(STR)或确定性转换器(DTR)。为了说明起见,以下将转换器(TR)510和520称为随机转换器(STR),并且将描述涉及随机流。然而,如本领域普通技术人员在给出本文提供的本发明的教导的情况下容易确定的,同时保持本发明的精神,STR可以容易地被DTR替代并且涉及确定性流。
STR 510接收输入xi并输出
Figure BDA0002225316220000051
输入xi表示输入神经元处的活动。
Figure BDA0002225316220000052
表示以伯努利过程为特征的随机变量,上标n表示试验序列中的比特位置。
STR 520接收输入δj并输出
Figure BDA0002225316220000053
输入δj表示输出神经元计算的误差。
Figure BDA0002225316220000054
表示以伯努利过程为特征的随机变量,上标n表示试验序列中的比特位置。
STR510和520中的每一个涉及参数C,其是STR放大因子。特别地,STR 510涉及x向量的放大因子Cx,STR 520涉及δ向量的放大因子Cδ。因此,
Figure BDA0002225316220000055
Figure BDA0002225316220000056
分别由Cxxi和Cδδj给出概率。在一个实施例中,放大因子Cx和Cδ由非线性滤波器(例如,图1的NLF 110,等等)控制。
加法器540接收输入Δwmin和wij,并输出(更新的)wij。参数Δwmin对应于RPU设备上的增量电导变化,因为单个重合事件转换为增量权重变化。存储在RPU设备上的电导值类似地转换为权重值。
由随机更新规则电路500实现的随机更新规则如下:
Figure BDA0002225316220000061
其中wij表示第i行和第j列之间连接的权重,Δwmin表示由于单个重合事件(并且被认为是由电压控制可能的设备参数)引起的增量电导变化(即,权重值的变化,BL表示随机比特流的长度(在更新周期期间使用的STR的输出处),
Figure BDA0002225316220000062
Figure BDA0002225316220000063
表示以伯努利过程为特征的随机变量,并且上标n表示试验序列中的比特位置。
在随机更新规则电路500中,由神经元(xi和δj)编码的数字由STR510和520转换为随机比特流。
增加随机比特流长度BL将减少误差,但反过来会增加更新时间。在一个实施例中,允许达到类似于基线模型的分类误差的可接受的BL值范围如下:使用不同的BL值进行训练,同时按顺序设置
Figure BDA0002225316220000064
和C=1以匹配用于基线模型的学习率。已经确定,小至10的BL值足以使随机模型变得与基线模型无法区分。
另外,对于随机更新规则,单个更新周期的权重值的变化受BLΔwmin的限制,并且如果从STR 510和520(Cxi)和(Cδj)生成脉冲的概率接近于一或更大则可能发生这种情况。例如,还考虑了这种剪辑在权重更新中的影响,并且不会使BL的性能降低到10。
此外,(全局)学习率η是要控制的重要的超参数。
学习率控制通过以下方式实现:
η←BLΔwminC2
在最一般的形式中,随机模型的权重值的平均变化可以写成如下:
Figure BDA0002225316220000065
因此,随机模型的学习率由三个参数控制,即BL和Δwmin和C。这三个参数可以调整以匹配基线模型中使用的学习率。
当训练继续进行时,由于网络变得更好,δ值变小(因此网络需要更少的更新)。另一方面,由于使用了tanh激活函数,x值(Δw=ηxδ)变为1或-1(如果是sigmoid,则它将是0或1)。
当被乘数处于不同的数量级时(例如,1和10-6),随机更新规则(重合检测)变得更糟,这意味着在个体群体中具有“高”脉冲的概率是非常不同的(即,一个或多或少确定,而另一个是非常不可能的)。
当一个δ列触发时,该列中的所有节点都会更新,因为x行肯定会触发(值为1或-1)。这会导致不真实的空间相关性并损害该过程。
根据本发明的一个实施例,可以缩放值,同时保持它们的乘积相同,以使它们具有可比性(相同)。例如,
Figure BDA0002225316220000071
η←BLΔwminC2
Figure BDA0002225316220000072
其中,在前面的η等式中,“(C/γ)表示Cx,“(Cγ)”表示Cδ
在一个实施例中,比特长度BL减小到一,以允许更新周期尽可能短。
根据本发明的各向同性更新方案通过消除由x和δ值之间的数量级的高度差异引起的错误空间相关性,提高了卷积神经网络(CNN)和深度神经网络(DNN)中的测试精度。
使用包含“高”脉冲的相似概率的流增加了更新机制的熵,从而提供了更好的结果。
在一个实施例中,涉及本发明的所有操作都在数字域中完成,而不增加电路复杂性。
参考图6,以下等式适用:
Pi=Cxxi
Pj=Cδδj.
在图6中,更新脉冲(例如,随机更新脉冲)611被施加到RPU阵列612。在特定行j中产生脉冲的概率由Pj给出,Pj由该行的STR控制。类似地,在特定列i中产生脉冲的概率由Pi给出,Pi由该列的STR控制。其中一些从第i列和第j行产生的脉冲可能在RPU设备上重叠(重合),导致增量电导变化。这种增量电导变化相当于增量权重变化(Δwmin)。
在确定性更新脉冲的情况下,如本领域普通技术人员容易理解的,随机转换器(STR)可由DTR确定性转换器(STR)代替,同时保持本发明的精神给出的教导。
图7示出了根据本发明实施例的用于RPU阵列的更新管理的示例性方法700。
在步骤710,从神经元接收数字(例如,xi和δj)。
在步骤720,确定是否使用更新管理。如果是,则进入步骤730。否则,进入步骤790。
在步骤730,确定缩放因子γ,使得:
Figure BDA0002225316220000081
在步骤740,使用缩放因子γ缩放数字(xi和δj),使得缩放数字Cxxi和Cδδj之间的数量级相等。
在步骤750,通过一组TR将经缩放的数字转换成比特流(例如,随机或确定性比特流),每个比特流具有相应的比特长度(BL)。
在步骤760,应用神经网络更新。
在步骤770,将由神经网络更新周期更新的神经网络应用于对应于特定对象的输入信号。
在步骤780,基于神经网络的输出,执行与特定对象有关的动作或改变特定对象的状态(到另一状态)。
在步骤790,使用Cx和Cδ缩放数字(xi和δj),使得:
Figure BDA0002225316220000082
应当理解,本发明可以应用于涉及神经网络的无数应用,包括但不限于语音识别、说话人识别、手势识别、音频识别、自然语言处理、计算机视觉、生物信息学等等。因此,步骤770和780可以涉及任何前述应用。因此,关于语音识别,例如,声学话语可以被转换成语音表达。此外,进一步涉及语音识别,可以在识别出说出的密码、提交的生物识别标识符(例如,指纹)、说话者、对象等中的任何一个时解锁硬件或其他类型的锁。
在任何可能的技术细节结合层面,本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是--但不限于--电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言-诸如Java、Smalltalk、C++等,以及常规的过程式编程语言-诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络-包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
说明书中对本发明的“一个实施例”或“实施例”的引用以及其它变型意味着结合该实施例描述的特定特征、结构、特性等包含于本发明的至少一个实施例中。因此,在整个说明书中出现在各个地方的短语“在一个实施例中”或“在实施例中”以及任何其他变型的出现不一定都指代相同的实施例。
应当理解,使用“/”、“和/或”和“至少一个”的任何一个,例如,在“A/B”、“A和/或B”、“A和B中的至少一个”旨在包括:仅选择第一个列出的选项(A),或仅选择第二个列出的选项(B),或选择两个选项(A和B)。作为另一个例子,在“A、B和/或C”和“A、B和C中的至少一个”的情况下,这种措辞旨在包括:仅选择第一个列出的选项(A),或仅选择第二个列出的选项(B),或仅选择第三个列出的选项(C),或仅选择第一个和第二个列出的选项(A和B),或选择仅限第一和第三个列出的选项(A和C),或仅选择第二个和第三个列出的选项(B和C),或选择所有三个选项(A和B和C)。对于所列出的许多项目,如本领域和相关领域的普通技术人员显而易见的,这可以扩展。
已经描述了系统和方法的优选实施例(其旨在是说明性的而非限制性的),应注意,本领域技术人员根据上述教导可以进行修改和变化。因此,应该理解,可以在所公开的特定实施例中进行改变,这些改变在所附权利要求所概述的本发明的范围内。已经如此描述了本发明的各方面,具有专利法所要求的细节和特殊性,在所附权利要求中阐述了专利证书所要求和期望保护的内容。

Claims (23)

1.一种用于神经网络的更新管理的计算机实现的方法,该方法包括:
使用电阻处理单元RPU在神经网络上执行各向同性更新过程,各向同性更新过程使用乘法运算的被乘数和乘数,
其中所述执行步骤包括缩放被乘数和乘数以具有相同的数量级,
还包括由一个或多个随机转换器将对应于神经网络的神经元的数字组翻译成随机比特流,其中缩放因子被应用于所述一个或多个随机转换器的放大因子。
2.如权利要求1所述的计算机实现的方法,其中缩放被乘数和乘数以在缩放之前和之后保持相同的乘积。
3.如权利要求1所述的计算机实现的方法,其中缩放步骤在应用于各向同性更新过程的输入的输入调节过程中执行。
4.如权利要求3所述的计算机实现的方法,其中输入调节过程移除由被乘数与乘数的数量级之间的差异导致的错误空间相关性。
5.如权利要求1所述的计算机实现的方法,其中仅使用单个更新周期来执行各向同性更新过程。
6.如权利要求1所述的计算机实现的方法,其中,电阻处理单元RPU阵列被配置为执行模拟向量矩阵乘法。
7.如权利要求1所述的计算机实现的方法,其中,对具有满足一个或多个预定标准的比特长度的各个随机比特流执行各向同性更新过程。
8.如权利要求7所述的计算机实现的方法,其中,一个或多个预定标准包括具有最小比特流长度。
9.如权利要求1所述的计算机实现的方法,其中,一个或多个随机转换器包括第一随机转换器和第二随机转换器,并且其中,缩放步骤包括将第一随机转换器的放大因子乘以所述缩放因子,并将第二随机转换器的放大因子除以所述缩放因子。
10.如权利要求1所述的计算机实现的方法,还包括由一个或多个确定性转换器将对应于神经网络的神经元的数字组转换成确定性比特流。
11.如权利要求10所述的计算机实现的方法,其中,对具有满足一个或多个预定标准的比特长度的确定性比特流中的相应比特流执行各向同性更新过程。
12.如权利要求11所述的计算机实现的方法,其中,一个或多个预定标准包括具有最小比特流长度。
13.如权利要求10所述的计算机实现的方法,其中,缩放因子被应用于一个或多个确定性转换器的放大因子。
14.如权利要求10所述的计算机实现的方法,其中,一个或多个确定性转换器包括第一确定性转换器和第二确定性转换器,并且其中,缩放步骤包括将第一确定性转换器的放大因子乘以所述缩放因子并将第二确定性转换器的放大因子除以所述缩放因子。
15.一种用于神经网络的更新管理的计算机可读存储介质,具有与其一起实现的程序指令,该程序指令可由计算机执行以使计算机执行包括以下的方法:
使用电阻处理单元RPU在神经网络上执行各向同性更新过程,各向同性更新过程使用乘法运算的被乘数和乘数,
其中所述执行步骤包括缩放被乘数和乘数以具有相同的数量级,
还包括由一个或多个随机转换器将对应于神经网络的神经元的数字组翻译成随机比特流,其中缩放因子被应用于所述一个或多个随机转换器的放大因子。
16.如权利要求15所述的计算机可读存储介质,其中缩放被乘数和乘数以在缩放之前和之后保持相同的乘积。
17.如权利要求15所述的计算机可读存储介质,其中,缩放步骤在应用于各向同性更新过程的输入的输入调节过程中执行。
18.如权利要求17所述的计算机可读存储介质,其中输入调节过程移除由被乘数与乘数的数量级之间的差异导致的错误空间相关性。
19.如权利要求15所述的计算机可读存储介质,其中仅使用单个更新周期来执行各向同性更新过程。
20.如权利要求15所述的计算机可读存储介质,其中,RPU阵列被配置为执行模拟向量矩阵乘法。
21.一种用于神经网络的更新管理的计算机处理系统,该计算机处理系统包括:
电阻处理单元RPU,被配置为在神经网络上执行各向同性更新处理,各向同性更新过程使用乘法运算的被乘数和乘数,以及
一个或多个随机转换器,
其中,RPU被配置为通过缩放被乘数和乘数以具有相同的数量级来执行各向同性更新过程,并且
其中,所述一个或多个随机转换器被配置为将对应于神经网络的神经元的数字组翻译成随机比特流,其中缩放因子被应用于所述一个或多个随机转换器的放大因子。
22.如权利要求21所述的计算机处理系统,还包括非线性滤波器。
23.如权利要求21所述的计算机处理系统,其中所述RPU包含在专用集成电路中。
CN201880023799.2A 2017-04-14 2018-03-13 Rpu阵列的更新管理 Active CN110506282B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/487,701 US10783432B2 (en) 2017-04-14 2017-04-14 Update management for RPU array
US15/487,701 2017-04-14
PCT/IB2018/051644 WO2018189600A1 (en) 2017-04-14 2018-03-13 Update management for rpu array

Publications (2)

Publication Number Publication Date
CN110506282A CN110506282A (zh) 2019-11-26
CN110506282B true CN110506282B (zh) 2023-04-28

Family

ID=63790739

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880023799.2A Active CN110506282B (zh) 2017-04-14 2018-03-13 Rpu阵列的更新管理

Country Status (6)

Country Link
US (2) US10783432B2 (zh)
JP (1) JP6986569B2 (zh)
CN (1) CN110506282B (zh)
DE (1) DE112018000723T5 (zh)
GB (1) GB2576275A (zh)
WO (1) WO2018189600A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10303998B2 (en) * 2017-09-28 2019-05-28 International Business Machines Corporation Floating gate for neural network inference
US11651231B2 (en) 2019-03-01 2023-05-16 Government Of The United States Of America, As Represented By The Secretary Of Commerce Quasi-systolic processor and quasi-systolic array
US11562249B2 (en) * 2019-05-01 2023-01-24 International Business Machines Corporation DNN training with asymmetric RPU devices
CN110750231B (zh) * 2019-09-27 2021-09-28 东南大学 一种面向卷积神经网络的双相系数可调模拟乘法计算电路
US11501148B2 (en) * 2020-03-04 2022-11-15 International Business Machines Corporation Area and power efficient implementations of modified backpropagation algorithm for asymmetric RPU devices
US11501023B2 (en) 2020-04-30 2022-11-15 International Business Machines Corporation Secure chip identification using resistive processing unit as a physically unclonable function
US11366876B2 (en) 2020-06-24 2022-06-21 International Business Machines Corporation Eigenvalue decomposition with stochastic optimization
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

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5258934A (en) 1990-05-14 1993-11-02 California Institute Of Technology Charge domain bit serial vector-matrix multiplier and method thereof
JPH04153827A (ja) * 1990-10-18 1992-05-27 Fujitsu Ltd ディジタル乗算器
US20040083193A1 (en) 2002-10-29 2004-04-29 Bingxue Shi Expandable on-chip back propagation learning neural network with 4-neuron 16-synapse
EP1508872A1 (en) * 2003-08-22 2005-02-23 Semeion An algorithm for recognising relationships between data of a database and a method for image pattern recognition based on the said algorithm
US9715655B2 (en) 2013-12-18 2017-07-25 The United States Of America As Represented By The Secretary Of The Air Force Method and apparatus for performing close-loop programming of resistive memory devices in crossbar array based hardware circuits and systems
US9466362B2 (en) 2014-08-12 2016-10-11 Arizona Board Of Regents On Behalf Of Arizona State University Resistive cross-point architecture for robust data representation with arbitrary precision
US20170061279A1 (en) * 2015-01-14 2017-03-02 Intel Corporation Updating an artificial neural network using flexible fixed point representation
US10748064B2 (en) 2015-08-27 2020-08-18 International Business Machines Corporation Deep neural network training with native devices
US10325006B2 (en) 2015-09-29 2019-06-18 International Business Machines Corporation Scalable architecture for analog matrix operations with resistive devices
US10387778B2 (en) 2015-09-29 2019-08-20 International Business Machines Corporation Scalable architecture for implementing maximization algorithms with resistive devices
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法

Also Published As

Publication number Publication date
DE112018000723T5 (de) 2019-10-24
JP6986569B2 (ja) 2021-12-22
US20180300627A1 (en) 2018-10-18
JP2020517002A (ja) 2020-06-11
GB2576275A (en) 2020-02-12
GB201916146D0 (en) 2019-12-18
CN110506282A (zh) 2019-11-26
WO2018189600A1 (en) 2018-10-18
US20180300622A1 (en) 2018-10-18
US10783432B2 (en) 2020-09-22
US11062208B2 (en) 2021-07-13

Similar Documents

Publication Publication Date Title
CN110506282B (zh) Rpu阵列的更新管理
KR102359216B1 (ko) 신경망을 이용한 텍스트 시퀀스 처리
US10664745B2 (en) Resistive processing units and neural network training methods
KR102410820B1 (ko) 뉴럴 네트워크를 이용한 인식 방법 및 장치 및 상기 뉴럴 네트워크를 트레이닝하는 방법 및 장치
KR102608469B1 (ko) 자연어 생성 방법 및 장치
CN112435656B (zh) 模型训练方法、语音识别方法、装置、设备及存储介质
BR112019004524B1 (pt) Sistema de redes neurais, um ou mais meios de armazenamento legíveis por computador não transitório e método para gerar autorregressivamente uma sequência de saída de dados de áudio
JP2018533804A (ja) 畳み込みゲート制御再帰型ニューラルネットワーク
US11010560B2 (en) Multi-resolution convolutional neural networks for sequence modeling
US11263516B2 (en) Neural network based acoustic models for speech recognition by grouping context-dependent targets
US10026395B1 (en) Methods and systems for extracting auditory features with neural networks
CN113826122A (zh) 人工神经网络的训练
US11341413B2 (en) Leveraging class information to initialize a neural network language model
WO2021218095A1 (zh) 图像处理方法及装置、电子设备和存储介质
Buddana et al. Word level LSTM and recurrent neural network for automatic text generation
CN116171445A (zh) 神经网络的在线训练
US20210279591A1 (en) Minimum Deep Learning with Gating Multiplier
CA2953953C (en) Methods and systems for extracting auditory features with neural networks
JP7332193B2 (ja) 因子グラフ上での確率伝搬
Huang et al. A case study for constrained learning neural root finders
CN113128180A (zh) 文本生成方法和设备
US20200151569A1 (en) Warping sequence data for learning in neural networks
Roberts Neural networks for Lorenz map prediction: A trip through time
CN111310794A (zh) 目标对象的分类方法、装置和电子设备
US11500963B2 (en) Fast PCA of evolving data using analog crossbar array

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