CN116391192A - Rpu交叉开关阵列上的权重重复 - Google Patents

Rpu交叉开关阵列上的权重重复 Download PDF

Info

Publication number
CN116391192A
CN116391192A CN202180071597.7A CN202180071597A CN116391192A CN 116391192 A CN116391192 A CN 116391192A CN 202180071597 A CN202180071597 A CN 202180071597A CN 116391192 A CN116391192 A CN 116391192A
Authority
CN
China
Prior art keywords
weight
rpu
weight matrix
array
repeated
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
Application number
CN202180071597.7A
Other languages
English (en)
Inventor
M·J·拉什
T·戈克曼
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 CN116391192A publication Critical patent/CN116391192A/zh
Pending legal-status Critical Current

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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • 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
    • G06N3/065Analogue means
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/77Array wherein the memory element being directly connected to the bit lines and word lines without any access device being used

Abstract

提出了一种用于人工神经网络训练的方法。该方法包括:将权重值存储在电阻式处理单元(RPU)器件的阵列中,其中RPU器件的阵列表示权重矩阵;定义权重矩阵以具有小于输入维度的输出维度,使得权重矩阵具有矩形配置;以及通过重复或级联权重矩阵的矩形配置来将权重矩阵从矩形配置转换为更方形的配置,以通过以下步骤来增加后向传递信号的信号强度:在前向循环传递期间复制重复的权重元素的输入;对来自重复的权重元素的输出计算进行求和;根据后向传播误差来更新重复的权重元素中的每一个;或者可替换地,通过在更新传递期间将除了一之外的所有前向值设置为零来仅更新重复的权重元素中的一个。

Description

