本发明属于储备池计算技术领域,特别涉及一种基于动态忆阻器的储备池计算系统。
背景技术:
近年来,人工神经网络迅速发展,并在许多不同领域发挥了重要作用,例如目标检测、自然语言处理、自动驾驶等。通常,神经网络在网络结构上可以大致分为两大类。一种是前馈神经网络,其中神经元被分成几层,并且信号仅向前传播。前馈神经网络种类繁多,其中包括众所周知的卷积神经网络,其广泛用于处理静态空间图像信号,例如图像识别和目标检测。但是,这种前馈结构的网络并不适合处理时间信号。另一类人工神经网络是递归神经网络(rnn)。因为rnn的神经元之间具有递归连接,所以可以将输入信号的历史信息编码为网络的内部状态,从而实现信息的短期存储。因此,rnn能够很好地处理时间信号。但是由于递归结构中的梯度爆炸或消失的问题,rnn的训练通常非常困难,并且需要大量的算力。
为了解决这个问题,人们提出了储备池计算(rc)的概念。rc和rnn之间的主要区别在于,在rc系统中仅需要训练输出层的权重,而其余层的权重则保持不变。因此在rc系统中训练过程是线性的,可以使用例如线性回归这样的简单算法完成原本复杂的训练过程。在软件层面,rc系统已经在语音识别,自适应滤波,时间序列预测和许多其他领域中获得令人满意的性能。为了进一步提高rc系统效率,已有不少研究利用新材料和器件(如自旋电子振荡器、光电器件、忆阻器等)对rc系统进行了硬件实现。其中,忆阻器固有的动态特性和非线性特性使其非常适合用于rc系统的实现。
在rc系统中,储备池的几个关键特性会在很大程度上影响系统性能,其中储备池状态的丰富度是最重要的参数之一。在以往的研究中,通常使用器件之间的固有差异来生成不同的储备池状态。尽管此类方法可以生成许多储备池状态,但当组成储备池的器件制备完成后系统状态的丰富度就固定了,无法进一步调整以优化系统性能。此外,在之前基于忆阻器的rc报道中,忆阻器的电导被作为储备池状态,因此在每个输入信号之后都必须跟随一个读取信号以读出器件电导值。这种额外的读取操作将限制此类rc系统的速度。
技术实现要素:
本发明提出了一种基于动态忆阻器的储备池计算系统,该系统使用可控的时分复用过程来生成丰富的储备池状态。通过调节时分复用过程中的参数,不仅可以调节储备池状态的丰富度,还可以调节系统的反馈强度,这两者都是影响rc系统性能的关键特性。此外,本发明直接使用了忆阻器对输入信号的响应作为储备池状态,这样既利用了器件的非线性同时无需额外的读取操作,极大地提高了系统运行效率。
为了实现上述目的,本发明采用如下技术方案:
本发明提出的一种基于动态忆阻器的储备池计算系统,其特征在于,包括:
时分复用模块,包括n个并行的掩膜单元,各掩模单元分别根据不同的掩模信号,以各掩模信号为载波对输入信号的振幅进行调制,得到n个不同的振幅正比于输入信号的二值电压信号vini,i=1,2,…,n;
储备池模块,包括n个储备池单元,各储备池单元均分别包括相连接的动态忆阻器dmi和负载电阻rli,i=1,2,…,n,各动态忆阻器dmi的一端作为所在储备池单元的输入端与相应的一个掩膜单元的输出端连接,各动态忆阻器dmi的另一端与相应负载电阻rli的一端连接后作为所在储备池单元的输出端,负载电阻rli另一端接地;通过动态忆阻器dmi对来自掩模单元的电压信号vini进行动态响应,建立不同时间步信号之间的反馈连接,同时对输入的电压信号vini进行非线性变换,实现激活函数的作用,得到电流信号;通过负载电阻rli将动态忆阻器输出的电流信号转换成电压信号vouti进行输出;
乘加模块,采用非挥发性忆阻器阵列,利用基尔霍夫规则将来自储备池模块的n个电压信号vini与非挥发性忆阻器的电导值进行乘加运算得到对应的n个电流信号iouti进行输出,各非挥发性忆阻器的电导值与所述储备电池系统输出的权重值相对应。
本发明的特点及有益效果如下:
本发明提出了一种基于动态忆阻器的储备池计算系统,该系统包括时分复用模块、储备池模块和乘法模块,其中,利用时分复用模块以调节rc系统中的多个重要参数,具体地,通过调节时分复用模块中各掩膜单元的并行数和序列长度,达成储备池状态丰富度和系统反馈强度之间的折中,使储备池计算系统性能得以进一步优化。本发明直接使用动态忆阻器固有的动态特性和非线性对输入信号进行短时记忆和编码得到不同的储备池状态,这样既利用了忆阻器的非线性又无需复杂的外围电路和额外的读取操作,极大地提高了系统的运行效率。本发明系统具有硬件实现简单、体积小和功耗低的优点,可做为穿戴式、便携式应用。
附图说明
图1是本发明实施例的一种基于动态忆阻器的储备池计算系统的结构框图。
图2是图1所示储备池计算系统中时分复用模块的一种结构示意图。
图3是图1所示储备池计算系统中时分复用模块的另一种结构示意图。
图4是图1所示储备池计算系统中基于动态忆阻器的储备池单元的结构示意图。
图5是图1所示储备池计算系统中基于非挥发性忆阻器阵列的乘加单元的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
为了更好地理解本发明,以下详细阐述本发明提出的一种基于动态忆阻器的储备池计算系统的应用实例。
参见图1,本发明实施例的一种基于动态忆阻器的储备池计算系统包括:
时分复用模块,包括n个并行的掩膜单元,各掩模单元分别产生不同的掩模信号,以各掩模信号为载波对输入信号的振幅进行调制,得到n个不同的振幅正比于输入信号的二值电压信号vini,i=1,2,…,n;
储备池模块,包括n个储备池单元,各储备池单元的结构相同,均分别包括相连接的动态忆阻器dmi和负载电阻rli,i=1,2,…,n,各动态忆阻器dmi的一端作为所在储备池单元的输入端与相应的一个掩膜单元的输出端连接,各动态忆阻器dmi的另一端与相应负载电阻rli的一端连接后作为所在储备池单元的输出端,负载电阻rli另一端接地;通过动态忆阻器dmi对来自掩模单元的电压信号vini进行动态响应,建立不同时间步信号之间的反馈连接,同时对输入的电压信号vini进行非线性变换,实现激活函数的作用,得到电流信号;通过负载电阻rli将动态忆阻器输出的电流信号转换成电压信号vouti进行输出;
乘加模块,采用非挥发性忆阻器阵列,利用基尔霍夫规则将来自储备池模块的n个电压信号(vin1,vin2,…,vini,…,vinn)与非挥发性忆阻器的电导值进行乘加运算得到对应的n个电流信号(iout1,iout2,…,iouti,…,ioutn)进行输出,各非挥发性忆阻器的电导值与本储备电池系统输出的权重值相对应,其可以通过线下或线上训练的方式得到;此外,由于非挥发性忆阻器的电导值均为正,为了实现负权重可以将两列的输出电流相减,这样就可以用同一行的两个非挥发性忆阻器电导值的差来代表一个负权重值。
对本发明的基于动态忆阻器的储备池计算系统中各组成部件的具体实现方式分别描述如下:
时分复用模块,作为本储备电池系统的输入层,其中每个掩膜单元的序列排布各不相同,从而实现对输入信号不同的时分复用方式。时分复用的过程就是将输入信号与一个设定的掩膜信号相乘。假设输入信号的时间步长为τ,则各掩膜信号分别是以τ为周期的一组二值序列,一般为1和-1的随机组合,各掩膜信号均不相同。可以看出,时分复用过程就是以掩膜信号为载波对输入信号的振幅调制过程。由于每个掩膜单元的序列排布不一样,因此同一个输入信号在经过不同的掩膜单元后就得到了不同的输出信号,它们会进一步输入到储备池模块中生成不同的储备池状态。单个周期中掩膜信号的序列长度是一个需要调节的参数,通常的做法是在保持生成的储备池状态数z不变(即掩膜序列长度与掩膜单元并行数的乘积不变,其大小由具体的任务确定)的条件下从1到z遍历所有可能的掩膜信号序列长度,从中挑选储备池计算系统性能最佳的掩膜信号序列长度。掩膜序列长度不能过长,因为过长的掩膜序列会减弱相邻时间步信号之间的反馈强度。序列长度也不能过短,因为过短的掩膜序列没有足够多的组合数从而减小储备池状态的丰富度。各掩膜单元可以采用传统模拟通讯中的振幅调制的方法实现,将掩膜序列视为载波与输入信号在模拟乘法器中进行相乘,如图2所示;也可以采用数字电路配合模拟开关的方法实现,模拟开关切换输入信号的正负,掩膜序列作为模拟开关的控制信号,如图3所示,各掩膜单元均分别包括运算放大器、2选1模拟开关和两个电阻r,掩膜单元的信号输入端通过第一电阻r与运算放大器的反相输入端连接,运算放大器的反相输入端与运算放大器的输出端之间并联有第二电阻r,运算放大器的同相输入端接地,运算放大器的输出端接入2选1模拟开关的第一通道选择端,2选1模拟开关的第二通道选择端接入第一电阻与掩膜单元的信号输入端之间,掩模信号由2选1模拟开关的输入端输入,各2选1模拟开关的输出端作为相应掩模单元的输出端分别输出二值电压信号vini,i=1,2,…,n。时分复用模块还可以是由图2和图3所示两种掩模单元组合构成。
储备池模块,作为本储备电池系统的储备池层,参见图4,由多个与掩膜单元一一对应的储备池单元构成,其接收来自掩膜单元的信号并产生丰富的储备池状态,主要原理是通过动态忆阻器的短期记忆特性和非线性将不同时刻的输入信号进行相互耦合,使得原本一个周期τ中只有两个值的输入信号变换成一段连续分布的输出信号,如图4所示。储备池模块内的各动态忆阻器可以是基于tiox或wox等的氧空位迁移扩散型型忆阻器(如:ti/tiox(16nm)/taoy(30nm)/pt或au/wox(10nm)/w),也可以是基于ag或cu等的金属离子迁移扩散型忆阻器(如:pt/ag(5nm)/ag:sio2(10nm)/pt),也可以是基于bi2s3等的界面电荷捕获释放型忆阻器(如:ag/bi2s3-nnn(200nm)/pt)。为了避免误差各负载电阻rli的阻值要远小于相应动态忆阻器dmi的最小阻值。
乘加模块,作为本储备电池系统的输出层,负责根据训练好的权重值将储备池状态进行线性组合,输出最终的目标值。图5所示为基于非挥发性忆阻器阵列的乘加单元,包括交叉排布的n条上电极(te1~ten)和n条下电极(be1~ben),在上下电极的每个交叉点处设置一个非挥发性忆阻器。各非挥发性忆阻器可以是基于taox、hfox或alox等的氧空位导电细丝型忆阻器(如:ta/hfo2(5nm)/pt或tin/hfalyox(8nm)/taox(60nm)/tin),也可以是基于ag或cu等金属离子的导电细丝型忆阻器(如:ag/sio2(20nm)/pt)。
本发明储备池计算系统的可行性验证:经过实验验证,本发明系统在ti-46数字语音数据集(该数据集参见https://www.nature.com/articles/s41928-019-0313-3#sec12)上能够达到99.6%的准确率,该性能已与相同层数下当前储备池计算系统得到最好结果相当;本发明系统在hénon-map预测任务(该hénon-map预测任务参见https://ieeexplore.ieee.org/document/5629375)上能达到0.046的预测误差(归一化的均方根误差),该性能已超越了相同层数下当前储备池计算系统得到最好结果(0.091)。此外,经评估本发明系统具有极低的功耗(~50μw),远低于现有的cpu(~15w)和fpga(~80mw)。
以上示意性地对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性地设计出与该技术方案相似的方式及实施例,均应属于本发明的保护范围。
1.一种基于动态忆阻器的储备池计算系统,其特征在于,包括:
时分复用模块,包括n个并行的掩膜单元,各掩模单元分别根据不同的掩模信号,以各掩模信号为载波对输入信号的振幅进行调制,得到n个不同的振幅正比于输入信号的二值电压信号vini,i=1,2,…,n;
储备池模块,包括n个储备池单元,各储备池单元均分别包括相连接的动态忆阻器dmi和负载电阻rli,i=1,2,…,n,各动态忆阻器dmi的一端作为所在储备池单元的输入端与相应的一个掩膜单元的输出端连接,各动态忆阻器dmi的另一端与相应负载电阻rli的一端连接后作为所在储备池单元的输出端,负载电阻rli另一端接地;通过动态忆阻器dmi对来自掩模单元的电压信号vini进行动态响应,建立不同时间步信号之间的反馈连接,同时对输入的电压信号vini进行非线性变换,实现激活函数的作用,得到电流信号;通过负载电阻rli将动态忆阻器输出的电流信号转换成电压信号vouti进行输出;
乘加模块,采用非挥发性忆阻器阵列,利用基尔霍夫规则将来自储备池模块的n个电压信号vini与非挥发性忆阻器的电导值进行乘加运算得到对应的n个电流信号iouti进行输出,各非挥发性忆阻器的电导值与所述储备电池系统输出的权重值相对应。
2.根据权利要求1所述的储备池计算系统,其特征在于,各掩膜单元采用振幅调制器或者基于模拟开关的数字电路中的任意一种或两种的组合。
3.根据权利要求2所述的储备池计算系统,其特征在于,所述基于模拟开关的数字电路包括运算放大器、模拟开关和两个电阻,所述掩膜单元的信号输入端通过第一电阻与运算放大器的反相输入端连接,运算放大器的反相输入端与运算放大器的输出端之间并联有第二电阻,运算放大器的同相输入端接地,运算放大器的输出端接入模拟开关的第一通道选择端,模拟开关的第二通道选择端接入第一电阻与掩膜单元的信号输入端之间,掩模信号由模拟开关的输入端输入,模拟开关的输出端作为掩模单元的输出端。
4.根据权利要求1所述的储备池计算系统,其特征在于,所述储备池模块内的各动态忆阻器选用氧空位迁移扩散型型忆阻器、金属离子迁移扩散型忆阻器或界面电荷捕获释放型忆阻器。
5.根据权利要求1所述的储备池计算系统,其特征在于,将所述乘加模块中同一行的两个非挥发性忆阻器的电导值相减得到负权重值。
6.根据权利要求1所述的储备池计算系统,其特征在于,所述乘加模块包括交叉排布的n条上电极和n条下电极,在上、下电极的每个交叉点处设置一个非挥发性忆阻器。
7.根据权利要求6所述的储备池计算系统,其特征在于,所述非挥发性忆阻器选用氧空位导电细丝型忆阻器或金属离子导电细丝型忆阻器。
技术总结