CN108009640A - 基于忆阻器的神经网络的训练装置及其训练方法 - Google Patents
基于忆阻器的神经网络的训练装置及其训练方法 Download PDFInfo
- Publication number
- CN108009640A CN108009640A CN201711422918.5A CN201711422918A CN108009640A CN 108009640 A CN108009640 A CN 108009640A CN 201711422918 A CN201711422918 A CN 201711422918A CN 108009640 A CN108009640 A CN 108009640A
- Authority
- CN
- China
- Prior art keywords
- layers
- output
- layer
- memristor
- neuronal
- 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.)
- Granted
Links
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Semiconductor Memories (AREA)
- Image Analysis (AREA)
Abstract
一种基于忆阻器的神经网络的训练装置及其训练方法。该神经网络包括逐一连接的N层神经元层,该训练方法包括:将输入数据输入神经网络的第一层神经元层以在第N层神经元层输出神经网络的输出结果,并计算第N层神经元层的输出误差;将第N层神经元层的输出误差逐层反向传播以修正各个神经元层之间的权重参数;其中,在逐层反向传播的过程中,将第m层神经元层的输出误差进行三值化处理操作,将与三值化处理操作的输出结果对应的电压信号反向输入至第m层神经元层,对第m层神经元层的权重参数进行修正;其中,N为大于等于3的整数,m为大于1且小于N的整数。该训练方法提高了基于忆阻器的神经网络的计算能力。
Description
技术领域
本公开实施例涉及一种基于忆阻器的神经网络的训练装置及其训练方法。
背景技术
随着人工智能领域的高速发展,神经网络在语音和图像识别等很多领域都取得了令人瞩目的成果。但是,随着神经网络能力的不断加强,对计算资源的需求也越来越高,而传统冯诺依曼架构中的存储墙(memory wall)问题已经成为了制约其发展的瓶颈。在这样的背景下,基于忆阻器阵列的类脑计算架构以其存算一体、能耗低、可大规模集成和并行操作等优点被认为是下一代计算芯片最有希望的技术之一。
发明内容
本公开至少一实施例提供一种基于忆阻器的神经网络的训练方法,所述神经网络包括逐一连接的N层神经元层,包括:将输入数据输入所述神经网络的第一层神经元层以在第N层神经元层输出所述神经网络的输出结果,并计算第N层神经元层的输出误差;将所述第N层神经元层的输出误差逐层反向传播以修正各个神经元层之间的权重参数。在逐层反向传播的过程中,将所述第m层神经元层的输出误差进行三值化处理操作,将与所述三值化处理操作的输出结果对应的电压信号反向输入至所述第m层神经元层,对所述第m层神经元层的权重参数进行修正;N为大于等于3的整数,m为大于1且小于N的整数。
例如,在本公开一实施例提供的训练方法中,所述三值化处理操作包括:设定第一阈值参数;将所述第m层神经元层的输出误差的绝对值与所述第一阈值参数进行比较;在所述第m层神经元层的输出误差为正值且所述第m层神经元层的输出误差的绝对值大于所述第一阈值参数的情况下,所述三值化处理操作的输出结果为1;在所述第m层神经元层的输出误差为负值且所述第m层神经元层的输出误差的绝对值大于所述第一阈值参数的情况下,所述三值化处理操作的输出结果为-1;在所述第m层神经元层的输出误差的绝对值小于所述第一阈值参数的情况下,所述三值化处理操作的输出结果为0。
例如,在本公开一实施例提供的训练方法中,对所述第m层神经元层的权重参数进行修正包括:基于所述三值化处理操作的输出结果计算获得所述权重参数的改变量;选择与所述权重参数对应的忆阻器,在所述权重参数的改变量为正的情况下,增加所述忆阻器的阻值,或者在所述权重参数的改变量为负的情况下,减小所述忆阻器的阻值。
例如,在本公开一实施例提供的训练方法中,所述忆阻器的特性包括:在外加正向脉冲信号的情况下,所述忆阻器的电阻值逐渐降低;在外加反向脉冲信号的情况下,所述忆阻器的电阻值逐渐升高。
例如,在本公开一实施例提供的训练方法中,所述正向脉冲信号和所述反向脉冲信号具有固定的幅度和宽度。
例如,本公开一实施例提供的训练方法,还包括对所述第N层神经元层的权重参数进行修正。所述第N层神经元层的权重参数具有与所述第m层神经元层的权重参数相同的修正过程。
例如,本公开一实施例提供的训练方法,还包括:对所述神经网络的第m层神经元层的前向输出结果进行二值化处理操作。
例如,在本公开一实施例提供的训练方法中,所述二值化处理操作包括:设定第二阈值参数;将所述第m层神经元层的前向输出结果与所述第二阈值参数进行比较;在所述第m层神经元层的前向输出结果大于所述第二阈值参数的情况下,所述二值化处理操作的输出结果为1;在所述第m层神经元层的前向输出结果小于所述第二阈值参数的情况下,所述二值化处理操作的输出结果为0。
本公开至少一实施例还提供一种基于忆阻器的神经网络的训练装置,配置为对所述神经网络采用本公开任一实施例所述的训练方法进行训练。
例如,本公开一实施例提供的训练装置,包括输入单元、输出单元、输出结果比对单元、计算单元、权重参数修正单元、三值量化单元。所述输入单元配置为将数据信号处理为所述神经网络所需的输入数据;所述输出单元配置为对所述神经网络输出的输出结果进行处理并发送给所述输出结果对比单元;所述输出结果比对单元配置为将所述神经网络的输出结果与目标输出结果进行计算以得到所述神经网络第N层的输出误差;所述三值量化单元配置为对所述神经网络的第m层的输出误差进行三值化处理操作;所述计算单元配置为根据所述三值化处理操作的输出结果,计算所述神经网络的权重参数的改变量;所述权重参数修正单元配置为接收所述计算单元发送的权重参数的改变量,并根据所述权重参数的改变量对与所述权重参数对应的忆阻器的电阻值进行调整。
例如,本公开一实施例提供的训练装置,还包括二值量化单元。所述二值量化单元配置为对所述神经网络的第m层的前向输出结果进行二值化处理操作。
例如,本公开一实施例提供的训练装置,还包括信号输入单元。所述信号输入单元配置为根据所述三值量化单元或二值量化单元的输出结果向所述神经网络的神经元输入对应的电压信号。
例如,在本公开一实施例提供的训练装置中,所述权重参数修正单元包括脉冲发生器和读取电路。所述脉冲发生器配置为产生作用于所述忆阻器的正向脉冲信号和反向脉冲信号;所述读写电路配置为对所述神经网络的神经元的权重参数进行读写操作。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为本公开一实施例提供的一种基于忆阻器的神经网络10的示意图;
图2A为图1中所示的神经网络10的忆阻器阵列的计算原理图;
图2B为图2A中所示的忆阻器阵列的一个忆阻器单元的连接关系图;
图3A为图1中所示的神经网络10的训练装置1的示意框图;
图3B为图3A中所示的训练装置1中输出单元的实际输出结果的电路图;
图3C为图3A中所示的训练装置1中输出结果比较单元的输出误差的输出电路图;
图3D为图3A中所示的权重参数修正单元的示意框图;
图4A为前向计算过程的结构示意图;
图4B为反向训练过程的结构示意图;
图5为图1中所示的神经网络10的训练方法流程图;
图6为图3A中所示的二值化单元的二值化处理操作的流程图;
图7为图1中所示的神经网络10的逐层反向传播过程的示意图;
图8为图5所示的训练方法中三值化处理操作的流程图;
图9为图5所示的训练方法中权重参数的修正操作的流程图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
下面,将参照附图详细描述根据本公开的各个实施例。需要注意的是,在附图中,将相同的附图标记赋予基本上具有相同或类似结构和功能的组成部分,并且将省略关于它们的重复描述。
在现有的基于忆阻器的神经网络的训练过程中,由于传统的神经网络都是在数字系统(如CPU或GPU)中开发的,因此常见的方法是将忆阻器也作为一个数字单元去使用。具体的做法是将忆阻器的阻值划分成多个区间,每个区间分别表示一个确定的数值,然后将训练好的神经网络参数映射到忆阻器上。但是,由于忆阻器本身的可靠性和稳定性等指标目前还不能完全满足大规模和高精度的使用要求,很难将其阻值划分成多个不重叠的区间。因此,当阻值区间的数目较少时,其表示范围的不足会造成识别精度的下降。与此同时,这样的训练方法还要求忆阻器提供具有一定精度(如不小于8位)的数模和模数转换器来完成输入、输出以及中间结果的计算存储等功能。但是,由于目前较高精度的数模和模数转换器的处理速度、能耗和片上面积等性能指标都远远弱于忆阻器的性能指标,因此在这样的训练方式下,数模和模数转换器将成为整个芯片的瓶颈,难以体现忆阻器的优势。
除了离线训练加数字化忆阻器的训练方式之外,还有一种训练方式是对基于忆阻器的神经网络的片上训练。但在目前的训练方式中,或者只考虑了单层的神经网络,这种训练方式的网络识别能力有限,难以完成较为复杂的实际应用;或者是用较为复杂的操作模式,如变幅度变宽度的脉冲序列来调控忆阻器的阻值。这种训练方式会带来很多额外的、远超过忆阻器阵列的面积和功率开销。因此,这种训练方式也很难体现忆阻器的优势。
本公开至少一实施例提供一种基于忆阻器的神经网络的训练方法。该神经网络包括逐一连接的N层神经元层,其中,N为大于等于3的整数。该训练方法包括:将输入数据输入神经网络的第一层神经元层以在第N层神经元层输出神经网络的输出结果,并计算第N层神经元层的输出误差;将第N层神经元层的输出误差逐层反向传播以修正各个神经元层之间的权重参数。在逐层反向传播的过程中,将第m层神经元层的输出误差进行三值化处理操作,将与三值化处理操作的输出结果对应的电压信号反向输入至第m层神经元层,对第m层神经元层的权重参数进行修正;其中,m为大于1且小于N的整数。
本公开至少一实施例还提供了一种对应于上述训练方法的训练装置。
本公开实施例提供的训练装置及其训练方法,一方面通过采用二值化和三值化的中间结果,降低了忆阻器的训练过程中对精度的要求;另一方面通过固定幅值和宽度的脉冲序列来实现忆阻器阻值的调控,减少了训练过程中迭代的能耗和对电路的需求,因此发挥了忆阻器存算一体、计算速度快、集成度高、功耗低和可扩展性强等优势,提高了神经网络的运算能力。
下面结合附图对本公开的实施例进行详细说明。
如图1所示,该神经网络10包括输入层11、至少一个隐含层12以及输出层13。例如,该神经网络10包括逐一连接的N(N为大于等于3的整数)层神经元层。例如,输入层11包括第一层神经元层,至少一个隐含层12包括第二层至第N-1层神经元层,输出层13包括第N层神经元层。例如,输入层11将接收的输入数据传递到至少一个隐含层12,至少一个隐含层12对该输入数据进行逐层计算转换发送至输出层13,输出层13输出神经网络10的输出结果。例如,如图1所示,神经网络10的层与层之间是全连接的结构。
例如,如图1所示,输入层11、至少一个隐含层12以及输出层13均包括多个神经元节点14,各层的神经元节点14的个数可以根据不同的应用情况设定。例如,当有M(M为大于1的整数)个输入数据时,输入层11有M个神经元节点14。
例如,如图1所示,神经网络10的相邻两层神经元层之间通过突触权重网络15连接。例如,突触权重由如图2A所示的忆阻器阵列实现。例如,忆阻器阵列中的忆阻器的类型可以是两端忆阻器、三端忆阻器或其他类型。例如,本实施例可以采用三端忆阻器来提高忆阻器的双向连续阻变特性和均一性。
例如,如图2A所示,忆阻器阵列可以包括多个忆阻器单元。例如,如图2B所示,每个忆阻器单元包括一个晶体管151和一个忆阻器152。例如,每个忆阻器单元还可以是包括一个选择器和一个忆阻器的结构。例如,忆阻器阵列的每一行晶体管的源极相连作为源极线,晶体管的栅极线相连作为字线,每一列忆阻器的顶电极相连作为位线。例如。该晶体管可以是N型晶体管,也可以是P型晶体管。例如,如图2B所示,通过在位线上并行输入电压激励,在源极线上得到由输入向量和忆阻器阵列的电导矩阵相乘得到的输出电流。需要注意的是,在反向训练过程中,在源极线上并行输入电压激励,在位线上得到输出电流。
具体地,根据基尔霍夫定律,忆阻器阵列的输出电流可以根据下述公式得出:
其中,j=1,…,M,k=1,…,K。
在上述公式中,vk表示输入层中神经元节点k输入的电压激励,ij表示下一层中神经元节点j的输出电流,gk,j表示忆阻器阵列的电导矩阵。
需要注意的是,例如在一个示例中,忆阻器阵列的每个突触权重也可以使用两个忆阻器来实现。也就是说,可以通过忆阻器阵列中的两列忆阻器实现一列输出电流的输出。
例如,如图3A所示,本实施例中对图1中所示的神经网络10进行训练的训练装置1包括:一个或多个处理器(图中未示出)、一个或多个存储器(图中未示出)、输入单元20、输出单元30、输出结果比对单元40、三值量化单元50、计算单元60、权重参数修正单元70、信号输入单元80以及二值量化单元90。例如,这些组件通过总线系统(图中未示出)和/或其它形式的耦合机构(未示出)互连。需要注意的是,图3A所示的训练装置1的组件和结构只是示例性的,而非限制性的,根据需要,训练装置1也可以具有其他组件和结构。
例如,该处理器可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,可以为通用处理器或专用处理器,并且可以控制训练装置1中的其它组件以执行期望的功能。存储器可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器可以运行所述程序指令,以实现所述的本公开实施例中(由处理器实现)的功能以及/或者其它期望的功能,例如二值化处理操作、三值化处理操作、权重参数改变量的计算操作等。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如图像数据以及所述应用程序使用和/或产生的各种数据等。
例如,该计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合,例如一个计算机可读存储介质包含用于三值化处理操作的计算机可读的程序代码,另一个计算机可读存储介质包含计算权重参数改变量的计算机可读的程序代码。例如,当该程序代码由计算机读取时,计算机可以执行该计算机存储介质中存储的程序代码,执行例如本公开任一实施例提供的二值化处理操作、三值化处理操作或权重参数改变量的计算等操作方法。
例如,计算机可读存储介质可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合,也可以为其他适用的存储介质。
例如,输入单元20与神经网络10的输入层11相连接,配置为将数据信号处理为神经网络10所需的输入数据。例如,数据信号可以是图像信号,输入单元20可以将该图像信号转换为神经网络10可以识别的灰度矩阵作为输入数据。例如,输入单元20可以通过例如硬件、软件、固件或其任意组合实现。例如,输入单元20可以包括多个DAC(数模转换器),将数字信号转换为模拟信号,例如电压信号。
例如,输出单元30与神经网络10的输出层13和输出结果比对单元40相连接,配置为对神经网络10输出的输出结果进行处理并发送给输出结果比对单元40。例如,输出单元30可以通过例如硬件、软件、固件或其任意组合实现。例如,输出单元30可以通过ADC(模数转换器)将神经网络10的输出结果进行离散化处理操作,即转换为数字信号,并将该数字信号发送至输出结果比对单元40。
例如,输出结果比对单元40与输出单元30和计算单元60相连接,配置为将神经网络10的输出结果与目标输出结果进行计算以得到神经网络10第N层神经元层的输出误差。例如,将第N层神经元层(输出层13)的输出误差发送至计算单元60以计算第N层神经元层(输出层13)的权重参数改变量。例如,输出结果比对单元40还可以将第N层神经元层(输出层13)的输出误差反向传播至第N层神经元层(输出层13)以得到第N-1层神经元层的输出误差。
例如,第N层神经元层(输出层13)的输出误差δj (N)可以根据下述公式得出:
δj (N)=(yj-tj)f'(x)
其中,yj=Rfij,f'(x)=1。
在上述公式中,f表示激活函数,f'表示激活函数的导数,Rf表示神经元节点j上的运放反馈电阻,tj表示第N层神经元层的神经元节点j的目标输出结果,yj表示第N层神经元层的神经元节点j的实际输出结果。例如,第N层神经元层的神经元节点j的实际输出结果yj可以通过如图3B所示的电路实现。
例如,如图3B所示,可以通过在第N层神经元层的每个神经元节点的输出端连接运算放大器的反向输入端实现。需要注意的是,包括但不限于此,还可以由其他适合的电路结构实现。
例如,可以将的f'(x)的值存储在缓冲区中,例如,可以采用ADC(模数转换器)对(yj-tj)的值进行离散化处理,转换为数字信号。例如,可以采用数字乘法器将(yj-tj)和f'(x)相乘。例如,该第N层神经元层的输出误差的值可以储存在寄存器中,也可以存储在其他存储装置中。
例如,输出结果比对单元40可以通过例如硬件、软件、固件或其任意组合实现。例如,输出结果比对单元40可以通过如图3C所示的电路方式实现。例如,如图3C所示,可以通过在第N层忆阻器阵列的输出端连接运算器、加法器、模数转换器和乘法器的电路结构实现。需要注意的是,包括但不限于此,还可以由其他适合的电路结构实现。
例如,三值量化单元50与神经网络10和计算单元60连接,配置为对神经网络10的第m(m为大于1且小于N的整数)层神经元层(即隐含层12)的输出误差进行三值化处理操作,并将三值化处理操作的输出结果发送至计算单元60。例如,该三值化处理操作可以将第m层神经元层(即隐含层12)的输出误差量化为0,1或-1。例如,三值量化单元50可以通过例如软件实现,也可以通过例如软件和硬件组合实现。例如,可以通过处理器执行相应的计算机程序指令得到相应的量化结果。
例如,第m层神经元层三值化处理操作的输出结果δj (m)可以根据下述公式得出:
δj (m)=φ(|ej|,σj)f'(x)
其中,
在上述公式中,f'(x)表示激活函数的导数,σj表示第一阈值参数,神经元节点k连接上一层神经元节点j,ej表示第m层神经元层的神经元节点j的输出误差,|ej|表示第m层神经元层的神经元节点j的输出误差的绝对值,ek表示第m+1层神经元层的神经元节点k的输出误差。
例如,可以将三值量化单元50的量化结果存储在寄存器中,也可以存储在其他存储装置中。
例如,计算单元60与输出结果比对单元40、三值量化单元50以及权重参数修正单元70相连接,配置为根据第N层神经元层(即输出层13)的输出误差计算第N层神经元层(即输出层13)的权重参数的改变量,以及根据三值化处理操作的输出结果计算至少一个隐含层12的权重参数的改变量,并将输出层13和至少一个隐含层12的权重参数的改变量发送给权重参数修正单元70。例如,计算单元60可以通过例如硬件、软件、固件或其任意组合实现。
例如,该权重参数改变量可以通过下述公式得出:
ΔWj,k=η×δj×yk
在上述公式中,yk表示在前向过程中上一层神经元节点k的二值量化的输出结果,δj表示第N层神经元层(即输出层13)的输出误差δj (N)或隐含层12的输出误差的三值量化结果δj (m),η表示学习步长,需要在训练之前事先给定,η的数值可以根据实际需求设置,也可以采用本领域的常规选择。例如,η的数值在算法中也可以变化。
例如,权重参数修正单元70与计算单元60和神经网络10相连接,配置为接收计算单元60发送的权重参数的改变量,并根据该权重参数的改变量对与神经网络10中相应的忆阻器的电阻值进行调整。
例如,如图3D所示,权重参数修正单元70可以包括脉冲发生器71和读写电路72。例如,脉冲发生器71配置为产生作用于忆阻器的正向脉冲信号和反向脉冲信号。例如,正向脉冲信号和反向脉冲信号具有固定的幅值和宽度。例如,该正向脉冲信号和反向脉冲信号根据计算单元60发送的权重参数的改变量生成。例如,在权重参数的改变量为正的情况下,权重参数修正单元70向忆阻器施加一个反向脉冲,增加忆阻器的阻值;在权重参数的改变量为负的情况下,权重参数修正单元70向忆阻器施加一个正向脉冲,减小忆阻器的阻值。例如,根据权重参数改变量施加的正向脉冲和反向脉冲的幅度可以由神经元节点的输入数据vk调制,正向脉冲和反向脉冲的持续时间可以由η×δj调制。例如,可以通过施加在忆阻器两端的脉冲信号使电阻更新一个与η×δj×yk成正比的量,从而实现对忆阻器阻值的调制。例如,读写电路72配置为对神经网络10的权重参数进行读写操作。
例如,权重参数修正单元70可以通过硬件和软件组合方式实现,例如,可以通过处理器控制脉冲发生器产生相应的脉冲信号,并控制读写电路输入至相应的忆阻器中对忆阻器的阻值进行调整。
通过使用固定幅值和宽度的脉冲序列来实现忆阻器的调控,可以避免通过变幅值变宽度这种复杂模式而产生的很多额外且远超忆阻器阵列面积和功率消耗,从而发挥了忆阻器的优势,提高了神经网络的计算能力。
例如,二值量化单元90与神经网络10和信号输入单元80相连接,配置为对神经网络10的第m层的前向输出结果进行二值化处理操作。例如,二值化处理操作可以在神经网络10的前向计算过程中进行,可以将第m层神经元层的前向输出结果量化为0或1。例如,二值量化单元90可以通过例如硬件、软件、固件或其任意组合实现。
例如,二值化处理操作的量化结果可以根据下述公式得出:
其中,
在上述公式中,神经元k连接上一层神经元j,表示第m层神经元层的输入(即第m-1层神经元层的输出),yk表示第m层神经元层的输出。Wj表示第m层神经元层的权重参数,cj表示第m层神经元层的第二阈值参数,表示二值量化函数,即神经网络10的激活函数。
例如,在本实施例中,激活函数f(x)可以表示为二值量化函数。例如,可以表示为:
例如,在本实施例中,激活函数的导数可以表示为:
f'(x)=1
例如,信号输入单元80与神经网络10、三值量化单元50以及二值量化单元90连接,配置为根据三值量化单元50和二值量化单元90的输出结果向神经网络10的至少一个隐含层12输入对应的电压信号。例如,在前向计算过程中,该信号输入单元根据二值量化单元90的输出结果(即0或1)分别向神经网络10的下一层神经元输入对应的电压信号,作为下一层神经元层输入数据。例如,在反向训练过程中,该信号输入单元接收了第m-1层的输出误差的三值量化单元50的输出结果,并根据该三值量化单元50的输出结果(即0,1或-1)发送相应的电压信号至第m-1层神经元层,作为第m-1层神经元层的输入数据。例如,信号输入单元80可以是电压源。例如,信号输入单元80可以通过例如硬件和软件组合实现。例如,可以通过处理器控制信号输入单元80向下一层发送相应的电压信号。
需要说明的是,上述各个单元的具体结构和实现方式可以采用现有的各种可行的方案,在此不作限定。
例如,该训练装置1的训练过程可以包括前向计算过程和反向训练过程。例如,如图4A所示,在前向计算过程中,外界信息输入的图像信号经由输入单元20(图中未示出)转换为基于忆阻器的神经网络10所需的输入数据并输入到神经网络10的第1层神经元层(即输入层11),并由第1层神经元层传送至神经网络10的第2神经元层。该输入数据经过忆阻器阵列得到第2层神经元层的输出结果。例如,第2层神经元层的输出结果可以经过二值量化单元90进行量化。例如,信号输入单元80(图中未示出)根据该量化结果(即0或1)发送相应的电压信号作为第3层神经元层的输入数据。例如,第3层神经元层的输入数据可以经过忆阻器阵列得到该层的输出,以此类推,直至第N层神经元层输出神经网络的输出结果为止。神经网络10产生的输出信号经由所述输出单元30进行转换后发送至输出结果比对单元40。输出比对单元40将神经网络10的输出结果与目标输出结果进行计算后,得到神经网络10的输出误差并发送至计算单元60,并将输出误差从神经网络10的第N层神经元层逐层反向传播,进入反向训练过程。
例如,如图4B所示,在反向训练过程中,输出结果比对单元40(图中未示出)将第N层神经元层(即输出层13)的输出误差反向输入至第N层神经元层,并通过第N层神经元层的忆阻器阵列得到第N-1层神经元层的输出误差。例如,计算单元60(图中未示出)根据第N层神经元层(即输出层13)的输出误差得出第N层神经元层的权重参数的改变量。例如,权重参数修正单元70根据该权重参数改变量发送相应的脉冲至第N层神经元层的忆阻器阵列,以对第N层神经元层的权重参数进行修正,即对忆阻器的阻值进行调制。例如,如图4B所示,第N-1层神经元层的输出误差经过三值量化单元50量化后,将量化结果(即0,1或-1)发送至信号输入单元80,信号输入单元80将相应的电压信号反向输入至第N-1层神经元层,以得到第N-2层神经元层的输出误差,以此类推,直至输入至第一层神经元层(输入层11)为止。例如,其余各层的权重参数的修正操作与第N层神经元的权重参数的修正操作相同。
经过该训练装置1在信息样本库中进行反复训练后,使得基于忆阻器的权重参数最终收敛到理想的状态。所以,当有新的样本输入后,按照上述流程进行操作,便可以得到理想的输出结果。
下面,参考图5描述本公开实施例的基于忆阻器的神经网络的训练方法。该训练方法可以由训练装置1执行。由于该训练方法中各个操作的细节与在上文中针对图3A描述的训练装置1的方法基本相同,因此为了避免重复,在下文中对训练方法的操作步骤进行描述的同时,省略相同细节的描述。
步骤S110:将输入数据输入至神经网络的第一层神经元层(即输入层)以在第N层神经元层(即输出层)输出神经网络的输出结果,并计算第N层神经元层(即输出层)的输出误差。
例如,该步骤S110可以是神经网络10的前向计算过程。例如,在将输入数据输入至神经网络10之前,可以利用高随机电阻值对神经网络10中的忆阻器阵列进行初始化操作。例如,初始化操作可以通过随机生成一个服从正态分布的矩阵实现。例如,可以将神经网络10的输出结果发送至输出单元30进行模数转换后发送至输出结果比对单元40。例如,第N层神经元层(即输出层13)的输出误差可以在输出结果比对单元40中得到。
例如,第N层神经元层(输出层13)的输出误差δj (N)可以根据下述公式得出:
δj (N)=(yj-tj)f'(x)
其中,yj=Rfij,f'(x)=1。
在上述公式中,f表示激活函数,f'表示激活函数的导数,Rf表示神经元节点j上的运放反馈电阻,tj表示第N层神经元层的神经元节点j的目标输出结果,yj表示第N层神经元层的神经元节点j的实际输出结果。例如,第N层神经元层的神经元节点j的实际输出结果yj可以通过如图3B所示的电路实现。
例如,在神经网络10的前向计算过程中,还包括对神经网络10的第m层的输出结果进行二值化处理操作。图6为前向计算过程中二值化处理操作的流程图。
例如,如图6所示,二值化处理操作可以包括以下步骤:
步骤S111:设定第二阈值参数。
例如,忆阻器阵列的规模越大,第二阈值参数越大,具体的设定根据该忆阻器阵列的规模而定。
步骤S112:判断第m层神经元层的前向输出结果是否大于第二阈值参数;如果是,则执行步骤S113;如果否,则执行步骤S114。
步骤S113:二值化处理操作的输出结果为1。
步骤S114:二值化处理操作的输出结果为0。
例如,可以在二值量化单元90中执行二值化处理操作。
例如,二值化处理操作的量化结果可以根据下述公式得出:
其中,
在上述公式中,神经元k连接上一层神经元j,表示第m层的输入(即第m-1层的输出),yk表示第m层的输出。Wj表示第m层的权重参数,cj表示第m层的第二阈值参数,表示二值量化函数,即神经网络10的激活函数。
例如,在本实施例中,激活函数f(x)可以表示为上述二值化量化函数。例如,可以表示为:
例如,在本实施例中,激活函数的导数可以表示为:
f'(x)=1
步骤S120:将第N层神经元层(即输出层)的输出误差逐层反向传播以修正各个神经元层之间的权重参数。
例如,步骤S120可以为神经网络10的反向训练过程。例如,如图7所示,反向训练过程与图1所示过程类似,只是方向相反。例如,在每一层神经元层的输出部分输入每层神经元层的输出误差,在输入部分得到上一层神经元层的输出。
例如,如图5所示,在反向训练过程中,步骤S120包括步骤S121、步骤S122以及步骤S123。
步骤S121:将第m层神经元层的输出误差进行三值化处理操作。
例如,可以通过三值量化单元50来实现三值化处理操作。例如,第m层神经元层三值化处理操作的输出结果δj (m)可以根据下述公式得出:
δj (m)=φ(|ej|,σj)f'(x)
其中,
在上述公式中,f'(x)表示激活函数的导数,σj表示第一阈值参数,神经元节点k连接上一层神经元节点j,ej表示第m层神经元层的神经元节点j的输出误差,|ej|表示第m层神经元层的神经元节点j的输出误差的绝对值,ek表示第m+1层神经元层的神经元节点k的输出误差。
步骤S122:将与三值化处理操作的输出结果对应的电压信号反向输入至第m层神经元层。
例如,可以通过信号输入单元80来实现。
步骤S123:对第m层神经元层的权重参数进行修正。
例如,权重参数的修正可以通过计算单元60和权重参数修正单元70来实现。例如,在计算单元60中得到权重参数的改变量并发送至权重参数修正单元70。例如,权重参数修正单元70根据该权重参数的改变量向神经网络10发送相应的脉冲对相应的忆阻器进行调整。例如,在权重参数的改变量为正的情况下,权重参数修正单元70向忆阻器施加一个反向脉冲,增加忆阻器的阻值;在权重参数的改变量为负的情况下,权重参数修正单元70向忆阻器施加一个正向脉冲,减小忆阻器的阻值。
例如,该权重参数改变量可以通过下述公式得出:
ΔWj,k=η×δj×yk
在上述公式中,yk表示在前向过程中上一层神经元节点k的二值量化的输出结果,δj表示第N层神经元层(即输出层13)的输出误差δj (N)或至少一个隐含层12的输出误差的三值量化结果δj (m),η表示学习步长,需要在训练之前事先给定,η的数值可以根据实际需求设置,也可以采用本领域的常规选择。例如,η的数值在算法中也可以变化。
图8为图5所示的训练方法中的三值化处理操作的流程图。也就是说,图8为图5中步骤S121的操作流程图。
如图8所示,该三值化处理操作可以包括以下步骤:
步骤S1211:设定第一阈值参数。
例如,忆阻器阵列的规模越大,第一阈值参数越大,具体的设定根据该忆阻器阵列的规模而定。例如,第一阈值参数为大于0的向量。
步骤S1212:第m层神经元层的输出误差的绝对值是否大于第一阈值参数;如果是,则执行步骤S1213;如果否,则执行步骤S1216。
例如,如果第m层神经元层的输出误差为0或其他小于第一阈值参数的值,则执行步骤S1216。
步骤S1213:判断第m层神经元层的输出误差是否为正值;如果是,则执行步骤S1214;如果否,则执行步骤S1215。
步骤S1214:三值化处理操作的输出结果为1。
步骤S1215:三值化处理操作的输出结果为-1。
步骤S1216:三值化处理操作的输出结果为0。
例如,上述三值化处理操作的步骤可以在三值化量化单元50中进行。例如,第m层神经元层三值化处理操作的输出结果δj (m)可以根据下述公式得出:
δj (m)=φ(|ej|,σj)f'(x)
其中,
在上述公式中,f'(x)表示激活函数的导数,σj表示第一阈值参数,神经元节点k连接上一层神经元节点j,ej表示第m层神经元层的神经元节点j的输出误差,|ej|表示第m层神经元层的神经元节点j的输出误差的绝对值,ek表示第m+1层神经元层的神经元节点k的输出误差。
图9为图5所示的训练方法中的权重参数的修正操作的流程图。也就是说,图9为图5中步骤S123的操作流程图。
如图9所示,该权重参数的修正过程可以包括以下步骤:
步骤S1231:基于三值化处理操作的输出结果计算获得权重参数的改变量。
例如,可以在计算单元60中计算该权重参数改变量。例如,该权重参数改变量可以通过下述公式得出:
ΔWj,k=η×δj×yk
在上述公式中,yk表示在前向过程中上一层神经元节点k的二值量化的输出结果,δj表示第N层神经元层(即输出层13)的输出误差δj (N)或至少一个隐含层12的输出误差的三值量化结果δj (m),η表示学习步长,需要在训练之前事先给定,η的数值可以根据实际需求设置,也可以采用本领域的常规选择。例如,η的数值在算法中也可以变化。
步骤S1232:选择与权重参数对应的忆阻器。
例如,该权重参数为第m层神经元层的权重参数,则相应调整的忆阻器为第m层忆阻器。
步骤S1233:判断权重参数的改变量是否为正;如果是,则执行步骤S1234;如果否,则执行步骤S1235。
例如,可以在权重参数修正单元70中判断权重参数改变量是否为正。
步骤S1234:增加忆阻器的阻值。
例如,可以通过权重参数修正单元70向该层忆阻器阵列施加负向脉冲实现。
步骤S1235:减小忆阻器的阻值。
例如,可以通过权重参数修正单元70向该层忆阻器阵列施加正向脉冲实现。
例如,在上述实施例中,先判断第m层神经元层的输出误差的绝对值是否大于第一阈值参数,再判断第m层神经元层的输出误差是否为正值,需要注意的是,包括但不限于此,这两个步骤的次序也可以交换。
例如,如图9所示的权重参数的修正步骤也可以应用于第N层神经元层的权重参数的修正。
需要说明的是,本公开的实施例中,该用于基于忆阻器的神经网络的训练方法至少部分步骤可以通过软件、硬件、固件或它们的任意组合的方式实现。同样,该用于基于忆阻器的神经网络的训练方法的流程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行。虽然上文描述的训练方法的流程包括特定顺序出现的多个操作,但是应该清楚的了解,多个操作的顺序并不受限制。上文描述的训练方法可以执行一次,也可以按照预定条件执行多次。例如,如果输出层13的输出误差没有收敛到足够小的值,则继续进行步骤120。
本公开实施例提供的训练装置及其训练方法,一方面通过采用二值化、三值量化的中间结果,降低了忆阻器训练过程中对精度的要求;另一方面通过固定幅值和宽度的脉冲序列来实现忆阻器阻值的调控,减少了训练过程中迭代的能耗和对电路的需求,因此发挥了忆阻器存算一体、计算速度快、集成度高、功耗低和可扩展性强等优势,提高了神经网络的运算能力。
该训练方法根据当前结果的反馈仅对忆阻器阻值进行变大、变小或不变操作,并不要求每个忆阻器的具体阻值,而以最终的识别能力作为唯一的检验标准。这样的设计可以十分有效地减小相关电路需求与每次迭代的能耗,使该神经网络10在单位面积下具有更高的计算能力。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种基于忆阻器的神经网络的训练方法,所述神经网络包括逐一连接的N层神经元层,包括:
将输入数据输入所述神经网络的第一层神经元层以在第N层神经元层输出所述神经网络的输出结果,并计算第N层神经元层的输出误差;
将所述第N层神经元层的输出误差逐层反向传播以修正各个神经元层之间的权重参数;
其中,在逐层反向传播的过程中,将所述第m层神经元层的输出误差进行三值化处理操作,将与所述三值化处理操作的输出结果对应的电压信号反向输入至所述第m层神经元层,对所述第m层神经元层的权重参数进行修正;
其中,N为大于等于3的整数,m为大于1且小于N的整数。
2.根据权利要求1所述的训练方法,其中,所述三值化处理操作包括:
设定第一阈值参数;
将所述第m层神经元层的输出误差的绝对值与所述第一阈值参数进行比较;
在所述第m层神经元层的输出误差为正值且所述第m层神经元层的输出误差的绝对值大于所述第一阈值参数的情况下,所述三值化处理操作的输出结果为1;
在所述第m层神经元层的输出误差为负值且所述第m层神经元层的输出误差的绝对值大于所述第一阈值参数的情况下,所述三值化处理操作的输出结果为-1;
在所述第m层神经元层的输出误差的绝对值小于所述第一阈值参数的情况下,所述三值化处理操作的输出结果为0。
3.根据权利要求1或2所述的训练方法,其中,对所述第m层神经元层的权重参数进行修正包括:
基于所述三值化处理操作的输出结果计算获得所述权重参数的改变量;
选择与所述权重参数对应的忆阻器,在所述权重参数的改变量为正的情况下,增加所述忆阻器的阻值,或者
在所述权重参数的改变量为负的情况下,减小所述忆阻器的阻值。
4.根据权利要求3所述的训练方法,其中,所述忆阻器的特性包括:
在外加正向脉冲信号的情况下,所述忆阻器的电阻值逐渐降低;
在外加反向脉冲信号的情况下,所述忆阻器的电阻值逐渐升高。
5.根据权利要求4所述的训练方法,其中,所述正向脉冲信号和所述反向脉冲信号具有固定的幅度和宽度。
6.根据权利要求3所述的训练方法,还包括对所述第N层神经元层的权重参数进行修正,其中,所述第N层神经元层的权重参数具有与所述第m层神经元层的权重参数相同的修正过程。
7.根据权利要求1或2所述的训练方法,还包括:
对所述神经网络的第m层神经元层的前向输出结果进行二值化处理操作。
8.根据权利要求7所述的训练方法,其中,所述二值化处理操作包括:
设定第二阈值参数;
将所述第m层神经元层的前向输出结果与所述第二阈值参数进行比较;
在所述第m层神经元层的前向输出结果大于所述第二阈值参数的情况下,所述二值化处理操作的输出结果为1;
在所述第m层神经元层的前向输出结果小于所述第二阈值参数的情况下,所述二值化处理操作的输出结果为0。
9.一种基于忆阻器的神经网络的训练装置,配置为对所述神经网络采用如权利要求1-8任一所述的训练方法进行训练。
10.根据权利要求9所述的训练装置,包括输入单元、输出单元、输出结果比对单元、计算单元、权重参数修正单元、三值量化单元;其中,
所述输入单元配置为将数据信号处理为所述神经网络所需的输入数据;
所述输出单元配置为对所述神经网络输出的输出结果进行处理并发送给所述输出结果对比单元;
所述输出结果比对单元配置为将所述神经网络的输出结果与目标输出结果进行计算以得到所述神经网络第N层的输出误差;
所述三值量化单元配置为对所述神经网络的第m层的输出误差进行三值化处理操作;
所述计算单元配置为根据所述三值化处理操作的输出结果,计算所述神经网络的权重参数的改变量;
所述权重参数修正单元配置为接收所述计算单元发送的权重参数的改变量,并根据所述权重参数的改变量对与所述权重参数对应的忆阻器的电阻值进行调整。
11.根据权利要求10所述的训练装置,还包括二值量化单元,其中,所述二值量化单元配置为对所述神经网络的第m层的前向输出结果进行二值化处理操作。
12.根据权利要求11所述的训练装置,还包括信号输入单元,其中,所述信号输入单元配置为根据所述三值量化单元或二值量化单元的输出结果向所述神经网络的神经元输入对应的电压信号。
13.根据权利要求10所述的训练装置,其中,所述权重参数修正单元包括脉冲发生器和读取电路;其中,
所述脉冲发生器配置为产生作用于所述忆阻器的正向脉冲信号和反向脉冲信号;
所述读写电路配置为对所述神经网络的神经元的权重参数进行读写操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711422918.5A CN108009640B (zh) | 2017-12-25 | 2017-12-25 | 基于忆阻器的神经网络的训练装置及其训练方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711422918.5A CN108009640B (zh) | 2017-12-25 | 2017-12-25 | 基于忆阻器的神经网络的训练装置及其训练方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108009640A true CN108009640A (zh) | 2018-05-08 |
CN108009640B CN108009640B (zh) | 2020-04-28 |
Family
ID=62061152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711422918.5A Active CN108009640B (zh) | 2017-12-25 | 2017-12-25 | 基于忆阻器的神经网络的训练装置及其训练方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108009640B (zh) |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763163A (zh) * | 2018-08-02 | 2018-11-06 | 北京知存科技有限公司 | 模拟向量-矩阵乘法运算电路 |
CN108921290A (zh) * | 2018-06-29 | 2018-11-30 | 清华大学 | 神经突触单元电路、神经网络电路和信息处理系统 |
CN108962230A (zh) * | 2018-07-27 | 2018-12-07 | 重庆因普乐科技有限公司 | 基于忆阻器的语音识别方法 |
CN109034379A (zh) * | 2018-10-12 | 2018-12-18 | 南京邮电大学 | 一种由类脑器件忆阻器搭建的神经元及神经元电路 |
CN109086870A (zh) * | 2018-07-27 | 2018-12-25 | 重庆因普乐科技有限公司 | 一种基于忆阻器的三维卷积神经网络实现方法 |
CN109165730A (zh) * | 2018-09-05 | 2019-01-08 | 电子科技大学 | 交叉阵列神经形态硬件中状态量化网络实现方法 |
CN109273035A (zh) * | 2018-08-02 | 2019-01-25 | 北京知存科技有限公司 | 闪存芯片的控制方法、终端 |
CN109359734A (zh) * | 2018-10-24 | 2019-02-19 | 电子科技大学 | 一种基于忆阻器单元的神经网络突触结构及其调节方法 |
CN109657787A (zh) * | 2018-12-19 | 2019-04-19 | 电子科技大学 | 一种二值忆阻器的神经网络芯片 |
CN109711537A (zh) * | 2018-11-30 | 2019-05-03 | 郑州轻工业学院 | 一种基于忆阻神经网络的预测电路 |
CN109800870A (zh) * | 2019-01-10 | 2019-05-24 | 华中科技大学 | 一种基于忆阻器的神经网络在线学习系统 |
CN110428049A (zh) * | 2019-08-21 | 2019-11-08 | 南京邮电大学 | 一种基于多态忆阻器的电压型神经网络及其操作方法 |
CN110580523A (zh) * | 2018-06-07 | 2019-12-17 | 清华大学 | 一种模拟神经网络处理器的误差校准方法及装置 |
WO2019237357A1 (zh) * | 2018-06-15 | 2019-12-19 | 华为技术有限公司 | 一种神经网络模型权重参数的确定方法及设备 |
CN110659731A (zh) * | 2018-06-30 | 2020-01-07 | 华为技术有限公司 | 一种神经网络训练方法及装置 |
CN110796241A (zh) * | 2019-11-01 | 2020-02-14 | 清华大学 | 基于忆阻器的神经网络的训练方法及其训练装置 |
CN110807519A (zh) * | 2019-11-07 | 2020-02-18 | 清华大学 | 基于忆阻器的神经网络的并行加速方法及处理器、装置 |
CN110842915A (zh) * | 2019-10-18 | 2020-02-28 | 南京大学 | 一种基于忆阻交叉阵列的机器人控制系统及方法 |
CN111325321A (zh) * | 2020-02-13 | 2020-06-23 | 中国科学院自动化研究所 | 基于多神经网络融合的类脑计算系统及指令集的执行方法 |
CN111476356A (zh) * | 2020-05-11 | 2020-07-31 | 中国人民解放军国防科技大学 | 忆阻神经网络的训练方法、装置、设备及存储介质 |
WO2020172952A1 (zh) * | 2019-02-26 | 2020-09-03 | 北京知存科技有限公司 | 一种存算一体芯片中数模转换电路与模数转换电路复用装置 |
CN111639760A (zh) * | 2019-03-01 | 2020-09-08 | 国际商业机器公司 | 借助类优先级的离散特征表示 |
CN111753975A (zh) * | 2020-07-01 | 2020-10-09 | 复旦大学 | 一种面向物联网的自然模拟信号的类脑处理方法 |
CN111950718A (zh) * | 2019-05-16 | 2020-11-17 | 北京知存科技有限公司 | 利用存算一体芯片实现递进式cnn运算的方法 |
CN112101549A (zh) * | 2020-09-22 | 2020-12-18 | 清华大学 | 基于忆阻器阵列的神经网络的训练方法和装置 |
WO2021098821A1 (zh) * | 2019-11-20 | 2021-05-27 | 华为技术有限公司 | 神经网络系统中数据处理的方法、神经网络系统 |
CN113222107A (zh) * | 2021-03-09 | 2021-08-06 | 北京大学 | 数据处理方法、装置、设备及存储介质 |
CN113316752A (zh) * | 2019-01-24 | 2021-08-27 | 索尼半导体解决方案公司 | 电压控制装置 |
CN113517016A (zh) * | 2021-07-21 | 2021-10-19 | 清华大学 | 计算装置及其鲁棒性处理方法 |
CN115481562A (zh) * | 2021-06-15 | 2022-12-16 | 中国科学院微电子研究所 | 多并行度优化方法、装置、识别方法和电子设备 |
WO2023045160A1 (zh) * | 2021-09-26 | 2023-03-30 | 清华大学 | 数据处理装置以及数据处理方法 |
WO2024098492A1 (zh) * | 2022-11-09 | 2024-05-16 | 深圳先进技术研究院 | 忆阻器精度重构计算的误差校正方法、系统、计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2230633A1 (en) * | 2009-03-17 | 2010-09-22 | Commissariat à l'Énergie Atomique et aux Énergies Alternatives | Neural network circuit comprising nanoscale synapses and CMOS neurons |
CN103455843A (zh) * | 2013-08-16 | 2013-12-18 | 华中科技大学 | 一种反馈型人工神经网络训练方法及计算系统 |
CN103810497A (zh) * | 2014-01-26 | 2014-05-21 | 华中科技大学 | 一种基于忆阻器的图像识别系统及方法 |
CN105224986A (zh) * | 2015-09-29 | 2016-01-06 | 清华大学 | 基于忆阻器件的深度神经网络系统 |
CN106951960A (zh) * | 2017-03-02 | 2017-07-14 | 平顶山学院 | 一种神经网络及该神经网络的学习方法 |
-
2017
- 2017-12-25 CN CN201711422918.5A patent/CN108009640B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2230633A1 (en) * | 2009-03-17 | 2010-09-22 | Commissariat à l'Énergie Atomique et aux Énergies Alternatives | Neural network circuit comprising nanoscale synapses and CMOS neurons |
CN103455843A (zh) * | 2013-08-16 | 2013-12-18 | 华中科技大学 | 一种反馈型人工神经网络训练方法及计算系统 |
CN103810497A (zh) * | 2014-01-26 | 2014-05-21 | 华中科技大学 | 一种基于忆阻器的图像识别系统及方法 |
CN105224986A (zh) * | 2015-09-29 | 2016-01-06 | 清华大学 | 基于忆阻器件的深度神经网络系统 |
CN106951960A (zh) * | 2017-03-02 | 2017-07-14 | 平顶山学院 | 一种神经网络及该神经网络的学习方法 |
Cited By (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110580523A (zh) * | 2018-06-07 | 2019-12-17 | 清华大学 | 一种模拟神经网络处理器的误差校准方法及装置 |
CN110580523B (zh) * | 2018-06-07 | 2022-08-02 | 清华大学 | 一种模拟神经网络处理器的误差校准方法及装置 |
CN111937011A (zh) * | 2018-06-15 | 2020-11-13 | 华为技术有限公司 | 一种神经网络模型权重参数的确定方法及设备 |
WO2019237357A1 (zh) * | 2018-06-15 | 2019-12-19 | 华为技术有限公司 | 一种神经网络模型权重参数的确定方法及设备 |
CN108921290B (zh) * | 2018-06-29 | 2020-11-24 | 清华大学 | 神经突触单元电路、神经网络电路和信息处理系统 |
CN108921290A (zh) * | 2018-06-29 | 2018-11-30 | 清华大学 | 神经突触单元电路、神经网络电路和信息处理系统 |
CN110659731A (zh) * | 2018-06-30 | 2020-01-07 | 华为技术有限公司 | 一种神经网络训练方法及装置 |
CN110659731B (zh) * | 2018-06-30 | 2022-05-17 | 华为技术有限公司 | 一种神经网络训练方法及装置 |
CN108962230A (zh) * | 2018-07-27 | 2018-12-07 | 重庆因普乐科技有限公司 | 基于忆阻器的语音识别方法 |
CN109086870A (zh) * | 2018-07-27 | 2018-12-25 | 重庆因普乐科技有限公司 | 一种基于忆阻器的三维卷积神经网络实现方法 |
CN109273035A (zh) * | 2018-08-02 | 2019-01-25 | 北京知存科技有限公司 | 闪存芯片的控制方法、终端 |
CN108763163A (zh) * | 2018-08-02 | 2018-11-06 | 北京知存科技有限公司 | 模拟向量-矩阵乘法运算电路 |
CN108763163B (zh) * | 2018-08-02 | 2023-10-20 | 北京知存科技有限公司 | 模拟向量-矩阵乘法运算电路 |
CN109165730B (zh) * | 2018-09-05 | 2022-04-26 | 电子科技大学 | 交叉阵列神经形态硬件中状态量化网络实现方法 |
CN109165730A (zh) * | 2018-09-05 | 2019-01-08 | 电子科技大学 | 交叉阵列神经形态硬件中状态量化网络实现方法 |
CN109034379A (zh) * | 2018-10-12 | 2018-12-18 | 南京邮电大学 | 一种由类脑器件忆阻器搭建的神经元及神经元电路 |
CN109034379B (zh) * | 2018-10-12 | 2024-02-27 | 南京邮电大学 | 一种由类脑器件忆阻器搭建的神经元及神经元电路 |
CN109359734A (zh) * | 2018-10-24 | 2019-02-19 | 电子科技大学 | 一种基于忆阻器单元的神经网络突触结构及其调节方法 |
CN109359734B (zh) * | 2018-10-24 | 2021-10-26 | 电子科技大学 | 一种基于忆阻器单元的神经网络突触结构及其调节方法 |
CN109711537A (zh) * | 2018-11-30 | 2019-05-03 | 郑州轻工业学院 | 一种基于忆阻神经网络的预测电路 |
CN109711537B (zh) * | 2018-11-30 | 2020-09-11 | 郑州轻工业学院 | 一种基于忆阻神经网络的预测电路 |
CN109657787B (zh) * | 2018-12-19 | 2022-12-06 | 电子科技大学 | 一种二值忆阻器的神经网络芯片 |
CN109657787A (zh) * | 2018-12-19 | 2019-04-19 | 电子科技大学 | 一种二值忆阻器的神经网络芯片 |
CN109800870B (zh) * | 2019-01-10 | 2020-09-18 | 华中科技大学 | 一种基于忆阻器的神经网络在线学习系统 |
CN109800870A (zh) * | 2019-01-10 | 2019-05-24 | 华中科技大学 | 一种基于忆阻器的神经网络在线学习系统 |
CN113316752A (zh) * | 2019-01-24 | 2021-08-27 | 索尼半导体解决方案公司 | 电压控制装置 |
WO2020172952A1 (zh) * | 2019-02-26 | 2020-09-03 | 北京知存科技有限公司 | 一种存算一体芯片中数模转换电路与模数转换电路复用装置 |
CN111639760A (zh) * | 2019-03-01 | 2020-09-08 | 国际商业机器公司 | 借助类优先级的离散特征表示 |
CN111639760B (zh) * | 2019-03-01 | 2024-04-09 | 国际商业机器公司 | 借助类优先级的离散特征表示 |
CN111950718B (zh) * | 2019-05-16 | 2021-12-07 | 北京知存科技有限公司 | 利用存算一体芯片实现递进式cnn运算的方法 |
CN111950718A (zh) * | 2019-05-16 | 2020-11-17 | 北京知存科技有限公司 | 利用存算一体芯片实现递进式cnn运算的方法 |
CN110428049A (zh) * | 2019-08-21 | 2019-11-08 | 南京邮电大学 | 一种基于多态忆阻器的电压型神经网络及其操作方法 |
WO2021072817A1 (zh) * | 2019-10-18 | 2021-04-22 | 南京大学 | 一种基于忆阻交叉阵列的机器人控制系统及方法 |
CN110842915A (zh) * | 2019-10-18 | 2020-02-28 | 南京大学 | 一种基于忆阻交叉阵列的机器人控制系统及方法 |
CN110842915B (zh) * | 2019-10-18 | 2021-11-23 | 南京大学 | 一种基于忆阻交叉阵列的机器人控制系统及方法 |
CN110796241B (zh) * | 2019-11-01 | 2022-06-17 | 清华大学 | 基于忆阻器的神经网络的训练方法及其训练装置 |
CN110796241A (zh) * | 2019-11-01 | 2020-02-14 | 清华大学 | 基于忆阻器的神经网络的训练方法及其训练装置 |
CN110807519A (zh) * | 2019-11-07 | 2020-02-18 | 清华大学 | 基于忆阻器的神经网络的并行加速方法及处理器、装置 |
WO2021088248A1 (zh) * | 2019-11-07 | 2021-05-14 | 清华大学 | 基于忆阻器的神经网络的并行加速方法及处理器、装置 |
WO2021098821A1 (zh) * | 2019-11-20 | 2021-05-27 | 华为技术有限公司 | 神经网络系统中数据处理的方法、神经网络系统 |
CN111325321B (zh) * | 2020-02-13 | 2023-08-29 | 中国科学院自动化研究所 | 基于多神经网络融合的类脑计算系统及指令集的执行方法 |
CN111325321A (zh) * | 2020-02-13 | 2020-06-23 | 中国科学院自动化研究所 | 基于多神经网络融合的类脑计算系统及指令集的执行方法 |
CN111476356A (zh) * | 2020-05-11 | 2020-07-31 | 中国人民解放军国防科技大学 | 忆阻神经网络的训练方法、装置、设备及存储介质 |
CN111753975A (zh) * | 2020-07-01 | 2020-10-09 | 复旦大学 | 一种面向物联网的自然模拟信号的类脑处理方法 |
CN111753975B (zh) * | 2020-07-01 | 2024-03-05 | 复旦大学 | 一种面向物联网的自然模拟信号的类脑处理方法 |
CN112101549A (zh) * | 2020-09-22 | 2020-12-18 | 清华大学 | 基于忆阻器阵列的神经网络的训练方法和装置 |
CN112101549B (zh) * | 2020-09-22 | 2024-05-10 | 清华大学 | 基于忆阻器阵列的神经网络的训练方法和装置 |
CN113222107A (zh) * | 2021-03-09 | 2021-08-06 | 北京大学 | 数据处理方法、装置、设备及存储介质 |
CN115481562A (zh) * | 2021-06-15 | 2022-12-16 | 中国科学院微电子研究所 | 多并行度优化方法、装置、识别方法和电子设备 |
CN113517016A (zh) * | 2021-07-21 | 2021-10-19 | 清华大学 | 计算装置及其鲁棒性处理方法 |
WO2023045160A1 (zh) * | 2021-09-26 | 2023-03-30 | 清华大学 | 数据处理装置以及数据处理方法 |
WO2024098492A1 (zh) * | 2022-11-09 | 2024-05-16 | 深圳先进技术研究院 | 忆阻器精度重构计算的误差校正方法、系统、计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108009640B (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108009640A (zh) | 基于忆阻器的神经网络的训练装置及其训练方法 | |
CN109800870B (zh) | 一种基于忆阻器的神经网络在线学习系统 | |
CN109460817A (zh) | 一种基于非易失存储器的卷积神经网络片上学习系统 | |
CN111279366B (zh) | 人工神经网络的训练 | |
US20200012924A1 (en) | Pipelining to improve neural network inference accuracy | |
CN105229675B (zh) | 尖峰网络的高效硬件实现 | |
CN105224986B (zh) | 基于忆阻器件的深度神经网络系统 | |
US20180330236A1 (en) | Neural network processing system | |
CN105612492B (zh) | 在人工神经系统中减少尖峰的方法、装置、设备及介质 | |
CN105637541A (zh) | 用于神经模拟器的共享存储器架构 | |
CN107506828A (zh) | 计算装置和方法 | |
US11562249B2 (en) | DNN training with asymmetric RPU devices | |
JP2021511566A (ja) | ニューロモーフィック・チップ、ニューロモーフィック・システム、ニューロモーフィック・チップ内のシナプス重みを更新するための方法およびコンピュータ・プログラム | |
CN107203808B (zh) | 一种二值卷积装置及相应的二值卷积神经网络处理器 | |
CN108268938A (zh) | 神经网络及其信息处理方法、信息处理系统 | |
KR102618546B1 (ko) | 2차원 어레이 기반 뉴로모픽 프로세서 및 그 동작 방법 | |
KR102309013B1 (ko) | 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템 | |
CN106068519A (zh) | 用于共用神经元模型的高效实现的方法和装置 | |
Thakur et al. | A neuromorphic hardware framework based on population coding | |
CN113837371A (zh) | 用于实现神经网络的神经形态装置和方法 | |
Sun et al. | A deep residual shrinkage neural network-based deep reinforcement learning strategy in financial portfolio management | |
Sun et al. | Cascaded architecture for memristor crossbar array based larger-scale neuromorphic computing | |
KR20210143614A (ko) | 뉴럴 네트워크를 구현하는 뉴로모픽 장치 및 그 동작 방법 | |
Dorband | A boltzmann machine implementation for the d-wave | |
CN117151176A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |