CN112823327B - 模拟的交叉点阵列中匹配对称点作为零权重点的对准技术 - Google Patents
模拟的交叉点阵列中匹配对称点作为零权重点的对准技术 Download PDFInfo
- Publication number
- CN112823327B CN112823327B CN201980066637.1A CN201980066637A CN112823327B CN 112823327 B CN112823327 B CN 112823327B CN 201980066637 A CN201980066637 A CN 201980066637A CN 112823327 B CN112823327 B CN 112823327B
- Authority
- CN
- China
- Prior art keywords
- array
- weight
- point
- cross
- conductors
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
-
- 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
- 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
Abstract
提供了模拟的交叉点阵列中的零偏移技术。在一个方面,模拟的基于阵列的矢量矩阵乘法包括:连接到参考阵列的权重阵列,每个权重阵列包括具有一组导电行导线(806a,806b)和与该组导电行导线(806a,806b)相交的一组导电列导线(808a,808b)的交叉开关阵列(802,804),以及在该组导电列导线(808a,808b)和该组导电行导线(806a,806b)的交点处的可优化的交叉点器件(810a,810b)。还提供了一种用于模拟的基于阵列的矢量矩阵计算的方法,该方法包括:向权重阵列中的交叉点器件(810a)施加重复的电压脉冲,直到权重阵列中的所有交叉点器件(810a)收敛到它们自己的对称点;将每个交叉点器件(810a)的电导值从权重阵列复制到参考阵列。
Description
技术领域
本发明涉及神经形态计算,更具体地,涉及模拟交叉点阵列中匹配对称点作为零权重点的对准技术以提高神经网络性能。
背景技术
神经网络可以体现在电阻器件的模拟交叉点阵列中,例如 Gokmen等人的美国专利申请公开号2017/0109628(“Gokmen”)中描述的电阻处理单元(RPU)。如其中所描述的,每个RPU包括第一端子、第二端子和有源区。有源区的导电状态标识RPU的权重值,该权重值可以通过将信号施加到第一/第二端子来更新/调节。
然而,已经发现这种电阻装置可能是不平衡的。即,当逐步施加电压脉冲以上升或下降调节权重时,权重更新量(即步长)线性地取决于当前权重值。因此,上调整和下调整之间存在不平衡,需要解决。
因此,将需要用于使用权重更新不平衡的移位来操作模拟交叉点阵列的改进技术以增强神经网络性能。
发明内容
本发明提供了模拟的交叉点阵列中的零位移技术,以改善神经网络性能。在本发明的一个方面,提供了一种模拟的基于阵列的矢量矩阵乘法。模拟的基于阵列的矢量矩阵乘法包括:连接到参考阵列的权重阵列,每个权重阵列包括具有一组导电行导线和与该组导电行导线相交的一组导电列导线的交叉开关阵列,以及在该组导电列导线和该组导电行导线的交点处的可优化的交叉点装置器件。
在本发明的另一方面,提供了一种模拟的基于阵列的矢量矩阵计算的方法。该方法包括:提供连接到参考阵列的权重阵列,每个权重阵列包括具有一组导电行导线和与该组导电行导线相交的一组导电列导线的交叉开关阵列,以及在该组导电列导线和该组导电行导线的交点处的可优化的交叉点器件。向该权重阵列中的该交叉点器件施加重复的电压脉冲,直到该权重阵列中的所有交叉点器件收敛到它们自己的对称点;以及将每个交叉点器件的电导值从该权重阵列复制到该参考阵列。
通过参考以下详细描述和附图,将获得对本发明更完整的理解以及本发明的进一步的特征和优点。
附图说明
图1是示出了根据本发明的实施例的交叉开关阵列的图,该交叉开关阵列具有一组导电行导线和形成为与该组导电行导线相交的一组导电列导线,以及该两组导线之间的相交处的电阻器件;
图2是示出根据本发明的实施例的如何能够使电阻装置不平衡的图;
图3是示出根据本发明的实施例的对平衡的但不对称的上升和下降脉冲的器件响应的图;
图4是示出根据本发明的实施例的单个对称点的图,其中,上升下降脉冲的斜率完全相同;
图5是示出根据本发明的实施例的对称点偏向一侧而不是存在于电导范围的中间的情况的图;
图6是示出根据本发明的实施例的,通过从参考阵列减去参考零权重值以实现平衡的器件而被固定的不平衡的示图;
图7是示出根据本发明实施例的用于将模拟的基于阵列的矢量矩阵计算(诸如神经网络计算)的对称点调整为零权重点的示例性方法的图;
图8是示出根据本发明实施例的矩阵的示例性模拟阵列表示的图,该矩阵使用两个阵列(权重阵列和参考阵列)通过差分读取电流以及重复的已施加到权重阵列中的交叉点器件的电压脉冲,直到它们全部收敛到自己的对称点来表示正,负和零值的权重值;
图9是示出根据本发明的实施例的已经从已经复制到参考阵列的权重阵列的每个交叉点器件的电导值的图;
图10是示出根据本发明的实施例的通过向两个阵列中的对应行施加相同的脉冲并读出电流来进行差分读取的图;以及
图11是示出根据本发明的实施例的可用于执行一种或多种本技术的示例性装置的图。
具体实施方式
在机器学习和认知科学中,人工神经网络(ANN)是受动物的生物神经网络(尤其是大脑)启发的统计学习模型系列。ANN可以用来估计或近似系统与认知功能,该系统与认知功能取决于大量输入和通常未知的连接的权重。
ANN通常被实现为互连的处理器元件的所谓的“神经形态”系统,互连的处理器元件充当模拟的“神经元”,其以电子信号的形式在彼此之间交换“消息”。类似于在生物神经元之间传递信息的突触神经质连接的所谓的“可塑性”,在ANN中在模拟神经元之间传递电子信息的连接具有与给定连接的强弱相对应的数字权重。可以根据经验调节和调整权重,使ANN适应输入并具有学习能力。例如,用于手写识别的 ANN由可以由输入图像的像素激活的一组输入神经元定义。在由网络设计人员确定的功能加权和转换后,这些输入神经元的激活随后传递给其他下游神经元,这些下游神经元通常被称为“隐藏”神经元。重复该过程,直到输出神经元被激活为止。激活的输出神经元确定读取了哪个字符。
代替利用操纵零和一的传统数字模型,ANN在处理元件之间创建连接,该处理元件基本上是正被估计或近似的核心系统功能的功能等同物。例如,IBM的SyNapse计算机芯片是电子神经形态机器的核心组件,该机器试图为哺乳动物的大脑提供相似的形式、功能和结构。尽管IBM SyNapse计算机芯片使用与常规计算机芯片相同的基本晶体管组件,但其晶体管配置为模仿神经元的行为及其突触连接。IBM SyNapse计算机芯片使用超过一百万个模拟“神经元”的网络处理信息,该网络使用类似于生物神经元之间的突触通信的电尖峰相互通信。 IBM SyNapse体系结构包括处理器(即,模拟的“神经元”)的配置,该处理器读取存储器(即,模拟的“突触”)并执行简单的操作。这些处理器之间的通信通常位于不同的内核中,由片上网络路由器执行。
如图1所示,神经网络可以实现在交叉开关阵列102中,该交叉开关阵列102包括一组导电行导线104(行)和形成为与该组导电行导线相交的一组导电列导线106(列)。两组导线之间的交叉点由电阻装置108(在本文中也称为交叉点装置)隔开,例如Gokmen中描述的电阻处理单元(RPU)。如Gokmen中所述,每个RPU可以包括第一端子、第二端子和有源区域。有源区的导电状态标识RPU的权重值,该权重值可以通过将信号施加到第一/第二端子来更新/调节。此外,通过控制额外的端子,三端子(或什至更多端子)器件可以有效地用作两端子电阻存储器件。有关三端RPU器件的说明,请参见例如Kim 等,“Analog CMOS-basedResistive Processing Unit for Deep Neural Network Training,”(“用于深度神经网络培训的基于模拟CMOS的电阻处理单元”),2017年IEEE第60届International MidwestSymposium on Circuits and Systems(MWSCAS)(国际中西部电路和系统研讨会(MWSCAS)),(八月2017)(4页)。
实际上,交叉点器件充当神经元之间的ANN加权连接。纳米级的两端子器件,例如具有“理想”导电状态切换特性的忆阻器,经常被用作交叉点器件,以模拟具有高能量效率的突触可塑性。理想的忆阻器材料的导电状态(例如,电阻)可以通过控制施加在行和列导线的各个导线之间的电压来改变。通过在相交处改变忆阻器材料的导通状态来存储数字数据,以实现高导通状态或低导通状态。忆阻器材料还可以被编程为通过选择性地设置材料的导电状态来维持两个或更多个不同的导电状态。通过在材料上施加电压并测量流过目标交叉点器件的电流,可以读取忆阻器材料的导电状态。
如图1所示,电压脉冲发生器110通过向各列感应相应量的电流 (I1,I2,I3,I4),向每一行产生电压脉冲,以读取各个交叉点器件的权重值。电压可以是幅度调制或脉冲宽度调制信号。这产生了具有不同电导的交叉点器件的本文中所指的“权重矩阵”。该权重矩阵的输出矢量是每列输出的电流信号(I1,I2等),可以通过电流积分器112和模数转换器(ADC)114读取。权重矩阵的电流正在实现矢量矩阵乘法。如将在下面详细描述的,一旦所有的权重元件被编程到它们自己的对称点,则可以将当前读数与参考阵列电流读数进行比较以复制权重。根据示例性实施例,该矩阵用在网络中,该网络被划分为通过中继器连接的构件,例如在Gokmen中所描述的。在另一个示例性实施例中,电压脉冲发生器110由基于计算机的器件直接控制,例如根据下面的图11的描述所描述的,该计算机器件还可以根据权重阵列来处理输出信号I1,I2等。与中央处理单元(CPU)/图形处理单元(GPU) 相比,这种电阻性存储器件的交叉点阵列可以并行执行反向传播算法,并具有较大的加速度。
如上所述,已经发现被认为是RPU体系结构中的交叉点元素候选者的实用电阻存储器件,例如电阻随机存取存储器(RRAM)和忆阻器,在电阻状态为非线性时,可以是非线性的,因此权重值是可更新的/可编程的。例如,参见图2,其示出了作为上升(Up)和下降(Dn)电压脉冲的数量(n)的函数的权重(w)。如图2所示,当逐步施加电压脉冲以上升或下降调节权重(电阻)时,权重更新量(即步长) 线性地取决于当前的权重值。具体来说,参考上升(Up)脉冲,随着逐步施加这些脉冲,权重(w)值增加,但最终在曲线图的顶部变得饱和。曲线底部附近的下降(Dn)脉冲也会发生相同的饱和行为。因此,调节步骤的大小(上升或下降)是不同的,取决于当前的权重值。这些逐步上升/下降脉冲的相应斜率如图3所示。如图3所示,器件对上升和下降脉冲的响应是平衡的,但不是对称的。
在诸如RRAM的器件中,在本文中发现总是存在一个单一的对称点402,其中每个交叉点器件的上升,下降脉冲的斜率完全相同。参见图4。即,对于每个交叉点器件,上升/下降步骤的大小是不平衡的 (请参见图2和图3),但是只有一个对称点(请参见图4),其斜率是相同的。还参见图5,其描绘了不平衡的情况,其中上升和下降情况的绝对值(斜率)不同。因此,对称点偏向一侧,而不是偏向中间。
对于给定的电阻存储器件,权重(w)值为零,即w=0的点由参考电阻值确定,这是人为的。例如,如果给定的电阻存储器件可以将其电导G从0Ohm-1更改为1Ohm-1,则通常将参考电阻存储器件设置为0.5Ohm-1,因为这是的电阻式存储器件的电导范围的中心点。当给定的电阻性存储器达到平衡时,这将使0.5Ohm-1aw=0点(因为权重阵列器件为0.5Ohm-1,在参考器件=0时为0.5Ohm-1=0),并且由于对称点位于G=0.5Ohm-1,因此w=0。但是,在实际器件中,并且由于器件之间的差异,将所有参考器件设置在中心点也是无效的。因此,有利地,本技术自动补偿阵列中的所有器件。
值得注意的是,即使平衡器件中的对称点也可以处于非零权重值,因为它是由参考器件的设置方式决定的。例如,如果始终读取器件在 (1,1)处的权重元素和对应的器件在(1,1)处的参考元素,并且当它们具有相同的电导率时,则权重为零。
可以使用以下更新平衡因子(BF)来量化交叉点器件的上升下降斜率之间的不平衡:
(normalized difference of absolute slopes:绝对斜率的归一化差)
如果平衡因子(BF)不为零,则在电导范围的中心点设置参考阵列电导的策略不再是最佳解决方案,对称点将位于w!=0的点。非零对称点器件将影响网络性能。这可能是有问题的,因为实际上交叉点器件的BF很少位于电导范围的中心。
有利地,根据本技术,一旦找到对称点,它们将用作与每个交叉点器件的零权重相匹配的度量,以极大地提高神经网络性能的准确性。例如,参见图6。如图6所示,在左侧所示的不平衡器件中,由于(上升/下降)斜率差异,对称点不为零。不平衡的、非零BF导致对称点不再位于电导范围的中心。目前的技术在器件的对称点处找到电导值,并将其复制到参考阵列中的相应器件。
现在参考图7的方法700描述本技术的示例性实施例,该方法 700用于将对称点调整为零权重点,以用于模拟的基于阵列的矢量矩阵计算(例如神经网络计算)。如将在下面进一步详细描述的,方法 700是使用两个互连的阵列来执行的,一个阵列是权重阵列,另一个是参考阵列。每个(权重/参考)阵列包括交叉开关阵列,该交叉开关阵列包括一组导电行导线(行)和一组形成为与该组导电行导线相交的导电列导线(列)。两组导线之间的交叉点由电阻性交叉点器件(例如RPU)隔开。值得注意的是,每个(权重/参考)阵列中的器件的权重可以被优化,从而允许从权重阵列获得的权重值被填充到参考阵列中,如下所述。此外,权重阵列与参考阵列中的器件之间存在一一对应的关系,从而可以在参考阵列中的每个器件中为权重阵列中的一个对应器件建立唯一的零权重值。
在步骤702中,将重复的(第一,第二,第三等)上升、下降电压脉冲施加到权重阵列中的交叉点器件,直到权重阵列中的所有交叉点器件收敛到它们自己的对称点。例如,如果电导范围是从Gmin到 Gmax,并且一次更新事件的平均增量G为dGavg,则电导范围内的有效状态数为(Gmax–Gmin)/dGavg。当器件处于极限点并给出交替的上升/下降脉冲时,它将需要进行#次更新才能达到中心点= (Gmax–Gmin)/dGavg。为确保收敛,可以提供额外的交替上升/下降脉冲周期,例如n x(Gmax–Gmin)/dGavg,其中n=1或更大。
如上所述,这些上升/下降电压脉冲(即,来自脉冲发生器的)增加/减小了交叉点器件的电阻,并且通过产生电压脉冲而被施加到每一行以更新/调节单个交叉点器件的权重值。在一个示例性实施例中,上升和下降电压脉冲以随机的方式重复地施加到权重阵列中的每个交叉点装置。例如,施加到权重阵列中给定交叉点器件的第一个电压脉冲随机是上升脉冲或下降脉冲,施加到权重阵列中相同交叉点器件的第二个电压脉冲也随机是上升脉冲或下降脉冲,依此类推。在另一个示例性实施例中,上升和下降电压脉冲以交替的方式重复地施加到权重阵列中的每个交叉点装置。例如,如果施加到权重阵列中给定交叉点器件的第一电压脉冲是上升脉冲,那么施加到权重阵列中相同交叉点器件的第二电压脉冲是下降脉冲。施加到同一交叉点器件的第三个电压脉冲将是上升脉冲,依此类推。如果第一个电压脉冲是下降脉冲,即下降/上升/下降等,则将应用相同的模式。
一旦权重阵列中的所有交叉点器件都已收敛到它们自己的对称点,则在步骤704中,将来自权重阵列的每个交叉点器件的电导值(在对称点处)复制到参考阵列。这些复制到参考阵列的电导值会为权重阵列中的每个相应器件在参考阵列(Iref)中设置零权重点,以补偿权重阵列中每个器件的唯一不平衡特性(如上所述)。值得注意的是,在应用过程中未对参考阵列进行编程。通过从权重数组中复制对称点值来初始化参考数组,但是一旦复制完成,就不会对程序参考数组进行编程。在神经网络训练过程中,仅对权重数组进行编程。
在操作期间,在步骤706中,权重阵列中交叉点器件的输出被从存储在参考阵列中的相应器件中偏移了零权重值。即,在操作期间,可以将相同的信号提供给权重阵列和参考阵列。然后,可以通过从参考阵列(设置为零权重值)中相应的交叉点器件的输出中减去那些值来对权重阵列中的交叉点器件(例如,I1,I2,I3等)的输出进行零移位,以达到零移的结果。
通过参考附图8-10中图示的示例来进一步描述方法700的步骤。如图8所示,使用具有两个阵列(权重阵列和参考阵列)模拟的基于阵列的矢量矩阵来执行该过程,以通过差分读取电流来表示正,负和零值的权重值。每个(权重/参考)阵列包括交叉开关阵列802/804,该交叉开关阵列包括一组导电行导线806(行)和一组形成为与该组导电行导线相交的导电列导线808a(列)的导电列导线808 (列)。两组导线之间的交叉点由电阻性交叉点器件810a,b(例如RPU)隔开。因此,如上所述,可以优化每个(权重/参考)阵列中的器件810a,b的权重。如图8中所示,权重阵列与参考阵列中的器件810a,b之间存在一对一的相关性,从而可以在参考阵列中的每个器件810b中为权重阵列中一个对应的器件810a建立唯一的零权重值。
施加重复的(第一,第二,第三等)上升、下降电压脉冲到权重阵列中的交叉点器件(例如,通过多通道脉冲发生器812和814),直到权重阵列中所有的交叉点器件收敛到他们自己的对称点。如上所述,可以以随机方式和/或以交替方式施加这些上升/下降电压脉冲。
如图9所示,一旦权重阵列中的所有交叉点器件都已收敛到它们自己的对称点,就将权重阵列中每个交叉点器件810a的电导值(在对称点处)复制到参考数阵列。如上所述,当使用权重阵列中的每个对应器件的一对阵列读出电流时,复制到参考阵列的这些电导值设置零权重点,该零权重点补偿权重中每个器件810a中的唯一不平衡特性。如图10所示,在操作期间,通过将相同的脉冲施加到两个阵列中的相应行并读出电流(即通过减去I1-Iref)来执行差分读取。
本发明可以是系统、方法和/或计算机程序产品。该计算机程序产品可以包括其上具有用于使处理器执行本发明的方面的计算机可读程序指令的计算机可读存储介质。
计算机可读存储介质可以是有形设备,其可以保留和存储由指令执行设备使用的指令。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器 (RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM 或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器 (CD-ROM)、数字多功能磁盘(DVD)、记忆棒、软盘、机械编码设备(例如打孔卡或凹槽中的凸起结构,上面记录了指令)、以及上述内容的任何适当组合。如本文中所使用的,计算机可读存储介质不应被解释为本身是瞬时信号,例如无线电波或其他自由传播的电磁波、通过波导传播的电磁波或其他传输介质(例如,通过光纤电缆的光脉冲)、或通过电线传输的电信号。
此处描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者通过网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤,无线传输、路由器、防火墙、交换机,网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在各个计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编程序指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或任一源以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和常规过程编程语言(例如,“C”编程语言或类似编程语言)的任意组合编写的代码或目标代码。计算机可读程序指令可以完全在用户计算机上、部分在用户计算机上、作为独立软件包执行、部分在用户计算机上,部分在远程计算机上或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN)) 连接到用户计算机,或者可以与外部计算机建立连接(用于例如,通过使用因特网服务提供商的因特网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来个性化电子电路,以执行本发明的方面。
在此参考根据本发明的实施例的方法,装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各方面。将理解的是,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以由计算机可读程序指令来实现。
可以将这些计算机可读程序指令提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器,以产生机器,使得该指令经由计算机或其他处理器执行可编程数据处理设备,创建用于实现流程图和/或框图方框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,该计算机可读存储介质可以指导计算机、可编程数据处理装置和/或其他设备以特定方式起作用,从而使得其中存储有指令的计算机可读存储介质包括生产的制品,该制品包括实现流程图和/或方框图或多个方框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理设备或其他设备上,以使得在计算机,其他可编程设备或其他设备上执行一系列操作步骤以产生实现的计算机处理过程,以使在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图方框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各个实施例的系统、方法和计算机程序产品的可能的实现的架构、功能和操作。就这一点而言,流程图或框图中的每个方框可以代表指令的模块、片段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,方框中指出的功能可以不按图中指出的顺序发生。例如,取决于所涉及的功能,实际上可以基本上同时执行连续示出的两个框,或者有时可以以相反的顺序执行这些框。还应注意,框图和/或流程图说明的每个方框以及框图和/或流程图说明中的方框的组合可以由执行指定功能或动作或基于特定目的的,基于硬件的专用系统,或者执行特殊用途的硬件和计算机指令的组合来实现。
现在转向图11,示出了用于实现本文提出的一种或多种方法的设备1100的框图。仅作为示例,设备1100可以被配置为经由电压脉冲发生器110、812、814等控制施加到阵列的电压脉冲和/或处理来自阵列的输出信号I1,I2等。
装置1100包括计算机系统1110和可移动介质1150。计算机系统1110包括处理器设备1120、网络接口1125、存储器1130、介质接口1135和可选的显示器1140。网络接口1125允许计算机系统1110 连接到网络,介质接口1135允许计算机系统1110与介质(例如硬盘驱动器或可移动介质1150)进行交互。
处理器设备1120可以被配置为实现本文公开的方法、步骤和功能。存储器1130可以是分布式的或本地的,并且处理器设备1120可以是分布式的或单个的。存储器1130可以被实现为电、磁或光存储器,或者这些或其他类型的存储设备的任何组合。此外,术语“存储器”应被足够宽泛地解释以涵盖能够从处理器设备1120访问的可寻址空间中的地址读取或写入的任何信息。根据该定义,可通过网络接口 1125访问的网络上的信息,仍然在存储器1130中,因为处理器设备 1120可以从网络检索信息。应当注意,组成处理器设备1120的每个分布式处理器通常包含其自己的可寻址存储器空间。还应当注意,计算机系统1110的一些或全部可以被结合到专用或通用集成电路中。
可选的显示器1140是适合与设备1100的人类用户进行交互的任何类型的显示器。通常,显示器1140是计算机监视器或其他类似的显示器。
尽管这里已经描述了本发明的说明性实施例,但是应当理解,本发明不限于那些精确的实施例,并且本领域技术人员可以在不脱离本发明的范围的前提下做出各种其他改变和修改。
Claims (11)
1.一种模拟的基于阵列的矢量矩阵,包括:
连接到参考阵列的权重阵列,每个权重阵列包括具有一组导电行导线和与该组导电行导线相交的一组导电列导线的交叉开关阵列,以及在该组导电列导线和该组导电行导线的交点处的可优化的交叉点器件,其中该权重阵列中的所有交叉点器件都在它们自己的对称点处,将来自该权重阵列的每个交叉点器件的电导值复制到该参考阵列,复制到该参考阵列的该电导值包括零权重值。
2.如权利要求1所述的矢量矩阵,其中,该交叉点器件包括电阻处理单元(RPU)。
3.如权利要求1所述的矢量矩阵,还包括:
第一电压脉冲发生器,其连接到该权重阵列中的该组导电行导线;以及
第二电压脉冲发生器,其连接到该权重阵列中的该组导电列导线。
4.如权利要求1所述的矢量矩阵,还包括:
模数转换器(ADC),其通过电流积分器连接到该权重阵列中的该组导电列导线。
5.一种用于模拟的基于阵列的矢量矩阵计算的方法,该方法包括以下步骤:
提供连接到参考阵列的权重阵列,每个权重阵列包括具有一组导电行导线和与该组导电行导线相交的一组导电列导线的交叉开关阵列,以及在该组导电列导线和该组导电行导线的交点处的可优化的交叉点器件;
向该权重阵列中的该交叉点器件施加重复的电压脉冲,直到该权重阵列中的所有交叉点器件收敛到它们自己的对称点;以及
将每个交叉点器件的电导值从该权重阵列复制到该参考阵列,其中复制到该参考阵列的该电导值包括零权重值。
6.如权利要求5所述的方法,其中,施加到该权重阵列中的交叉点器件的该电压脉冲包括上升和下降电压脉冲。
7.如权利要求6所述的方法,其中,将该上升和下降电压脉冲随机地施加到该权重阵列中的该交叉点器件。
8.如权利要求6所述的方法,其中,该上升和下降电压脉冲以交替的方式施加到该权重阵列中的该交叉点器件。
9.如权利要求5所述的方法,还包括以下步骤:
将该权重阵列的输出从该参考阵列零偏移该零权重值。
10.如权利要求9所述的方法,还包括以下步骤:
对该权重阵列和该参考阵列二者施加相同的信号;以及
从该参考阵列的输出中减去该权重阵列的输出。
11.如权利要求5所述的方法,其中,所述交叉点器件包括RPU。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/158,056 | 2018-10-11 | ||
US16/158,056 US10831860B2 (en) | 2018-10-11 | 2018-10-11 | Alignment techniques to match symmetry point as zero-weight point in analog crosspoint arrays |
PCT/IB2019/058282 WO2020074996A1 (en) | 2018-10-11 | 2019-09-30 | Alignment techniques to match symmetry point as zero-weight point in analog crosspoint arrays |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112823327A CN112823327A (zh) | 2021-05-18 |
CN112823327B true CN112823327B (zh) | 2022-12-13 |
Family
ID=70159520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980066637.1A Active CN112823327B (zh) | 2018-10-11 | 2019-09-30 | 模拟的交叉点阵列中匹配对称点作为零权重点的对准技术 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10831860B2 (zh) |
JP (1) | JP7288047B2 (zh) |
CN (1) | CN112823327B (zh) |
DE (1) | DE112019005119T5 (zh) |
GB (1) | GB2592813B (zh) |
WO (1) | WO2020074996A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109146070B (zh) * | 2017-06-16 | 2021-10-22 | 华为技术有限公司 | 一种支撑基于rram的神经网络训练的外围电路及系统 |
US11443176B2 (en) * | 2018-05-17 | 2022-09-13 | International Business Machines Corporation | Acceleration of convolutional neural networks on analog arrays |
US11562249B2 (en) * | 2019-05-01 | 2023-01-24 | International Business Machines Corporation | DNN training with 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 |
TWI727814B (zh) * | 2020-05-28 | 2021-05-11 | 旺宏電子股份有限公司 | 記憶體裝置及其運算結果補償方法 |
US11133063B1 (en) * | 2020-06-22 | 2021-09-28 | International Business Machines Corporation | Suppressing undesired programming at half-selected devices in a crosspoint array of 3-terminal resistive memory |
KR20220148558A (ko) | 2021-04-29 | 2022-11-07 | 삼성전자주식회사 | 뉴로모픽 컴퓨팅 장치 및 그 설계 방법 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9715656B1 (en) * | 2016-09-12 | 2017-07-25 | International Business Machines Corporation | Killing asymmetric resistive processing units for neural network training |
US9779355B1 (en) * | 2016-09-15 | 2017-10-03 | International Business Machines Corporation | Back propagation gates and storage capacitor for neural networks |
US9852790B1 (en) * | 2016-10-26 | 2017-12-26 | International Business Machines Corporation | Circuit methodology for highly linear and symmetric resistive processing unit |
CN107533668A (zh) * | 2016-03-11 | 2018-01-02 | 慧与发展有限责任合伙企业 | 用于计算神经网络的节点值的硬件加速器 |
CN107924227A (zh) * | 2015-10-20 | 2018-04-17 | 国际商业机器公司 | 电阻处理单元 |
CN108536422A (zh) * | 2017-03-03 | 2018-09-14 | 慧与发展有限责任合伙企业 | 模拟乘法器-累加器 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6502083B1 (en) | 1998-12-29 | 2002-12-31 | International Business Machines Corporation | Neuron architecture having a dual structure and neural networks incorporating the same |
JP3863484B2 (ja) | 2002-11-22 | 2006-12-27 | 株式会社東芝 | 磁気抵抗効果素子および磁気メモリ |
US8712940B2 (en) | 2011-05-31 | 2014-04-29 | International Business Machines Corporation | Structural plasticity in spiking neural networks with symmetric dual of an electronic neuron |
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 |
US9947405B2 (en) * | 2014-11-18 | 2018-04-17 | Hewlett Packard Enterprise Development Lp | Memristive dot product engine with a nulling amplifier |
WO2017052598A1 (en) * | 2015-09-25 | 2017-03-30 | Hewlett Packard Enterprise Development Lp | Crossbar arrays for calculating matrix multiplication |
US10387778B2 (en) * | 2015-09-29 | 2019-08-20 | International Business Machines Corporation | Scalable architecture for implementing maximization algorithms with resistive devices |
US10839292B2 (en) | 2016-06-29 | 2020-11-17 | International Business Machines Corporation | Accelerated neural network training using a pipelined resistive processing unit architecture |
CN110574043B (zh) | 2016-12-09 | 2023-09-15 | 许富菖 | 三维神经网络阵列 |
US10755170B2 (en) | 2017-03-01 | 2020-08-25 | International Business Machines Corporation | Resistive processing unit with hysteretic updates for neural network training |
JP6794891B2 (ja) | 2017-03-22 | 2020-12-02 | 株式会社デンソー | ニューラルネットワーク回路 |
-
2018
- 2018-10-11 US US16/158,056 patent/US10831860B2/en active Active
-
2019
- 2019-09-30 GB GB2106235.1A patent/GB2592813B/en active Active
- 2019-09-30 CN CN201980066637.1A patent/CN112823327B/zh active Active
- 2019-09-30 JP JP2021516774A patent/JP7288047B2/ja active Active
- 2019-09-30 DE DE112019005119.9T patent/DE112019005119T5/de active Pending
- 2019-09-30 WO PCT/IB2019/058282 patent/WO2020074996A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107924227A (zh) * | 2015-10-20 | 2018-04-17 | 国际商业机器公司 | 电阻处理单元 |
CN107533668A (zh) * | 2016-03-11 | 2018-01-02 | 慧与发展有限责任合伙企业 | 用于计算神经网络的节点值的硬件加速器 |
US9715656B1 (en) * | 2016-09-12 | 2017-07-25 | International Business Machines Corporation | Killing asymmetric resistive processing units for neural network training |
US9779355B1 (en) * | 2016-09-15 | 2017-10-03 | International Business Machines Corporation | Back propagation gates and storage capacitor for neural networks |
US9852790B1 (en) * | 2016-10-26 | 2017-12-26 | International Business Machines Corporation | Circuit methodology for highly linear and symmetric resistive processing unit |
CN108536422A (zh) * | 2017-03-03 | 2018-09-14 | 慧与发展有限责任合伙企业 | 模拟乘法器-累加器 |
Non-Patent Citations (2)
Title |
---|
Analog CMOS-based resistive processing unit for deep neural network training;Seyoung Kim;《IEEE Xplore》;20171002;全文 * |
基于忆阻器交叉阵列的卷积神经网络电路设计;胡飞等;《计算机研究与发展》;20180515(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20200117699A1 (en) | 2020-04-16 |
US10831860B2 (en) | 2020-11-10 |
JP7288047B2 (ja) | 2023-06-06 |
GB2592813B (en) | 2022-05-11 |
JP2022502760A (ja) | 2022-01-11 |
WO2020074996A1 (en) | 2020-04-16 |
GB2592813A (en) | 2021-09-08 |
DE112019005119T5 (de) | 2021-07-22 |
CN112823327A (zh) | 2021-05-18 |
GB202106235D0 (en) | 2021-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112823327B (zh) | 模拟的交叉点阵列中匹配对称点作为零权重点的对准技术 | |
KR102449941B1 (ko) | 효율적인 행렬 곱셈을 위한 시스템 및 방법 | |
CN110352436B (zh) | 用于神经网络训练的具有迟滞更新的电阻处理单元 | |
CN111587440B (zh) | 用于更新精确突触权重值的神经形态芯片 | |
CN107924227B (zh) | 电阻处理单元 | |
US20200053299A1 (en) | Image sensor with analog sample and hold circuit control for analog neural networks | |
US11087204B2 (en) | Resistive processing unit with multiple weight readers | |
JP2021507349A (ja) | 抵抗処理ユニット・アレイのクロスポイント・デバイスに重みを記憶するための方法、そのクロスポイント・デバイス、ニューラル・ネットワークを実施するためのクロスポイント・アレイ、そのシステム、およびニューラル・ネットワークを実施するための方法 | |
CN113728338B (zh) | 利用非对称rpu器件的dnn训练 | |
WO2015020802A2 (en) | Computed synapses for neuromorphic systems | |
US20200293855A1 (en) | Training of artificial neural networks | |
US10832773B1 (en) | Architecture for enabling zero value shifting | |
Yang et al. | On learning with nonlinear memristor-based neural network and its replication | |
Aghnout et al. | Modeling triplet spike-timing-dependent plasticity using memristive devices | |
CN115699028A (zh) | 模拟人工智能网络推理的逐行卷积神经网络映射的高效瓦片映射 | |
KR20210062277A (ko) | 뉴런 회로 및 이의 제어 방법 | |
US11514981B1 (en) | Programming devices and weights in hardware | |
US11133063B1 (en) | Suppressing undesired programming at half-selected devices in a crosspoint array of 3-terminal resistive memory | |
JP2024514063A (ja) | ディープ・ニューラル・ネットワーク・トレーニング | |
JP2023547800A (ja) | Rpuクロスバー・アレイ上の重み反復 | |
Sun et al. | A Flexible Memristor-Based Neural Network | |
KR20230087830A (ko) | 인공신경망을 구성하는 아날로그 시냅스 소자의 가중치 확정 방법 | |
CN116615733A (zh) | 过滤隐藏矩阵训练dnn |
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 |