CN107924227B - 电阻处理单元 - Google Patents

电阻处理单元 Download PDF

Info

Publication number
CN107924227B
CN107924227B CN201680044972.8A CN201680044972A CN107924227B CN 107924227 B CN107924227 B CN 107924227B CN 201680044972 A CN201680044972 A CN 201680044972A CN 107924227 B CN107924227 B CN 107924227B
Authority
CN
China
Prior art keywords
terminal
conductive state
change
processing unit
encoded signal
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
CN201680044972.8A
Other languages
English (en)
Other versions
CN107924227A (zh
Inventor
T.戈克曼
Y.弗拉索夫
金世荣
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 CN107924227A publication Critical patent/CN107924227A/zh
Application granted granted Critical
Publication of CN107924227B publication Critical patent/CN107924227B/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/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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • 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

Abstract

实施例针对具有第一端子、第二端子和有源区域的双端子电阻处理单元(RPU)。有源区域基于施加到第一端子的至少一个第一编码信号和施加到第二端子的至少一个第二编码信号来实现有源区域的导电状态的非线性改变。有源区域被配置为至少部分地基于导电状态的非线性改变在本地执行训练方法的数据存储操作。有源区进一步被配置成至少部分地基于导电状态的非线性改变来在本地执行训练方法的数据处理操作。

Description

电阻处理单元
技术领域
本公开总体上涉及在本文中被称为电阻处理单元(RPU)的可训练电阻交叉点装置的新颖配置。更具体地,本公开涉及由双端子RPU的交叉开关阵列形成的人工神经网络(ANN),该双端子RPU提供本地数据存储和本地数据处理,而不需要超出双端子RPU的额外处理元件,由此加速ANN学习,并且实现诸如在线神经网络训练、矩阵求逆、矩阵分解等算法的能力。
背景技术
“机器学习”用于广泛地描述从数据学习的电子系统的主要功能。在机器学习和认知科学中,人工神经网络是一个由动物的生物神经网络,特别是大脑启发的统计学习模型家族。人工神经网络可以用来估计或估算依赖于大量输入的、而且一般是未知的系统和功能。
人工神经网络经常体现为互联的处理器元件的所谓“神经形态”系统,所述处理器元件充当仿真的“神经元”并以电子信号的形式在彼此之间交换“消息”。类似于在生物神经元之间携带信息的突触神经递质连接的所谓“可塑性”,对在模拟神经元之间携带电子信息的人工神经网络ANN中的连接提供有对应于给定连接的强弱的数字权重。权重可以根据经验进行调整和调节,使人工神经网络适应输入并且能够学习。例如,用于手写识别的人工神经网络ANN由可由输入图像的像素激活的一组输入神经元来定义。在被网络设计者确定的函数加权和变换之后,这些输入神经元的激活被传递到其他下游神经元,这些神经元通常被称为“隐藏”神经元。重复该过程,直到输出神经元被激活。激活的输出神经元确定哪个字符被读取了。
交叉开关阵列,也被称为交叉点阵列或交叉线阵列,是用于形成各种电子电路和设备的高密度,低成本的电路架构,包括人工神经网络ANN架构,神经形态微芯片和超高密度非易失性存储器。基本交叉开关阵列配置包括一组导电行导线和一组导电列导线,所述一组导电列导线形成为与该组导电行导线交叉。两组导线之间的交叉点由所谓的交叉点装置隔开,所述交叉点装置可以由薄膜材料形成。
交叉点设备实际上用作神经元之间的人工神经网络ANN加权连接。纳米级二端器件,例如具有“理想的”导电状态转换特性的忆阻器,通常被用作交叉点器件,以高能效地模拟突触可塑性。理想的忆阻器材料的导电状态(例如电阻)可以通过控制施加在行和列导线的各个导线之间的电压来改变。可以通过改变忆阻器材料在相交处的导电状态来存储数字数据,以实现高导电状态或低导电状态。也可以对忆阻器材料编程以通过选择性地设置材料的导电状态来保持两种或更多种不同的导电状态。忆阻器材料的导电状态可以通过在材料两端施加电压并测量通过目标交叉点器件的电流来读取。
为了限制功耗,人工神经网络芯片架构的交叉点设备通常被设计成利用离线学习技术,其中一旦初始训练阶段已经被解决,目标函数的逼近不会改变。离线学习可以使交叉开关式人工神经网络架构的交叉点设备得到简化,从而消耗很少的功率。
尽管可能具有较低的功耗,但是执行离线训练可能是困难的并且资源密集的,因为在训练期间通常需要修改ANN模型中的大量可调参数(例如,权重)以为训练数据匹配输入输出对。因此,简化ANN体系结构的交叉点设备以优先考虑省电、离线学习技术通常意味着训练速度和训练效率没有被优化。
提供将功耗保持在可接受范围内的简单交叉点设备以及加速训练ANN体系结构的速度和效率将提高整体ANN性能并允许更广范围的ANN应用。
发明内容
实施例针对具有第一端子、第二端子和有源区域的双端子电阻处理单元(RPU)。有源区域具有标识施加于RPU的训练方法的权重的导电状态。所述有源区域被配置为在本地执行训练方法的数据存储操作,并且所述有源区域被进一步配置为在本地执行训练方法的数据处理操作。
在一个或多个上述实施例中,所述数据存储操作包括至少部分地基于所述数据处理操作的结果的所述导电状态的改变。
在一个或多个上述实施例中,所述导电状态的所述改变包括基于施加到所述第一端子的至少一个第一编码信号和施加到所述第二端子的至少一个第二编码信号的非线性改变。
在一个或多个上述实施例中,有源区域还被配置为至少部分地基于导电状态的非线性改变来在本地执行训练方法的数据存储操作。有源区域可以被进一步配置为至少部分地基于导电状态的非线性改变在本地执行所述训练方法的所述数据处理操作。
在一个或多个上述实施例中,所述训练方法可以是在线神经网络训练、矩阵求逆或矩阵分解。
实施例还涉及具有第一端子、第二端子和有源区域的双端子RPU。所述有源区域基于施加到所述第一端子的至少一个第一编码信号和施加到所述第二端子的至少一个第二编码信号来实现所述有源区域的导电状态的非线性改变。所述有源区域被配置为至少部分地基于所述导电状态的所述非线性改变在本地执行训练方法的数据存储操作。所述有源区域进一步被配置为至少部分地基于所述导电状态的所述非线性改变来在本地执行所述训练方法的数据处理操作。
在一个或多个上述实施例中,对所述至少一个第一编码信号和所述至少一个第二编码信号的编码包括随机脉冲序列或幅度调制。
在一个或多个上述实施例中,所述非线性该变包括整流非线性改变,饱和非线性改变或指数非线性改变。
实施例还涉及一种可训练交叉开关阵列,其具有一组导电行导线和一组导电列导线,所述一组导电列导线被配置为在所述一组导电行导线与所述一组导电列导线之间的交叉点处形成多个交叉点。该阵列包括在多个交叉点中的每一个交叉点处的双端子电阻处理单元RPU。该RPU被配置为在本地执行数据存储操作并且在本地执行数据处理操作,其中本地数据存储操作和本地数据处理操作都是施加于可训练交叉开关阵列的训练方法的一部分。
在一个或多个上述实施例中,所述双端子RPU包括第一端子,第二端子和具有导电状态的有源区域,其中所述导电状态标识施加于所述RPU的所述训练方法的权重。
在一个或多个上述实施例中,所述数据存储操作包括至少部分地基于所述数据处理操作的结果的导电状态的改变。所述导电状态的改变包括基于施加到所述第一端子的至少一个第一编码信号和施加到所述第二端子的至少一个第二编码信号的非线性改变。
在一个或多个上述实施例中,所述有源区域至少部分地基于所述导电状态的非线性改变来在本地执行所述训练方法的所述数据存储操作。所述有源区域进一步至少部分地基于所述导电状态的所述非线性变改在本地执行所述训练方法的所述数据处理操作。所述训练方法包括在线神经网络训练、矩阵求逆和矩阵分解。
实施例还涉及一种形成双端子RPU的方法。该方法包括形成第一端子,形成第二端子以及形成具有导电状态的有源区域。该方法进一步包括配置所述有源区域以基于施加到所述第一端子的至少一个第一编码信号和施加到所述第二端子的至少一个第二编码信号来实现所述导电状态的非线性改变。该方法进一步包括配置所述有源区域以至少部分基于所述导电状态的所述非线性改变来在本地执行训练方法的数据存储操作。该方法进一步包括配置所述有源区域以至少部分地基于所述导电状态的所述非线性改变来在本地执行所述训练方法的数据处理操作。
在上述方法的一个或多个实施例中,所述至少一个第一编码信号和所述至少一个第二编码信号的编码包括随机脉冲序列或幅度调制。
在上述方法的一个或多个实施例中,非线性改变包括整流非线性改变、饱和非线性改变或指数非线性改变。
实施例还涉及一种形成可训练交叉开关阵列的方法。该方法包括形成一组导电行导线,以及形成一组导电列导线,所述一组导电列导线被配置为在所述一组导电行导线与所述一组导电列导线之间的交叉处形成多个交叉点。该方法还包括在多个交叉点中的每一个交叉点处形成双端子RPU。该方法还包括配置RPU以在本地执行施加于所述可训练交叉开关阵列的训练方法的数据存储操作,并配置RPU以在本地执行所述训练方法的数据处理操作。
在上述方法的一个或多个实施例中,形成所述双端子RPU包括形成第一端子,形成第二端子并形成具有导电状态的有源区域,其中所述导电状态标识施加于所述RPU的所述训练方法的权重。
在上述方法的一个或多个实施例中,所述数据存储操作包括至少部分地基于所述数据处理操作的结果的所述导电状态的改变,其中所述导电状态的所述改变包括基于施加到所述第一端子的至少一个第一编码信号和施加到所述第二端子的至少一个第二编码信号的非线性改变。
在上述方法的一个或一个以上实施例中,所述方法进一步包括配置所述有源区域以至少部分地基于所述导电状态的所述非线性改变以在本地执行所述训练方法的所述数据存储操作。该方法进一步包括配置所述有源区域以至少部分地基于所述导电状态的非线性改变来在本地执行所述训练方法的数据处理操作。
在上述方法的一个或多个实施例中,所述训练方法包括在线神经网络训练、矩阵求逆或矩阵分解。
通过本文描述的技术来实现附加特征和优点。在此详细描述其他实施例和方面。为了更好地理解,请参考说明和附图。
附图说明
在说明书的结尾处的权利要求中特别指出并清楚地要求保护被认为是实施例的客体。从以下结合附图的详细描述中,实施例的前述和其它特征和优点是显而易见的,其中:
图1示出了生物神经元的输入和输出连接的简化图;
图2示出了图1所示的生物神经元的已知简化模型;
图3示出了结合图2所示的生物神经元模型的ANN的已知简化模型;
图4示出了已知的权重更新方法的简化框图;
图5示出了能够在一个或多个实施例中使用的随机计算方法的简化框图;
图6示出了管理无源、双端子忆阻器的操作的已知公式;
图7示出了已知的双端子忆阻器的线性开关特性与本公开的双端子RPU的非线性开关特性之间的图形比较;
图8示出了根据本公开的双端子非线性RPU器件的交叉条阵列,以及说明RPU的操作的电压序列;
图9A示出了根据一个或多个实施例的随机权重更新方法的简化框图;
图9B示出了示出在使用本公开的随机权重更新方法对于不同位长度(BL)能够实现的不同权重更新精度的MNIST数据集上训练的ANN的分类精度的曲线图;
图10A-D示出了根据一个或多个实施例的描绘使用双端子非线性RPU来实施随机权重更新的更多细节的简化图和曲线图;
图11A-11B示出了根据一个或多个实施例的描绘正负随机权重更新周期的示例的电压序列;
图12示出了根据一个或多个实施例的描绘使用双端子非线性RPU来实施随机权重更新的更多细节的简化图和曲线图;
图13A-B示出了已知的双端子忆阻器的线性开关特性与本公开的双端子RPU的非线性开关特性之间的图形比较;
图14示出了根据一个或多个实施例的描述使用具有指数非线性的双端子RPU的高度调制权重更新方法的图表和公式;
图15示出了根据一个或多个实施例的进一步描述使用双端子非线性RPU的高度调制权重更新方法的图表和公式;
图16示出了根据本公开开发、训练和使用包括双端子非线性RPU的交叉开关阵列的ANN架构的方面;
图17示出了根据本公开开发、训练和使用包括双端子非线性RPU的交叉开关阵列的ANN结构的附加方面;
图18示出了根据本公开开发、训练和使用包括双端子非线性RPU的交叉开关阵列的ANN架构的附加方面;
图19示出了根据一个或多个实施例的节点控制系统的框图;
图20示出了根据本公开的一个或多个实施例的描述方法的流程图;和
图21示出了根据本公开的一个或多个实施例的描述另一方法的流程图。
具体实施方式
可以预先理解的是,虽然在生物神经网络的背景下公开了一个或多个实施方式,并且具体强调了模拟大脑结构和功能,但是本文叙述的教导的实现不限于模拟特定环境。而是,本公开的实施例能够模拟任何类型的环境,包括例如天气模式,从互联网收集的任意数据等,只要环境的各种输入可以变成矢量即可。
尽管本公开涉及电子系统,但为了便于参考和解释,所公开的电子系统的各个方面例如使用神经学术语如神经元、可塑性和突触来描述。应该理解的是,对于电子系统的本文的任何讨论或说明,神经学术语或神经速记符号的使用是为了便于参考,并且意在涵盖描述的神经功能或神经元组分的神经形态、人工神经网络等效物。
ANN也称为神经形态或突触系统,是能够估计或近似其他功能或系统的计算系统,包括例如生物神经系统、人类大脑和诸如图像识别、语音识别等等的类脑功能。人工神经网络融合了各种学科的知识,包括神经生理学、认知科学/心理学、物理学(统计力学)、控制理论、计算机科学、人工智能、统计学/数学、模式识别、计算机视觉、并行处理和硬件(如数字/模拟/VLSI/光纤)。
ANN不使用传统的操纵0和1的数字模型,而是在处理元件之间创建连接,这些处理元件基本上是被估计或近似的核心系统功能的功能等同物。例如,IBM的SyNapse计算机芯片是电子神经机器的核心组件,其试图提供与哺乳动物大脑类似的形式、功能和架构。尽管IBM SyNapse计算机芯片使用与传统计算机芯片相同的基本晶体管组件,但其晶体管被配置为模仿神经元及其突触连接的行为。IBM SyNapse计算机芯片使用刚好超过一百万个仿真“神经元”的网络来处理信息,这些仿真“神经元”使用类似于生物神经元之间的突触通信的电尖峰来相互通信。IBM SyNapse体系结构包括处理器(即仿真“神经元”)的配置,其读取存储器(即仿真“突触”)并执行简单操作。这些通常位于不同内核的处理器之间的通信由片上网络路由器执行。
作为背景技术,现在将参考图1、图2和图3来提供典型ANN如何操作的一般描述。如前所述,典型的人工神经网络模拟人脑,其包括约1000亿个被称为神经元的相互连接的细胞。图1示出了具有将其连接到上游输入112、114、下游输出s116和下游“其他”神经元118的路径104、106、108、110的生物神经元102的简化图,如所示配置和布置。每个生物神经元102通过路径104、106、108、110发送和接收电脉冲。这些电脉冲的性质以及它们在生物神经元102中如何被处理主要对整个脑功能负责。生物神经元之间的通路连接可强可弱。当给定的神经元接收到输入脉冲时,神经元根据神经元的函数处理输入,并将该函数的结果发送到下游输出和/或下游“其他”神经元。
图2中模拟了作为具有由图2所示的公式描述的数学函数f(x)的节点202的生物神经元102。节点202从输入212、214获取电信号,将每个输入212、214乘以其各自的连接路径204、206的强度,获得输入的总和,将该和通过函数f(x)并且生成结果216,其可以是最终输出或者到另一个节点的输入,或者是两者。在本公开中,使用星号(*)来表示乘法。弱输入信号乘以一个非常小的连接强度数,所以弱输入信号对函数的影响非常小。类似地,强输入信号乘以更高的连接强度数,所以强输入信号对函数的影响更大。函数f(x)是一个设计选择,可以使用各种函数。f(x)的典型设计选择是双曲正切函数,该函数取前一个和的函数,并输出负1和正1之间的数字。
图3示出了按加权定向图组织的简化的ANN模型300,其中人工神经元是节点(例如302、308、316),并且其中加权有向边(例如,m1到m20)连接节点。组织ANN模型300使得节点302、304、306是输入层节点,节点308、310、312、314是隐藏层节点,并且节点316、318是输出层节点。如图3所示,每个节点通过连接路径连接到相邻层中的每个节点,连接路径作为具有m1至m20的连接强度的有向箭头。尽管仅示出了一个输入层、一个隐藏层和一个输出层,但实际上可以提供多个输入层、隐藏层和输出层。
类似于人类大脑的功能,ANN300的每个输入层节点302、304、306直接从源(未示出)接收输入x1、x2、x3,没有连接强度调整并且没有节点求和。相应地,如图3底部列出的公式所示,y1=f(x1),y2=f(x2)和y3=f(x3)。每个隐藏层节点308、310、312、314根据与相关连接路径相关联的连接强度从所有输入层节点302、304、306接收其输入。因此,在隐藏层节点308中,y4=f(m1*y1+m5*y2+m9*y3),其中*表示乘法。对于隐藏层节点310、312、314和输出层节点316、318执行类似的连接强度乘法和节点求和,如在图3底部所示的y5至y9的函数定义公式所示。
ANN模型300一次一个地处理数据记录,并且通过比较记录的初始任意分类和记录的已知实际分类来“学习”。使用称为“反向传播”(即,“错误的反向传播”)的训练方法进行学习,将第一记录的初始分类的错误反馈回网络中并且用于修改第二轮的网络的加权连接,并且这个反馈过程持续进行很多次迭代。在ANN的训练阶段,每个记录的正确分类是已知的,因此输出节点可以被分配“正确的”值。例如,对应于正确分类的节点的节点值为“1”(或0.9),对于其他节点值为“0”(或0.1)。因此,可以将输出节点的网络计算值与这些“正确”值进行比较,并计算每个节点的误差项(即,“增量”规则)。然后使用这些误差项来调整隐藏层中的权重,以便在下一次迭代中输出值更接近“正确”值。
存在许多类型的神经网络,但是两个最宽泛的类型是前馈网络和反馈/递归网络。ANN模型300是具有输入、输出和隐藏层的非递归前馈网络,信号只能在一个方向上传播。输入数据被传递到一层执行计算的处理单元上。每个处理单元根据其输入的加权和来进行计算。新的计算值将成为下一层的新输入值。这个过程一直持续到经过了所有层并确定了输出。有时使用阈值传递函数来量化输出层中神经元的输出。
反馈/递归网络包括反馈路径,这意味着信号可以使用环路在两个方向上传播。节点之间所有可能的连接都是允许的。由于这种类型的网络中存在环路,在某些操作下,它可能会成为一个不断改变的非线性动力系统,直到达到平衡状态。反馈网络通常用于联想记忆和优化问题,其中网络寻找互联因素的最佳安排。
前馈和递归ANN体系结构中的机器学习的速度和效率取决于ANN交叉开关阵列的交叉点装置如何有效地执行典型的机器学习算法的核心操作。尽管难以制定机器学习的精确定义,但是在ANN环境中的学习过程可以被看作是更新交叉点设备连接权重,使得网络可以有效地执行特定的任务的问题。交叉点设备通常从可用的训练模式中学习必要的连接权重。通过迭代更新网络中的权重来随着时间的推移提高性能。人工神经网络不是遵循人类专家规定的一套规则,而是从给定的典型范例中“学习”潜在的规则(如输入输出关系)。因此,学习算法通常可以定义为用于更新和/或调整相关权重的学习规则的过程。
三个主要学习算法范例是有监督的、无监督的和混合的。在有监督的学习中,或有“老师”的学习中,为每个输入模式提供给网络正确答案(输出)。确定权重使网络能够产生尽可能接近已知的正确答案的答案。强化学习是有监督学习的一个变种,在这种学习中,对网络只提供对网络输出的正确性的评判,而不是正确的答案本身。相比之下,无监督学习或没有教师的学习,则不需要与训练数据集中的每个输入模式相关的正确答案。它探索数据中的基本结构,或数据中的模式之间的相关性,并根据这些相关性将模式组织成类别。混合学习结合了有监督学习和无监督学习。权重的一部分通常是通过有监督学习来确定的,而其他部分则是通过无监督学习来获得的。ANN和学习规则的其他细节在Anil K.Jain,Jianchang Mao和K.M.Mohiuddin的“Artificial Neural Networks:A Tutorial(人工神经网络入门)”IEEE,1996年3月中有描述。
如前所述,为了限制功耗,ANN芯片架构的交叉点设备通常被设计成利用离线学习技术,其中一旦初始训练阶段已经解决,目标函数的逼近就不会改变。离线学习可以使交叉开关式人工神经网络架构的交叉点设备得到简化,从而消耗很少的功率。
尽管可能具有较低的功耗,但是执行离线训练可能是困难的和资源密集的,因为在训练期间通常需要修改ANN模型中的大量可调参数(例如,权重)以对训练数据匹配输入输出对。图4示出了典型的读取-处理-写入权重更新操作的简化示意图,其中CPU/GPU内核(即仿真“神经元”)读取存储器(即仿真“突触”)并执行权重更新处理操作,然后把更新的权重写回内存。因此,简化ANN体系结构的交叉点设备以优先考虑省电、离线学习技术通常意味着训练速度和训练效率没有被优化。
提供将功耗保持在可接受范围内的简单交叉点设备,以及提高训练ANN体系结构的速度和效率,将提高整体ANN性能,使得ANN应用的范围更广泛。
现在转向本公开的概述,一个或多个实施例针对在此被称为电阻处理单元(RPU)的双端子可编程电阻交叉点组件,其提供本地数据存储功能和本地数据处理功能。换句话说,在执行数据处理时,存储在每个RPU的值在本地并行地被更新,这就不需要将相关数据移入和移出处理器,也不需要单独的存储元件。另外,由所公开的双端子RPU提供的本地数据存储和本地数据处理,加快了人工神经网络如反向传播在线神经网络训练、矩阵求逆、矩阵分解等的学习和实现算法的能力。因此,实现具有所公开的RPU的机器学习ANN体系结构能够实现在线机器学习能力,从而优化学习的速度、效率和功耗。所公开的RPU和由此产生的ANN体系结构改进了整体ANN性能,并使更广泛的实际ANN应用成为可能。
所公开的RPU可以被实施为双端子电阻交叉点装置,其中它们的开关特性具有可以用于处理数据的非线性。因此,所公开的RPU可以由具有可用于在ANN中执行计算的适当的非线性特性的任何双端子设备来实现。例如,所公开的RPU器件可以用电阻随机存取存储器(RRAM)、相变存储器(PCM)、可编程金属化单元(PMC)存储器、非线性忆阻系统或任何其他具有非线性电阻开关特性的双端子设备实现。
在对所公开的RPU进行更详细的描述之前,现在将提供与本公开相关的脉动阵列、随机计算以及线性和非线性忆阻器装置的概述。脉动阵列由试图加速某些高度使用的算法的学习的并行处理单元(PE)组成。脉冲阵列通常是用于特定操作(如“乘法和累加”)的硬连线,以执行大规模并行集成、卷积、相关、矩阵乘法或数据分类任务。在由C.Lehmann等人发表的题为“A Generic Systolic Array Building Block For Neural Networks with On-Chip Learning,”IEEE Transactions On Neural Networks,Vol.4,No.3,1993年5月中,提出了使用脉动阵列作为在线学习神经网络的构建块,其中脉动阵列中的每个PE具有本地存储以存储单个权重值,并且能够执行对矩阵乘法和权重更新必要的计算。Lehmann文章中描述的PE的超大规模集成(VLSI)实现,每个PE需要大约1800个晶体管,这增加了功耗并降低了可扩展性。因此期望提供每个PE需要尽可能少的晶体管的PE。
随机计算是通过随机比特流来表示连续值的技术的集合,其中可以通过对流进行简单的逐位操作来计算复杂的计算。具体而言,如果存在被称为随机数的两个随机且独立的比特流S1,S2(即,伯努利过程),其中第一流中的“1”的概率是p,并且第二流中的“1”的概率是q,两个流的逻辑与可以如图5所示。输出流中“1”的概率是pq。通过观察足够的输出位并测量“1”的频率,可以将pq估计为任意精度。由于这些所谓的“乘法和累加”操作的设计简单性,可以用几个逻辑门/晶体管来实现,所以在神经网络的硬件设计中经常使用随机计算。V.K.Chippa等人的出版的题为“StoRM:A Stochastic Recognition and MiningProcessor(StoRM:随机识别和采矿处理器)”,the 2014 International Symposium OnLow power Electronics and Design(2014年低功耗电子学和设计国际研讨会论文集),展示了随机计算在二维(2D)脉动阵列中的应用,其可以用作神经网络训练算法的硬件加速器。
然而,在Chippa等人的文章中,将计算所需的权重从外部位置提供给脉动数组,并且不对数组执行权重更新。Chippa等人的文章只讨论了在神经网络训练过程中大量使用的矢量矩阵乘法的加速或矩阵乘法的运算。但是,没有本地存储的脉动阵列不能并行执行权重更新,因为权重被存储在外部存储器位置。为了加速整体学习算法,Chippa等人的文章没有披露的加快权重更新是必要的。
术语“忆阻器”用于描述无源双端子电气部件,其中装置的电阻值取决于先前施加到装置的电压的历史。忆阻器的操作由图6所示的公式[1]和[2]来控制,其中i是通过装置的电流,v是施加到装置的电压,g是装置的电导值(其是电阻的倒数),s是装置的内部状态变量,其控制电导值,以及f是显示内部状态变量s的时间演变的函数。在由Chua,LO的发表的名为“Resistance Switching Memories are Memristors,”(电阻切换存储器是忆阻器)的应用物理学A(2011),102(4):765–783中,提出忆阻器功能用于电阻存储器器件的操作,例如电阻式随机存取(RRAM)、相变存储器(PCM)和导电桥接随机存取存储器(CBRAM)。由于忆阻器器件记忆其历史(即,所谓的“非挥发性属性”),所以Chua的文章提出这种器件作为非易失性存储器技术的可能替代方案。
由D.Soudry等人发表的名为“Memristor-Based Multilayer Neural NetworksWith Online Gradient Descent Training,”(具有在线梯度下降训练的基于忆阻器的多层神经网络),IEEE Transactions On Neural Networks and Learning Systems(2015)的出版物中提出了使用忆阻器来反向传播神经网络培训硬件。然而,Soudry等人的文章假定理想的忆阻器操作,其中电阻的改变相对于施加到器件的电压是线性的。Soudry等人的设计假设图6的公式[2]中的函数f(s,v)是由关系f(s,v)=v给出的简单函数。Soudry等人文章提出了与如上所述的二维脉动阵列类似的架构,其中每个交叉点用理想的忆阻器和一对晶体管来实现。在Soudry等人的文章中,忆阻器实际上用于存储权重值,并且该对晶体管用于计算权重更新所需的局部乘法运算,其中权重更新的结果修改忆阻器的导电状态。Soudry等人的文章实际上公开了一种由忆阻器和两个晶体管组成的四端器件,用于制作四端器件的二维阵列,以实现神经网络硬件的反向传播训练。
现在转到对本公开的更详细的描述,一个或多个实施例针对双端子RPU,其提供本地数据存储功能和本地数据处理功能,而不需要诸如晶体管之类的额外电路元件,并且关闭芯片存储和/或处理组件。所公开的RPU可以被实现为具有非线性切换特性的任何设备,包括但不限于RRAM、PCM、CBRAM、非线性忆阻系统等。
当将所公开的RPU器件实施为忆阻系统时,忆阻器对于非线性开关特性而言是非理想的是重要的。在理想的忆阻器中,电阻的改变与施加到理想的忆阻器器件的电压成线性比例关系。因此,只要理想的忆阻器装置经历任何电压,其电阻状态就会改变。然而,对于所公开的被实现为非理想的非线性忆阻系统的RPU器件,存在明确定义的“SET”电压VSET(其是装置的特征),并且忆阻RPU器件将需要经历电压V>VSET以改变其内阻状态。对于这样的器件,施加电压V=0.5VSET的半偏置不会引起内部电阻状态的任何改变。
为了进一步说明理想忆阻器和可用于实现本公开的RPU的非理想非线性忆阻器之间的差异,图7示出了理想忆阻器和根据本公开的RPU的电压切换行为之间的比较的曲线图。垂直轴表示在特定电压下的器件状态改变,并且水平轴表示施加的电压。在理想的忆阻器操作中,电阻的改变与施加到器件的电压成线性比例。因此,只要忆阻器看到任何电压,其电阻状态就会变。这由曲线702示出,其示出即使在低电压下状态的改变也是显著的。
对于如曲线704所示的非线性RPU器件,存在器件为了改变其内部电阻状态而需要经历的良好定义的设定电压VSET。0.5VSET的偏置电压不会改变内部电阻状态。在本公开中,RPU设备的这种非线性特性被利用来在本地执行乘法。假设f1很小,当仅施加0.5VSET时,器件不会改变其内部状态。值得注意的是,图7示出了RPU器件的电阻状态的正电压和正改变,然而,也存在负电压和负电阻改变之间的类似关系。
图8是根据本公开执行前向矩阵乘法、后向矩阵乘法和权重更新的二维(2D)交叉开关阵列800的图。交叉开关阵列800由一组导电行导线802、804、806和与该组导电行导线802、804、806相交的一组导电列导线808、810、812、814形成。该组行导线和该组列导线的交叉点被RPU分开,其在图8中被示出为电阻元件,每个电阻元件具有其自身的可调节/可更新的电阻权重,被分别描述为σ11、σ21、σ31、σ41、σ12、σ22、σ32、σ42、σ13、σ23、σ33和σ43。为了便于说明,图8中仅有一个RPU 820标有参考数字。在前向矩阵乘法中,RPU的导电状态(即存储的权值)可以通过在RPU上施加电压并测量通过RPU的电流来读取。
输入电压V1、V2、V3分别被施加到行导线802、804、806。每个列导线808、810、812、814将由每个RPU沿特定列导线产生的电流I1、I2,、I3、I4相加。例如,如图8所示,由列线814产生的电流I4是根据公式I4=V1σ41+V2σ42+V3σ43的。因此,阵列800通过将存储在RPU中的值乘以由电压V1、V2、V3定义的行导线输入来计算正向矩阵乘法。后向矩阵乘法非常相似。在后向矩阵乘法中,在列导线808、810、812、814处施加电压,然后从行导线802、804、806读取电压。对于下面更详细描述的权重更新,将电压施加到列导线和行导线同时,存储在相关RPU器件中的电导值全部并行地更新。因此,使用RPU器件本身加上阵列800的相关行或列线,在阵列800的每个RPU 820处本地执行执行权重更新所需的乘法和加法运算。因此,根据本公开,在阵列800中需要读取-更新-写入周期(如图4所示)。
继续参照图8,根据一个或多个实施例,现在将提供用于RPU 820的正权重更新方法及其在导电行导线806和导电列导线812的交叉点处的对应权重σ33的操作。RPU 820的非线性特性被用于使用随机计算在RPU 820本地执行乘法运算,如下所述。更具体地说,所公开的方法使用RPU 820的非线性切换特性和随机比特流830、832来执行乘法运算,并在RPU820处本地进行必要的权重更新,而不需要其他电路元件。在交叉开关阵列800的外围提供更新生成器电路(未示出),并用作外围“转换器”,从而以随机比特流(例如,830,832)的形式生成将被并行施加于2D交叉开关阵列800的所有RPU的必要电压脉冲。
简要参考图7的图,假设针对图8所示的RPU 820的f1非常小(例如,f1=0),这意味着当仅向其施加0.5VSET时,RPU 820不改变其内部状态。被施加到行导线806的行电压序列或位流830被示出为表示具有零电压或+0.5VSET电压的权重更新的电压脉冲序列。施加到列线814的列电压序列或比特流832被示出为也表示具有零电压或-0.5VSET电压的权重更新的电压脉冲序列。在图8的例子中,4/8由行电压序列830编码,而6/8由列电压序列832编码。示例电压序列830、832表示权重更新的正电阻改变阶段。在执行正权重更新之后,可以使用具有相应的电压反转的极性的单独序列集合来针对那些需要这种校正的权重在负方向上更新权重。电压序列834是由行电压序列830和列电压序列832之间的差异导致的施加到RPU 820的电压。电压序列834将在0V,0.5VSET和VSET处具有3个电压阶跃。然而,由于RPU820的电阻σ43仅随着器件电压达到VSET而改变,通过列导线或行导线发送的单个脉冲不足以改变RPU 820的电阻状态。当列导线在0.5VSET发送电压,并且行导线在-0.5VSET发送电压时,则施加到相关RPU的结果脉冲VSET将引起器件电阻的增量改变。因此,施加到RPU820的电压脉冲利用了RPU820的非线性切换特性,以在RPU 820本地处执行比特式随机“与”运算(例如,如图5所示)。因此,RPU的存储的权重(例如,σ43)导致的改变与由交叉开关阵列800外围的更新生成器电路“转换的”两个数(4/8*6/8=3/8)的乘积成比例。
图9A和9B示出了示例性的已知浮点(FP)权重更新规则与所公开的随机RPU(SRPU)更新规则的分类错误率性能的比较。FP权重更新规则需要计算如图9A所示的相当于在每个交叉点局部执行的乘法运算和增量权重更新的向量-向量外积。FP权重更新规则可表示为wij←wij+ηxiδj,其中wij表示第i行第j列的权重值,xi是输入神经元的活动性,δj是输出神经元计算的误差,η是全局学习率。
如图9A所示,FP权重更新规则使用位于交叉阵列(未示出)的行导线904和列导线906之间的交叉点处的FP交叉点设备902。FP交叉点设备902包括具有多于两个端子的处理部件(未示出),其中处理部件分别经由施加在行导线904和列导线906上的信号xi和δj接收更新数据作为FP编号。FP交叉点设备902使用乘法运算908和加法运算910来计算权重更新Wij,然后存储权重更新Wij。FP权重更新规则提供准确性,但要求读写过程更新操作(例如图4中所示)或具有多于两个端子的相对复杂和耗电的本地处理组件。例如,FP交叉点设备902的处理部件可以被实施为如Soudry等人的文章所描述的与一对晶体管串联工作的双端子理想忆阻器。忆阻器实际上用于存储权重值,并且该对晶体管用于计算权重更新所需的局部乘法运算,其中权重更新的结果修改了忆阻器的导电状态。
所公开的SRPU权重更新规则的实施例在图9A的等式3中示出,其中BL是在更新周期期间使用的比特流的长度,Δwmin是由于单个重合事件引起的重量值的有效改变,A_i^n和B_j^n是由伯努利过程表征的随机变量,其成功率分别由xi和δj控制,上标n表示脉冲指数。图9A所示的SRPU权重更新规则使得单个阵列中的所有RPU设备能够并行工作并且通过简单地回复重合事件的统计来执行局部乘法运算。然而,由于更新的随机性,结果始终是概率性的,并且乘法运算的方差与均值比率(variance to mean ratio)将与BL的平方根的倒数成比例。
如图9A所示,SRPU权重更新规则使用RPU交叉点设备820A,其与图8所示的RPU 820以基本相同的方式操作并在上面详细描述过。RPU 820A位于交叉开关阵列(未示出)的行导线910和列导线912之间的交叉点处。RPU 820A包括具有两个端子的处理组件(在图8中的820处示出),其中处理组件通过随机转换器914、916生成的随机信号接收作为随机数的更新数据,随机转换器914、916接收输入数据xi和δj并且分别向行导线912和列导线914施加随机电压序列。RPU 820A使用随机比特流、RPU 820A的非线性特性、与(AND)操作918和加法操作920来计算Wij的新值。更具体地,RPU 820A对于每个重合事件引起等效于权重改变的增量电导的改变Δwmin,并将Δwmin加到所存储的权重值,以得到更新的权重值Wij。
图9B的图表通过分析使用具有上述SRPU权重更新规则中定义的概率更新规则的反向传播算法的训练深度神经网络的问题示出了SRPU权重更新规则的分类错误率和FP权重更新规则的分类错误率之间的比较结果,并使用上述FP权重更新规则将结果与基线进行比较。数字分类任务在MNIST数据集上执行。深层神经网络由完全连接的层组成,每层分别包含从输入到输出的784、256、128和10个神经元。没有对数据进行预处理,并且将原始像素值作为输入。在隐藏层使用乙状神经元,输出使用softmax神经元。使用交叉熵目标函数。对于基线FP权重更新,使用浮点算术以批量大小为1、对于0-10、11-20和21-30的历元使用学习率分别为0.01,0.005和0.0025的方式进行训练。如图9A中所示的图形上的空心圆所示,在30个时期结束时,对于测试数据基线达到约2.0%的分类精确度。
学习率是一个重要的超参数,必须在一定程度上进行调整,以达到神经网络可接受的收敛性能。因此,对于所公开的SRPU权重更新,使用与FP权重更新基线的值平均起来相同的学习率。在图9B中示出的模拟假定x_i和δ_j被直接转换为随机流而没有任何缩放,并且P(A_i^n=success)=x_i和P(B_j^n=success)=δ_i。因此权重值的平均改变可写为EE(〖Δw〗_ij)=BL×〖Δw〗_min×x_iδ_j。在第一组模拟中,BL是固定的,并且〖Δw〗_min=η/BL i从而与FP权重更新基线所用的学习速率相匹配。使用不同的BL进行训练以观察算法对SRPU权重更新的容忍度。如图9B所示,对于BL,SRPU权重更新规则是非常鲁棒的,并且对于BL≥10,SRPU权重更新规则的准确性变得与基线FP权重更新规则不可区分。因此,如图9B所示,SRPU权重更新可以如FP权重更新执行得一样好,并且可以通过简单地使用≥10个周期的BL,由独立于阵列大小并行操作的RPU设备来实现。
图10A-D示出了根据一个或多个实施例使用双端子非线性RPU为公开的随机权重更新如何计算RPU线性的度量的简化图和曲线图。图10A示出了先前描述的随机电压序列,图10B示出了接收并响应随机电压序列的RPU820。图10A还示出了Δg,其是响应于在xi和δj处施加的电压序列的RPU的导电值的改变。更具体地,Δg是RPU 820对达到VDD的电压脉冲的响应。相应地,可以根据图10A所示的等式来确定设备线性比率r。图10C是类似于图7的切换图,绘出了Δg与VDD之间的关系,比较了理想忆阻器对非理想RPU和理想RPU的响应。图10C示出了针对不同的非线性比率的分类误差。图10C和图10D证明,通过改变相关参数,可以在不同的非线性水平上设计和操作RPU 820,并且即使RPU 820是非理想的,仍然可以以可接受的分类错误率运行。
图10A示出了正更新周期脉冲。图11A和图11B示出了通过改变脉冲的极性,可以实现正和负更新周期。
图12示出了根据一个或多个实施例的描述使用双端子非线性RPU来实施随机权重更新的更多细节的简化图和曲线图。图12显示出了通过图11A和11B所示的正负脉冲方案将获得平均多少权重改变Δw。因此,xi和δj基于相应的脉冲符号来填充正更新周期和负更新周期。这保证了当RPU上有重叠时,RPU上的电压能够基于Δg的符号在正方向或负方向上通过阈值。下面显示的脉冲序列图只是脉冲序列中脉冲x、δ+和δ-如何相互作用的图形表示。通过将期望值相加,如基于来自半脉冲和全脉冲的贡献的Δw的等式所示,可以导出两种形式的最终预期更新规则Δw。
图13A和13B示出了所公开的RPU的整流非线性(也在图10C中示出)与所公开的RPU的饱和非线性的并排比较。对于非饱和线性,有必要不将x编码到RPU中,而是编码1-x到RPU中以使饱和的非线性RPU执行必要的乘法。
图14和15示出了图示当使用高度调制脉冲方案时的期望的权重更新规则Δw以及具有指数非线性的双端子RPU的图、图表和等式。在这个例子中,随机编码被电压高度调制所取代。如图15所示,可以使用泰勒展开来将期望权重更新规则简化为Δw=xδ。相应地,图14和15的推导表明,图14和15中所示的更高阶项并不重要,并且,如图15的右下所示的图所示的那样,指数的高度调制的RPU与前面描述的实施例一样工作。
图16-18示出了根据本公开开发、训练和使用包括双端子非线性RPU的交叉开关阵列的ANN架构的方面。图16示出了设计神经网络的起点。实际上,图16是图3中所示的神经网络图的替代表示。如图16所示,输入神经元x1、x2和x3与隐藏神经元连接,隐藏神经元由sigma(σ)表示。在输入神经元/节点与隐藏神经元/节点之间的连接以及隐藏神经元/节点与输出神经元/节点之间的连接处施加表示连接强度的权重。权重是以矩阵的形式。当数据前向通过网络时,执行向量矩阵乘法,其中隐藏神经元/节点获取输入,执行非线性变换,然后将结果发送到下一个权重矩阵。这个过程一直持续到数据到达输出神经元/节点。输出神经元/节点评估分类错误,然后以类似于正向通过的方式传回该分类错误,这导致向相反方向执行向量矩阵乘法。对于每个数据组,当正向传递和反向传递完成时,执行权重更新。基本上,每个权重将与其连接的输入、由输入神经元/节点定义的权重和由其连接到的神经元/节点计算的误差按比例地更新。
图17示出了如何将网络划分为由中继器连接的构件块,从而允许神经网络扩展到任意大小。由于网络使用所公开的RPU,因此信息流是本地的,这有利于重复构建模块并消除对可能是限制可扩展性的瓶颈的路由器的需求。
图18示出了从RPU 820(如图8所示)形成的网络构建块。RPU 820可以被提供给图7、10C、13A、13B或14中所示的任何非线性配置。
现在参考图19,其中示出了节点/神经元控制系统1900。神经元控制系统1900包括硬件处理器1902和存储器1904。用于ANN的训练数据1906被存储在存储器1904中,并被用于训练ANN的权重。神经元接口1908控制ANN上的神经元,确定神经元是处于前馈模式、反向传播模式还是权重更新模式。此外,神经元接口1908向输入神经元提供输入并从输出神经元接收输出。误差计算模块1910将来自神经元的输出与训练数据1906进行比较以确定误差信号。神经元接口1908在反向传播模式期间将误差信号施加于输出神经元,并随后触发加权更新模式以相应地训练ANN的权重。
图20示出了根据一个或多个实施例的方法2000的流程图。方法2000在方框2002开始形成第一组导电平行导线。块2004形成与第一组相交的第二组导电平行导线,以在第一组导电平行导线与第二组导电平行导线之间的交叉处形成多个交叉点。块2006在第一组导电平行导线和第二组导电平行导线之间的多个交叉点中的每一个处形成双端子RPU。块2008为每个RPU提供用于本地存储数据的可变导电特性,并且块2010为每个RPU提供用于本地处理数据的非线性切换特性。
图21示出了根据一个或多个实施例的方法2100的另一个流程图。方法2100在框2102处开始,在交叉开关阵列的每个交叉点处形成具有多个行、多个列和多个双端子非线性RPU的交叉开关阵列。方框2104通过交叉开关阵列的行和列向RPU并行地施加随机数的独立比特流。块2106利用每个RPU及其相关比特流(行和列)的非线性切换特性来在RPU处本地执行计算。
因此,本公开提供了许多技术益处。单个双端子设备使用设备的非线性切换特性以及编码输入比特流来本地执行消耗低功率的权重更新,并加速由非线性RPU的交叉开关阵列形成的ANN中的机器学习。所公开的RPU可以在本地执行执行正向传递矩阵乘法、反向传递矩阵乘法和权重更新所需的处理和存储步骤。RPU可以加速各种训练方法,包括在线神经网络训练、矩阵求逆和矩阵分解。
一个或多个实施例的部分可以是设备,系统,方法和/或计算机程序产品。根据一个或多个实施例的计算机程序产品包括其上具有用于使处理器执行一个或多个实施例的方面的程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储介质可以是能够保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备,磁存储设备,光存储设备,电磁存储设备,半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)、记忆棒、软盘、机械地编码的装置例如其上记录有指令的凹槽中的穿孔卡片或凸起结构,以及前述的任何合适的组合。这里使用的计算机可读存储介质不被解释为暂时信号本身,诸如无线电波或其他自由传播的电磁波,通过波导或其他传输介质(例如,穿过光纤电缆的光脉冲)传播的电磁波,或通过导线传输的电信号。
这里描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络例如互联网、局域网、广域网和/或无线网络下载到外部计算机或者外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并将计算机可读程序指令转发用于存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或者源代码或者以一种或多种程序设计语言(包括面向对象的程序设计语言,诸如Smalltalk,C++等)以及诸如“C”程序设计语言或类似程序设计语言的常规程序化程序设计语言的任何组合来编写的目标代码。计算机可读程序指令可以完全在用户计算机上,部分在用户计算机上,作为独立软件包,部分在用户计算机上并且部分在远程计算机上,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到用户的计算机,或者可以连接到外部计算机(用于例如,通过互联网使用互联网服务提供商)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以个性化电子电路,以执行本公开的各方面。
这里参考根据本公开的实施例的方法,装置(系统)和计算机程序产品的流程图和/或框图来描述本公开的各方面。将会理解,流程图和/或框图中的每个框以及流程图和/或框图中的框的组合可以通过计算机可读程序指令来实现。
这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器指令,该机器指令经由计算机的处理器或其他可编程数据处理设备执行,从而创建用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以被存储在计算机可读存储介质中,该计算机可读存储介质可以指导计算机,可编程数据处理设备和/或其他设备以特定方式运行,使得其中存储有指令的计算机可读存储介质包括制造物,其包括实现在流程图和/或框图的一个或多个方框中指定的功能/动作的方面的指令。
计算机可读程序指令还可以被加载到计算机、其它可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤以生成计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图图示了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。就此而言,流程图或框图中的每个框可以表示包括用于实现指定的逻辑功能的一个或多个可执行指令的指令的模块、段或部分。在一些替代实施方式中,方框中提到的功能可以不按照附图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者框有时可以以相反的顺序执行。还要注意的是,框图和/或流程图中的每个框以及框图和/或流程图中的框的组合可以由执行指定的功能或动作或者执行专用硬件和计算机指令的组合的基于专用硬件的系统执行。
本公开使用的术语仅用于描述特定实施例的目的,而不意在限制本公开。如本公开所使用的,除非上下文另外明确指出,否则单数形式“一”,“一个”和“该”也旨在包括复数形式。将进一步理解的是,当在本说明书中使用时,术语“包括”和/或“包含”指明了所陈述的特征、整体、步骤、操作、元件和/或组件的存在,但是不排除存在或添加一个或多个其他特征、整体、步骤、操作、元素组件、和/或其组合。
以下权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等同物旨在包括用于结合具体要求保护的其他要求保护的元件执行该功能的任何结构、材料或动作。已经出于说明和描述的目的呈现了本公开的描述,但是并不意图是穷尽的或者限制于以所公开的形式的公开内容。在不脱离本公开的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择并描述实施例是为了最好地解释本公开的原理和实际应用,并且使本领域的其他普通技术人员能够理解具有适合于预期的特定用途的各种修改的各种实施例的公开内容。