RPU交叉开关阵列上的权重重复
背景技术
本发明一般涉及具有电阻式处理单元(RPU)设备的模拟交叉点阵列的人工神经网络(ANN),并且更具体地,涉及通过RPU交叉点阵列上的权重重复来增加信号强度。
机器学习用于广泛地描述从数据学习的电子系统的主要功能。在机器学习和认知科学中,ANN是由生物神经网络(特别是大脑)所启发的一族统计学习模型。ANN可以用于估计或近似依赖于大量输入并且通常未知的系统和函数。ANN通常被实现为互连处理器元件的所谓“神经形态”系统,所述互连处理器元件充当模拟的“神经元”并且以电子信号的形式在彼此之间交换消息。类似于在生物神经元之间携带信息的突触神经递质连接的所谓“可塑性”,在模拟神经元之间携带电子信息的ANN中的连接具有对应于给定连接的强度(strength)或弱度(weakness)的数字权重。权重可以基于经验来调整和调谐,使得ANN适应于输入并且能够学习。
发明内容
根据一个实施例,提供了一种用于人工神经网络(ANN)训练的方法。该方法包括:将权重值存储在电阻式处理单元(RPU)器件的阵列中,其中RPU器件的阵列通过将权重矩阵W的权重值存储为阵列中的RPU器件的电阻值来表示具有m行和n列的ANN的该权重矩阵W;定义权重矩阵W以具有小于输入维度的输出维度,使得权重矩阵W具有矩形配置;以及通过重复或级联权重矩阵W的矩形配置来将权重矩阵W从矩形配置转换成更方形的配置,以通过以下步骤来增加后向传递信号的信号强度:在前向循环传递期间复制重复的权重元素的输入;对来自所述重复的权重元素的输出计算求和,得到每行一个输出;以及根据后向传播误差来更新所述重复的权重元素中的每一个或者在替代方案中通过在更新传递期间将除了一之外的所有前向值设置为零来仅更新所述重复的权重元素中的一个。
一种包括计算机可读程序的非暂时性计算机可读存储介质,其被呈现用于人工神经网络(ANN)训练,其中当在计算机上执行时,所述计算机可读程序使得该计算机执行以下步骤:将权重值存储在电阻式处理单元(RPU)器件的阵列中,其中RPU器件的阵列通过将权重矩阵W的权重值存储为阵列中的RPU器件的电阻值来表示具有m行和n列的ANN的该权重矩阵W;定义权重矩阵W以具有小于输入维度的输出维度,使得权重矩阵W具有矩形配置;以及通过重复或级联权重矩阵W的矩形配置来将权重矩阵W从矩形配置转换成更方形的配置,以通过以下步骤来增加后向传递信号的信号强度:在前向循环传递期间复制重复的权重元素的输入;对来自所述重复的权重元素的输出计算求和,得到每行一个输出;以及根据后向传播误差来更新所述重复的权重元素中的每一个或者在替代方案中通过在更新传递期间将除了一之外的所有前向值设置为零来仅更新所述重复的权重元素中的一个。
提出了一种用于人工神经网络(ANN)训练的系统。该系统包括:用于存储权重值的电阻式处理单元(RPU)器件的阵列,其中RPU器件的阵列通过将权重矩阵W的权重值存储为所述阵列中的RPU器件的电阻值来表示具有m行和n列的ANN的所述权重矩阵W,以及处理器,该处理器用于控制跨阵列的RPU器件的电压,其中定义权重矩阵W以具有小于输入维度的输出维度,使得权重矩阵W具有矩形配置,并且通过重复或级联权重矩阵W的矩形配置来将权重矩阵W从矩形配置转换成更方形的配置,以增加后向传递信号的信号强度。
应当注意,参考不同的主题描述了示例性实施例。特别地,一些实施例是参考方法类型权利要求来描述的,而其他实施例是参考装置类型权利要求来描述的。然而,本领域技术人员将从以上和以下描述中了解到,除非另外指出,除了属于一种类型的主题的特征的任何组合之外,与不同主题相关的特征之间的任何组合,特别是方法类型权利要求的特征与装置类型权利要求的特征之间的任何组合,也被认为是在本文件内描述的。
从以下结合附图阅读的对本发明的说明性实施例的详细描述中,这些和其它特征和优点将变得显而易见。
附图说明
本发明将参考以下附图在以下优选实施例的描述中提供细节,其中:
图1是示出根据本发明的实施例的在电阻式处理单元(RPU)器件的模拟交叉点阵列中实现的人工神经网络(ANN)的图;
图2示出了根据本发明的实施例的RPU阵列上的示例性模拟向量矩阵乘法;
图3是示出根据本发明的实施例的前向传递中的示例性矩形RPU阵列的示图,其中,采用RPU阵列的矩形子区域;
图4是示出根据本发明的实施例的前向传递中的示例性方形(square)RPU阵列的示图,其中,采用整个方形RPU阵列;
图5是示出根据本发明的实施例的后向传递中的示例性矩形RPU阵列的示图,其中,采用RPU阵列的矩形子区域;
图6是示出根据本发明的实施例的后向传递中的示例性矩形RPU阵列的示图,其中,采用整个方形RPU阵列,并且其中,输出维度m是输入维度的一半,使得每列精确重复一次;
图7是根据本发明的实施例的前向传递和后向传递中采用的示例性等式的框图/流程图;
图8示出了根据本发明的实施例的包括在操作上对RPU交叉开关(crossbar)阵列执行权重重复的计算设备的计算系统的组件的框图;以及
图9是根据本发明的实施例的用于通过RPU交叉开关阵列上的权重重复来增加信号强度的方法的示例性框图/流程图。
在所有附图中,相同或相似的附图标记表示相同或相似的元件。
具体实施方式
根据本发明的示例性实施例通过在电阻式处理单元(RPU)交叉开关阵列上的权重重复来提供增加的后向传递信号的信号强度。特别地,通过重复或复制RPU交叉开关阵列的列和/或行来修改权重矩阵。这是通过在电阻性器件阵列上重复一些权重元素(weightelement)并累积数字外围中重复的权重元素(即行和/或列)的结果以增加后向传递循环期间的输出信号强度来实现的,这提高了精度并降低了对高分辨率模数转换器(ADC)的要求。结果,采用较低精度ADC有助于增加模拟硬件芯片的功率效率,这提供了更好的噪声和边界管理,这进而改善了神经网络训练性能。
交叉开关阵列,也称为交叉点阵列或交叉线阵列,是用于形成各种电子电路和器件的高密度、低成本电路架构,包括ANN架构、神经形态微芯片和超高密度非易失性存储器。基本的交叉开关阵列配置包括一组导电行线和形成为与该一组导电行线交叉的一组导电列线。这两组线之间的交叉部分由所谓的交叉点器件分离,交叉点器件可以由薄膜材料形成。
交叉点器件实际上用作神经元之间的ANN加权连接。纳米级二端子器件,例如具有“理想”导电状态切换特性的忆阻器,经常被用作交叉点器件,以便以高能量效率模拟突触可塑性。理想忆阻器材料的导电状态(例如,电阻)可以通过控制在行线和列线的各个线之间施加的电压来改变。可以通过改变忆阻器材料在交叉处的导电状态以实现高导电状态或低导电状态来存储数字数据。忆阻器材料还可以被编程为通过选择性地设置材料的导电状态来保持两个或更多个不同的导电状态。忆阻器材料的导电状态可以通过跨材料施加电压并测量通过目标交叉点器件的电流来读取。
然而,由于模拟噪声,利用诸如模拟RPU阵列的模拟电阻性交叉开关阵列的ANN训练可能是困难的。此外,训练过程受到用于RPU阵列的模数转换器(ADC)和数模转换器(DAC)的有界范围的限制。ADC和DAC分别用于将到RPU的数字输入转换为模拟信号,以及将来自RPU的输出转换回数字信号。可以通过涉及增加矩形权重矩阵的输出信号的噪声管理方法来降低模拟噪声。
本发明的示例性实施例公开了一种方法和系统,其通过在一个物理模拟交叉开关阵列上对深度神经网络(DNN)的权重进行重复编码以增加后向传递信号的输出信号,来有利地管理模拟噪声。本发明的示例性实施例还公开了一种方法和系统,其使用n倍的矩形权重矩阵来使矩形权重矩阵更接近方形,从而更好地适合于物理方形交叉开关阵列。本发明的示例性实施例还公开了一种方法和系统,其将DNN(例如,卷积神经网络(CNN))网络层的权重重复地编码到单个模拟交叉开关阵列上,然后对数字外围中的重复行和/或列的输出求和(平均)或分配(复制)以维持正确的DNN/CNN网络架构。本发明的示例性实施例还公开了一种方法和系统,其将DNN/CNN网络层的权重重复编码到单个模拟交叉开关阵列上,然后对数字外围中的重复行和/或列的输出求和(平均)或分配(复制),以维持正确的DNN/CNN网络架构,并且同时地或并发地更新重复的权重中的仅一个(例如,随机选择的)或所有重复的权重。
因此,示例性方法和系统提供了改进的神经网络训练性能。特别地,后向传递信号的弱输出信号显著增加,这减少了对精确ADC的要求。此外,由于重复,模拟元件的噪声被平均,从而训练精度提高。
应当理解,将根据给定的说明性架构来描述本发明;然而,其它架构、结构、衬底材料和工艺特征和步骤/块可以在本发明的范围内变化。应当注意,为了清楚起见,某些特征不能在所有附图中示出。这不应被解释为对任何特定实施例或说明或权利要求的范围的限制。
以下描述本发明的各种说明性实施例。为了清楚起见,在本说明书中没有描述实际实现的所有特征。当然,应了解,在开发任何此种实际实施例时,必须作出许多与实现相关的决定以实现开发者的特定目标,例如符合与系统相关及与商业相关的限制条件,这些限制条件将因实现而异。此外,应当理解,这种开发工作可能是复杂且耗时的,但是对于受益于本发明的本领域普通技术人员来说,这不过是常规任务。
图1是示出根据本发明的实施例的在电阻式处理单元(RPU)器件的模拟交叉点阵列中实现的人工神经网络(ANN)的图。
如图1所示,算法(抽象)权重矩阵10的每个参数(权重Wij)被映射到硬件上的单个RPU器件(RPUij),即RPU器件的物理交叉点阵列12。交叉点阵列12具有一系列导电行线14和一系列导电列线16,该一系列导电列线16取向与导电行线14正交并相交,导电行线14和列线16的交点被RPU器件18分离,形成RPU器件18的交叉点阵列12。每个RPU器件18可以包括第一端子、第二端子和有源区域。有源区域的导电状态标识RPU器件18的权重值,其可以通过向第一/第二端子施加信号来更新/调整。此外,三个端子(或甚至更多个端子)器件可以通过控制额外的端子而有效地用作二端电阻式存储器件。
具有M行和N列的矩阵W通常被映射到具有M列和N行的RPU阵列,因此,图中的积分沿着RPU阵列的列发生,而求和沿着W的行在数学上发生。因此,数学W到RPU数组的映射实际上是转置的。结果,为了便于显示,矩阵W的数学行被显示为RPU阵列的列。例如,从交叉点阵列12的顶部到底部,以及从左到右,在第一导电行线14和第一导电列线16的交叉点处的RPU器件18被指定为RPU11,在第一导电行线14和第二导电列线16的交叉点处的RPU器件18被指定为RPU12,等等。权重矩阵10中的加权参数到交叉点阵列12中的RPU器件18的映射遵循类似的惯例,虽然通常惯例是为了显示目的而互换RPU阵列的列和行。例如,权重矩阵10的权重Wi1被映射到交叉点阵列12的RPU1i,权重矩阵10的权重Wi2被映射到交叉点阵列12的RPU2i,等等。
交叉点阵列12的RPU器件18用作ANN中神经元之间的加权连接。RPU器件18的电阻可以通过控制施加在各个导电行线14和导电列线16之间的电压来改变,改变电阻是基于例如高电阻状态或低电阻状态如何将数据存储在RPU器件18中。通过施加电压并测量通过目标RPU器件18的电流来读取RPU器件18的电阻状态,所有涉及权重的操作都由RPU器件18完全并行地执行。
在机器学习和认知科学中,基于ANN的模型是由动物的生物神经网络(特别是大脑)所启发的一族统计学习模型。这些模型可以用于估计或近似依赖于通常未知的连接的大量输入和权重的系统和认知功能。ANN通常被实现为互连处理器元件的所谓“神经形态”系统,所述互连处理器元件充当以电子信号的形式在彼此之间交换“消息”的模拟“神经元”(图8)。在模拟神经元之间携带电子消息的ANN中的连接被提供有对应于给定连接的强度或弱度的数字权重(图8)。这些数值权重可以基于经验来调整和调谐,使得ANN适应于输入并且能够学习。例如,用于手写识别的ANN由一组输入神经元定义,该一组输入神经元可以由输入图像的像素激活。在由网络设计者确定的函数进行加权和变换之后,这些输入神经元的激活然后被传递到其他下游神经元。重复该过程直到激活输出神经元。激活的输出神经元确定哪个字符被读取。
可以利用增量或随机梯度下降(SGD)过程来训练ANN,其中使用后向传播(backpropagation)来计算每个参数(权重Wij)的误差梯度。后向传播在三个循环中执行,即前向循环、后向循环和权重更新循环,它们被重复多次直到满足收敛标准。基于DNN的模型包括多个处理层,这些处理层学习具有多个抽象等级的数据表示。对于N个输入神经元连接到M个输出神经元的单个处理层,前向循环涉及计算向量-矩阵乘法(y=Wx),其中长度为N的向量x表示输入神经元的活动,并且大小为M×N的矩阵W存储每对输入和输出神经元之间的权重值。通过对每个电阻存储元件执行非线性激活来进一步处理所得到的长度为M的向量y,然后将其传递到下一层。
一旦信息到达最终输出层,后向传递循环涉及计算误差信号并通过ANN后向传播误差信号。单层上的后向传递循环涉及对权重矩阵(z=WTδ)的转置(互换每行和对应列)的向量-矩阵乘法,其中长度为M的向量δ表示由输出神经元计算的误差,并且长度为N的向量z使用神经元非线性的导数(derivative)被进一步处理,然后被向下传递到先前层。
最后,在权重更新循环中,通过执行在前向和后向传递循环中使用的两个向量的外积来更新权重矩阵W。这两个向量的外积通常被表示为W←W+η(δxT),其中η是全局学习率。
在这个后向传播过程期间,在权重矩阵W上执行的所有运算都可以用具有对应的数量m行和n列的RPU器件18的交叉点阵列12来实现,其中交叉点阵列12中存储的电导值形成矩阵W。在前向循环中,输入向量x作为电压脉冲通过导电列线16中的每一个传输,并且得到的向量y被读取为从导电行线14输出的电流。类似地,当从导电行线14提供电压脉冲作为后向传递循环的输入时,在权重矩阵的转置WT上计算向量矩阵乘积。最后,在更新循环中,从导电的列线16和导电的行线14同时提供代表向量x和δ的电压脉冲。因此,每个RPU器件18通过处理来自对应的导电列线16和导电行线14的电压脉冲来执行局部乘法和求和操作,从而实现增量权重更新。
RPU器件的电阻值被限制在具有有限制和有限状态分辨率的有界范围内,这限制了可用于ANN训练的权重范围。此外,在RPU阵列上执行的操作本质上是模拟的,因此易于产生各种噪声源。当RPU阵列的输入值小时(诸如对于后向传递),输出信号y可能被噪声掩盖,从而产生不正确的结果。在训练阶段,ANN训练可以涉及具有后向传播的SGD过程。
使用批(batch)执行CNN训练。因此,选择要用于训练的一批输入数据。使用输入映射和卷积核,生成输出映射。生成输出映射通常被称为“前向传递(forward pass)”。此外,该方法包括使用输出映射来确定预期字符识别和CNN的接近或远离程度。诸如使用梯度下降来确定与包括CNN的矩阵中的每一个相关的误差度。确定相对误差被称为“后向传递(backward pass)”。该方法还包括修改或更新矩阵以针对误差进行调整。基于输出误差信息调整卷积核并使用其来确定每个神经网络矩阵的修改被称为“更新传递(updatepass)”。
图2示出了根据本发明的实施例的RPU阵列上的示例性模拟向量矩阵乘法。
模拟向量矩阵乘法100涉及一组数字输入值(δ)110,其中数字输入值(δ)110中的每一个由相应模拟信号脉冲宽度120表示。模拟信号脉冲宽度120被提供作为阵列的输入,并且所产生的电流信号被输入到运算放大器(op-amp)积分电路130,其具有运算放大器131,其中电容器(Cint)132连接到(跨接)op-amp 131的反相输入和运算放大器131的输出。运算放大器131的非反相输入接地。运算放大器131的输出还连接到模数转换器(ADC)140的输入。ADC 140输出信号y1,其表示RPU阵列上的模拟向量矩阵乘法100的(数字化)结果。
对于完整的积分时间,模拟噪声在运算放大器131处累积。当输入值(δ)110变得太小时(例如,诸如对于后向传递),输出信号被对循环积分的噪声(SNR~0)掩盖,并产生不正确的结果。
尽管实际脉冲持续时间比完整的积分时间短得多,但是ADC 140等待完整的循环以评估来自op-amp 131的模拟输出。希望降低模拟噪声。图3至图6示出了通过在前向和后向传递信号之间提供对称信号强度来管理噪声的方法和系统。
图3是示出根据本发明的实施例的在前向传递中的示例性矩形RPU阵列的示图,其中,采用RPU阵列的矩形子区域。
每个圆圈202表示到RPU硬件系统200的单独数字输入x。例如,在前向循环传递中,数字输入x(或202)被提供给矩阵W的m行,当由RPU阵列200接收时,数字输入202被指定为数字RPU输入x'(或204)。数字RPU输入204被馈送到噪声/边界管理单元或组件210中。在RPU阵列225上执行的向量矩阵乘法本质上是模拟的,因此易于产生各种噪声源。因此,噪声/边界管理单元或组件210执行降噪操作。数模转换器(标记为“DA转换器212”)将数字RPU输入x'(或204)作为输入提供给RPU阵列225作为模拟脉冲宽度215。RPU阵列225包括第一区域230和第二区域235。第一区域230是正被使用的矩形区域,而第二区域235是未被使用的区域。术语“使用”意味着RPU被加载了与其权重相对应的电导。来自RPU阵列230的(模拟)输出240通过模数转换器(标记为“AD转换器250”)被转换成数字RPU输出y'(或260)的向量。数字RPU输出260被馈送到另一个噪声/边界管理单元或组件270。而且,向量矩阵乘法的结果是模拟电压,因此该结果由电路施加的信号限制所界定。因此,噪声/边界管理单元或组件270执行降噪操作以确保RPU阵列230的输出处的结果总是在可接受的电压摆动(swing)的范围内。
结果,电阻交叉开关元件的输出电容器具有有限大小(导致有限的输出边界(bound)b),并且由于有限的ADC分辨率,接近零的模拟输出信号被设置为零。因此,如果RPU阵列230的模拟输出太小,则数字输出可以全为零。当ADC分辨率小时(例如,当输出边界b保持不变时,ADC仓(bin)大小变得更大),这种影响是不受欢迎的。如果编码到RPU阵列230上的权重矩阵不是方形(如图3所示),则这种影响尤其不受欢迎。那么,平均来说,前向和后向具有非常不同的平均信号强度。例如,在10类分类网络中,最后的全连接层通常具有1000×10数量级的大小。因此,平均起来,在后向方向上具有至少少
Figure BDA0004186729450000091
倍的信号。如果后向信号太小(例如,小于最小的ADC仓大小),则误差被设置为零并且学习失败。对于对称的RPU(例如,用于前向和后向的相同硬件规格,诸如ADC分辨率和输出边界),这种影响是不期望的。图4示出了缓解这些问题的解决方案。
图4是示出根据本发明的实施例的前向传递中的示例性方形RPU阵列的示图,其中采用整个方形RPU阵列。
为了清楚起见,将不描述与图3类似的元件。RPU硬件系统200'与RPU硬件系统200(图3)的不同之处在于,权重矩阵W(225)已经被复制k次,使得采用附加权重元素以便将权重矩阵W(225)的矩形配置转换或修改为接近或近似或基本上方形配置。注意,RPU阵列(225)总是物理上为方形。然而,如果权重矩阵具有矩形形状并且假设权重矩阵的列的数目适合RPU阵列的输入维度,则仅使用物理上方形形状的RPU阵列的矩形子区域。如上所述,术语“使用”意味着RPU被加载与其权重对应的电导。因此,在图3中,第二区域235(包括RPU的若干行和/或列)未被使用。然而,在图4中,通过增加RPU 405的更多行和/或列来增加权重矩阵的大小,以将权重矩阵W(225)的矩形配置转换或修改为基本上或近似方形的配置。复制或重复的行和/或列405使得矩形权重矩阵225更像方形。复制或重复的行和/或列在噪声/边界管理单元270之后被指定为280,并且被求和(282),从而导致每行一个输出。重复的权重280的全部或仅一个重复的权重290被更新。如果只更新一个,则可以随机选择或顺序选择重复的权重290。因此,在第二实施例中,仅所有重复的权重的子集被同时或并发地更新。
系统通过计算所有权重矩阵的重复的数量来知道要添加多少行/列来实现近似或基本上方形的配置。为了计算所有权重矩阵的重复数目,系统可以简单地将矩阵W的输入维数N(列数)除以矩阵W的输出维数M(行数),并取最大的整数,例如r=floor(N/M)。这是所有行/列多久重复一次的数目。例如,在M=250且N=512的情况下,则r=2,并且所得到的权重矩阵的大小为N=512,并且M=250*r=500。该方法仅使权重矩阵近似为方形。
因此,为了解决上面关于图3所提到的问题,添加了行/列405,以便为前向传递和后向传递的信号强度提供对称性。注意,后向传递信号强度不需要精确地匹配前向传递信号强度。然而,如果假设输入维度与RPU阵列大小相似,则后向传递信号强度被最大化。这将防止系统添加比所需更多的行,因为物理RPU布局基本上或近似为方形。
特别地,假设方形大小的RPU交叉开关阵列,示例性实施例使得能够复制行和/或列以使矩形权重矩阵W更方形。换句话说,物理上,RPU阵列总是方形的。然而,如图3所示,实际上仅使用RPU阵列的矩形子区域,因此,示例性实施例能够使用更多可用的交叉点,然后通过将重复的列加在一起以数字方式增加输出/输入处理。
例如,假设W的大小为m×n,在许多DNN网络中,m<<n,例如,输出维度比输入维度小得多。
示例性实施例构建或构造大小为km×n的更大矩阵
Figure BDA0004186729450000101
并且/>
Figure BDA0004186729450000102
Figure BDA0004186729450000103
例如,W被复制k次并被级联。
在前向传递中:
Figure BDA0004186729450000104
然后,/>
Figure BDA0004186729450000105
例如,将复制的输出相加(例如,在ADC 250之后的数字外围中)。
在后向过程中,下面将参照图5和图6详细描述:
Figure BDA0004186729450000106
其中/>
Figure BDA0004186729450000107
其中j=0,...,k-1。
因此,从原始增量(delta)复制对应的新增量输入。
通常,选择复制的数量k,使得mk≈n(同时不超过交叉开关阵列的物理大小限制)。此外,确保k小于b/wmax,其中b是输出边界(大约12)并且wmax是最大权重(大约0.6)。因此,k被最大化以实现mk≈n,但是不大于b/wmax(约20)。
在更新传递中,不改变(除了可能的学习率自适应之外),或者可选地,将误差
Figure BDA0004186729450000108
的随机分数/>
Figure BDA0004186729450000109
设置为零。
图5是示出根据本发明的实施例的在后向传递中的示例性矩形RPU阵列的示图,其中,使用RPU阵列的矩形子区域。
在RPU硬件系统500中,在RPU阵列525上执行的向量矩阵乘法本质上是模拟的,因此易于产生各种噪声源。因此,噪声/边界管理单元510执行降噪操作。数模转换器(标记为“DA转换器512”)将数字RPU输入x'(或560;图6)作为输入提供给RPU阵列525作为模拟脉冲宽度515。RPU阵列525包括第一区域530和第二区域535。第一区域530是正被使用的矩形区域,而第二区域535是未被使用的区域。术语“使用”意味着RPU被加载了与其权重相对应的电导。来自RPU阵列530的(模拟)输出240通过模数转换器(标记为“AD转换器250”)被转换成数字RPU输出y'(或260)的向量。数字RPU输出260被馈送到另一个噪声/边界管理单元270。而且,向量矩阵乘法的结果是模拟电压,因此,该结果由电路施加的信号限制所界定。因此,噪声/边界管理单元270执行降噪操作以确保RPU阵列530的输出处的结果总是在可接受的电压摆动的范围内。数字输出272是来自噪声/边界管理单元270的输出。
如上所述,电阻交叉开关元件的输出电容器具有有限大小(导致有限的输出边界b),并且由于有限的ADC分辨率,接近零的模拟输出信号被设置为零。因此,如果RPU阵列530的模拟输出太小,则数字输出可以全为零。当ADC分辨率小时(例如,当输出边界b保持不变时,ADC仓大小变得更大),这种影响是不受欢迎的。如果编码到RPU阵列530上的权重矩阵不是方形(如图5所示),则这种影响尤其不受欢迎。那么,平均来说,前向和后向具有非常不同的平均信号强度。如果后向信号太小(例如,小于最小的ADC仓大小),则误差被设置为零并且学习失败。对于对称的RPU(例如,用于前向和后向的相同硬件规格,诸如ADC分辨率和输出边界),这种影响是不期望的。图6示出了缓解这些问题的解决方案。
图6是示出根据本发明的实施例的后向传递中的示例性矩形RPU阵列的示图,其中,采用整个方形RPU阵列,并且其中,输出维度m是输入维度的一半,使得每列精确重复一次。
在后向循环传递中,数字输入x(或550)被提供给矩阵W(525)的n列。RPU硬件系统500'与RPU硬件系统500(图5)的不同之处在于,权重矩阵W(525)已经被复制k次,使得采用附加的权重元素以便将权重矩阵W(525)的矩形配置转换或修改为基本上或近似方形配置。注意,权重矩阵W(525)总是物理上为方形。然而,仅使用物理上方形形状的RPU阵列的矩形子区域。如上所述,术语“使用”意味着RPU被加载与其权重对应的电导。因此,在图5中,第二区域535(包括RPU的若干行和/或列)未被使用。然而,在图6中,通过增加RPU 605的更多行和/或列来增加权重矩阵的大小,以将权重矩阵W(525)的矩形配置转换或修改为基本或近似方形配置。复制或重复的行和/或列605使得矩形权重矩阵525更像方形。复制或重复的行和/或列在噪声/边界管理单元510之前被指定为560。
图7是根据本发明的实施例的在前向传递和后向传递中采用的示例性等式700的框图/流程图。
总之,示例性实施例公开了一种方法和系统,其将DNN的矩形权重矩阵复制/重复/连结到物理模拟交叉开关上,并且在前向传递期间将输入复制到重复的权重元素。示例性实施例还公开了一种方法和系统,其将DNN的矩形权重矩阵复制/重复/级联到物理模拟交叉开关上,并且对来自重复的权重元素的输出计算进行平均或求和,以得到原始权重矩阵的每行一个输出。示例性实施例还公开了一种方法和系统,其将DNN的矩形权重矩阵复制/重复/连结到物理模拟交叉开关上,并且根据后向传播误差来更新每个重复的权重。示例性实施例还公开了一种方法或系统,其将DNN的矩形权重矩阵复制/重复/连结到物理模拟交叉开关,并且通过在更新传递期间将除了一之外的所有后向增量(或前向值)设置为零来仅更新重复的权重元素之一。
图8描绘了包括计算设备905的系统900的组件的框图。应当理解,图8仅提供了一种实现的说明,而不暗示对其中可实现不同实施例的环境的任何限制。可以对所描述的环境进行许多修改。
计算设备905包括通信结构902,其提供计算机处理器904、存储器906、永久性存储装置908、通信单元910和输入/输出(I/O)接口912之间的通信。通信结构902可以用被设计成在处理器(诸如微处理器、通信和网络处理器等)、系统存储器、外围设备和系统内的任何其它硬件组件之间传递数据和/或控制信息的任何架构来实现。例如,通信结构902可以用一个或多个总线来实现。
存储器906、高速缓存存储器916和永久性存储装置908是计算机可读存储介质。在该实施例中,存储器906包括随机存取存储器(RAM)914。通常,存储器906可以包括任何合适的易失性或非易失性计算机可读存储介质。
在本发明的一些实施例中,深度学习程序925被包括并且由作为计算设备905的组件的神经形态芯片922操作。在其他实施例中,深度学习程序925被存储在永久性存储装置908中以供神经形态芯片922经由存储器906的一个或多个存储器结合相应计算机处理器904中的一个或多个来执行。在该实施例中,永久性存储装置908包括磁硬盘驱动器。作为磁硬盘驱动器的替代或补充,永久性存储装置908可包括固态硬盘驱动器、半导体存储设备、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、闪存、或能够存储程序指令或数字信息的任何其它计算机可读存储介质。
永久性存储装置908所使用的介质也可以是可移除的。例如,可移动硬盘驱动器可以用于永久性存储装置908。其它示例包括光盘和磁盘、拇指驱动器和智能卡,它们被插入到驱动器中以便传递到也是永久性存储装置908的一部分的另一计算机可读存储介质上。
在本发明的一些实施例中,神经形态芯片922包括在计算设备905中并且连接到通信结构902。
在这些示例中,通信单元910提供与包括分布式数据处理环境的资源的其他数据处理系统或设备的通信。在这些示例中,通信单元910包括一个或多个网络接口卡。通信单元910可以通过使用物理和无线通信链路中的一种或两种来提供通信。深度学习程序925可以通过通信单元910下载到永久性存储装置908。
I/O接口912允许与可以连接到计算系统900的其它设备输入和输出数据。例如,I/O接口912可以提供到诸如键盘、小键盘、触摸屏和/或一些其它合适的输入设备的外部设备918的连接。外部设备918还可以包括便携式计算机可读存储介质,诸如例如拇指驱动器、便携式光盘或磁盘以及存储器卡。
显示器920提供向用户显示数据的机制,并且可以是例如计算机监视器。
图9是根据本发明的实施例的用于通过RPU交叉开关阵列上的权重重复来增加信号强度的方法的示例性框图/流程图。
在框1010,将DNN的矩形权重矩阵复制或重复或级联到物理模拟交叉开关上。
在框1020,在前向传递期间将输入复制到重复的权重元素。
在框1030,对来自重复的权重元素的输出计算进行平均或求和,从而得到原始权重矩阵的每行一个输出。
在框1040,根据后向传播误差来更新每个重复的权重,或者在替换方案中,通过在更新传递期间将除了一之外的所有后向增量(或前向值)设置为零来仅更新重复的权重元素中的一个。
如本文所使用的,术语“数据”、“内容”、“信息”和类似术语可以互换地使用,以指代能够根据各种示例实施例被捕获、发送、接收、显示和/或存储的数据。因此,任何这样的术语的使用不应被认为限制本公开的精神和范围。此外,在计算设备在此被描述为从另一计算设备接收数据的情况下,该数据可以直接从该另一计算设备接收,或者可以经由一个或多个中间计算设备间接接收,所述中间计算设备诸如一个或多个服务器、中继器、路由器、网络接入点、基站等。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备(例如CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可以用来向计算机提供输入的键盘和指示设备(例如鼠标或轨迹球)。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的(一个或多个)计算机可读存储介质,所述计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起架构的机械编码设备,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言,例如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)。这可以扩展到所列的许多项目,这对于本领域和相关领域的普通技术人员来说是显而易见的。
已经描述了用于通过在RPU交叉点阵列上的权重重复来增加信号强度的系统和方法的优选实施例(其旨在说明而非限制),注意,本领域技术人员根据上述教导可以进行修改和变化。因此,应当理解,可以在所描述的特定实施例中进行改变,这些改变在由所附权利要求概括的本发明的范围内。因此,已经用专利法所要求的细节和特性描述了本发明的各方面,在所附权利要求中阐述了所要求保护的和期望由专利证书保护的内容。

