CN115374928A - 一种脉冲卷积神经网络中卷积核训练的方法及装置 - Google Patents
一种脉冲卷积神经网络中卷积核训练的方法及装置 Download PDFInfo
- Publication number
- CN115374928A CN115374928A CN202110557282.5A CN202110557282A CN115374928A CN 115374928 A CN115374928 A CN 115374928A CN 202110557282 A CN202110557282 A CN 202110557282A CN 115374928 A CN115374928 A CN 115374928A
- Authority
- CN
- China
- Prior art keywords
- training
- output
- pulse
- count value
- signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- 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/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/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/061—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
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)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Complex Calculations (AREA)
Abstract
一种脉冲卷积神经网络中卷积核训练的方法及装置,其中方法包括:获取第一计数器的第一计数值和第二计数器的第二计数值,其中,第一计数值为一个训练周期内输入脉冲信号的个数,第二计数值为一个训练周期内输出神经元发出输出脉冲信号的个数,若第二计数值大于训练阈值,则根据第一计数值调整忆阻突触阵列中输出神经元对应的忆阻突触的权重,以及根据第二计数值提高输出神经元的阈值。该方法中脉冲卷积神经网络中的突触和神经元基于忆阻器实现,通过对输入脉冲信号和输出脉冲信号的频率进行统计,动态地调节突触权重和神经元的阈值,可实现特定输入下基于频率学习规则的卷积核训练。
Description
技术领域
本申请涉及神经网络技术领域,尤其涉及一种脉冲卷积神经网络中卷积核训练的方法及装置。
背景技术
近年来,基于深度学习的神经网络(deep neural networks,DNN)已经在诸多方面取得了显著的成果,如图像识别、自然语义处理、自动驾驶等,但是这种基于深度学习的神经网络仅仅借鉴了大脑的拓扑结构,利用数学的方法对大脑进行建模,将需要处理的各种情况通过一定的编码方式转换成数字信息,再用包含不同数值的矩阵对这些信息进行处理(包括矩阵的运算、结果的归一化、数据的映射等),最终得到一组包含识别结果信息的数据。在整个过程中,包含不同数值的矩阵即人工突触网络,矩阵中的每一个数值即为突触权重。
这种基于深度学习的神经网络在原理上与生物大脑仍有较大出入,属于第二代人工神经网络,在编码方式、功能实现上与生物大脑还有相当的距离。为了获得更接近生物大脑功能的计算方式,实现类脑计算,研究者们提出了下一代的人工神经网络——脉冲神经网络(spiking neural networks,SNN)。脉冲神经网络从结构和原理上都借鉴了生物大脑,信息在脉冲神经网络中被存储于脉冲的时序及空间关系中。目前采用无监督学习方法的脉冲神经网络多为仅包含输入层和输出层的双层网络,不足以处理复杂问题。因此,通过在网络中加入DNN中常用的卷积操作,人们提出了脉冲卷积神经网络(spiking convolutionalneural networks,SCNN)。一个五层的卷积脉冲神经网络如图1所示,其与目前基于数值计算的卷积神经网络结构相同,包含多个卷积层、池化层与全连接层。
然而,如何训练SCNN仍是一个巨大挑战。SCNN目前有多种不同的训练方法,一种是借鉴DNN中的反向传播算法来训练SCNN,虽然识别精度与传统神经网络类似,但训练是一种监督学习,需要大量学习样本,并且误差要传过整个网络,使得训练过程十分缓慢;另一种是利用生物突触的学习规则来训练SNN。它属于无监督学习,不依赖大量的有标签的数据,并且突触权重的更新只与前后神经元的状态相关,因此不需要数据在整个网络传播,训练更高效。但这种基于生物突触的训练方法与现有的计算机架构不兼容,缺少像图形处理单元(graphics processing unit,GPU)一样为传统神经网络加速的硬件支持,导致训练效率较低,识别精度不高。
发明内容
本申请实施例提供一种脉冲卷积神经网络中卷积核训练的方法及装置,基于突触的频率学习规则,实现脉冲卷积神经网络的无监督学习过程,从而有效提高训练效率。
第一方面,本申请实施例提供一种脉冲卷积神经网络中卷积核训练的方法,该方法应用于脉冲卷积神经网络中的卷积层;针对每个训练周期,所述方法包括:获取第一计数器的第一计数值和第二计数器的第二计数值,其中,第一计数值为所述训练周期内输入脉冲信号的个数,输入脉冲信号经忆阻突触阵列输入到输出神经元,该输入脉冲信号用于控制输出神经元的膜电位升高,第二计数值为所述训练周期内输出神经元发出输出脉冲信号的个数,输出神经元在膜电位大于该输出神经元的阈值时发出输出脉冲信号;若第二计数值大于训练阈值,则根据第一计数值,调整忆阻突触阵列中输出神经元对应的忆阻突触的权重。
上述技术方案,通过对输入脉冲信号和输出脉冲信号的频率进行统计,可动态地调节网络中的突触权重和输出神经元的阈值,从而实现特定输入下基于忆阻突触的卷积核训练。
在第一方面的一种可能的设计中,所述根据第一计数值,调整忆阻突触阵列中输出神经元对应的忆阻突触的权重,包括:若第一计数值小于设定阈值,则减小所述忆阻突触的权重;若第一计数值大于或等于设定阈值,则增大所述忆阻突触的权重。
在第一方面的一种可能的设计中,所述输出神经元为阈值可调神经元;该方法还包括:若第二计数值大于训练阈值,则根据第二计数值,增大输出神经元的阈值,该阈值用于控制输出神经元输出脉冲信号。
上述技术方案中,输出神经元可具备训练后的保护机制,从而使得输出神经元在权重调节后的一段时间内,不被具有其他特征的输入信号激发,保护已经训练好的权重。
在第一方面的一种可能的设计中,所述输出神经元的阈值还受该输出神经元发出输出脉冲信号的历史、以及其他输出神经元发出输出脉冲信号控制。
上述技术方案,输出神经元可具备不应期功能和侧向竞争功能,从而该输出神经元在自身发出输出脉冲信号之后的一定步长内不再激发,以及在其他输出神经元发出输出脉冲信号时不会被激发,从而保证每个时间点上仅有一个输出神经元被激发。
在第一方面的一种可能的设计中,该方法还包括:当所述训练周期结束,清零第一计数器的第一计数值和第二计数器的第二计数值。
在第一方面的一种可能的设计中,所述忆阻突触阵列中的各个忆阻突触由非易失性忆阻器组成,输出神经元由易失性忆阻器和相关的电路模块组成。
上述技术方案,使用忆阻器作为关键器件来实现脉冲卷积神经网络中的突触和神经元,可有效降低存储资源开销,节省芯片中突触和神经元占用面积。
第二方面,本申请实施例提供一种脉冲卷积神经网络中卷积核训练的装置,该装置包括:输入信号产生模块、信号发生器、忆阻突触、输出神经元、第一计数器、第二计数器和训练信号产生模块;其中,输入信号产生模块,用于对输入信息进行脉冲编码,生成输入脉冲信息,并将输入脉冲信息发送给信号发生器;信号发生器,用于根据输入脉冲信息,生成输入脉冲信号,并将输入脉冲信号输入到忆阻突触和第一计数器;忆阻突触,用于将处理后的输入脉冲信号输入到输出神经元,该输入脉冲信号用于控制输出神经元的膜电位升高;输出神经元,用于在当膜电位大于或等于输出神经元的阈值时,发出输出脉冲信号;第一计数器,用于记录一个训练周期内输入脉冲信号的个数,并将记录得到的第一计数值发送给训练信号产生模块;第二计数器,用于记录一个训练周期内所述输出神经元发出输出脉冲信号的个数,并将记录得到的第二计数值发送给所述训练信号生成模块;训练信号产生模块,用于接收第一计数器的第一计数值和第二计数器的第二计数值,若第二计数值大于训练阈值,则根据第一计数值,生成训练脉冲信息,并将训练脉冲信息发送给信号发生器;信号发生器,还用于根据训练脉冲信息生成训练脉冲信号,并将训练脉冲信号输入到忆阻突触,该训练脉冲信号用于调整忆阻突触的权重。
在第二方面的一种可能的设计中,若第一计数值小于设定阈值,则训练脉冲信号用于减小忆阻突触的权重;若第一计数值大于或等于设定阈值,则训练脉冲信号用于增大忆阻突触的权重。
在第二方面的一种可能的设计中,所述输出神经元为阈值可调神经元;训练信号产生模块还用于:若第二计数值大于训练阈值,则根据第二计数值,生成控制信号,并将该控制信号输入到输出神经元,该控制信号用于提高输出神经元的阈值,该阈值用于控制输出神经元发出输出脉冲信号。
在第二方面的一种可能的设计中,所述输出神经元的阈值还受输出神经元发出输出脉冲信号的历史、以及其他输出神经元发出输出脉冲信号控制。
在第二方面的一种可能的设计中,所述输出神经元由易失性忆阻器和相关的电路模块组成。
在第二方面的一种可能的设计中,所述装置还包括选通开关;该选通开关用于:当忆阻突触需要接收脉冲信号时,将忆阻突触与信号发生器连通;当忆阻突触不需要接收脉冲信号时,将忆阻突触接地。
在第二方面的一种可能的设计中,所述装置还包括复位模块;该复位模块用于:在每个训练周期结束时,向第一计数器发送第一复位信号以及向第二计数器发送第二复位信号,其中,第一复位信号用于清零第一计数器的第一计数值,第二复位信号用于清零第二计数器的第二计数值。
第二方面和第二方面的任一种可能的设计中的有益效果,可参考第一方面中的对应描述,不再赘述。
第三方面,本申请实施例提供了一种计算设备,所述计算设备中部署有脉冲卷积神经网络,用于实现前述脉冲卷积神经网络中卷积核训练的方法。该计算设备可包括一个或多个前述脉冲卷积神经网络中卷积核训练的装置或电路单元。
附图说明
图1为本申请实施例适用的一种脉冲卷积神经网络的结构示意图;
图2为本申请实施例提供的一种脉冲卷积神经网络中卷积核训练的方法的流程示意图;
图3为本申请实施例提供的一种脉冲卷积神经网络中卷积核训练的方法的训练流程示意图;
图4为本申请实施例中输入信号以及实现上述脉冲卷积神经网络的硬件结构的示意图;
图5为本申请实施例通过对6张5*5的图片进行训练后得到的忆阻突触阵列在不同训练次数下的权重分布示意图;
图6为本申请实施例引用的一幅MNIST数据集的图片;
图7为本申请实施例在对上述MNIST数据集的图片进行训练后得到的卷积核的权重分布示意图;
图8为本申请实施例提供的一种用于脉冲卷积神经网络卷积核训练的装置的结构示意图;
图9为本申请实施例提供的一种用于脉冲卷积神经网络卷积核训练的装置的另一结构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例作进一步地详细描述。
卷积处理是视觉系统和神经网络算法中的常用操作,基于卷积处理的卷积脉冲神经网络可应用于图像处理(如图像分类、识别、检测)、语音处理(如语音唤醒、识别关键词)、自动驾驶、自然语言处理等需要提取输入信息特征的应用场景中。
本申请实施例适用于卷积脉冲神经网络的卷积层中。示例性地,一个五层的卷积脉冲神经网络结构如图1所示,其中,第一层为输入层,第二层和第四层为卷积层,第三层和第五层为池化层。输入层将输入信息转换为脉冲信号,输入到由忆阻突触与阈值可调神经元组成的卷积层中。当神经元被激发后,发出脉冲信号,神经元发出脉冲信号的频率被记录下来用于修改连接权重并且向后传播,从而使得不同的卷积层可基于不同的卷积核完成特征提取的功能。
本申请实施例中的脉冲卷积神经网络的卷积层可包括输入信号产生模块、一组信号发生器、忆阻突触阵列、一组输出神经元、第一计数器、每个输出神经元对应的第二计数器和训练信号产生模块。
其中,输入信号产生模块用于将输入的外界信息进行脉冲编码,生成输入脉冲信息,然后发送给信号发生器,由信号发生器根据输入脉冲信息生成对应的输入脉冲信号,并输入至忆阻突触阵列和该信号发生器对应的第一计数器,其中,输入脉冲信息可用于描述输入脉冲信号的幅度、宽度、频率、个数等相关参数。忆阻突触阵列用于将处理后的输入脉冲信号输入至一个或多个输出神经元。每个信号发生器均可具有一个对应的第一计数器,用于记录一个训练周期内该信号发生器产生的输入脉冲信号的个数。输入脉冲信号会导致输出神经元的膜电位发生改变,有输入脉冲信号时输出神经元的膜电位升高,没有输入脉冲信号时输出神经元的膜电位逐渐下降。当输出神经元的膜电位大于或等于该输出神经元的阈值(也可称为激发阈值)时,输出神经元被激发,发出脉冲信号作为输出脉冲信号。输出神经元发出输出脉冲信号后,逐渐恢复至静息状态,在固定的时长内不再激发,该功能可称为输出神经元的不应期功能。每个输出神经元均可具有一个对应的第二计数器,用于记录该输出神经元在一个训练周期内发出输出脉冲信号的个数。训练信号产生模块,用于根据输入脉冲信号和输出脉冲信号的频率,对忆阻突触阵列中各个忆阻突触的权重进行训练,具体的,训练信号产生模块可根据第一计数器和第二计数器的计数值生成训练脉冲信息,并发送给信号发生器,由信号发生器根据训练脉冲信息生成对应的训练脉冲信号,并输入至忆阻突触阵列,以改变忆阻突触阵列中忆阻突触的权重,其中,训练脉冲信息可用于描述训练脉冲信号的幅度、宽度、频率、个数等相关参数。
示例性地,所述一组信号发生器可包括M个信号发生器,每个信号发生器对应一个第一计数器,忆阻突触阵列可由M行N列的忆阻突触组成,一组输出神经元包括N个输出神经元,每个输出神经元对应一个第二发生器。每个信号发生器与忆阻突触阵列中的一行忆阻突触对应,每个输出神经元与忆阻突触阵列中的一列忆阻突触对应,M、N均为正整数。
进一步地,所述输出神经元可以是阈值可调神经元,并且具备脉冲激发后的不应期功能和侧向竞争功能。所述不应期功能和侧向竞争功能可通过调节输出神经元的阈值实现。即,一个输出神经元的阈值受该输出神经元自身发出输出脉冲信号的历史控制,距离上一次发出输出脉冲信号的时间越近,其阈值越高,随着上一次发出输出脉冲信号的时间越来越远,其阈值逐渐降低。一个输出神经元的阈值还受同一层内的其他输出神经元发出输出脉冲信号的控制,该输出神经元的阈值在当其他输出神经元发出输出脉冲信号时较高,以使该输出神经元在其他输出神经元发出输出脉冲信号时不会被激发,从而保证每个时间点上仅有一个输出神经元被激发。此外,输出神经元还可具备训练后的保护机制,训练信号发生模块可在改变忆阻突触的权重的同时,控制输出神经元的阈值升高(例如可通过向输出神经元中的数模转换器提供给一个控制信号,控制数模转换器输出一个较高的电压),进而使得输出神经元在权重调节后的一段时间内,不被具有其他特征的输入信号激发,保护已经训练好的权重。
可选的,上述忆阻突触阵列中的忆阻突触可以由非易失性忆阻器组成,具体表现为忆阻器可具有不同的电阻态,且这些电阻态可以长时间保持。上述输出神经元可以由易失性忆阻器以及相关的电路模块组成,以支持其阈值可调的特性。
可选的,卷积层中还可包括多路复用器(Multiplexer,MUX)阵列,信号发生器通过该MUX阵列与忆阻突触阵列中的忆阻突触相连。当忆阻突触需要接收脉冲信号时,MUX将信号发生器与忆阻突触选通,在其他情况下,MUX将地线与忆阻突触选通。
基于上面描述的卷积层,本申请实施例提供一种用于脉冲卷积神经网络中卷积核训练的方法,该方法可由训练信号产生模块执行,用于基于忆阻突触的频率学习规则,动态调整突触权重和神经元的阈值,从而实现脉冲卷积神经网络的无监督学习过程。
实际的训练过程可包括一个或多个训练周期,针对其中的每个训练周期,如图2所示,该方法可包括:
步骤S201、获取第一计数器的第一计数值和第二计数器的第二计数值。
其中,第一计数值为第一计数器记录的当前训练周期内输入脉冲信号的个数,输入脉冲信号由信号发生器产生后经忆阻突触阵列输入到输出神经元,并导致该输出神经元的膜电位升高。第二计数值为第二计数器记录的当前训练周期内输出神经元发出的输出脉冲信号的个数,输出神经元在膜电位大于该输出神经元的阈值时发出输出脉冲信号。所述输出神经元可以为上述一组输出神经元中的其中一个输出神经元。
步骤S202、若第二计数值大于训练阈值,则根据第一计数值调整忆阻突触阵列中所述输出神经元对应的忆阻突触的权重。
本申请实施例中,若第二计数值大于训练阈值,则表示所述输出神经元在当前训练周期中发出输出脉冲信号的个数较多,即输出脉冲信号的频率较高。此时,训练信号产生模块可根据第一计数值,生成训练脉冲信息,然后由信号发生器根据该训练脉冲信息,生成特定的训练脉冲信号,用来改变忆阻突触阵列中所述输出神经元对应的忆阻突触的电导值,从而实现调整忆阻突触阵列中所述输出神经元对应的忆阻突触的权重。
具体的,训练信号产生模块可基于输入脉冲信号的频率(即频率学习规则)进行权重调整。当第一计数值小于设定阈值(即输入脉冲信号的频率较小)时,可减小对应忆阻突触的权重,相应的,训练脉冲信息和训练脉冲信号用于减小忆阻突触阵列中所述输出神经元对应的忆阻突触的权重,或者说用于降低忆阻突触阵列中所述输出神经元对应的忆阻突触的电导值。
当第一计数值大于或等于设定阈值(即输入脉冲信号的频率较大)时,可增大对应忆阻突触的权重,相应的,训练脉冲信息和训练脉冲信号用于增大忆阻突触阵列中所述输出神经元对应的忆阻突触的权重,或者说用于升高忆阻突触阵列中所述输出神经元对应的忆阻突触的电导值。
此外,若第二计数值大于训练阈值,训练信号产生模块可生成控制信号,并将该控制信号输入至输出神经元,以调高该输出神经元的阈值,使得已发出输出脉冲信号较多的输出神经元发出输出脉冲信号的难度增大,各个输出神经元之间发出输出脉冲信号的难度接近,从而保证训练得到的阵列包括更多的特征。
如上文中所述,每个信号发生器均具有一个对应的第一计数器,用于记录该信号发生器在一个训练周期内产生的输入脉冲信号的个数。每个输出神经元均具有一个对应的第二计数器,用于记录该输出神经元在一个训练周期内产生的输出脉冲信号的个数。如此,可以理解地,上述步骤S201至步骤S202是从一个信号发生器和一个输出神经元的角度对权重调整机制进行描述的。
在实际应用中,训练信号产生模块可获取M个信号发生器分别对应的第一计数器的第一计数值,以及N个输出神经元分别对应的第二计数器的第二计数值,进而对每个输出神经元在忆阻突触阵列中对应的M个权重和每个输出神经元的阈值进行调整。具体的,针对其中某一个输出神经元,训练信号产生模块在判断该输出神经元对应的第二计数器的第二计数值大于训练阈值后,可根据不同信号发生器对应的第一计数器的第一计数值,对该输出神经元对应的不同权重进行不同程度的调整。例如,如果第一行的信号发生器对应的第一计数器的第一计数值小于设定阈值,则训练信号产生模块可相应减小该输出神经元在忆阻突触阵列中对应的第一行的忆阻突触的权重;如果第二行的信号发生器对应的第一计数器的第一计数值大于或等于设定阈值,则训练信号产生模块可相应增大该输出神经元在忆阻突触阵列中对应的第二行的忆阻突触的权重。
在一个训练周期结束时,训练信号产生模块可清零第一计数器和第二计数器的计数值。示例性地,还可向第一计数器发送第一复位信号,以及向第二计数器发送第二复位信号,从而使得第一计数器和第二计数器的计数值被定时清零。
图3示例性示出了本申请实施例提供的训练方法中忆阻突触阵列的权重以及输出神经元的阈值的调节机制。如图3所示,经脉冲编码后的外界信息或者输入神经元的脉冲信息可作为输入脉冲信号301输入到忆阻突触阵列302中,同时由第一计数器306记录一个训练周期T内输入脉冲信号的个数。经过忆阻突触阵列处理的输入脉冲信号导致输出神经元的膜电位发生改变303,有脉冲时输出神经元的膜电位升高,没有脉冲时,输出神经元的膜电位逐渐下降。当输出神经元的膜电位超过该输出神经元的阈值时304,输出神经元发出脉冲,作为输出脉冲信号305,由第二计数器307记录一个训练周期T输出神经元发出输出脉冲信号的个数。发出输出脉冲信号后,输出神经元逐渐恢复至静息状态,在固定的时间步长内不再激发。
在训练周期T内,当第二计数器记录的数值大于设定的训练阈值时308,根据输出神经元的保护机制,该输出神经元的阈值将被调高310,以加大该输出神经元发出输出脉冲信号的难度;同时,训练信号产生模块根据第一计数器的数值产生特定的写脉冲,用来改变忆阻突触阵列中忆阻器的电导值,即调整忆阻突触阵列中的权重309。权重的调节规则为由输入脉冲信号的频率控制(可称为频率学习规则):当输入频率小于设定值时,降低对应突触的权重,即给出的训练脉冲信号使忆阻器的电导降低;当输入频率大于设定值时,增加对应突触的权重,即给出的训练脉冲信号使忆阻器的电导升高。每当一个训练周期T结束,第一计数器和第二计数器记录的数值被定时清零311。本申请对依据脉冲频率的变化改变权重的规则不作具体限定,图3中所示的规律仅为一种示例。
在一个具体示例中,如图4所示,可采用多张5×5大小的图片作为输入信号来训练多个5×5的卷积核。核心元件为连接两个计数器的训练信号产生模块和一组输出神经元。关键步骤是对输入脉冲信号和输出脉冲信号通过计数器进行计数,并根据计数的结果产生训练脉冲信号,同时输出神经元须具备脉冲激发后的不应期以及侧向竞争功能,训练后启动保护机制,以使训练效果更佳。
具体的,25个信号发生器410通过多路复用器(MUX)阵列420与25行8列的忆阻突触阵列430相连,忆阻突触阵列430中的每一列分别与一个输出神经元440相连。信号发生器也可称为输入神经元脉冲发生器,并不限定。
通过对作为输入信号的6幅信号进行编码后的输入脉冲信息经25个信号发生器410后,产生对应的输入脉冲信号。训练时,6幅图片对应的输入脉冲信号先后经过MUX阵列420输入到忆阻突触阵列430中;输入脉冲信号同时输入到第一计数器460中,用于记录一段时间内输入脉冲信号的个数,并定时清零。图4中的输入信号为第一个输入图片的展开所得,输入脉冲信号的频率根据输入信号中像素点的灰度进行编码,像素点越白,则输入脉冲信号的频率越高;像素点越黑,输入脉冲信号的频率越低。
不同图片编码后得到的输入脉冲信号经过忆阻突触阵列430后,会导致对应的输出神经元440的膜电位发生不同程度的变化,当某个输出神经元440的膜电位超过阈值时,该输出神经元440被激发,发出输出脉冲信号,该输出脉冲信号同时输入到第二计数器450中,用于记录一段时间内该输出神经元440发出的输出脉冲信号的个数,并定时清零。
在训练时,训练信号产生模块470可获取第一计数器460的第一计数值和第二计数器450的第二计数值。例如,第一计数器460可在自身记录的第一计数值发生变化后,向训练信号产生模块470发送更新后的第一计数值,从而使得训练信号产生模块470获取到该第一计数值。类似的,第二计数器450可在自身记录的第二计数值发生变化后,向训练信号产生模块470发送更新后的第二计数值,从而使得训练信号产生模块470获取到该第二计数值。
当某一个输出神经元440对应的第二计数器450的第二计数值大于训练阈值时,与该输出神经元440相连的25个忆阻突触需要根据各自对应的第一计数器460的第一计数值修改电导值(即修改权重)。此时,训练信号产生模块470可生成训练脉冲信息,并发送给信号发生器410,信号发生器410被选通,并根据接收到的训练脉冲信息发出用于修改忆阻器电导值的写脉冲。当第一计数器460的第一计数值较大时,表示输入脉冲频率较大,此时相应升高忆阻突触的电导值;当第一计数器460的第一计数值较小时,表示输入脉冲频率较小,此时可相应降低忆阻突触的电导值。最终读取忆阻突触阵列中各个忆阻突触的电导值,经训练得到的特征存储在每一列忆阻突触的电导组合中。此外,当该输出神经元440对应的第二计数器450的第二计数值大于训练阈值时,训练信号产生模块470还可同时启动保护机制,提高对应输出神经元440的阈值。
图5示例性示出了通过对6张5×5的图片进行训练后,25×8的突触阵列在不同循环次数下权重分布的情况,即训练的过程。可以看出,每个5×5方块均由25个突触权重值重新组合而成。随着训练次数的增多,一个卷积核内的权重分布从一开始的完全随机,逐渐向具有一定形状特征转变。经过一定次数的训练后,其中6个输出神经元表现出来的形状与输入图案相同,即卷积核学习到了输入图案的特征。
本申请实施例中,卷积核的训练图片还可通过对规模较大的图片(如图6所示的手写数字识别MNIST数据集图片)进行划窗获得。例如,可用5x5的窗口以2为步长对28×28的图片进行划窗,每次停留作为输入被编码为脉冲序列输入至忆阻突触阵列中。考虑到该场景下输入图像中包含有更多的特征,因此,可选择阵列规模为25×16的忆阻突触阵列,并与更多输出神经元连接,从而可以从包含较多特征的输入中提取出特征。采用上面所描述的与25×8的忆阻突触阵列相同的训练方法对25×16的忆阻突触阵列进行训练,训练完成后读取忆阻突触阵列的电导值。
图7示例性示出了对MNIST数据集图片进行训练后的16个卷积核的权重分布情况,如图7所示,16个卷积核表现出了多种不同的特征,说明通过基于频率学习规则的训练方法,可以完成实际图像对卷积核的训练过程,有利于实际应用。
本申请实施例还提供一种脉冲卷积神经网络中卷积核训练的装置,该装置的逻辑结构可如图8所示,包括SNN推理和SNN训练两大部分,分别用虚线框标出。SNN推理和SNN训练两大部分可以认为是两组功能模块。
其中,SNN推理部分用于对输入信息的进行编码及产生输入脉冲信号810,并将输入脉冲信号输入到由非易失性忆阻器组成的忆阻突触阵列中820,输入脉冲信号经过突触后到达由易失性忆阻器神经元830处,该易失性忆阻器神经元830为阈值可调神经元,易失性忆阻器神经元830对信号处理后发出输出脉冲,处理后的信息编码在输出脉冲的频率或时序中。
SNN训练部分包括第一计数器840和第二计数器860两组计数器,用于记录突触前后的神经元发放脉冲信号的频率,两组计数器记录的计数值输入至训练信号产生模块850,训练信号产生模块850会根据两组计数器的计数值进行计算,并向非易失性忆阻突触阵列820输出训练脉冲信号,从而调节忆阻突触的权重,同时训练信号产生模块850还向易失性忆阻器神经元830输出控制信号,从而调节易失性忆阻器神经元830的阈值。
根据上述内容可知,本申请实施例中的一种基于频率学习规则的卷积核训练方法,通过对输入忆阻突触阵列的脉冲信号和输出神经元发出的脉冲信号的频率进行统计,动态地调节突触权重和输出神经元的阈值,从而可实现特定输入下基于忆阻突触的卷积核训练。
相比于现有技术中基于数字突触卷积核设计的脉冲神经网络,本申请实施例提供的训练方法运算效率更高,功耗更低,而且利用忆阻器作为关键器件实现脉冲卷积神经网络中的突触和神经元,可有效节省芯片中突触和神经元电路的面积。相比于传统的全连接的脉冲神经网络,本申请实施例采用卷积核结构的脉冲卷积神经网络,有效减少了突触及神经元的数目,减少突触权重占用的资源开销,有助于扩展脉冲卷积神经网络的规模与功能。
本申请实施例还提供了另一种脉冲卷积神经网络中卷积核训练的装置,该装置具体可为一种基于忆阻器的电路单元。在实际使用中,多个所述电路单元可按照上文中的描述连接成网络,从而来完成脉冲卷积神经网络整体的功能。
如图9所示,该装置包括:输入信号产生模块910、信号发生器920、选通开关930、忆阻突触940、输出神经元950、第一计数器970、第二计数器960和训练信号产生模块980。可选的,还包括复位模块990。
其中,输入脉冲发生模块910用于将输入信号进行脉冲编码,转换成所需的输入脉冲信息,并发送至信号发生器920。由信号发生器920根据输入脉冲信息生成对应的输入脉冲信号。例如,白色像素需要输出高频脉冲,黑色像素输出低频脉冲。应注意,所述输入信号可以来自外界的输入,也可以来自上一层神经元的输出,并不限定。
信号发生器920生成的输入脉冲信号输入到忆阻突触940(如所示忆阻器M1)。选通开关930是多路复用器MUX阵列的一部分,用来选择与忆阻突触940相连的通路,当忆阻突触940需要接收脉冲信号时,选通开关930将忆阻突触940与信号发生器920相连,其余情况下将忆阻突触940接地。
输出神经元950为阈值可调神经元,如图9中的虚线框所示,该输出神经元950可包括忆阻器M2、分压电阻R1、数模转换器(digital-to-analog converter,DAC)和比较器(comparator,CMP)。其中,忆阻突触M1的第一端与选通开关S1连接,忆阻突触M1的第二端与忆阻器M2的第一端连接,忆阻器M2的第二端与比较器CMP的第一输入端和分压电阻R1的第一端连接,分压电阻R1的第二端接地。数模转换器DAC的输出端与比较器CMP的第二输入端连接。分压电阻R1上的电压即为输出神经元950的膜电位,而数模转换器DAC的输出电压即为输出神经元950的阈值。
具体的,经过忆阻突触M1阵列的输入脉冲信号输入到忆阻器M2上,将导致该忆阻器M2的电导上升,进而导致分压电阻R1上的电压Vm上升,即输出神经元950的膜电位上升。当输出神经元950的膜电位大于阈值Vth时,比较器CMP发出输出脉冲信号,代表神经元被激发。应注意,输出神经元950的阈值可由自身发放脉冲的历史控制,距离上一次发放脉冲时间越近,其阈值越高,即数模转换器DAC输出的电压越高;输出神经元950的阈值还可由同一层内其它输出神经元控制,当其它输出神经元发出输出脉冲信号时,数模转换器DAC会输出一个很高的电压,代表此时该输出神经元950的阈值很高,用于控制该输出神经元950在其它输出神经元激发时不会被激发,从而保证每个时间点上仅有一个输出神经元被激发。此外,神经元在训练后,可启动保护机制,训练信号产生模块980会控制其阈值升高,例如控制数模转换器DAC输出一个较高的电压,使其在权重调节后的一段时间内,不被具有其他特征的输入信号激发,保护已经训练好的权重。
信号发生器920产生的输入脉冲信号还输入到第一计数器970中,用于记录一段时间内输入脉冲信号的个数,即输入脉冲频率。比较器CMP发出输出脉冲信号还输入到第二计数器960中,用于记录一段时间内输出脉冲信号的个数,即输出脉冲频率。两个计数器记录的数值将发送至训练信号产生模块980,由训练信号产生模块980根据权重改变的法则,计算得到训练脉冲的相关信息,训练脉冲的信息随后被传至信号发生器920中,由信号发生器920发出训练脉冲信号,并输入到忆阻突触940,从而调整忆阻突触940的权重。
上述装置还可包括复位模块990,该复位模块990用于周期性地向两个计数器发出复位信号,例如在每个训练周期结束时向第一计数器970发送第一复位信号以及向第二计数器960发送第二复位信号,从而使两个计数器记录的计数值定时清零。所述复位模块可以是上述训练信号发生模块的一部分(即可以理解为由训练信号发生模块向两个计数器发送复位信号),也可以与训练信号发生模块相互独立但在时间上保持同步,本申请并不限定。
本申请实施例提供了一种实现基于忆阻器的脉冲神经网络卷积核训练装置的电路单元。具体的,输入信号经输入脉冲发生模块处理后得到相应的输入脉冲信息,该脉冲信息传给信号发生器,完成输入脉冲信号的产生;输入脉冲信号经忆阻突触处理后,忆阻器M2电导的变化引起了比较器其中一个输入端的变化,从而模拟了神经元膜电位的上升;输出神经元的阈值由数模转换器DAC产生,数模转换器的输出与比较器的另一个输入端相连,比较器实现了阈值与膜电位的比较,并产生相应的输出信号。复位模块发出的周期性信号使两个计数器中记录的计数值定时清零;训练信号产生模块接收两个计数器传来的计数值,并根据两个计数器的计数值计算得到所需要的训练脉冲信号的信息,并将信息传送给信号发生器,由信号发生器产生训练脉冲信号,改变忆阻突触的权重值,从而完成一个周期的训练过程。
根据上述内容可知,本申请实施例提供了一种用于实现上述脉冲神经网络卷积核训练的硬件电路结构,该硬件电路结构基于忆阻器实现脉冲卷积神经网络中的突触和神经元,可以通过无监督训练方法训练得到相应的卷积核。基于硬件电路结构实现脉冲卷积神经网络不仅可有效节省芯片中突触和神经元电路的面积,降低计算资源开销,还有助于将前述卷积核的训练方法应用于更大规模的脉冲卷积神经网络的推理计算中。
本申请实施例还提供了一种计算设备,所述计算设备中部署有脉冲卷积神经网络,用于实现前述脉冲卷积神经网络中卷积核训练的方法。该计算设备可包括一个或多个所述前述脉冲卷积神经网络中卷积核训练的装置或电路单元。
需要说明的是,本申请所提供的实施例仅仅是示意性的。所属领域的技术人员可以清楚的了解到,为了描述的方便和简洁,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本发明实施例、权利要求以及附图中揭示的特征可以独立存在也可以组合存在。在本发明实施例中以硬件形式描述的特征可以通过软件来执行,反之亦然。在此不做限定。
Claims (14)
1.一种脉冲卷积神经网络中卷积核训练的方法,其特征在于,所述方法应用于脉冲卷积神经网络中的卷积层;针对每个训练周期,所述方法包括:
获取第一计数器的第一计数值和第二计数器的第二计数值;所述第一计数值为所述训练周期内输入脉冲信号的个数,所述输入脉冲信号经忆阻突触阵列输入到输出神经元,所述输入脉冲信号用于控制所述输出神经元的膜电位升高;所述第二计数值为所述训练周期内所述输出神经元发出输出脉冲信号的个数,所述输出神经元在膜电位大于所述输出神经元的阈值时发出所述输出脉冲信号;
若所述第二计数值大于训练阈值,则根据所述第一计数值,调整所述忆阻突触阵列中所述输出神经元对应的忆阻突触的权重。
2.根据权利要求1所述的方法,其特征在于,根据所述第一计数值,调整所述忆阻突触阵列中所述输出神经元对应的M个忆阻突触的权重,包括:
若所述第一计数值小于设定阈值,则减小所述忆阻突触的权重;
若所述第一计数值大于或等于设定阈值,则增大所述忆阻突触的权重。
3.根据权利要求1或2所述的方法,其特征在于,所述输出神经元为阈值可调神经元;
所述方法还包括:
若所述第二计数值大于所述训练阈值,则根据所述第二计数值,提高所述输出神经元的阈值,所述阈值用于控制所述输出神经元输出脉冲信号。
4.根据权利要求3所述的方法,其特征在于,所述输出神经元的阈值还受所述输出神经元发出输出脉冲信号的历史、以及其他输出神经元发出输出脉冲信号控制。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
当所述训练周期结束,清零所述第一计数器的第一计数值和所述第二计数器的第二计数值。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述忆阻突触阵列中的各个忆阻突触由非易失性忆阻器组成,所述输出神经元由易失性忆阻器和相关的电路模块组成。
7.一种脉冲卷积神经网络中卷积核训练的装置,其特征在于,所述装置包括输入信号产生模块、信号发生器、忆阻突触、输出神经元、第一计数器、第二计数器和训练信号产生模块;
其中,所述输入信号产生模块,用于对输入信息进行脉冲编码,生成输入脉冲信息,并将所述输入脉冲信息发送给所述信号发生器;
所述信号发生器,用于根据所述输入脉冲信息,生成输入脉冲信号,并将所述输入脉冲信号输入到所述忆阻突触和所述第一计数器;
所述忆阻突触,用于将处理后所述输入脉冲信号输入到所述输出神经元,所述输入脉冲信号用于控制所述输出神经元的膜电位升高;
所述输出神经元,用于在当膜电位大于或等于所述输出神经元的阈值时,发出输出脉冲信号;
所述第一计数器,用于记录一个训练周期内输入脉冲信号的个数,并将记录得到的第一计数值发送给所述训练信号产生模块;
所述第二计数器,用于记录一个训练周期内所述输出神经元发出输出脉冲信号的个数,并将记录得到的第二计数值发送给所述训练信号产生模块;
所述训练信号产生模块,用于接收所述第一计数器的第一计数值和所述第二计数器的第二计数值,若所述第二计数值大于训练阈值,则根据所述第一计数值,生成训练脉冲信息,并将所述训练脉冲信息发送给所述信号发生器;
所述信号发生器,还用于根据所述训练脉冲信息生成训练脉冲信号,并将所述训练脉冲信号输入到所述忆阻突触,所述训练脉冲信号用于调整所述忆阻突触的权重。
8.根据权利要求7所述的装置,其特征在于,若所述第一计数值小于设定阈值,则所述训练脉冲信号用于减小所述忆阻突触的权重;
若所述第一计数值大于或等于所述设定阈值,则所述训练脉冲信号用于增大所述忆阻突触的权重。
9.根据权利要求7或8所述的装置,其特征在于,所述输出神经元为阈值可调神经元;
所述训练信号产生模块还用于:
若所述第二计数值大于所述训练阈值,则根据第二计数值,生成控制信号,并将所述控制信号输入到所述输出神经元,所述控制信号用于提高所述输出神经元的阈值,所述阈值用于控制所述输出神经元发出输出脉冲信号。
10.根据权利要求9所述的装置,其特征在于,所述输出神经元的阈值还受所述输出神经元发出输出脉冲信号的历史、以及其他输出神经元发出输出脉冲信号控制。
11.根据权利要求7至10中任一项所述的装置,其特征在于,所述输出神经元由易失性忆阻器和相关的电路模块组成。
12.根据权利要求7至11中任一项所述的装置,其特征在于,所述装置还包括选通开关;
所述选通开关用于:当所述忆阻突触需要接收脉冲信号时,将所述忆阻突触与所述信号发生器连通;当所述忆阻突触不需要接收脉冲信号时,将所述忆阻突触接地。
13.根据权利要求7至12中任一项所述的装置,其特征在于,所述装置还包括复位模块;
所述复位模块用于:在每个训练周期结束时,向所述第一计数器发送第一复位信号以及向所述第二计数器发送第二复位信号,其中,所述第一复位信号用于清零所述第一计数器的第一计数值,所述第二复位信号用于清零所述第二计数器的第二计数值。
14.一种计算设备,其特征在于,所述计算设备包括如权利要求7至13中任一项所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110557282.5A CN115374928A (zh) | 2021-05-21 | 2021-05-21 | 一种脉冲卷积神经网络中卷积核训练的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110557282.5A CN115374928A (zh) | 2021-05-21 | 2021-05-21 | 一种脉冲卷积神经网络中卷积核训练的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115374928A true CN115374928A (zh) | 2022-11-22 |
Family
ID=84059487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110557282.5A Pending CN115374928A (zh) | 2021-05-21 | 2021-05-21 | 一种脉冲卷积神经网络中卷积核训练的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115374928A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116663632A (zh) * | 2023-08-02 | 2023-08-29 | 华中科技大学 | 感存算一体智能感知系统 |
-
2021
- 2021-05-21 CN CN202110557282.5A patent/CN115374928A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116663632A (zh) * | 2023-08-02 | 2023-08-29 | 华中科技大学 | 感存算一体智能感知系统 |
CN116663632B (zh) * | 2023-08-02 | 2023-10-10 | 华中科技大学 | 感存算一体智能感知系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109800870B (zh) | 一种基于忆阻器的神经网络在线学习系统 | |
US11361216B2 (en) | Neural network circuits having non-volatile synapse arrays | |
US11501130B2 (en) | Neural network hardware accelerator architectures and operating method thereof | |
CN110210563B (zh) | 基于Spike cube SNN的图像脉冲数据时空信息学习及识别方法 | |
CN109460817B (zh) | 一种基于非易失存储器的卷积神经网络片上学习系统 | |
US10339447B2 (en) | Configuring sparse neuronal networks | |
US10360497B2 (en) | Decomposing convolution operation in neural networks | |
US20160358075A1 (en) | System for implementing a sparse coding algorithm | |
CN110998611A (zh) | 神经形态处理装置 | |
US20150317557A1 (en) | Temporal spike encoding for temporal learning | |
US10552734B2 (en) | Dynamic spatial target selection | |
CN107223260B (zh) | 用于动态地更新分类器复杂度的方法 | |
US20210192327A1 (en) | Apparatus and method for neural network computation | |
KR20200069901A (ko) | 뉴럴 네트워크를 분할하는 방법 및 뉴로모픽 장치 | |
EP3743857A2 (en) | Neural network circuits having non-volatile synapse arrays | |
Boybat et al. | Improved deep neural network hardware-accelerators based on non-volatile-memory: The local gains technique | |
CN115374928A (zh) | 一种脉冲卷积神经网络中卷积核训练的方法及装置 | |
EP3058517A1 (en) | Dynamically assigning and examining synaptic delay | |
Farhadi et al. | Combining regularization and dropout techniques for deep convolutional neural network | |
JP2022008236A (ja) | ニューロモルフィック装置及びニューラルネットワークを具現する方法 | |
CN110543888B (zh) | 一种基于群集递归神经网络的图像分类方法 | |
Irmanova et al. | Discrete‐level memristive circuits for HTM‐based spatiotemporal data classification system | |
KR102468711B1 (ko) | 스파이킹 신경망 및 이의 운용 방법 | |
Morán et al. | Fpga implementation of random vector functional link networks based on elementary cellular automata | |
CN117591932A (zh) | 基于脉冲神经网络的时序信号分类模型构建方法及系统 |
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 |