Claims (20)

1.一种双端子电阻处理单元,包括:
第一端子;
第二端子;和
具有导电状态的有源区域;
其中所述导电状态标识施加到所述电阻处理单元的训练方法的权重,其中所述导电状态的改变包括基于施加到所述第一端子的至少一个第一编码信号和施加到所述第二端子的至少一个第二编码信号的非线性改变;
其中所述有源区域被配置为在本地执行所述训练方法的数据存储操作;和
其中所述有源区域还被配置为在本地执行所述训练方法的数据处理操作。
2.根据权利要求1所述的双端子电阻处理单元,其中所述导电状态的改变至少部分基于所述数据处理操作的结果。
3.如权利要求1所述的双端子电阻处理单元,其中:
所述有源区域还被配置为至少部分地基于所述导电状态的所述非线性改变在本地执行所述训练方法的所述数据存储操作;和
所述有源区域还被配置为至少部分地基于所述导电状态的所述非线性改变来在本地执行所述训练方法的数据处理操作。
4.根据权利要求1所述的双端子电阻处理单元,其中所述训练方法包括以下各项中的至少一个:
在线神经网络训练;
矩阵求逆;和
矩阵分解。
5.一种双端子电阻处理单元,包括:
第一端子;
第二端子;和
具有导电状态的有源区域;
其中所述有源区域被配置为基于施加到所述第一端子的至少一个第一编码信号和施加到所述第二端子的至少一个第二编码信号来实现所述导电状态的非线性改变;
其中所述有源区域还被配置为至少部分地基于所述导电状态的所述非线性改变来在本地执行训练方法的数据存储操作;和
其中所述有源区域还被配置为至少部分地基于所述导电状态的所述非线性改变来在本地执行所述训练方法的数据处理操作。
6.如权利要求5所述的双端子电阻处理单元,其中所述至少一个第一编码信号和所述至少一个第二编码信号的编码包括随机脉冲序列。
7.根据权利要求5所述的双端子电阻处理单元,其中所述至少一个第一编码信号和所述至少一个第二编码信号的编码包括幅度调制。
8.根据权利要求5所述的双端子电阻处理单元,其中所述非线性改变包括整流非线性改变或饱和非线性改变。
9.根据权利要求5所述的双端子电阻处理单元,其中,所述非线性改变包括指数非线性改变。
10.一种可训练的交叉开关阵列,包括:
一组导电行导线;
一组导电列导线,其被配置为在所述一组导电行导线与所述一组导电列导线之间的交叉处形成多个交叉点;和
在所述多个交叉点中的每一个交叉点处的双端子电阻处理单元,其中所述双端子电阻处理单元包括第一端子,第二端子和具有导电状态的有源区域;和所述导电状态标识施加到所述电阻处理单元的训练方法的权重;
其中所述导电状态的改变包括基于施加到所述第一端子的至少一个第一编码信号和施加到所述第二端子的至少一个第二编码信号的非线性改变;
其中所述电阻处理单元被配置为在本地执行施加到所述可训练的交叉开关阵列的训练方法的数据存储操作;
其中所述电阻处理单元还被配置为在本地执行所述训练方法的数据处理操作。
11.如权利要求10所述的阵列,其中:
所述导电状态的改变至少部分基于所述数据处理操作的结果。
12.如权利要求11所述的阵列,其中:
所述有源区域还被配置为至少部分地基于所述导电状态的所述非线性改变在本地执行所述训练方法的所述数据存储操作;和
所述有源区域还被配置为至少部分地基于所述导电状态的所述非线性改变在本地执行训练方法的所述数据处理操作。
13.根据权利要求10所述的阵列,其中所述训练方法包括以下中的至少一个:
在线神经网络训练;
矩阵求逆;和
矩阵分解。
14.一种形成双端子电阻处理单元的方法,包括:
形成第一端子;
形成第二端子;和
形成具有导电状态的有源区域;
配置所述有源区域以基于施加到所述第一端子的至少一个第一编码信号和施加到所述第二端子的至少一个第二编码信号来实现所述导电状态的非线性改变;
配置所述有源区域以至少部分地基于所述导电状态的所述非线性改变来在本地执行训练方法的数据存储操作;和
配置所述有源区域以至少部分地基于所述导电状态的所述非线性改变来在本地执行所述训练方法的数据处理操作。
15.如权利要求14所述的方法,其中所述至少一个第一编码信号和所述至少一个第二编码信号的编码包括随机脉冲序列。
16.根据权利要求14所述的方法,其中所述至少一个第一编码信号和所述至少一个第二编码信号的编码包括幅度调制。
17.根据权利要求15所述的方法,其中所述非线性改变包括整流非线性改变或饱和非线性改变。
18.如权利要求16所述的方法,其中所述非线性改变包括指数非线性改变。
19.一种形成可训练的交叉开关阵列的方法,包括:
形成一组导电行导线;
形成一组导电列导线,所述一组导电列导线被配置为在所述一组导电行导线和所述一组导电列导线之间的交叉处形成多个交叉点;和
在所述多个交叉点中的每一个交叉点处形成双端子电阻处理单元;
配置所述电阻处理单元以在本地执行施加到所述可训练的交叉开关阵列的训练方法的数据存储操作;和
配置电阻处理单元以在本地执行所述训练方法的数据处理操作,
其中形成所述双端子电阻处理单元包括形成第一端子,形成第二端子并形成具有导电状态的有源区域;和所述导电状态标识施加到所述电阻处理单元的所述训练方法的权重;
其中所述导电状态的改变包括基于施加到所述第一端子的至少一个第一编码信号和施加到所述第二端子的至少一个第二编码信号的非线性改变。
20.如权利要求19所述的方法,其中:
所述导电状态的改变至少部分基于所述数据处理操作的结果。
CN201680044972.8A 2015-10-20 2016-09-19 电阻处理单元 Active CN107924227B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/887,564 2015-10-20
US14/887,564 US10248907B2 (en) 2015-10-20 2015-10-20 Resistive processing unit
PCT/IB2016/055572 WO2017068443A1 (en) 2015-10-20 2016-09-19 Resistive processing unit

