CN111507464B - 一种基于忆阻器阵列的方程求解器及其操作方法 - Google Patents
一种基于忆阻器阵列的方程求解器及其操作方法 Download PDFInfo
- Publication number
- CN111507464B CN111507464B CN202010310144.2A CN202010310144A CN111507464B CN 111507464 B CN111507464 B CN 111507464B CN 202010310144 A CN202010310144 A CN 202010310144A CN 111507464 B CN111507464 B CN 111507464B
- Authority
- CN
- China
- Prior art keywords
- memristor array
- matrix
- equation
- memristor
- array
- 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.)
- Active
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
- G06F17/12—Simultaneous equations, e.g. systems of linear equations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Operations Research (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
本发明公开了一种基于忆阻器阵列的方程求解器及其操作方法,包括:第一忆阻器阵列、第二忆阻器阵列、比较模块和电导调制模块,基于忆阻器阵列搭建了一个三层神经网络,并基于神经网络的训练算法来求解线性方程组的系数矩阵的逆矩阵或广义逆矩阵,从而达到求解方程组的目的,该方程求解器可用于实现求解非奇异线性方程组、相容线性方程组、不相容线性方程组、偏微分方程、矩阵特征向量等多种任务,可重构性较强。另外,由于忆阻器具有高速、低功耗、易集成以及与CMOS工艺相兼容等优点,可以通过电导存储运算用的数据矩阵,以实现矢量矩阵乘法运算,该方程求解器电路结构简单,电路面积小,电路功耗低、操作步骤简单。
Description
技术领域
本发明属于模拟电路领域,更具体地,涉及一种基于忆阻器阵列的方程求解器及其操作方法。
背景技术
线性方程组、偏微分方程是许多实际问题的基本数学模型,在物理研究,工业生产等领域均有广泛的应用,而利用传统计算机进行方程求解任务面临着电路功耗大,运算速度较低的问题,迫切的需要一种新型的方程求解器来满足上述需要。忆阻器阵列可通过将数据映射为器件电导并存人阵列,通过外加电压矢量,依靠基尔霍夫电流定律和欧姆定律一步完成矢量矩阵乘法运算,具有高能量/面积效率的同时也具有很高的运算速度,利用忆阻阵列进行方程求解运算可以大大提高系统运行速度,并有效降低系统功耗,因此,研究一种基于忆阻器阵列的方程求解器具有重要意义。
目前,现有的基于忆阻器阵列的方程求解器往往通过外接传统计算机支持阵列进行方程求解运算,或通过电路连接方式在阵列内部完成运算;其中,通过外接计算机的方式会显著增加运算系统的系统复杂度。而依靠电路连接完成运算的方式,电路一旦连接完成就不可以再进行扩展,且该方法大多只能处理一种或两种任务,而以线性方程组为例,线性方程组本身即有相容线性方程组,不相容线性方程组,其解也具有通解,最小二乘解等多种表现形式,这些方程求解器难以适应如此类型的求解任务,可重构性较弱。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供一种基于忆阻器阵列的方程求解器及其操作方法,用以解决现有技术由于电路一旦连接完成就不可以再进行扩展,只能处理一种或两种任务而导致可重构性较弱的技术问题。
为了实现上述目的,第一方面,本发明提出了一种基于忆阻器阵列的方程求解器,包括:第一忆阻器阵列、第二忆阻器阵列、比较模块和电导调制模块;
其中,第一忆阻器阵列和第二忆阻器阵列均包括行输入端、列输入端、行输出端和列输出端;各输出端处均连接一组串联的电流电压转换器和模数转换器;第一忆阻器阵列的输出端经过其电流电压转换器与第二忆阻器阵列的输入端相连,第二忆阻器阵列的输出端经过串联的电流电压转换器和模数转换器与比较模块的输入端相连;比较模块的输出端与电导调制模块的输入端相连;其中,第一忆阻器阵列的行输出端经过其电流电压转换器与第二忆阻器阵列的列输入端相连,或者第一忆阻器阵列的列输出端经过其电流电压转换器与第二忆阻器阵列的行输入端相连;若第一忆阻器阵列的行输出端经过其电流电压转换器与第二忆阻器阵列的列输入端相连,则第一忆阻器阵列的输入矩阵从其列输入端输入,第二忆阻器阵列中与比较模块连接的输出端为其行输出端;否则,第一忆阻器阵列的输入矩阵从其行输入端输入,第二忆阻器阵列与比较模块连接的输出端为其列输出端;
第一忆阻器阵列的输入矩阵、目标矩阵以及初始状态下第一忆阻器阵列和第二忆阻器阵列中所存储的矩阵均根据待求解方程的类型确定,分别记为矩阵B、T、C和D;第一忆阻器阵列和第二忆阻器阵列的大小均大于或等于待求解方程系数矩阵的大小;
第一忆阻器阵列用于接收转换为电压矢量后的矩阵B的输入,实现矩阵B与矩阵C的矢量矩阵乘法运算,在第一忆阻器阵列的输出端得到用于表征该运算结果的电流,经其对应的电流电压转换器转换成电压后,输出到第二忆阻器阵列;
第二忆阻器阵列用于实现第一忆阻器阵列所得运算结果与矩阵D的矢量矩阵乘法运算,并在第二忆阻器阵列的输出端得到用于表征该运算结果的电流,经其对应的电流电压转换器转换成电压后,由其对应的模数转换器转换成相应的数字,得到第二忆阻器阵列的运算结果,并输出到比较模块中;
比较模块用于将第二忆阻器阵列的运算结果与目标矩阵T进行比较,计算误差值,并输出到电导调制模块中;
电导调制模块用于根据待求解方程的类型确定待更新的忆阻器阵列,根据误差值,计算待更新忆阻器阵列中需要调制的权值量,并基于所得权值量,采用电脉冲调制待更新的忆阻器阵中对应忆阻器的电导值,进而更新待更新的忆阻器阵列中所存储的矩阵M;其中,待更新的忆阻器阵列为第一忆阻器阵列或第二忆阻器阵列;
待更新的忆阻器阵列用于在其输入端接收转换为电压矢量后的矢量F的输入,实现矩阵M与矢量F的矢量矩阵乘法运算,此时,待更新的忆阻器阵列中所存储的矩阵M,即为待求解方程系数矩阵的逆矩阵或广义逆矩阵,在其输出端得到用于表征该运算结果的电流,经过其对应的电流电压转换器和模数转换器进行转换后,所得的结果即为待求解方程的解;其中,若待更新的忆阻器阵列的输入端为行输入端,则其输出端为列输出端;否则,其输出端为行输出端;矢量F为待求解方程等号右边的数所组成的矢量。
进一步优选地,待求解方程包括:非奇异线性方程组、相容线性方程组、不相容线性方程组和偏微分方程。
进一步优选地,上述方程求解器还用于求解矩阵特征向量。
第二方面,本发明提出了一种基于本发明第一方面所提供的忆阻器阵列的方程求解器的操作方法,包括以下步骤:
S1、根据待求解方程的类型确定第一忆阻器阵列的输入矩阵、目标矩阵以及初始状态下第一忆阻器阵列和第二忆阻器阵列中所存储的矩阵,分别记为矩阵B、T、C和D;
S2、将矩阵B转换为电压矢量后输入到第一忆阻器阵列中,实现矩阵B与矩阵C的矢量矩阵乘法运算,在第一忆阻器阵列的输出端得到用于表征该运算结果的电流,转换成电压后,输出到第二忆阻器阵列;
S3、在第二忆阻器阵列中,实现第一忆阻器阵列所得运算结果与矩阵D的矢量矩阵乘法运算,并在第二忆阻器阵列的输出端得到用于表征该运算结果的电流,转换成电压后进行模数转换,得到第二忆阻器阵列的运算结果;
S4、将第二忆阻器阵列的运算结果与目标矩阵T进行比较,计算误差值,若误差值小于等于预设训练精度,则转至步骤S7;否则转至步骤S5;
S5、根据待求解方程的类型确定待更新的忆阻器阵列,根据误差值,计算待更新忆阻器阵列中需要调制的权值量,并基于所得权值量,采用电脉冲调制待更新的忆阻器阵中对应忆阻器的电导值,进而更新待更新的忆阻器阵列中所存储的矩阵M;其中,待更新的忆阻器阵列为第一忆阻器阵列或第二忆阻器阵列;
S6、重复S2-S5进行迭代,直至误差值小于等于预设训练精度;
S7、在待更新的忆阻器阵列的输入端接收转换为电压矢量后的矢量F的输入,实现矩阵M与矢量F的矢量矩阵乘法运算,此时,待更新的忆阻器阵列中所存储的矩阵M,即为待求解方程系数矩阵的逆矩阵或广义逆矩阵,在其输出端得到用于表征该运算结果的电流,将所得电流转换成电压并进行模数转换,所得的结果即为待求解方程的解;其中,若待更新的忆阻器阵列的输入端为行输入端,则其输出端为列输出端;否则,其输出端为行输出端;矢量F为待求解方程等号右边的数所组成的矢量。
进一步优选地,当待求解方程为非奇异线性方程组或偏微分方程时,待更新的忆阻器阵列为第一忆阻器阵列或第二忆阻器阵列,目标矩阵T为待求解方程的系数矩阵;
此时,若待更新的忆阻器阵列为第一忆阻器阵列,第一忆阻器阵列的输入矩阵B为待求解方程的系数矩阵,初始状态下第一忆阻器阵列所存储的矩阵C为任意矩阵,初始状态下第二忆阻器阵列所存储的矩阵D为待求解方程的系数矩阵;
若待更新的忆阻器阵列为第二忆阻器阵列,第一忆阻器阵列的输入矩阵B为待求解方程的系数矩阵,初始状态下第一忆阻器阵列所存储的矩阵C为待求解方程的系数矩阵,初始状态下第二忆阻器阵列所存储的矩阵D为任意矩阵。
进一步优选地,当待求解方程为相容线性方程组时,待更新的忆阻器阵列为第一忆阻器阵列,目标矩阵T为待求解方程的系数矩阵,第一忆阻器阵列的输入矩阵B为待求解方程的系数矩阵,初始状态下第一忆阻器阵列所存储的矩阵C为任意矩阵,初始状态下第二忆阻器阵列所存储的矩阵D为待求解方程的系数矩阵。
进一步优选地,当待求解方程为不相容线性方程组时,待更新的忆阻器阵列为第二忆阻器阵列,目标矩阵T为待求解方程系数矩阵的共轭转置,第一忆阻器阵列的输入矩阵B为待求解方程系数矩阵的共轭转置,初始状态下第一忆阻器阵列所存储的矩阵C为待求解方程的系数矩阵,初始状态下第二忆阻器阵列所存储的矩阵D为任意矩阵。
进一步优选地,上述误差值为:
其中,fij为第二忆阻器阵列的运算结果中的元素,tij为对应的目标矩阵T中的元素,1≤i≤m’,1≤j≤n’,m’为目标矩阵T的行数,n’为目标矩阵T的列数。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
1、本发明提供了一种基于忆阻器阵列的方程求解器,包括:第一忆阻器阵列、第二忆阻器阵列、比较模块和电导调制模块,基于忆阻器阵列搭建了一个三层神经网络,并基于神经网络的训练算法来求解线性方程组的系数矩阵的逆矩阵或广义逆矩阵,从而达到求解方程组的目的,该方程求解器可用于实现求解非奇异线性方程组、相容线性方程组、相容线性方程组不相容线性方程组、偏微分方程、矩阵特征向量等多种任务,可重构性较强。
2、由于忆阻器具有高速、低功耗、易集成以及与CMOS工艺相兼容等优点,本发明所提供的方程求解器具有多级电导调控特性,可以通过电导存储运算用的数据矩阵,以实现矢量-矩阵乘法;该方程求解器电路结构简单,操作步骤简单,且由于采用了存算一体化的架构,电路面积小,电路功耗低。
3、本发明所提供的基于忆阻器阵列的方程求解器,在求解微分方程,矩阵特征向量时,由于求解过程中系数矩阵不发生改变,仅需一次训练过程,减少了电路复杂度,减少了一次数据传输的过程,降低了电路功耗,同时相比起传统的利用计算机求解线性方程组的过程,采用该电路可有效降低时间复杂度,实现存储与计算的融合,大幅节约运算能耗和时间,可靠性高。
4、本发明提供了一种基于忆阻器阵列的方程求解器的操作方法,基于神经网络的训练算法来求解线性方程组的系数矩阵的逆矩阵或广义逆矩阵,从而达到求解方程组的目的,该方法可用于实现求解非奇异线性方程组、相容线性方程组、不相容线性方程组、偏微分方程、矩阵特征向量,通用性较强。
5、本发明提供了一种基于忆阻器阵列的方程求解器的操作方法,直接利用神经网络的思想来进方程求解任务,理论上可以在任意一块忆阻深度神经网络芯片上完成计算任务,不需要重新设计外围电路,可以使得一块神经网络芯片具备数值计算的能力,大大提高了神经网络芯片的系统可重构性。
附图说明
图1为本发明实施例1提供的忆阻器阵列的输入端和输出端;
图2为本发明实施例1提供的基于忆阻器阵列的方程求解器的结构示意图;
图3为本发明实施例1提供的电流电压转换器示意图;其中,图(a)为电流电压转换器中的转换核的结构示意图;图(a)为电流电压转换器的结构示意图;
图4为本发明实施例2提供的矢量矩阵乘法运算操作示意图;其中,图(a)为电压矢量经列输入端输入到忆阻器阵列时的矢量矩阵乘法运算操作示意图;图(b)为电压矢量经行输入端输入到忆阻器阵列时的矢量矩阵乘法运算操作示意图;
图5为本发明所提供的方程求解器与三层人工神经网络的映射关系;
图6为本发明实施例2所提供的求解不相容线性方程组时的训练流程图;其中,图(a)为求解不相容线性方程组时采用本发明所提供的方程求解器进行训练的流程图;图(b)为求解不相容线性方程组时将方程求解器映射成三层人工神经网络进行训练的流程图;
图7为本发明实施例2所提供的求解不相容线性方程组时的流程图;其中,图(a)为采用本发明所提供的方程求解器求解不相容线性方程的流程图,图(b)为将方程求解器映射成神经网络求解不相容线性方程的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1、
一种基于忆阻器阵列的方程求解器,包括:第一忆阻器阵列、第二忆阻器阵列、比较模块和电导调制模块;
其中,如图1所示,第一忆阻器阵列和第二忆阻器阵列均包括行输入端、列输入端、行输出端和列输出端;各输出端处均连接一组串联的电流电压转换器和模数转换器;第一忆阻器阵列的输出端经过其电流电压转换器与第二忆阻器阵列的输入端相连,第二忆阻器阵列的输出端经过串联的电流电压转换器和模数转换器与比较模块的输入端相连;比较模块的输出端与电导调制模块的输入端相连;其中,第一忆阻器阵列的行输出端经过其电流电压转换器与第二忆阻器阵列的列输入端相连,或者第一忆阻器阵列的列输出端经过其电流电压转换器与第二忆阻器阵列的行输入端相连;若第一忆阻器阵列的行输出端经过其电流电压转换器与第二忆阻器阵列的列输入端相连,则第一忆阻器阵列的输入矩阵从其列输入端输入,第二忆阻器阵列中与比较模块连接的输出端为其行输出端;否则,第一忆阻器阵列的输入矩阵从其行输入端输入,第二忆阻器阵列与比较模块连接的输出端为其列输出端;
本实施例以第一忆阻器阵列的行输出端经过其电流电压转换器与第二忆阻器阵列的列输入端相连的连接方式为例,如图2所示,第一忆阻器阵列的行输出端处连接一组串联的电流电压转换器1和模数转换器1,第二忆阻器阵列的行输出端处连接一组串联的电流电压转换器2和模数转换器2,第一忆阻器阵列的列输出端处连接一组串联的电流电压转换器3和模数转换器3,第二忆阻器阵列的列输出端处连接一组串联的电流电压转换器4和模数转换器4。且在第一忆阻器阵列和第二忆阻器阵列的输入端之前均连接有数模转换器,用于将输入矩阵转换为电压矢量后输入到忆阻器阵列。具体的,第一忆阻器阵列的列输入端和行输入端之前分别有连接数模转换器1和数模转换器3,第二忆阻器阵列的列输入端和行输入端之前分别有连接数模转换器2和数模转换器4。其中,如图3所示,本实施例中,各电流电压转换器均包含K个转换核,K大于等于忆阻器阵列所存储的矩阵的行数m,且大于等于忆阻器阵列所存储的矩阵的列数n,如图3中的(b)图所示;每个转换核由一个跨阻放大器组成,跨阻放大器使用的电阻R1阻值为1KΩ,如图3中的(a)图所示。
本发明所提供的方程求解器为通用方程求解器,可用于求解非奇异线性方程组、相容线性方程组、不相容线性方程组、偏微分方程等待求解方程,除此之外,还用于求解矩阵特征向量,针对不同的问题可以得到不同的解。
具体的,第一忆阻器阵列的输入矩阵、目标矩阵以及初始状态下第一忆阻器阵列和第二忆阻器阵列中所存储的矩阵均根据待求解方程的类型确定,分别记为矩阵B、T、C和D;第一忆阻器阵列和第二忆阻器阵列的大小均大于或等于待求解方程系数矩阵的大小;
本实施例中,输入矩阵B经数模转换器1转换成电压矢量后,经第一忆阻器阵列的列输入端输入第一忆阻器阵列。第一忆阻器阵列用于接收转换为电压矢量后的矩阵B的输入,实现矩阵B与矩阵C的矢量矩阵乘法运算,在第一忆阻器阵列的行输出端得到用于表征该运算结果的电流,经电流电压转换器1转换成电压后,经第二忆阻器阵列的列输入端输出到第二忆阻器阵列。第二忆阻器阵列用于实现第一忆阻器阵列所得运算结果与矩阵D的矢量矩阵乘法运算,并在第二忆阻器阵列的行输出端得到用于表征该运算结果的电流,经电流电压转换器2转换成电压后,由模数转换器2转换成相应的数字,得到第二忆阻器阵列的运算结果,并输出到比较模块中。比较模块用于将第二忆阻器阵列的运算结果与目标矩阵T进行比较,计算误差值,并输出到电导调制模块中。电导调制模块用于根据待求解方程的类型确定待更新的忆阻器阵列,根据误差值,计算待更新忆阻器阵列中需要调制的权值量,并基于所得权值量,采用电脉冲调制待更新的忆阻器阵中对应忆阻器的电导值,进而更新待更新的忆阻器阵列中所存储的矩阵M;其中,待更新的忆阻器阵列为第一忆阻器阵列或第二忆阻器阵列。待更新的忆阻器阵列用于在其输入端接收转换为电压矢量后的矢量F的输入,实现矩阵M与矢量F的矢量矩阵乘法运算,此时,待更新的忆阻器阵列中所存储的矩阵M,即为待求解方程系数矩阵的逆矩阵或广义逆矩阵,在其输出端得到用于表征该运算结果的电流,经过其对应的电流电压转换器和模数转换器进行转换后,所得的结果即为待求解方程的解;其中,若待更新的忆阻器阵列的输入端为行输入端,则其输出端为列输出端;否则,其输出端为行输出端;矢量F为待求解方程等号右边的数所组成的矢量。
第一忆阻器阵列的列输出端经过其电流电压转换器与第二忆阻器阵列的行输入端相连的连接方式,与第一忆阻器阵列的行输出端经过其电流电压转换器与第二忆阻器阵列的列输入端相连的连接方式类似,仅需要保证若输入时经列输入端输入,则输出时就经行输出端输出;若输入时经行输入端输入,则输出时就经列输出端输出,这里不做赘述。
实施例2、
一种基于本发明实施例1所提供的忆阻器阵列的方程求解器的操作方法,包括以下步骤:
S1、根据待求解方程的类型确定第一忆阻器阵列的输入矩阵、目标矩阵以及初始状态下第一忆阻器阵列和第二忆阻器阵列中所存储的矩阵,分别记为矩阵B、T、C和D;
S2、将矩阵B转换为电压矢量后输入到第一忆阻器阵列中,实现矩阵B与矩阵C的矢量矩阵乘法运算,在第一忆阻器阵列的输出端得到用于表征该运算结果的电流,转换成电压后,输出到第二忆阻器阵列;
具体的,记初始状态下第一忆阻器阵列存储的矩阵C中的元素为cij,1≤i≤m,1≤j≤n,m为矩阵C的行数,n为矩阵C的列数,则矩阵元素在忆阻器阵列中的存储方式为cij=Gij,如图4所示。将矩阵B转换为电压矢量后输入到第一忆阻器阵列中,根据欧姆定律,i=u·g,即对于忆阻器阵列中的每一个单元都会得到一个电流量。而根据基尔霍夫电流定律,当电压矢量经列输入端输入到忆阻器阵列时,此时,矩阵B的每一行所对应的电压矢量V依次输入到忆阻器阵列中,如图4中的(a)图所示,阵列的每一行的输出电流是这一行上每一个单元的电流之和,则每一行的输出电流为由此可在忆阻器阵列行线上得到一系列输出的电流,构成电流矢量。当电压矢量经行输人端输入到忆阻器阵列时,此时,矩阵B的每一列所对应的电压矢量V依次输入到忆阻器阵列中,如图4中的(b)图所示,阵列的每一列的输出电流是这一列上每一个单元的电流之和,则每一列的输出电流为由此可在列线上得到一系列输出的电流,构成电流矢量。由此,忆阻器阵列完成了一次基于模拟量的矢量矩阵乘法。根据数学运算法则,若执行矢量矩阵乘法时由列输入端输入,在行输出端得到输出,则相当于执行I=G·V;若由行输入端输入,在列输出端得到输出,则相当于执行I=GT·V。
S3、在第二忆阻器阵列中,实现第一忆阻器阵列所得运算结果与矩阵D的矢量矩阵乘法运算,并在第二忆阻器阵列的输出端得到用于表征该运算结果的电流,转换成电压后进行模数转换,得到第二忆阻器阵列的运算结果;
S4、将第二忆阻器阵列的运算结果与目标矩阵T进行比较,计算误差值,若误差值小于等于预设训练精度,则转至步骤S7;否则转至步骤S5;
具体的,误差值为:
其中,fij为第二忆阻器阵列的运算结果BCD中的元素,tij为对应的目标矩阵T中的元素,1≤i≤m’,1≤j≤n’,m’为目标矩阵T的行数,n’为目标矩阵T的列数。
S5、根据待求解方程的类型确定待更新的忆阻器阵列,根据误差值,计算待更新忆阻器阵列中需要调制的权值量,并基于所得权值量,采用电脉冲调制待更新的忆阻器阵中对应忆阻器的电导值,进而更新待更新的忆阻器阵列中所存储的矩阵M;其中,待更新的忆阻器阵列为第一忆阻器阵列或第二忆阻器阵列;
具体的,本发明所提出的方程求解器与三层人工神经网络结构相对应,如图5所示,三层人工神经网络模型的神经元包括含有一个输入神经元,一个隐藏层神经元,一个输出层神经元。对应的三层人工神经网络模型包括一个输入层、一个隐藏层和一个输出层,且隐藏层不含有非线性激活函数,使用的是线性激活函数。该神经网络的输入层与隐藏层之间的权值映射在第一忆阻器阵列中,隐藏层与输出层之间的权值映射在第二忆阻器阵列中,且各权值与忆阻器阵列中忆阻器中电导的映射关系为W=α(G),其中α为线性系数。本发明实质上是根据待求解方程构造训练模型,通过训练不断更新更新神经网络的权重,即待更新的忆阻器阵列所存储的矩阵,最后基于所得矩阵求解待求解方程的解。具体的,第k+1次迭代中需要调制的权值量为:
S6、重复S2-S5进行迭代,直至误差值小于等于预设训练精度;具体的,本实施例中,预设训练精度为10-6;
S7、在待更新的忆阻器阵列的输入端接收转换为电压矢量后的矢量F的输入,实现矩阵M与矢量F的矢量矩阵乘法运算,此时,待更新的忆阻器阵列中所存储的矩阵M,即为待求解方程系数矩阵的逆矩阵或广义逆矩阵,在其输出端得到用于表征该运算结果的电流,将所得电流转换成电压并进行模数转换,所得的结果即为待求解方程的解;其中,若待更新的忆阻器阵列的输入端为行输入端,则其输出端为列输出端;否则,其输出端为行输出端;矢量F为待求解方程等号右边的数所组成的矢量。
进一步地,当待求解方程为非奇异线性方程组,以非奇异线性方程组Ax=b为例,此时,待求解方程的系数矩阵为A,矢量F为b,待求解x=A-1b。为了求解x,需要先求解得到逆矩阵A-1。为了求解A-1,结合本发明所提供的方程求解器,训练模型为A·A-1·A=A或A·A·A-1=A。当训练模型为A·A-1·A=A时,目标矩阵T为待求解方程的系数矩阵A,待更新的忆阻器阵列为第一忆阻器阵列,第一忆阻器阵列的输入矩阵B为待求解方程的系数矩阵A,初始状态下第一忆阻器阵列所存储的矩阵C为任意矩阵,初始状态下第二忆阻器阵列所存储的矩阵D为待求解方程的系数矩阵A。采用上述步骤S2-S6所述的方法,即可完成训练,得到待更新的忆阻器阵列,即第一忆阻器阵列中所存储的矩阵M,即为所求A-1。当训练模型为A·A·A-1=A时,目标矩阵T为待求解方程的系数矩阵A,待更新的忆阻器阵列为第二忆阻器阵列,第一忆阻器阵列的输入矩阵B为待求解方程的系数矩阵A,初始状态下第一忆阻器阵列所存储的矩阵C为待求解方程的系数矩阵A,初始状态下第二忆阻器阵列所存储的矩阵D为任意矩阵。同样的采用上述步骤S2-S6所述的方法,即可完成训练,得到待更新的忆阻器阵列,即第二忆阻器阵列中所存储的矩阵M,即为所求A-1。最后根据步骤S7所述的方法,即可求得该非奇异线性方程组的解。
进一步优选地,当待求解方程为相容线性方程组时,以不相容线性方程组Ax=b为例,此时,同样的,待求解方程的系数矩阵为A,矢量F为b,待求解x=A-·b。为了求解x,需要先求解得到广义逆矩阵A-。为了求解A-,结合本发明所提供的方程求解器,训练模型为A·A-·A=A。此时,待更新的忆阻器阵列为第一忆阻器阵列,目标矩阵T为待求解方程的系数矩阵A,第一忆阻器阵列的输入矩阵B为待求解方程的系数矩阵A,初始状态下第一忆阻器阵列所存储的矩阵C为任意矩阵,初始状态下第二忆阻器阵列所存储的矩阵D为待求解方程的系数矩阵A。采用上述步骤S2-S6所述的方法,即可完成训练,得到待更新的忆阻器阵列,即第一忆阻器阵列中所存储的矩阵M,即为所求A-。最后根据步骤S7所述的方法,即可求得待求解相容线性方程组的通解。
进一步优选地,当待求解方程为不相容线性方程组时,以不相容线性方程组Ax=b为例,此时,同样的,待求解方程的系数矩阵为A,矢量F为b,待求解为了求解x,需要先求解得到最小二乘广义逆矩阵为了求解A-,结合本发明所提供的方程求解器,训练模型为 待更新的忆阻器阵列为第二忆阻器阵列,目标矩阵T为待求解方程系数矩阵的共轭转置AH,第一忆阻器阵列的输入矩阵B为待求解方程系数矩阵的共轭转置AH,初始状态下第一忆阻器阵列所存储的矩阵C为待求解方程的系数矩阵A,初始状态下第二忆阻器阵列所存储的矩阵D为任意矩阵。采用上述步骤S2-S6所述的方法,即可完成训练,得到待更新的忆阻器阵列,即第二忆阻器阵列中所存储的矩阵M,即为所求如图6所示,其中,图(a)为求解不相容线性方程组时采用本发明所提供的方程求解器进行训练的流程图;图(b)为求解不相容线性方程组时将方程求解器映射成三层人工神经网络进行训练的流程图。最后根据步骤S7所述的方法进行求解,矢量F经数模转换器2转换为电压矢量后,输入待更新的忆阻器阵列(即第二忆阻器阵列)的列输入端,实现矩阵与矢量F(b)的矢量矩阵乘法运算,在其行输出端得到用于表征该运算结果的电流,经电流电压转换器2将所得电流转换成电压后,由模数转换器2进一步进行模数转换,所得的结果即为不相容线性方程组的最小二乘解。如图7所示,其中,图(a)为采用本发明所提供的方程求解器求解不相容线性方程的流程图,图(b)为将方程求解器映射成神经网络求解不相容线性方程的流程图。
进一步地,当待求解方程为偏微分方程时,采用有限差分法将偏微分方程进行数学变换后,对应的方程表达式与非奇异线性方程组类似,同样可以用Ax=b表示,微分方程分为定态问题和时变问题,定态问题可以直接求解有限差分后的解线性方程组得到,时变问题则需要多次求解方程A·νj+1=μj得到偏微分方程的解,随时间的变化状态,由于μj+1=A-1·μj,因此求解过程中神经网络只需要进行一次训练,即可通过反复的矢量矩阵乘法得到时变偏微分方程的解。具体操作与求解非奇异线性方程组的方式类似,这里不做赘述。
除此之外,本发明还用于求解矩阵特征向量,在求解算法上采用幂反算法,算法流程中需要反复迭代求解一个非奇异线性方程组AX=b,在求解流程上与时变偏微分方程的求解流程类似,网络也不需要重新训练,大大降低了算法的时间复杂度。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于忆阻器阵列的方程求解器,其特征在于,包括:第一忆阻器阵列、第二忆阻器阵列、比较模块和电导调制模块;
第一忆阻器阵列和第二忆阻器阵列均包括行输入端、列输入端、行输出端和列输出端;各输出端处均连接一组串联的电流电压转换器和模数转换器;第一忆阻器阵列的输出端经过其电流电压转换器与第二忆阻器阵列的输入端相连,第二忆阻器阵列的输出端经过串联的电流电压转换器和模数转换器与比较模块的输入端相连;比较模块的输出端与电导调制模块的输入端相连;其中,第一忆阻器阵列的行输出端经过其电流电压转换器与第二忆阻器阵列的列输入端相连,或者第一忆阻器阵列的列输出端经过其电流电压转换器与第二忆阻器阵列的行输入端相连;若第一忆阻器阵列的行输出端经过其电流电压转换器与第二忆阻器阵列的列输入端相连,则第一忆阻器阵列的输入矩阵从其列输入端输入,第二忆阻器阵列中与比较模块连接的输出端为其行输出端;否则,第一忆阻器阵列的输入矩阵从其行输入端输入,第二忆阻器阵列与比较模块连接的输出端为其列输出端;
目标矩阵以及初始状态下第一忆阻器阵列和第二忆阻器阵列中所存储的矩阵均根据待求解方程的类型确定,分别记为矩阵T、C和D;第一忆阻器阵列和第二忆阻器阵列的大小均大于或等于待求解方程系数矩阵的大小;
第一忆阻器阵列用于接收转换为电压矢量后的矩阵B的输入,实现矩阵B与矩阵C的矢量矩阵乘法运算,在第一忆阻器阵列的输出端得到用于表征该运算结果的电流,经其对应的电流电压转换器转换成电压后,输出到第二忆阻器阵列;所述矩阵B根据待求解方程的类型确定;
第二忆阻器阵列用于实现第一忆阻器阵列所得运算结果与矩阵D的矢量矩阵乘法运算,并在第二忆阻器阵列的输出端得到用于表征该运算结果的电流,经其对应的电流电压转换器转换成电压后,由其对应的模数转换器转换成相应的数字,得到第二忆阻器阵列的运算结果,并输出到比较模块中;
比较模块用于将第二忆阻器阵列的运算结果与目标矩阵T进行比较,计算误差值,并输出到电导调制模块中;
电导调制模块用于根据待求解方程的类型确定待更新的忆阻器阵列,根据误差值,计算待更新忆阻器阵列中需要调制的权值量,并基于所得权值量,采用电脉冲调制待更新的忆阻器阵中对应忆阻器的电导值,进而更新所述待更新的忆阻器阵列中所存储的矩阵,得到矩阵M;其中,所述待更新的忆阻器阵列为第一忆阻器阵列或第二忆阻器阵列;
所述待更新的忆阻器阵列用于在其输入端接收转换为电压矢量后的矢量F的输入,实现矩阵M与矢量F的矢量矩阵乘法运算,此时,所述待更新的忆阻器阵列中所存储的矩阵为矩阵M,即为待求解方程系数矩阵的逆矩阵或广义逆矩阵,在其输出端得到用于表征该运算结果的电流,经过其对应的电流电压转换器和模数转换器进行转换后,所得的结果即为待求解方程的解;其中,若所述待更新的忆阻器阵列的输入端为行输入端,则其输出端为列输出端;否则,其输出端为行输出端;矢量F为待求解方程等号右边的数所组成的矢量。
2.根据权利要求1所述的基于忆阻器阵列的方程求解器,其特征在于,所述待求解方程包括:非奇异线性方程组、相容线性方程组、不相容线性方程组和偏微分方程。
3.根据权利要求1所述的基于忆阻器阵列的方程求解器,其特征在于,所述方程求解器还用于求解矩阵特征向量。
4.一种基于权利要求1-3任意一项所述的忆阻器阵列的方程求解器的操作方法,其特征在于,包括以下步骤:
S1、根据待求解方程的类型确定目标矩阵以及初始状态下第一忆阻器阵列和第二忆阻器阵列中所存储的矩阵,分别记为矩阵T、C和D;
S2、将矩阵B转换为电压矢量后输入到第一忆阻器阵列中,实现矩阵B与矩阵C的矢量矩阵乘法运算,在第一忆阻器阵列的输出端得到用于表征该运算结果的电流,转换成电压后,输出到第二忆阻器阵列;所述矩阵B根据待求解方程的类型确定;
S3、在第二忆阻器阵列中,实现第一忆阻器阵列所得运算结果与矩阵D的矢量矩阵乘法运算,并在第二忆阻器阵列的输出端得到用于表征该运算结果的电流,转换成电压后进行模数转换,得到第二忆阻器阵列的运算结果;
S4、将第二忆阻器阵列的运算结果与目标矩阵T进行比较,计算误差值,若误差值小于等于预设训练精度,则转至步骤S7;否则转至步骤S5;
S5、根据待求解方程的类型确定待更新的忆阻器阵列,根据误差值,计算待更新忆阻器阵列中需要调制的权值量,并基于所得权值量,采用电脉冲调制待更新的忆阻器阵中对应忆阻器的电导值,进而更新所述待更新的忆阻器阵列中所存储的矩阵,得到矩阵M;其中,所述待更新的忆阻器阵列为第一忆阻器阵列或第二忆阻器阵列;
S6、重复S2-S5进行迭代,直至误差值小于等于预设训练精度;
S7、在所述待更新的忆阻器阵列的输入端接收转换为电压矢量后的矢量F的输入,实现矩阵M与矢量F的矢量矩阵乘法运算,此时,所述待更新的忆阻器阵列中所存储的矩阵为矩阵M,即为待求解方程系数矩阵的逆矩阵或广义逆矩阵,在其输出端得到用于表征该运算结果的电流,将所得电流转换成电压并进行模数转换,所得的结果即为待求解方程的解;其中,若所述待更新的忆阻器阵列的输入端为行输入端,则其输出端为列输出端;否则,其输出端为行输出端;矢量F为待求解方程等号右边的数所组成的矢量。
5.根据权利要求4所述的忆阻器阵列的方程求解器的操作方法,其特征在于,当待求解方程为非奇异线性方程组或偏微分方程时,所述待更新的忆阻器阵列为第一忆阻器阵列或第二忆阻器阵列,所述目标矩阵T为待求解方程的系数矩阵;
此时,若所述待更新的忆阻器阵列为第一忆阻器阵列,则所述矩阵B为待求解方程的系数矩阵,初始状态下第一忆阻器阵列所存储的矩阵C为任意矩阵,初始状态下第二忆阻器阵列所存储的矩阵D为待求解方程的系数矩阵;
若所述待更新的忆阻器阵列为第二忆阻器阵列,则所述矩阵B为待求解方程的系数矩阵,初始状态下第一忆阻器阵列所存储的矩阵C为待求解方程的系数矩阵,初始状态下第二忆阻器阵列所存储的矩阵D为任意矩阵。
6.根据权利要求4所述的忆阻器阵列的方程求解器的操作方法,其特征在于,当待求解方程为相容线性方程组时,所述待更新的忆阻器阵列为第一忆阻器阵列,所述目标矩阵T为待求解方程的系数矩阵,所述矩阵B为待求解方程的系数矩阵,初始状态下第一忆阻器阵列所存储的矩阵C为任意矩阵,初始状态下第二忆阻器阵列所存储的矩阵D为待求解方程的系数矩阵。
7.根据权利要求4所述的忆阻器阵列的方程求解器的操作方法,其特征在于,当待求解方程为不相容线性方程组时,所述待更新的忆阻器阵列为第二忆阻器阵列,所述目标矩阵T为待求解方程系数矩阵的共轭转置,所述矩阵B为待求解方程系数矩阵的共轭转置,初始状态下第一忆阻器阵列所存储的矩阵C为待求解方程的系数矩阵,初始状态下第二忆阻器阵列所存储的矩阵D为任意矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010310144.2A CN111507464B (zh) | 2020-04-19 | 2020-04-19 | 一种基于忆阻器阵列的方程求解器及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010310144.2A CN111507464B (zh) | 2020-04-19 | 2020-04-19 | 一种基于忆阻器阵列的方程求解器及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111507464A CN111507464A (zh) | 2020-08-07 |
CN111507464B true CN111507464B (zh) | 2022-03-18 |
Family
ID=71876210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010310144.2A Active CN111507464B (zh) | 2020-04-19 | 2020-04-19 | 一种基于忆阻器阵列的方程求解器及其操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111507464B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111988031B (zh) * | 2020-08-28 | 2022-05-20 | 华中科技大学 | 一种忆阻存内矢量矩阵运算器及运算方法 |
CN112182491B (zh) * | 2020-09-14 | 2024-04-19 | 华中科技大学 | 一种基于忆阻器阵列的沃尔什-阿达马变换装置 |
CN112182495B (zh) * | 2020-09-14 | 2024-04-19 | 华中科技大学 | 一种基于忆阻器的二元域矩阵运算电路 |
CN112734022B (zh) * | 2021-02-02 | 2023-12-19 | 郑州轻工业大学 | 一种具有识别和排序功能的四字符忆阻神经网络电路 |
CN113076827B (zh) * | 2021-03-22 | 2022-06-17 | 华中科技大学 | 一种传感器信号智能处理系统 |
CN114282478B (zh) * | 2021-11-18 | 2023-11-17 | 南京大学 | 一种修正可变电阻器件阵列点乘误差的方法 |
US11907715B2 (en) | 2021-12-20 | 2024-02-20 | International Business Machines Corporation | Hardware acceleration with preconditioners |
CN114418080A (zh) * | 2022-01-28 | 2022-04-29 | Oppo广东移动通信有限公司 | 存算一体运算方法、忆阻器神经网络芯片及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201703046A (zh) * | 2015-04-16 | 2017-01-16 | 慧與發展有限責任合夥企業 | 用以執行乘法累加運算之電阻式記憶體陣列 |
CN108090308A (zh) * | 2018-01-18 | 2018-05-29 | 重庆邮电大学 | 一种基于hp忆阻器与电容器的基本单元混沌电路 |
CN108807667A (zh) * | 2018-05-30 | 2018-11-13 | 华中科技大学 | 一种三维堆叠存储器及其制备方法 |
CN109448068A (zh) * | 2018-10-16 | 2019-03-08 | 西南大学 | 一种基于忆阻器交叉阵列的图像重构系统 |
CN109800870A (zh) * | 2019-01-10 | 2019-05-24 | 华中科技大学 | 一种基于忆阻器的神经网络在线学习系统 |
CN110827898A (zh) * | 2019-10-21 | 2020-02-21 | 华中科技大学 | 一种基于忆阻器的电压-电阻式可逆逻辑电路及其操作方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017131711A1 (en) * | 2016-01-28 | 2017-08-03 | Hewlett Packard Enterprise Development Lp | Memristor crossbar array for performing a fourier transformation |
-
2020
- 2020-04-19 CN CN202010310144.2A patent/CN111507464B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201703046A (zh) * | 2015-04-16 | 2017-01-16 | 慧與發展有限責任合夥企業 | 用以執行乘法累加運算之電阻式記憶體陣列 |
CN108090308A (zh) * | 2018-01-18 | 2018-05-29 | 重庆邮电大学 | 一种基于hp忆阻器与电容器的基本单元混沌电路 |
CN108807667A (zh) * | 2018-05-30 | 2018-11-13 | 华中科技大学 | 一种三维堆叠存储器及其制备方法 |
CN109448068A (zh) * | 2018-10-16 | 2019-03-08 | 西南大学 | 一种基于忆阻器交叉阵列的图像重构系统 |
CN109800870A (zh) * | 2019-01-10 | 2019-05-24 | 华中科技大学 | 一种基于忆阻器的神经网络在线学习系统 |
CN110827898A (zh) * | 2019-10-21 | 2020-02-21 | 华中科技大学 | 一种基于忆阻器的电压-电阻式可逆逻辑电路及其操作方法 |
Non-Patent Citations (2)
Title |
---|
Compact Model for the Major and Minor Hysteretic I–V Loops in Nonlinear Memristive Devices;E. Miranda等;《IEEE Transactions on Nanotechnology 》;20150710;第787-789页 * |
基于忆阻器的神经网络设计及其动力学分析;门乐飞;《中国优秀硕士学位论文全文数据库》;20180215;第I140-301页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111507464A (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111507464B (zh) | 一种基于忆阻器阵列的方程求解器及其操作方法 | |
CN108154228B (zh) | 一种人工神经网络计算装置和方法 | |
CN111460365B (zh) | 一种基于忆阻线性神经网络的方程组求解器及其操作方法 | |
CN109460817B (zh) | 一种基于非易失存储器的卷积神经网络片上学习系统 | |
CN111125616B (zh) | 一种二维离散傅里叶变换运算电路及运算方法 | |
EP4022426B1 (en) | Refactoring mac operations | |
CN107636640A (zh) | 具有求反指示符的点积引擎 | |
CN113850389B (zh) | 一种量子线路的构建方法及装置 | |
CN111984921A (zh) | 一种存内数值计算加速器及存内数值计算方法 | |
CN111478703B (zh) | 基于忆阻交叉阵列的处理电路及输出电流的补偿方法 | |
TWI737228B (zh) | 基於記憶體內運算電路架構之量化方法及其系統 | |
CN109977470B (zh) | 忆阻Hopfield神经网络稀疏编码的电路及其操作方法 | |
CN113139641A (zh) | 神经网络系统及神经网络计算方法 | |
CN113837371A (zh) | 用于实现神经网络的神经形态装置和方法 | |
CN115906976A (zh) | 一种全模拟向量矩阵乘法存内计算电路及其应用 | |
US11556770B2 (en) | Auto weight scaling for RPUs | |
CN113283986B (zh) | 算法交易系统及基于该系统的算法交易模型的训练方法 | |
CN111988031B (zh) | 一种忆阻存内矢量矩阵运算器及运算方法 | |
CN116468090A (zh) | 一种基于忆阻器实现的硬件卷积神经网络模型 | |
CN114861902A (zh) | 处理单元及其操作方法、计算芯片 | |
CN114168888B (zh) | 一种存内模拟式线性方程组求解器、求解系统及求解方法 | |
CN117610636A (zh) | 一种存内计算存储器人工神经网络的片上训练方法 | |
CN114418104B (zh) | 一种量子应用问题的处理方法及装置 | |
KR20210113722A (ko) | 트랜스포즈 매트릭스 곱셈이 가능한 매트릭스 곱셈기 구조 및 곱셈방법 | |
Bochev | Distributed arithmetic implementation of artificial neural networks |
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 |