CN115310599A - 一种忆阻器卷积神经网络硬件系统 - Google Patents
一种忆阻器卷积神经网络硬件系统 Download PDFInfo
- Publication number
- CN115310599A CN115310599A CN202110490945.6A CN202110490945A CN115310599A CN 115310599 A CN115310599 A CN 115310599A CN 202110490945 A CN202110490945 A CN 202110490945A CN 115310599 A CN115310599 A CN 115310599A
- Authority
- CN
- China
- Prior art keywords
- memristor
- weight
- neural network
- differential circuit
- convolutional neural
- 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/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/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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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
- G11C13/0009—RRAM elements whose operation depends upon chemical change
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)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Feedback Control In General (AREA)
Abstract
本申请涉及人工智能神经网络,具体公开一种忆阻器卷积神经网络硬件系统,包括忆阻器阵列和输入模块,所述忆阻器阵列由若干忆阻器阵列形成;其特征在于,每两个器件构成一差分电路,组成每个差分电路的两器件绑定成个一神经元;该两器件中至少有一个包括忆阻器;基于构成每个差分电路的两器件的电性参数之差映射神经元的权重;所述输入模块用于根据外部计算单元基于神经元权重的更新方向反馈的信号,向忆阻器施加正向单步电脉冲或负向单步电脉冲。上述方案,简化了忆阻神经网络系统的权重更新计算过程并降低该过程中计算资源的消耗并加速硬件计算速度。
Description
技术领域
本申请涉及脉冲神经网络技术领域,尤其是涉及一种忆阻器的卷积神经网络硬件系统。
背景技术
忆阻器是一种新型的双端口纳米器件,其电导状态具有一定的记忆特性,因而被称之为记忆型电阻器件(即忆阻器)。忆阻器件阵列可以借助电路的欧姆定律和基尔霍夫定律,进而高性能、低功耗地实现乘法累加的功能,这与神经网络计算体系中的核心运算形式(矩阵乘法)十分匹配,因而忆阻器为神经网络的硬件实现方案提供了新的研究思路,并已得到研究学者们的广泛关注。
如图1所示,是对于神经网络的推理过程(即正向传播),忆阻器网络可以利用欧姆定律和基尔霍夫定律可以很容易地实现矩阵乘法。对于网络训练过程(反向传播),可以根据随机梯度下降算法(stochastic gradient descent,缩写为SGD)计算待更新的权重量,并通过在器件终端施加相应数量的电脉冲来更新突触权值。
但是,忆阻器件及阵列具有几乎无法避免的电导随机波动特性和非线性权重更新特性的缺陷,使其难以直接应用于神经网络的在线学习过程,同时也大幅降低了其在离线推理过程中的准确率。
忆阻器的非线性更新特性,是指在忆阻器的电导-脉冲调制曲线中,其电导的变化量与脉冲数量非线性相关的现象(如下图2所示)。通常而言,给非线性符合指数函数的形式。忆阻器的电导状态函数可以用5个参数表示:Gmax(最大电导值)、Gmin(最小电导值)、Pmax(电导状态数量)、Ap(权重增加LTP过程中的非线性度)-参见图2(a)、Ad(权重降低LTD过程中的非线性度)-参见图2(b)。可用下式表示:
上式中x代表器件的当前状态参数,且且0≤x≤Pmax;A在权重增加过程(LTP过程)中等于Ap;在权重减小过程(LTD过程)中等于Ad。
忆阻器神经网络的在线学习方案大体如下图3所示。首先,前向传播计算出误差,再根据标准的神经网络反向传播(back propagation)算法和梯度下降(SGD)算法,计算出当前权重所需的更新量;然后,根据忆阻器器件的非线性更新特性曲线,计算出所需的脉冲数量;紧接着,通过选通手段在该忆阻器两端施加一定数量的电脉冲,以调整忆阻器当前的电导值。
当前基于忆阻器网络的系统至少存在有如下缺陷:
1.需要外部计算机配置忆阻器神经网络的学习方案过于复杂:网络需要在更新之前计算出所需的电脉冲的数量,这将大大增加系统计算的复杂度,尤其对于大规模的卷积神经网络,其参数量往往数以百万计甚至数以亿计,这一非线性计算过程将消耗巨量的计算资源和能耗。
2.忆阻器网络阵列自身无法完成电脉冲更新这一任务:需要增设大量的外围控制逻辑电路才能得以实施。例如,计算当前所需的权重更新量和脉冲数量往往由安装计算软件的电脑端给出,随后通过matlab和单片机控制器MCU等软、硬件控制手段辅助完成器件的电导权重更新的计算和换算等操作。
3.对于忆阻器自身具有的非线性更新特性没有采用有效措施:施加一定数量的电脉冲进行电导权重更新后,忆阻器的实际电导状态与理想状态具有偏差,导致忆阻器神经网络的学习性能较低。
发明内容
为简化忆阻神经网络的权重更新计算过程并降低该过程中计算资源的消耗,加速硬件计算速度并降低功耗,本申请提供一种忆阻器卷积神经网络硬件系统,采用如下的技术方案:
忆阻器卷积神经网络硬件系统包括忆阻器阵列和输入模块,所述忆阻器阵列由若干忆阻器阵列形成;每两个器件构成一差分电路,组成每个差分电路的两器件绑定成个一神经元;该两器件中至少有一个包括忆阻器;
基于构成每个差分电路的两器件的电性参数之差映射神经元的权重;
所述输入模块用于根据外部计算单元基于神经元权重的更新方向反馈的信号,向忆阻器施加正向单步电脉冲或负向单步电脉冲。
通过采用上述技术方案,输入模块每次向忆阻器阵列的差分电路中的忆阻器两端施加一个单脉冲,脉冲的方向基于外部计算单元反馈的信号确定,该方案主要适用于差分电路构架的忆阻器卷积神经网络硬件系统,例如1T1R-1T1R差分电路和1T1R-1R差分电路,相对于相关技术取消学习速率、权重更新量和所需施加脉冲数量等计算,在通过梯度下降算法得到权重更新的方向后,通过单脉冲方案进行权重更新。知道每次学习中权重的更新方向后,往对应的忆阻器器件施加一个脉冲完成本次权重的更新。在每次权重更新(学习)的过程中,通过对电导值变化幅度较大的忆阻器施加单步脉冲,能够使得权重参数都以一定的步长向着最优值靠拢,直至达到或无限靠近最优值。这种在数据处理的过程中,根据处理数据的不同特征而不断的自动调整处理方法,从而使其一直处于或朝着最优运行状态靠拢的系统称为自适应系统,基于自适应系统的学习方法称为自适应学习方法。对于忆阻器神经网络来说,其需要一定的学习能力,并且能够利用网络的能力连续的调整网络参数。只根据梯度下降算法给出参数建议更新的方向(权重需要增加还是降低),这样无疑能大幅度降低更新所需的计算复杂度,也更利于硬件实现。
作为上述方案的实施方式一,可选的,构成差分电路的两器件均包括忆阻器;形成差分电路的两忆阻器的参数不同,以满足在施加电脉冲后以获得变化量差异趋势可预期的电导值;
基于构成每个差分电路的两忆阻器的电导值映射神经元的权重;
所述输入模块用于根据外部计算单元基于神经元权重的更新方向反馈的信号,至少向电导值变化幅度较大的忆阻器施加正向单步电脉冲或负向单步电脉冲。
通过采用上述技术方案,提出了一种新的忆阻器差分电路架构,引入不同参数的两忆阻器件,然后将其组合为一个新的差分架构单元。网络权重在每次更新过程中,构成差分对的两个器件的变化方向是相同的,但其变化幅度是不相等的,这样就不能保证每次施加脉冲后所得的新权重变化量与预期的权值变化量是一致的,但合适的参数设计能保证上述需求在大概率条件是满足的。因此网络中的权重值大概率是按照算法给定的要求进行更新的,即网络中权值的更新大概率是成功的。
在通过梯度下降算法得到权重更新的方向后,通过单步脉冲方案进行权重更新;知道每次学习中权重的更新方向后,往对应的忆阻器器件施加一个脉冲完成本次权重的更新。在每次权重更新(学习)的过程中,权重参数都以一定的步长向着最优值靠拢,直至达到或无限靠近最优值。在数据处理的过程中,根据处理数据的不同特征而不断的自动调整处理方法,从而使其一直处于或朝着最优运行状态靠拢,对于忆阻器神经网络来说,需要一定的学习能力,并且能够利用网络的能力连续的调整网络参数,直到达到预设的收敛条件。
相关技术中,每个权重每次的更新量由反向传播机制和随机梯度下降算法确定,只将忆阻器件作为可变电阻器件进行应用,则不能充分利用到忆阻器自身的特性。此外,受限于忆阻器自身的电导波动现象以及电导状态数量有限等限制,权重更新过程中产生的误差将在神经网络中逐层累积,利用该方案实现的网络性能必定有其上限。基于这些思考,上述方案的硬件系统,可满足在更新方案中取消学习速率、权重更新量和所需施加脉冲数量等计算,外部计算单元只需要根据梯度下降算法给出参数建议更新的方向(权重需要增加还是降低),这样无疑能大幅度降低更新所需的计算复杂度,也更利于计算机硬件实现。
可选的,每个所述差分电路中,其中一忆阻器的尺寸比另一忆阻器的尺寸大。
通过采用上述技术方案,这里的尺寸主要为两忆阻器的面积参数,通过面积参数的差异化,使得两忆阻器在施加脉冲状态下的电导值体现出明显的变化趋势,利用该变化趋势实现神经元权重的有效预测,进而可利用该变化趋势的预测简化神经网络各神经元的权重训练。
可选的,每个所述差分电路中,其中一忆阻器的参数是另一忆阻器参数的两倍。
通过采用上述技术方案,在两倍之差时,通过实验证明系统的权重与最优值接近程度最高。
可选的,所述参数包括横截面积、纵截面面积或表面积与长度比。
通过采用上述技术方案,在该表忆阻器的横截面积、纵截面面积或表面积与长度比时,忆阻器的非线性特征显著,电导值的变化幅度相对明显,有利于加速迭代训练的收敛过程。
可选的,每个所述忆阻串联一NMOS晶体管,形成1T1R器件;所述差分电路形成1T1R-1T1R差分电路。
通过采用上述技术方案,构件1T1R-1T1R(1-transistor-1-memristor+1-transistor-1-memristor)结构的差分电路结构,进一步降低了忆阻神经网络芯片的电路复杂度和电路面积。
作为本申请的另一实施方式二,可选的,构成所述差分电路的另一器件包括共享电阻,所述共享电阻的电阻值为恒定值。
通过采用上述技术方案,由于共用共享电阻,从而大大减少了忆阻器的数量,进而能够显著减少电路的面积。
可选的,所述共享电阻的电阻值为所述忆阻器最大电导值与最小电导值之和的一半。
通过采用上述技术方案,有利于加速迭代收敛过程,且优化权重与最优权重之间的误差较小。
可选的,每个所述忆阻器串联一NMOS晶体管,形成1T1R器件;所述忆阻器阵列中每行忆阻器设置有一共享电阻,该行每个忆阻器与所述共享电阻形成一差分电路,所述差分电路形成1T1R-1R差分电路。
通过采用上述技术方案,1T1R-1R(1-transistor-1-memristor+1-resistor)结构的差分电路结构,这样的电路结构显著的减少了电路的面积。因为1T1R-1T1R结构需要双倍的器件数量,而1T1R-1R结构的不同差分电路对可以共享同一个电阻。1T1R-1R结构在每行中共享一个1R设备,假设输入和输出神经元的数目分别为M和N。则1T1R-1T1R结构的总设备数为Num_1=M*N*2,1T1R-1R结构的总设备数为Num_2=(M+1)*N。因此比值为(M+1)/2M,采用这种电路结构后,理论上相同网络有望减少50%的电路面积消耗。
可选的,所述系统还包括:
忆阻器控制模块,用于将单歩脉冲信号写入忆阻器阵列中;
所述忆阻器阵列的内部存储有权重数据,结合单歩脉冲信号进行计算,输出汇集的电流值;
灵敏放大器模块,用于结合忆阻器阵列输出的汇集电流值与参考阈值电流,输出高电平电压或低电平电压;
输出缓冲器,接收高电平电压或低电平电压,存储或向外输出。
通过采用上述技术方案,在硬件上模拟了卷积神经网络的神经元功能,解决了神经网络硬件加速构架计算复杂、能耗高、面积大等问题。
可选的,所述系统还包括:
外部计算单元,用于在输入模块施加单步脉冲对神经元权重进行更新的过程中,获得神经元权重的更新方向,并基于神经元权重的更新方向反馈单步脉冲信号的方向。
通过采用上述技术方案,只需要根据梯度下降算法给出参数建议更新的方向(权重需要增加还是降低),这样无疑能大幅度降低更新所需的计算复杂度,也更利于计算机硬件实现,实现了网络系统的硬件加速,并降低了功耗。
附图说明
图1是相关技术中忆阻器神经网络的前向传播过程图。
图2(a)是相关技术中忆阻器的非线性权重增加过程更新模型图。
图2(b)是相关技术中忆阻器的非线性权重减小过程更新模型图。
图3是相关技术中忆阻器神经网络权重训练流程图。
图4为本申请实施例一提供的忆阻器卷积神经网络硬件系统的框架图。
图5为本申请实施例二提供的忆阻器卷积神经网络硬件系统的框架图。
图6为本申请实施例二提供的1T1R-1T1R差分电路的忆阻器卷积神经网络硬件架构图。
图7(a)是本申请实施例二提供的忆阻器卷积神经网络权重训练方法中忆阻器神经网络采用的差分电路架构。
图7(b)是本申请实施例二提供的忆阻器卷积神经网络权重训练方法中两忆阻器在施加电脉冲状态下电导值的变化趋势图;
图8(a)是本申请实施例二提供的忆阻器卷积神经网络权重训练方法中两忆阻器的非线性权重增加过程更新模型图。
图8(b)是本申请实施例二提供的忆阻器卷积神经网络权重训练方法中两忆阻器的非线性权重减小过程更新模型图。
图9是实施例二中两忆阻器最大电导值的比值与每次权重成功更新的概率曲线图。
图10是本申请实施例三提供的忆阻器卷积神经网络权重硬件系统的框架图。
图11是本申请实施例三提供的1T1R-1R差分电路的忆阻器卷积神经网络硬件架构图。
图12是采用不同算法神经网络权重优化的准确率示意图。
图13是采用不同方案训练的LeNet-5网络在不同非线性度Ap和Ad下的精度示意图。
具体实施方式
以下结合附图对本申请作进一步详细说明。
本具体实施例仅仅是对本申请的解释,其并不是对本申请的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本申请的权利要求范围内都受到专利法的保护。为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本申请忆阻器卷积神经网络硬件系统的实施例作进一步详细描述。
实施例一
参见图4,一种忆阻器卷积神经网络硬件系统,包括外部计算单元、输入模块、忆阻器控制模块、忆阻器阵列、电流-电压转换电路和计算电路;忆阻器阵列由若干忆阻器阵列形成;每两个器件构成一差分电路;构成每一差分电路的该两器件中至少有一个包括忆阻器;基于构成每个差分电路的两器件的电性参数之差映射神经元的权重;输入模块用于根据外部计算机单元基于神经元权重的更新方向反馈的信号,向忆阻器施加正向单步电脉冲或负向单步电脉冲。
外部计算机单元具有外围电路和/或安装有软件程序,组成每个差分电路的两器件在软件系统中绑定成个一神经元,通过神经元之间的连接构成卷积神经网络,神经元与神经元之间的联系通过权重表示,基于构成每个差分电路的两器件的电性参数之差映射神经元的权重;需要说明的是,这里的电性参数在不同的差分电路构架中,为不同的电性参数,具体为阻性参数,若忆阻器则采用电导值,若是电阻则采用电阻值。
本申请的输入模块向忆阻器阵列中每行忆阻器分别施加单脉冲对各神经元权重进行更新,更新过程中计算神经元权重的方法可采用现有的梯度下降算法,例如线性SGD算法、非线性SGD算法等。与相关技术不同的是,每次更新均输入单步脉冲,不需要计算施加在每一忆阻器两端的电脉冲的数量;而仅仅需要获得每个神经元的权重更新方向,然后基于权重更新方向获得下一步施加单步脉冲的方向,进而大大简化权重更新的流程和计算量,从而达到节约计算资源的目的。
输入模块接收外部计算单元输出的数据作为输入数据,这里的输入数据可以采用图片数据,该输入数据可以是通过对浮点数据实现原始输入图片进行转换后得到的由0/1比特数据存储的脉冲输入图片;可将脉冲输入图片转换为神经网络的输入脉冲序列,以对应输入忆阻器阵列并对应施加于每行忆阻器的两端。
控制模块(图未示)可以为忆阻器控制模块提供译码纵向信号和控制总线信号,忆阻器控制模块用于根据译码纵向和控制纵向信号将相应的图片输入数据写入忆阻器阵列。控制模块、忆阻器控制模块均可采用现有的公知技术,本方案不涉及对其进行改进。
实施例二
参见图5,作为实施例一的第一优选方式,构成差分电路的两器件均包括忆阻器;形成差分电路的两忆阻器的参数不同,以满足在施加电脉冲后以获得变化量差异趋势可预期的电导值;基于构成每个差分电路的两忆阻器的电导值映射神经元的权重;所述输入模块用于根据外部计算单元基于神经元权重的更新方向反馈的信号,至少向电导值变化幅度较大的忆阻器施加正向单步电脉冲或负向单步电脉冲。
需要说明的是,所述参数包括横截面积、纵截面积和表面积与长度之差中任一个。只要能满足在施加电脉冲后以获得变化量差异趋势可预期的电导值即可。
参见图6,在本方案一具体实施例中,每个所述忆阻串联一NMOS晶体管,共同形成作为基本单元,用于完成乘法计算;所述差分电路形成1T1R-1T1R差分电路。
由图片输入数据控制1T1R三端器件单元中的NMOS晶体管的导通或闭合。单个1T1R三端器件单元中,NMOS晶体管的栅极为字端,源极为源端,漏极连接忆阻器的一端,忆阻器的另一端为位端,将不同的1T1R三端器件单元的字端、源端、位端各自连接,构成忆阻器阵列线、源线和字线。参见图7(a),忆阻器阵列的每一列忆阻器各自连接一个灵敏放大器及相应的电容,与每一列忆阻器构成一个脉冲神经计算单元,将每列忆阻器汇集电流放大输出为数字电平,高电平为1,低电平为0。
由于忆阻器的电导没有负值,而神经网络中的权值参数可能为负(一般情况下,网络中权重参数的正负数量是相当的),因此在忆阻器神经网络中,通常采用差分设计(differential-pair),将两个忆阻器(分别记为w1和w2)绑定形成一组新的权重w=w1-w2用于网络计算。具体的,如下图7(a)所示,两列忆阻器阵列分别利用电流-电压转换电路计算出各自的电压输出数据和再利用计算电路差分计算出两者之差,便可得到该神经元的最终输出
常规方案(我们将其命名为“方案0”)在进行权重更新时:如果要增加权重w,则根据标准的SGD算法先后计算出权重变化量和对应的所需施加的电脉冲数量,在向器件w1施加若干个正向电脉冲,在该过程中w2保持搁置状态;如果要降低权重w,则根据标准的SGD算法先后计算出权重变化量和对应的所需施加的电脉冲数量,在向器件w1施加若干个负向电脉冲,在该过程中w2同样保持搁置状态。如第4部分叙述的,其复杂的计算将严重降低系统的能效。其次,上述更新过程中始终未操作对应的第二个忆阻器(w2),未能达到物尽其用的设计原则。此外,器件非线性特性对网络性能所造成的损失没有补偿措施。
基于上述考虑,本申请提出了一种新的忆阻器差分电路架构,如图7(b)所示,我们引入不同参数的忆阻器件w1和忆阻器件w2,然后将其组合为一个新的差分架构单元。在神经网络中,我们首先预设一半的权重参数为正值,其余为负值。因为神经网络的在线学习过程本质上是一类多变量方程组的求解过程,其未知数的个数远多于方程的个数,因而满足条件的解有无穷多组的,这即是神经网络鲁棒性的来源。因此,在我们预设一半的权重参数为正值另一半为负值,并不会影响网络最终个性能。
在预设的正定权重中,我们采用忆阻器件w1-忆阻器件w2的电路方案(也即w1-w2);在预设的负定权重中,我们采用忆阻器件w2-忆阻器件w1的电路方案(也即w2-w1)。其中忆阻器件w1和忆阻器件w2的器件参数(如器件横截面的面积)不同。
在常规方案(“方案0”)中,每组差分器件中的两个忆阻器(w1和w2)在物理实体上并没有任何区别,而本专利提供的方案在电路设计之初即限定两个忆阻器的面积尺寸不相同(例如可以设计w1的面积是w2面积的2倍),于是器件w1的电导值本征情况下(大概率)会大于w2的电导值。这时,设定器件w=w1-w2作为网络的正权重映射,器件w=w2-w1作为网络的负权重映射。值得注意的是,在上述设定中,但是由于权重的随机初始化,正权重映射中的权重数值只是大概率为正,并不能保证一定为正,同理也适用于负权重的映射。这便引入了一定程度的概率更新行为,可作为网络权重更新的一个补偿机制。此概率命名为概率1。
该概率值可通过以下方法计算:假设w1和w2是按照函数f(x)的函数分布而随机初始化,w1的取值范围为[Gmin1,Gmax1],w2的取值范围为[Gmin2,Gmax2],则w=w1-w2>0的概率可以表示为:
特殊的,如果f(x)代表均匀分布,并且Gmin1=Gmin2=0,Gmax1=2,Gmax2=1,该概率值为75%。
通过上述设定之后,忆阻器网络采用我们的学习算法进行参数训练。具体来说,网络权重在每次更新过程中,构成差分对的两个器件的变化方向是相同的,但其变化幅度是不相等的,这样就不能保证每次施加脉冲后所得的新权重变化量与预期的权值变化量是一致的,但合适的参数设计(主要为器件w1和器件w2的面积参数)能保证上述需求在大概率条件是满足的。例如当器件w1的器件面积是器件w2的器件面积的两倍时,器件w1的变化幅度大概率大于器件w2的变化幅度。因此网络中的权重值大概率是按照算法给定的要求进行更新的,即网络中权值的更新大概率是成功的。这样的设定引入了另一种概率更新行为,可作为网络权重更新的又一个补偿机制。此概率命名为概率2。
在单脉冲更新方案中,我们不能保证每次脉冲施加后所得的新权重变化量(Δwactual)与预期的权重变化量(Δwpredict)是一致的,甚至不能保证其更新的方向是一致的,但是合适的参数设计(主要为器件w1和器件w2的面积参数)能保证上述要求在大概率条件是可以满足的。下面,我们以正权值的一次正向更新为例,推导该概率的求解方式。
以上图8(a)中Δw>0时,网络中“正权重”的更新过程为例,电导值可被表示为:
Wold=w1_old-w2_old=G(x1)-G(x2)(3)
Wnew=w1_new-w2_new=G(x1+1)-G(x2+1) (4)
ΔW=Wnew-Wold>0 (5)
其中G(x)为公式(1)中的忆阻器件电导-脉冲状态函数,x代表忆阻器的脉冲状态。公式(5)代表本权重参数在本轮权重更新过程中完成了一次成功的更新,其可根据泰勒函数的低阶展开式得到近似情况,对于一阶线性近似,其可等价为:
ΔW=[G(x1+1)-G(x1)]-[G(x2+1)-G(x2)]≈G'(x1)-G'(x2)>0 (6)
其中G'(x)为公式(1)的导函数。通过遍历x1和x2,求积分可得一次成功的更新的概率为:
其中Pmax为器件w1和器件w2的电导状态数量,可理解有施加单步脉冲的最终数量,本方案中器件w1和器件w2的电导状态数量相同即每次均向两个器件施加一个单脉冲,A1为器件w1在权重更新过程中的非线性系数,Gmax1为器件w1的最大电导值,Gmin1为器件w1的最大电导值;A2为器件w2在权重更新过程中的非线性系数,Gmax2为器件w2的最大电导值,Gmin2为器件w2的最大电导值,这里的器件w1可以理解为第一忆阻器,器件w2可以理解为第二忆阻器。临时变量定义为:
我们发现,G'(x1)-G'(x2)>0的概率与Gmax1和Gmax2的比值Gmax1/Gmax2有着紧密的关系。例如,当Gmax1和Gmax2的比值(同时)时,G'(x1)-G'(x2)>0的概率将达到50%,这与我们的直观认识相符合。当器件w1的最大电导值Gmax1是器件w2的最大电导值Gmax2的2倍时,该概率值将达到图9中所示的95.4%。这意味着在单脉冲更新后,实际上Wnew的值是大概率大于Wold的值,即本次权值更新成功的概率是相当高的,这也保证了神经网络能够很好的完成学习的过程,并最终能获得较好的网络性能。
通过计算,G'(x1)-G'(x2)>0的概率与Gmax1和Gmax2的比值Gmax1/Gmax2的关系如下图9所示。由此可以获得,当构成同一差分电路中的两忆阻器的最大电导值比值越大,则单次权重更新成功的概率越高。图8(b)中Δw<0时,通过上述公式推导,同样可以获得上述结论,在此不再赘述。
实施例三
参见图10,作为实施例一的第二优选方式,与实施例二的不同之处在于构成所述差分电路的另一器件包括共享电阻,所述共享电阻的电阻为恒定值。
参见图11,作为本申请的一具体实现形式,每个所述忆阻器串联一NMOS晶体管,形成1T1R器件;所述忆阻器阵列中每行忆阻器设置有一共享电阻,该行每个忆阻器与所述共享电阻形成一差分电路,所述差分电路形成1T1R-1R差分电路。
忆阻器的电导值在接收电脉冲状态下呈现非线性变化,利用该特性,每个神经元利用差分电路中忆阻器电导值与共享电阻的电阻值之差映射神经元权重。其中共享电阻的阻值可以通过初始化赋值,赋值范围在忆阻器最小电导值与最大电导值之间。
作为实施例三的第一具体实施方案,随机初始化共享电阻的阻值R,其中Gmin≤R≤Gmax,其中Gmax为忆阻器最大电导值,Gmin为忆阻器最小电导值;需要说明的是,这里每一行的共享电阻其阻值为系统随机设定的,只要初次设定,后续训练过程中是不会改变的,因此可以认定为恒定值,但是每一行的共享电阻的阻值可能不同。
对于忆阻器阵列中每行忆阻器,分别将该行中每一忆阻器与该行的共享电阻绑定形成一个神经元;若忆阻器阵列中有N行忆阻器,则该硬件系统配置N个共享电阻,每行忆阻器配置一个共享电阻;绑定过程中针对行忆阻器有序配对。本方案相对于实施例二,由于共享电阻改变了差分电路的连接关系,大大减少了器件的数量,减小了电路面积和功耗。
作为实施例三的第二具体实施方案,所述共享电阻的电阻为所述忆阻器最大电导值与最小电导值之和的一半。与第一实施方案的区别在于:这里每一行的共享电阻其阻值相同,且均为忆阻器最大电导值Gmax与最小电导值Gmin之和的一半。
每个所述忆阻器串联一NMOS晶体管,形成1T1R器件;所述忆阻器阵列中每行忆阻器设置有一共享电阻,该行每个忆阻器与所述共享电阻形成一差分电路,所述差分电路形成1T1R-1R差分电路。
在我们的算法中简化了传统忆阻器网络算法中网络权重更新量等计算。在原始“方案0”的更新方案中,每个权重每次的更新量由反向传播机制和随机梯度下降算法确定,而学习速率作为网络的超参数也被引入忆阻神经网络之中,这与常规的人工智能领域的神经网络研究思路一致。然而,忆阻神经网络作为人工神经网络的一种专用电路架构,如果其前向传播和反向传播机制完全照搬原始的人工神经网络,只将忆阻器件作为可变电阻器件进行应用,则不能充分利用到忆阻器自身的特性。此外,受限于忆阻器自身的电导波动现象以及电导状态数量有限等限制,权重更新过程中产生的误差将在神经网络中逐层累积,利用该方案实现的网络性能必定有其上限。基于这些思考,我们将在更新方案中取消学习速率、权重更新量和所需施加脉冲数量等计算,只根据梯度下降算法给出参数建议更新的方向(权重需要增加还是降低),这样无疑能大幅度降低更新所需的计算复杂度,也更利于硬件实现。
在通过梯度下降算法得到权重更新的方向后,我们还提出了单脉冲方案进行权重更新。知道每次学习中权重的更新方向后,往对应的忆阻器器件施加一个脉冲完成本次权重的更新。在每次权重更新(学习)的过程中,权重参数都以一定的步长向着最优值靠拢,直至达到或无限靠近最优值。这种在数据处理的过程中,根据处理数据的不同特征而不断的自动调整处理方法,从而使其一直处于或朝着最优运行状态靠拢的系统称为系统,基于系统的学习方法称为学习方法。对于忆阻器神经网络来说,其需要一定的学习能力,并且能够利用网络的能力连续的调整网络参数。
在该算法的基础上,我们又提出了基于两种不同电路结构的四种不同的权重更新方案。我们将其命名为方案1、方案2、方案3、方案4,下面我们将对其一一叙述:
基于1T1R-1T1R电路结构的方案1和方案2:
方案1和方案2的电路基础是基于1T1R-1T1R(1-transistor-1-memristor+1-transistor-1-memristor)结构的差分电路结构。不过,对其进行了一些修改。在原始的“方案0”中,每组差分器件中的两个忆阻器(w1和w2)在物理实体上并没有任何区别,而方案1和方案2将在电路设计之初即限定两者的面积尺寸不相同(例如可以设计w1的面积是w2面积的2倍),于是器件w1的电导值本征情况下(大概率)会大于w2的电导值。这时,设定器件w=w1-w2作为网络的正权重映射,器件w=w2-w1作为网络的负权重映射。值得注意的是,在上述设定中,正权重映射中的权重数值只是大概率为正,并不能保证一定为正,同理适用于负权重映射。这便引入了一定程度的概率更新行为,可作为网络权重更新的一个补偿机制。此概率命名为概率1。
通过上述设定之后,忆阻器网络采用本申请学习算法进行参数训练。虽然方案1和方案2具有相同的电路架构,它们的不同在于构成差分对中的两个器件在每次权重更新过程中电导的变化方式不同。
具体来说,采用方案1时,网络权重在每次更新过程中,构成差分对的两个器件的变化方向是相同的,但其变化幅度是不相等的,这样就不能保证每次施加脉冲后所得的新权重变化量与预期的权值变化量是一致的,但合适的参数设计(主要为器件w1和器件w2的面积参数)能保证上述需求在大概率条件是满足的。例如当器件w1的器件面积是器件w2的器件面积的两倍时,器件w1的变化幅度大概率大于器件w2的变化幅度。因此网络中的权重值大概率是按照算法给定的要求进行更新的,即网络中权值的更新大概率是成功的。这样的设定引入了另一种概率更新行为,可作为网络权重更新的又一个补偿机制。此概率命名为概率2。
方案1的更新方法如下表1所示:
表1方案1的权重更新步骤
方案1的权重更新方法为:
第一步:将网络中的权重随机设置为两部分:“正权重”和“负权重”,对应于“正权重”,硬件电路中的差分对被设计为“w=w1-w2”,相反,“负权重”对应的硬件电路中的差分对被设计为“w=w2-w1”,其中器件w1和器件w2有着不同的器件尺寸,且w1的器件尺寸要大于w2的器件尺寸。
第二步:网络权重随机初始化。因为器件w1的器件面积要大于器件w2的器件面积,故器件w1的最大电导值Gmax1要大于器件w2的最大电导值Gmax2。假设w1的取值范围为[Gmin1,Gmax1],w2的取值范围为[Gmin2,Gmax2],那么Gmax1>Gmax2。
第三步:利用单步脉冲的更新方法进行网络权值的更新。利用标准的SGD算法获得权重的更新方向,确定Δw的正负。具体的:如果Δw>0,将向表示网络中“正权重”的差分对中的两个器件w1和w2施加一个正脉冲,另外向表示网络中“负权重”的差分对中的两个器件w1和w2施加一个负脉冲。如果Δw<0,将向表示网络中“正权重”的差分对中的两个器件w1和w2施加一个负脉冲,另外向表示网络中“负权重”的差分对中的两个器件w1和w2施加一个正脉冲。
第四步:判断所有的迭代次数是否完成,如完成则停止学习过程。
方案2有着与方案1相同的电路结构。方案2与方案1的不同在于上述“第三步”的不同。方案2权值更新的步骤如下:
第一步:将网络中的权重随机设置为两部分:“正权重”和“负权重”,“正权重”表示硬件电路中的差分对被设计为“w=w1-w2”,“负权重”表示硬件电路中的差分对被设计为“w=w2-w1”,其中w1的器件尺寸要大于w2的器件尺寸。
第二步:网络权重随机初始化。器件w1的电导取值范围为[Gmin1,Gmax1],w2的电导取值范围为[Gmin2,Gmax2],与方案1类似的有Gmax1>Gmax2。
第三步:利用单步脉冲的更新方法进行网络权值的更新。利用标准的SGD算法获得权重的更新方向,确定Δw的正负。具体的:如果Δw>0,将向表示网络中“正权重”的差分对中的器件w1施加一个正脉冲,同时向器件w2施加一个负脉冲。另外向表示网络中“负权重”的差分对中的器件w1施加一个负脉冲,同时向器件w2施加一个正脉冲。如果Δw<0,将向表示网络中“正权重”的差分对中的器件w1施加一个负脉冲,同时向器件w2施加一个正脉冲。另外向表示网络中“负权重”的差分对中的器件w1施加一个正脉冲,同时向器件w2施加一个负脉冲。
第四步:判断所有的迭代次数是否完成,如完成则停止学习过程。
基于1T1R-1R电路结构的方案3和方案4:
方案1和方案2之后,我们又相继提出了基于不同电路结构的两种方案(方案3和方案4),在方案1和方案2的基础上进一步降低忆阻神经网络芯片的电路复杂度和电路面积。相较于方案1和方案2的1T1R-1T1R电路结构,方案3和方案4采用了基于1T1R-1R(1-transistor-1-memristor+1-resistor)的差分电路结构,这样的电路结构显著的减少了电路的面积。因为1T1R-1T1R结构需要双倍的器件数量,而1T1R-1R结构的不同差分对可以共享同一个电阻。采用这种电路结构后,理论上相同网络有望减少50%的电路面积消耗。同时,方案3和方案4的权重更新方案仍采用方案1和方案2中的学习方法,可以使忆阻神经网络芯片在性能、面积、功耗三个重要参数上都有提升。
方案3和方案4的不同之处在于电阻阻值的初始方法。具体来说,在方案3中,所有的电阻值(对应于器件w2)都将在一开始随机初始化,并且在整个权值更新过程中,这些值都是不变的(等于初始值),这与原始的“方案0”极其相似。对于方案4来说,在整个权值更新的过程中,所有的电阻值都是固定的,其值被固定为(Gmax/2+Gmin/2)。
以上4种不同模式的权值更新方案与“方案0”的权值更新方法不同,主要是因为不需要计算具体的电压脉冲数量。我们所需要的是判别出训练过程中权重更新量Δw的正负。这种简单的学习规则使亿阻器网络能够地更新参数,从而获得自优化的能力。
下面,我们将对四种权值更新方案做一个总结,四种方案的实现细节如下表2所示:
表2四种权值更新方案
我们在经典的LeNet-5卷积神经网络上,分别采用本申请算法和其它基于忆阻器网络的算法对网络进行训练,并对MNIST手写体数据集进行了识别准确度测试,对比了不同算法下网络的性能。
从上图12可以看出,我们的算法可获得与标准线性随机梯度下降算法相当的高识别准确率,学习速率也相差无几。同时也明显超过了采用非线性SGD算法所获得的识别准确率,且收敛速度快于非线性SGD算法。
另外,我们全面具体的比较了使用四种不同的权值更新方案时,网络的性能。我们测试了四种方案下,49种典型Ap(LTP过程非线性度)和Ad(LTD过程非线性度)值组合情况下的实验结果。其中,Ap的变化范围为0~6,Ad的变化范围为0~-6,具体如下图13所示。
从上图13我们可以发现,方案1表现出了最好的网络性能,方案2表现出了比方案1更坏的网络性能。这是因为方案2的权值更新方法中,网络中的权值更新量是由差分对中两个器件沿相反方向更新后的差值得到,这将使实际的更新量将大概率大于算法要求的更新量。这种情况与随机梯度下降算法中学习速率选择过大非常类似,我们知道,在随机梯度下降算法中,若学习速率选择过大,将导致网络在极值点附近震荡,造成难以收敛的后果。方案2中情况类似,每次迭代中,过大的权值更新量使得权值一直在最优值附近震荡,但是与随机梯度算法不同的是,由于采用了本论文的算法,通过不断地迭代训练,方案2可使权值逐渐靠近最优值,并最终停在最优值附近,达到接近收敛的效果。上图12方案2中,在Ap=1,Ad=-1情况下,网络的识别准确率超过90%,这证明了采用方案2训练的网络是收敛的。
方案3和方案4是采用了1T1R-1R结构的差分对架构,是为了减小电路面积而设计,在上述两种权重更新方案中,差分对中的第二权重(w2)始终未被涉及。因此,它们的性能也低于方案1。虽然如此,但是也表现出了不错的网络性能。
下表3显示了四种权值更新方案的7组典型Ap、Ad组合的具体识别准确率数值:
表3不同方案训练的LeNet-5网络在典型Ap和Ad值下的精度
上表说明我们的算法非常适合忆阻器网络,基于该算法的四种权值更新方案都显示出了不错的网络性能。即使是方案2,在非线性度Ap和Ad值为±1的典型情况下,其网络识别准确率仍高达92.42%。证明该算法在很大程度上抑制了忆阻器非线性权值更新特性带来的权值更新误差。
仿真实验结果证明,对比基于忆阻器神经网络的常规学习方案,采用我们的算法,能够很好的减少因忆阻器非线性特性引起的权重更新误差,表现出更好的网络性能;同时,由于本专利采取的算法无需计算对应于权重变化的具体脉冲数,避免了因冗余计算而产生的复杂外围电路,因而更加的硬件友好。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本申请的方法及其核心思想,不应理解为对本申请的限制。本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。
Claims (10)
1.一种忆阻器卷积神经网络硬件系统,包括忆阻器阵列和输入模块,所述忆阻器阵列由若干忆阻器阵列形成;其特征在于,每两个器件构成一差分电路,组成每个差分电路的两器件绑定成个一神经元;该两器件中至少有一个包括忆阻器;
基于构成每个差分电路的两器件的电性参数之差映射神经元的权重;
所述输入模块用于根据外部计算单元基于神经元权重的更新方向反馈的信号,向忆阻器施加正向单步电脉冲或负向单步电脉冲。
2.根据权利要求1所述的忆阻器卷积神经网络硬件系统,其特征在于,构成差分电路的两器件均包括忆阻器;形成差分电路的两忆阻器的参数不同,以满足在施加电脉冲后以获得变化量差异趋势可预期的电导值;
基于构成每个差分电路的两忆阻器的电导值映射神经元的权重;
所述输入模块用于根据外部计算单元基于神经元权重的更新方向反馈的信号,至少向电导值变化幅度较大的忆阻器施加正向单步电脉冲或负向单步电脉冲。
3.根据权利要求2所述的忆阻器卷积神经网络硬件系统,其特征在于,所述参数包括横截面积、纵截面积或表面积与长度之差。
4.根据权利要求3所述的忆阻器卷积神经网络硬件系统,其特征在于,每个所述差分电路中,其中一忆阻器的参数是另一忆阻器参数的两倍。
5.根据权利要求3所述的忆阻器卷积神经网络硬件系统,其特征在于,每个所述忆阻串联一NMOS晶体管,共同形成1T1R器件;所述差分电路形成1T1R-1T1R差分电路。
6.根据权利要求1所述的忆阻器卷积神经网络硬件系统,其特征在于,构成所述差分电路的另一器件包括共享电阻,所述共享电阻的电阻值为恒定值。
7.根据权利要求6所述的忆阻器卷积神经网络硬件系统,其特征在于,所述共享电阻的电阻值为所述忆阻器最大电导值与最小电导值之和的一半。
8.根据权利要求6所述的忆阻器卷积神经网络硬件系统,其特征在于,每个所述忆阻器串联一NMOS晶体管,形成1T1R器件;所述忆阻器阵列中每行忆阻器设置有一共享电阻,该行每个忆阻器与所述共享电阻形成一差分电路,所述差分电路形成1T1R-1R差分电路。
9.根据权利要求1~8任一项所述的忆阻器卷积神经网络硬件系统,其特征在于,所述系统还包括:
忆阻器控制模块,用于将单歩脉冲信号写入忆阻器阵列中;
所述忆阻器阵列的内部存储有权重数据,结合单歩脉冲信号进行计算,输出汇集的电流值;
电流电压转换电路,用于结合忆阻器阵列输出的汇集电流值与参考阈值电流,输出高电平电压或低电平电压;
计算电路,接收高电平电压或低电平电压,结合差分电路作差后存储或向外输出。
10.根据权利要求1所述的忆阻器卷积神经网络硬件系统,其特征在于,所述系统还包括:
外部计算单元,用于在输入模块施加单步脉冲对神经元权重进行更新的过程中,获得神经元权重的更新方向,并基于神经元权重的更新方向反馈单步脉冲信号的方向。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110490945.6A CN115310599A (zh) | 2021-05-06 | 2021-05-06 | 一种忆阻器卷积神经网络硬件系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110490945.6A CN115310599A (zh) | 2021-05-06 | 2021-05-06 | 一种忆阻器卷积神经网络硬件系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115310599A true CN115310599A (zh) | 2022-11-08 |
Family
ID=83853433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110490945.6A Pending CN115310599A (zh) | 2021-05-06 | 2021-05-06 | 一种忆阻器卷积神经网络硬件系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115310599A (zh) |
-
2021
- 2021-05-06 CN CN202110490945.6A patent/CN115310599A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111279366B (zh) | 人工神经网络的训练 | |
CN110352436B (zh) | 用于神经网络训练的具有迟滞更新的电阻处理单元 | |
US11361215B2 (en) | Neural network circuits having non-volatile synapse arrays | |
WO2021082325A1 (zh) | 基于忆阻器的神经网络的训练方法及其训练装置 | |
CN111433792B (zh) | 可编程可重置人工神经网络的基于计数器的电阻处理单元 | |
US9779355B1 (en) | Back propagation gates and storage capacitor for neural networks | |
CN110428042B (zh) | 往复地缩放神经元的连接权重和输入值来挫败硬件限制 | |
CN110852429B (zh) | 一种基于1t1r的卷积神经网络电路及其操作方法 | |
EP3970073A1 (en) | Training of artificial neural networks | |
US11301752B2 (en) | Memory configuration for implementing a neural network | |
US20200349440A1 (en) | DNN Training with Asymmetric RPU Devices | |
US11868893B2 (en) | Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference | |
CN115310581A (zh) | 一种忆阻器卷积神经网络权重训练方法及装置 | |
CN113837371A (zh) | 用于实现神经网络的神经形态装置和方法 | |
CN114282478B (zh) | 一种修正可变电阻器件阵列点乘误差的方法 | |
JP7438610B2 (ja) | クロスバー・アレイ構造を有するニューロモルフィック・デバイス | |
CN114118390B (zh) | 硬件加速器和混合电阻器忆阻器交叉开关阵列电路 | |
CN116523011B (zh) | 基于忆阻的二值神经网络层电路及二值神经网络训练方法 | |
CN115310599A (zh) | 一种忆阻器卷积神经网络硬件系统 | |
CN117151176A (zh) | 用于神经网络学习的突触阵列、运算电路及操作方法 | |
US20220101142A1 (en) | Neural network accelerators resilient to conductance drift | |
CN112801274B (zh) | 人工智能处理装置、权重参数读写方法及装置 | |
KR20240104645A (ko) | 시냅스 어레이 소자 및 이를 이용한 인공 신경망 학습 방법 | |
CN116128035A (zh) | 训练方法及装置、电子设备和计算机存储介质 | |
CN117610636A (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 |