Claims (25)

1.一种用于人工神经网络(ANN)训练的方法,所述方法包括:
将权重值存储在电阻式处理单元(RPU)器件的阵列中,其中RPU器件的阵列通过将权重矩阵W的权重值存储为所述阵列中的RPU器件的电阻值来表示具有m行和n列的ANN的所述权重矩阵W;
定义所述权重矩阵W以具有小于输入维度的输出维度,使得所述权重矩阵W具有矩形配置;以及
通过重复或级联所述权重矩阵W的矩形配置来将所述权重矩阵W从矩形配置转换成更方形的配置,以通过以下步骤来增加后向传递信号的信号强度:
在前向循环传递期间复制重复的权重元素的输入;
对来自所述重复的权重元素的输出计算求和,得到每行一个输出;以及
根据后向传播误差来更新所述重复的权重元素中的每一个。
2.根据权利要求1所述的方法,其中,所述权重元素是所述权重矩阵W的m行和n列。
3.根据权利要求1所述的方法,其中,添加到所述权重矩阵W的重复的权重元素提供前向传递信号与所述后向传递信号之间的对称信号强度。
4.根据权利要求1所述的方法,其中,在所述前向循环传递中,数字RPU输入在被所述RPU器件的阵列接收之前被馈送到第一噪声/边界测量组件和数模转换器(DAC)中。
5.根据权利要求4所述的方法,其中,在所述前向循环传递中,来自所述重复的权重元件的输出计算在由模数转换器(ADC)处理之后被求和。
6.根据权利要求5所述的方法,其中,在所述前向循环传递中:
Figure FDA0004186729440000011
以及/>
Figure FDA0004186729440000012
其中
Figure FDA0004186729440000013
是来自修改的RPU阵列/权重矩阵的即时输出信号向量,/>
Figure FDA0004186729440000014
是存储在所述RPU阵列上的修改的权重矩阵,x是输入信号向量,yi是原始输出向量的第i个元素,并且k是复制的数量。
7.根据权利要求1所述的方法,其中,在后向循环传递中:
Figure FDA0004186729440000015
其中/>
Figure FDA0004186729440000016
其中j=0,...,k-1
其中
Figure FDA0004186729440000021
是存储在所述RPU阵列上的转置的修改的权重矩阵,/>
Figure FDA0004186729440000022
是修改的误差信号向量,其在所述后向传递期间被输入到修改的RPU阵列/权重矩阵,并且/>
Figure FDA0004186729440000023
是修改的误差信号的第i+jk个元素。
8.一种非暂时性计算机可读存储介质,包括用于人工神经网络(ANN)训练的计算机可读程序,其中,所述计算机可读程序当在计算机上执行时使所述计算机执行以下步骤:
将权重值存储在电阻式处理单元(RPU)器件的阵列中,其中RPU器件的阵列通过将权重矩阵W的权重值存储为所述阵列中的RPU器件的电阻值来表示具有m行和n列的ANN的所述权重矩阵W;
定义所述权重矩阵W以具有小于输入维度的输出维度,使得所述权重矩阵W具有矩形配置;以及
通过重复或级联所述权重矩阵W的矩形配置来将所述权重矩阵W从矩形配置转换成更方形的配置,以通过以下步骤来增加后向传递信号的信号强度:
在前向循环传递期间复制重复的权重元素的输入;
对来自所述重复的权重元素的输出计算求和,得到每行一个输出;以及
根据后向传播误差来更新所述重复的权重元素中的每一个。
9.根据权利要求8所述的非暂时性计算机可读存储介质,其中,所述权重元素是所述权重矩阵W的m行和n列。
10.根据权利要求8所述的非暂时性计算机可读存储介质,其中,添加到所述权重矩阵W的重复的权重元素提供前向传递信号与所述后向传递信号之间的对称信号强度。
11.根据权利要求8所述的非暂时性计算机可读存储介质,其中,在所述前向循环传递中,数字RPU输入在被所述RPU器件的阵列接收之前被馈送到第一噪声/边界测量组件和数模转换器(DAC)中。
12.根据权利要求11所述的非暂时性计算机可读存储介质,其中,在所述前向循环传递中,来自所述重复的权重元件的输出计算在由模数转换器(ADC)处理之后被求和。
13.根据权利要求12所述的非暂时性计算机可读存储介质,其中,在所述前向循环传递中:
Figure FDA0004186729440000031
以及/>
Figure FDA0004186729440000032
其中
Figure FDA0004186729440000033
是来自修改的RPU阵列/权重矩阵的即时输出信号向量,/>
Figure FDA0004186729440000034
是存储在所述RPU阵列上的修改的权重矩阵,x是输入信号向量,yi是原始输出向量的第i个元素,并且k是复制的数量。
14.根据权利要求8所述的非暂时性计算机可读存储介质,其中,在后向循环传递中:
Figure FDA0004186729440000035
其中/>
Figure FDA0004186729440000036
其中j=0,...,k-1
其中
Figure FDA0004186729440000037
是存储在所述RPU阵列上的转置的修改的权重矩阵,/>
Figure FDA0004186729440000038
是修改的误差信号向量,其在所述后向传递期间被输入到修改的RPU阵列/权重矩阵,并且/>
Figure FDA0004186729440000039
是修改的误差信号的第i+jk个元素。
15.一种用于人工神经网络(ANN)训练的系统,所述系统包括:
用于存储权重值的电阻式处理单元(RPU)器件的阵列,其中RPU器件的阵列通过将权重矩阵W的权重值存储为所述阵列中的RPU器件的电阻值来表示具有m行和n列的ANN的所述权重矩阵W;以及
处理器,所述处理器用于控制跨所述阵列中的所述RPU器件的电压,其中,所述处理器:
定义所述权重矩阵W以具有小于输入维度的输出维度,使得所述权重矩阵W具有矩形配置;并且
通过重复或级联所述权重矩阵W的矩形配置来将所述权重矩阵W从矩形配置转换成更方形的配置,以增加后向传递信号的信号强度。
16.根据权利要求15所述的系统,其中,通过以下步骤来增加所述信号强度:
在前向循环传递期间复制重复的权重元素的输入;
对来自所述重复的权重元素的输出计算求和,得到每行一个输出;以及
根据后向传播误差来更新所述重复的权重元素中的每一个,或者可替换地通过在更新传递期间将除了一之外的所有前向值设置为零来仅更新所述重复的权重元素中的一个。
17.根据权利要求16所述的系统,其中,添加到所述权重矩阵W的重复的权重元素提供前向传递信号与所述后向传递信号之间的对称信号强度。
18.根据权利要求17所述的系统,其中,在所述前向循环传递中,数字RPU输入在被所述RPU器件的阵列接收之前被馈送到第一噪声/边界测量组件和数模转换器(DAC)中。
19.根据权利要求18所述的系统,其中,在所述前向循环传递中,来自所述重复的权重元件的输出计算在由模数转换器(ADC)处理之后被求和。
20.根据权利要求16所述的系统,其中,随机选择更新的一个重复的权重元素。
21.一种用于人工神经网络(ANN)训练的方法,所述方法包括:
将权重值存储在电阻式处理单元(RPU)器件的阵列中,其中RPU器件的阵列通过将权重矩阵W的权重值存储为所述阵列中的RPU器件的电阻值来表示具有m行和n列的ANN的所述权重矩阵W;
定义所述权重矩阵W以具有小于输入维度的输出维度,使得所述权重矩阵W具有矩形配置;以及
通过重复或级联所述权重矩阵W的矩形配置来将所述权重矩阵W从矩形配置转换成更方形的配置,以通过以下步骤来增加后向传递信号的信号强度:
在前向循环传递期间复制重复的权重元素的输入;
对来自所述重复的权重元素的输出计算求和,得到每行一个输出;以及
通过在更新传递期间将除了一之外的所有前向值设置为零来仅更新所述重复的权重元素中的一个。
22.根据权利要求21所述的方法,其中,添加到所述权重矩阵W的重复的权重元素提供前向传递信号与所述后向传递信号之间的对称信号强度。
23.根据权利要求21所述的方法,其中,在所述前向循环传递中,数字RPU输入在被所述RPU器件的阵列接收之前被馈送到第一噪声/边界测量组件和数模转换器(DAC)中。
24.根据权利要求23所述的方法,其中,在所述前向循环传递中,来自所述重复的权重元件的输出计算在由模数转换器(ADC)处理之后被求和。
25.一种非暂时性计算机可读存储介质,包括用于人工神经网络(ANN)训练的计算机可读程序,其中,所述计算机可读程序当在计算机上执行时使所述计算机执行以下步骤:
将权重值存储在电阻式处理单元(RPU)器件的阵列中,其中RPU器件的阵列通过将权重矩阵W的权重值存储为所述阵列中的RPU器件的电阻值来表示具有m行和n列的ANN的所述权重矩阵W;
定义所述权重矩阵W以具有小于输入维度的输出维度,使得所述权重矩阵W具有矩形配置;以及
通过重复或级联所述权重矩阵W的矩形配置来将所述权重矩阵W从矩形配置转换成更方形的配置,以通过以下步骤来增加后向传递信号的信号强度:
在前向循环传递期间复制重复的权重元素的输入;
对来自所述重复的权重元素的输出计算求和,得到每行一个输出;以及
通过在更新传递期间将除了一之外的所有前向值设置为零来仅更新所述重复的权重元素中的一个。
CN202180071597.7A 2020-11-02 2021-10-28 Rpu交叉开关阵列上的权重重复 Pending CN116391192A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/086,856 US20220138579A1 (en) 2020-11-02 2020-11-02 Weight repetition on rpu crossbar arrays
US17/086,856 2020-11-02
PCT/IB2021/059959 WO2022090980A1 (en) 2020-11-02 2021-10-28 Weight repetition on rpu crossbar arrays

