CN113837350A - 神经形态设备和训练用于图像识别的神经网络的方法 - Google Patents
神经形态设备和训练用于图像识别的神经网络的方法 Download PDFInfo
- Publication number
- CN113837350A CN113837350A CN202011405659.7A CN202011405659A CN113837350A CN 113837350 A CN113837350 A CN 113837350A CN 202011405659 A CN202011405659 A CN 202011405659A CN 113837350 A CN113837350 A CN 113837350A
- Authority
- CN
- China
- Prior art keywords
- layer
- data
- output
- learning
- processor
- 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/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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
-
- 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
-
- 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/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
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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
- 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Neurology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
Abstract
提供了神经形态设备和训练用于图像识别的神经网络的方法。所述方法包括:获得作为训练数据的训练图像数据;基于获得的训练图像数据,根据第一方法学习包括在神经网络中的每个第一层;根据第二方法学习包括在神经网络中的至少一个第二层。
Description
本申请要求于2020年6月24日提交到韩国知识产权局的第10-2020-0077376号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
本公开涉及一种神经形态设备和训练用于图像识别的神经网络的方法。
背景技术
基于存储器的神经网络设备可表示模拟生物大脑的计算架构。电子系统可使用基于存储器的神经网络来分析输入的图像数据并提取有效信息(例如,执行图像识别)。
然而,这样的电子系统可能不能有效地处理诸如使用基于存储器的神经网络实时分析大量输入图像数据并提取期望的信息的操作。
发明内容
提供本发明内容以简化的形式介绍以下在具体实施方式中进一步描述的构思的选择。本发明内容既不意在确定要求权利的主题的关键特征或必要特征,也不意在用于帮助确定要求权利的主题的范围。
在一个总体方面,一种训练用于图像识别的神经网络的方法包括:获得作为训练数据的训练图像数据;基于获得的训练图像数据,根据第一方法学习包括在神经网络中的每个第一层;以及根据第二方法学习包括在神经网络中的至少一个第二层。
第一方法可包括与无监督学习对应的方法。
第一方法可包括与自组织图对应的方法。
第二方法可包括与有监督学习对应的方法。
第二方法可包括与反向传播对应的方法。
第一层可包括卷积层,所述至少一个第二层可包括至少一个全连接层并且在第一层之后。
根据第一方法进行学习的步骤可包括:基于第一层中的初始层的输入数据来生成部分输入图像向量,其中,第一层中的初始层的输入数据为获得的训练图像数据;使用与初始层对应的自组织图基于部分输入图像向量来学习初始层;以及使用学习的初始层生成初始层的输出特征图数据。
学习初始层的可步骤包括:使用自组织图来确定输出神经元之中的具有与部分输入图像向量中的至少一个最相似的权重的输出神经元;以及使用自组织图基于确定的输出神经元来更新位于输出神经元的确定的范围中的至少一个输出神经元的权重。
生成初始层的输出特征图数据的步骤可包括:基于所述输入数据生成部分输入图像向量;确定部分输入图像向量与更新的权重之间的相似度,以生成相似度向量;以及基于相似度向量生成初始层的输出特征图数据。
所述方法还可包括:基于初始层的输出特征图数据学习第一层中的下一层;以及基于所述至少一个第二层的前一层的输出特征图数据来学习所述至少一个第二层。
所述方法还可包括:获得待识别的图像数据;以及通过使用学习的第一层和学习的至少一个第二层对待识别的图像数据执行图像识别。
执行图像识别的步骤可包括:通过将待识别的图像数据应用于学习的第一层来生成输出特征图数据;以及通过将输出特征图数据应用于学习的至少一个第二层来生成输出数据,以输出图像识别结果。
在另一总体方面,一种神经形态设备包括:处理器,被配置为:获得作为训练数据的训练图像数据;基于获得的训练图像数据,根据第一方法学习包括在神经网络中的每个第一层,以及根据第二方法学习包括在神经网络中的至少一个第二层。
第一方法可包括与无监督学习对应的方法。
第一方法可包括与自组织图对应的方法。
第二方法可包括与有监督学习对应的方法。
第二方法可包括与反向传播对应的方法。
第一层可包括卷积层,所述至少一个第二层可包括至少一个全连接层并且在第一层之后。
针对根据第一方法进行学习的步骤,处理器还可被配置为:基于第一层中的初始层的输入数据生成部分输入图像向量,其中,第一层中的初始层的输入数据为获得的训练图像数据,使用与初始层对应的自组织图基于部分输入图像向量来学习初始层,以及使用学习的初始层生成初始层的输出特征图数据。
针对学习初始层的步骤,处理器还可被配置为:使用自组织图来确定输出神经元之中的具有与部分输入图像向量中的至少一个最相似的权重的输出神经元,以及使用自组织图基于确定的输出神经元来更新位于输出神经元的确定的范围中的至少一个输出神经元的权重。
针对生成初始层的输出特征图数据的步骤,处理器还可被配置为:基于所述输入数据生成部分输入图像向量,确定部分输入图像向量与更新的权重之间的相似度,以生成相似度向量以及基于相似度向量生成初始层的输出特征图数据。
处理器还可被配置为:基于初始层的输出特征图数据学习第一层中的下一层;以及基于所述至少一个第二层的前一层的输出特征图数据来学习所述至少一个第二层。
处理器还可被配置为:获得待识别的图像数据;以及通过使用学习的第一层和学习的至少一个第二层对待识别的图像数据执行图像识别。
针对执行图像识别的步骤,处理器还可被配置为:通过将待识别的图像数据应用于学习的第一层来生成输出特征图数据,以及通过将输出特征图数据应用于学习的至少一个第二层来生成输出数据,以输出图像识别结果。
所述神经形态设备还可包括:片上存储器,片上存储器包括多个核并且存储一个或多个指令,所述一个或多个指令在被处理器执行时配置处理器:获得作为训练数据的训练图像数据;基于获得的训练图像数据,执行每个第一层的学习;执行所述至少一个第二层的学习。
在另一总体方面,一种训练用于图像识别的神经网络的方法包括:获得作为训练数据的训练图像数据;基于训练图像数据在神经网络的卷积层生成部分输入图像向量;使用自组织图来确定输出神经元之中的具有与部分输入图像向量最相似的权重的输出神经元;以及使用自组织图基于确定的输出神经元来更新位于输出神经元的确定的范围中的至少一个输出神经元的权重。
所述方法还可包括:使用学习的初始层基于获得的训练图像数据生成卷积层的输出特征图数据;以及基于初始层的输出特征图数据学习神经网络的下一卷积层。
所述方法还可包括:接收待识别的图像输入数据并且使用学习的卷积层基于接收的图像输入数据生成识别结果输出数据。
在一个总体方面,一种处理器实现的神经网络实现方法包括:根据第一方法学习包括在神经网络中的每个第一层;根据第二方法学习包括在神经网络中的至少一个第二层;以及通过使用学习的第一层和学习的至少一个第二层从输入数据生成输出数据。
第一方法可包括与无监督学习对应的方法。
第一方法可包括与自组织图对应的方法。
第二方法可包括与有监督学习对应的方法。
第二方法可包括与反向传播对应的方法。
第一层可包括卷积层,并且所述至少一个第二层可包括至少一个全连接层。
根据第一方法进行学习的步骤可包括:基于第一层中的初始层的输入数据来生成部分输入向量;使用与初始层对应的自组织图基于部分输入向量来学习初始层;以及使用学习的初始层生成初始层的输出特征图数据。
学习初始层的步骤可包括:使用自组织图来确定输出神经元之中的具有与部分输入向量中的至少一个最相似的权重的输出神经元;使用自组织图基于确定的输出神经元来更新位于输出神经元的确定的范围中的至少一个输出神经元的权重;以及基于更新的权重来学习初始层。
生成初始层的输出特征图数据的步骤可包括:基于输入数据生成部分输入向量;以及确定部分输入向量与更新的权重之间的相似度。
所述方法还包括:基于初始层的输出特征图数据学习第一层中的下一层。
生成输出数据的步骤可包括:通过将输入数据应用于学习的第一层来生成输出特征图数据;以及通过将输出特征图数据应用于学习的至少一个第二层来生成输出数据。
一种非暂时性计算机可读存储介质可存储指令,所述指令在被一个或多个处理器执行时,配置所述一个或多个处理器执行所述方法。
在另一总体方面,一种处理器实现的神经网络包括:多个卷积层;以及至少一个全连接层,其中,所述多个卷积层和所述至少一个全连接层通过不同的方法来训练。
所述多个卷积层可通过与无监督学习对应的方法来训练。
所述多个卷积层可通过与自组织图对应的方法来训练。
所述至少一个全连接层可通过与有监督学习对应的方法来训练。
所述至少一个全连接层可通过与反向传播对应的方法来训练。
在另一总体方面,一种神经形态神经网络实现设备,包括:处理器,被配置为:根据第一方法学习包括在神经网络中的每个第一层,根据第二方法学习包括在神经网络中的至少一个第二层,以及通过使用学习的第一层和学习的至少一个第二层从输入数据生成输出数据。
第一方法可包括与无监督学习对应的方法。
第一方法可包括与自组织图对应的方法。
第二方法可包括与有监督学习对应的方法。
第二方法可包括与反向传播对应的方法。
第一层可包括卷积层,并且所述至少一个第二层可包括至少一个全连接层。
针对根据第一方法进行学习的步骤,处理器还可被配置为:基于第一层中的初始层的输入特征图数据生成部分输入向量,使用与初始层对应的自组织图基于部分输入向量来学习初始层,以及使用学习的初始层生成初始层的输出特征图数据。
针对学习初始层的步骤,处理器还可被配置为:使用自组织图来确定输出神经元之中的具有与部分输入向量中的至少一个最相似的权重的输出神经元,使用自组织图基于确定的输出神经元来更新位于输出神经元的确定的范围中的至少一个输出神经元的权重,以及基于更新的权重学习初始层。
针对生成初始层的输出特征图数据的步骤,处理器还可被配置为:基于输入数据生成部分输入向量,以及确定部分输入向量与更新的权重之间的相似度。
处理器还可被配置为:基于初始层的输出特征图数据学习第一层中的下一层。
针对生成输出数据的步骤,处理器还可被配置为:通过将输入数据应用于学习的第一层来生成输出特征图数据,以及通过将输出特征图数据应用于学习的至少一个第二层来生成输出数据。
所述设备可包括:片上存储器,片上存储器包括多个核并且存储一个或多个指令,所述一个或多个指令在被处理器执行时配置处理器:执行每个第一层的学习;执行所述至少一个第二层的学习;以及驱动神经网络以执行输出数据的生成。
在另一总体方面,一种处理器实现的神经网络实现方法包括:基于神经网络的卷积层的输入数据生成部分输入向量;使用自组织图来确定输出神经元之中的具有与部分输入向量最相似的权重的输出神经元;使用自组织图基于确定的输出神经元来更新位于输出神经元的确定的范围中的至少一个输出神经元的权重;以及基于更新的权重来学习卷积层。
所述方法可包括:使用学习的初始层基于输入数据生成卷积层的输出特征图数据;以及基于初始层的输出特征图数据学习神经网络的下一卷积层。
所述方法可包括:接收图像输入数据并且使用学习的卷积层基于图像输入数据生成识别结果输出数据。
从下面的具体实施方式、附图和权利要求,其他特征和方面将是清楚的。
附图说明
从下面结合附图进行的描述,公开的特定实施例的以上和其他方面、特征和优点将更清楚,其中:
图1示出根据一个或多个实施例的模拟生物神经元的操作的神经网络节点模型;
图2示出根据一个或多个实施例的用于执行神经形态运算的2维(2D)阵列电路的配置;
图3示出根据一个或多个实施例的神经网络的架构;
图4示出根据一个或多个实施例的神经网络中的输入特征图与输出特征图之间的关系;
图5示出根据一个或多个实施例的神经形态设备;
图6示出根据一个或多个实施例的实现神经网络的方法;
图7示出根据一个或多个实施例的神经网络;
图8示出根据一个或多个实施例的处理器学习第一层的方法;
图9A和图9B示出根据一个或多个实施例的处理器生成部分输入向量的示例;
图10示出根据一个或多个实施例的处理器学习初始层;
图11示出根据一个或多个实施例的处理器生成输出特征图;以及
图12示出根据一个或多个实施例的处理器学习至少一个第二层。
贯穿附图和具体实施方式,除非另有描述或提供,否则相同的附图参考标号将被理解为表示相同的元件、特征和结构。附图可不按比例,并且为了清楚、说明和方便,附图中的元件的相对大小、比例和描绘可被夸大。
具体实施方式
提供下面的具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺序仅是示例,并且不限于在此阐述的那些顺序,而是除了必须以特定顺序发生的操作之外,可如在理解本申请的公开之后将清楚的那样改变。此外,为了更加清楚和简洁,可省略在理解本申请的公开之后在本领域中已知的特征的描述。
现在将详细参照实施例,实施例的示例在附图中示出,其中,相同的参考标号始终表示相同的元件。在这方面,一个或多个实施例可具有不同的形式,并且不应被解释为限于在此阐述的描述。因此,下面仅通过参照附图来描述实施例以解释多个方面。如在此使用的,术语“和/或”包括相关联的所列项的中一个或多个的任何组合和所有组合。当诸如“……中的至少一个”的表述在一列元素之后时,该表述修饰整列元素而不是修饰列中的单个元素。
除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常理解的含义和在理解本申请的公开之后通常理解的含义相同的含义。除非在此明确地如此定义,否则术语(诸如,在通用词典中定义的术语)应被解释为具有与它们在相关领域的上下文和本申请的公开中的含义一致的含义,并且不应以理想化或过于正式化的含义进行解释。
在此使用的术语仅用于描述各种示例而不用于限制公开。除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。术语“包含”、“包括”和“具有”说明存在所陈述的特征、数量、操作、构件、元件和/或它们的组合,但是不排除存在或添加一个或多个其他特征、数量、操作、构件、元件和/或它们的组合。在实施例中使用的术语(诸如,“单元”等)指示用于处理至少一个功能或操作的单元,并且其中该单元是硬件或者硬件和软件的组合。在此关于示例或实施例使用术语“可”(例如,关于示例或实施例可包括或实现什么)表示存在包括或实现这样的特征的至少一个示例或实施例,然而全部示例和实施例不限于此。
尽管术语“第一”或“第二”在此用于描述各种构件、组件、区域、层或部分,但是这些构件、组件、区域、层或部分不受这些术语的限制。相反,这些术语仅用于将一个构件、组件、区域、层或部分与另一构件、组件、区域、层或部分区分开。因此,在不脱离示例的教导的情况下,在此描述的示例中所称的第一构件、第一组件、第一区域、第一层或第一部分还可被称为第二构件、第二组件、第二区域、第二层或第二部分。
在下文中,将参照附图详细描述实施例。然而,实施例可以以许多不同的形式来实现,并且不限于在此描述的实施例。
在下文中,将参照附图详细地描述实施例。
图1示出根据一个或多个实施例的模拟生物神经元的操作的神经网络节点模型。
生物神经元表示存在于人的神经系统中的细胞。生物神经元是基本的生物计算实体之一。人脑包含大约1000亿个生物神经元和大约100万亿个生物神经元之间的互连。
参照图1,生物神经元10可以是单个细胞。生物神经元10可包括神经元细胞体,神经元细胞体包括细胞核和各种细胞器。各种细胞器可包括线粒体、从神经元细胞体辐射的多个树突(dendrite)、以及在许多分支延伸处终止的轴突(axon)。
轴突可执行将信号从一个神经元传输到另一神经元的功能,并且树突可执行从所述另一神经元接收信号的功能。例如,当不同神经元彼此连接时,经由神经元的轴突传输的信号可由另一神经元的树突接收。这里,信号可经由被称为神经元之间的突触(synapse)的指定连接来传递,并且多个神经元可彼此连接以形成生物神经网络。基于突触,分泌神经递质(neurotransmitter)的神经元可被称为突触前神经元(pre-synaptic neuron),并且接收经由神经递质传输的信息的神经元可被称为突触后神经元(post-synaptic neuron)。
人脑可通过经由形成为彼此连接的大量神经元的神经网络传输和处理各种信号来学习和存储器大量信息。与人脑中的与生物计算的大规模并行性质相关联的神经元之间的大量连接类似,一个或多个实施例的神经形态设备可使用人工神经网络有效地处理类似的大量的信息。例如,一个或多个实施例的神经形态设备可以以人工神经元水平实现人工神经网络。
生物神经元10的操作可通过神经网络节点模型11模拟。与生物神经元10对应的神经网络节点模型11可以是神经形态运算的示例,并且可包括来自多个神经元或节点的信息与突触权重相乘的乘法、突触权重相乘的值(ω0x0,ω1x1和ω2x2)的加法(∑)以及将特征函数(b)和激活函数(f)应用于加法的结果的运算。可经由神经形态运算提供神经形态运算结果。这里,诸如x0、x1和x2的值对应于轴突值,并且诸如ω0、ω1和ω2的值对应于突触权重。虽然神经网络节点模型11的节点和权重可分别被称为“神经元”和“突触权重”,但是这些术语仅是表示神经网络的硬件实现的节点和权重的技术术语。
图2示出根据一个或多个实施例的用于执行神经形态运算的2维(2D)阵列电路的配置(例如,配置20)。
参照图2,2D阵列电路的配置20包括N个轴突电路A1至AN 210(N是任何正整数)、M个神经元电路N1至NM 230(M是任何正整数)和N×M个突触阵列S11至SNM 220。虽然电路和阵列可被称为“轴突电路”、“神经元电路”和/或“突触阵列”,但是这样的术语仅是表示硬件实现的阵列电路的技术术语。
突触阵列S11至SNM 220中的每个突触可被设置在从轴突电路A1至AN 210在第一方向上延伸的第一方向线与从神经元电路N1至NM 230在第二方向上延伸的第二方向线的交点。这里,为了便于描述,第一方向被示出为行方向并且第二方向被示出为列方向,但是实施例不限于此,并且第一方向可以是列方向并且第二方向可以是行方向。
轴突电路A1至AN 210中的每个可表示模拟图1的生物神经元10的轴突的电路。神经元的轴突可执行将信号从神经元传输到另一神经元的功能,并且模拟神经元的轴突的轴突电路A1至AN 210中的每个可接收激活(例如,轴突a1至aN),并且将激活传输到第一方向线。激活可对应于通过神经元传输的神经递质,并且可表示输入到轴突电路A1至AN 210中的每个的电信号。轴突电路A1至AN 210中的每个可包括用于存储输入信息的存储器、寄存器和/或缓冲器。激活可以是具有二进制值的二进制激活。例如,二进制激活可包括与逻辑值0或1对应的1位信息。然而,实施例不限于此,并且激活可具有三进制值或多位值。
突触阵列S11至SNM 220中的每个突触可表示模拟神经元之间的突触的电路。突触阵列S11至SNM 220可存储与神经元之间的连接强度对应的突触权重。在图2中,为了便于描述,w1至wM被示出为将被存储在每个突触中的突触权重的示例,但是其他突触权重可被存储在每个突触中。突触阵列S11至SNM220中的每个突触可包括用于存储突触权重的存储器装置,或者可连接到存储突触权重的另一存储器装置。这样的存储器装置可对应于例如忆阻器。
突触阵列S11至SNM 220可分别经由第一方向线从轴突电路A1至AN 210接收激活输入,并且输出存储的突触权重与激活输入之间的神经形态运算的结果。例如,突触权重与激活输入之间的神经形态运算可以是乘法(即,与(AND)运算),但不限于此。换句话说,突触权重与激活输入之间的神经形态运算的结果可以是通过用于模拟根据神经元之间的连接强度调整的激活的强度或大小的任何合适的运算获得的值。
可根据突触权重与激活输入之间的神经形态运算来调整从轴突电路A1至AN 210传输到神经元电路N1至NM 230的信号的大小或强度。这样,可通过使用突触阵列S11至SNM 220来模拟根据神经元之间的连接强度来调整传输到另一神经元的信号的大小或强度的操作。
神经元电路N1至NM 230中的每个可表示模拟包括树突的神经元的电路。神经元的树突可执行从另一神经元接收信号的功能,并且神经元电路N1至NM 230中的每个可经由对应的第二方向线接收突触权重与激活输入之间的神经形态运算的结果。神经元电路N1至NM230中的每个可基于神经形态运算的结果来确定是否输出尖峰(spike)。例如,当通过累加神经形态运算的结果获得的值等于或大于预设阈值时,神经元电路N1至NM 230中的每个可输出尖峰。从神经元电路N1至NM 230输出的尖峰可对应于输入到下一级的轴突电路的激活。
因为神经元电路N1至NM 230相对于突触阵列S11至SNM 220位于操作后端,所以神经元电路N1至NM 230可被称为突触后神经元电路,并且因为轴突电路A1至AN 210相对于突触阵列S11至SNM 220位于操作前端,所以轴突电路A1至AN 210可被称为突触前神经元电路。
图3示出根据一个或多个实施例的神经网络(例如,神经网络30)的架构。
参照图3,神经网络30可以是深度神经网络(DNN)或n层神经网络。DNN或n层神经网络可对应于卷积神经网络(CNN)、循环神经网络(RNN)、深度置信网络或受限玻尔兹曼机(restricted Boltzmann machine)。例如,神经网络30可被实现为CNN,但不限于此。图3示出包括在与神经网络30的示例对应的CNN中的卷积层中的一些卷积层,但是除了示出的卷积层之外,CNN还可包括池化层、全连接层等。
神经网络30可以以包括多个层的架构来实现,多个层包括输入数据层、特征图生成层和输出数据层。在神经网络30中,当使用内核(kernel)对输入数据执行卷积运算时,可生成输出特征图(或激活图或卷积特征)。然后,可使用内核对作为下一层的输入特征图的生成的输出特征图执行卷积运算,因此,新的输出特征图可被生成作为这样的卷积运算的结果。当使用相应的内核重复执行这样的卷积运算时,可经由神经网络30最终输出针对输入数据的特征的识别结果。
例如,当24×24像素大小的图像被输入到图3的神经网络30时,具有20×20大小的4个通道的特征图可经由使用第一内核对输入图像的第一卷积运算来输出。然后,可经由使用相应的内核的根据输出的20×20大小的特征图执行的相应的卷积运算来在大小上递增地减小相应的输出特征图,其中使用最终内核的最终示出的卷积运算生成1×1大小的示出的最终特征图。神经网络30可分别在几个层中执行卷积运算和子采样(或池化)运算,并且从输入图像输出能够表示整个图像的鲁棒特征,并且可经由输出最终特征得到输入图像的识别结果。
图4示出根据一个或多个实施例的神经网络中的输入特征图与输出特征图之间的关系。
参照图4,针对神经网络的层40,第一特征图FM1可对应于输入特征图,并且第二特征图FM2可对应于输出特征图。例如,第一特征图FM1可表示代表输入数据的各种特征的数据集,并且第二特征图FM2可表示代表输出数据的各种特征的数据集,输出数据由通过将权重施加到第一特征图FM1而执行的卷积运算生成。第一特征图FM1和第二特征图FM2可包括2D矩阵元素或3D矩阵元素,并且可针对每个元素定义像素值。第一特征图FM1和第二特征图FM2具有宽度W(或列)、高度H(或行)和深度D。这里,深度D可对应于通道的数量。
因此,第二特征图FM2可作为对第一特征图FM1和内核执行卷积运算的结果而生成。内核通过使用在每个元素中定义的权重执行与第一特征图FM1的卷积运算来核化(kernel)第一特征图FM1的特征。内核执行与第一特征图FM1的窗口(或也称为区块)的卷积运算,同时经由滑动窗口方法移位第一特征图FM1。在每个移位期间,包括在内核中的权重中的每个可与第一特征图FM1中的重叠窗口的像素值中的每个相乘并且乘法结果可被累加。步长可对应于内核在移位之间滑动的像素的数量。当对第一特征图FM1和内核执行卷积运算时,可生成第二特征图FM2的一个通道。图4示出一个内核,但是多个内核可分别与第一特征图FM1进行卷积以形成多个通道的第二特征图FM2。
第二特征图FM2也可因此对应于下一层的输入特征图。例如,第二特征图FM2可以是后续池化(或子采样)层的输入特征图。在一个示例中,神经网络的输入层接收输入图像数据,并基于输入图像数据生成输入层的输出特征图,作为输入层之后的下一层的输入特征图。神经网络的输出层基于前一层的输出特征图生成并输出图像识别结果。
在图3和图4中,为了便于描述,仅示出神经网络30的示意性架构。然而,如在理解本申请的公开之后将理解的,神经网络30的示例可包括更多或更少数量的层、特征图和内核,并且层、特征图和内核的大小可变化。
典型的CNN可实现许多乘法和累加(MAC)运算。例如,典型的CNN可包括数十层至数百层或更多层,并且大量MAC运算需要被执行以经由CNN生成输出数据。因此,为了解决这样的技术问题,一个或多个实施例的神经形态设备和方法可实现轻量化(lighting)技术以减少在执行CNN时执行的运算量。
典型的轻量化技术可包括去除对最终输出数据具有小的影响的神经元或连接的剪枝(pruning)和/或通过多个小矩阵的乘法来替换每个层的权重矩阵的权重矩阵分解。此外,其他典型的轻量化技术可包括量化神经网络、三元神经网络和/或二元神经网络,这降低每一层的参数(例如,权重或激活)的位精度。然而,这样的典型的轻量化技术倾向于降低CNN的最终输出数据的准确性。
此外,反向传播可用作典型的神经网络的训练方法。然而,根据反向传播,越接近神经网络的初始层,梯度越接近0(即,梯度消失)。神经网络的训练效果低在于:根据反向传播的权重的更新取决于梯度。
相反,根据一个或多个实施例的神经网络可具有比这样的典型的神经网络低的运算量和高的学习效果。例如,根据一个或多个实施例的神经网络可根据用于至少一个层的自组织图来执行无监督学习。因此,根据一个或多个实施例的神经网络可防止由反向传播引起的梯度消失并提高训练的效果(例如,提高训练的神经网络的准确度)。此外,根据一个或多个实施例的训练的神经网络的至少一个层可基于自组织图来生成输出特征图数据。因此,根据一个或多个实施例的神经网络可经由加法和减法而不是MAC运算来生成输出特征图数据,因此,大大减少了运算量。因此,根据一个或多个实施例的神经网络可有利地增大其准确度,并且可大大减少在执行神经网络时执行的运算量,从而改善神经网络和执行这样的神经网络的计算机的技术领域。
在下文中,将参照图5至图12描述根据实施例的神经网络和用于实现神经网络的神经形态设备的示例。
图5示出根据一个或多个实施例的神经形态设备(例如,神经形态设备500)。
参照图5,神经形态设备500可包括处理器510(例如,一个或多个处理器)和片上存储器520(例如,一个或多个存储器)。图5示出与当前实施例相关的神经形态设备500的组件。因此,在理解本公开的情况下将理解,除了图5中所示的组件之外,神经形态设备500还可包括其他组件。
神经形态设备500的原理可如上面参照图1和图2所述。因此,参照图1和图2给出的描述可应用于图5的神经形态设备500。例如,神经形态设备500可包括配置20,并且可实现和包括包含神经网络节点模型11的神经网络。
神经形态设备500可以是或者可被包括在具有低功率神经网络驱动的数字系统(诸如,智能电话、无人机、平板装置、增强现实(AR)装置、物联网(IoT)装置、自主车辆、机器人或医疗装置)中,但不限于此。
神经形态设备500可包括多个片上存储器520,并且每个片上存储器520可包括多个核(core)。核可包括多个突触前神经元、多个突触后神经元和突触(即,存储器单元,存储器单元提供多个突触前神经元和多个突触后神经元之间的连接)。根据实施例,核可被实现为电阻式交叉存储器阵列(RCA)。
外部存储器530可以是存储由神经形态设备500处理的各种类型的数据的硬件,并且可存储由神经形态设备500处理或将由神经形态设备500处理的数据。此外,外部存储器530可存储将由神经形态设备500驱动的应用、驱动程序等。外部存储器530可包括随机存取存储器(RAM)(诸如,动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM))、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、CD-ROM、蓝光或另一光盘存储器、硬盘驱动器(HDD)、固态驱动器(SSD)和/或闪存。
处理器510可控制用于驱动神经形态设备500的所有功能。例如,处理器510可执行存储在神经形态设备500的片上存储器520中的程序来总体上控制神经形态设备500。处理器510可使用多个逻辑门的阵列来实现或者使用通用微处理器和存储可由通用微处理器执行的程序的存储器的组合来实现。此外,将理解,在理解本公开的情况下,处理器510可使用另一类型的硬件来实现。
处理器510可被实现为包括在神经形态设备500中的中央处理器(CPU)、图形处理器(GPU)和/或应用处理器(AP),但不限于此。处理器510可从外部存储器530读取各种类型的数据/向外部存储器530写入各种类型的数据,并且通过使用读取/写入的数据来执行神经形态设备500。
在下文中,将参照图6至图12详细描述处理器510操作的示例。
图6示出根据一个或多个实施例的实现神经网络的方法。
参照图6,实现神经网络的方法可包括由图5的处理器510按时间序列处理的操作。因此,上面参照图5的处理器510给出的描述可应用于图6的方法。
在操作610中,处理器510可根据第一方法学习或训练包括在神经网络中的每个第一层。
根据实施例的神经网络包括多个层,并且多个层可包括第一层和第二层。处理器510可经由不同的方法学习第一层和第二层。例如,处理器510可根据第一方法学习第一层,并且根据第二方法学习第二层。
在下文中,将参照图7描述根据实施例的神经网络(例如,图6的神经网络)的示例。
图7示出根据一个或多个实施例的神经网络(例如,神经网络70)。在图7中,神经网络70包括总共N+M个层,其中,N和M是正整数。
参照图7,神经网络70可包括第一层710和至少一个第二层720。例如,第一层710可以是卷积层,第二层720可以是全连接层,但不限于此。至少一个第二层720可位于第一层710的后端或输出端。
例如,第一层710可以是从输入数据(例如,图像数据)730提取特征的层,第二层720可以是基于通过第一层710从输入数据730提取的输出特征图数据732执行识别(例如,图像识别)的层。
在一个示例中,神经网络70可包括第一层710,但不包括第二层720。在神经网络70不包括第二层720的示例中,可省略下面描述的根据第二方法的学习。
输入数据730可被输入到神经网络70,并且输出数据740(例如,图像识别结果)可基于输入数据730被最终生成。此外,可根据包括在神经网络70中的第一层710生成多条输出特征图(OFM)数据731和732。操作神经网络70的示例可如上面参照图3和图4所述。例如,神经网络70可包括神经网络30和/或层40。
处理器510可根据第一方法学习第一层710中的每个层。例如,处理器510可通过使用输入数据730来学习包括在第一层710中的初始层(或者第一卷积层)711。然后,当学习了初始层711时,处理器510可通过使用学习的初始层711的输出特征图数据731来学习第一层710中的下一层。这样,处理器510可学习第一层710。在一个示例中,池化层712还可设置在包括在第一层710中的层之间,池化层712可根据特定标准操控输出特征图数据731。此外,当池化层712被设置时,包括在第一层710中的层和池化层712可串联或并联连接。
第一方法可包括与无监督学习对应的方法。例如,处理器510可根据自组织图学习第一层710,但不限于此。这里,无监督学习可表示在没有目标模式的情况下基于输入模式执行学习的方法。换句话说,无监督学习可表示在不提供输出数据作为训练数据的情况下基于作为训练数据提供的输入数据执行的学习。
自组织图可以是用于数据聚类(data cluster)和实现数据聚类的结果的神经网络模型之一。自组织图可包括输入层和输出层,输入层包括与输入数据的维度相同数量的神经元(即,节点),输出层包括与聚类目标类相同数量的神经元。这里,输出层的每个神经元可具有以与输入数据相同维度的向量表示的权重,并且聚类可通过经由计算输入数据与每个神经元的权重之间的相似度将输入数据分类到输出数据的最相似神经元中来执行。这里,输出层的神经元可以以1D、2D或3D结构设置。此外,在学习过程期间,不仅可更新神经元的权重的值,而且可相邻地设置相似的神经元。输出层的这种特性(即,相似神经元被相邻设置的特性)在实现聚类结果时是有效的。
下面将参照图8至图11描述处理器510可学习第一层710中的每个层的示例方法。
处理器510可根据第二方法学习至少一个第二层720。例如,处理器510可通过使用包括在第一层710中的最终层(或者第N卷积层)713的输出特征图数据732来学习第二层720。
第二方法可包括与有监督学习对应的方法。例如,处理器510可根据反向传播方法学习第二层720,但不限于此。这里,有监督学习可表示基于作为训练数据提供的输入数据和对应的输出数据执行的学习。
下面将参照图12描述处理器510可学习至少一个第二层720的示例方法。
处理器510可通过使用多种方法来学习神经网络70,以提高学习神经网络70的效果。例如,处理器510可根据无监督学习来学习神经网络70的第一层710,从而防止经由反向传播方法的学习的问题(即,梯度消失)。
此外,神经网络70可包括基于自组织图被学习的第一层710。这里,可在没有MAC运算的情况下生成第一层710中的每个层的输出特征图数据。因此,可防止由于执行MAC运算而导致的典型的卷积层中的运算量的增加。
返回参照图6,在操作620中,处理器510可根据第二方法学习包括在神经网络中的至少一个第二层。
处理器510可通过使用包括在神经网络70的第一层710中的最终层713的输出特征图数据732,来学习至少一个第二层720。例如,处理器510可根据反向传播方法学习至少一个第二层720,但不限于此。
在操作630中,处理器510可通过使用学习的第一层和学习的至少一个第二层从输入数据生成输出数据。
例如,处理器510可通过将输入数据(例如,图像数据)730应用于学习的第一层710来生成输出特征图数据732。然后,处理器510可通过将输出特征图数据732应用于学习的至少一个第二层720来生成输出数据740,以输出图像识别结果。
图8示出根据一个或多个实施例的处理器(例如,处理器510)学习第一层(例如,第一层710)的方法。
参照图8,处理器510可顺序地且独立地学习第一层710。例如,当第一层710包括L个层(其中,L是正整数)时,处理器510可按照从初始层711到最终层713(即,第L层)的顺序独立地学习L个层。
在操作810中,处理器510可确定当前层是否是第一层710之中的初始层711。在当前层是初始层711时,可执行操作820,并且在当前层不是初始层711时,可执行操作860。
在操作820中,处理器510可通过使用初始层711的输入数据730来生成部分输入向量(例如,部分输入图像向量)。这里,输入数据730可表示初始输入到神经网络70并且用于第一层710的训练的数据。参照图7,如上所述,神经网络70可按照从第一层710到第二层720的顺序构造。因此,处理器510可通过使用输入数据730来学习初始层711。在下文中,将参照图9A和图9B描述处理器510生成部分输入向量的示例。
图9A和图9B示出根据一个或多个实施例的处理器(例如,处理器510)生成部分输入向量(例如,图8的部分输入向量)。
图9A示出包括在输入数据900中的第一集合910(例如,特征图(诸如,图4的特征图FM1)),图9B示出包括在输入数据900中的所有集合910至930。为了便于描述,集合910至930中的每个可具有N×M像素大小和C通道大小,其中,N、M和C均是正整数。此外,输入数据730可包括总共Q个集合910至930,其中,Q是正整数。
参照图9A,处理器510可扫描第一集合910,同时将扫描窗口911向上、向下、向左和向右移动一个像素(例如,移动单个像素步长值)。这里,扫描窗口911可具有K×K像素大小和C通道大小,其中,K是正整数。
因此,总共K×K×C个像素可包括在每个扫描区域中,并且存储在K×K×C个像素中的值是部分输入向量的元素。换句话说,处理器510可生成包括K×K×C个元素P1至PK×K×C的部分输入向量。
处理器510可针对包括在第一集合910中的每个扫描区域生成K×K×C维度的部分输入向量。因此,当处理器510通过使用扫描窗口911扫描第一集合910的整个区域时,可生成总共M×N个部分输入向量V1至VM×N。
参照图9B,输入数据900可总共包括Q个集合910至930。因此,当处理器510通过使用扫描窗口911扫描输入数据900时,处理器510可总共生成M×N×Q个部分输入向量V1至VM×N×Q。
如下面将参照操作860描述的处理器510可生成下一层的部分输入向量的示例处理可与上面参照图9A和图9B描述的处理相同。
返回参照图8,在操作830中,处理器510可通过使用自组织图基于部分输入向量学习初始层711。
处理器510可经由自组织图对部分输入向量进行聚类。例如,对于部分输入向量,处理器510可搜索具有与部分输入向量最相似的权重的自组织图的输出神经元。然后,处理器510可基于找到的具有最相似权重的输出神经元来更新位于特定范围中的至少一个神经元的权重。在下文中,将参照图10描述处理器510学习初始层711的示例。
图10示出根据一个或多个实施例的处理器(例如,处理器510)学习初始层(例如,初始层711)。
图10示出用于初始层的学习的自组织图1000的结构。例如,自组织图1000可包括输入层1010和输出层1020,并且输入层1010可包括与部分输入向量1030的维度相同数量的输入节点I1至IK×K×C。
此外,输出层1020可包括与聚类目标类的数量相同数量的输出神经元O11至ORR。在图10中,为了便于描述,示出聚类目标类的数量为RR,其中,R为正整数,但不限于此。输出神经元O11至ORR中的每个可执行与卷积层的单个内核相同的操作。
此外,输出神经元O11至ORR中的每个可包括所有输入节点I1至IK×K×C和连接权重Wj:r1r2。
处理器510可搜索并找到输出层1020的具有与部分输入向量1030中的一个最相似的权重的输出神经元。此外,处理器510可通过基于找到的输出神经元更新位于特定范围中的至少一个输出神经元的权重来学习初始层(例如,初始层711)。例如,处理器510可将包括在部分输入向量1030中的M×N×Q个部分输入向量Vi逐个输入到自组织图1000,从而学习初始层,使得部分输入向量1030被聚类。例如,处理器510可根据下面的等式1至等式6来学习初始层。
首先,处理器510可例如根据下面的等式1来计算自组织图(例如,自组织图1000)的连接权重与部分输入向量(例如,部分输入向量1030)之间的相似度。
等式1:
在等式1中,Er1r2表示部分输入向量Vi与连接权重Wrir2之间的相似度。这里,Vi表示部分输入向量1030中的一个。根据图9A和图9B的示例,Vi=[P1,P2,P3,…,PK×K×C](这里,i∈{1,2,…,M×N×Q})。此外,Wr1r2表示自组织图1000的连接权重Wj:r1r2。根据图10的示例,Wr1r2=[W1:r1r2,W2:r1r2,W3:r1r2,…,WK×K×C:r1r2](这里,r1和r2∈{1,2,…,R})。
当根据等式1计算出相似度Er1r2时,处理器510可例如根据下面的等式2计算与部分输入向量最相似的(例如,输出层1020的)输出神经元的坐标(win1,win2)。
等式2:
根据上面的等式1和等式2,处理器510可搜索并找到具有与部分输入向量最相似的权重的输出神经元。
然后,处理器510可例如根据下面的等式3至等式6基于找到的输出神经元来更新位于特定范围中的至少一个输出神经元的权重。
例如,处理器510可例如根据下面的等式3更新输出神经元O11至ORR中的至少一个,使得输出层1020进一步类似于部分输入向量。
等式3:
在等式3中,Wnew表示输出神经元的更新值,Wold表示输出神经元在被更新之前的值。此外,L(t)表示学习系数,并且可例如根据下面的等式4来计算。
等式4:
在等式4中,L(t)表示学习速率。这里,学习速率表示权重值被更新的量。此外,t表示学习被重复的次数,γ是表示学习速率随着学习被重复而减小的程度的常数。此外,L0表示学习速率的初始值。换句话说,根据等式4,随着学习被重复,学习速率逐渐减小。
等式5:
等式6:
在等式6中,t表示学习被重复的次数,γ是指示更新权重值的范围随着学习被重复而减小的程度的常数。此外,σ0表示更新权重值的范围的初始值。换句话说,根据等式6,根据等式5计算的范围(即,权重将被更新的输出神经元的范围)随着学习被重复而逐渐减小。
根据上面的等式3至等式6,具有相似属性的输出神经元O11至ORR可被相邻地设置。
根据上面的等式1至等式6完成学习的输出神经元O11至ORR具有与部分输入向量1030的主模式对应的连接权重Wj:r1r2,并且与相似模式对应的输出神经元被相邻地设置。因此,处理器510完成初始层711的学习。
下面参照操作870描述的处理器510学习下一层的处理可与上面参照图10描述的处理相同。
返回参照图8,在操作840中,处理器510可生成学习的初始层711的输出特征图数据731。
处理器510可通过使用输入数据730来生成部分输入数据。这里,输入数据730可表示初始输入到神经网络70并且用于生成输出特征图数据731的数据。此外,处理器510可通过计算部分输入向量与更新的权重之间的相似度来生成输出特征图731。在下文中,将参照图11描述处理器510生成输出特征图数据731的示例。
图11示出根据一个或多个实施例的处理器(例如,处理器510)生成输出特征图。
图11示出输出特征图数据1100的示例。为了便于描述,在一个示例中,用于生成图11的输出特征图数据1100的输入数据可以是图9A的输入数据900。
处理器510可通过使用输入数据来生成部分输入向量。根据图9A的示例,处理器510可总共生成M×N个部分输入向量V1至VM×N。
处理器510可计算部分输入向量V1至VM×N与更新的连接权重之间的相似度。例如,处理器510可例如根据下面的等式7来计算部分输入向量与更新的连接权重之间的相似度。
等式7:
在等式7中,Er1r2表示部分输入向量Vi与更新的连接权重Wr1r2之间的相似度。这里,Vi表示部分输入向量之一。根据图9A和图9B的示例,Vi=[P1,P2,P3,…,PK×K×C](这里,i∈{1,2,…,M×N})。此外,Wr1r2表示更新的连接权重Wj:r1r2。根据图10的示例,Wr1r2=[W1:r1r2,W2:r1r2,W3:r1r2,…,WK×K×C:r1r2](这里,r1和r2∈{1,2,…,R})。
根据等式7,处理器510可计算部分输入向量V1至VM×N与自组织图的所有输出神经元之间的相似度。此外,处理器510可将指示部分输入向量V1至VM×N与更新的输出神经元之间的相似度的相似度向量Si配置为Si=[E11,E12,…,E1R,E21,E22,…,ERR]。
当每个部分输入向量通过自组织图时,可生成等于输出神经元的数量的R×R维度的相似度向量Si。处理器510可将相似度向量Si确定为具有R×R通道和1×1像素大小的部分输出特征图数据S1。
根据上述处理,处理器510可从所有的部分输入向量同一地生成多条输出特征图数据S1至SM×N,并将多条输出特征图数据S1至SM×N与生成部分输入向量的输入数据的坐标匹配。因此,处理器510可生成具有R×R通道和M×N像素大小的输出特征图数据1100。输出特征图数据1100可用作下一层的输入特征图数据。
下面参照操作880描述的处理器510生成下一层的输出特征图数据的处理可与参照图11描述的处理相同。
返回参照图8,在操作850中,处理器510可确定在第一层710之后是否存在下一层。这里,下一层可表示第一层710之中的将被学习的层。当存在下一层时,操作860可被执行,当不存在下一层时,第一层710的学习可结束或完成。
在操作860至操作880中,处理器510可学习下一层。换句话说,处理器510可学习完成了学习的层的下一层(即,使用完成了学习的层的输出特征图数据作为输入特征图数据的层)。
例如,操作860至操作880的特定处理可与操作820至操作840的处理相同。
如以上参照图8至图11所述,处理器510可顺序地且独立地学习包括在第一层710中的所有层。
如上面参照操作620所述,处理器510可根据反向传播方法学习至少一个第二层720。在下文中,将参照图12描述处理器510学习至少一个第二层720的示例。
图12示出根据一个或多个实施例的处理器(例如,处理器510)学习至少一个第二层(例如,至少一个第二层1220)。
图12示出包括在神经网络1200中的至少一个第二层1220的示例。处理器510可通过使用第一层1210的最终输出特征图数据1230来学习至少一个第二层1220。
例如,处理器510可根据反向传播方法学习至少一个第二层1220。为了便于描述,最终输出特征图数据1230可包括激活i0至in,其中,n为自然数。此外,至少一个第二层1220可包括多个层,并且激活o0至om通过第二层1220输出,其中,m为自然数。
在生成激活o0至om之后,可将激活o0至om与预期结果进行比较,并且可生成误差δ。例如,误差δ可以是预期结果与激活o0至om之间的差,并且神经网络1200的训练可被执行,使得误差δ减小。
为了减小误差δ,用于预先执行的中间运算的激活可随着最终误差δ0至δm在与前向传播相反的方向上的传播(即,反向传播)而被更新。例如,中间误差δ(1,0)至δ(1,l)可通过对最终误差δ0至δm和权重执行的运算来生成。中间误差δ(1,0)至δ(1,l)是用于生成下一层的中间误差的输入,并且上述运算被再次执行。通过这样的处理,误差δ可在与前向传播相反的方向上传播,并且用于更新激活的激活梯度被计算。
当以等式来总结反向传播的处理时,可获得下面的等式8。
等式8:
在等式8中,△I(x,y,z)是反向传播的输出,并且表示前向传播中的当前层的输入激活的梯度。此外,△O(x,y,n)是反向传播的输入,并且表示前向传播中的下一层的输入激活的梯度。这里,△O'(x,y,n)表示对△O(x,y,n)执行了零填充。此外,F(x,y,z,k)是内核的权重,并且表示前向传播的重新排列的内核的权重。当等式8的计算被重复Ix×Iy×Iz次时,反向传播可结束。
如上所述,当对所有第二层1220执行了反向传播时,可基于反向传播的结果来更新权重。例如,通过使用根据反向传播计算的激活的梯度来计算用于更新权重的权重的梯度。当以等式来总结权重的更新时,可获得等式9。
等式9:
在等式9中,△W(x,y,z,n)表示权重的梯度,I(x,y,z)表示当前层的输入激活。此外,△O(x,y,n)表示当前层的输出激活的梯度(即,下一层的输入激活的梯度)。这里,△O'(x,y,n)表示对△O(x,y,n)执行了零填充。当等式9的计算被重复Fx×Fy×Fz×Fn次时,权重的更新可结束。
可经由反向传播和权重的更新来学习或训练第二层1220。
如上所述,根据实施例的神经网络70或1200以及实现神经网络70或1200的神经形态设备500具有下面的有益效果。
首先,包括在典型的CNN中的卷积层可基于输入数据与权重之间的MAC运算来操作。然而,一个或多个实施例的神经网络70或1200可包括基于自组织图的第一层710或1210,并且第一层710或1210可在没有MAC运算的情况下经由加法和减法来进行运算。因此,如下面表1中所示,神经网络70或1200可在数字运算硬件中具有减少的数量的位单位运算(即,运算量)。
表1:
根据表1,典型的卷积层和第一层710或1210的条件(与层相关的参数)可相同。这里,当输入数据的像素值和内核权重(输出神经元的权重)的位精度是32位时,一个或多个实施例的第一层710或1210的运算量与典型的卷积层相比可被减少到典型的卷积层的运算量的1/32。
表示典型的CNN的一些模型的运算量可被总结为下面的表2。
表2:
根据表2,CNN中的卷积层的运算量可占据CNN的总运算量的约83%至99%。换句话说,CNN中的大部分运算量可被卷积层的运算量占据。如表1中所述,因为一个或多个实施例的第一层710和1210的运算量可显著小于典型的卷积层的运算量,所以神经网络70或1200的总运算量可显著小于典型的CNN的总运算量。
此外,典型的CNN(即,基于MAC运算的CNN)可基本上伴随有激活函数(诸如,ReLu函数、S型(Sigmoid)函数或tanh函数)的运算。然而,一个或多个实施例的神经网络70或1200可不需要激活函数的运算。因此,根据一个或多个实施例的神经网络70或1200,不仅运算量被额外地减少,而且驱动神经网络70或1200的专用硬件(例如,神经形态设备500)也非常容易地实现。
此外,典型的CNN可基于反向传播方法来执行训练,在反向传播方法中,层的权重从最终层到初始层被顺序地更新。在这种情况下,权重的更新量可朝向初始层变得非常小。因此,在CNN包括数十至数百个层的情况下,前端处的层(即,初始层附近的层)可几乎不被学习或训练。因此,CNN的图像识别的准确度可根据如何设置初始权重而变化。
然而,因为一个或多个实施例的神经网络70或1200独立地且充分地训练第一层710或1210中的从初始层到最终层,所以包括在神经网络70或1200中的所有层可有效地提取特征并且执行图像识别。因此,与典型的CNN相比,神经网络70或1200可具有高精度的结果。
此外,因为可根据自组织图来学习或训练一个或多个实施例的第一层710或1210,所以具有相似属性的输出神经元可被相邻地设置。因此,当一个或多个实施例的神经网络70或1200包括池化层时,通道方向上的池化可被启用。然而,在典型的CNN中,通道方向上的池化可能是不可能的。因此,与典型的CNN的输出特征图数据相比,一个或多个实施例的神经网络70或1200的输出特征图数据可具有进一步减小的数据大小。因此,神经网络70或1200的模型的整体大小可被减小。
此外,因为可根据自组织图来训练第一层710或1210,所以即使当第一层710或1210的权重和输出特征图数据被二值化时,与典型的CNN相比,图像分类的准确度也可以是很好的。因此,一个或多个实施例的神经网络70或1200可在具有减少的运算量和减小的模型的整个大小的同时保持图像分类的高准确度水平。
阵列电路、轴突电路、突触阵列、神经元电路、神经形态设备、处理器、片上存储器、外部存储器、轴突电路210、突触阵列220、神经元电路230、神经形态设备500、处理器510、片上存储器520、外部存储器530以及在此针对图1至图12描述的其他设备、装置、单元、模块和组件通过硬件组件实现或表示硬件组件。可用于执行在本申请中描述的操作的硬件组件的示例在适当的情况下包括:控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器以及被配置为执行在本申请中描述的操作的任何其他电子组件。在其他示例中,通过计算硬件(例如,通过一个或多个处理器或计算机)来实现执行在本申请中描述的操作的硬件组件中的一个或多个硬件组件。可通过一个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以限定的方式响应并执行指令以实现期望的结果的任何其他装置或装置的组合)来实现处理器或计算机。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行用于执行在本申请中描述的操作的指令或软件(诸如,操作系统(OS)和在OS上运行的一个或多个软件应用)。硬件组件还可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简明,单数术语“处理器”或“计算机”可用于本申请中描述的示例的描述,但是在其他的示例中,多个处理器或计算机可被使用,或者处理器或计算机可包括多个处理元件或多种类型的处理元件或二者。例如,单个硬件组件或者两个或更多个硬件组件可通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可通过一个或多个处理器、或者处理器和控制器来实现,一个或多个其他硬件组件可通过一个或多个其他处理器,或者另外的处理器和另外的控制器来实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个或多个,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理以及多指令多数据(MIMD)多处理。
图1至图12中示出的执行本申请中描述的操作的方法通过计算硬件(例如,通过一个或多个处理器或计算机)来执行,计算硬件被实现为如上所述地执行指令或软件,以执行在本申请中描述的通过该方法执行的操作。例如,单个操作或者两个或更多个操作可通过单个处理器或者两个或更多个处理器、或者处理器和控制器来执行。一个或多个操作可通过一个或多个处理器、或者处理器和控制器来执行,并且一个或多个其他操作可通过一个或多个其他处理器、或者另外的处理器和另外的控制器来执行。一个或多个处理器、或者处理器和控制器可执行单个操作或者两个或更多个操作。
用于控制计算硬件(例如,一个或多个处理器或计算机)实现硬件组件并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或它们的任何组合,以单独地或共同地指示或配置一个或多个处理器或者计算机如机器或专用计算机那样进行操作,以执行由如上所述的硬件组件和方法执行的操作。在一个示例中,指令或软件包括由一个或多个处理器或者计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由一个或多个处理器或者计算机使用解释器执行的高级代码。可基于附图中所示的框图和流程图以及在此使用的对应描述使用任何编程语言编写指令或软件,附图中所示的框图和流程图以及在此使用的对应描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。
用于控制计算硬件(例如,一个或多个处理器或计算机)实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中,或者被记录、存储或固定在一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态驱动器(SSD)、卡式存储器(诸如多介质卡或微型卡(例如,安全数字(SD)或极速数字(XD))、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,任何其他装置被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并将所述指令或软件以及任何相关联的数据、数据文件和数据结构提供给一个或多个处理器或计算机,使得一个或多个处理器或计算机能执行指令。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统中,使得指令和软件以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
虽然本公开包括特定的示例,但是在理解本申请的公开之后将清楚,在不脱离权利要求及其等同物的精神和范围的情况下,可以在这些示例中进行形式和细节上的各种改变。在此描述的示例仅被认为是描述性的,而不是出于限制的目的。每个示例中的特征或方面的描述将被认为可适用于其他示例中的类似特征或方面。如果描述的技术以不同的顺序被执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合,和/或由其他组件或它们的等同物替换或补充,则可实现合适的结果。
Claims (29)
1.一种训练用于图像识别的神经网络的方法,所述方法包括:
获得作为训练数据的训练图像数据;
基于获得的训练图像数据,根据第一方法学习包括在神经网络中的每个第一层;以及
根据第二方法学习包括在神经网络中的至少一个第二层。
2.根据权利要求1所述的方法,其中,第一方法包括与无监督学习对应的方法。
3.根据权利要求1所述的方法,其中,第一方法包括与自组织图对应的方法。
4.根据权利要求1所述的方法,其中,第二方法包括与有监督学习对应的方法。
5.根据权利要求1所述的方法,其中,第二方法包括与反向传播对应的方法。
6.根据权利要求1所述的方法,其中,第一层包括卷积层,所述至少一个第二层包括至少一个全连接层并且在第一层之后。
7.根据权利要求1所述的方法,其中,根据第一方法进行学习的步骤包括:
基于第一层中的初始层的输入数据来生成部分输入图像向量,其中,第一层中的初始层的输入数据为获得的训练图像数据;
使用与初始层对应的自组织图基于部分输入图像向量来学习初始层;以及
使用学习的初始层生成初始层的输出特征图数据。
8.根据权利要求7所述的方法,其中,学习初始层的步骤包括:
使用自组织图来确定输出神经元之中的具有与部分输入图像向量中的至少一个最相似的权重的输出神经元;以及
使用自组织图基于确定的输出神经元来更新位于输出神经元的确定的范围中的至少一个输出神经元的权重。
9.根据权利要求8所述的方法,其中,生成初始层的输出特征图数据的步骤包括:
基于所述输入数据生成部分输入图像向量;
确定部分输入图像向量与更新的权重之间的相似度,以生成相似度向量;以及
基于相似度向量生成初始层的输出特征图数据。
10.根据权利要求9所述的方法,还包括:基于初始层的输出特征图数据学习第一层中的下一层;以及
基于所述至少一个第二层的前一层的输出特征图数据来学习所述至少一个第二层。
11.根据权利要求1所述的方法,还包括:
获得待识别的图像数据;以及
通过使用学习的第一层和学习的至少一个第二层对待识别的图像数据执行图像识别。
12.根据权利要求11所述的方法,其中,执行图像识别的步骤包括:通过将待识别的图像数据应用于学习的第一层来生成输出特征图数据;以及
通过将输出特征图数据应用于学习的至少一个第二层来生成输出数据,以输出图像识别结果。
13.一种神经形态设备,包括:
处理器,被配置为:
获得作为训练数据的训练图像数据,
基于获得的训练图像数据,根据第一方法学习包括在神经网络中的每个第一层,以及
根据第二方法学习包括在神经网络中的至少一个第二层。
14.根据权利要求13所述的神经形态设备,其中,第一方法包括与无监督学习对应的方法。
15.根据权利要求13所述的神经形态设备,其中,第一方法包括与自组织图对应的方法。
16.根据权利要求13所述的神经形态设备,其中,第二方法包括与有监督学习对应的方法。
17.根据权利要求13所述的神经形态设备,其中,第二方法包括与反向传播对应的方法。
18.根据权利要求13所述的神经形态设备,其中,第一层包括卷积层,所述至少一个第二层包括至少一个全连接层并且在第一层之后。
19.根据权利要求13所述的神经形态设备,其中,针对根据第一方法进行学习的步骤,处理器还被配置为:
基于第一层中的初始层的输入数据生成部分输入图像向量,其中,第一层中的初始层的输入数据为获得的训练图像数据,
使用与初始层对应的自组织图基于部分输入图像向量来学习初始层,以及
使用学习的初始层生成初始层的输出特征图数据。
20.根据权利要求19所述的神经形态设备,其中,针对学习初始层的步骤,处理器还被配置为:
使用自组织图来确定输出神经元之中的具有与部分输入图像向量中的至少一个最相似的权重的输出神经元,以及
使用自组织图基于确定的输出神经元来更新位于输出神经元的确定的范围中的至少一个输出神经元的权重。
21.根据权利要求20所述的神经形态设备,其中,针对生成初始层的输出特征图数据的步骤,处理器还被配置为:
基于所述输入数据生成部分输入图像向量,
确定部分输入图像向量与更新的权重之间的相似度,以生成相似度向量以及
基于相似度向量生成初始层的输出特征图数据。
22.根据权利要求13所述的神经形态设备,其中,处理器还被配置为:基于初始层的输出特征图数据学习第一层中的下一层;以及
基于所述至少一个第二层的前一层的输出特征图数据来学习所述至少一个第二层。
23.根据权利要求13所述的神经形态设备,其中,处理器还被配置为:
获得待识别的图像数据;以及
通过使用学习的第一层和学习的至少一个第二层对待识别的图像数据执行图像识别。
24.根据权利要求23所述的神经形态设备,其中,针对执行图像识别的步骤,处理器还被配置为:
通过将待识别的图像数据应用于学习的第一层来生成输出特征图数据,以及
通过将输出特征图数据应用于学习的至少一个第二层来生成输出数据,以输出图像识别结果。
25.根据权利要求13所述的神经形态设备,还包括:片上存储器,片上存储器包括多个核并且存储一个或多个指令,所述一个或多个指令在被处理器执行时配置处理器:
获得作为训练数据的训练图像数据;
基于获得的训练图像数据,执行每个第一层的学习;以及
执行所述至少一个第二层的学习。
26.一种训练用于图像识别的神经网络的方法,所述方法包括:
获得作为训练数据的训练图像数据;
基于训练图像数据在神经网络的卷积层生成部分输入图像向量;
使用自组织图来确定输出神经元之中的具有与部分输入图像向量最相似的权重的输出神经元;以及
使用自组织图基于确定的输出神经元来更新位于输出神经元的确定的范围中的至少一个输出神经元的权重。
27.根据权利要求26所述的方法,还包括:
使用学习的初始层基于获得的训练图像数据生成卷积层的输出特征图数据;以及
基于初始层的输出特征图数据学习神经网络的下一卷积层。
28.根据权利要求26所述的方法,还包括:接收待识别的图像输入数据并且使用学习的卷积层基于接收的图像输入数据生成识别结果输出数据。
29.一种存储指令的非暂时性计算机可读存储介质,所述指令在被一个或多个处理器执行时,配置所述一个或多个处理器执行权利要求1-12和26-28中任意一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200077376A KR20210158697A (ko) | 2020-06-24 | 2020-06-24 | 뉴로모픽 장치 및 뉴로모픽 장치를 이용하여 뉴럴 네트워크를 구현하는 방법 |
KR10-2020-0077376 | 2020-06-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113837350A true CN113837350A (zh) | 2021-12-24 |
Family
ID=74285406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011405659.7A Pending CN113837350A (zh) | 2020-06-24 | 2020-12-03 | 神经形态设备和训练用于图像识别的神经网络的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20210406694A1 (zh) |
EP (1) | EP3929822A1 (zh) |
JP (1) | JP2022008236A (zh) |
KR (1) | KR20210158697A (zh) |
CN (1) | CN113837350A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11922314B1 (en) * | 2018-11-30 | 2024-03-05 | Ansys, Inc. | Systems and methods for building dynamic reduced order physical models |
KR20200069901A (ko) * | 2018-12-07 | 2020-06-17 | 삼성전자주식회사 | 뉴럴 네트워크를 분할하는 방법 및 뉴로모픽 장치 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10325202B2 (en) * | 2015-04-28 | 2019-06-18 | Qualcomm Incorporated | Incorporating top-down information in deep neural networks via the bias term |
US10866584B2 (en) * | 2016-05-09 | 2020-12-15 | Strong Force Iot Portfolio 2016, Llc | Methods and systems for data processing in an industrial internet of things data collection environment with large data sets |
US11094029B2 (en) * | 2017-04-10 | 2021-08-17 | Intel Corporation | Abstraction layers for scalable distributed machine learning |
-
2020
- 2020-06-24 KR KR1020200077376A patent/KR20210158697A/ko active Search and Examination
- 2020-10-23 US US17/078,714 patent/US20210406694A1/en active Pending
- 2020-12-03 CN CN202011405659.7A patent/CN113837350A/zh active Pending
-
2021
- 2021-01-27 EP EP21153746.9A patent/EP3929822A1/en active Pending
- 2021-06-23 JP JP2021104263A patent/JP2022008236A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2022008236A (ja) | 2022-01-13 |
EP3929822A1 (en) | 2021-12-29 |
KR20210158697A (ko) | 2021-12-31 |
US20210406694A1 (en) | 2021-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9830709B2 (en) | Video analysis with convolutional attention recurrent neural networks | |
EP3427194B1 (en) | Recurrent networks with motion-based attention for video understanding | |
CN111095302B (zh) | 稀疏深度卷积网络权重的压缩 | |
TWI804684B (zh) | 用於在深度神經網路中利用啟動稀疏性的方法與裝置 | |
US11562205B2 (en) | Parallel processing of a convolutional layer of a neural network with compute-in-memory array | |
Zheng et al. | Learning in energy-efficient neuromorphic computing: algorithm and architecture co-design | |
US20170091619A1 (en) | Selective backpropagation | |
WO2016182671A1 (en) | Fixed point neural network based on floating point neural network quantization | |
CN112508186A (zh) | 训练用于图像识别的神经网络的方法和神经网络设备 | |
US20220156508A1 (en) | Method For Automatically Designing Efficient Hardware-Aware Neural Networks For Visual Recognition Using Knowledge Distillation | |
JP6891626B2 (ja) | 情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法 | |
KR20200003444A (ko) | 영상 모델 구축 장치 및 방법 | |
CN113837350A (zh) | 神经形态设备和训练用于图像识别的神经网络的方法 | |
Tripathi et al. | Image classification using small convolutional neural network | |
CN113065632A (zh) | 验证用于图像识别的神经网络的训练的方法和设备 | |
US11449758B2 (en) | Quantization and inferencing for low-bitwidth neural networks | |
DE112020003055T5 (de) | Neuanordnen der operationen eines neuronalen netzwerks für parallele ausführung | |
WO2021158830A1 (en) | Rounding mechanisms for post-training quantization | |
CN114626500A (zh) | 一种神经网络计算方法及相关设备 | |
AU2021281628B2 (en) | Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference | |
JP2023544170A (ja) | ニューラルネットワークモデルのためのバンクバランストスパース活性化特徴マップ | |
CN114595811A (zh) | 用于执行深度学习操作的方法和设备 | |
EP4032028A1 (en) | Efficient inferencing with fast pointwise convolution | |
Le et al. | Recurrent level set networks for instance segmentation | |
KR20190125694A (ko) | 학습 및 추론 장치 및 그 방법 |
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 |