CN110674933A - 用于提高神经网络推断准确度的流水线技术 - Google Patents
用于提高神经网络推断准确度的流水线技术 Download PDFInfo
- Publication number
- CN110674933A CN110674933A CN201910484591.7A CN201910484591A CN110674933A CN 110674933 A CN110674933 A CN 110674933A CN 201910484591 A CN201910484591 A CN 201910484591A CN 110674933 A CN110674933 A CN 110674933A
- Authority
- CN
- China
- Prior art keywords
- layer
- neural network
- input
- output
- artificial neural
- 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
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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
-
- 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/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/046—Forward inferencing; Production systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Neurology (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Semiconductor Memories (AREA)
Abstract
本发明题为“用于提高神经网络推断准确度的流水线技术”。本发明公开了用于人工神经网络的增强技术和电路。这些人工神经网络由人工神经元形成,在本文的具体实施中,所述人工神经元包括具有非易失性存储器元件的存储器阵列。人工神经元之间的神经连接件由互连电路形成,所述互连电路耦接到所述存储器阵列的输入控制线和输出控制线以将所述存储器阵列细分为所述人工神经网络的多个层。控制电路被配置为在所述人工神经网络的第一层的输入控制线上传送输入值的多次迭代,以通过至少一个或多个附加层进行推断操作。所述控制电路还被配置为对来自所述输入值的每次迭代的在所述人工神经网络的最后一层的输出控制线上连续呈现的输出值应用平均函数。
Description
相关申请
本专利申请据此要求2018年7月3日提交的题为“USE OF PIPELINING TO IMPROVENEURAL NETWORK INFERENCE ACCURACY”的美国临时专利申请62/693,615的权益和优先权,该美国临时专利申请据此全文以引用方式并入。
技术领域
本公开的各方面涉及人工神经网络中的人工神经元电路领域。
背景技术
人工神经网络(ANN)可以由使用软件、集成硬件或其他分立元件模拟的单独人工神经元形成。神经形态计算可以采用ANN,其致力于在集成系统中使用电子部件诸如模拟/数字电路,以模拟人类大脑并试图更多地理解神经系统的神经生物学架构。神经形态计算注重实现神经系统模型,以理解单独神经元、突触、电路和架构的形态如何导致实现期望计算。这种生物启发式计算为超低功率消耗和高并行性提供了巨大潜力。
已经开展了许多神经形态计算项目,这些项目包括BrainScaleS、SpiNNaker和IBMTrueNorth,它们使用基于半导体的随机存取存储器来模拟生物神经元的行为。最近,还提出了使用新兴的非易失性存储器设备(包括相变存储器、电阻式存储器和磁随机存取存储器)来模拟生物神经元。特别是,使用具有可变电阻或电导特性的新材料使电阻式存储器技术成为可能,该可变电阻或电导特性在施加电压或电流之后持续存在。
遗憾的是,在针对采用非易失性存储器设备来模拟生物神经元的神经形态计算系统的神经网络操作期间可能出现各种噪声影响。在设计用于机器学习以及其他ANN应用的硬件部件时,这些噪声影响可能非常显著。另外,这些噪声源可能会对ANN推断和训练操作产生不利影响。
概述
本文呈现了用于人工神经网络的增强技术和电路。这些人工神经网络由人工神经元形成,在本文的具体实施中,该人工神经元包括具有非易失性存储器元件的存储器阵列。人工神经元之间的神经连接件由互连电路形成,该互连电路耦接到存储器阵列的控制线以将存储器阵列细分为人工神经网络的多个层。控制电路被配置为在人工神经网络的第一层的输入控制线上传送输入值的多次迭代,以通过至少一个或多个附加层进行推断操作。控制电路还被配置为对来自输入值的每次迭代的在人工神经网络的最后一层的输出控制线上连续呈现的输出值应用平均函数。
附图说明
参考以下附图可以更好地理解本公开的许多方面。尽管结合这些附图描述了几种具体实施,但本公开并不限于本文所公开的具体实施。相反,其旨在涵盖所有另选方案、修改和等同物。
图1示出了具体实施中的人工神经网络系统。
图2示出了具体实施中的人工神经网络系统的操作。
图3示出了具体实施中的人工神经网络系统。
图4示出了具体实施中的人工神经网络系统。
图5示出了具体实施中的人工神经网络系统的操作。
图6示出了具体实施中的人工神经网络系统的性能。
图7示出了根据具体实施的用于托管或控制人工神经网络的计算系统。
具体实施方式
已经开发了人工神经网络(ANN)以使用被认为类似于生物神经元的技术来处理复杂数据集。生物神经元响应于对神经元细胞体的各种突触输入而典型地产生输出,并且一些形式的人工神经元试图模拟这种行为。因此,可以利用人工神经元之间的人工神经连接以及这些人工神经元的特性来形成人工神经元的复杂网络,以处理大量数据集或者执行对于常规数据处理器而言过于复杂的任务诸如机器学习。
ANN可以由使用软件模拟的单独人工神经元形成,或者由集成硬件和分立电路元件形成。如本文所讨论,人工神经元可以包括单独存储器元件(诸如,非易失性存储器元件),或者可以使用其他类型的存储器元件或软件元件来表示。人工神经元利用人工神经连接来互连,为了清楚起见,在本文中将人工神经连接称为神经连接。这些神经连接被设计成模拟使生物神经元互连的生物神经突触和轴突。这些神经连接可以包括电互连器,诸如线、迹线、电路以及各种分立或集成的逻辑或光学互连器。当采用存储器元件来形成人工神经元时,这些神经连接可以部分地由任何相关联的存储器阵列的控制线形成。这些控制线可以包括:将数据引入人工神经元的输入控制线;以及从人工神经元接收数据的输出控制线。在特定具体实施中,控制线可以包括存储器阵列的字线和位线。
已经开发了各种类型的ANN,其通常涉及用于连接人工神经元的拓扑结构以及如何通过ANN处理或传播数据。例如,前馈ANN以“向前”方式通过人工神经元的顺序层传播数据,这排除了反向传播和循环。完全连接的ANN具有多层人工神经元,并且每个人工神经元各自连接到后续层的所有人工神经元。卷积神经网络(CNN)由多层人工神经元形成,这些人工神经元完全连接并以前馈方式传播数据。
通常将通过ANN传播和处理数据以产生结果的过程称为推断。然而,在通过ANN处理数据集之前,必须首先训练许多ANN。该训练过程可以建立单独人工神经元之间的连通性以及每个人工神经元的数据处理特性。可以将人工神经元的数据处理特性称为权重或突触权重。突触权重指示两个人工神经元之间的连接的强度或幅度。这可以与击发第一人工神经元对另一个人工神经元的影响程度相对应。
已经开发了用于形成执行机器学习任务以及ANN框架内的其他数据处理任务的ANN的各种具体实施。例如,常规的中央处理单元(CPU)通常可以有效地处理非常复杂的指令,但所实现的并行度的量可能有限。然而,在机器学习计算中,尤其是在训练任务中,基本操作是向量矩阵乘法,这是一项执行了非常多次的简单任务。已经开始受到CPU青睐的图形处理单元(GPU)使用并行架构,并且可以处理许多组非常简单的指令。另一个新兴的具体实施使用专用集成电路(ASIC),其可以实现在执行一个特定任务时有效的张量处理单元(TPU)。由于机器学习越来越多地集成到更多应用程序中,人们越来越关注制造能够有效处理机器学习任务的专用电路。
实现机器学习的另一个问题是电功率消耗。执行机器学习任务可能消耗GPU或TPU高达数百瓦特的功率。相比之下,人类大脑可以通过仅使用约20瓦特的功率来执行类似的认知任务。这种高耗能的缺点激发了对生物启发式或大脑启发式方法(诸如神经形态计算)的研究,以应对机器学习的局限性。
神经形态计算可以采用ANN,并且致力于在超大规模集成(VLSI)系统中使用电子部件诸如模拟/数字电路,以试图模拟人类大脑,尤其是试图理解神经系统的神经生物学架构并从中学习。神经形态计算注重实现神经系统模型,并且理解单独神经元、突触、电路和架构的形态如何导致实现期望计算。这种生物启发式计算为超低功率消耗和高并行性提供了巨大潜力。已经进行了相关研究以研究脉冲神经网络以及突触学习规则(诸如,脉冲时间依赖的可塑性)。许多神经形态计算项目已经进行了好几年,这些项目包括BrainScaleS、SpiNNaker和IBM TrueNorth,它们使用SRAM或SDRAM来保持突触权重。
最近,还提出了使用新兴的非易失性存储器设备(包括相变存储器(PCM)、电阻式随机存取存储器(RRAM或ReRAM)以及由磁隧道结(MTJ)形成的磁随机存取存储器(MRAM))来模拟突触权重。这些设备属于忆阻器技术的广泛类别,并且因其对应的小占用空间而可以提供非常高的密度和连通性。使用具有可变电阻状态或电导状态的新材料使电阻式存储器技术(诸如,前述忆阻器类别中的那些技术)成为可能,该可变电阻或电导状态在施加电压或电流之后持续存在。忆阻器和其他相关的电阻式存储器设备通常包括将电荷与磁通链相关联的电子部件,其中,忆阻器的电阻取决于忆阻器先前传递的电流或电压。
下文将考虑表示人工神经网络的突触权重的非易失性存储器(NVM)元件,但增强的电路和技术可以应用于其他电路类型和ANN拓扑结构。单独的NVM元件可以形成为经由耦接到NVM元件的控制线互连的大阵列。在一些示例中,这些控制线可以包括位线和字线布置,但在其他实施方案中,控制线可以包括其他元件并且与其他存储器阵列布置交接。在本文的示例中,采用非易失性存储器(NVM)阵列来实现各种类型的ANN。具体地讲,电阻式存储器元件被组织成用于形成ANN的可寻址人工神经元阵列。控制线连接件不仅可以用于在阵列中写入和读取NVM元件,还可以用于将NVM阵列逻辑地细分为ANN的逻辑子单元(将其称为层)。这些层可以各自包括任意数量的NVM元件,该数量通常由每层的人工神经元或节点的期望数量来确定。通常,每层中NVM元件的该任意数量是相同的,但其他实施方案可以在每层中使用不同数量的NVM元件。在一些示例中,每层的节点可以包括NVM阵列的整个存储页面,或者可以跨越多个存储页面。此外,层的节点可以替代性地仅将NVM元件的子集用于特定存储页面,因此可以在层之间共享单个存储页面。在另外的示例中,NVM元件可能未采用传统的存储页面组织,而是包括列/行可寻址元件的“平坦”阵列。
如上所述,可以使用组织成不同层的人造神经元的大量人工神经元来形成人工神经网络。可以将这些层组合成被称为深层神经网络的布置以及其他布置。深层神经网络通常包括输入层和输出层以及输入层与输出层之间的一个或多个中间层。将这些中间层称为隐藏层。在机器学习方面,特别是在图像分类、对象检测或语音识别应用方面,深层神经网络非常受欢迎。深层神经网络是最广泛使用的深度学习技术之一。深层前馈神经网络(如,卷积神经网络(CNN)或多层感知器(MLP))适用于处理静态图案(诸如图像)。递归深层神经网络(如长短期存储器(LSTM))擅长于处理时态数据如语音。
在用于神经形态计算以及其他ANN操作的深层神经网络训练和推断期间可能出现各种噪声影响。在设计用于机器学习的硬件部件时,这些噪声影响可能非常显著。两种类型的噪声包括前向传播噪声和权重更新噪声,并且将在下文更详细地讨论。然而,这些噪声源可能对推断操作产生不利影响,并且在某些情况下还可能对训练操作产生不利影响。在本文提出的增强的电路和技术中,流水线方法可以至少减少人工神经网络中的前向传播噪声。有利地,这些增强的流水线ANN可以提高推断操作的分类准确度,并且潜在地接近与当不存在噪声时执行的经修改的美国国家标准和技术研究院数据库(MNIST)测试相当的理想水平。
现在讨论各种电路中的噪声源,诸如前向传播噪声和权重更新噪声。深层前馈神经网络(诸如多层感知器)的基本训练操作可以分为几个类别:前向传播、计算成本、后向传播和参数更新。基本推断操作包括:前向传播、将所得logit向量馈送到“softmax”层、以及确定具有最高概率的预测作为结果。在人工神经网络中采用softmax层以呈现在目标数值范围内归一化的结果。例如,可以将概率呈现为0到1的值,并且softmax层可以解译来自人工神经网络的输出值,并且可以以0至1的比例尺将这些输出值归一化。可以在softmax层中应用其他比例尺和归一化函数。
噪声的一个源是权重更新噪声。该噪声源可以来自在NVM阵列中存储突触权重的人工神经元。这些人工神经元可以由在进行突触权重更新时具有变化效果的存储器设备形成。在训练期间,在每个训练时期期间更新突触权重。在推断期间,当我们将先前训练的突触权重从软件或存储设备编程到初始阵列中时,仅更新突触权重一次。用于减轻权重更新噪声的解决方案超出了本讨论的范围。
另一个噪声源是前向传播噪声。在电路和设备级别下可能出现前向传播噪声,这可能影响操作人工神经网络的训练和推断阶段两者。具体地讲,在具有几个完全连接的层的深层神经网络中,通过对输入到层的值进行向量矩阵乘法计算来在每个层中进行前向传播。输入值可以包括输入图像、或来自先前层的激活、及存储的权重。在本文的NVM阵列示例中,输入值由馈送到包括NVM阵列的字线的输入控制线中的电压表示,并且存储的权重由NVM阵列中的NVM元件的当前电导值或电导状态表示。可以将以这种方式使用的NVM阵列称为权重存储器阵列。然后,以电流值形式从包括NVM阵列的输出控制线的相关联输出控制线中读出每层的向量矩阵乘法结果。前向传播噪声可以来自模数转换器(ADC)过程以及其他源。在本文所讨论的ANN中,ADC可以连接到输出控制线的电流输出端,并且将模拟电流输出转换成数字表示,以便传输到数字外围电路。
前向传播噪声包括在前向传播操作期间产生的信号噪声,其通常是高斯噪声类型等。该噪声可以包括由ANN的各种电路元件(诸如,层互连电路、ADC电路元件和其他电路元件)引入的模拟和数字噪声。前向传播噪声可以在以下激活函数的输入处以数学方式表示:Wx+b,也将其称为预激活参数。W是权重矩阵,x是来自先前层的激活(或第一层的输入数据),并且b是偏置向量。在没有噪声的情况下,层前向传播的线性部分的激活函数应该是:
f(Wx+b)。
在添加前向传播噪声之后,激活函数变为:
f(Wx+b+Z),Z~N(0,σ2),其中,σ=β(Wx+b)
β是前向传播噪声的百分比。
在图6的曲线图600中可以看出前向传播噪声对训练和推断的影响。当在训练阶段期间或者在推断阶段期间添加不同水平的前向传播噪声时,测试使用包括MNIST手写数字数据库的测试数据的预测准确度。如曲线图600所示,随着前向传播噪声(水平轴线)增大,预测准确度(垂直轴线)快速降低。因此,减小了针对ANN所期望的前向传播噪声。曲线图600预测,前向传播噪声对训练操作的影响小于其对推断操作的影响。在训练操作期间,来自最后一层迭代的错误将在当前层迭代处得到补偿。对于推断操作而言,包括非标准化预测的最终logit向量在被送入softmax函数之前在最后一层中获得,以生成用于分类的标准化概率。由于来自先前层的前向传播噪声累积,该最终logit向量将具有误差。并且这些误差将导致分类准确度下降,如图600中可以看出。
在一些情况下,可以通过修改相关联的神经网络训练方法来减小前向传播噪声。然而,在本文的示例中,未修改神经网络训练,并且采用增强的流水线技术进行推断。该示例性流水线技术可以通过减少深层神经网络内的前向传播噪声来提高推断准确度。由于人工智能领域是非易失性存储器(NVM)的新兴应用,本文的这些流水线技术示例可以改善相关联神经网络的性能。流水线技术还可以减少总运行时间,如下文所讨论。
现在转向可用于实现增强人工神经网络的电路结构,呈现了图1。图1示出了示意图100,其中,存储器阵列110用作基于NVM阵列的突触权重阵列,并且外围电路用于实现深层神经网络中的一个或多个层。外围电路可以包括互连电路120和控制电路130,其包括示例性电路以至少互连并操作用于深层神经网络中的一个或多个层的突触权重阵列。在一个示例中,ANN的单个层可以包括由两个层形成且具有784×10的权重阵列大小的完全连接网络。该示例性权重阵列大小与输入神经元的784行和输出神经元的10列相对应。
图1中还示出了输入控制线163和输出控制线164,其包括用于访问存储器阵列110的控制线。采用输入控制线163来将数据引入到ANN的由存储器阵列110的人工神经元形成的每个层。采用输出控制线164来从ANN的每个层中读出结果数据。互连电路120包括各种互连电路,这些互连电路包括线驱动器、线、开关、感测放大器、模拟或数字累加器、模数转换电路、或用于驱动输入控制线163并且监视/读取输出控制线164上呈现的值的其他电路。互连电路120之间的互连电路包括在存储器阵列110的控制线之间制造的电连接件,以在对应NVM元件之间创建一个或多个ANN层,以及其他配置。互连电路120采用这些控制线来访问单独NVM元件,这些NVM元件可以进一步组织成存储页面等。在一些示例中,可以使用由互连电路120建立的逻辑或物理连接件来形成ANN的层之间的互连。在其他示例中,该互连可以替代性地发生在控制电路130中。在特定示例中,输入控制线可以包括NVM阵列的字线,并且输出控制线可以包括NVM阵列的位线。然而,当采用不同的存储器技术或不同于行/列配置的物理布置时,控制线163至164可以与其他布置相对应。例如,当采用人工神经元的非阵列配置时,或者当采用分立的存储器单元时,控制线可以耦接到单独的存储器单元。
控制电路130包括用于将输入数据引入到存储器阵列110并解译由存储器阵列110呈现的输出数据的各种电路和处理元件。电路和处理元件可以包括激活函数、softmax处理元件、logit向量平均电路、前向传播噪声降低函数电路和存储电路。控制电路130可以通过控制线161向互连电路120提供指令、命令或数据。控制电路130可以通过线162接收由存储器阵列110确定的结果数据。互连电路120可以对由输出控制线164呈现的信令应用任何调整或信号解译,然后将其传输到控制电路130。输出数据可以通过链路160传送至一个或多个外部系统,诸如主机系统。此外,输入数据可以在ANN的训练或推断之前通过链路160从一个或多个外部系统得到。
控制电路还可以包括一个或多个存储器元件或存储元件,在图1中由存储器131指示。存储器131可以包括易失性或非易失性存储器设备或存储器空间。在一个示例中,存储器131用作输出缓冲器以存储用于ANN的人工神经元的突触权重。在将输入数据引入到ANN层之前,控制系统130可以将这些突触权重加载到存储器阵列110的NVM元件中。存储器131还可以被配置为存储输入数据和输出数据。该输出数据可以包括由ANN的输出层产生的引入到softmax过程之前的单独logit向量。此外,在通过softmax过程对logit向量进行归一化处理之后,存储器131可以存储输出概率。在下文的示例中,讨论了ANN流水线技术,并且存储器131可以存储用于ANN流水线的中间值和最终值。
存储器阵列110包括存储器设备(具体地讲,非易失性存储器设备)的阵列。在该示例中,这些NVM设备包括忆阻器类存储器设备,诸如忆阻器、ReRAM、MRAM、PCM或其他设备技术。存储器设备可以连接到可使用所选字线和位线访问的存储器设备的行和列的阵列中。然而,可以使用输入控制线163和输出控制线164来采用并访问其他存储器单元布置。存储器阵列110可以用于实现人工神经网络的单层,或者相反可以实现多层ANN。ANN的每一层均由多个节点或人工神经元构成。每个人工神经元与存储器阵列110中的至少一个NVM元件相对应。在操作中,存储器阵列110中的单独NVM元件存储由控制电路130从存储器131中加载的突触权重,至少通过训练操作建立该突触权重值。
图1还包括在存储器阵列110内形成的示例性多层ANN 140,如配置101中所示。ANN140的每一层均由多个节点或人工神经元构成。每个人工神经元与存储器阵列110中的至少一个NVM元件相对应。ANN 140包括输入层141、一个或多个隐藏层142至144、以及输出层145。将输入值呈现给输入层141,以用于通过一个或多个隐藏层142至144进行传播和处理,并且最终由输出层145将其呈现为输出值。可以将传播和处理操作称为推断操作,其通常在训练过程建立将由每层的人工神经元存储的突触权重之后发生。
如本文所用,层是指在ANN互连方案中共享类似数据传播时期或阶段的任何节点集合或组。例如,层的节点通常关于前层和后续层共享类似的连接特性。然而,在某些实施方案中,ANN中的分层可以是ANN的节点的逻辑组织,其中,层可以根据ANN的拓扑结构、大小和具体实施的变化而变化。输入层包括人工神经网络的第一层,该第一层接收输入数据、输入值、或用于引入到ANN的输入向量。通常,输入层将具有与输入值/向量的大小或长度相对应的输入节点数量。然后,这些输入节点将根据连接样式(诸如,完全连接或部分连接等)连接到后续层。将位于输入层和输出层之间的层称为中间层或“隐藏”层。由于隐藏层和隐藏节点相对于外部系统是隐藏的,或者无法从外部系统中直接访问隐藏层和隐藏节点以获得输入或输出,因此将隐藏层和隐藏节点称为是“隐藏的”。各种互连样式(诸如,完全连接或部分连接)也可以用于隐藏层中的节点。最后,输出层包括ANN的节点的最终层或最后一层,其从最后的隐藏层或最后的中间层接收值并且将这些值呈现为来自ANN的输出。输出层中的节点的数量通常与输出值的大小或长度相对应。通常将这些输出值称为logit或logit向量,并且这些输出值与在推断过程已经通过各种隐藏层传播之后由ANN进行的预测有关。可以在附加层中进一步处理logit向量,通常将该附加层称为softmax层,该层根据预定输出比例尺(诸如,从0到1的概率比例尺等)来对logit向量进行缩放。
在一个示例性操作中,可以以非流水线方式操作ANN 140。在该非流水线示例中,将单个输入数据实例引入到输入层141处,并且在输出层145处呈现输出值之前通过隐藏层对其进行传播。输出层145可以将该输出值传递给任选的softmax过程或softmax层,该softmax过程或softmax层对输出值进行归一化处理,然后将其作为预测结果传输到外部系统。通过ANN 140传播该单个输入数据实例的总时间花费“m”个时间步长,ANN 140的每个层一个时间步长。然而,通过ANN 140传播单个输入实例可能导致来自每个ANN 140层的输出值中的前向传播噪声的影响增大。
还可以以增强的流水线方式操作ANN 140。配置101示出了ANN 140的流水线操作。在配置101中,已经建立了几个层,这些层包含一个或多个人工神经元。这些层可以包括输入层141、一个或多个隐藏层142至144、以及输出层145。这些层之间的互连可以根据具体实施而变化,并且流水线技术可以适用于各种量的层互连。
在流水线操作中,可以作为推断操作的一部分通过ANN 140的各个层传播特定输入值。然而,可以将该输入值的一个以上的实例迭代地引入到输入层141。具体地讲,控制电路130不止一次地向输入层141呈现输入值。ANN 140针对通过ANN 140传播的输入值的每个实例或迭代生成输出值。如配置101中所示,输出值T1、T2和Tn可以来自向ANN 140引入目标次数的相同输入值。然而,即使输出值T1、T2和Tn来自相同的输入值,输出值T1、T2和Tn通常也会变化。这种变化部分地归因于可出现在ANN 140的各层之间的电路中的前向传播噪声引起。
尽管控制系统130或一个或多个外部系统可以采用每个输出值,但在本示例中,采用了降噪函数150。降噪函数150存储或缓冲根据特定输入值产生的每个输出值,其可能跨越相同输入数据的几个实例或迭代。在目标量的迭代完成之后,降噪函数150执行降噪过程,以至少减少输出值中的前向传播噪声。因此,降噪函数150产生针对ANN 140的降噪结果。
如本文所用,降噪函数是指执行降噪功能的数字、光学或模拟电信号噪声降低过程、函数或特征以及相关联电路、电路元件、软件元件等的样式、形式或类型。在一个示例中,降噪函数包括跨多于一个的输出值或多于一组的输出值应用的平均函数。在某些示例性降噪函数中,可以对输出值应用各种加权或缩放以随时间推移优先考虑一个或多个输出值。其他降噪函数可以包括但不限于各种噪声滤波器、“压扩”(压缩/扩展)函数、噪声限制器函数、线性或非线性滤波器、平滑滤波器、高通或低通滤波器、高斯滤波器、平滑滤波器、小波滤波器、统计滤波器、基于机器学习的滤波函数或非等向性扩散等。
现在转向对图1的元件的操作的附加讨论,呈现了图2。图2是示出操作人工神经网络的方法的流程图200。在图2中,操作与图1的元件相关。然而,图2的操作可以适用于本文所讨论的任何具体实施等。
在操作中,控制电路130将输入值传送(201)到人工神经网络(ANN)140的输入层141。输入值可以包括图像数据或图像数据的一部分以及待由ANN 140处理的其他数据的数字表示。ANN 140可以根据突触权重以及在被称为推断的过程中形成ANN 140的多个层的神经连接来处理该输入值。为了发起该推断过程,控制电路130通过链路161传输输入值,以呈现给包括形成在存储器阵列140中的输入层141的人工神经元。互连电路120在输入控制线163的与输入层141中的NVM元件相对应的至少一部分上将输入值呈现为输入电压的向量。输入电压可以根据存储器阵列技术的要求而变化,但通常包括输入值的二进制表示。
控制电路130和互连器继续呈现(202)输入值用于目标量的迭代。每次迭代包括输入数据通过输入层141传播到ANN 140的后续层(诸如,图1中的隐藏层142)的时间段。因此,将以串行方式,向ANN 140呈现用于预定量的实例的相同输入值。实例的数量可以基于应用、基于结果中的期望降噪量、或者基于ANN 140的各个层的预期噪声水平而变化。下文将呈现对选择输入值实例量的进一步讨论。
ANN 140通过ANN 140的隐藏层传播(203)连续的输入值迭代。如图1中所见,在ANN140中在输入层141和输出层145之间包括至少一个隐藏层。输入层141对输入值进行操作,并将来自输入层141的中间结果传递给第一隐藏层,诸如隐藏层142。如果包括多于一个的隐藏层,则每个隐藏层对来自先前层的中间结果进行操作,并且将进一步的中间结果传播到另一后续层。一旦在传播过程中到达输出层145,则输出层145可以呈现输出值,该输出值是通过ANN 140针对输入值的特定实例进行操作和传播而产生的。
然而,图1的配置101中的ANN 140的简化视图是ANN 140的操作的逻辑图示。在示意图100中,特定具体实施可以与配置101中所示的具体实施不同。具体地讲,每层均由包括NVM存储器元件的人工神经元的集合形成。每层将具有对应的一组输入控制线和输出控制线,以用于访问该层的NVM存储器元件。将输入值或中间值呈现在每层的输入控制线上,并且将中间结果或输出值呈现在每层的输出控制线上。互连电路120和控制电路130操作以向输入控制线163中的层特定输入控制线上的每个层呈现值,并且从输出控制线164中的层特定输出控制线上的每个层接收值。因此,可以使用单独的NVM元件组以及相关联的控制线来构建配置101中所见的结构。
每个单独的层将处理在相关联输入控制线上引入的层特定输入值,以在相关联的输出控制线上产生层特定结果。层特定结果将在一定程度上取决于层之间的连通性,该连通性由互连电路120和控制电路130中的互连配置建立。层特定结果还将在一定程度上取决于存储在单独的NVM元件中的突触权重。用于每层的突触权重由控制电路130编程,例如来自存储在存储器131中的突触权重。当采用电阻式存储器元件时,可以将突触权重存储为电导值或电导状态,其包括存储在每个NVM存储器元件中的存储器值。每个NVM元件可以具有来自前层的多个输入连接,其由对应输入控制线上的输入电压表示。因此,通过对用于每个NVM元件的对应输入控制线上的输入电压和存储的突触权重进行向量矩阵乘法计算来进行每层中的前向传播操作。该向量矩阵乘法结果作为模拟电流值呈现在该层的输出控制线上。
互连电路120和控制电路130中的电路元件将接收到的模拟格式的输出控制线电流转换为数字表示。首先,输出控制线可以耦接到感测放大器电路,以将电流转换为电压表示。然后,模数转换器(ADC)电路可以将电压表示转换为数字表示。诸如当当前数字表示包括来自输出层145的用于ANN 140的输出值时,可以对这些数字表示执行各种操作。另外,可以应用各种激活函数。如果数字表示与中间层(诸如,隐藏层)相对应,则数字表示可以呈现在后续层的输入控制线上,以用于通过该后续层进行传播操作。噪声可由上文所讨论的层互连和中间值感测/转换过程中涉及的任何电路元件引入。该噪声包括前向传播噪声,并且可能降低由ANN 140产生的最终结果的准确度。
为了降低前向传播噪声的影响,采用配置101中所示的流水线方法。该流水线方法产生几个输出值(T1、T2、…Tn),这些输出值均可因输入值的每个连续实例遭遇的前向传播噪声变化而变化。控制电路130接收这些输出值,并且通过对由ANN 140的输出层145呈现的值应用降噪函数150来确定(204)结果。该结果包括噪声减少的结果,其对输出值T1、T2…Tn应用降噪函数。在一些示例中,降噪函数包括对根据特定输入值得到的所有输出值应用的平均函数。然而,降噪函数可以是根据各种因素(诸如,用于每个实例的估计噪声、层之间采用的互连级别、用于每层的层神经元数量、ADC电路中的预期噪声水平、或其他因素,包括它们的组合)在不同输出值实例之间分配权重或置信水平的另一函数。
然后可以传输该噪声减少的结果,以用于各种应用中。例如,在将图像数据用作输入值时,该结果可以用于机器学习应用、图像处理或图像识别应用、或者其他应用中。此外,结果可以是部分结果,其与来自通过ANN 140流水线化的其他输入值的其他结果组合。
在进一步的操作中,控制电路130可以针对输入数据或输入值的每个实例选择通过人工神经网络进行传播的目标量。例如,控制电路130可以被配置为选择用于平均函数的目标传播量以使人工神经网络的前向传播噪声低于阈值水平。控制电路130可以被配置为选择连续实例的量以在结果中减少前向传播噪声并且至少达到目标推断准确度,或者选择目标量的迭代以在结果中减少人工神经网络的前向传播噪声并且达到目标推断准确度。在图6的曲线图601中可以看出与输入值的连续实例的目标量有关的示例性目标推断准确度,并且将在下文中更详细地讨论该示例性目标推断准确度。
现在转到人工神经网络的另一个具体实施,呈现了图3。图3,在ANN架构300的上下文中讨论了前向传播噪声的示例性源。ANN架构300采用组织成阵列的NVM存储器元件。该阵列采用可通过输入控制线和输出控制线访问的行和列布置。在该示例中,输入控制线包括字线341,并且输出控制线包括位线342。尽管控制线的其他配置也是可能的,但出于本示例的目的,将讨论字线/位线布置。
如本文所讨论,人工神经网络可以在硬件中实现。该硬件可以生成来自用于实现人工神经网络的相关联电路或设备的噪声。在具有几个完全连接层的人工神经网络中,通过对存储的权重和输入值进行向量矩阵乘法计算来在每个层中进行前向传播,其中,输入值来自呈现给输入层的输入值或者来自先前层的中间激活。
前向传播可以采用计算f(w*X+b)的数学形式,其中,f:包括以下项的激活函数:X:输入;w:突触权重;以及b:偏差。输入值通常由馈送到层的字线中的电压表示,并且存储的权重由权重存储器阵列中的电导状态或电导值表示。权重存储器阵列可以包括经由相关联的字线和位线耦接的NVM设备诸如忆阻器的阵列。以电流值的形式从位线中读出向量矩阵乘法。前向传播噪声可以至少由模数转换器(ADC)引入,该模数转换器将来自位线的当前层输出端连接到数字外围电路以及其他电路元件。在上述向量矩阵乘法之后可能出现失真结果,这在一定程度上是由在前向传递期间引入的该电路和设备噪声引起的。这种前向传播噪声可能损害ANN的推断准确度。
现在转到对图3的元件的讨论,架构300包括形成人工神经网络的多个层((1)至(n)层)。层之间的互连可以由各种外围电路实现,为了清楚起见,图3中未示出这些外围电路。这种互连包括耦接到层输入线340和层输出线346。在每一层上均发现对应的输入线和输出线。当耦接在一起时,这些层可以形成类似于图1的配置101中所见的人工神经网络,但各种变型也是可能的。
图3中示出了单独示例性层的元件。具体地讲,层301包括字线解码器和驱动器数模转换器(DAC)311、非易失性存储器(NVM)突触权重阵列312、列多路复用器(MUX)313、模拟或数字累加电路314、多位感测放大器或模数转换器(ADC)315、及激活函数316。图3中示出了层内互连链路341至345,其可以根据数量和信号配置的具体实施而变化。
字线解码器和驱动器数模转换器(DAC)311当在输入层上使用时通过链路340从ANN的前层接收输入数据,或者从控制系统接收输入数据。当以模拟格式接收时,可以包括DAC以将该模拟格式转换为用于驱动字线341的数字电压。可以包括字线解码器元件以驱动与当前层相关联的特定字线。当采用大存储器阵列(诸如,NVM阵列)时,许多层可以共享相同的NVM阵列。NVM阵列的存储器元件的子集可以与单独的层相对应,因此,字线解码器可以使用地址或控制信号来仅驱动在特定层的对应字线上的输入值。
非易失性存储器(NVM)突触权重阵列312包括存储器元件(诸如,电阻式存储器元件、忆阻器、MRAM元件、PCM元件等)的阵列。此外,NVM突触权重阵列312的存储器元件被配置为存储与ANN的特定层的突触权重相对应的值。可以在控制系统进行推断操作之前,预先加载这些值。突触权重可以在由控制系统发起的针对相关联ANN的训练过程期间确定,或者可以通过软件模型或算法过程来建立。每个层可以具有对应的一组突触权重。突触权重是指两个人工神经元(也称为节点)之间的连接的强度或幅度。突触权重与生物神经元对另一个生物神经元的激发的影响程度相对应。
在读取操作中采用列多路复用器(mux)313来为每一层选择NVM突触权重阵列312的位线。列多路复用器313可以在位线342中进行选择,以呈现从链路343上的所选位线读取的值。模拟或数字累加电路314从列多路复用器313接收链路343上的读取值,并且可以在由多位感测放大器或模数转换器(ADC)315将值转换成数字格式之前临时缓冲或存储该值。当采用感测放大器时,感测放大器可以感测在位线上呈现的读取值并且将通过链路344接收到的这些读取值调整或转换为逻辑电平,执行电流到电压转换过程或调整读取值,以及其他操作。ADC可以将读取值的模拟表示转换为表示读取值的数字表示,诸如,由感测放大器部分转换的那些读取值。ADC可以通过链路345输出数字表示以用于输入到一个或多个激活函数316,或者在未采用激活函数316时,以用于输入到一个或多个后续层。
通常,激活函数为人工神经元(将其称为节点)提供行为定义。通过链路345接收到的数字表示可以用作向激活函数的输入,该输入定义每个人工神经元的输出。由于激活函数可以响应于输入定义人工神经元之间的行为,来自激活函数的任何结果被认为是人工神经元的输出。然后,激活函数的输出用于通过链路346驱动另一层人造神经元。当激活函数在最后一层或输出层上时,激活函数的输出可以被认为是ANN的输出。
在操作中,ANN的层将根据层连接件而互连,并且数据将通过ANN传播并且根据每个层和相关联节点的突触权重和激活函数而变化。图3的层可以根据图4中所示的示例来互连,但其他配置也是可能的。
图4示出了用于呈现完全连接的前馈神经网络的示例性过程。在前馈神经网络中,信息仅在于输入节点处开始的一个方向(前向方向)上移动,即,根据每个互连器/节点的权重和偏差通过任何隐藏节点传播,并且最终作为结果呈现在输出节点处。另外,在前馈神经网络中未采用循环动作或循环。该前馈神经网络的完全连接特性指示,每个前节点完全连接到所有后续节点,但其他配置也是可能的。每个节点可以表示神经元,并且可以包括如本文所讨论的NVM元件,诸如,忆阻器元件。
具体地讲,图4示出了示例性人工神经网络400中的节点连接件。ANN 400包括输入层410,隐藏层420、430和440,以及输出层450。将输入向量401传送到输入层410,以用于通过ANN 400进行传播和计算。输出层450呈现输出logit向量455。Logit向量455包括在通过ANN 400传播和计算输入向量401之后的未补偿输出值。Logit向量455可以直接用于另外的外部系统,而无需进行进一步处理。然而,在许多具体实施中,添加了被称为softmax层的另外处理层。Softmax层480可以以期望输出比例尺(诸如,从0到1的概率比例尺等)对logit向量455进行缩放。另外,在本文所述的示例中,可以采用平均函数470,并且将在下文中讨论该平均函数。
如本文所提及的,节点各自包括人工神经元,并且由图4中的节点460表示。人工神经网络400包括完全连接的人工神经网络,其中,当前层中的每个节点经由层连接件461连接到前层中的每个节点并且连接到后续层中的每个节点。用于每个节点的突触权重值指示节点相对于彼此应该接收到多大强度(或“权重”)的输入连接。较强的权重值指示连接是节点中的较大考虑因素,较弱的权重值指示连接是节点中的较小考虑因素。因此,每个节点与相邻层中的节点的连接具有强度谱,诸如,较强连接和较弱连接。然后,与每个节点相关联的激活函数指示每个节点如何响应已根据对应突触权重进行加权的输入值。然后,每个节点将输出呈现在其与后续层之间的连接件上。输入节点的特殊之处在于,输入节点接收用于ANN的输入数据,并且不接收其与前层之间的连接件上的输出数据。同样,输出节点呈现来自ANN的输出,并且不在其与后续层之间的连接件上呈现该输出数据。
当在本文所述的流水线技术中使用时,相同输入向量401可以被呈现给ANN 400,以用于进行多于一次的迭代。当ANN 400在输出层450上生成输出logit向量455时,平均函数470可以在相同输入向量的迭代过程中缓冲每个logit向量455。一旦预定量的迭代完成通过ANN 400进行的传播和计算,则可以将噪声减少的结果呈现给softmax层480。在图4中,将噪声减少的结果计算为用于特定输入向量的所有logit向量455的平均值。
在ANN 400的推断操作(其由图4中的传播和计算操作指示)之前,必须首先进行ANN 400的训练。人工神经网络的训练包括确定用于每个节点的参数(权重、偏差)以最小化成本(预测误差、损失)。前馈神经网络的训练操作可以包括前向传播、成本计算、后向传播、参数更新的操作。然后,推断操作包括基于训练参数(权重、偏差)使用人工神经网络进行预测。推断操作包括:前向传播,然后将输出logit馈送到“softmax”层,指示预测。本文所述示例集中于来自电路和设备级别的前向传播噪声,其可以影响训练阶段和推断阶段两者。
图5示出了根据具体实施的用于人工神经网络的流水线技术。在图5中,分解的流水线配置500被示出为包括通过人工神经网络(诸如,ANN 540)执行的时间实例。类似的技术可以应用于本文所讨论的任何ANN。
在图5中,首先将可包括输入图像的输入数据呈现给输入层541,以用于在推断操作期间通过ANN 540传播。以预定量的实例,将相同输入图像呈现给输入层541,在该示例中为三个实例。当通过隐藏层542至545并最终通过输出层546传播数据时,发生推断操作。由ANN 540将三个输出值实例生成为logit向量,并且对这三个logit向量求取平均值以产生结果。在应用任何softmax函数或softmax层之前确定该结果。该结果还与噪声减少的结果相对应,通常具有比任何单独logit向量更低的前向传播噪声。
在推断过程中,本文所示示例针对每个输入图像运行深层神经网络“k”(k>1)次,并且在将logit向量噪声馈送到最终softmax层以获得最终预测概率之前,针对“k”次输出求取logit向量噪声平均值。具体地讲,求取输出层(在最终softmax层之前)处的logit向量的平均值以获得最终预测概率。因此,每个图像输入可以运行“k”次,而不是仅运行1次,以提高最终预测概率的准确度。
为了减少总运行时间,在图5中呈现了一种流水线方法。假设神经网络中存在“n”个隐藏层,则需要n+1个时间步长来完成针对一个输入图像数据的一次运行。为了减少使用流水线方法将每个输入图像运行“k”次的总运行时间,该流水线方法在进行第m层的第r次运行时开始执行第(m-1)层的第(r+1)次运行。在这种流水线场景下,人工神经网络只需要n+k个时间步长来在具有“n”个隐藏层的人工神经网络上将输入图像运行“k”次。在不使用增强流水线技术的情况下,人工神经网络将需要(n+2)*k个时间步长来运行输入图像。有利地,在使用增强流水线技术的情况下,神经网络需要n+k+1个时间步长来运行输入图像,以产生噪声减少的结果。
继续关于人工神经网络中的流水线技术的讨论,这种增强的流水线技术不同于其他计算流水线技术。经由输入层将数据引入到人工神经网络流水线。在神经网络流水线内使用预定数量“n”个内部隐藏层,在这些隐藏层之后是输出层。隐藏层的数量“n”可以基于神经网络的应用、实现、复杂性和深度来选择,并且可以与图5中所示的层数量不同。当通过人工神经网络流水线的每个隐藏层传播输入数据(诸如,输入图像)时,继续将该相同数据重新引入到输入层。针对所选运行时间,继续将该相同数据引入到流水线的输入层。
所选运行时间或运行周期用于将相同输入数据应用于神经网络流水线以减少前向传播噪声。在本文的示例中,量“k”用于概括相同输入数据在人工神经网络流水线上的顺序输入或“运行”次数。可以基于期望准确度或者基于预期前向传播噪声水平来选择数量“k”。
图6的曲线图610示出了使用各种“k”值的示例运行,其中准确度通常随“k”值增大而得到改善。然而,附加运行可以与附加总运行时间相对应。因此,可以选择期望准确度水平,并且可以选择运行次数“k”以产生该准确度水平。曲线图610指示在不同前向传播噪声水平下使用流水线方法对MNIST分类准确度的改善情况。在推断阶段添加不同水平的前向传播噪声时,并且在每个输入图像运行不同次数时,测试预测准确度。在曲线图610中,示出了注射有不同百分比前向传播噪声的测试噪声的示例性结果。可以看出,通过使用流水线方法可以降低各种前向传播噪声水平,其中,在所有情况下,大量次数的运行与更准确的结果相对应。
曲线图610的该特定测试场景在用于MNIST分类的一层完全连接的神经网络上运行。神经网络运行“k”次,以在softmax层之前求取logit向量的平均值。通过使每个图像仅运行一次,可以看出在大噪声处推断准确度大幅下降,这由曲线图610的曲线中的第一数据点所指示。通过使用流水线方法使每个图像运行更多次,准确度可以得到提高,如图中可以看出。在通过将每个输入图像运行“k”(k>1)次来使用流水线方法之后,当“k”(运行次数)增大时,分类准确度快速提高。
如上文针对曲线图600所提及的,可以使用在推断处的前向传播期间添加的不同水平的高斯噪声来进行测试预测。离线训练权重,并在运行推断之前已经将其编程到存储器阵列中。曲线图600示出了分类准确度随噪声水平升高的下降趋势。在曲线图600中,将针对特定输入值运行的推断数量固定为1。然而,曲线图601示出了使用本文所讨论的流水线方法得到的结果。在通过将每个输入图像运行k(k>1)次来使用流水线方法之后,当k(运行次数)增大时,分类准确度快速提高。曲线图601指示,k=5足以使准确度提高到期望值,但可以使用更多的运行次数,以获得更大的准确度。
通过使用流水线方法,图像数据的每个实例在网络上运行“k”(k>1)次,并且可以通过对来自“k”次运行的结果求取平均值在统计学上最小化噪声效果。该流水线方法可以提高分类准确度,同时将推断运行时间保持为相对较短。作为流水线技术的另一个示例,针对每个输入图像在深层神经网络上运行推断过程“k”(k>1)次,以在将噪声logit向量馈送到最终softmax层以获得最终预测概率之前,对其求取平均值。
例如,当将“k”选择为6时,则针对相同输入数据向输入层进行六次循环的数据引入。在该示例中,可以采用四(4)个隐藏层,即,“n”值为4。在神经网络流水线的连续循环中引入相同输入数据,即,在该示例中,引入六次。当数据通过神经网络流水线的四个隐藏层传播时,最终在输出层处获得六个不同的输出值。该时间帧约为6+4=10(即,约k+n)次循环或时间步长。
即使向神经网络流水线引入相同输入数据,六个不同输出值也可能彼此不同。这种变化可能是由神经网络中固有的前向传播噪声以及其他噪声源引起的。缓冲或以其他方式保持输出值,直到通过神经网络流水线完成10次循环。一旦完成所有10次循环,则对六个不同输出值求取平均值以形成结果。该结果包括来自六个输出值的平均输出值,其来自引入到神经网络流水线中的相同输入数据。
因此,本文所讨论的神经网络流水线组合通过所选“k”次运行得到的许多输出值(诸如,上文提及的六个输出值),而不是像许多计算流水线中所做的那样,将单独的输出值作为独立结果传送。可以对用于相同输入数据的所有输出值应用平均函数或其他数学函数以建立结果。结果中的前向传播噪声有利地减少了。
许多现代机器学习硬件应用专注于推断或边缘机,并且许多网络在GPU或TPU中离线训练。有利地,本文所示的示例可以使用流水线技术来在推断期间容忍前向传播噪声。在推断过程中,本文所示示例针对每个输入图像运行深层神经网络“k”(k>1)次,以在将噪声logit向量馈送到最终softmax层以获得最终预测概率之前,对其求取平均值。为了减少总运行时间,呈现了一种流水线方法。假设我们的深层神经网络中具有“n”个隐藏层,我们需要n+1个时间步长来完成一个输入图像的一次运行。因此,为了节约使用流水线方法将每个输入图像运行“k”次的总运行时间,我们在进行第m层的第r次运行时开始执行第(m-1)层的第(r+1)次运行。在这种流水线场景下,我们只需要n+k个时间步长来在具有“n”个隐藏层的深层神经网络上将输入图像运行“k”次。
如本文所讨论的,在硬件中实现机器学习可以预料来自电路或设备的许多噪声源。本文所示示例可以涉及可由外围电路引起的前向传播噪声。对于神经网络的训练而言,相比于前向传播噪声,其可以更好地容忍权重更新噪声。两种噪声类型均会很大程度地损害训练性能。推断包括使用经训练的神经网络来基于输入数据确定预测。本文呈现了一种流水线方法,以针对至少推断操作解决并转发传播噪声问题。
本文所示示例讨论了用于增强的人工神经网络以及相关联的人工神经元电路的各种示例性结构、布置、配置和操作。一个示例性布置包括使用流水线技术来减少前向传播噪声。在推断操作中,针对每个输入图像运行流水线神经网络“k”次,以在将前向传播噪声馈送到最终层以获得最终预测概率之前,对其求取平均值。具体地,求取出在神经网络的输出层处呈现的logit向量的平均值,以得到前向传播噪声减小的最终预测概率。
另一个示例性布置包括使用流水线神经网络来提高结果生成速度。在不使用增强流水线技术的情况下,具有“n”个隐藏层的完全连接的神经网络可能需要(n+2)*k个时间步长来运行,其中针对每个输入图像运行神经网络“k”次。有利地,在使用增强流水线技术的情况下,神经网络仅需要约(n+k)个时间步长来运行。因此,本文所述的流水线神经网络针对一个输入图像运行多次,并且使用流水线技术来减少总运行时间。
在一个示例性具体实施中,提供了包括前馈人工神经网络的电路。该前馈人工神经网络包括输入层、输出层以及输入层与输出层之间的“n”个隐藏层。输入电路被配置为将输入数据引入到输入层,以用于通过至少“n”个隐藏层传播。输出电路被配置为计算在输出层处呈现的用于输入数据的“k”logit向量的平均值,以产生结果。输入电路可以被进一步配置为将输入数据引入到输入层进行“k”次迭代,其中,“k”次迭代中的每次迭代包括等待直到先前引入的输入数据已经通过“n”个隐藏层中的至少一者传播。此外,可以提供操作示例性电路的方法。该方法包括:运行前馈人工神经网络以用输入数据进行“k”次迭代;以及对来自输入数据的在输出层处呈现的“k”个logit向量求取平均值,以减少与利用前馈人工神经网络处理输入数据相关联的前向传播噪声。
在另一个示例性具体实施中,包括前馈人工神经网络的电路包括输入层、输出层以及输入层与输出层之间的一个或多个隐藏层。输入控制电路被配置为将输入值的迭代引入到输入层,以用于至少通过一个或多个隐藏层传播。输出控制电路被配置为计算来自输入值的迭代的在输出层处呈现的输出值的平均值,以产生结果。包括输入控制电路的电路可以被配置为将输入值引入到输入层进行目标量的迭代,其中,目标量迭代中的每次迭代包括等待直到先前引入的输入值已经通过至少一个隐藏层传播。
示例性电路还可以包括耦接到输出层的存储器元件,该存储器元件被配置为至少存储来自目标量的迭代的输出值以用于计算平均值。包括输入控制电路的电路被配置为选择目标量的迭代,以减少结果中的前向传播噪声,并在结果中达到目标推断准确度。
在又一个示例性具体实施中,呈现人工神经网络。该人工神经网络包括:用于通过人工神经网络的至少一个隐藏层来实现目标量的相同输入值的实例的流水线的装置;用于产生从至少通过隐藏层传播的目标量的相同输入值的实例得到的一系列输出值的装置;以及用于对一系列输出值应用传播噪声降低函数以确定结果的装置。人工神经网络还可以包括用于以下操作的装置:选择目标量,以减轻人工神经网络的前向传播噪声并在结果中达到目标推断准确度。传播噪声降低函数可以包括平均化函数。
图7示出了计算系统701,其表示在其中可以实现本文所公开的各种操作架构、场景和过程的任何系统或系统集合。例如,计算系统701可以用于实现:图1的控制系统130、互连电路120、或主机系统;图4的平均函数470或softmax层480;或本文所讨论的控制电路或降噪函数的任何其他实例。此外,计算系统701可以用于将突触权重存储并加载到NVM阵列中,可以用于配置互连电路以建立人工神经网络的一个或多个层,并且可以用于通过训练操作确定突触权重。在另外的示例中,计算系统701可以完全实现人工神经网络(如图4或图5中所示),以创建具有减小的噪声行为的至少比部分地由软件实现的人工神经网络。计算系统701可以实现本文所讨论的任何流水线操作,其中,使用硬件部件、或软件部件、或它们的任何组合来实现。
计算系统701的示例包括但不限于计算机、智能电话、平板计算设备、膝上型电脑、台式计算机、混合计算机、机架式服务器、web服务器、云计算平台、云计算系统、分布式计算系统、软件定义的联网系统和数据中心装备,以及任何其他类型的物理或虚拟机,以及其他计算系统和设备,以及它们的任何变型或组合。
计算系统701可以被实现为单个装置、系统或设备,或者可以以分布式方式实现为多个装置、系统或设备。计算系统701包括但不限于处理系统702、存储系统703、软件705、通信接口系统707和用户界面系统708。处理系统702与存储系统703、通信接口系统707和用户界面系统708操作地耦接。
处理系统702从存储系统703加载并执行软件705。软件705包括人工神经网络(ANN)环境720,其表示相对于前述附图讨论的过程。当被处理系统702执行以实现并增强ANN操作时,软件705指示处理系统702如本文至少针对前述具体实施中讨论的各种过程、操作场景和序列所述的那样进行操作。计算系统701可以任选地包括为简洁起见而未讨论的附加设备、特征或功能。
仍参考图7,处理系统702可以包括微处理器以及从存储系统705检索并执行软件703的处理电路。处理系统702可以在单个处理设备内实现,但也可以分布在协作执行程序指令且协作执行本文所讨论的操作的多个处理设备、子系统或专用电路中。处理系统702的示例包括通用中央处理单元、专用处理器和逻辑设备,以及任何其他类型的处理设备、它们的组合、或它们的变型。
存储系统703可以包括可由处理系统702读取并且能够存储软件705并且能够任选地存储突触权重710的任何计算机可读存储介质。存储系统703可以包括以用于存储信息(诸如,计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性介质和非易失性介质、可移除介质和不可移除介质。存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘、闪存存储器、虚拟存储器和非虚拟存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备、电阻式存储设备、磁随机存取存储器设备、相变存储器设备、或任何其他合适的非暂态存储介质。
除计算机可读存储介质之外,在一些具体实施中,存储系统703还可以包括计算机可读通信介质,软件705中的至少一些可以通过该计算机可读通信介质在内部或外部进行通信。存储系统703可以被实现为单个存储设备,但也可以被实现为相对于彼此协同定位或分布的多个存储设备或子系统。存储系统703可以包括能够与处理系统702或可能的其他系统进行通信的附加元件,诸如控制器。
软件705可以在程序指令以及其他函数中实现,该程序指令以及其他函数被处理系统702执行时,指示处理系统702如相对于本文所示的各种操作场景、序列和过程所述的那样进行操作。例如,软件705可以包括用于以下操作的程序指令:用于使用输入数据的多个实例的增强流水线ANN操作,以减少ANN结果中的噪声;以及其他操作。
具体地讲,程序指令可以包括协作或以其他方式交互以执行本文所述的各种过程和操作场景的各种部件或模块。可以以编译或解译的指令或者指令的一些其他变型或组合来体现各种部件或模块。可以以同步或异步方式,串行或并行地,在单线程环境或多线程环境中,或者根据任何其他合适的执行范例、变型或它们的组合,来执行各种部件或模块。除包括ANN环境720之外,软件705可以包括附加过程、程序或部件,诸如操作系统软件或其他应用软件。软件705还可以包括固件或可由处理系统702执行的一些其他形式的机器可读处理指令。
一般来讲,在被加载到处理系统702中并且被执行时,软件705可以将合适的装置、系统或设备(其中,计算系统701是代表性的)整体地从通用计算系统转化为专用计算系统,该专用计算系统被定制成促进使用输入数据的多个实例的增强的流水线ANN操作,以减少ANN结果中的噪声。实际上,存储系统703上的编码软件705可以转化存储系统703的物理结构。物理结构的特定转化可以取决于本说明书的不同具体实施中的各种因素。这些因素的示例可以包括但不限于:用于实现存储系统703的存储介质的技术;计算机存储介质是被表征为主存储装置还是被表征为辅助存储装置;以及其他因素。
例如,如果计算机可读存储介质被实现为基于半导体的存储器,则诸如通过转化晶体管、电容器、或构成半导体存储器的其他分立电路元件的状态,软件705可以在其中编码程序指令时转化半导体存储器的物理状态。对于磁介质或光学介质,可以发生类似的转化。在不脱离本说明书的范围的情况下,物理介质的其他转化也是可能的,提供上述示例仅为了便于对本发明的讨论。
ANN环境720包括一个或多个软件元件,诸如OS 721和应用722。这些元件可以描述计算系统701的各种部分,人工神经网络或外部系统的元件可以与其进行交互或相互作用。例如,OS 721可以提供其上执行应用722的软件平台,并且允许使用输入数据的多个实例的增强流水线ANN操作以减少ANN结果中的噪声。
在一个示例中,NVM阵列服务724实现并执行ANN的训练操作,以确定用于人工神经元的突触权重。NVM阵列服务724可以与NVM元件进行交互以加载并存储用于在推断操作中使用的突触权重。此外,NVM阵列服务724可以在NVM元件之间建立层,以诸如通过控制互连电路来实现ANN的层和节点。在其他的示例中,NVM阵列服务724从中间层或隐藏层接收中间值,并且将这些中间值提供给后续层。
在另外的示例中,ANN流水线服务725控制如本文所述的流水线ANN的操作。例如,ANN流水线服务725可以针对ANN的层实施一个或多个激活函数。ANN流水线服务725还可以在对输入到流水线ANN的单个值进行推断之后缓冲输出值。ANN流水线服务725可以将一个或多个降噪函数(诸如,平均函数)应用于缓冲的输出值,以产生噪声减少的结果。ANN流水线服务725还可以实现softmax层或softmax函数。此外,ANN流水线服务725可以基于用于引入到ANN的输入值的目标量迭代来确定用于噪声水平的阈值。ANN流水线服务725还可以从一个或多个外部系统接收输入值以用于引入到流水线ANN,并且向一个或多个外部系统提供噪声减少的结果。
通信接口系统707可以包括通信连接件和设备,其允许通过通信网络(未示出)与其他计算系统(未示出)进行通信。通信接口系统707还可以与硬件实现的ANN的一部分进行通信,诸如,与ANN的各层、NVM实现的权重阵列、或其他ANN电路进行通信。一起允许系统间通信的连接件和设备的示例可以包括NVM存储器接口、网络接口卡、天线、功率放大器、RF电路、收发器、和其他通信电路。连接件和设备可以通过通信介质(诸如,金属、玻璃、空气、或任何其他合适的通信介质)进行通信,以与其他计算系统或系统网络交换通信或数据。
用户界面系统708是任选的,并且可以包括键盘、鼠标、语音输入设备、用于接收来自用户的输入的触摸输入设备。还可以将输出设备(诸如,显示器、扬声器、web接口、终端接口以及其他类型的输出设备)包括在用户界面系统708中。用户界面系统708可以通过数据接口或网络接口(例如,通信接口系统707)提供输出并接收输入。用户界面系统708还可以包括可由处理系统702执行的相关联用户界面软件,以支持上文所讨论的各种用户输入设备和输出设备。单独地,或者彼此结合和与其他硬件和软件元件结合,用户界面软件和用户界面设备可以支持图形用户界面、自然用户界面或任何其他类型的用户界面。
计算系统701与其他计算系统(未示出)之间的通信可以发生在一个或多个通信网络上,并且可以根据各种通信协议、协议的组合、或它们的变型发生。示例包括内联网、因特网、互联网、局域网、广域网、无线网络、有线网络、虚拟网络、软件定义的网络、数据中心总线、计算背板、或任何其他类型的网络、网络的组合、或它们的变型。前述通信网络和协议是众所周知的,这里不需要详细讨论。然而,可以使用的一些通信协议包括但不限于互联网协议(IP、IPv4、IPv6等)、传输控制协议(TCP)和用户数据报协议(UDP),以及任何其他合适的通信协议、变型、或它们的组合。
所包括的描述和附图描绘了教导本领域技术人员如何制作和使用最佳模式的具体实施方案。出于教导发明性原理的目的,已经简化或省略了一些常规的方面。本领域技术人员将理解来自落入本公开范围内的这些实施方案的变型。本领域技术人员还将理解,上述特征可以以各种方式组合以形成多个实施方案。因此,本发明不受上述具体实施方案的限制,而是仅受权利要求及其等同物的限制。
Claims (20)
1.一种电路,包括:
人工神经元,所述人工神经元包括具有非易失性存储器(NVM)元件的存储器阵列;
所述人工神经元之间的神经连接件,所述神经连接件包括互连电路,所述互连电路耦接到所述存储器阵列的控制线以将所述存储器阵列细分为人工神经网络的多个层;和
控制电路,所述控制电路耦接到所述互连电路并且被配置为:
在所述人工神经网络的第一层的输入控制线上传送输入值的多次迭代,以通过至少一个或多个附加层进行推断操作;以及
对来自所述输入值的每次迭代的在所述人工神经网络的最后一层的输出控制线上相继地呈现的输出值应用平均函数。
2.根据权利要求1所述的电路,所述控制电路被进一步配置为:
将模拟电压的向量传播到所述层的所述输入控制线,以通过所述层的对应人工神经元进行计算;以及
检测来自所述层的对应输出控制线的电流,以产生模拟电压的所述向量,以用于引入到连续层。
3.根据权利要求2所述的电路,其中至少将用于所述人工神经元的突触权重建立为所述NVM元件的电导状态。
4.根据权利要求2所述的电路,还包括:
感测放大器,所述感测放大器耦接到所述输出控制线,并且被配置为将所述电流转换成数字表示,以用于引入到确定针对所述连续层的向量的激活函数中。
5.根据权利要求1所述的电路,所述控制电路被进一步配置为传送所述输入值以实现通过所述人工神经网络的目标传播量,其中,在先前引入的所述输入值通过所述人工神经网络的至少第一层传播之后,发起所述目标量的每次迭代。
6.根据权利要求5所述的电路,包括:
所述控制电路,所述控制电路被配置为选择用于所述平均函数的所述目标量以使所述人工神经网络的前向传播噪声低于阈值水平。
7.根据权利要求1所述的电路,还包括:
缓冲器,所述缓冲器耦接到所述控制电路,并且被配置为存储所述多个输出值的logit向量表示,以用于输入到所述平均函数中。
8.根据权利要求1所述的电路,其中所述推断操作包括计算和前向传播操作。
9.一种人工神经网络,包括:
输入层;
输出层;
所述输入层与所述输出层之间的一个或多个中间层,每个中间层包括具有伴随节点连接件和突触权重的一个或多个节点;
控制电路,所述控制电路耦接到所述输入层,并且被配置为将多个连续的输入数据实例引入到所述输入层,以用于至少通过所述一个或多个中间层传播;和
所述控制电路耦接到所述输出层,并且被配置为至少基于将降噪函数应用于从所述输入数据的所述多个连续实例得到的在所述输出层处呈现的连续输出值来减少结果中的前向传播噪声。
10.根据权利要求9所述的人工神经网络,包括:
所述控制电路,所述控制电路被配置为将所述输入数据引入到所述输入层用于所述输入数据的目标量的迭代以通过所述人工神经网络传播,其中,在先前引入的所述输入数据通过至少第一中间层传播之后,发起所述目标量的迭代中的每次迭代。
11.根据权利要求9所述的人工神经网络,其中,所述降噪函数包括应用于所述连续输出值的平均函数。
12.根据权利要求9所述的人工神经网络,还包括:
耦接到所述输出层的输出缓冲器,所述输出缓冲器被配置为存储所述连续输出值的至少一部分,以用于输入到所述降噪函数中。
13.根据权利要求9所述的人工神经网络,包括:
所述控制电路,所述控制电路被配置为选择所述连续实例的量,以在所述结果中减少所述前向传播噪声并达到至少目标推断准确度。
14.根据权利要求9所述的人工神经网络,其中所述连续输出值中的每一者均包括引入到softmax过程之前的logit向量。
15.根据权利要求9所述的人工神经网络,其中所述一个或多个中间层中每一者的所述一个或多个节点包括非易失性存储器元件,所述非易失性存储器元件至少部分地基于所述非易失性存储器元件的电导值来存储所述突触权重并产生节点输出端,并且其中,所述节点输出端耦接到模数转换电路,以用于至少根据对应的节点连接件引入到所述一个或多个中间层的另外的实例,其中所述人工神经网络的所述前向传播噪声的至少一部分与所述模数转换电路相关联。
16.一种方法,包括:
通过目标量的迭代将输入值引入到人工神经网络的输入层,以用于通过所述人工神经网络的至少一个隐藏层传播;和
在所述输入值的所述目标量的迭代已经完成通过所述至少一个隐藏层进行的传播之后,通过对由所述人工神经网络的输出层呈现的logit向量应用降噪函数来确定结果。
17.根据权利要求16所述的方法,包括:
通过至少基于对从所述目标量的迭代中产生的所述logit向量求取平均值应用所述降噪函数来确定所述结果。
18.根据权利要求16所述的方法,其中,对所述结果进行计算,以减少与通过所述人工神经网络的所述至少一个隐藏层处理所述输入值相关联的前向传播噪声。
19.根据权利要求18所述的方法,还包括:
选择所述目标量的迭代,以在所述结果中,减少所述人工神经网络的前向传播噪声,并达到目标推断准确度。
20.根据权利要求16所述的方法,还包括:
在耦接到所述输出层的存储器元件中,至少存储来自所述目标量迭代的所述输出值,以用于输入到所述降噪函数中。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862693615P | 2018-07-03 | 2018-07-03 | |
US62/693,615 | 2018-07-03 | ||
US16/180,462 | 2018-11-05 | ||
US16/180,462 US20200012924A1 (en) | 2018-07-03 | 2018-11-05 | Pipelining to improve neural network inference accuracy |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110674933A true CN110674933A (zh) | 2020-01-10 |
Family
ID=68943811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910484591.7A Pending CN110674933A (zh) | 2018-07-03 | 2019-06-05 | 用于提高神经网络推断准确度的流水线技术 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200012924A1 (zh) |
CN (1) | CN110674933A (zh) |
DE (1) | DE102019116305A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114781633A (zh) * | 2022-06-17 | 2022-07-22 | 电子科技大学 | 一种融合人工神经网络与脉冲神经网络的处理器 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11880769B2 (en) * | 2018-11-14 | 2024-01-23 | Advanced Micro Devices, Inc. | Using multiple functional blocks for training neural networks |
US10777259B1 (en) * | 2019-05-17 | 2020-09-15 | Qualcomm Incorporated | Static random-access memory (SRAM) for in-memory computing |
US12026601B2 (en) * | 2019-06-26 | 2024-07-02 | Micron Technology, Inc. | Stacked artificial neural networks |
US10878315B1 (en) * | 2019-06-28 | 2020-12-29 | Arm Limited | Data converters and methods for memory arrays |
US20210073317A1 (en) * | 2019-09-05 | 2021-03-11 | International Business Machines Corporation | Performing dot product operations using a memristive crossbar array |
US12056602B2 (en) * | 2019-09-26 | 2024-08-06 | Qatar Foundation For Education, Science, And Community Development | Circuit for calculating weight adjustments of an artificial neural network, and a module implementing a long short-term artificial neural network |
US10877540B2 (en) * | 2019-10-04 | 2020-12-29 | Intel Corporation | Content adaptive display power savings systems and methods |
US11494629B2 (en) * | 2019-10-31 | 2022-11-08 | Qualcomm Incorporated | Charge-sharing compute-in-memory system |
US11620516B2 (en) * | 2019-12-23 | 2023-04-04 | Arm Limited | Specializing neural networks for heterogeneous systems |
US20210224636A1 (en) * | 2020-01-21 | 2021-07-22 | Pegah AARABI | System and method for interfacing a biological neural network and an artificial neural network |
US11785340B2 (en) * | 2020-03-16 | 2023-10-10 | Sony Semiconductor Solutions Corporation | Signal processing device, signal processing method, and parameter search method |
US11521085B2 (en) * | 2020-04-07 | 2022-12-06 | International Business Machines Corporation | Neural network weight distribution from a grid of memory elements |
US11556311B2 (en) | 2020-04-16 | 2023-01-17 | Sandisk Technologies Llc | Reconfigurable input precision in-memory computing |
CN111553415B (zh) * | 2020-04-28 | 2022-11-15 | 宁波工程学院 | 一种基于忆阻器的esn神经网络图像分类处理方法 |
CN111950719B (zh) * | 2020-08-14 | 2024-06-04 | 清华大学 | 基于忆阻器的信息处理电路以及信息处理方法 |
US11283008B1 (en) | 2020-08-31 | 2022-03-22 | Western Digital Technologies, Inc. | Apparatus and methods for magnetic memory devices with magnetic assist layer |
US11948053B2 (en) * | 2020-09-18 | 2024-04-02 | Megh Computing, Inc. | Inferencer graph for implementing machine learning model topology |
US20220101084A1 (en) * | 2020-09-29 | 2022-03-31 | International Business Machines Corporation | Pipelining for analog-memory-based neural networks with all-local storage |
US11393516B2 (en) | 2020-10-19 | 2022-07-19 | Western Digital Technologies, Inc. | SOT-based spin torque oscillators for oscillatory neural networks |
US20220137866A1 (en) * | 2020-11-02 | 2022-05-05 | Deepx Co., Ltd. | Memory device for an artificial neural network |
US20220138586A1 (en) * | 2020-11-02 | 2022-05-05 | Deepx Co., Ltd. | Memory system of an artificial neural network based on a data locality of an artificial neural network |
US11397544B2 (en) * | 2020-11-10 | 2022-07-26 | International Business Machines Corporation | Multi-terminal neuromorphic device |
CN113011585B (zh) * | 2021-03-19 | 2023-09-26 | 上海西井科技股份有限公司 | 消除拼接算子的编译优化方法、系统、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130289944A1 (en) * | 2012-04-25 | 2013-10-31 | Ghassan Ayesh | System and method for signal processing |
US9646243B1 (en) * | 2016-09-12 | 2017-05-09 | International Business Machines Corporation | Convolutional neural networks using resistive processing unit array |
CN107492108A (zh) * | 2017-08-18 | 2017-12-19 | 成都通甲优博科技有限责任公司 | 一种基于深度学习的骨架线提取算法、系统及存储介质 |
-
2018
- 2018-11-05 US US16/180,462 patent/US20200012924A1/en not_active Abandoned
-
2019
- 2019-06-05 CN CN201910484591.7A patent/CN110674933A/zh active Pending
- 2019-06-14 DE DE102019116305.6A patent/DE102019116305A1/de active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130289944A1 (en) * | 2012-04-25 | 2013-10-31 | Ghassan Ayesh | System and method for signal processing |
US9646243B1 (en) * | 2016-09-12 | 2017-05-09 | International Business Machines Corporation | Convolutional neural networks using resistive processing unit array |
CN107492108A (zh) * | 2017-08-18 | 2017-12-19 | 成都通甲优博科技有限责任公司 | 一种基于深度学习的骨架线提取算法、系统及存储介质 |
Non-Patent Citations (2)
Title |
---|
CHI ET AL.: "A Novel Processing-in-Memory Architecture for Neural Network Computation in ReRAM-Based Main Memory", 《2016 ACM/IEEE 43RD INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE》 * |
MERN ET AL.: "Layer-wise synapse optimization for implementing neural networks on general neuromorphic architectures", 《2017 IEEE SYMPOSIUM SERIES ON COMPUTATIONAL INTELLIGENCE》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114781633A (zh) * | 2022-06-17 | 2022-07-22 | 电子科技大学 | 一种融合人工神经网络与脉冲神经网络的处理器 |
Also Published As
Publication number | Publication date |
---|---|
US20200012924A1 (en) | 2020-01-09 |
DE102019116305A1 (de) | 2020-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110674933A (zh) | 用于提高神经网络推断准确度的流水线技术 | |
CN111656368B (zh) | 硬件加速的离散式神经网络 | |
US10692570B2 (en) | Neural network matrix multiplication in memory cells | |
US11501130B2 (en) | Neural network hardware accelerator architectures and operating method thereof | |
US10740671B2 (en) | Convolutional neural networks using resistive processing unit array | |
CN108009640A (zh) | 基于忆阻器的神经网络的训练装置及其训练方法 | |
Fouda et al. | Spiking neural networks for inference and learning: A memristor-based design perspective | |
CN111047031B (zh) | 用于神经网络中的数据重用的移位装置 | |
JP2021500646A (ja) | 人工ニューラル・ネットワークを訓練する方法および人工ニューラル・ネットワークを実施する装置(人工ニューラル・ネットワークの訓練) | |
US11087204B2 (en) | Resistive processing unit with multiple weight readers | |
AU2020274862B2 (en) | Training of artificial neural networks | |
US11620505B2 (en) | Neuromorphic package devices and neuromorphic computing systems | |
JP2021511566A (ja) | ニューロモーフィック・チップ、ニューロモーフィック・システム、ニューロモーフィック・チップ内のシナプス重みを更新するための方法およびコンピュータ・プログラム | |
US11562220B2 (en) | Neural processing unit capable of reusing data and method thereof | |
US20210383203A1 (en) | Apparatus and method with neural network | |
KR20230005309A (ko) | 아날로그 인공지능 네트워크 추론을 위한 행별 컨볼루션 신경망 매핑을 위한 효율적 타일 매핑 | |
KR20210143614A (ko) | 뉴럴 네트워크를 구현하는 뉴로모픽 장치 및 그 동작 방법 | |
US20210064974A1 (en) | Formation failure resilient neuromorphic device | |
US20220019877A1 (en) | Sparse modifiable bit length determinstic pulse generation for updating analog crossbar arrays | |
Liao et al. | Weighted synapses without carry operations for RRAM-based neuromorphic systems | |
Lu et al. | NVMLearn: a simulation platform for non-volatile-memory-based deep learning hardware | |
Kaneko et al. | On the Control of Computing-in-memory Devices with Resource-efficient Digital Circuits towards their On-chip Learning | |
Dong et al. | SITU: Stochastic input encoding and weight update thresholding for efficient memristive neural network in-situ training | |
Lee et al. | Mitigating The Impact of ReRAM IV Nonlinearity and IR Drop via Fast Offline Network Training |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200110 |