Publications (1)

Publication Number Publication Date
CN116391192A true CN116391192A (zh) 2023-07-04

Family

ID=81379059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180071597.7A Pending CN116391192A (zh) 2020-11-02 2021-10-28 Rpu交叉开关阵列上的权重重复

Country Status (6)

Country Link
US (1) US20220138579A1 (zh)
JP (1) JP2023547800A (zh)
CN (1) CN116391192A (zh)
DE (1) DE112021004941T5 (zh)
GB (1) GB2614687B (zh)
WO (1) WO2022090980A1 (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7041078B2 (ja) * 2016-06-09 2022-03-23 プログレス インコーポレイテッド ニューラルネットワーク、およびニューラルネットワークトレーニングの方法
EP3561732A4 (en) * 2016-12-23 2020-04-01 Cambricon Technologies Corporation Limited OPERATING DEVICE AND METHOD FOR AN ARTIFICIAL NEURONAL NETWORK
US11348002B2 (en) * 2017-10-24 2022-05-31 International Business Machines Corporation Training of artificial neural networks
CN108053029B (zh) * 2017-12-27 2021-08-27 上海闪易半导体有限公司 一种基于存储阵列的神经网络的训练方法
US20190251430A1 (en) * 2018-02-13 2019-08-15 International Business Machines Corporation Mixed signal cmos rpu with digital weight storage
US11455520B2 (en) * 2019-06-14 2022-09-27 International Business Machines Corporation Copying weights between resistive cross-point arrays
CN110796241B (zh) * 2019-11-01 2022-06-17 清华大学 基于忆阻器的神经网络的训练方法及其训练装置
US11586601B2 (en) * 2020-02-05 2023-02-21 Alibaba Group Holding Limited Apparatus and method for representation of a sparse matrix in a neural network

Also Published As

Publication number Publication date
GB202306109D0 (en) 2023-06-07
GB2614687B (en) 2024-02-21
JP2023547800A (ja) 2023-11-14
WO2022090980A1 (en) 2022-05-05
GB2614687A (en) 2023-07-12
US20220138579A1 (en) 2022-05-05
DE112021004941T5 (de) 2023-07-13

Similar Documents

Publication Publication Date Title
Nandakumar et al. Mixed-precision architecture based on computational memory for training deep neural networks
CN107924227B (zh) 电阻处理单元
Kendall et al. Training end-to-end analog neural networks with equilibrium propagation
Li et al. Training itself: Mixed-signal training acceleration for memristor-based neural network
US11188825B2 (en) Mixed-precision deep-learning with multi-memristive devices
US11531898B2 (en) Training of artificial neural networks
US11087204B2 (en) Resistive processing unit with multiple weight readers
Zidan et al. Field-programmable crossbar array (FPCA) for reconfigurable computing
US20220058492A1 (en) Delta-sigma modulation neurons for high-precision training of memristive synapses in deep neural networks
JP7422782B2 (ja) 非対称rpuデバイスによるdnnの訓練
US11386319B2 (en) Training of artificial neural networks
CN112823327A (zh) 模拟的交叉点阵列中匹配对称点作为零权重点的对准技术
Cao et al. NeuADC: Neural network-inspired synthesizable analog-to-digital conversion
Wang et al. Efficient training of the memristive deep belief net immune to non‐idealities of the synaptic devices
JP7357080B2 (ja) Rpuアレイのためのノイズおよび信号管理
CN116134521A (zh) 用于更新模拟交叉型阵列的稀疏可修改比特长度确定性stic脉冲生成
US11556770B2 (en) Auto weight scaling for RPUs
CN116391192A (zh) Rpu交叉开关阵列上的权重重复
Kendall et al. Deep learning in memristive nanowire networks
Halawani et al. A re-configurable memristor array structure for in-memory computing applications
Chen et al. A Multifault‐Tolerant Training Scheme for Nonideal Memristive Neural Networks
US20220207344A1 (en) Filtering hidden matrix training dnn
Sanches et al. Multilayer Perceptron Algorithm: Impact of Nonideal Conductance and Area-Efficient Peripheral Circuits
CN117136363A (zh) 深度神经网络训练
Pedretti et al. Analogue In-Memory Computing with Resistive Switching Memories

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