Publications (2)

Publication Number Publication Date
CN107924227A CN107924227A (zh) 2018-04-17
CN107924227B true CN107924227B (zh) 2021-06-08

Family

ID=58523098

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680044972.8A Active CN107924227B (zh) 2015-10-20 2016-09-19 电阻处理单元

Country Status (6)

Country Link
US (2) US10248907B2 (zh)
JP (1) JP6764473B2 (zh)
CN (1) CN107924227B (zh)
DE (1) DE112016003245T5 (zh)
GB (1) GB2559915B (zh)
WO (1) WO2017068443A1 (zh)

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11100397B2 (en) * 2015-05-21 2021-08-24 Rochester Institute Of Technology Method and apparatus for training memristive learning systems
US10332004B2 (en) * 2015-07-13 2019-06-25 Denso Corporation Memristive neuromorphic circuit and method for training the memristive neuromorphic circuit
US10248907B2 (en) * 2015-10-20 2019-04-02 International Business Machines Corporation Resistive processing unit
WO2017073000A1 (ja) * 2015-10-29 2017-05-04 株式会社Preferred Networks 情報処理装置及び情報処理方法
US10520975B2 (en) 2016-03-03 2019-12-31 Regents Of The University Of Minnesota Polysynchronous stochastic circuits
CN116842306A (zh) * 2016-03-23 2023-10-03 Gsi 科技公司 存储器内矩阵乘法及其在神经网络中的使用
US10063255B2 (en) * 2016-06-09 2018-08-28 Regents Of The University Of Minnesota Stochastic computation using deterministic bit streams
GB2552014B (en) * 2016-07-07 2020-05-13 Advanced Risc Mach Ltd Reconfigurable artificial neural networks comprising programmable non-volatile memory elements
US9946933B2 (en) * 2016-08-18 2018-04-17 Xerox Corporation System and method for video classification using a hybrid unsupervised and supervised multi-layer architecture
US11741352B2 (en) * 2016-08-22 2023-08-29 International Business Machines Corporation Area and power efficient implementation of resistive processing units using complementary metal oxide semiconductor technology
US9646243B1 (en) 2016-09-12 2017-05-09 International Business Machines Corporation Convolutional neural networks using resistive processing unit array
WO2018063840A1 (en) 2016-09-28 2018-04-05 D5A1 Llc; Learning coach for machine learning system
US10740686B2 (en) 2017-01-13 2020-08-11 Regents Of The University Of Minnesota Stochastic computation using pulse-width modulated signals
US11068777B2 (en) * 2017-02-06 2021-07-20 International Business Machines Corporation Voltage controlled highly linear resistive elements
US11315009B2 (en) * 2017-03-03 2022-04-26 Hewlett Packard Enterprise Development Lp Analog multiplier-accumulators
US11915152B2 (en) 2017-03-24 2024-02-27 D5Ai Llc Learning coach for machine learning system
CN107122828B (zh) * 2017-05-09 2020-05-05 清华大学 电路结构及其驱动方法、神经网络
US11295210B2 (en) 2017-06-05 2022-04-05 D5Ai Llc Asynchronous agents with learning coaches and structurally modifying deep neural networks without performance degradation
CN109146070B (zh) * 2017-06-16 2021-10-22 华为技术有限公司 一种支撑基于rram的神经网络训练的外围电路及系统
WO2019032870A1 (en) * 2017-08-09 2019-02-14 Google Llc ACCELERATION OF NEURAL NETWORKS IN MATERIAL USING INTERCONNECTED CROSSBARS
US10381061B2 (en) * 2017-09-27 2019-08-13 International Business Machines Corporation One-transistor synapse cell with weight adjustment
US11348002B2 (en) 2017-10-24 2022-05-31 International Business Machines Corporation Training of artificial neural networks
US11468332B2 (en) * 2017-11-13 2022-10-11 Raytheon Company Deep neural network processor with interleaved backpropagation
US11182670B2 (en) * 2017-11-16 2021-11-23 International Business Machines Corporation Thin-film large-area classifier
US11494655B2 (en) 2017-12-08 2022-11-08 International Business Machines Corporation Random matrix hardware for machine learning
US11222259B2 (en) * 2017-12-13 2022-01-11 International Business Machines Corporation Counter based resistive processing unit for programmable and reconfigurable artificial-neural-networks
US10452955B2 (en) * 2018-01-15 2019-10-22 Gyrfalcon Technology Inc. System and method for encoding data in an image/video recognition integrated circuit solution
US11321612B2 (en) 2018-01-30 2022-05-03 D5Ai Llc Self-organizing partially ordered networks and soft-tying learned parameters, such as connection weights
CN108388213B (zh) * 2018-02-05 2019-11-08 浙江天悟智能技术有限公司 基于局部可塑性回声状态网络的聚酯纺丝工艺控制方法
US10996929B2 (en) 2018-03-15 2021-05-04 Regents Of The University Of Minnesota High quality down-sampling for deterministic bit-stream computing
US10381074B1 (en) 2018-04-10 2019-08-13 International Business Machines Corporation Differential weight reading of an analog memory element in crosspoint array utilizing current subtraction transistors
US11157810B2 (en) 2018-04-16 2021-10-26 International Business Machines Corporation Resistive processing unit architecture with separate weight update and inference circuitry
JP6896678B2 (ja) 2018-07-02 2021-06-30 株式会社東芝 強化学習システム
US10396126B1 (en) 2018-07-24 2019-08-27 International Business Machines Corporation Resistive memory device with electrical gate control
US10831860B2 (en) * 2018-10-11 2020-11-10 International Business Machines Corporation Alignment techniques to match symmetry point as zero-weight point in analog crosspoint arrays
US11481611B2 (en) * 2018-11-02 2022-10-25 International Business Machines Corporation RRAM crossbar array structure for multi-task learning
US11444207B2 (en) 2018-12-12 2022-09-13 International Business Machines Corporation Lithium drifted thin film transistors for neuromorphic computing
US10754921B2 (en) * 2019-01-16 2020-08-25 International Business Machines Corporation Resistive memory device with scalable resistance to store weights
US11153104B2 (en) * 2019-03-14 2021-10-19 International Business Machines Corporation Generating key material for information security using a resistive processing unit (RPU) accelerator array as a physically unclonable function (PUF)
US11769046B2 (en) 2019-03-14 2023-09-26 International Business Machines Corporation Symmetric phase-change memory devices
US11079958B2 (en) * 2019-04-12 2021-08-03 Intel Corporation Apparatus, system and method for offloading data transfer operations between source and destination storage devices to a hardware accelerator
US11562249B2 (en) 2019-05-01 2023-01-24 International Business Machines Corporation DNN training with asymmetric RPU devices
JP7326867B2 (ja) * 2019-05-21 2023-08-16 富士通株式会社 情報処理装置、情報処理プログラム及び情報処理方法
US11361218B2 (en) 2019-05-31 2022-06-14 International Business Machines Corporation Noise and signal management for RPU array
US11556770B2 (en) 2019-05-31 2023-01-17 International Business Machines Corporation Auto weight scaling for RPUs
US11436302B2 (en) * 2019-06-07 2022-09-06 International Business Machines Corporation Electronic system for computing items of an outer product matrix
US11200297B2 (en) 2019-06-12 2021-12-14 International Business Machines Corporation Integrator voltage shifting for improved performance in softmax operation
US10839900B1 (en) 2019-06-12 2020-11-17 International Business Machines Corporation Parasitic voltage drop compensation in large cross-point arrays
US11487990B2 (en) 2019-06-14 2022-11-01 International Business Machines Corporation Resistive crossbar arrays with reduced numbers of elements
US11455520B2 (en) 2019-06-14 2022-09-27 International Business Machines Corporation Copying weights between resistive cross-point arrays
US10832773B1 (en) 2019-07-01 2020-11-10 International Business Machines Corporation Architecture for enabling zero value shifting
CN110364232B (zh) * 2019-07-08 2021-06-11 河海大学 一种基于忆阻器-梯度下降法神经网络的高性能混凝土强度预测方法
WO2021016931A1 (zh) * 2019-07-31 2021-02-04 华为技术有限公司 一种集成芯片以及处理传感器数据的方法
JP7118930B2 (ja) * 2019-08-19 2022-08-16 株式会社東芝 スパイキングニューラルネットワーク装置およびその学習方法
US20210097378A1 (en) * 2019-10-01 2021-04-01 Toyota Motor Engineering & Manufacturing North America, Inc. Adaptable optical neural network system
US20210142153A1 (en) * 2019-11-07 2021-05-13 International Business Machines Corporation Resistive processing unit scalable execution
US11714999B2 (en) 2019-11-15 2023-08-01 International Business Machines Corporation Neuromorphic device with crossbar array structure storing both weights and neuronal states of neural networks
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
US11133058B1 (en) 2020-04-17 2021-09-28 International Business Machines Corporation Analog computing architecture for four terminal memory 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
US11636628B2 (en) 2020-05-01 2023-04-25 International Business Machines Corporation Composite imagery rendering in diminished reality environment for medical diagnosis
US11520855B2 (en) * 2020-05-15 2022-12-06 International Business Machines Corportation Matrix sketching using analog crossbar architectures
US11341598B2 (en) 2020-06-05 2022-05-24 International Business Machines Corporation Interpretation maps with guaranteed robustness
DE102020003476A1 (de) 2020-06-05 2021-12-09 Peter Uranic Kombinatorisches Verteilungssystem zur Verteilung von Energie und Materie
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
US11366876B2 (en) 2020-06-24 2022-06-21 International Business Machines Corporation Eigenvalue decomposition with stochastic optimization
TWI746038B (zh) * 2020-07-02 2021-11-11 阿證科技股份有限公司 類神經網路人工智慧決策核心系統
US11443171B2 (en) 2020-07-15 2022-09-13 International Business Machines Corporation Pulse generation for updating crossbar arrays
US11568217B2 (en) 2020-07-15 2023-01-31 International Business Machines Corporation Sparse modifiable bit length deterministic pulse generation for updating analog crossbar arrays
US11742901B2 (en) * 2020-07-27 2023-08-29 Electronics And Telecommunications Research Institute Deep learning based beamforming method and apparatus
US11687777B2 (en) 2020-08-27 2023-06-27 International Business Machines Corporation Certifiably robust interpretation
US11696518B2 (en) 2020-11-20 2023-07-04 International Business Machines Corporation Hybrid non-volatile memory cell
US11544061B2 (en) 2020-12-22 2023-01-03 International Business Machines Corporation Analog hardware matrix computation
JP2022125660A (ja) 2021-02-17 2022-08-29 キオクシア株式会社 記憶装置及び記憶方法
US20220300797A1 (en) * 2021-03-16 2022-09-22 International Business Machines Corporation Enabling hierarchical data loading in a resistive processing unit (rpu) array for reduced communication cost
US11900979B2 (en) * 2021-10-22 2024-02-13 Intel Corporation Probabilistic in-memory computing

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9109685D0 (en) * 1991-05-03 1991-06-26 Marconi Gec Ltd Neural networks
US5299285A (en) * 1992-01-31 1994-03-29 The United States Of America As Represented By The Administrator, National Aeronautics And Space Administration Neural network with dynamically adaptable neurons
JPH05282272A (ja) * 1992-03-31 1993-10-29 Akira Iwata ニューラルネットワーク並列分散処理装置
JP3374476B2 (ja) * 1993-10-22 2003-02-04 株式会社デンソー ニューラルネットワーク構築方法
JPH07319507A (ja) * 1994-05-26 1995-12-08 Bridgestone Corp ロボット制御装置
US9269043B2 (en) 2002-03-12 2016-02-23 Knowm Tech, Llc Memristive neural processor utilizing anti-hebbian and hebbian technology
US7525833B2 (en) 2005-10-21 2009-04-28 Hewlett-Packard Development Company, L.P. Nanoscale shift register and signal demultiplexing using microscale/nanoscale shift registers
US7302513B2 (en) 2006-04-03 2007-11-27 Blaise Laurent Mouttet Programmable crossbar signal processor
US7902867B2 (en) 2006-04-03 2011-03-08 Blaise Laurent Mouttet Memristor crossbar neural interface
US8527438B2 (en) 2009-12-22 2013-09-03 International Business Machines Corporation Producing spike-timing dependent plasticity in an ultra-dense synapse cross-bar array
US8510239B2 (en) * 2010-10-29 2013-08-13 International Business Machines Corporation Compact cognitive synaptic computing circuits with crossbar arrays spatially in a staggered pattern
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
CN102789811B (zh) * 2012-06-15 2015-02-18 中国人民解放军国防科学技术大学 面向纳米交叉杆结构的多值忆阻器自适应编程电路及方法
US20140028305A1 (en) * 2012-07-27 2014-01-30 International Business Machines Corporation Hall measurement system with rotary magnet
US9389273B2 (en) * 2012-11-13 2016-07-12 International Business Machines Corporation Solar cell characteristics determination
US9152827B2 (en) 2012-12-19 2015-10-06 The United States Of America As Represented By The Secretary Of The Air Force Apparatus for performing matrix vector multiplication approximation using crossbar arrays of resistive memory devices
US9443997B2 (en) * 2013-06-28 2016-09-13 International Business Machines Corporation Hybrid CZTSSe photovoltaic device
US9203022B2 (en) * 2013-07-23 2015-12-01 Globalfoundries Inc. Resistive random access memory devices with extremely reactive contacts
US9319047B2 (en) 2013-12-18 2016-04-19 University Of Central Florida Research Foundation, Inc. Computation of boolean formulas using sneak paths in crossbar computing
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
US10248907B2 (en) * 2015-10-20 2019-04-02 International Business Machines Corporation Resistive processing unit
US9608160B1 (en) * 2016-02-05 2017-03-28 International Business Machines Corporation Polarization free gallium nitride-based photonic devices on nanopatterned silicon
US10664745B2 (en) * 2016-06-29 2020-05-26 International Business Machines Corporation Resistive processing units and neural network training methods
US9646243B1 (en) * 2016-09-12 2017-05-09 International Business Machines Corporation Convolutional neural networks using resistive processing unit array
US9715656B1 (en) * 2016-09-12 2017-07-25 International Business Machines Corporation Killing asymmetric resistive processing units for neural network training
US9601546B1 (en) * 2016-09-12 2017-03-21 International Business Machines Corporation Scaled cross bar array with undercut electrode
US9779355B1 (en) * 2016-09-15 2017-10-03 International Business Machines Corporation Back propagation gates and storage capacitor for neural networks
US9659249B1 (en) * 2016-09-27 2017-05-23 International Business Machines Corporation Pre-programmed resistive cross-point array for neural network
US9887351B1 (en) * 2016-09-30 2018-02-06 International Business Machines Corporation Multivalent oxide cap for analog switching resistive memory
US9852790B1 (en) * 2016-10-26 2017-12-26 International Business Machines Corporation Circuit methodology for highly linear and symmetric resistive processing unit
US10079341B1 (en) * 2017-03-13 2018-09-18 International Business Machines Corporation Three-terminal non-volatile multi-state memory for cognitive computing applications
US10141509B2 (en) * 2017-03-30 2018-11-27 International Business Machines Corporation Crossbar resistive memory array with highly conductive copper/copper alloy electrodes and silver/silver alloys electrodes
US10340447B2 (en) * 2017-06-07 2019-07-02 International Business Machines Corporation Three-terminal metastable symmetric zero-volt battery memristive device
US10115800B1 (en) * 2017-11-29 2018-10-30 International Business Machines Corporation Vertical fin bipolar junction transistor with high germanium content silicon germanium base
US10153159B1 (en) * 2017-11-30 2018-12-11 International Business Machines Corporation Source and drain formation using self-aligned processes

