CN111340203B - 使用误差反向传播执行监督学习的神经形态系统 - Google Patents
使用误差反向传播执行监督学习的神经形态系统 Download PDFInfo
- Publication number
- CN111340203B CN111340203B CN201911155913.XA CN201911155913A CN111340203B CN 111340203 B CN111340203 B CN 111340203B CN 201911155913 A CN201911155913 A CN 201911155913A CN 111340203 B CN111340203 B CN 111340203B
- Authority
- CN
- China
- Prior art keywords
- circuit
- weight
- neuromorphic
- signal
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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/047—Probabilistic or stochastic 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
- G06N3/065—Analogue means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Probability & Statistics with Applications (AREA)
- Amplifiers (AREA)
Abstract
本发明涉及一种神经形态系统。该神经形态系统包括:第一神经形态层,利用输入信号和第一权重执行正向运算;第一运算电路,对第一神经形态层的正向运算结果执行第一运算;第二神经形态层,利用第一运算电路的输出信号和第二权重执行正向运算;第二运算电路,对第二神经形态层的正向运算结果执行第二运算;第一权重调整量计算电路,计算第一权重调整量以及第二权重调整量计算电路,计算第二权重调整量。
Description
相关申请的交叉引用
本申请要求于2018年12月19日提交的申请号为10-2018-0164780的韩国专利申请的优先权,其全部公开内容通过引用并入本文。
技术领域
各种实施例涉及一种执行监督学习的神经形态系统,且更具体地,涉及一种使用误差反向传播执行监督学习的神经形态系统。
背景技术
在具有人工智能(AI)的计算装置中需要高效节能硬件技术。特别地,神经形态系统正在被研究作为一种高效节能技术。
神经形态系统是一种实现模拟生物体大脑的人工神经网络的半导体电路。在神经形态系统中,节点通过突触联接形成网络,并且通过适当学习来改变突触的权重值而具有解决任意问题的能力。
为了在各种技术领域中使用神经形态系统,需要能够有效训练神经形态系统的技术。
发明内容
根据本公开的实施例,一种神经形态系统可以包括:第一神经形态层,该第一神经形态层被配置为利用输入信号和第一权重执行正向运算;第一运算电路,该第一运算电路被配置为对第一神经形态层的正向运算结果执行第一运算;第二神经形态层,该第二神经形态层被配置为利用第一运算电路的输出信号和第二权重执行正向运算;第二运算电路,该第二运算电路被配置为对第二神经形态层的正向运算结果执行第二运算;第一权重调整量计算电路,该第一权重调整量计算电路被配置为基于输入信号、第一运算电路的输出信号以及第二神经形态层执行的反向运算的结果来计算第一权重调整量,其中利用与输入信号对应的目标信号、第二运算电路的输出信号和第二权重来执行该反向运算;以及第二权重调整量计算电路,该第二权重调整量计算电路被配置为基于与输入信号对应的目标信号、第二运算电路的输出信号和第一运算电路的输出信号来计算第二权重调整量。
附图说明
附图以及以下的详细描述被并入说明书中并且形成说明书的一部分,并且用于进一步示出包括各种特征的实施例,并且解释这些实施例的各种原理和有益方面,在附图中相同的附图标记在各个示图中指代相同或功能相似的元件。
图1示出根据实施例的神经形态系统。
图2A和2B示出根据实施例的第一神经形态层的运算。
图3示出根据实施例的第一神经形态层。
图4和图5示出根据实施例的模拟计算电路。
图6A和6B示出根据实施例的第二神经形态层的运算。
图7示出根据实施例的第一权重调整量计算电路。
图8示出根据实施例的第二权重调整量计算电路。
图9示出根据实施例的示出神经形态系统的学习运算的流程图。
具体实施方式
下面将参照附图描述各种实施例。提供实施例是为了说明性目的,并且也可存在其他未明确示出或描述的实施例。此外,可以对下面将详细描述的本公开的实施例进行修改。
图1示出根据实施例的神经形态系统。
神经形态系统包括第一神经形态层100和第二神经形态层200。
第一神经形态层100和第二神经形态层200可以具有基本相同的配置,并且可以执行正向和反向运算。这将在下面详细描述。
根据本公开的实施例,神经形态系统进一步包括:用于存储待提供给第一神经形态层100的正向输入信号X的第一输入存储电路10;用于对从第一神经形态层100输出的正向计算结果Y执行第一运算的第一运算电路20;以及用于存储从第一运算电路20输出的信号f(Y)的第一输出存储电路30。
当使用包括多个批输入的批输入信号来执行监督学习时,第一输入存储电路10存储多个批输入并且将多个批输入作为正向输入信号X顺序地提供给第一神经形态层100,每个批输入对应于批索引。批索引被分配给多个批输入中的每一个批输入。
在本实施例中,由第一运算电路20执行的第一运算是作为非线性运算的修正线性单元(ReLU)运算。由于ReLU运算本身是众所周知的,因此省略对ReLU运算的详细描述。
当使用批输入信号中的多个批输入之中的第n批输入来执行监督学习时,第一输出存储电路30可以顺序地存储与第n批索引对应的第一运算电路20的输出,n是自然数。
将第一输出存储电路30的输出作为第二神经形态层200的正向输入信号来提供。
根据本公开的实施例,神经形态系统进一步包括:用于存储从第二神经形态层200输出的正向运算结果Z的第二输出存储电路40;用于对第二输出存储电路40的输出执行第二运算的第二运算电路50;用于存储第二运算电路50的输出O和目标T的第二输入存储电路500;以及用于存储第二神经形态层200的反向运算结果的第三输出存储电路600。
当使用批输入信号执行监督学习时,第二输出存储电路40可以顺序地存储与批输入信号中的多个批输入对应的、第二神经形态层200的正向运算结果。
在本实施例中,由第二运算电路50执行的第二运算是Softmax运算。Softmax运算本身是公知的,因此省略对Softmax运算的详细描述。
目标T可以被称为标签L,标签L为当使用第n批输入来执行监督学习时,与对应于第n批输入的正确答案相对应的值。
当使用批输入信号来执行监督学习时,存在分别与批输入信号的多个批输入对应的多个目标。在这种情况下,第二输入存储电路500可以顺序地存储分别与多个批输入对应的多个目标。另外,第二输入存储电路500可以顺序地存储与多个批输入对应的第二运算电路50的输出。
当使用第n批输入来执行监督学习时,第三输出存储电路600可以存储第一反向运算结果P和第二反向运算结果Q,并且输出与第一反向运算结果P和第二反向运算结果Q之间的差对应的误差反向传播信号R。通过将第二运算电路50的输出O作为第二神经形态层200的第一反向输入提供,来从第二神经形态层200输出第一反向运算结果P。通过将与第n批输入对应的目标T作为第二神经形态层200的第二反向输入提供,来从第二神经形态层200输出第二反向运算结果Q。
根据本公开的实施例,神经形态系统进一步包括第一权重调整量计算电路300和第一权重调整电路700。第一权重调整量计算电路300基于第一输入存储电路10的输出X(即正向输入信号X)、从第一输出存储电路30输出的信号f(Y)以及从第三输出存储电路600输出的误差反向传播信号R,来计算存储在第一神经形态层100中的第一权重W1的第一权重调整量ΔW1。第一权重调整电路700基于从第一权重调整量计算电路300输出的第一权重调整量ΔW1来调整第一神经形态层100的第一权重W1。
在本实施例中,第一权重W1可以具有包括多个权重元素的矩阵结构。
根据本公开的实施例,神经形态系统进一步包括第二权重调整量计算电路400和第二权重调整电路800。第二权重调整量计算电路400基于从第一输出存储电路30输出的信号f(Y)以及第二输入存储电路500的输出(O-T),来计算存储在第二神经形态层200中的第二权重W2的第二权重调整量ΔW2。第二权重调整电路800基于从第二权重调整量计算电路400输出的第二权重调整量ΔW2来调整第二神经形态层200的第二权重W2。
在本实施例中,第二权重W2可以具有包括多个权重元素的矩阵结构。
图9是示出根据本公开的实施例的神经形态系统的运算的流程图。将参照图1描述图9中所示的运算。
在实施例中,使用包括一定数量(N)的批输入的批输入信号来执行监督学习。
第一输入存储电路10存储批输入信号的N个批输入,第二输入存储电路500存储对应于N个批输入的所有目标。
首先,变量n表示分配给N个批输入中的每个批输入的批索引,并且在S100中初始化为1。
接下来,在S200中,第一输入存储电路10提供N个批输入之中的第n批输入。
接下来,在S300中,对第n批输入执行正向运算。正向运算对应于当提供与批索引n对应的第n批输入时,由第一神经形态层100、第一运算电路20、第一输出存储电路30、第二神经形态层200、第二输出存储电路40和第二运算电路50执行的运算。
在这种情况下,第一神经形态层100和第二神经形态层200各自执行正向运算。
第二运算电路50的输出O被存储在第二输入存储电路500中。将输出O与目标T分开存储。
此后,在S400中,第二输入存储电路500将针对第n批输入的输出O作为第二神经形态层200的第一反向输入来提供以执行第一反向运算。
在第二神经形态层200中执行第一反向运算,并且将第一反向运算的结果P临时存储在第三输出存储电路600中。
此后,在S500中,第二输入存储电路500将针对第n批输入的目标T作为第二神经形态层200的第二反向输入来提供以执行第二反向运算。
在这种情况下,在第二神经形态层200中执行第二反向运算,并且将第二反向运算的结果Q临时存储在第三输出存储电路600中。
此后,在S600中,第三输出存储电路600计算并存储针对第n批输入的第一反向运算结果P和第二反向运算结果Q之间的差,其对应于误差反向传播信号R。
此后,在S700中,计算权重调整量,例如第一权重调整量ΔW1和第二权重调整量ΔW2。
由第一权重调整量计算电路300和第二权重调整量计算电路400执行权重调整量计算。
后面将参照图7和图8描述具体的权重调整量计算运算。
此后,在S800中确定变量n是否等于批大小N。如果变量n不等于批大小N,则在S810中将变量n递增,并且进程进行到S200以重复上述运算。如果在S800中确定变量n等于批大小N,则在S900中分别使用第一和第二权重调整量ΔW1和ΔW2来调整权重,例如第一权重W1和第二权重W2,并且进程终止。
由第一权重调整电路700和第二权重调整电路800执行权重调整运算,从而更新第一神经形态层100的第一权重W1和第二神经形态层200的第二权重W2。
在完成了批输入信号中包括的所有N个批输入的正向和反向运算之后,最终确定权重调整量。
因此,可以在S800和S900之间执行权重调整量计算的运算。
在这种情况下,第三输出存储电路600可以存储与批输入信号的所有N个批输入对应的所有误差反向传播信号R。
如上所述,在本实施例中,通过基于包括N个批输入的一个批输入信号执行正向运算和反向运算的监督学习来调整神经形态层的权重。
在图1所示的实施例中,假设了存在两个神经形态层,但是可以增加神经形态层的数量。
在包括两个以上神经形态层的情况下,第一神经形态层100可以对应于两个以上神经形态层之中的第一层,第二神经形态层200可以对应于两个以上神经形态层之中的最后一层,并且其他神经形态层可以被另外包括在第一神经形态层100和第二神经形态层200之间。
在这种情况下,可以添加权重调整电路和权重调整量计算电路以对应于新添加的神经形态层,并且可以进一步包括与图1的第一运算电路20、第一输出存储电路30和第三输出存储电路600对应的元件,以用于神经形态层之间的连接来扩展图1的神经形态系统。
图2A和2B示出图1的第一神经形态层100的运算。
图2A示出由第一神经形态层100执行的正向运算,图2B示出由第一神经形态层100执行的反向运算。
正向输入信号IF可以由具有i个元素的矢量表示,正向输出信号OF可以由具有j个元素的矢量表示,其中i和j是大于1的自然数。正向输入信号IF可以对应于图1所示的正向输入信号X,正向输出信号OF可以对应于图1所示的正向输出信号Y。
反向输入信号IB可以由具有j个元素的矢量表示,反向输出信号OB可以由具有i个元素的矢量表示。
在本实施例中,第一权重W1具有包括i行和j列的矩阵结构。
正向运算可以由下面的等式1表示,反向运算可以由下面的等式2表示。
当第一权重W1具有包括i×j个元素的矩阵结构时,第一权重矩阵的每个元素可以表示为Wij。具有矩阵结构的第一权重W1可以被称为“第一权重矩阵”。
在等式2中,WT表示W的转置运算的结果。
等式1:
等式2:
在本实施例中,正向输入和输出信号以及反向输入和输出信号中的每个元素以及第一权重矩阵中的每个元素可以是多位数字信号,该多位数字信号是具有多个位的数字信号。
图3示出根据本公开的实施例的第一神经形态层100。
第一神经形态层100包括存储器单元阵列110、控制电路120、正向输入缓冲器130、反向输入缓冲器140和模拟计算电路150。
存储器单元阵列110存储第一权重W1。存储器单元阵列110可以利用SRAM、DRAM或其他存储技术来实现。
控制电路120控制从存储器单元阵列110读取第一权重W1的每个权重元素或者将第一权重W1的每个权重元素写入在存储器单元阵列110中的操作。控制电路120可以对应于用于控制诸如SRAM、DRAM等的通用存储器装置的读取/写入操作的电路。
正向输入缓冲器130可以存储正向输入信号IF,反向输入缓冲器140可以存储反向输入信号IB。
如等式1所示,模拟计算电路150使用正向输入信号IF和第一权重W1来生成正向输出信号OF。
另外,如等式2所示,模拟计算电路150使用反向输入信号IB和第一权重W1来生成反向输出信号OB。
图4示出根据实施例的用于实现等式1的正向模拟计算电路1500。在图3所示的模拟计算电路150中可以包括正向模拟计算电路1500。
正向模拟计算电路1500包括多个乘法电路1510、电容器1520、脉冲生成电路1530和计数器1540。
多个乘法电路1510之中的第m乘法电路接收正向输入信号IFm和权重元素Wmj(1≤m≤i,i≥2)。
由于多个乘法电路1510具有基本相同的结构,因此参照对应于m=1的乘法电路1510来描述乘法电路1510。
乘法电路1510包括对正向输入信号IF1进行脉冲宽度调制的脉冲宽度调制(PWM)电路1514、对权重元素Wlj和PWM电路1514的输出执行NAND运算的NAND门1513、电流源1511和PMOS晶体管1512,其中PMOS晶体管也可被称为开关。PMOS晶体管具有接收NAND门1513的输出的栅极、连接到电流源1511的源极以及连接到充电节点NC的漏极。
仅当权重元素Wlj处于高电平时,乘法电路1510通过充电节点NC对电容器1520进行充电。
此时,在PWM 1514的输出为高电平时,电荷量增加。
在本实施例中,正向输入信号IF1是多位数字信号,并且随着正向输入信号IF1具有更大的值,PWM电路1514的输出生成具有更宽的高电平时间,即更高的占空率的脉冲信号。
这样,由每个乘法电路1510提供给电容器1520的电荷量对应于正向输入信号和相应权重元素的乘积,并且存储在电容器1520中的电荷量对应于正向输入矢量IF和权重矢量Wj的点积。
通过脉冲生成电路1530和计数器1540,将存储在电容器1520中的电荷量转变为数字形式的正向输出信号OFj。
脉冲生成电路1530可以包括延迟电路1531和放电电路1532,延迟电路1531在充电节点NC的电压上升到预定电平时生成高电平信号,并且放电电路1532在延迟电路1531的输出变为高电平时使充电节点NC放电。
在本实施例中,延迟电路1531包括反相器链,并且放电电路1532包括NMOS晶体管,该NMOS晶体管具有接收延迟电路1531的输出的栅极和并联连接到电容器1520的源极和漏极。
因此,随着每单位时间存储在充电节点NC中的电荷量增加,脉冲生成电路1530生成更多数量的脉冲。
计数器1540对由脉冲生成电路1530生成的脉冲数量进行计数,并且将与脉冲数量对应的数字信号作为正向输出信号OFj来提供。
图5示出根据实施例的实现等式2的反向模拟计算电路1600。在图3所示的模拟计算电路150中可以包括反向模拟计算电路1600。
反向模拟计算电路1600包括多个乘法电路1610、电容器1620、脉冲生成电路1630和计数器1640。
由于反向模拟计算电路1600具有与上述图4所示的正向模拟计算电路1500基本相同的配置,除了仅将输入和输出信号改变为反向模拟计算相关信号,例如,IB、WT和OB,因此省略对其的详细描述。
图6A和6B示出图1的第二神经形态层200的运算。
图6A示出由第二神经形态层200执行的正向运算,图6B示出由第二神经形态层200执行的反向运算。
由于第二神经形态层200具有与图3所示的第一神经形态层100基本相同的配置,因此省略对其的详细描述。
当第二权重W2具有包括j×k个元素的矩阵结构时,第二权重W2中的每个权重元素可以表示为Wjk。由于第二神经形态层200的配置以及执行的正向和反向运算与以上参照图2A、图2B、图3、图4和图5描述的第一神经形态层100的配置以及正向和反向运算基本相同,所以省略对其的详细描述。
在下文中,将参照图7和图8描述由第一和第二权重调整量计算电路300和400执行的权重调整量计算的运算。
如上所述,在完成了批输入信号的N个批输入的正向运算和反向运算之后,确定权重调整量。
在图9的流程图中,通过对批输入信号的、与每个批索引对应的N个批输入中的每一个执行正向运算和反向运算来计算和更新,并且通过对批输入信号的第N批输入执行正向运算和反向运算来最终确定权重调整量。
在另一个实施例中,可以在完成了对批输入信号中包括的所有N个批输入的正向和反向运算之后,计算权重调整量。
在任何一种情况下,权重调整量计算方法本身都是相同的。
图7示出根据实施例的图1的第一权重调整量计算电路300。
在图7中,假设第一权重调整量计算电路300计算第一权重矩阵的第i,j元素,即Wij的权重调整量ΔWij。
第一权重调整量计算电路300包括第一乘法器321、第一加法器322、第一寄存器323和第三运算电路324。
第一权重调整量计算电路300进一步包括多路复用器325。
第一加法器322和第一寄存器323对批输入信号中包括的每个批输入的正向运算结果X和反向运算结果R的相乘结果进行累加。
例如,当提供与第n批输入对应的乘法结果时,第一加法器322将存储在第一寄存器323中的第(n-1)加法结果与该乘法结果相加,并且利用第一加法器322的输出来更新第一寄存器323。
第一乘法器321将存储在第一输入存储电路10中的第n输入信号Xn的第i元素Xni乘以多路复用器325的输出。
如果从第一输出存储电路30输出的、与第n批输入对应的信号f(Y)的第j元素f(Ynj)的值大于0,则多路复用器325选择从第三输出存储电路600输出的、与第n批输入对应的误差反向传播信号的第j元素Rnj,否则选择0。
如以上参照图1所述,第三输出存储电路600存储第二神经形态层200的第一和第二反向运算结果P和Q。
第一和第二反向运算的结果由误差反向传播信号R给出,该误差反向传播信号R是第一反向运算结果P和第二反向运算结果Q之间的差。当将第二运算电路50的输出O输入到第二神经形态层200时生成第一反向运算结果P,并且当将目标T输入到第二神经形态层200时生成第二反向运算结果Q。
第三输出存储电路600存储与包括在批输入信号中的每个批输入对应的第一反向计算结果P和第二反向计算结果Q,或者可以在第三输出存储电路600中仅存储与差对应的误差反向传播信号R。
当完成了批输入信号中包括的所有批输入的乘法和加法之后,第三运算电路324根据第一寄存器323的最终值来计算第一权重W1的权重调整量。
当仅使用第n输入信号Xn的第i元素Xni和从第三输出存储电路600输出的误差反向传播信号R的第j元素Rnj的一些位来计算第一权重W1的权重调整量时,可以降低硬件的复杂度。
例如,如果第n输入信号Xn的第i元素Xni是无符号(unsigned)的8位信号并且误差反向传播信号R的第j元素Rnj是有符号(signed)的9位信号,则使用第n输入信号Xn的第i元素Xni的高三位和误差反向传播信号R的第j元素Rnj的高四位的硬件可以被用来降低复杂度。
在一个实施例中,第三运算电路324可以在第一寄存器323的最终值大于0时输出+1,在最终值是0时输出0,并且在最终值小于0时输出-1,以作为第一权重W1的第i,j元素的权重调整量ΔWij。
当利用两个位表示权重调整量ΔWij时,+1可以表示为“01”,0可以表示为“00”,并且-1可以表示为“11”。
第一权重调整电路700存储由第一权重调整量计算电路300提供的针对每个元素的权重调整量ΔW1,并且通过增加权重调整量ΔW1来更新第一权重W1的每个元素。
如以上参照图3所述,在第一神经形态层100中,第一权重W1存储在存储器单元阵列110中,并且可以通过控制电路120执行读取和写入第一权重W1。
图8示出根据实施例的图1的第二权重调整量计算电路400。
在图8中,假设第二权重调整量计算电路400计算第二权重W2的第j,k元素,即Wjk的权重调整量ΔWjk。
第二权重调整量计算电路400包括第二乘法器421、第二加法器422、第二寄存器423和第四运算电路424。
第二加法器422和第二寄存器423对批输入信号中包括的每个批输入的正向运算结果f(Y)和反向运算结果(O-T)的相乘结果进行累加。
例如,当提供与第n批输入对应的乘法结果时,第二加法器422将存储在第二寄存器423中的第(n-1)加法结果与该乘法结果相加,并且利用第二加法器422的输出来更新第二寄存器423。
第二乘法器421将从第一输出存储电路30输出的、与批输入信号中包括的第n批输入对应的输出信号f(Yn)的第j元素f(Ynj)乘以误差信号的第k元素(Onk-Tnk),该误差信号是与批输入信号中包括的第n批输入对应的输出信号On与目标Tn之间的差。
当仅使用第一存储电路30的输出信号的第j元素f(Ynj)和误差信号的第k元素(Onk-Tnk)的一些位来计算第二权重W2的权重调整量时,可以降低硬件的复杂度。
例如,如果第一存储电路30的输出信号f(Yn)的第j元素f(Ynj)是无符号的8位信号并且误差信号的第k元素(Onk-Tnk)是带符号的9位信号,则使用第j元素f(Ynj)的高三位和第k元素(Onk-Tnk)的高四位的硬件可以被用来降低复杂度。
在已经完成了批输入信号中包括的所有批输入的乘法和加法之后,第四计算电路424根据第二寄存器423的最终值来计算第二权重W2的权重调整量ΔW2。
在实施例中,第四运算电路424可以在第二寄存器423的最终值大于0时输出+1,在最终值为0时输出0,并且在最终值小于0时输出-1,以作为第二权重W2的第j,k元素的权重调整量ΔWjk。
当利用两个位表示权重调整量ΔWjk时,+1可以表示为“01”,0可以表示为“00”并且-1可以表示为“11”。
第二权重调整电路800存储由第二权重调整量计算电路400提供的、针对每个元素的权重调整量ΔW2,并且通过增加权重调整量ΔW2来更新第二权重W2的每个元素。
在图1中,第二运算电路50的输出O与目标T之间的差对应于误差信号(O-T)。
在本实施例中,可以重复执行上述批学习,使得在一个批输入信号中生成的误差信号之和等于或小于预定阈值。
通常,神经形态层中使用的模拟计算电路可能受到噪声、进程变化等的影响。然而,根据本公开的实施例,通过使用包括在批输入信号中的多个批输入来重复地执行监督学习,可以减小噪声、进程变化等影响。
尽管出于说明性目的描述了各个实施例,但是对于本领域技术人员显而易见的是,可以在不脱离所附的权利要求书所限定的本公开的精神和范围的情况下,对所描述的实施例进行各种改变和修改。
Claims (19)
1.一种神经形态系统,包括:
第一神经形态层,利用输入信号和第一权重执行正向运算;
第一运算电路,对所述第一神经形态层的正向运算结果执行第一运算;
第二神经形态层,利用所述第一运算电路的输出信号和第二权重执行正向运算;
第二运算电路,对所述第二神经形态层的正向运算结果执行第二运算;
第一权重调整量计算电路,基于所述输入信号、所述第一运算电路的输出信号和由所述第二神经形态层执行的反向运算结果来计算第一权重调整量,所述反向运算利用与所述输入信号对应的目标信号、所述第二运算电路的输出信号和所述第二权重来执行;以及
第二权重调整量计算电路,基于与所述输入信号对应的目标信号、所述第二运算电路的输出信号和所述第一运算电路的输出信号来计算第二权重调整量,
其中所述第二神经形态层利用所述目标信号和所述第二权重来执行第一反向运算以生成第一反向运算结果,并且利用所述第二运算电路的输出信号和所述第二权重来执行第二反向运算以生成第二反向运算结果,以及
其中所述第一权重调整量计算电路使用所述第一反向运算结果与所述第二反向运算结果之间的差、所述第一运算电路的输出信号和所述输入信号来计算所述第一权重调整量。
2.根据权利要求1所述的神经形态系统,进一步包括:
第一权重调整电路,根据所述第一权重调整量来调整所述第一权重;以及
第二权重调整电路,根据所述第二权重调整量来调整所述第二权重。
3.根据权利要求1所述的神经形态系统,进一步包括输出存储电路,所述输出存储电路存储所述第一反向运算结果和所述第二反向运算结果或者存储所述第一反向运算结果与所述第二反向运算结果之间的差。
4.根据权利要求1所述的神经形态系统,进一步包括:
第一输入存储电路,存储包括多个批输入的批输入信号,并且将所述批输入信号中的第n批输入作为所述输入信号来提供,所述第n批输入对应于分配给所述第n批输入的第n批索引,其中n为自然数;
第一输出存储电路,存储所述第一运算电路的、与所述第n批输入对应的输出信号;
第二输出存储电路,存储所述第二神经形态层的、与所述第n批输入对应的正向运算结果;
第二输入存储电路,存储与所述第n批输入对应的目标信号以及所述第二运算电路的、与所述第n批输入对应的输出信号;以及
第三输出存储电路,存储所述第二神经形态层的、与所述第n批输入对应的反向运算结果。
5.根据权利要求4所述的神经形态系统,其中所述第三输出存储电路存储与所述第一反向运算结果和所述第二反向运算结果之间的差对应的误差反向传播信号,所述第一反向运算结果由所述第二神经形态层使用与所述第n批输入对应的目标信号和所述第二权重执行的所述第一反向运算来生成,所述第二反向运算结果由所述第二神经形态层使用所述第二运算电路的、与所述第n批输入对应的输出信号和所述第二权重执行的所述第二反向运算来生成。
6.根据权利要求5所述的神经形态系统,其中所述第一权重调整量计算电路包括:
多路复用器,根据所述第一运算电路的、与所述第n批输入对应的输出信号来选择零或与所述第n批输入对应的误差反向传播信号;
第一乘法器,将所述多路复用器的输出与所述第n批输入相乘;
第一加法器,在第一寄存器中累加所述第一乘法器对所述多个批输入的输出;以及
第三运算电路,在累加了所述第一乘法器对所述多个批输入的输出之后,根据所述第一寄存器的最终输出值来确定所述第一权重调整量。
7.根据权利要求6所述的神经形态系统,其中当所述误差反向传播信号和所述输入信号中的每一个包括多个位时,所述第一乘法器选择所述误差反向传播信号的预定数量的高位和所述输入信号的预定数量的高位。
8.根据权利要求6所述的神经形态系统,其中所述第三运算电路在所述第一寄存器的最终输出值为正时,将+1确定为所述第一权重调整量;在所述第一寄存器的最终输出值为0时,将0确定为所述第一权重调整量;并且在所述第一寄存器的最终输出值为负时,将-1确定为所述第一权重调整量。
9.根据权利要求4所述的神经形态系统,其中所述第二权重调整量计算电路包括:
第二乘法器,将所述第一运算电路的输出信号乘以误差信号,所述误差信号对应于与所述第n批输入对应的目标信号和所述第二运算电路的、与所述第n批输入对应的输出信号之间的差;
第二加法器,在第二寄存器中累加所述第二乘法器对所述多个批输入的输出;以及
第四运算电路,在累加了所述第二乘法器对所述多个批输入的输出之后,根据所述第二寄存器的最终输出值来确定所述第二权重调整量。
10.根据权利要求9所述的神经形态系统,其中当所述误差信号和所述第一运算电路的输出信号中的每一个包括多个位时,所述第二乘法器选择所述误差信号的预定数量的高位和所述第一运算电路的输出信号的预定数量的高位。
11.根据权利要求9所述的神经形态系统,其中所述第四运算电路在所述第二寄存器的最终输出值为正时,将+1确定为所述第二权重调整量;在所述第二寄存器的最终输出值为0时,将0确定为所述第二权重调整量;并且在所述第二寄存器的最终输出值为负时,将-1确定为所述第二权重调整量。
12.根据权利要求1所述的神经形态系统,其中所述第一神经形态层包括:
存储器单元阵列,存储所述第一权重;
控制电路,将所述第一权重写入所述存储器单元阵列中或从所述存储器单元阵列读取所述第一权重;以及
模拟计算电路,基于正向输入信号和所述第一权重来生成正向输出信号,并且基于反向输入信号和所述第一权重来生成反向输出信号。
13.根据权利要求12所述的神经形态系统,其中所述第一神经形态层进一步包括:
正向输入缓冲器,存储所述正向输入信号;以及
反向输入缓冲器,存储所述反向输入信号。
14.根据权利要求12所述的神经形态系统,其中所述模拟计算电路包括:
正向模拟计算电路,使用所述正向输入信号和所述第一权重生成所述正向输出信号;以及
反向模拟计算电路,使用所述反向输入信号和所述第一权重生成所述反向输出信号。
15.根据权利要求14所述的神经形态系统,其中所述正向模拟计算电路包括:
乘法电路,生成与通过将所述第一权重乘以所述正向输入信号而获得的乘法结果对应的电流,并且将所述电流提供给充电节点;
脉冲生成电路,生成与提供给所述充电节点的电荷量对应的脉冲信号;以及
计数器,通过对所述脉冲信号的脉冲数量进行计数来生成所述正向输出信号。
16.根据权利要求15所述的神经形态系统,其中所述乘法电路包括:
电流源;
脉冲宽度调制电路,即PWM电路,生成具有与所述正向输入信号的高电平的量级对应的占空率的信号;以及
开关,响应于对所述第一权重和所述PWM电路的输出执行的逻辑运算结果而将所述电流源连接至所述充电节点。
17.根据权利要求15所述的神经形态系统,其中所述脉冲生成电路包括:
延迟电路,当所述充电节点的电压上升到预定电平以上时生成高电平信号;以及
放电电路,当所述延迟电路的输出启动所述放电电路时使所述充电节点放电。
18.根据权利要求15所述的神经形态系统,所述正向模拟计算电路进一步包括电容器,所述电容器连接在所述充电节点和接地端子之间。
19.根据权利要求15所述的神经形态系统,其中所述正向输入信号是包括多个元素的矢量,并且所述第一权重具有包括多个权重元素的矩阵结构,
其中所述正向模拟计算电路包括共同连接到所述充电节点的多个乘法电路,并且
其中所述多个乘法电路中的每一个接收所述正向输入信号中的多个元素中的相应元素和所述第一权重中的多个权重元素中的相应权重元素。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0164780 | 2018-12-19 | ||
KR1020180164780A KR20200076083A (ko) | 2018-12-19 | 2018-12-19 | 오류 역전파를 이용하여 지도 학습을 수행하는 뉴로모픽 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111340203A CN111340203A (zh) | 2020-06-26 |
CN111340203B true CN111340203B (zh) | 2023-06-30 |
Family
ID=71098585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911155913.XA Active CN111340203B (zh) | 2018-12-19 | 2019-11-22 | 使用误差反向传播执行监督学习的神经形态系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11526763B2 (zh) |
KR (1) | KR20200076083A (zh) |
CN (1) | CN111340203B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11468307B2 (en) * | 2019-11-15 | 2022-10-11 | Jiangsu Advanced Memory Technology Co., Ltd. | Artificial neuromorphic circuit and operation method |
KR102584868B1 (ko) | 2020-01-06 | 2023-10-04 | 서울대학교산학협력단 | 온칩 학습이 가능한 뉴로모픽 아키텍쳐 |
US20220076127A1 (en) * | 2020-09-09 | 2022-03-10 | Microsoft Technology Licensing, Llc | Forcing weights of transformer model layers |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03206549A (ja) * | 1989-10-25 | 1991-09-09 | Hitachi Ltd | 情報処理装置及びその学習方法 |
US5517596A (en) * | 1991-05-17 | 1996-05-14 | International Business Machines Corporation | Learning machine synapse processor system apparatus |
CN107194462A (zh) * | 2016-03-15 | 2017-09-22 | 清华大学 | 三值神经网络突触阵列及利用其的神经形态计算网络 |
US9779355B1 (en) * | 2016-09-15 | 2017-10-03 | International Business Machines Corporation | Back propagation gates and storage capacitor for neural networks |
CN108446764A (zh) * | 2018-03-12 | 2018-08-24 | 清华大学 | 一种新型神经形态芯片架构 |
CN108805270A (zh) * | 2018-05-08 | 2018-11-13 | 华中科技大学 | 一种基于存储器的卷积神经网络系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10885429B2 (en) * | 2015-07-06 | 2021-01-05 | University Of Dayton | On-chip training of memristor crossbar neuromorphic processing systems |
US10332028B2 (en) | 2015-08-25 | 2019-06-25 | Qualcomm Incorporated | Method for improving performance of a trained machine learning model |
US10713562B2 (en) | 2016-06-18 | 2020-07-14 | International Business Machines Corporation | Neuromorphic memory circuit |
US11087204B2 (en) * | 2018-04-20 | 2021-08-10 | International Business Machines Corporation | Resistive processing unit with multiple weight readers |
FR3087560A1 (fr) * | 2018-10-23 | 2020-04-24 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels |
-
2018
- 2018-12-19 KR KR1020180164780A patent/KR20200076083A/ko not_active Application Discontinuation
-
2019
- 2019-11-01 US US16/672,253 patent/US11526763B2/en active Active
- 2019-11-22 CN CN201911155913.XA patent/CN111340203B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03206549A (ja) * | 1989-10-25 | 1991-09-09 | Hitachi Ltd | 情報処理装置及びその学習方法 |
US5517596A (en) * | 1991-05-17 | 1996-05-14 | International Business Machines Corporation | Learning machine synapse processor system apparatus |
CN107194462A (zh) * | 2016-03-15 | 2017-09-22 | 清华大学 | 三值神经网络突触阵列及利用其的神经形态计算网络 |
US9779355B1 (en) * | 2016-09-15 | 2017-10-03 | International Business Machines Corporation | Back propagation gates and storage capacitor for neural networks |
CN108446764A (zh) * | 2018-03-12 | 2018-08-24 | 清华大学 | 一种新型神经形态芯片架构 |
CN108805270A (zh) * | 2018-05-08 | 2018-11-13 | 华中科技大学 | 一种基于存储器的卷积神经网络系统 |
Non-Patent Citations (2)
Title |
---|
张培健."忆阻神经形态系统在模式识别中的应用".《中国优秀硕士学位论文全文数据库 信息科技辑》.2018,(第第2期期),I135-656. * |
张波."忆阻系统的同步及其控制研究".《中国博士学位论文全文数据库 信息科技辑》.2017,(第第5期期),I135-17. * |
Also Published As
Publication number | Publication date |
---|---|
US20200202217A1 (en) | 2020-06-25 |
US11526763B2 (en) | 2022-12-13 |
CN111340203A (zh) | 2020-06-26 |
KR20200076083A (ko) | 2020-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111340203B (zh) | 使用误差反向传播执行监督学习的神经形态系统 | |
US10740671B2 (en) | Convolutional neural networks using resistive processing unit array | |
CN107924227B (zh) | 电阻处理单元 | |
US9779355B1 (en) | Back propagation gates and storage capacitor for neural networks | |
CN109800876B (zh) | 一种基于NOR Flash模块的神经网络的数据运算方法 | |
US5101361A (en) | Analog hardware for delta-backpropagation neural networks | |
US11087204B2 (en) | Resistive processing unit with multiple weight readers | |
US10340002B1 (en) | In-cell differential read-out circuitry for reading signed weight values in resistive processing unit architecture | |
US10783963B1 (en) | In-memory computation device with inter-page and intra-page data circuits | |
KR20210154816A (ko) | 인공신경망의 훈련 | |
CN111052153A (zh) | 使用半导体存储元件的神经网络运算电路及动作方法 | |
Yam et al. | Extended least squares based algorithm for training feedforward networks | |
CN110991624A (zh) | 一种变脉宽输入电荷积累型忆阻神经网络电路 | |
Yang et al. | On learning with nonlinear memristor-based neural network and its replication | |
US6876989B2 (en) | Back-propagation neural network with enhanced neuron characteristics | |
Hopfield | The effectiveness of analogue'neural network'hardware | |
US5857178A (en) | Neural network apparatus and learning method thereof | |
Chiueh et al. | VLSI implementation of a high-capacity neural network associative memory | |
CN115699028A (zh) | 模拟人工智能网络推理的逐行卷积神经网络映射的高效瓦片映射 | |
CN116523011B (zh) | 基于忆阻的二值神经网络层电路及二值神经网络训练方法 | |
US20220300792A1 (en) | Memory device and neural network apparatus | |
Hasan et al. | Training Neural Networks Using the Property of Negative Feedback to Inverse a Function | |
AU2021296187B2 (en) | Suppressing undesired programming at half-selected devices in a crosspoint array of 3-terminal resistive memory | |
CN117610636A (zh) | 一种存内计算存储器人工神经网络的片上训练方法 | |
JPH06131482A (ja) | アナログニューラルネットワーク回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |