CN116579392A - 一种基于电导可调器件的神经网络训练操作系统及方法 - Google Patents
一种基于电导可调器件的神经网络训练操作系统及方法 Download PDFInfo
- Publication number
- CN116579392A CN116579392A CN202310184157.3A CN202310184157A CN116579392A CN 116579392 A CN116579392 A CN 116579392A CN 202310184157 A CN202310184157 A CN 202310184157A CN 116579392 A CN116579392 A CN 116579392A
- Authority
- CN
- China
- Prior art keywords
- module
- signal
- conductance
- network layer
- adjustable
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 157
- 238000000034 method Methods 0.000 title claims abstract description 116
- 238000012549 training Methods 0.000 title claims abstract description 103
- 238000006243 chemical reaction Methods 0.000 claims abstract description 95
- 238000005070 sampling Methods 0.000 claims abstract description 46
- 238000012545 processing Methods 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 claims description 72
- 238000009825 accumulation Methods 0.000 claims description 31
- 230000001105 regulatory effect Effects 0.000 claims description 29
- 239000011159 matrix material Substances 0.000 claims description 23
- 238000001914 filtration Methods 0.000 claims description 13
- 230000003321 amplification Effects 0.000 claims description 8
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 8
- 238000012546 transfer Methods 0.000 abstract description 3
- 239000010410 layer Substances 0.000 description 231
- 230000006870 function Effects 0.000 description 37
- 230000004913 activation Effects 0.000 description 19
- 239000013598 vector Substances 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 239000004020 conductor Substances 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 229940050561 matrix product Drugs 0.000 description 9
- 230000000694 effects Effects 0.000 description 8
- 230000033228 biological regulation Effects 0.000 description 6
- 239000003990 capacitor Substances 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 125000004122 cyclic group Chemical group 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000007599 discharging Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 210000000225 synapse Anatomy 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000003920 cognitive function Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000003792 electrolyte Substances 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- 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/15—Correlation function computation including computation of convolution operations
-
- 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
-
- 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/048—Activation functions
-
- 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/08—Learning methods
-
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17704—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Image Analysis (AREA)
Abstract
本发明公开一种基于电导可调器件的神经网络训练操作系统及方法,所述系统包括:第一电压转换模块用于将上一网络层的正向输出信号转换为输入电压信号;可调电导模块用于处理输入电压信号,输出第一电流信号,同时用于处理反向输入电压信号,输出第二电流信号;第一比较模块用于将第一电流信号进行比较;采样保持模块用于对比较结果进行采样,输出当前网络层的正向输出信号和导数信号;乘积模块用于将下一网络层的反向误差信号与导数信号相乘;第二电压转换模块将相乘结果转换为反向输入电压信号;第二比较模块将第二电流信号进行比较,输出当前网络层的反向误差信号。上述方法使网络层之间的信息传递均为二值化形式,节约了计算资源并减少了功耗。
Description
技术领域
本发明涉及集成电路技术领域,特别涉及一种基于电导可调器件的神经网络训练操作系统及方法。
背景技术
近年来人工智能的进步离不开以深度学习为代表的人工神经网络(Artificialneural network,简称神经网络)的发展。由于其规模的不断扩大,人工神经网络越来越依赖数据规模和计算能力的提升。但是,现有基于冯·诺依曼体系构架的计算机系统所能提供的数据处理和计算能力面临越来越多的瓶颈。基于新型电子器件和新型计算构架的人工智能系统成为近年来科学和技术研究的热点。
其中,神经网络由多层相互连接的网络节点层组成。信息由输入层逐层正向传播到输出层,以完成对信息的处理,实现识别、分类等认知功能,这一过程称为推理过程。为了实现准确地推理,神经网络需要在输入大量标记数据的基础上,按照特定规则(即学习算法)调整各网络层中节点连接的权重,这一过程称为训练或者学习过程。通常可以以权重矩阵的形式描述某一层神经网络中大量输入节点和输出节点之间的高密度连接。
并且,在信息的正向传播过程中,神经网络中每一层的输入节点的信息集合可以看做一个向量。这个向量与权重矩阵相乘的结果是另外一个向量,即输出向量。输出向量经过激活函数处理后的信息,代表输出节点信息,作为下一层神经网络的输入。在传统的数据存储与运算分离的冯·诺依曼体系构架的计算机系统中,上述向量矩阵乘积运算需要运算单元不断地从数据存储空间中读取数据和写入数据,造成较高的功耗和延迟。
为缓解这一问题,可以采用具有一定电阻值或电导值的电子器件组成的一个阵列来存储整个权重矩阵的数据。同时,当它们组成交叉阵列结构时,配合外围电路,可以利用欧姆定律和基尔霍夫电流定律一步实现向量矩阵乘积运算。这样的硬件电路,同时实现了权重信息的存储和向量矩阵乘积运算,高效、低功耗地完成神经网络中的信息正向传播。因为数据运算过程在数据存储的空间内完成,所以又称“存内计算”。其中,具有可调电导功能的电子器件,包括阻变存储器、铁电存储、浮栅型存储器、磁存储器、相变存储器等,可以模拟网络节点之间连接权重的可调性或可塑性。这些器件同时模拟了生物系统中突触的可塑性,因此又称人工突触器件。调节可调电导器件的电导,就实现了神经网络中权重的更新,这样就实现了神经网络的训练。
但是,现有的基于电导可调器件的硬件神经网络,存有以下几个问题。首先,神经网络的训练通常采用离线形式,即在传统计算平台上完成神经网络的训练后,再将训练好的权重信息映射并写入到基于电导可调器件的硬件网络中。这样的神经网络仅能够加速神经网络推理过程,神经网络的训练仍然需要消耗较多的计算资源。其次,交叉阵列的外围电路较为复杂。为实现基于欧姆定律和基尔霍夫电流定律的向量矩阵乘积运算,需要在交叉阵列的一端施加精确的电压并在另一端精确地检测电流。这通常需要高精度的数模转换、模数转换电路模块。而这些高精度的电路模块在芯片中实现的成本和运行时的功耗都很高。最后,电导可调器件的非理想特性极大地影响了神经网络离线或在线的训练效果和推理准确度。
因而现有技术还有待改进和提高。
发明内容
本发明的主要目的在于提供一种基于电导可调器件的神经网络训练操作系统及方法,旨在解决现有技术中基于电导可调器件的硬件神经网络在训练和推理过程中,消耗计算资源多且功耗大的问题。
为了达到上述目的,本发明采取了以下技术方案:
一种基于电导可调器件的神经网络训练操作系统,由多个相互连接的网络层组成,其特征在于,所述基于电导可调器件的神经网络训练操作系统中的一个典型网络层包括:第一电压转换模块、可调电导模块、第一比较模块和采样保持模块;
所述第一电压转换模块与上一网络层的正向输出单元相连接;所述第一电压转换模块、所述可调电导模块、所述第一比较模块以及所述采样保持模块依次连接;
所述第一电压转换模块用于读取所述上一网络层的正向输出单元中的正向输出信号,并将所述正向输出信号转换为输入电压信号后,传输至所述可调电导模块;所述可调电导模块用于对所述输入电压信号进行处理,并将得到的第一电流信号传输至所述第一比较模块;所述第一比较模块用于将所述第一电流信号中的电流大小进行比较,输出比较信号至所述采样保持模块;所述采样保持模块中的正向输出单元用于对所述比较信号进行单次采样操作,获得本网络层的正向输出信号,以及用于对所述比较结果进行多次采样操作和逻辑运算操作,获得本网络层的导数信号;
其中,所述可调电导模块的输入电压信号和第一电流信号为模拟电学信号;所述上一网络层的正向输出信号、所述第一比较模块的比较信号、本网络层的正向输出信号和本网络层的导数信号均为二值化的数字信号。
所述基于电导可调器件的神经网络训练操作系统中,所述网络层还包括:乘积模块、第二电压转换模块和第二比较模块;
所述乘积模块、所述第二电压转换模块、所述可调电导模块和所述第二比较模块依次连接,所述乘积模块还与所述采样保持模块连接;
所述乘积模块用于将所述本网络层的导数信号与下一个网络层的反向输出信号相乘后,将相乘结果传输至第二电压转换模块;所述第二电压转换模块用于将所述相乘结果转换为反向输入电压信号后,传输至所述可调电导模块;所述可调电导模块还用于对所述反向输入电压信号进行处理,并将得到的第二电流信号传输至所述第二比较模块;所述第二比较模块还用于将所述第二电流信号中的电流大小比较操作,得到本网络层的反向输出信号;
其中,所述可调电导模块的反向输入电压信号和第二电流信号为模拟电学信号;所述下一个网络层的反向输出信号、所述本网络层的反向输出信号均为二值符号化的误差信号;所述乘积模块的相乘结果为三值化的误差信号。
所述基于电导可调器件的神经网络训练操作系统中,所述网络层还包括:梯度累计模块和电导调节模块;
所述电导调节模块分别与所述梯度累计模块和所述可调电导模块连接,所述梯度累计模块还与所述第一电压转换模块、所述乘积模块和所述第二电压转换模块连接;
所述梯度累计模块用于根据上一个网络层的正向输出信号和所述乘积模块的相乘结果计算得到梯度信号,并进行累计;所述梯度累计模块还用于根据所述梯度信号的累计结果输出电导调节指令至所述电导调节模块;所述电导调节模块用于根据所述电导调节指令对可调电导模块中目标单元的电导进行调节;
其中,所述梯度信号为三值符号化的信号;所述梯度信号的累计结果为有符号的整数;所述电导调节指令包含所需调节电导单元的位置信息、电导调节的方向及幅值。
所述基于电导可调器件的神经网络训练操作系统中,所述网络层还包括:噪声产生模块;所述噪声产生模块与所述第一比较模块连接;所述噪声产生模块用于在所述第一电流信号中加入噪声电流,使第一比较模块的比较结果随机化;
所述噪声电流为模拟信号;所述噪声电流由可调电导模块中电子器件的本征噪声或第一比较模块中的本征噪声来提供。
所述基于电导可调器件的神经网络训练操作系统中,所述可调电导模块包括:(m+1)*(n+1)-1个可调电导器件;
其中,m*(n+1)个可调电导器件组成m行乘(n+1)列的可调电导矩阵用于处理输入电压信号,输出第一电流信号;在m行中每一行上(n+1)个可调电导器件的一端相互连接,在(n+1)列中每一列上m个可调电导器件的另一端相互连接;在m行中每一行上(n+1)个可调电导器件的一端还与第一电压转换模块中的一个电压转换单元相连接;在(n+1)列中每一列上m个可调电导器件的另一端还与第一比较模块中的一个比较器单元相连接;
其中,(m+1)*n个可调电导器件组成(m+1)行乘n列的可调电导矩阵用于处理反向输入电压信号,输出第二电流信号;在(m+1)行中每一行上n个可调电导器件的一端相互连接,在n列中每一列上(m+1)个可调电导器件的另一端相互连接;在(m+1)行中每一行上n个可调电导器件的一端还与第二比较模块中的一个比较器单元相连接;在n列中每一列上(m+1)个可调电导器件的另一端还与第二电压转换模块中的一个电压转换器单元相连接;其中,m和n均为正整数。
所述基于电导可调器件的神经网络训练操作系统中,所述梯度累计模块包括:m*n个计数器;m*n个计数器组成m行乘n列的计数器矩阵,在m行中每一行上n个计数器的一端相互连接,在n列中每一列上m个计数器的另一端相互连接。
所述基于电导可调器件的神经网络训练操作系统中,所述噪声产生模块包括:分压单元、滤波单元、第四运算放大单元和噪声转换单元;所述分压单元、所述滤波单元、所述第四运算放大单元和所述噪声转换单元依次连接;所述分压单元用于对电源进行分压,并输出分压电压至所述滤波单元;所述分压电压包含了电阻的热噪声;所述滤波单元对所述分压电压进行滤波,并将得到的噪声电压传输至所述第四运算放大单元;所述第四运算放大单元用于对所述噪声电压进行放大,并将放大后的噪声电压传输至所述噪声转换单元;所述噪声转换单元用于将放大后的噪声电压转换为噪声电流,并传输至所述第一比较模块。
所述基于电导可调器件的神经网络训练操作系统中,所述第一比较模块包括:第一电阻、第二电阻、第一运算放大器、第二运算放大器和第三运算放大器;所述第一电阻的一端、所述第一运算放大器的输出端、所述第三运算放大器的正向输入端连接,所述第一电阻的另一端分别与所述可调电导模块和所述第一运算放大器的反向输入端连接,所述第一运算放大器的正向输入端接地;所述第二电阻的一端、所述第二运算放大器的输出端、所述第三运算放大器的反向输入端连接,所述第二电阻的另一端分别与所述可调电导模块、所述噪声转换单元和所述第二运算放大器的反向输入端连接,所述第二运算放大器的正向输入端接地。
所述基于电导可调器件的神经网络训练操作系统中,所述采样保持模块包括:正向输出单元和导数单元;所述正向输出单元和所述导数单元均与所述第三运算放大器的输出端相连接;
所述正向输出单元用于将所述第一比较模块的比较信号进行单次采样操作,得到所述本网络层的正向输出信号;所述导数单元用于将所述比较信号进行多次采样操作,并进行逻辑运算操作,得到所述本网络层的导数信号;
其中,所述正向输出信号传输至下一层网络的第一电压转换模块;所述导数信号用于本网络层的乘积模块。
所述基于电导可调器件的神经网络训练操作系统中,所述正向输出单元包括:第一触发器和第一时钟信号;所述第一触发器的数据输入端与所述第三运算放大器的输出端相连接;所述第一时钟信号与所述第一触发器的时钟信号端连接。
所述基于电导可调器件的神经网络训练操作系统中,所述导数单元包括:第二触发器、第三触发器、逻辑门和第二时钟信号;所述第二触发器的数据输入端与所述第三运算放大器的输出端连接;所述第二时钟信号分别与所述第二触发器的时钟输入端和所述第三触发器的时钟输入端连接;所述第二触发器的输出端分别与所述第三触发器的数据输入端和所述逻辑门的第一输入端连接;所述第二触发器的输出端与所述逻辑门的第二输入端连接;所述逻辑门对第一输入端的信号进行逻辑非操作后与第二输入端的信号进行逻辑与操作。
一种基于电导可调器件的神经网络训练操作方法,所述基于电导可调器件的神经网络训练操作方法适用于如上所述的基于电导可调器件的神经网络训练操作系统,基于电导可调器件的神经网络应用于以下神经网络训练的操作方法:信息的正向传播、误差的反向传播和网络权重的更新,所述基于电导可调器件的神经网络训练操作方法包括以下步骤:
在进行信息的正向传播过程中,所述第一电压转换模块读取上一网络层的正向输出单元中的正向输出信号,并将所述正向输出信号转换为输入电压信号后,传输至所述可调电导模块;
所述可调电导模块对所述输入电压信号进行处理,并将得到的第一电流信号传输至所述第一比较模块;
所述第一比较模块将所述第一电流信号中的电流大小进行比较,输出比较信号至所述采样保持模块;
所述采样保持模块对所述比较信号进行单次采样操作,获得本网络层的正向输出信号;
所述采样保持模块对所述比较信号进行多次采样操作和逻辑运算操作,获得本网络层的导数信号;
其中,所述本网络层的正向输出信号作为下一网络层的第一电压转换模块的输入;所述本网络层的导数信号用于误差反向传播。
所述基于电导可调器件的神经网络训练操作方法中,所述基于电导可调器件的神经网络训练操作方法还包括:
在进行误差的反向传播过程中,乘积模块将所述本网络层的导数信号与下一个网络层的反向输出信号相乘后,将相乘结果传输至第二电压转换模块;
所述第二电压转换模块将所述相乘结果转换为反向输入电压信号后,传输至所述可调电导模块;
所述可调电导模块对所述反向输入电压信号进行处理,并将得到的第二电流信号传输至第二比较模块;
所述第二比较模块将所述第二电流信号中的电流大小比较操作,得到本网络层的反向输出信号;
其中,所述本网络层的乘积模块的输入来自所述本网络层的导数信号与下一个网络层的反向输出信号;所述本网络层的反向输出信号用于上一网络层的乘积模块。
所述基于电导可调器件的神经网络训练操作方法中,所述基于电导可调器件的神经网络训练操作方法还包括:
在网络权重的更新过程中,梯度累计模块根据上一个网络层的正向输出信号和本网络层中乘积模块的乘积结果计算得到梯度信号,并进行累计;
所述梯度累计模块根据所述梯度信号的累计结果输出电导调节指令至所述电导调节模块;
所述电导调节模块根据所述电导调节指令对可调电导模块中目标单元的电导进行调节。
相较于现有技术,本发明提供的一种基于电导可调器件的神经网络训练操作系统及方法,所述系统包括:第一电压转换模块用于将上一网络层的正向输出信号转换为输入电压信号;可调电导模块用于处理输入电压信号,输出第一电流信号,同时用于处理反向输入电压信号,输出第二电流信号;第一比较模块用于将第一电流信号进行比较;采样保持模块用于对比较结果进行采样,输出当前网络层的正向输出信号和导数信号;乘积模块用于将下一网络层的反向误差信号与导数信号相乘;第二电压转换模块将相乘结果转换为反向输入电压信号;第二比较模块将第二电流信号进行比较,输出当前网络层的反向误差信号。使网络层之间的信息传递均为二值化形式,简化了在信息正向传播和误差反向传播过程中在可调电导阵列周围施加输入电压和检测输出电流的复杂操作,简化了网络权重更新过程中可调电导阵列电导调节的操作电路和流程。所述系统与方法节约了计算资源和减少了功耗。
附图说明
图1为本发明提供的现有技术中神经网络中某一层的典型结构和信息正向传播的示意图;
图2为本发明提供的采用可调电导阵列完成向量矩阵乘积运算和激活函数运算的等效电路结构图;
图3为本发明提供的在信息进行正向传播过程中可调电导矩阵的连接简图;
图4为本发明提供的在信息进行反向传播过程中可调电导矩阵的连接简图;
图5为本发明提供的在神经网络训练过程中计数器矩阵的连接简图;
图6为本发明提供的基于电导可调器件的神经网络训练操作系统的较佳实施例的原理框图;
图7为本发明提供的在信息进行正向传播过程中可调电导矩阵的连接示意图;
图8为本发明提供的基于电导可调器件的神经网络训练操作方法的较佳实施例中采样输出的触发器的时钟信号示意图;
图9为本发明提供的在信息进行反向传播过程中可调电导矩阵的连接示意图;
图10为本发明提供的在神经网络训练过程中计数器矩阵的连接示意图;
图11为本发明提供的基于电导可调器件的神经网络训练操作方法的较佳实施例中梯度积累和权重更新过程的流程图;
图12为本发明提供的基于电导可调器件的神经网络训练操作方法的较佳实施例中在神经网络的输出层通过投票的方式进行推理的流程图;
图13为本发明提供的基于电导可调器件的神经网络训练操作方法的较佳实施例中信息的正向传播过程的流程图;
图14为本发明提供的基于电导可调器件的神经网络训练操作方法的较佳实施例中误差的反向传播过程的流程图;
图15为本发明提供的基于电导可调器件的神经网络训练操作方法的较佳实施例中网络权重的更新过程的流程图。
附图标记:
1:基于电导可调器件的神经网络训练操作系统;2:上一网络层;3:本网络层;4:下一网络层;
205-1:上一网络层的正向输出单元;206:上一网络层的乘积模块;
301:第一电压转换模块;302:可调电导模块;303:第一比较模块;304:噪声产生模块;305:采样保持模块;305-1:正向输出单元;305-2:导数单元;306:乘积模块;307:第二电压转换模块;308:第二比较模块;309:梯度累计模块;310:电导调节模块;
401:下一网络层的第一电压转换模块;408:下一网络层的第二比较模块;
R1:第一电阻;R2:第二电阻;R3:第三电阻;R4:第四电阻;R5:第五电阻;P1:第一运算放大器;P2:第二运算放大器;P3:第三运算放大器;P4:第三运算放大器;D1:第一触发器;D2:第二触发器;D3:第三触发器;C1:第一电容;U1:逻辑门;C:计数器;G:可调电导器件;Q:MOS管。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
为了方便理解本申请实施例,首先在此介绍本发明实施例涉及到的背景技术。
图1为神经网络中某一层的典型结构和信息正向传播的示意图。以有m个输入节点和n个输出节点的网络层为例进行说明。那么,网络层的输入,即m个输入节点的信息,用m个数值x1,x2,…,xi,…,xm来表示,也可以用它们的向量形式X=[x1,…,xm]来描述。网络层的参数,即连接输入节点和输出节点的权重,用m×n个数值w11,w12,…,wij,…,wmn来描述,也可以用它们的矩阵形式来描述。网络层的输出节点的输入信息,用n个数值y1,…,yj,…,yn来表示,也可以用它们的向量形式Y=[y1,…,yn]来描述。网络层的输出节点的输入信息,由网络层的输入节点信息和网络层的参数共同决定。它们的数学关系可以描述为:
或Y=X·W,(2);
公式(2)中的向量矩阵乘积运算是神经网络中需要大量执行的运算。在传统冯·诺依曼计算机体系中执行公式(2)中的运算需要按照公式(1)所描述的运算过程对所有输入向量的元素和权重矩阵的元素逐一进行乘积运算并逐一将乘积结果累加,且所有元素的数值采用高精度的浮点数来描述。网络层的输出节点的输入信息(y1,…,yj,…,yn)还需要通过激活函数作用后获得网络层的输出(z1,…,zj,…,zn),表示为:
zj=f(yj),j=1,…,n, (3);
其中,f(·)为激活函数。激活函数的运算也需要在高精度的浮点数的计算模式下完成,消耗一定的计算资源。
典型的神经网络由多层上述单层网络组成,且本网络层的输入来自于前一层网络的输出,本网络层的输出又作为后一层网络的输入。神经网络的第一层的输入是需要处理的信息,而最后一层的输出是最终的处理结果。如在典型的图像识别应用中,第一层的输入是图像的像素点信息,最后一层的输出为图像识别的结果。
上述单层神经网络是多种形式的神经网络的基本构件。例如,它可作为深度神经网络的全连接层,也可作为卷积神经网络的卷积核层或反馈式神经网络的前向连接层等。
图2为采用可调电导阵列完成上述向量矩阵乘积运算和激活函数运算的等效电路结构图。首先,利用可调电导阵列来代替神经网络的权重矩阵,即阵列中每个器件的电导(Gij)与参考电导(Gref)的差值(Gij-Gref)代表权重矩阵中的一个权重元素的数值(wij)。并且,可调电导阵列中器件的互连采用交叉阵列的形式:可调电导的一端连接到相互平行的水平导线上,另一端连接到相互平行的垂直导线上;水平导线和垂直导线的每个交叉点都有一个可调电导器件。其次,网络层的输入采用数模转换器(Digital-to-AnalogConverter,DAC)转换为模拟的电压(V1,V2,…,Vi,…,Vm),并将电压施加到可调电导阵列的输入端(即图2中的水平导线)。接下来,将可调电导阵列的输出端(即图2中的垂直导线)接地,测量输出电流(I1,…,Ij,…,In,Iref),并进行激活函数运算等后续处理。一般情况下,输出电流的测量和后续处理需要复杂电路的参与,如跨导放大器、采样保持电路、多路选择器模块、模数转换模块(Analog-to-Digital Converter,ADC)以及数字处理模块等。
那么,通过欧姆定律和基尔霍夫电流定律,可以得到可调电导阵列的输出电流:
将公式(4)和公式(5)相减后,得到:
将公式(6)与公式(1)对比,可以发现可调电导阵列中的器件电导(Gij-Gref)对应网络层的权重(wij),输入电压(Vi)对应网络层的输入(xi),输出电流(Ij-Iref)即对应网络层输出节点的输入(yj);这样就完成了公式(1)和公式(2)所需要的向量矩阵乘积运算。这一运算过程是在存储权重的电导阵列中完成的。而公式(6)中的电流差值的计算可以通过模拟电路的形式完成,也可以在完成模数转换后,在数字处理模块完成。
最后,采用数字处理模块执行公式(3)所描述的激活函数所需的运算,完成本网络层的输出。
其中,可调电导阵列中的可调电导器件有多种实现形式,例如阻变存储器、相变存储器、铁电存储器、磁存储器、浮栅型晶体管和电解质栅控晶体管等。在具体的实现形式中,可调电导器件并不局限于两端器件,例如串联选择管的1T1R结构的阻变存储器或相变存储器单元等三端结构的可调电导器件单元也可用于组成可调电导阵列。
由于可调电导阵列中单器件的电导只能为正值,为描述可能是负值的网络权重,在上述介绍中,采用了差分的等效电导,即单器件的电导减去参考器件的电导(Gij-Gref),来表示网络权重(wij)。图2中,采用了固定电导值的一列(即参考列)可调电导器件。等效地,也可以用两个可调电导和的差值来表示一个权重数值(wij)。可调电导的阵列形式和外围电路的设计和操作模式需作相应的调整。
在上述介绍中,采用模数转换器将本网络层的输出转换为数字信号,利用数字处理模块完成激活函数等功能后,作为下一层的输入。上一层的输出,即本层的输入也是数值信号,因此在外围电路的输入信号部分采用了数模转换器。等效地,也可以采用模拟电路完成信号的采样、完成激活函数的运算功能、并输入到下一层。采用模拟电路实现上述功能时,需要各个阶段的电学信号保持较高的精度。
以上为现有技术的介绍。但是,现有技术在提供了硬件神经网络基本构架和神经网络高效推理的同时,存在以下几个问题:
首先,神经网络的训练通常通常采用离线的形式,即神经网络的训练在传统计算平台上完成后,再将训练好的权重信息映射并写入到基于电导可调器件的硬件网络中。这样的神经网络仅能够加速神经网络推理过程,神经网络的训练仍然需要消耗较多的计算资源。
其次,交叉阵列的外围电路较为复杂。为实现基于欧姆定律和基尔霍夫电流定律的向量矩阵乘积运算,需要在交叉阵列的一端施加精确的电压并在另一端精确地检测电流。这通常需要高精度的数模转换、模数转换电路或其它精确控制输入电压和检测输出电流的专用电路,而这些电路在集成电路芯片中实现的成本和运行时的功耗都很高。
最后,电导可调器件存在很多非理想特性。例如,有限的电导取值范围、有限的可调电导状态、非线性的电流电压特性、非线性的电导调节行为、较高的电导调节误差、较高的读取误差等问题。这些非理想特性极大的影响了神经网络离线或在线训练的训练效果和推理准确度。
为了解决上述技术问题,本发明提供的一种基于电导可调器件的神经网络训练操作系统及方法。所述基于电导可调器件的神经网络训练操作方法可应用于神经网络中信息正向传播、误差反向传播和在线地进行权重调整,支持神经网络进行高准确度的在线训练,并支持神经网络训练完成后的高准确度的推理。
如图3所示,在信息正向传播过程中,本发明利用可调电导阵列的本征噪声或外部施加的噪声源,结合电流或者电压比较器电路和信号采样电路,使一个典型的网络层的输出转变为随机二值化、数字化的信号(取值为“0”或“1”)。此二值化、数字化的输出信号作为下一网络层的输入;从而使信息逐层正向传播。本网络层(当前网络层)的输入是上一网络层输出的二值化、数字化的信号,因此,可调电导阵列的模拟电压输入仅需要零电压和非零电压两种信号,可通过电压转换器(Level Shifter)来完成。同时,本发明通过对可调电导阵列的输出进行多次独立采样过程和逻辑处理,获得激活函数导数的随机二值化数字信号(取值为“0”或“1”)。
如图4所示,在神经网络的误差反向传播过程中,本发明复用上述可调电导阵列进行反向的信息处理。从上一网络层反向传播过来的二值符号化误差信号(取值为“-1”或“1”)与激活函数导数的随机二值化信号(取值为“0”或“1”)相乘后,获得三值化的误差信息(取值为“-1”,“0”或“1”)。当三值化、数字化的误差信息(取值为“-1”,“0”或“1”)输入到可调电导阵列时,仅需要负电压、零电压和正电压三种模拟信号,也可由电压转换器(LevelShifter)电路来完成。再结合电流比较器或者电压比较器电路,使可调电导阵列的反向输出转变为二值符号化、数字化的误差信息(取值为“-1”或“1”)。此二值符号化、数字化的误差信息再作为上一网络层的输入;从而使误差信息逐层反向传播。
如图5所示,在权重调整即神经网络训练过程中,本发明采用独立的计数器阵列积累权重梯度信息,当权重信息积累达到一定阈值时,再调整可调电导阵列中器件的电导,完成权重更新。这一方案使得权重调整能够达到可靠准确的训练效果,即在可调电导器件的非理想特性普遍存在的情况下依然能够使推理结果的准确度随训练周期的增加而可靠地提高。
下面通过具体示例性的实施例对基于电导可调器件的神经网络训练操作系统设计方案进行描述,需要说明的是,下列实施例只用于对发明的技术方案进行解释说明,并不做具体限定:
请参阅图6,本发明提供的一种基于电导可调器件的神经网络训练操作系统1,由多个相互连接的网络层组成,本实施例中以上一网络层2、本网络层3和下一网络层4为例,电导可调器件的神经网络系统中的本网络层3包括:第一电压转换模块301、可调电导模块302、第一比较模块303、噪声产生模块304、采样保持模块305、乘积模块306、第二电压转换模块307、第二比较模块308、梯度累计模块309和电导调节模块310。
所述第一电压转换模块301与上一网络层2的正向输出单元205-1相连接;所述第一电压转换模块301、所述可调电导模块302和所述第一比较模块303以及所述采样保持模块305依次连接;第一比较模块303同时与噪声产生模块304相连接。
所述第一电压转换模块301用于读取上一个网络层2中正向输出单元205-1中的正向输出信号,并将其转换为输入电压信号后,传输至所述可调电导模块302;所述可调电导模块302用于处理输入电压信号转换,输出第一电流信号,传输至所述第一比较模块303;所述噪声产生模块304用于产生电流,并将噪声电流传输至第一比较模块303;所述第一比较模块303用于将所述第一电流信号和噪声电流合并后依次进行电压转换和比较操作,并将得到的比较结果(比较信号)后,传输至所述采样保持模块305;所述采样保持模块305中的正向输出单元305-1用于对所述比较信号进行采样后获得当前网络层的正向输出信号;所述采样保持模块305中的导数单元305-2用于对所述比较信号进行多次采样和逻辑处理后获得当前网络层的导数信号。
其中,所述电导调节模块310是由电导可调节的电子器件单元组成的交叉阵列。所述可调电导模块302的输入电压信号和第一电流信号为模拟电学信号;所述上一网络层2的正向输出信号、所述第一比较模块的比较信号、本网络层3的正向输出信号和本网络层3的导数信号均为二值化的数字信号。
由于第一电流信号中叠加了噪声电流,第一比较模块303的输出是随机二值化的信号;正向输出信号和导数信号是第一比较模块采样的结果,因此它们随机地取值为“0”或“1”;但在可调电导模块302或第一比较模块303中有足够大的本征噪声时,也可不需要噪声电流模块304。
进一步地,所述乘积模块306、所述第二电压转换模块307、可调电导模块302和第二比较模块308依次连接。
所述乘积模块306同时与本网络层的导数单元305-2和下一网络层的第二比较模块408相连接,用于将所述当前网络层的导数信号与下一个网络层的反向输出信号相乘后,将相乘结果(合并信号)传输至第二电压转换模块307;所述第二电压转换模307块用于将所述相乘结果转换为反向输入电压信号后,传输至所述可调电导模块302;所述可调电导模块302还用于处理反向输入电压信号,输出第二电流信号,传输至所述第二比较模块308;所述第二比较模块308用于将所述第二电流信号中的电流大小比较操作,得到本网络层的反向输出信号;所述第二比较模块308还用于将反向输出信号传输至上一网络层2中的乘积模块206。
所述可调电导模块302的反向输入电压信号和第二电流信号为模拟电学信号;所述下一网络层的反向输出信号、本网络层的反向输出信号为二值符号化的误差信号(取值为“-1”或“1”);所述乘积模块306的相乘结果为三值化的误差信号(取值为“-1”,“0”或“1”)。
进一步地,所述梯度累计模块309同时与上一网络层的正向输出单元205-1,以及与本网络层的第一电压转换模块301、乘积模块306和第二电压转换模块307相连接;所述梯度累计模块309用于根据上一个网络层的正向输出信号和所述乘积模块的相乘结果计算得到梯度信号,并进行累计;所述梯度累计模块309还用于根据所述梯度信号的累计结果输出电导调节指令至所述电导调节模块310;所述电导调节模块310用于根据所述电导调节指令对可调电导模块302中目标单元的电导进行调节;其中,所述梯度信号为三值符号化的信号(取值为“-1”,“0”或“1”);所述梯度信号的累计结果为有符号的整数;所述电导调节指令包含所需调节电导单元的位置信息、电导调节的方向及幅值。
具体地,本发明中提出的所述基于电导可调器件的神经网络训练操作系统1,可应用于神经网络中信息正向传播(包括训练过程和推理过程)、误差反向传播和在线地进行权重调整,支持神经网络进行高准确度的在线训练,并支持神经网络训练完成后的高准确度的推理。那么,实现的过程如下:
在信息由输入层逐层正向传播到输出层的正向传播过程时,在一个典型的网络层(本网络层)3中,所述第一电压转换模块301、所述可调电导模块302和所述第一比较模块303以及所述采样保持模块305依次连接;所述第一比较模块303同时与噪声产生模块304相连接。
首先,所述第一电压转换模块301读取所述上一网络层2中正向输出单元205-1的正向输出信号(二值化正向输出信号,随机取值为“0”或“1”),将上一个网络层的正向输出信号转换为输入电压信号,从而将数字信号(正向输出信号)转变为读电压(输入电压信号),其中,数字信号为“0”时对应零电压,数字信号为“1”时对应读电压VR,读电压VR应足够小,不会引起可调电导器件(可调电导模块302中的单元器件)的状态发生变化,例如对于典型的阻变存储器件,可以采用VR=0.1V的读电压(也可采用VR=-0.1V的读电压,后续电路需要做相应的调整)。所述第一电压转换模块301同时将所述第一电压信号传输至所述可调电导模块302。
然后,所述可调电导模块302将处理所述输入电压信号,输出第一电流信号(包括Ij和Iref),并将所述第一电流信号传输至所述第一比较模块303;同时,所述噪声电流模块304将产生的噪声电流信号传输至所述第一比较模块303;所述第一比较模块303则将所述第一电流信号(叠加了所述噪声电流)依次进行电压转换和比较操作,得到随机波动地但仅为低电平或高电平(代表“0”或“1”)的数字信号(比较信号),并将所述比较信号传输至所述采样保持模块305。最后,所述采样保持模块305中的正向输出单元305-1对所述比较信号进行采样,得到当前网络层的正向输出信号(同样是二值化信号,随机取值为“0”或“1”);所述采样保持模块305中的导数单元305-2对所述比较信号进行采样和逻辑处理,得到导数信号(同样是二值化信号,随机取值为“0”或“1”)。
在神经网络系统的信息正向传播过程中,当前网络层输出随机二值化的正向输出信号(状态为“0”或“1”),作为后一层的输入。每层神经网络所对应的可调电导阵列的输入仅需要零电压和固定的读电压信号,不再需要高精度的数模转换电路或其他形式的高精度输入电压调节模块。且每层神经网络所对应的可调电导阵列(所述可调电导模块302)的输出电流仅用于比较模块的输入,电流的精确数值不需要读出,也不需要高精度的模数转换电路或其他形式的高精度电流读取模块,从而有效地节约了成本。
并且,随机二值化的正向输出信号的随机性包含了激活函数的功能,输出信号不需要像传统神经网络一样再通过特定的激活函数进行处理。同时,硬件电路也原位地获得了激活函数导数的二值化信号(状态为“0”或“1”),不需要额外的专门电路对激活函数进行求导运算,进一步有效地减少了设计成本。
进一步地,在误差信息由输出层逐层反向传播到输入层的误差反向传播过程中,在一个典型的网络层3中,所述乘积模块306、所述第二电压转换模块307、所述可调电导模块302、所述第二比较模块308依次连接;所述乘积模块306同时与本网络层的导数单元305-2和下一网络层的第二比较模块408相连接。
所述乘积模块306用于将所述本网络层的导数信号与下一个网络层的反向输出信号相乘后,将得到的乘积结果(合并信号)传输至第二电压转换模块307;所述第二电压转换模块307用于将所述合并信号转换为反向输入电压信号后,传输至所述可调电导模块302;所述可调电导模块302用于处理所述反向输入电压信号,输出第二电流信号后,传输至所述第二比较模块308;所述第二比较模块308用于将所述第二电流信号进行比较操作,得到所述当前网络层的反向输出信号;其中,所述反向输出信号用“-1”或“1”代表两种可能得比较结果,为二值符号化的误差信号。
本发明中进行误差的反向传播过程时,当前网络层输出是二值符号化的反向输出信号(状态为“-1”或“1”),与激活函数导数的二值化信号(状态为“0”或“1”)相乘后得到的所述相乘结果为三值化误差信号(状态为“-1”,“0”或“1”),以此作为第二电压转换模块307的输入。那么,每层神经网络所对应的可调电导阵列(所述可调电导模块302)的输入仅需要负电压信号、零电压信号和正电压信号,不再需要高精度的数模转换电路或其他形式的高精度的输入电压调节模块。且每层神经网络所对应的可调电导阵列的输出状态为“-1”或“1”,可以采用零电平和高电平信号描述,或负电压和正电压信号描述,不再需要高精度的模数转换电路或其他形式的高精度的电流读取模块,从而有效地节约了成本。
进一步地,在进行神经网络权重调整时,在一个典型的网络层3中:所述梯度累计模块309同时与上一网络层的正向输出单元205-1和本网络层的乘积模块306相连接;所述梯度累计模块309用于根据上一个网络层的正向输出信号和所述乘积模块的相乘结果计算得到梯度信号,并进行累计;所述梯度累计模块309还用于根据所述梯度信号的累计结果输出电导调节指令至所述电导调节模块310;所述电导调节模块310用于根据所述电导调节指令对可调电导模块302中目标单元的电导进行调节。
具体地,所述梯度累计模块309则对所述梯度信号进行累计,当积累的权重梯度信息达到一定阈值之后,再向电导调节模块310发出指令,对可调电导阵列中对应的器件的权重(即电导值)进行调整,例如:电导正向调节或电导负向调节。
本发明中由于采用上述信息二值化和符号化的处理,神经网络的输出误差函数相对于权重变化的梯度信息的数值仅为-1,0或1。因此,可以采用计数器阵列(所述梯度累计模块309)等低成本的方案积累权重梯度信息。而当积累的权重梯度信息达到一定阈值之后,再对可调电导阵列中对应的器件的权重(即电导值)进行调整。这极大地降低了对可调电导器件G的写操作次数。
并且,对阵列中器件电导值的调整可以采用循环读写(Closed-loop write&verify)的方式进行,也可以采用盲写(Blind write)的方式进行。其中盲写的方式只需要发送正向或反向电导调整的写入脉冲,不需要读取验证操作,对电导调整的绝对数值不需要精确控制。这一训练方案极大的降低了对可调电导器件G的理想写入特性(如线性电导变化、低写入波动等)的要求。
此外,本发明还提出了针对神经网络推理的两个优化方案。方案一:在上述信息正向传播方案中,去除噪声的影响,即不加入所述噪音电流产生模块,使网络层的正向输出信号转变为确定性的二值化信号。然后,此二值化的输出信号作为后一层网络的输入从而使信息逐层正向传播,完成推理过程。方案二:多次重复随机二值化信息的逐层正向传播过程,在神经网络的输出层通过投票的方式确定最终推理结果。
在本发明提出的所述基于电导可调器件的神经网络训练操作系统1中,仅信息正向传播的硬件部分用于神经网络的推理。通过直接采用神经网络训练中所用到的随机二值化的信息正向传播进行推理,会在一定幅度上造成推理准确率的下降。采用确定性二值化的正向传播方案进行神经网络推理将有效降低推理延迟,获得适中的推理准确度。而采用重复式随机二值化正向传播方案,神经网络的推理准确度随正向传播次数的增加而逐渐升高,可实现推理过程中推理延迟与推理准确度的平衡取舍。
下面结合更加详细的电路结构图和流程图,进一步对基于电导可调器件的神经网络训练操作系统设计方案进行描述,需要说明的是,下列实施例只用于对发明的技术方案进行解释说明,并不做具体限定:
首先,假设所述典型的网络层3中有m个输入节点和n个输出节点,则所述可调电导阵列包含(m+1)*(n+1)-1个可调电导器件;其中,m*n个可调电导器件的电导是在神经网络训练中是不断调整和更新的;(m+n)可调电导器件的电导在神经网络初始化的过程中被设置为固定电导Gref;m和n均为正整数。
所述可调电导阵列中,m*(n+1)个可调电导器件组成m行乘(n+1)列的可调电导矩阵用于信息的正向传播过程中,用于处理正向输入电压信号,输出第一电流信号;(m+1)*n个可调电导器件组成(m+1)行乘n列的可调电导矩阵用于误差的反向传播过程中,用于处理反向输入电压信号,输出第二电流信号。
下面参阅图6、图7、图8,对信息正向传播过程进行说明。
请参阅图7,m个第一电压转换器组成电压转换模块301;n个第一比较器组成第一比较模块303;n个噪声电流产生电路组成噪声产生模块304;n个正向输出单元和n个导数单元组成采样保持模块305。
电压转换模块301中的每个第一电压转换器连接到上一网络层的采样保持模块205-1中对应的正向输出单元。
可调电导模块302中有m*(n+1)个可调电导器件G参与信息正向传播过程。m*(n+1)个可调电导器件G组成m行乘(n+1)列的可调电导矩阵,在m行中每一行上(n+1)个可调电导器件G的一端均连接,在(n+1)列中每一列上m个可调电导器件G的另一端均连接;其中,第(n+1)列上的m个可调电导器件G属于参考组,用于提供所述第一电流信号中的参考电流Iref,而第1列至第n列上m个可调电导器件G属于普通实验组,用于提供所述第一电流信号中的电流Ij,其中j为1到n之间的任意一个数字。并且,所有的垂直线路作为可调电导阵列的输出端,连接到所述第一比较模块303中的第一比较器的输入端,所有的水平线路则作为可调电导阵列的输入端,连接到所述第一电压转换模块301中的第一电压转换器的输出端。
更进一步地,请继续参阅图7,所述噪声产生模块304包括n个噪声电流产生电路,所述噪声电流产生电路包括:分压单元(R3、R4)、滤波单元(C1)、放大单元(P4)和噪声转换单元(R5);所述分压单元、所述滤波单元、所述放大单元和所述噪声转换单元依次连接;所述分压单元用于对电源进行分压,并输出分压电压至所述滤波单元;所述分压电压包含了电阻的热噪声;所述滤波单元对所述分压电压进行滤波,滤掉分压电压中的直流成分,仅剩余较小的噪声电压;所述滤波单元将所述噪声电压传输至所述放大单元;所述放大单元用于对所述噪声电压进行放大,并将放大后的噪声电压传输至所述噪声转换单元;所述噪声转换单元用于将放大后的噪声电压转换为噪声电流,并传输至所述第一比较模块303中的第一比较器。噪声电流产生电路的引入,使本网络层的输出转变为随机二值化的信号。
更进一步地,继续参阅图7,所述第一比较器包括:第一电阻R1、第二电阻R2、第一运算放大器P1、第二运算放大器P2和第三运算放大器P3;所述第一电阻R1的一端、所述第一运算放大器P1的输出端、所述第三运算放大器P3的正向输入端连接,所述第一电阻R1的另一端分别与所述可调电导模块200和所述第一运算放大器P1的反向输入端连接,所述第一运算放大器P1的正向输入端接地;所述第二电阻R2的一端、所述第二运算放大器P2的输出端、所述第三运算放大器P3的反向输入端连接,所述第二电阻R2的另一端分别与所述可调电导模块、所述噪声调控单元和所述第二运算放大器P2的反向输入端连接,所述第二运算放大器P2的正向输入端接地。
具体地,本发明中有n个所述第一比较器组成第一比较模块303,其中n个所述第一比较器与前n列垂直线路一一对应相连,每一个所述第一比较器还均与第n+1列垂直线路连接。此时,第1列至第n列上每一垂直线路均分别与n个所述第一比较器中所述第二电阻R2的另一端、所述噪声调控单元和所述第二运算放大器P2的反向输入端连接,第(n+1)列的垂直线路均分别与n个所述第一比较器中所述第一电阻R1的另一端和所述第一运算放大器P1的反向输入端连接。
更进一步地,所述采样保持模块305包括:正向输出单元305-1和导数单元;所述所述正向输出单元和导数单元分别与所述第三运算放大器P3的输出端连接;所述正向输出单元用于第一比较器输出的比较信号进行单次采样操作,得到所述当前网络层的正向输出信号;所述导数单元用于将所述比较信号进行两次采样操作并进行逻辑操作,得到所述当前网络的导数信号。
更进一步地,所述采样保持模块305的正向输出单元305-1包括:第一触发器D1和第一时钟信号(clk_ol);所述第一触发器D1的数据输入端分别与所述第一触发器D1的输出端和所述第三运算放大器P3的输出端连接;所述第一时钟信号与所述第一触发器D1的时钟信号端连接。
并且,所述采样保持模块305的导数单元305-2包括:第二触发器D2、第三触发器D3、逻辑门U1和第二时钟信号(clk_dl);所述第二触发器D2的数据输入端也与所述第三运算放大器P3的输出端连接,所述第二时钟信号分别与所述第二触发器D2的时钟输入端和所述第三触发器D3的时钟输入端连接,所述第二触发器D2的输出端分别与所述第三触发器D3的数据输入端和所述逻辑门U1的第一输入端连接;所述第三触发器D3的输出端与所述逻辑门U1的第二输入端连接。
具体地,本发明中所述采样保持模块305由n个正向输出单元和n个导数单元组成。其中,n个所述正向输出单元305-1与n个所述第一比较器一一对应连接,n个所述导数单元305-2与n个所述第一比较器一一对应连接。
在信息进行正向传播的过程中,基于电导可调节的神经网络系统中一个网络层的工作流程为:
首先,将上一网络层输出的正向输出信号(取值为“0”或“1”随机二值化信号)作为本网络层的输入信号中。随后,采用电压转换器(第一电压转换模块301)将上一网络层正向输出单元中触发器中的数字信号转变为读电压(第一电压信号)施加到可调电导阵列的输入端(即水平导线上),其中,数字信号为“0”时对应零电压,数字信号为“1”时对应读电压VR。这里需要要读电压VR应足够小,不会引起电调电导器件的状态发生变化,例如对于典型的阻变存储器件,可以采用VR=0.1V的读电压(也可采用VR=-0.1V的读电压,那么后续电路需要做相应的调整)。
其中,可调电导阵列(可调电导模块302)的输出端(即垂直导线)连接到跨导放大器的反向输入端。跨导放大器的正相输入端接地,此时反向输入端虚地。这样,可调电导阵列的普通列(前n列垂直线路)的电流Ij和参考列(第(n+1)列垂直线路)的电流Iref分别表示为以及 同时,在可调电导阵列的输出端加入噪声电流Inoise,得到所述合并电流。其中,噪声电流的产生可以有多种形式,图7插图中所示的是采用放大电阻热噪声的形式产生噪声电流。而可调电导阵列上的参考列的输出端可不加入噪声电流。
然后,所述跨导放大器将电流转变为电压(和其中,RT为跨导放大器的反馈电阻的阻值,所述第一电阻R1和所述第二电阻R2均是反馈电阻)后,用电压比较器(第三运算放大器P3)对可调电导的普通列和参考列所对应电压(和)进行比较。其中,由跨导放大器和电压比较器组成所述第一比较器300。比较器的输出结果是仅为低电平或高电平(代表“0”或“1”)的数字信号(比较信号)。由于噪声电流的存在,所述比较器的输出结果是随机波动的。
其次,利用触发器(第一触发器D3)在时钟上升沿对电压比较器的输出结果进行采样并保持,采用结果作为本网络层(上角标表l示本层)的输出,即输出当前网络层的正向输出信号,并作为后一网络层(l+1层)的输入在接下来的两个时钟周期内,采用另外的触发器电路(由第二触发器D2和第三触发器D3构成)和逻辑电路(逻辑门U1)对电压比较器(第三运算放大器P3)的结果进行采样、逻辑处理并保持,输出结果作为激活函数的导数信息,即输出当前网络层的导数信号,用于后续的误差反向传播过程。其中,图8显示了在图7的电路结构中各模块协调完成上述的信息输入、采样输出的触发器时钟信号,其中,clk_ol为所述第一时钟信号;clk_dl为所述第二时钟信号;clk_ol-1为所述上一网络层的第一时钟信号。
下面对上述正向信息传播操作的效果进行分析:
假设噪声电流服从期望为0方差为的高斯分布,即那么图7中电压比较器(P3)输出的数字信号为高电平的概率(即网络层正向输出为“1”的概率)为:
即表示噪声电流Inoise小于(Ij-Iref)的累积概率。并且,根据高斯分布的累积概率分布,公式(7)变形得到:
其中,erf(·)为误差函数。公式(8)与神经网络中常用的激活函数Logistic函数(S形函数中的一种,S型函数是BP神经网络中常用的非线性作用函数,即sigmoid函数)近似,即:
其中,
最后,在导数采样电路中,利用所述第二触发器D2和所述第三触发器D3对公式(8)或公式(9)所表述的信号进行两次独立采样,利用所述逻辑门U1对其中的一次采样的结果进行逻辑非(NOT)操作后再与另一次采样的结果进行逻辑与(AND)操作。
那么,导数信息(当前网络层的导数信号)可表示为:
其中,和分别表示对进行一次独立采样和另一次独立采样的结果。因为,和的取值只能是“0”或“1”,的取值也只能是“0”或“1”,则当前网络层的导数信号取值为“1”的概率为:
那么,从公式(9)和公式(11)可以看出,与采用Logistic激活函数的传统神经网络相比,本发明所提出的网络层输出和导数信息虽然是二值化的,但是它们为“1”的概率遵循Logistic函数和Logistic函数的导数的形式。
其中,公式(9)所体现的激活函数的功能,是电路结构和噪声电流的概率密度共同作用的结果。公式(10)所体现的激活函数的导数的运算,是采样电路和逻辑电路共同作用的结果。实际应用中,网络层的输出(当前网络层的正向输出信号)和导数信息的输出(当前网络层的导数信号)仅需要一次结果输出,不需要连续采样获得它们为“1”的概率。
其中,网络层的输出需要采用触发器(第一触发器D1)进行一次采样,导数信息的输出需要采用触发器电路(第二触发器D2和第三触发器D3)进行两次采样。这三次采样必须独立进行。非独立的采样会使导数信息的输出永远为“0”或后续神经网络训练效果明显降低。本示例中,三次独立采样是利用触发器在不同的时钟周期(如图8所示)上完成。
另外,图7采用了外加噪声电流的方式实现二值化输出信息的随机性,等效地,也可以采用电路中的本征噪声来实现输出的随机性。例如可调电导阵列器件的热噪声、1/f噪声,跨导放大电路的噪声,或比较器的噪声等,都可作为输出随机性的来源。噪声的相对大小可以通过调整信噪比和电路中各模块的带宽的方式来实现。
下面参阅图6、图9,对误差信息的反向传播过程进行说明:
其中,如图9所示,所述乘积模块306包括:n个MOS管Q;每一个晶体管的源极(或漏极)均接入下一个网络层的反向输出信号,每一个晶体管的栅极均接入当前网络层的导数信号,每一个晶体管的漏极(或源极)均接所述第二电压转换模块307。
具体地,当信号进行反向传播的过程时,此时,将所述乘积模块306、所述第二电压转换模块307、所述可调电导模块302和所述第二比较模块308依次连接,并将信号从第二比较模块308传输至所述上一网络层的乘积模块后输出,从而完成信号的反向传播的过程:
首先,所述乘积模块306将所述当前网络层的导数信号(二值化信号,随机取“0”或“1”,对应图9中的)与下一个网络层的反向输出信号(二值符号化的误差信号,取值为“-1”或“1”,对应图9中的)相乘,并将得到的所述合并信号(三值化误差信号,取值为“-1”,“0”或“1”,对应图9中的)传输至所述第二电压转换模块307。然后,所述第二电压转换模块307将所述合并信号转换为第二电压信号(对应图9中的读电压VR)后,传输至所述可调电导模块302;所述可调电导模块302则将所述第二电压信号转换为第二电流信号(对应图9中的Ii和Iref)后,传输至所述第二比较模块308。最后,所述第二比较模块308将所述第二电流信号依次进行电压转换和比较操作,得到所述当前网络层的反向输出信号(二值符号化的误差信号,取值为“-1”或“1”)。
二值符号化信号的两个取值可以分别用负电压信号和正电压信号来表示;三值化误差信号的三个取值可以分别用负电压信号、零电压信号和正电压信号来表示。采用电压转换器(所述第二电压转换模块307)将所述三值化误差信号转变为模拟的读电压信号,并施加到可调电导阵列的输入端(即垂直导线上)。例如,取值为-1,0或1的三值化的误差可分别对应读电压VR,0V和-VR。并且,读电压VR应足够小,不会引起可调电导器件G的状态发生变化,例如对于典型的阻变存储器件,可以采用VR=0.1V的读电压(也可采用VR=-0.1V的读电压,那么,后续比较器电路的输入连接方式需要做相应的调整)。
再者,在可调电导阵列的输出端(即水平导线上),通过跨导放大器将输出端虚地并将输出电流转变为电压。随后采用电压比较器获得误差反向传播的结果。电压比较器的输出应为二值化、符号化的误差信号,取值为“-1”或“1”,可分别采用负电压信号和正电压信号来表示。那么,符号化的误差输出作为前一层网络反向传播的误差的输入。
其中,图9完成的功能可通过公式(12)和公式(13)来体现:
其中,函数sign(·)为符号函数。
下面参阅图5、图6、图10、图11,对神经网络的梯度更新(网络权重的更新)过程进行进一步说明:
更进一步地,如图5和图10所示,所述梯度累计模块309包括:m*n个计数器C;由m*n个计数器C组成m行乘n列的计数器阵列,在每一行的线路上有n个计数器C的一端连接,在每一列的线路上有m个计数器C的另一端连接。
其中,所有的垂直线路和水平线路作为计数器阵列的两个输入端,所述水平线路上接入上一个网络层的正向输出信号205-1,所述垂直线路接入所述乘积模块306的合并信号(三值化误差信号)。
图10展示了神经网络训练过程中梯度积累和权重更新过程的电路结构图。图11则展示了梯度积累和权重更新过程的流程图,其中,N为训练样本的数量。
当训练神经网络时,首先依据前述的信息正向传播和误差反向传播方法,获得每层的随机二值化正向输入信息(上一个网络层的正向输出信号)和三值化误差信息在这里,仅以一层中的第i行和第j列的一个权重调整过程为例进行说明。随机二值化正向输入信息和三值化误差信息相乘,即获得了神经网络的整体输出误差相对于权重的梯度信息,即由于这一梯度信息也是三值化的,即仅可取值为“-1”,“0”或“1”,可以采用一个有符号的计数器单元(计数器阵列)来累计这个梯度信息,即:
然后,可以进入下一个训练样本的循环,不断积累梯度信息(Cij)。同时,周期性地监测这个累计的梯度信息(Cij)是否超过一个阈值(Cth)或低于一个负的阈值(-Cth)。如果累计的梯度信息超过阈值Cth,则在计数器上减掉这个阈值Cij←Cij-Cth,并向电导调节模块310中的电导调节电路发送一个电导负向调节的指令(电导调节指令)。但是,如果累计的梯度信息低于负阈值(-Cth),则在计数器上加上这个阈值Cij←Cij+Cth,并向电导调节模块310中的电导调节电路发送一个电导正向调节的指令。那么,电导调节电路选中需要调节电导的器件Gij,按照电导调节指令,使其电导增大或减小Gij=Gij+ΔG,其中ΔG(可以是正值或负值)为电导变化的大小。其中,阈值Cth为正整数。
其次,可以采用粗略的盲写方式或精确的循环读写方式来完成上述电导调节指令。盲写的方式是指在接到电导调节指令后,发送单一、固定的写脉冲使电导增加或减小。根据可调电导器件G的实现方式的不同,写脉冲的形式和施加的端口可能不同。但是,对于所有的电导正向调节指令,采用一致的写入脉冲;而对于所有的电导负向调节指令,也采用一致的写入脉冲。盲写方式的电路结构和执行流程相对简单,但是由于可调电导器件G非理想特性的存在,每次电导调节都会有很多非线性和波动性等特征。
循环读写方式则需要首先读取当前的电导值,然后根据需要调节的电导值ΔG设定目标电导值,通过不断调高、调低电导并循环逼近的方式达到设定的目标值。循环读写的方式保证了每次调节电导时电导的变化ΔG是统一的、准确的数值,但是一次电导调节需要发送几次甚至上百次的写入脉冲和频繁的读取验证过程。电路结构复杂,消耗能量较高,且造成较高的延迟。
然而,通过实践发现,当梯度计数器设定合理的阈值时,可调电导的非理想特性对神经网络的训练效果的影响较小。
尽管上述计数器Cij最直接的方式是采用数字计数器电路来实现。但是,也可以采用多种其他方式来实现。例如,采用电容充放电的方式来实现:向电容充入一定的电荷表示累计梯度的增加,从电容释放一定的电荷表示累积梯度的减小,通过检测电容电压的大小判断累积的梯度信息是否达到或低于一定的阈值。
最后,神经网络的推理仅涉及信息的正向传播,因此上述实现信息正向传播的电路(图7)可直接用于完成神经网络的推理。其中,导数单元部分不再需要。但是,由于噪声电流和随机性的存在,每层神经网络的输出都带有随机性。这种随机性在神经网络训练中是所需要的。但是,在推理过程中,逐层累积的随机性使推理准确度下降。
为此,可以采用两种技术方案恢复或提高推理准确度:
方案一:在上述信息正向传播方案中,降低或去除噪声的影响(即去掉图7中的噪声电流产生电路),使神经网络中每层的可调电导阵列的输出转变为确定性的二值化、数字化的信号。此二值化、数字化的输出信号作为后一层网络的输入;从而使信息逐层正向传播,完成推理过程。
方案二:多次重复上述信息正向传播方案中的信息逐层正向传播过程,在神经网络的输出层通过投票的方式确定最终推理结果,其中,在神经网络的输出层通过投票的方式进行推理的流程图如图12所示,其中,此时,N为重复投票的次数。
最终实践表明,方案一的推理准确度适中,方案二的推理准确度随重复次数的增加而不断增加,在重复次数较多后可获得较高的推理准确度,并且优于现有技术方案的推理准确度。
更进一步地,请参阅图13,本发明提供的一种基于电导可调器件的神经网络训练操作方法,所述基于电导可调器件的神经网络训练操作方法适用于如上所述的基于电导可调器件的神经网络训练操作系统1,该系统包含多个顺序连接的上一网络层2、本网络层3、下一网络层4,其中所述基于电导可调器件的神经网络训练操作方法中一个典型的网络层3的操作包括以下步骤:
A100、在进行信息的正向传播过程中,所述第一电压转换模块301读取上一个网络层的正向输出单元中的正向输出信号,并将所述正向输出信号转换为输入电压信号后,传输至所述可调电导模块302;
A200、所述可调电导模块302对所述输入电压信号进行处理,并将得到的第一电流信号传输至所述第一比较模块303;
A300、所述第一比较模块303将所述第一电流信号中的电流大小进行比较,输出比较信号至所述采样保持模块305;
A400、所述采样保持模块305对所述比较信号进行单次采样操作,获取本网络层的正向输出信号;
A500、所述采样保持模块305对所述比较信号进行多次采样操作和逻辑运算操作,获取本网络层的导数信号;其中,所述本网络层的正向输出信号作为下一网络层的第一电压转换模块的输入;所述本网络层的导数信号用于误差反向传播。
其中,在所述第一比较模块中,所述第一电流信号叠加了来自噪声产生模块304的噪声电流;由于所述第一电流信号中加入了噪声电流,所述比较信号、所述正向输出信号和所述导数信号具有一定的随机特性;在所述采样保持模块中,用于生成所述正向输出信号的单次采样操作和用于生成所述导数信号多次采样操作应在三个不同的时钟周期内进行,以确保采样结果的独立性。
具体地,在进行信息的正向传播过程中,首先,所述第一电压转换模块301读取所述上一个网络层2的正向输出单元205-1中的正向输出信号(所述正向输出信号包括二值化正向输出信号,随机取值为0或1),并将上一个网络层的正向输出信号转换为输入电压信号(对应图7中的读电压VR)后,传输至所述可调电导模块302。所述可调电导模块302则将所述输入电压信号转换为第一电流信号(对应图7中的Ij和Iref)后,传输至所述第一比较模块303。
其次,所述第一比较模块303将所述第一电流信号(叠加了来自噪声产生模块304的噪声电流)中的电流大小进行比较,并将得到的比较信号(仅为低电平或高电平数字信号)传输至所述采样保持模块305;最后,所述采样保持模块305中的正向输出单元305-1对所述比较信号进行单次采样操作后,输出当前网络层(本网络层)的正向输出信号(同样是二值化信号,随机取值为0或1);同时,所述采样保持模块305中的导数单元305-2对所述比较信号进行两次采样操作(多次采样操作)和逻辑运算操作后,输出当前网络层的导数信号(二值化导数信号,随机取值为0或1)。所述正向输出信号和所述导数信号并不一定相等。
进一步地,请参阅图14,所述基于电导可调器件的神经网络训练操作的方法中,所述基于电导可调器件的神经网络训练操作方法还包括:
B100、在进行误差的反向传播过程中,乘积模块306将所述本网络层的导数信号与下一个网络层的反向输出信号相乘后,将相乘结果传输至第二电压转换模块307;
B200、所述第二电压转换模块307将所述相乘结果转换为反向输入电压信号后,传输至所述可调电导模块302;
B300、所述可调电导模块302对所述反向输入电压信号进行处理,并将得到的第二电流信号传输至第二比较模块308;
B400、所述第二比较模块308将所述第二电流信号中的电流大小比较操作,得到本网络层的反向输出信号;
其中,所述本网络层的乘积模块的输入来自所述本网络层的导数信号与下一个网络层的反向输出信号;所述本网络层的反向输出信号用于上一网络层的乘积模块。
具体地,当进行误差的反向传播过程时,同样地,首先,所述乘积模块306将所述当前网络层的导数信号(二值化导数信号,随机取“0”或“1”)与下一个网络层的反向输出信号(二值符号化的误差信号,取值为“-1”或“1”)相乘,并将得到的所述相乘结果(三值化误差信号,取值为“-1”,“0”或“1”)传输至所述第二电压转换模块307。
然后,所述第二电压转换模块307将所述相乘结果转换为反向输入电压信号(模拟电压信号)后,传输至所述可调电导模块302。其次,所述可调电导模块302对所述反向输入电压信号进行处理,并将得到的第二电流信号(模拟电流信号)传输至第二比较模块308。最后,所述第二比较模块308将所述第二电流信号对所述反向输入电压信号进行处理,并将得到的所述本网络层的反向输出信号(二值符号化的误差信号,取值为“-1”或“1”)。
进一步地,请参阅图15,所述基于电导可调器件的神经网络训练操作的方法中,所述基于电导可调器件的神经网络训练操作方法还包括:
A10、在网络权重的更新过程中,梯度累计模块309根据上一个网络层的正向输出信号和本网络层中乘积模块的乘积结果计算得到梯度信号,并进行累计;
A20、所述梯度累计模块根据所述梯度信号的累计结果输出电导调节指令至所述电导调节模块310;其中,所述梯度信号为三值化信号;
A30、所述电导调节模块310根据所述电导调节指令对可调电导模块302中目标单元的电导进行调节。
具体地,当在线地进行权重调整(网络权重的更新)的过程中:
首先,所述梯度累计模块309根据上一个网络层的正向输出信号和所述合并信号计算得到所述梯度信号(三值化信号,取值为“-1”、“0”或“1”),并累计梯度信号;当累计的权重梯度信息达到一定阈值之后,所述梯度累计模块309根据所述梯度信号的累计结果输出电导调节指令至所述电导调节模块310,所述电导调节模块310根据所述电导调节指令对可调电导阵列302中对应的器件(目标单元)的权重(即电导值)进行调整,例如:电导正向调节或电导负向调节。所述累计的梯度信号为有符号的整数(可以为正整数、零或负整数)。
综上所述,本发明提出了一种基于电导可调器件的神经网络训练操作系统及方法,所述系统包括:第一电压转换模块用于将上一网络层的正向输出信号转换为输入电压信号,同时用于处理反向输入电压信号,输出第二电流信号;可调电导模块用于处理输入电压信号,输出第一电流信号;第一比较模块用于将第一电流信号进行比较;采样保持模块用于对比较结果进行采样,输出当前网络层的正向输出信号和导数信号;乘积模块用于将下一网络层的反向误差信号与导数信号相乘;第二电压转换模块将相乘结果转换为反向输入电压信号;第二比较模块将第二电流信号进行比较,输出当前网络层的反向误差信号。上述方法使网络层之间的信息传递均为二值化形式,节约了计算资源并减少了功耗。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。
Claims (14)
1.一种基于电导可调器件的神经网络训练操作系统,由多个相互连接的网络层组成,其特征在于,所述基于电导可调器件的神经网络训练操作系统中的一个网络层包括:第一电压转换模块、可调电导模块、第一比较模块和采样保持模块;
所述第一电压转换模块与上一网络层的正向输出单元相连接;所述第一电压转换模块、所述可调电导模块、所述第一比较模块以及所述采样保持模块依次连接;
所述第一电压转换模块用于读取所述上一网络层的正向输出单元中的正向输出信号,并将所述正向输出信号转换为输入电压信号后,传输至所述可调电导模块;所述可调电导模块用于对所述输入电压信号进行处理,并将得到的第一电流信号传输至所述第一比较模块;所述第一比较模块用于将所述第一电流信号中的电流大小进行比较,输出比较信号至所述采样保持模块;所述采样保持模块用于对所述比较信号进行单次采样操作,获得本网络层的正向输出信号,以及用于对所述比较信号进行多次采样操作和逻辑运算操作,获得本网络层的导数信号;
其中,所述可调电导模块的输入电压信号和第一电流信号为模拟电学信号;所述上一网络层的正向输出信号、所述第一比较模块的比较信号、本网络层的正向输出信号和本网络层的导数信号均为二值化的数字信号。
2.根据权利要求1所述的基于电导可调器件的神经网络训练操作系统,其特征在于,所述网络层还包括:乘积模块、第二电压转换模块和第二比较模块;
所述乘积模块、所述第二电压转换模块、所述可调电导模块和所述第二比较模块依次连接,所述乘积模块还与所述采样保持模块连接;
所述乘积模块用于将所述本网络层的导数信号与下一个网络层的反向输出信号相乘后,将相乘结果传输至第二电压转换模块;所述第二电压转换模块用于将所述相乘结果转换为反向输入电压信号后,传输至所述可调电导模块;所述可调电导模块还用于对所述反向输入电压信号进行处理,并将得到的第二电流信号传输至所述第二比较模块;所述第二比较模块还用于将所述第二电流信号中的电流大小比较操作,得到本网络层的反向输出信号;
其中,所述可调电导模块的反向输入电压信号和第二电流信号为模拟电学信号;所述下一个网络层的反向输出信号、所述本网络层的反向输出信号均为二值符号化的误差信号;所述乘积模块的相乘结果为三值化的误差信号。
3.根据权利要求2所述的基于电导可调器件的神经网络训练操作系统,其特征在于,所述网络层还包括:梯度累计模块和电导调节模块;
所述电导调节模块分别与所述梯度累计模块和所述可调电导模块连接,所述梯度累计模块还与所述第一电压转换模块、所述乘积模块和所述第二电压转换模块连接;
所述梯度累计模块用于根据上一个网络层的正向输出信号和所述乘积模块的相乘结果计算得到梯度信号,并进行累计;所述梯度累计模块还用于根据所述梯度信号的累计结果输出电导调节指令至所述电导调节模块;所述电导调节模块用于根据所述电导调节指令对可调电导模块中目标单元的电导进行调节;
其中,所述梯度信号为三值符号化的信号;所述梯度信号的累计结果为有符号的整数;所述电导调节指令包含所需调节电导单元的位置信息、电导调节的方向及幅值。
4.根据权利要求1所述的基于电导可调器件的神经网络训练操作系统,其特征在于,所述网络层还包括:噪声产生模块;所述噪声产生模块与所述第一比较模块连接;所述噪声产生模块用于在所述第一电流信号中加入噪声电流,使第一比较模块的比较结果随机化;
所述噪声电流为模拟信号;所述噪声电流由可调电导模块中电子器件的本征噪声或第一比较模块中的本征噪声来提供。
5.根据权利要求1所述的基于电导可调器件的神经网络训练操作系统,其特征在于,所述可调电导模块包括:(m+1)*(n+1)-1个可调电导器件;
其中,m*(n+1)个可调电导器件组成m行乘(n+1)列的可调电导矩阵用于处理输入电压信号,输出第一电流信号;在m行中每一行上(n+1)个可调电导器件的一端相互连接,在(n+1)列中每一列上m个可调电导器件的另一端相互连接;在m行中每一行上(n+1)个可调电导器件的一端还与第一电压转换模块中的一个电压转换单元相连接;在(n+1)列中每一列上m个可调电导器件的另一端还与第一比较模块中的一个比较器单元相连接;
其中,(m+1)*n个可调电导器件组成(m+1)行乘n列的可调电导矩阵用于处理反向输入电压信号,输出第二电流信号;在(m+1)行中每一行上n个可调电导器件的一端相互连接,在n列中每一列上(m+1)个可调电导器件的另一端相互连接;在(m+1)行中每一行上n个可调电导器件的一端还与第二比较模块中的一个比较器单元相连接;在n列中每一列上(m+1)个可调电导器件的另一端还与第二电压转换模块中的一个电压转换器单元相连接;其中,m和n均为正整数。
6.根据权利要求3所述的基于电导可调器件的神经网络训练操作系统,其特征在于,所述梯度累计模块包括:m*n个计数器;m*n个计数器组成m行乘n列的计数器矩阵,在m行中每一行上n个计数器的一端相互连接,在n列中每一列上m个计数器的另一端相互连接。
7.根据权利要求4所述的基于电导可调器件的神经网络训练操作系统,其特征在于,所述噪声产生模块包括:分压单元、滤波单元、第四运算放大单元和噪声转换单元;所述分压单元、所述滤波单元、所述第四运算放大单元和所述噪声转换单元依次连接;所述分压单元用于对电源进行分压,并输出分压电压至所述滤波单元;所述分压电压包含了电阻的热噪声;所述滤波单元对所述分压电压进行滤波,并将得到的噪声电压传输至所述第四运算放大单元;所述第四运算放大单元用于对所述噪声电压进行放大,并将放大后的噪声电压传输至所述噪声转换单元;所述噪声转换单元用于将放大后的噪声电压转换为噪声电流,并传输至所述第一比较模块。
8.根据权利要求7所述的基于电导可调器件的神经网络训练操作系统,其特征在于,所述第一比较模块包括:第一电阻、第二电阻、第一运算放大器、第二运算放大器和第三运算放大器;所述第一电阻的一端、所述第一运算放大器的输出端、所述第三运算放大器的正向输入端连接,所述第一电阻的另一端分别与所述可调电导模块和所述第一运算放大器的反向输入端连接,所述第一运算放大器的正向输入端接地;所述第二电阻的一端、所述第二运算放大器的输出端、所述第三运算放大器的反向输入端连接,所述第二电阻的另一端分别与所述可调电导模块、所述噪声转换单元和所述第二运算放大器的反向输入端连接,所述第二运算放大器的正向输入端接地。
9.根据权利要求8所述的基于电导可调器件的神经网络训练操作系统,其特征在于,所述采样保持模块包括:正向输出单元和导数单元;所述正向输出单元和所述导数单元均与所述第三运算放大器的输出端相连接;
所述正向输出单元用于将所述第一比较模块的比较信号进行单次采样操作,得到所述本网络层的正向输出信号;所述导数单元用于将所述比较信号进行多次采样操作,并进行逻辑运算操作,得到所述本网络层的导数信号;
其中,所述正向输出信号传输至下一层网络的第一电压转换模块;所述导数信号用于本网络层的乘积模块。
10.根据权利要求9所述的基于电导可调器件的神经网络训练操作系统,其特征在于,所述正向输出单元包括:第一触发器和第一时钟信号;所述第一触发器的数据输入端与所述第三运算放大器的输出端相连接;所述第一时钟信号与所述第一触发器的时钟信号端连接。
11.根据权利要求9所述的基于电导可调器件的神经网络训练操作系统,其特征在于,所述导数单元包括:第二触发器、第三触发器、逻辑门和第二时钟信号;所述第二触发器的数据输入端与所述第三运算放大器的输出端连接;所述第二时钟信号分别与所述第二触发器的时钟输入端和所述第三触发器的时钟输入端连接;所述第二触发器的输出端分别与所述第三触发器的数据输入端和所述逻辑门的第一输入端连接;所述第二触发器的输出端与所述逻辑门的第二输入端连接;所述逻辑门对第一输入端的信号进行逻辑非操作后与第二输入端的信号进行逻辑与操作。
12.一种基于电导可调器件的神经网络训练操作方法,所述基于电导可调器件的神经网络训练操作方法适用于权利要求1-11任一项所述的基于电导可调器件的神经网络训练操作系统,其特征在于,基于电导可调器件的神经网络应用于以下神经网络训练的操作方法:信息的正向传播、误差的反向传播和网络权重的更新,所述基于电导可调器件的神经网络训练操作方法包括以下步骤:
在进行信息的正向传播过程中,所述第一电压转换模块读取上一网络层的正向输出单元中的正向输出信号,并将所述正向输出信号转换为输入电压信号后,传输至所述可调电导模块;
所述可调电导模块对所述输入电压信号进行处理,并将得到的第一电流信号传输至所述第一比较模块;
所述第一比较模块将所述第一电流信号中的电流大小进行比较,输出比较信号至所述采样保持模块;
所述采样保持模块对所述比较信号进行单次采样操作,获得本网络层的正向输出信号;
所述采样保持模块对所述比较信号进行多次采样操作和逻辑运算操作,获得本网络层的导数信号;
其中,所述本网络层的正向输出信号作为下一网络层的第一电压转换模块的输入;所述本网络层的导数信号用于误差反向传播。
13.根据权利要求12所述的基于电导可调器件的神经网络训练操作的方法,其特征在于,所述基于电导可调器件的神经网络训练操作方法还包括:
在进行误差的反向传播过程中,乘积模块将所述本网络层的导数信号与下一个网络层的反向输出信号相乘后,将相乘结果传输至第二电压转换模块;
所述第二电压转换模块将所述相乘结果转换为反向输入电压信号后,传输至所述可调电导模块;
所述可调电导模块对所述反向输入电压信号进行处理,并将得到的第二电流信号传输至第二比较模块;
所述第二比较模块将所述第二电流信号中的电流大小比较操作,得到本网络层的反向输出信号;
其中,所述本网络层的乘积模块的输入来自所述本网络层的导数信号与下一个网络层的反向输出信号;所述本网络层的反向输出信号用于上一网络层的乘积模块。
14.根据权利要求12所述的基于电导可调器件的神经网络训练操作的方法,其特征在于,所述基于电导可调器件的神经网络训练操作方法还包括:
在网络权重的更新过程中,梯度累计模块根据上一个网络层的正向输出信号和本网络层中乘积模块的乘积结果计算得到梯度信号,并进行累计;
所述梯度累计模块根据所述梯度信号的累计结果输出电导调节指令至所述电导调节模块;
所述电导调节模块根据所述电导调节指令对可调电导模块中目标单元的电导进行调节。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310184157.3A CN116579392A (zh) | 2023-02-21 | 2023-02-21 | 一种基于电导可调器件的神经网络训练操作系统及方法 |
PCT/CN2023/086573 WO2024174354A1 (zh) | 2023-02-21 | 2023-04-06 | 一种基于电导可调器件的神经网络训练操作系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310184157.3A CN116579392A (zh) | 2023-02-21 | 2023-02-21 | 一种基于电导可调器件的神经网络训练操作系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116579392A true CN116579392A (zh) | 2023-08-11 |
Family
ID=87544167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310184157.3A Pending CN116579392A (zh) | 2023-02-21 | 2023-02-21 | 一种基于电导可调器件的神经网络训练操作系统及方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116579392A (zh) |
WO (1) | WO2024174354A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11315009B2 (en) * | 2017-03-03 | 2022-04-26 | Hewlett Packard Enterprise Development Lp | Analog multiplier-accumulators |
US10943652B2 (en) * | 2018-05-22 | 2021-03-09 | The Regents Of The University Of Michigan | Memory processing unit |
US11694070B2 (en) * | 2019-05-07 | 2023-07-04 | Hrl Laboratories, Llc | Bipolar all-memristor circuit for in-memory computing |
US12056602B2 (en) * | 2019-09-26 | 2024-08-06 | Qatar Foundation For Education, Science, And Community Development | Circuit for calculating weight adjustments of an artificial neural network, and a module implementing a long short-term artificial neural network |
CN113255875A (zh) * | 2020-02-07 | 2021-08-13 | 华为技术有限公司 | 神经网络电路和神经网络系统 |
-
2023
- 2023-02-21 CN CN202310184157.3A patent/CN116579392A/zh active Pending
- 2023-04-06 WO PCT/CN2023/086573 patent/WO2024174354A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024174354A1 (zh) | 2024-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11348002B2 (en) | Training of artificial neural networks | |
US10860682B2 (en) | Binary, ternary and bit serial compute-in-memory circuits | |
JP6995131B2 (ja) | 抵抗型処理ユニットアレイ、抵抗型処理ユニットアレイを形成する方法およびヒステリシス動作のための方法 | |
WO2018228424A1 (zh) | 一种神经网络训练方法和装置 | |
KR102542532B1 (ko) | 혼합-신호 연산 시스템 및 방법 | |
US10453527B1 (en) | In-cell differential read-out circuitry for reading signed weight values in resistive processing unit architecture | |
JP2009282782A (ja) | 抵抗変化型可変抵抗素子を備えた積演算装置、及び積和演算装置、これらの装置を各ニューロン素子に備えるニューラルネットワーク、並びに積演算方法 | |
Milo et al. | Optimized programming algorithms for multilevel RRAM in hardware neural networks | |
US11340869B2 (en) | Sum-of-products operator, sum-of-products operation method, logical operation device, and neuromorphic device | |
US11038520B1 (en) | Analog-to-digital conversion with reconfigurable function mapping for neural networks activation function acceleration | |
EP4086816A1 (en) | Neural network circuit and neural network system | |
Antolini et al. | Combined HW/SW drift and variability mitigation for PCM-based analog in-memory computing for neural network applications | |
CN115458005A (zh) | 数据处理方法和存算一体装置、电子设备 | |
Doevenspeck et al. | Noise tolerant ternary weight deep neural networks for analog in-memory inference | |
Gi et al. | A ReRAM-based convolutional neural network accelerator using the analog layer normalization technique | |
CN116579392A (zh) | 一种基于电导可调器件的神经网络训练操作系统及方法 | |
CN114186667B (zh) | 一种循环神经网络权重矩阵向忆阻阵列的映射方法 | |
CN115796252A (zh) | 权重写入方法及装置、电子设备和存储介质 | |
JP2022008142A (ja) | 回路を利用して所定の演算を遂行する装置及び方法 | |
Yamada et al. | LIORAT: NN Layer I/O Range Training for Area/Energy-Efficient Low-Bit A/D Conversion System Design in Error-Tolerant Computation-in-Memory | |
CN113160860B (zh) | 计算系统、计算器件和计算方法 | |
CN113988278B (zh) | 一种基于忆阻交叉阵列的长短时记忆自主转换电路 | |
US20230306252A1 (en) | Calibrating analog resistive processing unit system | |
CN116128035A (zh) | 训练方法及装置、电子设备和计算机存储介质 | |
CN115796250A (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 |