CN113837371A - 用于实现神经网络的神经形态装置和方法 - Google Patents
用于实现神经网络的神经形态装置和方法 Download PDFInfo
- Publication number
- CN113837371A CN113837371A CN202011409845.8A CN202011409845A CN113837371A CN 113837371 A CN113837371 A CN 113837371A CN 202011409845 A CN202011409845 A CN 202011409845A CN 113837371 A CN113837371 A CN 113837371A
- Authority
- CN
- China
- Prior art keywords
- feature map
- input
- neural network
- output
- value
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 121
- 238000000034 method Methods 0.000 title claims abstract description 44
- 239000013598 vector Substances 0.000 claims abstract description 121
- 238000004364 calculation method Methods 0.000 claims abstract description 94
- 230000015654 memory Effects 0.000 claims abstract description 66
- 230000000946 synaptic effect Effects 0.000 claims abstract description 31
- 230000004913 activation Effects 0.000 claims description 91
- 238000001994 activation Methods 0.000 claims description 91
- 238000013139 quantization Methods 0.000 claims description 42
- 230000006870 function Effects 0.000 claims description 39
- 238000010606 normalization Methods 0.000 claims description 33
- 238000010586 diagram Methods 0.000 claims description 30
- 238000000638 solvent extraction Methods 0.000 claims 1
- 210000002569 neuron Anatomy 0.000 description 58
- 239000010410 layer Substances 0.000 description 46
- 210000000225 synapse Anatomy 0.000 description 22
- 230000008569 process Effects 0.000 description 15
- 230000001537 neural effect Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 14
- 239000011159 matrix material Substances 0.000 description 13
- 210000004027 cell Anatomy 0.000 description 8
- 238000007667 floating Methods 0.000 description 8
- 210000003050 axon Anatomy 0.000 description 6
- 230000001242 postsynaptic effect Effects 0.000 description 6
- 210000005215 presynaptic neuron Anatomy 0.000 description 6
- 238000012549 training Methods 0.000 description 5
- 210000004556 brain Anatomy 0.000 description 4
- 239000000463 material Substances 0.000 description 4
- 238000013178 mathematical model Methods 0.000 description 4
- 210000001787 dendrite Anatomy 0.000 description 3
- 210000003463 organelle Anatomy 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 210000005056 cell body Anatomy 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013143 model size reduction Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 239000002858 neurotransmitter agent Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000003302 ferromagnetic material Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 210000003470 mitochondria Anatomy 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 210000000653 nervous system Anatomy 0.000 description 1
- 239000012782 phase change material Substances 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 229910000314 transition metal oxide Inorganic materials 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
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
- G06N3/065—Analogue 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/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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Image Analysis (AREA)
Abstract
提供了一种用于实现神经网络的神经形态装置和方法。所述神经形态装置包括:存储器,其中存储有至少一个程序;片上存储器,包括交叉开关矩阵阵列电路;和至少一个处理器,被配置为通过执行所述至少一个程序来驱动神经网络。所述至少一个处理器还被配置为:将二进制权重值存储在包括在交叉开关矩阵阵列电路中的突触电路中;从存储器获得输入特征图;将输入特征图转换成时域二进制向量。此外所述至少一个处理器还被配置为:将时域二进制向量作为输入值提供给交叉开关矩阵阵列电路;和通过执行二进制权重值与时域二进制向量之间的卷积计算来输出输出特征图。
Description
本申请要求于2020年6月8日在韩国知识产权局提交的第10-2020-0069100号韩国专利申请的权益,所述韩国专利申请的公开通过引用全部包含于此。
技术领域
本公开涉及一种用于实现神经网络的设备以及该设备的操作方法。
背景技术
面向存储器的神经网络装置表示对生物大脑进行建模的计算架构。随着面向存储器的神经网络技术的发展,已经积极地进行了通过在各种类型的电子系统中使用面向存储器的神经网络来分析输入数据并提取有效信息的研究。
因此,为了通过使用以存储器为中心的神经网络来实时分析大量输入数据并提取期望的信息,需要一种用于高效地处理计算的技术。
发明内容
本公开提供了一种用于通过使用神经网络生成化学结构的设备和方法。本公开还提供一种其上记录有用于在计算机上执行所述方法的程序的计算机可读记录介质。将由一个或多个实施例实现的技术目标不限于如上所述的技术目标,并且其它技术问题可从下面的实施例来推断。
另外的方面将部分地在以下描述中阐述,并且部分地将从描述清楚,或者可通过实践呈现的公开的实施例而得知。
根据实施例的一方面,一种用于实现神经网络的神经形态装置包括:存储器,其中存储有至少一个程序;片上存储器,包括交叉开关矩阵阵列电路;和至少一个处理器,被配置为通过执行所述至少一个程序来驱动神经网络,其中,所述至少一个处理器还被配置为:将二进制权重值存储在包括在交叉开关矩阵阵列电路中的突触电路中;从存储器获得输入特征图;将输入特征图转换成时域二进制向量;将时域二进制向量提供为交叉开关矩阵阵列电路的输入值;和通过执行二进制权重值与时域二进制向量之间的卷积计算来输出输出特征图。
根据实施例的另一方面,一种用于实现神经网络的神经网络装置,所述神经网络装置包括:存储器,其中存储有至少一个程序;和至少一个处理器,被配置为通过执行所述至少一个程序来驱动神经网络,其中,所述至少一个处理器还被配置为:从存储器获得二进制权重值和输入特征图;将输入特征图转换成时域二进制向量;和通过执行二进制权重值与时域二进制向量之间的卷积计算来输出输出特征图。
根据实施例的另一方面,一种在神经形态装置中实现神经网络的方法包括:将二进制权重值存储在神经形态装置中的包括在交叉开关矩阵阵列电路中的突触电路中;从神经形态装置中的存储器获得输入特征图;将输入特征图转换成时域二进制向量;将时域二进制向量作为输入值提供给交叉开关矩阵阵列电路;和通过在二进制权重值与时域二进制向量之间执行卷积计算来输出输出特征图。
根据实施例的另一方面,一种在神经网络装置中实现神经网络的方法包括:从存储器获得二进制权重值和输入特征图;将输入特征图转换成时域二进制向量;和通过在二进制权重值与时域二进制向量之间执行卷积计算来输出输出特征图。
根据实施例的另一方面,提供了一种其上记录有用于在计算机上实现以上方法的程序的计算机可读记录介质。
附图说明
从下面的结合附图的描述,公开的特定实施例的以上和其它方面、特征和优点将更加清楚,其中:
图1是用于描述生物神经元和模拟生物神经元的操作的数学模型的示图。
图2A至图2B是根据实施例的用于描述神经形态装置的操作方法的示图。
图3A至图3B是根据实施例的用于将向量矩阵乘法与在交叉开关矩阵(或交叉开关,crossbar)阵列中执行的计算进行比较的示图。
图4是根据实施例的用于描述在神经形态装置中执行卷积计算的示例的示图。
图5是根据实施例的用于描述在神经网络中执行的计算的示图。
图6A至图6C是根据实施例的用于描述将初始权重值转换成二进制权重值的示例的示图。
图7A和图7B是根据实施例的用于描述将输入特征图转换成时域二进制向量的示例的示图。
图8是根据实施例的用于描述将二进制权重值和时域二进制向量应用到批归一化(或批量归一化,batch normalization)处理的示图。
图9是根据实施例的使用冯诺依曼结构(von Neumann structure)的神经网络装置的框图。
图10是根据实施例的使用存储器内结构(in-memory structure)的神经网络装置的框图。
图11是根据实施例的在神经网络装置中实现神经网络的方法的流程图。
图12是根据实施例的在神经形态装置中实现神经网络的方法的流程图。
图13是示出根据实施例的神经网络装置的硬件配置的框图。
图14是示出根据实施例的神经形态装置的硬件配置的框图。
具体实施方式
现在将对实施例进行详细参照,实施例的示例在附图中示出,其中,相同的参考标号始终表示相同的元件。在这方面,本实施例可具有不同的形式,并且不应被解释为限于在此阐述的描述。因此,通过参照附图,以下仅描述实施例以解释方面。如在此使用的,术语“和/或”包括相关联的所列项中的一个或多个的任何和所有组合。诸如“……中的至少一个”的表述在一列元素之后时,修饰整列元素,而不是修饰列中的单个元素。
除非另有明确指定,否则在贯穿本说明书中出现的短语“在一些实施例中”、“在特定实施例中”、“在各种实施例中”以及类似的语言可以但不必全部表示相同的实施例,而是表示“一个或多个但不是全部的实施例”。
可根据功能块组件和各种处理步骤来描述一些实施例。这样的功能块可由被配置为执行指定功能的任何数量的硬件和/或软件组件来实现。例如,公开的功能块可用用于特定功能的一个或多个微处理器或电路配置来实现。此外,公开的功能块可用任何编程或脚本语言来实现。功能块可以在一个或多个处理器上执行的算法中实现。此外,公开可以采用任何数量的用于电子配置、信号处理和/或数据处理的常规技术。诸如“机制”、“元件”、“装置”和“组合物”的术语可以广泛使用,并且不限于机械组件和物理组件。
此外,在呈现的各种附图中示出的连接线或连接器意在表示各种元件之间的示例性功能关系和/或物理结合或逻辑结合。应注意,在实际装置中可存在许多替换功能关系或附加功能关系、物理连接或逻辑连接。
在下文中,将参照附图详细描述本公开。
图1是用于描述生物神经元和模拟生物神经元的操作的数学模型的示图。
生物神经元表示人类神经系统中的细胞。生物神经元可以是基本生物计算实体之一。人脑包括约1000亿个生物神经元和生物神经元之间的约100万亿个互连(interconnection)。
生物神经元10是单细胞。生物神经元10包括神经元细胞体(neuron cell body),神经元细胞体包括核(nucleus)和各种细胞器(organelle)。各种细胞器可包括线粒体、从神经元细胞体延伸的多个树突(dendrite)以及从大量延伸部(extension)延伸的轴突(axon)。
通常,轴突执行将信号从神经元发送到另一神经元的功能,树突执行从另一神经元接收信号的功能。例如,当不同的神经元彼此连接时,通过神经元的轴突发送的信号可被另一神经元的树突接收。此时,神经元之间的信号通过称为突触(synapse)的专用连接而被发送,多个神经元彼此连接以形成神经网络。基于突触分泌神经递质(neurotransmitter)的神经元可被称为突触前神经元(pre-synaptic neuron),接收通过神经递质发送的信息的神经元可被称为突触后神经元(post-synaptic neuron)。
同时,人脑可通过由大量神经元彼此连接而形成的神经网络发送和处理各种信号来学习和记忆大量的信息。由于人脑中的神经元之间的大量连接与生物计算的大规模并行性质直接相关,因此已经进行了各种尝试以通过人工模拟生物神经网络来高效地处理大量信息。例如,作为设计为在神经元级实现人工神经网络的计算系统,神经形态装置正在被研究。
同时,生物神经元10的操作可通过数学模型11而被模拟。与生物神经元10对应的数学模型11可包括以下计算作为神经形态计算的示例:将来自多个神经元的信息与突触权重相乘的乘法计算、针对通过将突触权重相乘而获得的值ω0x0、ω1x1、ω2x2的加法计算∑、以及用于将特征函数b和激活函数f应用到加法计算的结果的计算。神经形态计算结果可由神经形态计算提供。这里,像x0、x1、x2等的值对应于轴突值,像ω0、ω1、ω2等的值对应于突触权重。
图2A至图2B是根据实施例的用于描述操作神经形态装置的方法的示图。
参照图2A,神经形态装置可包括交叉开关矩阵(或交叉开关,crossbar)阵列电路单元。交叉开关矩阵阵列电路单元可包括多个交叉开关矩阵阵列电路,每个交叉开关矩阵阵列电路可被实现为电阻式交叉开关矩阵存储器阵列(RCA)。详细地,每个交叉开关矩阵阵列电路可包括与突触前神经元对应的输入节点210、与突触后神经元对应的神经元电路220以及提供输入节点210与神经元电路220之间的连接的突触电路230。
在一个实施例中,神经形态装置的交叉开关矩阵阵列电路包括四个输入节点210、四个神经元电路220和十六个突触电路230,但是数量可变化。当输入节点210的数量是N(这里,N是等于或大于2的自然数)并且神经元电路220的数量是M(这里,M是等于或大于2的自然数并且可与N相同或不同)时,N×M个突触电路230可以以矩阵形状而被布置。
详细地,可设置连接到输入节点210并在第一方向(例如,经度方向)上延伸的线21以及连接到神经元电路220并在与第一方向交叉的第二方向(例如,纬度方向)上延伸的线22。在下文中,为了便于说明,在第一方向上延伸的线21将被称为行线,而在第二方向上延伸的线22将被称为列线。多个突触电路230可布置在行线21和列线22的各自交叉点处,从而连接对应的行线21和对应的列线22。
输入节点210可生成信号(例如,与特定数据对应的信号)并且将该信号发送到行线21,而神经元电路220可通过列线22接收穿过突触电路230的突触信号并且处理该突触信号。输入节点210可对应于轴突,神经元电路220可对应于神经元。然而,神经元是突触前神经元还是突触后神经元可基于与其它神经元的相对关系而被确定。例如,当输入节点210接收与另一神经元有关的突触信号时,神经元电路220可用作突触后神经元。类似地,当神经元电路220发送与另一神经元有关的信号时,神经元电路220可用作突触前神经元。
输入节点210与神经元电路220之间的连接可通过突触电路230而被建立。这里,突触电路230是其电导或权重根据施加到其两端的电脉冲(例如,电压或电流)而改变的装置。
突触电路230可包括例如可变电阻元件。可变电阻器件是可根据施加到其两端的电压或电流在不同的电阻状态之间被切换并且可具有包括可具有多种电阻状态的各种材料(例如,像过渡金属氧化物和钙钛矿基材料的金属氧化物、像硫族化物材料的相变材料、铁电材料、铁磁材料等)的单层结构或多层结构的器件。可变电阻元件和/或突触电路230从高电阻状态改变成低电阻状态的操作可被称为置位操作,而可变电阻元件和/或突触电路230从低电阻状态改变成高电阻状态的操作可被称为复位操作。
以下将参照图2B描述神经形态装置的操作。为了便于说明,行线21按照从上开始的顺序将被称为第一行线21A、第二行线21B、第三行线21C以及第四行线21D,列线22按照从左开始的顺序将被称为第一列线22A、第二列线22B、第三列线22C以及第四列线22D。
参照图2B,在初始状态下,突触电路230的全部可处于相对低电导率的状态(即,高电阻状态)。当突触电路230中的一些处于低电阻状态时,用于将它们切换到高电阻状态的初始化操作可被另外需要。突触电路230中的每个可具有用于改变电阻和/或电导率的预定阈值。详细地,当具有小于预定阈值的大小的电压或电流被施加到突触电路230中的每个的两端时,突触电路230的电导率可不被改变。另一方面,当具有大于预定阈值的大小的电压和/或电流被施加到突触电路230时,突触电路230的电导率可被改变。
在这种状态下,为了执行用于输出作为特定列线22的结果的特定数据的操作,与特定数据对应的输入信号可响应于输入节点210的输出而被输入到行线21。此时,输入信号可作为将电脉冲施加到行线21中的每条的结果而出现。例如,当与数据“0011”对应的输入信号通过行线21而被输入时,电脉冲可不被施加到与“0”对应的行线21(例如,第一行线21A和第二行线21B),并且电脉冲可仅被施加到与“1”对应的行线21(例如,第三行线21C和第四行线21D)。此时,列线22可用用于列线22的输出的适当电压或电流而被驱动。
例如,当将输出特定数据的列线22已经被确定时,对应的列线22可被驱动,使得位于与对应于“1”的行线21的交叉点的突触电路230接收具有等于或大于执行置位操作所需的电压(在下文中,被称为置位电压)的大小的电压,并且剩余的列线22可被驱动,使得突触电路230接收具有小于置位电压的大小的大小的电压。例如,当置位电压的大小是Vset并且第三列线22C被确定为用于输出数据“0011”的列线22时,施加到第三行线21C和第四行线21D的电脉冲的大小可等于或大于Vset并且施加到第三列线22C的电压可以是0V,使得位于第三列线22C与第三行线21C和第四行线21D之间的交叉点的第一突触电路230A和第二突触电路230B接收等于或大于Vset的电压。因此,第一突触电路230A和第二突触电路230B可处于低电阻状态。处于低电阻状态的第一突触电路230A和第二突触电路230B的电导率可随着电脉冲的数量增加而逐渐增加。施加到其第三行线21C和第四行线21D的电脉冲的大小和宽度可以是基本上恒定的。施加到剩余列线(即,第一列线22A、第二列线22B和第四列线22D)的电压可具有0V与Vset之间的值(例如,1/2Vset),使得除了第一突触电路230A和第二突触电路230B之外的突触电路230接收小于Vset的电压。因此,除了第一突触电路230A和第二突触电路230B之外的剩余突触电路230的电阻状态可不被改变。
在另一示例中,可不指定特定列线22来输出特定数据。在这种情况下,流过列线22中的每条的电流可在将与特定数据对应的电脉冲施加到行线21的同时而被测量,首先达到预定阈值电流的列线22(例如,第三列线22C)可被确定为将输出特定数据的列线22。
通过以上描述方法,不同的数据可被分别输出到不同的列线22。
图3A至图3B是根据实施例的用于将向量矩阵乘法与在交叉开关矩阵阵列中执行的计算进行比较的示图。
首先,参照图3A,输入特征图与权重值之间的卷积计算可通过使用向量矩阵乘法而被执行。例如,输入特征图的像素数据可被表示为矩阵X 310,权重值可被表示为矩阵W311。输出特征图的像素数据可被表示为矩阵Y 312,矩阵Y 312是矩阵X 310与矩阵W 311之间的乘法计算的结果。
参照图3B,向量乘法计算可通过使用交叉开关矩阵阵列的非易失性存储器装置而被执行。与图3A相比,输入特征图的像素数据可被接收为非易失性存储器装置的输入值,输入值可以是电压320(例如,电压V1,V2,…,Vm,其中,m是正整数)。此外,权重值可被存储在非易失性存储器装置的突触(即,存储器单元)中,存储在存储器单元中的权重值可以是电导321(例如,电导G11,G12,…,G1m,G21,G22,…,G2m,…,Gn1,Gn2,…,Gnm,其中,n是正整数)。因此,非易失性存储器装置的输出值可被表示为电流322(例如,电流I1,I2,…,Im),电流322是电压320与电导321之间的乘法计算的结果。
图4是根据实施例的用于描述在神经形态装置中执行卷积计算的示例的示图。
神经形态装置可接收输入特征图410的像素,神经形态装置的交叉开关矩阵阵列电路400可被实现为电阻式交叉开关矩阵存储器阵列(RCA)。
神经形态装置可接收数字信号形式的输入特征图,并且通过使用数模转换器(DAC)420将输入特征图转换成模拟信号形式的电压。在一个实施例中,神经形态装置可通过使用DAC 420将输入特征图的像素值转换成电压,并且将电压提供为交叉开关矩阵阵列电路400的输入值401。
此外,学习的权重值可被存储在神经形态装置的交叉开关矩阵阵列电路400中。权重值可被存储在交叉开关矩阵阵列电路400的存储器单元中,存储在存储器单元中的权重值可以是电导402。此时,神经形态装置可通过执行输入值401与电导402之间的向量乘法计算来计算输出值,输出值可被表示为电流403。换句话说,神经形态装置可通过使用交叉开关矩阵阵列电路400输出与作为输入特征图与权重值之间的卷积计算的结果相同的结果。
由于从交叉开关矩阵阵列电路400输出的电流403是模拟信号,因此神经形态装置可使用模数转换器(ADC)430以使用电流403作为另一交叉开关矩阵阵列电路的输入特征图。神经形态装置可使用ADC 430以将作为模拟信号的电流403转换成数字信号。在一个实施例中,神经形态装置可通过使用ADC 430将电流403转换成具有与输入特征图410的像素相同数量的位的数字信号。例如,当输入特征图410的像素是4位数据时,神经形态装置可通过使用ADC 430将电流403转换成4位数据。
神经形态装置可通过使用激活单元440将激活函数应用到由ADC 430转换的数字信号。S型(Sigmoid)函数、Tanh函数和线性整流函数(ReLU)函数可被用作激活函数,但是可应用到数字信号的激活函数不限于此。
应用激活函数的数字信号可被用作另一交叉开关矩阵阵列电路450的输入特征图。当应用激活函数的数字信号被用作另一交叉开关矩阵阵列电路450的输入特征图时,以上描述的处理可以以相同的方式被应用到其它交叉开关矩阵阵列电路450。
图5是根据实施例的用于描述在神经网络中执行的计算的示图。
参照图5,神经网络500可具有包括输入层、隐藏层和输出层的结构,基于接收的输入数据(例如,I1和I2)执行计算,并且基于执行计算的结果生成输出数据(例如,O1和O2)。
例如,如图5中所示,神经网络500可包括输入层(层1),两个隐藏层(层2和层3)以及输出层(层4)。由于神经网络500包括能够处理有效信息的更多个层,因此神经网络500能够比具有单个层的神经网络处理更复杂的数据集。同时,尽管图5示出了神经网络500包括四个层,但是其仅是示例,并且神经网络500可包括更少或更多的层或者可包括更少或更多的通道。换句话说,神经网络500可包括不同于图5中示出的结构的各种结构的层。
包括在神经网络500中的每个层可包括多个通道。通道可对应于多个人工节点(被称为神经元、处理元件(PE)、单元或类似术语)。例如,如图5中所示,层1可包括两个通道(节点),层2和层3可各自包括三个通道。然而,这仅是示例,并且包括在神经网络500中的层可各自包括各种数量的通道(节点)。
包括在神经网络500的每个层中的通道可彼此连接并且处理数据。例如,一个通道可从其它通道接收数据并执行计算,并且将计算的结果输出到其它通道。
每个通道的输入和输出可被称为输入特征图和输出特征图。输入特征图可包括多个输入激活,输出特征图可包括多个输出激活。换句话说,特征图或激活可以是一个通道的输出,并且同时可以是与包括在下一层中的通道的输入对应的参数。在一个示例中,输入特征图和输出特征图可响应于图像数据被输入到神经网络500而通过神经网络500来生成,从而执行图像识别。例如,输入层(例如,层1)的输入特征图可对应于输入的图像数据,每个中间层(例如,隐藏层)的输入特征图可对应于从前一层输出的输出特征图。在这种情况下,输出层可输出图像识别结果。
同时,每个通道可基于从包括在前一层中的通道接收的激活和权重值来确定它自己的激活。权重值是用于计算每个通道中的输出激活的参数,并且可以是分配给通道之间的连接关系的值。
每个通道可由接收输入并输出输出激活的计算单元或PE处理,每个通道的输入和输出可被映射。例如,当σ是激活函数、是从包括在第(i-1)层中的第k通道到包括在第i层中的第j通道的权重值、是包括在第i层中的第j通道的偏置并且是包括在第i层中的第j通道的激活时,激活可通过使用下面的等式1而被计算。
【等式1】
如图5中所示,层2的第一通道CH1的激活可被表示为此外,根据等式1,可具有值然而,以上描述的等式1仅是用于描述用于处理神经网络500中的数据的激活和权重值的示例,并且本公开不限于此。激活可以是通过将批处理归一化和激活函数应用到从前一层接收的激活的总和而获得的值。
图6A至图6C是根据实施例的用于描述将初始权重值转换成二进制权重值的示例的示图。
参照图6A,示出了输入层601、输出层602和初始权重值W11、W12、……、W32以及W33。三个输入激活I1、I2和I3可分别对应于输入层601的三个神经元,三个输出激活O1、O2和O3可分别对应于输出层602的三个神经元。此外,初始权重值Wnm可被应用到第n输入激活In和第m输出激活Om。
图6B的初始权重值610以矩阵的形式表示图6A中示出的初始权重值W11、W12、……、W32以及W33。
初始权重值610可在神经网络的训练处理期间被确定。在一个实施例中,初始权重值610可被表示为32位浮点数。
初始权重值610可被转换成二进制权重值620。二进制权重值620可各自具有1位的大小。在本公开中,模型大小和操作计数可通过在神经网络的推断处理期间使用二进制权重值620而非初始权重值610来减小。例如,当32位初始权重值610被转换成1位二进制权重值620时,模型大小可被压缩成1/32。
在一个实施例中,基于初始权重值610的最大值和最小值,初始权重值610可被转换成二进制权重值620。在一个实施例中,基于可被输入到神经网络的初始权重值的最大值和最小值,初始权重值610可被转换成二进制权重值620。
例如,可被输入到神经网络的初始权重值的最大值可以是1.00,最小值可以是-1.00。当初始权重值是0.00或更大时,初始权重值可被转换成二进制权重值1。当初始权重值小于0.00时,初始权重值可被转换成二进制权重值-1。
此外,二进制权重值620可与初始权重值610的绝对值的平均值630相乘。由于二进制权重值620与初始权重值610的绝对值的平均值630相乘,因此即使当二进制权重值620被使用时,与使用初始权重值610的情况的结果类似的结果也可被获得。
例如,当假设1024个神经元存在于前一层中并且512个神经元存在于当前层中时,属于当前层的512个神经元各自具有1024个初始权重值610。这里,在作为32位浮点数的1024个初始权重值610的绝对值的平均值针对每个神经元被计算之后,二进制权重值620可与计算的结果相乘。
详细地,用于计算预定输出激活O1、O2和O3的初始权重值610可与用于计算预定输出激活O1、O2和O3的初始权重值610的绝对值的平均值630相乘。
例如,参照图6A,初始权重值W11、W21和W31可在计算第一输出激活O1的处理期间被使用。初始权重值W11、W21和W31分别被转换成二进制权重值W11'、W21'和W31',二进制权重值W11'、W21'和W31'可与初始权重值W11、W21和W31的绝对值的平均值相乘。
在相同的方面,二进制权重值W12'、W22'和W32'可与初始权重值W12、W22和W32的绝对值的平均值相乘。此外,二进制权重值W13'、W23'和W33'可与初始权重值W13、W23和W33的绝对值的平均值相乘。
参照图6C,初始权重值610、二进制权重值620和初始权重值610的绝对值的平均值630被示出为具体值。在图6C中,为了便于说明,初始权重值610以十进制表示,但是假设初始权重值610是32位浮点数。
图6C示出了将等于或大于0.00的初始权重值转换成二进制权重值1,并且将小于0.00的初始权重值转换成二进制权重值-1。
此外,图6C示出了初始权重值W11、W21和W31的绝对值的平均值是“0.28”,初始权重值W12、W22和W32的绝对值的平均值是“0.37”,并且初始权重值W13、W23和W33的绝对值的平均值是“0.29”。
图7A和图7B是根据实施例的用于描述将输入特征图转换成时域二进制向量的示例的示图。
输入特征图可被转换成多个时域二进制向量。输入特征图可包括多个输入激活,并且多个输入激活中的每个可被转换成时域二进制向量。
输入特征图可基于量化等级而被转换成多个时域二进制向量。在一个实施例中,可被输入到神经网络的输入激活的最大值与最小值之间的范围可被划分成N个量化等级(N是自然数)。例如,S型(sigmoid)函数或tanh函数可被用于对量化等级进行分类,但是本公开不限于此。
例如,参照图7A,当九个量化等级被设置并且可被输入到神经网络的输入激活的最大值和最小值分别是1.0和-1.0时,量化等级可以是“1.0、0.75、0.5、0.25、0、-0.25、-0.5、-0.75和-1.0”。
同时,尽管图7A示出量化等级之间的间隔被设置为相同,但是量化等级之间的间隔可被设置为非线性方式。
当N个量化等级被设置时,时域二进制向量可具有N-1个元素。例如,参照图7A,当九个量化等级被设置时,时域二进制向量可具有八个元素t1、t2、……、t7和t8。
基于从N个量化等级之中输入激活所属的量化等级,输入激活可被转换成时域二进制向量。例如,当预定输入激活具有等于或大于0.75的值时,预定输入激活可被转换成时域二进制向量“+1、+1、+1、+1、+1、+1、+1、+1”。此外,在另一示例中,当预定输入激活具有小于-0.25并且等于或大于-0.5的值时,预定输入激活可被转换成时域二进制向量“+1、+1、+1、-1、-1、-1、-1、-1”。
参照图7B,示出了包括在输入特征图710中的多个输入激活中的每个被转换成时域二进制向量的示例。由于第一激活具有小于0并且等于或大于-0.25的值,因此第一激活可被转换成时域二进制向量“-1、-1、-1、-1、+1、+1、+1、+1”。同时,由于第二激活具有小于0.5并且等于或大于0.25的值,因此第二激活可被转换成时域二进制向量“-1、-1、+1、+1、+1、+1、+1、+1”。此外,由于第三激活具有小于-0.75并且等于或大于-1.0的值,因此第三激活可被转换成时域二进制向量“-1、-1、-1、-1、-1、-1、-1、+1”。同时,由于第四激活具有等于或大于0.75的值,因此第四激活可被转换成时域二进制向量“+1、+1、+1、+1、+1、+1、+1、+1”。
同时,当神经网络的每个层的每个输入激活以常规方式而被转换成二进制值时,由输入激活携带的信息丢失,因此信息可不在层之间被正常传送。
另一方面,如在本公开中,当神经网络的每个层的每个输入激活被转换成时域二进制向量时,原始输入激活可基于多个二进制值而被近似。因此,例如,当神经网络用于图像识别时,可实现相对高的准确率。
图8是根据实施例的用于描述将二进制权重值和时域二进制向量应用到批归一化(或批量归一化,batch normalization)处理的示图。
通常,在神经网络算法模型中,在用于将输入激活(初始输入值或来自前一层的输出值)与初始权重值(32位浮点数)相乘并且将乘法的结果相加的乘积累加(MAC)计算被执行之后,针对每个神经元添加单独的偏置值。然后,针对每个神经元对其结果执行批归一化。接下来,在将批归一化的结果输入到激活函数中之后,激活函数的输出值作为下一层的输入值而被传送。
上述处理可被表示为等式2。在等式2中,In表示输入激活、Wnm表示初始权重值、Bm表示偏置值、αm表示批归一化的初始标度值(scale value)、βm表示批归一化的偏置值、f表示激活函数,Om表示输出激活。
【等式2】
参照图8,输入激活In 810可被转换成时域二进制向量Ib n(t)820。时域二进制向量生成器可将输入激活In 810转换成时域二进制向量Ib n(t)820。
如以上参照图7A至图7B所述,输入激活In 810可根据预设的量化等级而被转换成时域二进制向量Ib n(t)820。同时,包括在每个时域二进制向量Ib n(t)820中的元素的数量可根据量化等级的数量而被确定。例如,当量化等级的数量是N时,包括在每个时域二进制向量Ib n(t)820中的元素的数量可以是N-1。
另一方面,当输入激活In 810被转换成时域二进制向量Ib n(t)820时,使用时域二进制向量Ib n(t)820的计算结果可通过包括在时域二进制向量Ib n(t)820中的元素的数量T850进行放大。因此,在使用时域二进制向量Ib n(t)820的情况下,可将计算的结果除以元素的数量T 850,以获得与原始MAC计算的结果相同的结果。将通过使用等式5和等式6给出其详细描述。
如以上参照图6A至图6C所述,初始权重值Wnm可被转换成二进制权重值Wb nm 830。例如,初始权重值Wnm可通过符号函数而被转换成二进制权重值Wb nm 830。
时域二进制向量Ib n(t)820与二进制权重值Wb nm 830之间的卷积计算可被执行。在一个实施例中,时域二进制向Ib n(t)820与二进制权重值Wb nm 830之间的同或(XNOR)计算和加法计算可被执行。
在执行时域二进制向量Ib n(t)820与二进制权重值Wb nm 830之间的XNOR计算并对其结果求和之后,与执行原始多位输入激活In 810与二进制初始权重值Wnm之间的卷积计算的结果的增加/减少模式相同的增加/减少模式出现。
时域二进制向量Ib n(t)820与二进制权重值Wb nm 830之间的计算可被表示为下面的等式3。
【等式3】
作为卷积计算的结果,中间激活Xm 840可被获得。中间激活Xm 840可被表示为下面的等式4。
【等式4】
中间激活Xm 840可与初始权重值的绝对值的平均值Sm 860相乘。
此外,中间激活Xm 840可除以包括在时域二进制向量Ib n(t)820中的每个中的元素的数量T 850。包括在时域二进制向量Ib n(t)820中的每个中的元素的数量T 850可根据量化等级的数量而被确定。由于使用时域二进制向量Ib n(t)820的计算的结果通过元素的数量T850进行放大,因此中间激活Xm 840可除以元素的数量T 850,从而获得与原始MAC计算的结果相同的结果。
当中间激活Xm 840与初始权重值的绝对值的平均值Sm 860相乘并且除以包括在时域二进制向量Ib n(t)820中的每个中的元素的数量T 850时,输出激活Om 870可被获得。输出激活Om 870可被表示为下面的等式5。
【等式5】
Om=Xm×Sm÷T
在一个实施例中,当批归一化被执行时,由于批归一化的初始标度值与初始权重值的绝对值的平均值Sm 860相乘并且除以包括在时域二进制向量Ib n(t)820中的每个中的元素的数量T 850,因此修改的标度值α"m可被获得。
当根据等式2将二进制权重值Wb nm、时域二进制向量Ib n(t)和校正标度值α"m(即,修改的标度值α"m)应用到神经网络算法模型时,等式2可被表示为下面的等式6。
【等式6】
在本公开中,通过将表达为多位浮点数的初始权重值Wnm转换成具有值+1或-1的二进制权重值Wb nm 830,模型大小和操作计数可被减小。
在本公开中,通过将二进制权重值Wb nm 830与初始权重值的绝对值的平均值Sm860相乘,即使当二进制权重值Wb nm 830被使用时,与使用初始权重值Wnm的情况的结果类似的结果也可被获得。
另一方面,由于初始权重值的绝对值的平均值Sm 860可被包括在如等式6中所示的批归一化计算(Mm×αm)中,附加的模型参数不被生成,因此在模型尺寸减小和运算计数减小方面不存在损失。换句话说,与等式2相比,可看出,在等式6中,可在没有附加参数和单独过程的情况下执行计算。
在本公开中,多位输入激活In810可被量化为低位数(例如,2位至3位),并且其结果可被转换成具有多个元素的时域二进制向量Ib n(t)820。此外,在本公开中,通过在二进制权重值Wb nm 830与时域二进制向量Ib n(t)820之间执行时间轴XNOR计算,在与基于MAC计算的32位浮点神经网络的学习(或训练)性能和最终分类/识别准确度水平类似的学习(或训练)性能和最终分类/识别准确度水平可被确保。
另一方面,由于元素的数量T 850可被包括在如等式6所示的批归一化计算(αm×1/T)中,附加的模型参数不被生成,因此在模型尺寸减小和操作计数减小中不存在损失。换句话说,与等式2相比,可看出,在等式6中,可在没有附加参数和单独过程的情况下执行计算。因此,例如,当神经网络用于图像识别时,可实现相对快速的识别速度。
例如,当32位输入激活In 810被转换成具有T个元素的时域二进制向量Ib n(t)820时,模型大小可被压缩成T/32。
图9是根据实施例的使用冯诺依曼结构(von Neumann structure)的神经网络装置的框图。
参照图9,神经网络装置900可包括外部输入接收器910、存储器920、时域二进制向量生成器930、卷积计算单元940以及神经计算单元950。
在图9中示出的神经网络装置900中,仅示出了与本公开相关的组件。因此,对于本领域普通技术人员清楚的是,除了图9中示出的组件之外,神经网络装置900还可包括其它通用组件。
外部输入接收器910可从外部接收神经网络模型相关信息、输入图像(或音频)数据等。由外部输入接收器910接收的各种类型的信息和数据可被存储在存储器920中。
在一个实施例中,存储器920可被划分为第一存储器和第二存储器,第一存储器用于存储输入特征图,第二存储器用于存储二进制权重值、其它实数参数和模型结构定义变量。同时,存储在存储器920中的二进制权重值可以是通过对初始权重值(例如,32位浮点数)进行转换而获得的值,其中,针对初始权重值,神经网络的学习(或训练)被完成。
时域二进制向量生成器930可从存储器920接收输入特征图。时域二进制向量生成器930可将输入特征图转换成时域二进制向量。输入特征图可包括多个输入激活,时域二进制向量生成器930可将多个输入激活中的每个转换成时域二进制向量。
详细地,时域二进制向量生成器930可基于量化等级将输入特征图转换成多个时域二进制向量。在一个实施例中,当可被输入到神经网络的输入激活的最大值与最小值之间的范围可被划分成N个量化等级(N是自然数)时,时域二进制向量生成器930可将输入激活转换成具有N-1个元素的时域二进制向量。
卷积计算单元940可从存储器920接收二进制权重值。此外,卷积计算单元940可从时域二进制向量生成器930接收多个时域二进制向量。
卷积计算单元940可包括加法器,卷积计算单元940可执行二进制权重值与多个时域二进制向量之间的卷积计算。
神经计算单元950可从卷积计算单元940接收二进制权重值以及二进制权重值与多个时域二进制向量之间的卷积计算的结果。此外,神经计算单元950可从存储器920接收批归一化的修改的标度值、批归一化的偏置值、激活函数等。
批归一化和池化可被执行,激活函数可在神经计算单元950中被应用。然而,可在神经计算单元950中执行和应用的计算不限于此。
同时,批归一化的修改的标度值可通过将初始标度值与初始权重值的绝对值的平均值相乘并且将其结果除以包括在每个时域二进制向量中的元素的数量T而被获得。
当批归一化被执行并且激活函数在神经计算单元950中被应用时,输出特征图可被输出。输出特征图可包括多个输出激活。
图10是根据实施例的使用存储器内结构(in-memory structure)的神经网络装置的框图。
参照图10,神经形态装置1000可包括外部输入接收器1010、存储器1020、时域二进制向量生成器1030、片上存储器1040以及神经计算单元1050。
在图10中示出的神经形态装置1000中,仅示出了与本公开相关的组件。因此,对于本领域普通技术人员清楚的是,除了图10中示出的组件之外,神经形态装置1000还可包括其它通用组件。
外部输入接收器1010可从外部接收神经网络模型相关信息、输入图像(或音频)数据等。由外部输入接收器1010接收的各种类型的信息和数据可被存储在存储器1020中。
存储器1020可存储输入特征图、其它实数参数、模型结构定义变量等,与图9的神经网络装置900不同,二进制权重值可被存储在片上存储器1040而非存储器1020中,其详细描述将在之后给出。
时域二进制向量生成器1030可从存储器1020接收输入特征图。时域二进制向量生成器1030可将输入特征图转换成时域二进制向量。输入特征图可包括多个输入激活,时域二进制向量生成器1030可将多个输入激活中的每个转换成时域二进制向量。
详细地,时域二进制向量生成器1030可基于量化等级将输入特征图转换成多个时域二进制向量。在一个实施例中,当可被输入到神经网络的输入激活的最大值与最小值之间的范围可被划分成N个量化等级(N是自然数)时,时域二进制向量生成器1030可将输入激活转换成具有N-1个元素的时域二进制向量。
片上存储器1040可包括输入单元1041、交叉开关矩阵阵列电路1042和输出单元1043。
交叉开关矩阵阵列电路1042可包括多个突触电路(例如,可变电阻器)。二进制权重值可被存储在多个突触电路中。存储在多个突触电路中的二进制权重值可以是通过对初始权重值(例如,32位浮点数)进行转换而获得的值,其中,针对初始权重值,神经网络的学习(或训练)被完成。
输入单元1041可从时域二进制向量生成器1030接收多个时域二进制向量。
当输入单元1041接收到多个时域二进制向量时,交叉开关矩阵阵列电路1042可执行二进制权重值与多个时域二进制向量之间的卷积计算。
输出单元1043可将卷积计算的结果发送到神经计算单元1050。
神经计算单元1050可从输出单元1043接收二进制权重值以及二进制权重值与多个时域二进制向量之间的卷积计算的结果。此外,神经计算单元1050可从存储器1020接收批归一化的修改的标度值、批归一化的偏置值、激活函数等。
批归一化和池化可被执行,激活函数可在神经计算单元1050中被应用。然而,可在神经计算单元1050中执行和应用的计算不限于此。
同时,批归一化的修改的标度值可通过将初始标度值与初始权重值的绝对值的平均值相乘并且将其结果除以包括在每个时域二进制向量中的元素的数量T而被获得。
当批归一化被执行并且在激活函数神经计算单元1050中被应用时,输出特征图可被输出。输出特征图可包括多个输出激活。
图11是根据实施例的在神经网络装置中实现神经网络的方法的流程图。
参照图11,在操作1110中,神经网络装置可从存储器获得二进制权重值和输入特征图。
在操作1120中,神经网络装置可将输入特征图转换成时域二进制向量。
在一个实施例中,神经网络装置可基于量化等级将输入特征图转换成时域二进制向量。
具体地,神经网络装置可将可被输入到神经网络的最大值与最小值之间的范围划分成N(N是自然数)个量化等级,并且基于N个量化等级之中的输入特征图的各自激活所属的量化等级而将各自激活转换成时域二进制向量。
同时,神经网络装置可将可被输入到神经网络的最大值与最小值之间的范围划分成线性量化等级或非线性量化等级。
在操作1130中,神经网络装置可通过执行二进制权重值与时域二进制向量之间的卷积计算来输出输出特征图。
神经网络装置可通过对卷积计算的结果执行批归一化来输出输出特征图。
在一个实施例中,神经网络装置可通过将批归一化的初始标度值与初始权重值的绝对值的平均值相乘并且将其结果除以包括在每个时域二进制向量中的元素的数量来获得修改的标度值。神经网络装置可基于修改的标度值执行批归一化。
神经网络装置可执行用于将应用到神经网络的每个偏置值与初始标度值相乘的乘法计算,并且将乘法计算的结果反映到输出特征图。
神经网络装置可通过对卷积计算的结果执行批归一化并且将激活函数应用到批归一化的结果来输出输出特征图。
图12是根据实施例的在神经形态装置中实现神经网络的方法的流程图。
参照图12,在操作1210中,神经形态装置可将二进制权重值存储在包括在交叉开关矩阵阵列电路中的突触电路中。
在操作1220中,神经形态装置可从存储器获得输入特征图。
在操作1230中,神经形态装置可将输入特征图转换成时域二进制向量。
在一个实施例中,神经形态装置可基于量化等级将输入特征图转换成时域二进制向量。
具体地,神经形态装置可将可被输入到神经网络的最大值与最小值之间的范围划分成N(N是自然数)个量化等级,并且基于N个量化等级之中的输入特征图的各自激活所属的量化等级而将各自激活转换成时域二进制向量。
同时,神经形态装置可将可被输入到神经网络的最大值与最小值之间的范围划分成线性量化等级或非线性量化等级。
在操作1240中,神经形态装置可将时域二进制向量提供为交叉开关矩阵阵列电路的输入值。
在操作1250中,神经形态装置可通过执行二进制权重值与时域二进制向量之间的卷积计算来输出输出特征图。
神经形态装置可通过对卷积计算的结果执行批归一化来输出输出特征图。
在一个实施例中,神经形态装置可通过将批归一化的初始标度值与初始权重值的绝对值的平均值相乘并且将其结果除以包括在每个时域二进制向量中的元素的数量来获得修改的标度值。神经形态装置可基于修改的标度值来执行批归一化。
神经形态装置可执行用于将应用到神经网络的每个偏置值与初始标度值相乘的乘法计算,并且将乘法计算的结果反映到输出特征图。
神经形态装置可通过对卷积计算的结果执行批归一化并且将激活函数应用到批归一化的结果来输出输出特征图。
图13是示出根据实施例的神经网络装置的硬件配置的框图。
神经网络装置1300可被实现为各种类型的装置(诸如,个人计算机(PC)、服务器装置、移动装置以及嵌入式装置)。详细地,例如,神经网络装置1300可以是通过使用神经网络执行语音识别、图像识别、图像分类等的智能电话、平板装置、增强现实(AR)装置、物联网(IoT)装置、自主车辆、机器人、医疗装置等。然而,本公开不限于此。此外,神经网络装置1300可对应于安装在如上所述的装置上的专用硬件加速器。神经网络装置1300可以是作为用于驱动神经网络的专用模块的像神经处理单元(NPU)、张量处理单元(TPU)或神经引擎的硬件加速器,但不限于此。
参照图13,神经网络装置1300包括处理器1310和存储器1320。在图13中示出的神经网络装置1300中,仅示出了与本公开相关的组件。因此,对于本领域普通技术人员清楚的是,除了图13中示出的组件之外,神经网络装置1300还可包括其它通用组件。
处理器1310用于控制用于操作神经网络装置1300的整体功能。例如,处理器1310通过在神经网络装置1300中执行存储在存储器1320中的程序来整体控制神经网络装置1300。处理器1310可被实现为包括再神经网络装置1300中的中央处理器(CPU)、图形处理器(GPU)、应用处理器(AP)等,但不限于此。
存储器1320是存储神经网络装置1300中处理的各种类型的数据的硬件组件。例如,存储器1320可存储在神经网络装置1300中处理的数据和将被处理的数据。此外,存储器1320可存储将由神经网络装置1300执行的应用、驱动程序等。存储器1320可包括随机存取存储器(RAM)(诸如,动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM))、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、CD-ROM、蓝光或另外的光盘存储装置、硬盘驱动器(HDD)、固态驱动器(SSD)或闪存。
处理器1310从存储器1320读取神经网络数据(诸如,图像数据、特征图数据和权重值数据)/向存储器1320写入神经网络数据,并且通过使用被读取/写入的数据来执行神经网络。当神经网络被执行时,处理器1310重复地执行输入特征图与权重值之间的卷积计算以生成关于输出特征图的数据。此时,卷积计算的计算量可基于各种因素(诸如,输入特征图的通道的数量、权重值的通道的数量、输入特征图的大小、权重值的大小以及值的精度)而被确定。
由神经网络装置1300驱动的真实神经网络可用更复杂的架构来实现。因此,处理器1310执行范围从数亿至数百亿的非常大的运算计数的计算,因此不可避免的是,用于计算的由处理器1310访问存储器1320的频率急剧增加。由于这样的计算的负担,神经网络可在具有相对低的处理能力的移动装置(像,智能电话、平板电脑、可穿戴装置等)和嵌入式装置中不被平滑地处理。
处理器1310可执行卷积计算、批归一化计算、池化计算、激活函数计算等。在一个实施例中,处理器1310可执行矩阵乘法计算、转换计算和转置计算,以获得多头自关注(multi-head self attention)。在获得多头自关注的处理中,转换计算和转置计算可在矩阵乘法计算之后或之前被执行。
处理器1310可从存储器1320获得二进制权重值和输入特征图,并且将输入特征图转换成时域二进制向量。此外,处理器1310可通过执行二进制权重值与时域二进制向量之间的卷积计算来输出输出特征图。
图14是示出根据实施例的神经形态装置的硬件配置的框图。
参照图14,神经形态装置1400可包括处理器1410和片上存储器1420。在图14中示出的神经形态装置1400中,仅示出了与本公开相关的组件。因此,对于本领域普通技术人员清楚的是,除了图14中示出的组件之外,神经形态装置1400还可包括其它通用组件。
神经形态装置1400可安装在需要低功率神经网络的数字系统(诸如,智能电话、无人机、平板装置、增强现实(AR)装置、物联网(IoT)装置、自主车辆、机器人、医疗装置等)上。然而,本公开不限于此。
神经形态装置1400可包括多个片上存储器1420,每个片上存储器1420可包括多个交叉开关矩阵阵列电路。交叉阵列电路可包括多个突触前神经元、多个突触后神经元以及突触电路(即,存储器单元),突触电路提供多个突触前神经元与多个突触后神经元之间的连接。在一个实施例中,交叉开关矩阵阵列电路可被实现为RCA。
外部存储器1430是存储神经形态装置1400中处理的各种类型的数据的硬件组件。例如,外部存储器1430可存储在神经形态装置1400中处理的数据和将被处理的数据。此外,外部存储器1430可存储将由神经形态装置1400执行的应用、驱动程序等。外部存储器1430可包括随机存取存储器(RAM)(诸如,动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM))、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、CD-ROM、蓝光或另外的光盘存储装置、硬盘驱动器(HDD)、固态驱动器(SSD)或闪存。
处理器1410用于控制用于操作神经形态装置1400的整体功能。例如,处理器1410通过执行存储在神经形态装置1400中的片上存储器1420中的程序来整体控制神经形态装置1400。处理器1410可被实现为包括在神经形态装置1400中的中央处理器(CPU)、图形处理器(GPU)、应用处理器(AP)等,但不限于此。处理器1410从外部存储器1430读取各种数据/向外部存储器1430写入各种数据,并且通过使用被读取/写入的数据来执行神经形态装置1400。
处理器1410可通过基于多个阈值对输入特征图的像素值进行二值化来生成多个二进制特征图。处理器1410可将多个二进制特征图的像素值提供为交叉开关矩阵阵列电路的输入值。处理器1410可使用DAC将像素值转换成模拟信号(电压)。
处理器1410可将将被应用到交叉开关矩阵阵列电路单元的权重值存储在包括在交叉开关矩阵阵列电路单元中的突触电路中。存储在突触电路中的权重值可以是电导。此外,处理器1410可通过执行输入值与存储在突触电路中的核值之间的乘法计算来获得交叉开关矩阵阵列电路单元的输出值。
处理器1410可通过合并由交叉开关矩阵阵列电路单元计算的输出值来生成输出特征图的像素值。同时,由于由交叉开关矩阵阵列电路单元计算的输出值(或通过将计算的输出值与权重值相乘而获得的结果值)是模拟信号(电流)的形式,因此处理器1410可通过使用ADC将输出值转换成数字信号。此外,处理器1410可将激活函数应用到由ADC转换成数字信号的输出值。
处理器1410可将二进制权重值存储在包括交叉开关矩阵阵列电路中的突触电路中,并且从外部存储器1630获得输入特征图。此外,处理器1410可将输入特征图转换成时域二进制向量,并且将时域二进制向量提供为交叉开关矩阵阵列电路的输入值。此外,处理器1410可通过执行二进制权重值与时域二进制向量之间的卷积计算来输出输出特征图。
一个或更多个示例性实施例可通过计算机可读记录介质(诸如,由计算机执行的程序模块)来实现。计算机可读记录介质可以是可由计算机访问的任意可用介质,其示例包括所有易失性介质(例如,RAM)和非易失性介质(例如,ROM)以及可分离介质和不可分离介质。此外,计算机可读记录介质的示例可包括计算机存储介质和通信介质。计算机存储介质的示例包括已经通过任意方法或技术实现的用于存储信息(诸如,计算机可读指令、数据结构、程序模块和其它数据)的所有易失性介质和非易失性介质以及可分离介质和不可分离介质。通信介质通常包括计算机可读指令、数据结构、程序模块,调制数据信号的其它数据或另外的传输机制,其示例包括任意信息传输介质。
此外,在本说明书中,“单元”可以是像处理器或电路的硬件组件和/或由像处理器的硬件配置执行的软件组件。
虽然已经参照发明构思的示例性实施例具体地示出和描述了发明构思,但是本领域普通技术人员将理解,在不脱离由权利要求限定的发明构思的精神和范围的情况下,可在其中进行形式和细节上的各种改变。因此,将理解,以上描述的示例性实施例不限制发明构思的范围。例如,以单个类型描述的每个组件可以以分布式方式被执行,分布式的描述的组件也可以以集成形式被执行。
根据公开的以上描述的实施例,通过使用二进制权重值和时域二进制向量可被用于减少模型大小和操作计数。
此外,根据本公开的另一实施例,通过执行二进制权重值与时域二进制向量之间的时间轴XNOR计算,与使用多位数据的神经网络的学习(或训练)性能和最终分类/识别准确度水平相似的学习(或训练)性能和最终分类/识别准确度水平可被确保。
应理解,在此描述的实施例应被认为仅是描述性的,而不是出于限制的目的。每个实施例内的特征或方面的描述通常应被认为可适用于其它实施例中的类似特征或方面。虽然已经参照附图描述了一个或多个实施例,但是本领域普通技术人员将理解,在不脱离由权利要求限定的精神和范围的情况下,可在其中进行形式和细节上的各种改变。
Claims (17)
1.一种用于实现神经网络的神经形态装置,所述神经形态装置包括:
存储器,存储有至少一个程序;
片上存储器,包括交叉开关矩阵阵列电路;和
至少一个处理器,被配置为通过执行所述至少一个程序来驱动神经网络,
其中,所述至少一个处理器还被配置为:
将二进制权重值存储在包括在交叉开关矩阵阵列电路中的突触电路中;
从存储器获得输入特征图;
将输入特征图转换成时域二进制向量;
将时域二进制向量提供为交叉开关矩阵阵列电路的输入值;和
通过使用交叉开关矩阵阵列电路执行二进制权重值与时域二进制向量之间的卷积计算来输出输出特征图。
2.根据权利要求1所述的神经形态装置,其中,所述至少一个处理器还被配置为:通过对卷积计算的结果执行批归一化来输出输出特征图。
3.根据权利要求2所述的神经形态装置,其中,所述至少一个处理器还被配置为:
通过将批归一化的初始标度值与初始权重值的绝对值的平均值相乘并且将相乘的结果除以包括在每个时域二进制向量中的元素的数量来计算修改的标度值;和
基于修改的标度值执行批归一化。
4.根据权利要求1所述的神经形态装置,其中,所述至少一个处理器还被配置为:基于量化等级将输入特征图转换成时域二进制向量。
5.根据权利要求4所述的神经形态装置,其中,所述至少一个处理器还被配置为:
将允许被输入到神经网络的最大值与最小值之间的范围划分成N个量化等级,其中,N是正整数;和
基于所述N个量化等级之中的输入特征图的激活分别所属的量化等级,将激活转换成时域二进制向量。
6.根据权利要求5所述的神经形态装置,其中,所述至少一个处理器还被配置为:将允许被输入到神经网络的最大值与最小值之间的范围划分成非线性量化等级。
7.根据权利要求3至6中的任一项所述的神经形态装置,其中,所述至少一个处理器还被配置为:
执行用于将应用到神经网络的每个偏置值与初始标度值相乘的乘法计算;和
将乘法计算的结果反映到输出特征图。
8.根据权利要求3至6中的任一项所述的神经形态装置,其中,所述至少一个处理器还被配置为:通过对卷积计算的结果执行批归一化并且将激活函数应用到批归一化的结果来输出输出特征图。
9.一种在神经形态装置中实现神经网络的方法,所述方法包括:
将二进制权重值存储在突触电路中,突触电路包括在神经形态装置中的交叉开关矩阵阵列电路中;
从神经形态装置中的存储器获得输入特征图;
将输入特征图转换成时域二进制向量;
将时域二进制向量作为输入值提供给交叉开关矩阵阵列电路;和
通过使用交叉开关矩阵阵列电路在二进制权重值与时域二进制向量之间执行卷积计算来输出输出特征图。
10.根据权利要求9所述的方法,其中,输出输出特征图的步骤包括:通过对卷积计算的结果执行批归一化来输出输出特征图。
11.根据权利要求10所述的方法,其中,执行批归一化的步骤包括:
通过将批归一化的初始标度值与初始权重值的绝对值的平均值相乘并且将相乘的结果除以包括在每个时域二进制向量中的元素的数量来计算修改的标度值;和
基于修改的标度值执行批归一化。
12.根据权利要求9所述的方法,其中,将输入特征图转换成时域二进制向量的步骤包括:基于量化等级将输入特征图转换成时域二进制向量。
13.根据权利要求12所述的方法,其中,基于量化等级将输入特征图转换成时域二进制向量的步骤包括:
将允许被输入到神经网络的最大值与最小值之间的范围划分成N个量化等级,其中,N是正整数;和
基于所述N个量化等级之中的输入特征图的激活分别所属的量化等级,将激活转换成时域二进制向量。
14.根据权利要求13所述的方法,其中,划分的步骤包括:将允许被输入到神经网络的最大值与最小值之间的范围划分成非线性量化等级。
15.根据权利要求11至14中的任一项所述的方法,其中,所述方法还包括:
执行用于将应用到神经网络的每个偏置值与初始标度值相乘的乘法计算;和
将乘法计算的结果反映到输出特征图。
16.根据权利要求11至14中的任一项所述的方法,其中,通过对卷积计算的结果执行批归一化来输出输出特征图的步骤包括:通过对卷积计算的结果执行批归一化并且将激活函数应用到批归一化的结果来输出输出特征图。
17.一种计算机可读记录介质,其上记录有用于在计算机上执行根据权利要求9至16中的任一项所述的方法的程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200069100A KR20210152244A (ko) | 2020-06-08 | 2020-06-08 | 뉴럴 네트워크를 구현하는 장치 및 그 동작 방법 |
KR10-2020-0069100 | 2020-06-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113837371A true CN113837371A (zh) | 2021-12-24 |
Family
ID=74285407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011409845.8A Pending CN113837371A (zh) | 2020-06-08 | 2020-12-04 | 用于实现神经网络的神经形态装置和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20210383203A1 (zh) |
EP (1) | EP3923201A1 (zh) |
JP (1) | JP2021193565A (zh) |
KR (1) | KR20210152244A (zh) |
CN (1) | CN113837371A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114925018A (zh) * | 2022-07-22 | 2022-08-19 | 中科声龙科技发展(北京)有限公司 | 片上交叉开关系统及芯片 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102021118734A1 (de) * | 2020-07-22 | 2022-01-27 | Honda Motor Co., Ltd. | Bild-Identifikationsvorrichtung, Verfahren zum Durchführen einer semantischen Segregation und Programm |
TWI783854B (zh) * | 2021-03-17 | 2022-11-11 | 神盾股份有限公司 | 乘積和運算裝置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10311342B1 (en) * | 2016-04-14 | 2019-06-04 | XNOR.ai, Inc. | System and methods for efficiently implementing a convolutional neural network incorporating binarized filter and convolution operation for performing image classification |
US12111878B2 (en) * | 2018-10-12 | 2024-10-08 | International Business Machines Corporation | Efficient processing of convolutional neural network layers using analog-memory-based hardware |
CN110842915B (zh) * | 2019-10-18 | 2021-11-23 | 南京大学 | 一种基于忆阻交叉阵列的机器人控制系统及方法 |
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 |
WO2021210527A1 (ja) * | 2020-04-13 | 2021-10-21 | LeapMind株式会社 | ニューラルネットワーク回路の制御方法 |
US11038520B1 (en) * | 2020-04-15 | 2021-06-15 | International Business Machines Corporation | Analog-to-digital conversion with reconfigurable function mapping for neural networks activation function acceleration |
-
2020
- 2020-06-08 KR KR1020200069100A patent/KR20210152244A/ko unknown
- 2020-10-30 US US17/085,300 patent/US20210383203A1/en active Pending
- 2020-12-04 CN CN202011409845.8A patent/CN113837371A/zh active Pending
-
2021
- 2021-01-27 EP EP21153747.7A patent/EP3923201A1/en active Pending
- 2021-06-07 JP JP2021094973A patent/JP2021193565A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114925018A (zh) * | 2022-07-22 | 2022-08-19 | 中科声龙科技发展(北京)有限公司 | 片上交叉开关系统及芯片 |
Also Published As
Publication number | Publication date |
---|---|
US20210383203A1 (en) | 2021-12-09 |
KR20210152244A (ko) | 2021-12-15 |
EP3923201A1 (en) | 2021-12-15 |
JP2021193565A (ja) | 2021-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9646243B1 (en) | Convolutional neural networks using resistive processing unit array | |
CN111656368B (zh) | 硬件加速的离散式神经网络 | |
Nandakumar et al. | Mixed-precision architecture based on computational memory for training deep neural networks | |
US10248907B2 (en) | Resistive processing unit | |
AU2020274862B2 (en) | Training of artificial neural networks | |
US20190122105A1 (en) | Training of artificial neural networks | |
US20200012924A1 (en) | Pipelining to improve neural network inference accuracy | |
US11087204B2 (en) | Resistive processing unit with multiple weight readers | |
US12111878B2 (en) | Efficient processing of convolutional neural network layers using analog-memory-based hardware | |
CN113837371A (zh) | 用于实现神经网络的神经形态装置和方法 | |
US11620505B2 (en) | Neuromorphic package devices and neuromorphic computing systems | |
AU2021281628B2 (en) | Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference | |
KR20210143614A (ko) | 뉴럴 네트워크를 구현하는 뉴로모픽 장치 및 그 동작 방법 | |
Lu et al. | NVMLearn: a simulation platform for non-volatile-memory-based deep learning hardware | |
CN117610636A (zh) | 一种存内计算存储器人工神经网络的片上训练方法 | |
Li | Research on the construction method of neural network model based on memristors | |
Thakoor et al. | Cascaded VLSI neural network architecture for on-line learning |
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 |