一种基于多态忆阻器的电压型神经网络及其操作方法
技术领域
本发明涉及神经网络技术领域,主要涉及一种基于多态忆阻器的电压型神经网络系统。
背景技术
关于神经网络模型的设计,现有技术已经实现了一些类生物神经网络功能,组建出类似于神经网络的非线性系统,实现了系统的智能化,但大都停留在使用规模较大的的FPGA和电脑(GPU、TPU)为代表的硬件编程设计,即基于晶体管01模型建立的系统设计。在此情况下,基于神经网络的智能系统在发挥其优势的同时,也暴露出了诸如人工智能系统能耗极高,硬件成本大的缺陷,并且有着很高的资源配置要求。
相较于由电子系统和软件构成的类生物神经网络系统,人脑中的神经网络具有显著的优势,不仅有着更为高效的工作效率,能够同时处理数亿个生物学指令,并且而且能耗极低,采用新型的器件实现高效低耗的人工神经网络是人工智能的的热点之一。
使用忆阻器件搭建新型的硬件神经网络,使用忆阻器优异的可编程特点,进行对数据信息的有效存储,在本设计发明中,将忆阻器的这种特性同特定电路存储权重,有效地提升现有的人工神经网络的计算效率和稳定性。
发明内容
发明目的:本发明针对以忆阻器件作为神经网络核心器件的要求,提出一种由类脑器件——忆阻器结合传统器件搭建的一种电压型神经网络及其操作方法,能够模拟实现前向神经网络运算。
技术方案:为实现上述目的,本发明采用的技术方案为:
一种基于多态忆阻器的电压型神经网络,其特征在于:包括信号输入模块、权值网络模块、极性寄存器模块、Sum求和单元、偏置寄存器模块和激活函数模块;
所述信号输入模块为绝对值电路模块,将输入信号Vpluse分解为输出模值信号|Vpluse|和极性特征信号S′,输入至权值网络模块;所述权值网络模块分别与信号输入模块和极性寄存器模块连接,所述极性寄存器模块控制权值网络的极性;权值网络模块对输入信号和极性信号进行运算后,输出结果至Sum求和单元进行求和运算,输出信号Vout;所述偏置寄存器模块控制输出偏置信号bias,偏置信号bias与Sum求和单元输出信号Vout进行求和运算后输入至所述激活函数模块进行激活,并将最终结果输入到下一层神经网络中;
所述权值网络模块包括若干矩阵乘法单元;所述矩阵乘法单元包括忆阻器权重模块、同或门电路、正向比例放大电路、PMOS管和NMOS管;所述忆阻器权重模块包括两块忆阻器件Mem1和Mem2,并且满足:
其中|W|为权重绝对值,Mem1和Mem2分别为两块忆阻器的阻值;
忆阻器权重模块输出端连接正向比例放大电路正极,输出端分别连接PMOS管和NMOS管的漏极D;所述同或门电路输入端接收所述极性特征信号S′和极性寄存器模块输出信号W′,输出端分别连接PMOS管和NMOS管的栅极G,控制信号输出至VN端或VP端。
进一步地,所述Sum求和单元包括三个低功耗运算放大器LP-amp1、LP-amp2和LP-amp3,其中LP-amp1输出端连接LP-amp3正极输入端,LP-amp2输出端连接LP-amp3负极输入端,所述权值网络模块输出信号VN输入至LP-amp1负极,VP输入至LP-amp2负极。
进一步地,所述信号输入模块绝对值电路部分采用高输入阻抗的绝对值电路,极性特征信号部分采用轨到轨运算放大器;当输入信号Vpluse是正极性电平的时候,输出模值信号|Vpluse|和极性信号脉冲Vh,当输入信号Vpluse是负极性电平的时候,输出模值信号|Vpluse|和极性信号脉冲Vl。
进一步地,所述激活函数单元核心采用轨到轨运算放大器,偏置寄存器输出信号bias和Sum求和单元输出信号Vout经过加和运算后输入至轨到轨运算放大器的正极,所述轨到轨运算放大器负极连接电阻Rp并接地,反馈电阻Rf为忆阻器。
基于上述基于多态忆阻器的电压型神经网络的操作方法,包括以下步骤:
步骤L1、在上位机的神经网络训练完成之后,根据数据对所搭建的神经网络系统中的忆阻权值进行指定位置的编程;
步骤L2、对权值网络中的矩阵乘法单元进行编程,并将权值网络模块的极性储存于极性寄存器W之中;
步骤L3、完成电路的编程之后,输入信号Vpluse,信号输入模块对输入的信号实现模值|Vpluse|和极性S′的分离;
步骤L4、将模值信号|Vpluse|和极性特征信号S′输入至矩阵乘法单元,模值信号通过忆阻器权重单元运算,极性特征信号S′与极性寄存器中储存的极性信号W′输入至同或门电路,实现权值网络模块带符号的运算;
步骤L5、权值网络模块输出信号输入至Sum求和单元,所述Sum求和单元将每一列权值网络模块输出信号{VN}和{VP}进行累加求和,并将输出结果Vout输入至激活函数模块;
步骤L6、在检测到Sum求和单元输出信号Vout时,偏置寄存器模块控制偏置信号bias输出,与Vout加和后输入至激活函数模块,所述激活函数模块对加和后的信号进行激活处理,并最终将输出的信号输入到下一层神经网络中的输入模块之中。
进一步地,所述步骤L6中激活函数选用ReLu函数,此时轨到轨运算放大器的工作电压满足:
Vh'=Vmax Vl'=0
其中Vmax是反馈电阻Rf的最大工作电压。Vh′和Vl′分别为轨到轨运算放大器满摆幅电压的工作范围。
同样地,所述步骤L6中激活函数选用分阶段模型电路,此时轨到轨运算放大器的工作电压满足:
Vh'=Vmax Vl'=-Vmax
其中Vmax是反馈电阻Rf的最大工作电压。Vh′和Vi′分别为轨到轨运算放大器满摆幅电压的工作范围。
有益效果:本发明使用忆阻器件搭建新型的硬件神经网络,采用忆阻器优异的可编程特点,进行对数据信息的有效存储,将忆阻器的这种特性同特定电路存储权重,有效地提升现有的人工神经网络的计算效率和稳定性。
附图说明
图1为信号输入模块三端口绝对值电路示意图;
图2为信号输入模块三端口绝对值电路结构示意图;
图3为矩阵乘法单元中含忆阻器的权重模型示意图;
图4为矩阵乘法单元模型示意图;
图5为矩阵乘法单元电路结构示意图;
图6为Sum求和单元电路结构示意图;
图7为激活函数单元电路结构示意图;
图8为5*3的权值网络电路结构示意图;
图9为5*3*2的电压神经网络结构示意图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
一种基于多态忆阻器的电压型神经网络,包括信号输入模块、权值网络模块、极性寄存器模块、Sum求和单元、偏置寄存器模块和激活函数模块。
信号输入模块如图1-图2所示,包括绝对值电路部分和极性特征信号部分。绝对值电路部分采用高输入阻抗的绝对值电路,极性特征信号部分是以轨到轨运算放大器为核心的功能型电路,预先设置工作室的轨道电压和运放增益,可以实现:当输入信号Vpluse是正极性电平的时候,输出模值信号|Vpluse|和极性信号脉冲Vh,当输入信号Vpluse是负极性电平的时候,输出模值信号|Vpluse|和极性信号脉冲Vl。
信号输入模块将输入信号Vpluse分解为输出模值信号|Vpluse|和极性特征信号S′,输入至权值网络模块。权值网络模块分别与信号输入模块和极性寄存器模块连接,极性寄存器模块控制权值网络的极性。权值网络模块对输入信号和极性信号进行运算后,输出结果至Sum求和单元进行求和运算,输出信号Vout。
权值网络模块由若干矩阵乘法单元构成,如图3-图5所示,每个矩阵乘法单元由忆阻器权重模块、同或门电路、正向比例放大电路、PMOS管和NMOS管组成。忆阻器权重模块如图3所示,由Mem1和Mem2俩部分组成,根据忆阻器的多态性以及权重的要求,Mem1和Mem2可采用并联、串联或者混联的方式来增加其权重丰富程度,并有:
其中|W|为权重绝对值,Mem1和Mem2分别为两块忆阻器的阻值;
图5为权值网络模块连接的其中一种实施例。忆阻器权重模块完成模值运算后,输出端连接正向比例放大电路正极,输出端分别连接PMOS管和NMOS管的漏极D;所述同或门电路输入端接收所述极性特征信号S′和极性寄存器模块输出信号W′,输出端分别连接PMOS管和NMOS管的栅极G,控制信号输出至VN信道或VP信道。信号输出信道选择由极性特征信号和极性寄存器模块输出信号共同控制:
当脉冲信号的极性S′和神经网络权重的极性W′极性相同时,信号由VN信道输出;
当脉冲信号的极性S′和神经网络权重的极性W′极性相异时,信号由VP信道输出。
对于多个输入模块的输入信号,执行同样的操作,并最终将每一列的矩阵乘法单元输出信号输出到{VN}或者{VP}之中,即实现了带有符号的矩阵运算。
图6为Sum求和单元电路结构示意图,包括三个低功耗运算放大器LP-amp1、LP-amp2和LP-amp3,其中LP-amp1输出端连接LP-amp3正极输入端,LP-amp2输出端连接LP-amp3负极输入端,所述权值网络模块输出信号VN输入至LP-amp1负极,VP输入至LP-amp2负极。
依据神经网络的节点数添加Sum求和单元模块,其引脚输入数目受输入模块信号的影响:VP和VN的数量之和等于本层网络之中所有输入节点信号,根据实际的需要,进行数量上的增加或者减少。采用反相加法运算,对输入信号进行加和和K倍均值运算,以及减法运算电路的方式实现最终节点的输出。
其中Rn左端输入信号有:
Rp左端输入信号有:
求和得:
其中KN,KP,KA分别是LP-amp1,LP-amp2,LP-amp3的增益系数,当满足条件
通过调整增益系数KA,则第K个节点的累加和为:
其中Wik为每个子节点的权重值,Vplusei为每个子节点的输入信号,Vaout为神经元节点的输入信息。
偏置寄存器模块控制输出偏置信号bias,偏置信号bias与Sum求和单元输出信号Vout分别输入至激活函数模块进行激活,并将最终结果输入到下一层神经网络中。
图7为激活函数单元电路结构示意图。激活函数单元核心采用轨到轨运算放大器,偏置寄存器输出信号bias和Sum求和单元输出信号Vout经过加和运算后输入至轨到轨运算放大器的正极。轨到轨运算放大器负极连接电阻Rp并接地,反馈电阻Rf为忆阻器。
下面提供两种激活函数构成方法:
(1)激活函数模块选用ReLu函数。偏置信号bias与求和单元输出信号Vout加和后,输入到含有反馈电阻Rf(忆阻器)的以轨到轨运放为核心的电路结构中。此时轨到轨运算放大器的工作电压满足:
Vh'=Vmax Vl'=0
其中Vmax是反馈电阻Rf的最大工作电压。Vh′和Vl′分别为轨到轨运算放大器满摆幅电压的工作范围。
(2)激活函数模块选用分阶段模型电路,此时轨到轨运算放大器的工作电压满足:
Vh'=Vmax Vl'=-Vmax
其中Vmax是反馈电阻Rf的最大工作电压。Vh′和Vl′分别为轨到轨运算放大器满摆幅电压的工作范围。
利用上述基于多态忆阻器的电压型神经网络的操作方法,具体步骤如下:
步骤L1、在上位机的神经网络训练完成之后,根据数据对所搭建的神经网络系统中的忆阻权值进行指定位置的编程;
步骤L2、对权值网络中的矩阵乘法单元进行编程,并将权值网络模块的极性储存于极性寄存器W之中;
步骤L3、完成电路的编程之后,输入信号Vpluse,信号输入模块对输入的信号实现模值|Vpluse|和极性S′的分离;
步骤L4、将模值信号|Vpluse|和极性特征信号S′输入至矩阵乘法单元,模值信号通过忆阻器权重单元运算,极性特征信号S′与极性寄存器中储存的极性信号W′输入至同或门电路,实现权值网络模块带符号的运算;
步骤L5、权值网络模块输出信号输入至Sum求和单元,Sum求和单元将每一列权值网络模块输出信号{VN}和{VP}进行累加求和,并将输出结果Vout输入至激活函数模块;
步骤L6、在检测到Sum求和单元输出信号Vout时,偏置寄存器模块控制偏置信号bias输出,与Vout加和后输入至激活函数模块,激活函数模块对加和后的信号进行激活处理,并最终将输出的信号输入到下一层神经网络中的输入模块之中。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。