Also Published As

Publication number Publication date
WO2017068443A1 (en) 2017-04-27
JP6764473B2 (ja) 2020-09-30
GB201807583D0 (en) 2018-06-27
US10373051B2 (en) 2019-08-06
CN107924227A (zh) 2018-04-17
US10248907B2 (en) 2019-04-02
GB2559915A (en) 2018-08-22
US20170109626A1 (en) 2017-04-20
DE112016003245T5 (de) 2018-04-12
US20170109628A1 (en) 2017-04-20
GB2559915B (en) 2020-02-19
JP2019502970A (ja) 2019-01-31

Similar Documents

Publication Publication Date Title
CN107924227B (zh) 电阻处理单元
US10956815B2 (en) Killing asymmetric resistive processing units for neural network training
US9646243B1 (en) Convolutional neural networks using resistive processing unit array
US9779355B1 (en) Back propagation gates and storage capacitor for neural networks
JP7336819B2 (ja) 抵抗処理ユニット・アレイのクロスポイント・デバイスに重みを記憶するための方法、そのクロスポイント・デバイス、ニューラル・ネットワークを実施するためのクロスポイント・アレイ、そのシステム、およびニューラル・ネットワークを実施するための方法
US11087204B2 (en) Resistive processing unit with multiple weight readers
Merrikh-Bayat et al. Memristive neuro-fuzzy system
US20210374546A1 (en) Row-by-row convolutional neural network mapping for analog artificial intelligence network training
Yang et al. On learning with nonlinear memristor-based neural network and its replication
US11195089B2 (en) Multi-terminal cross-point synaptic device using nanocrystal dot structures
JP2023533847A (ja) アナログクロスバーアレイの更新のための疎な変更可能なビット長決定論的パルス生成
US11868893B2 (en) Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference
US11443171B2 (en) Pulse generation for updating crossbar arrays
US11250316B2 (en) Aggregate adjustments in a cross bar neural network
AU2021296187B2 (en) Suppressing undesired programming at half-selected devices in a crosspoint array of 3-terminal resistive memory

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