基于忆阻器的门控循环单元电路

2024-03-04 11:34韩婷婷陈思锴
关键词:阻器线性权重

韩婷婷, 张 章, 陈思锴

(合肥工业大学 微电子学院,安徽 合肥 230601)

深度神经网络(deep neural network,DNN)模型在解决挑战性任务时的突出表现,使其在语音信号处理[1]、数字图像处理[2]领域受到广泛应用。因为前馈神经网络要求输入和输出维度固定,所以其不适合处理长度不固定的时序数据。循环神经网络(recurrent neural network,RNN)是具有短期记忆能力的一类网络,其具有反馈连接以保留信息的顺序,并且能处理任意长度的输入序列数据,因此被广泛应用在语音识别、语言模型以及自然语言生成等任务上。然而,对RNN的训练可能难以进行,因为RNN的权重更新是基于梯度算法进行的,所以会有梯度爆炸或消失的问题,这些问题可以通过在传统RNN中添加门控机制来解决。长短时记忆网络(long short-term memory,LSTM)[3]和门控循环单元(gated recurrent unit,GRU)[4]是目前广泛应用的2个基于门控的循环神经网络(gated recurrent neural network,Gated RNN)。GRU是受LSTM模型启发,具有更少的参数和更简单的计算步骤。文献[5]对比了GRU与LSTM在相同任务中的精度、内存消耗和训练时间,发现GRU与LSTM精度几乎相同,但是GRU的内存消耗相比于LSTM减少了约18%,训练速度提升了约20%,这使得GRU在对内存或速度有特殊要求的实际应用中更加流行。

然而,GRU由于其结构的复杂性和并行性,需要大量的计算资源,传统冯诺依曼体系架构中存在的“冯诺依曼瓶颈”[6]和“内存墙瓶颈”[7]问题导致其实现起来有一定难度。为了推动未来神经形态计算技术的发展,必须找到非冯诺依曼体系架构的解决方案。忆阻器是代表磁通量与电荷之间关系的两端电路器件,是存算一体架构的有力候选者。与冯诺依曼体系架构相比,基于忆阻器的内存计算有效地规避了频繁数据通信带来的巨大能耗和时间开销。

人工神经网络(artificial neural network, ANN)的整体内存计算架构将由多个交叉开关阵列组成,忆阻器可以使用电导值作为突触权重,交叉开关阵列执行向量矩阵乘法(vector matrix multiplication,VMM)。在馈入行的每个输入电压向量和列权重向量之间生成点积向量,每个交叉开关阵列都带有模数转换器和数字电路,然后连接到下一个交叉开关阵列。然而,先前大部分对GRU的研究都是基于软件实现的,对GRU存算一体的硬件研究介绍很少,并且没有任何使用忆阻器实现GRU单元计算的研究。

因此,本文提出一个基于忆阻器的门控循环单元的硬件电路,使用较少的元件以及低精度要求的元件就可以实现门控循环单元的功能。本文首先对搭建的电路进行仿真,结果表明电路的平均误差为0.007 5;然后将电路应用于3层GRU模型实现股票的预测,预测的R2分数为0.923 4。本文的设计不仅具有较高的精度,而且具有更小的片上预算和功率消耗。

1 忆阻器性能及其模型

忆阻器为应用非冯诺依曼架构的存内计算集成技术提供了新思路。忆阻器可以用作仿生突触设备,通过动态调整电阻状态来实现权重更新。同时,忆阻器阵列可以根据基尔霍夫定律和欧姆定律实现VMM操作,但是使用忆阻器阵列进行GRU操作,在每次迭代操作中存在海量数据传输。因此目前还缺乏使用忆阻器来实现RNN网络功能的方案。

为实现更切实际的电路仿真,本文利用真实的忆阻器性能进行建模。使用Au/Ta2O5/HfO2/Pt叠层用作阻变式存储器(resistive random access memory,RRAM)器件,忆阻器的电流-电压特性和多态特性如图1所示。

图1 忆阻器的电流-电压和多态特性

通过施加0~-1.5 V的扫描电压,器件可以从高电阻状态(high resistance state,HRS)变为低电阻状态(low resistance state,LRS)。当施加0~2.0 V的扫描电压时,器件可以从LRS变为HRS。此外,本文对200个工作电压进行统计,设定电压集中在0.7~-1.1 V的范围,复位电压集中在-0.7 ~ 0.4 V的范围。分布式和集中式的式工作电压特性有利于后期电路设计。通过改变复位过程的截止电压,可以实现忆阻器的多态调节。本文使用这种方法实现了64个状态的连续调节,电导调节的线性关系(图1b)表明该装置满足实际应用的要求。

对器件的特性进行函数拟合,并将其数学表达式转换为相应的电路元件。将不可转换的部分作为函数方程合并到Spice模型中以拟合器件数据,因此新模型具有器件属性。在重置过程中提取一条完整的曲线,如图2所示。从图2可以看出,器件曲线和模型拟合曲线几乎完全重合。因此,该模型满足多态调控仿真,能够很好地模拟真实忆阻器在后续神经网络构建中的工作状态。

图2 忆阻器模型的拟合曲线

2 基于忆阻器的门控循环单元电路

2.1 门控循环单元

GRU是一种结构更简单的门控循环神经网络,其重置门能同时进行遗忘和记忆,并且没有额外的记忆单元,如图3所示。从图3可以看出,其输入分别为当前时刻输入xt和上一时刻输出的ht-1。输入分别乘以相应的权重,然后通过激活函数输出门控值。sigmoid激活层后的更新门zt值和重置门rt值的范围都为(0, 1)。rt和上一时刻的状态ht-1相乘用来控制候选状态h′对前一时刻ht-1的状态进行遗忘。如果重置门近似0,那么上一个隐藏状态将被丢弃。因此,重置门可以丢弃与预测未来无关的历史信息,通过tanh函数过滤可以使输出范围为(-1, 1)。zt更新门用来控制此刻的时间步ht如何被上一时刻时间步信息ht-1和候选激活信息h′所更新,若当前时刻输出ht和上一时刻输出ht-1之间的关系是线性函数,则这种设计可以应对循环神经网络中的梯度衰减问题,并更好地捕捉时间序列中时间步距离较大的依赖关系。

图3 门控循环单元的结构

GRU单元操作公式如下:

zt=σ(Wzxt+Uzht-1+bz)

(1)

rt=σ(Wrxt+Urht-1+br)

(2)

h′=tanh(Wxt+U(rt⊙ht-1)+b)

(3)

ht=zt⊙h′+(1-zt)⊙ht-1

(4)

其中:xt为时间步长为N的输入向量;ht-1为上一时刻的信息输入向量;zt为更新门输出矩阵;rt为重置门输出矩阵;h′为中间激活状态输出矩阵;ht为当前时刻的输出;Wz、Uz为更新门的权重矩阵;Wr、Ur为重置门的权重矩阵;W、U为中间激活状态的权重矩阵;bz、br分别为更新门和重置门偏置矩阵;σ为sigmoid函数;⊙为逐元素向量积。

2.2 基于忆阻器的门控循环单元电路

基于忆阻器的门控循环单元的整体电路如图4所示,硬件电路的设计是基于上述GRU单元的详细参数计算过程。门控单元的权重可以由忆阻器电导表示,忆阻器的电导可以通过施加的电压和脉冲时间来控制。另外,通过一个开关和反相电路来控制硬件电路中权重值的正值和负值。当权重值为负时,开关关断,输入通过反相电路用于忆阻器;当权重值为正时,开关断开,输入不经过反相电路用于忆阻器。通过控制输入的方向电路实现负值的乘法结果输出,因此本设计可以通过4个忆阻器实现更新门和重置门内的乘法。另外,激活函数的硬件实现是设计中具有挑战性的部分。经常使用的激活函数有sigmoid、tanh、ReLU等,硬件电路中ReLU函数可以用一个放大电路近似等效。受此启发,GRU中使用的sigmoid和tanh函数都可以用一个线性函数去逼近它的线性部分。

图4 基于忆阻器的门控循环单元的整体电路

基于以上2个设计思想,下面介绍GRU内部单元的具体实现电路。

权值与电导值之间被设计为100倍的线性映射关系,即

G=W/100

(5)

其中:G为电导值;W为权重值,W的取值范围为(0,0.2]。该设计使得输出电压与理论值之间呈线性关系,将式(5)分别代入式(1)、式(2),可计算复位门和更新门电路的输出电压值。

计算公式分别为:

rt=σ[Wr/(100xt)+Ur/(100ht-1)]

(6)

zt=σ[Wz/(100xt)+(Uz/(100ht-1)]

(7)

输出电压与理论值之间存在100倍的关系。因为器件电导是mS级,所以通过忆阻器的输出电压是mV级且在sigmoid函数的线性部分,可以在电路中实现一个线性函数替代sigmoid函数功能,本文用非零线性函数拟合sigmoid函数从0~0.2的线性部分,线性函数如下:

y=0.2x+0.5

(8)

根据式(8),sigmoid函数电路可以简化为求和电路与放大电路的组合。根据式(5)可以看出,电压值与理论值有100倍的关系,线性函数的系数为0.2,根据输入的映射关系,即可将放大电路的反馈电阻阻值设为40 kΩ、输入电阻阻值设为1 kΩ,同相求和电路的一端输入设为0.5 V直流稳压源,运放同相输入端的2个电阻和反向输入端电阻同为3 kΩ,反馈电阻为6 kΩ。由此得到rt和zt电路输出值,且其与理论计算为线性关系。

使用同样的方法对h′候选激活输出模块进行搭建,将式(5)代入式(3),可得其电路输出公式为:

h′=tanh(W/(100xt)+

(U/100)(rt⊙ht-1)+b)

(9)

候选激活模块中通过忆阻器后的电压为mV级别,而tanh函数的-0.5~0.5部分是线性的,因此为了在电路中实现tanh函数,本文使用过零线性函数拟合tanh函数,得到的线性拟合函数如下:

y=0.8x

(10)

通过一个放大电路可以简单实现tanh函数,放大电路的反馈电阻可以根据拟合的线性函数设置为80 kΩ,输入电阻为1 kΩ,即可实现候选激活状态的电路输出。GRU的当前时刻输出由输出电路完成,其输出方程式(3)根据乘法分配律可以拆分为:

ht=ht-1-ztht-1+zth′

(11)

电路的输出还需要电压乘法运算,这并不适合用忆阻器直接实现,因此本文使用AD633搭建一个可以实现mV级的电压乘法电路。更新门、上一时刻输出、候选激活通过加法电路和减法电路进行组合,可得到当前时刻电路输出。

本文搭建的电路完全从硬件方面实现了GRU单元的功能。电路参数只有输入与输出,无需对门信号和候选激活信号进行操作,避免了不必要的信息传输和外围电路。同时本设计可以通过异地训练方法将权重写入忆阻器,异位方法的主要优点是可以使用任何学习算法进行训练,并且简化了激活函数电路,无需高精度器件就可以实现GRU的功能。

3 电路及网络仿真结果

3.1 硬件电路的仿真结果

因为器件的复位电压是0.5 V,所以电路中的电压范围要控制在-0.5~+0.5 V范围内。提取模型中第1层GRU的权重值、输入和输出值,得到权重值范围为(-0.2,0.2),输入输出范围均为(-1,1)。因此软件中的参数线性映射为-0.5~0.5 V的电压值,权重取绝对值后从0~0.2线性映射到电导状态0.000 5 ~ 0.002 0 S,见表1所列。

表1 网络参数与电路参数的映射关系

本文将输入xt和ht-1从-1 ~ 1以0.1为步长变化进行连续的仿真,以检验仿真模型的运算准确性。由于GRU单元中存在3次迭代运算,本文提取了迭代运算中的输出结果,以验证模型的实际效果,电路仿真结果混淆矩阵如图5所示。因为软件输入是电路值的2倍,本文将sigmoid激活函数电路输出放大了200倍,所以门控单元的输出与理论值的关系式为Y=V,图5a的误差计算公式为:

图5 电路仿真结果混淆矩阵

Ei=(V-Y)×100%

(12)

其中:Ei为第i次仿真的误差;V为电路输出电压值;Y为理论输出值。软件输出是电路值的2倍,即Y=2V,图5b、5c的误差计算公式为:

Ei=(V-Y/2)×100%

(13)

由图5a可知,复位门和更新门的平均误差值为0.010 3。由图5b可知,候选激活状态的电路输出与理论输出值的平均误差值为0.014 6。由图5c可知,最终电路输出与理论输出值的平均误差值为0.007 5。1%的误差在很多高精度数学计算中都是不可接受的,但神经网络通常具有较高的鲁棒性,因此对单个神经元的计算准确度要求并不如此苛刻。在神经网络中,考虑到忆阻器硬件电路在执行神经网络过程中相比于传统冯诺依曼架构在能效上的巨大优势,计算精度上的少许损失是完全可以接受的。

3.2 网络仿真结果

通过分析电路输出误差混淆矩阵,获得一个方差为0.009 7、均值为-0.002 6的正态分布函数。为了将电路应用于实际情境,本文搭建一个包含2层GRU和一个全连接层的3层神经网络模型,每个GRU层具有64个单元,全连接层包含1个神经元。

在模型的第1层GRU的输出上,引入一个服从电路误差分布的正态分布随机数,以模拟模型在电路中的运行情况。整个系统的具体操作流程如图6所示。

图6 系统流程

使用7 270个训练数据,对模型进行100轮的训练。在完成训练后,将电路参数集成到模型中,并进行500个数据的测试。经过训练后,损失值降至0.000 4,训练R2分数达到0.996 9。为了评估模型性能,对500个测试数据集的R2分数进行综合分析,得到0.948 4的R2分数。将电路参数用于模型的前向预测,得到的预测R2分数为0.923 4。

将本文的设计与先前实现GRU模型的工作进行对比,结果见表2所列。从表2可以看出,本文的电路在功耗和速度方面具有显著优势,因此在构建深层网络时可以提供优越的并行度将单元应用到网络中,并且可以快速完成网络的前向传播。

表2 模型与电路的评估参数对比

4 结 论

本文设计了一个基于忆阻器的GRU硬件电路,设计的电路可以减少不必要的数据传输和大量外围电路的参与。仿真结果表明,与理论值相比,GRU电路输出的平均误差低至0.007 5,而使用搭建的硬件电路实现的股票预测模型的R2分数可以达到0.923 4。与目前的GRU硬件实现方式相比,本文设计需要更少的电路组件,具有更快的执行速度和更低的功耗。此外,本文设计能够有效实现GRU模型的前向传播。因此,本文设计为未来GRU的硬件电路设计提供了一种新的解决方案,并为提高GRU网络存算一体的实现速度提供较好的思路。

猜你喜欢
阻器线性权重
渐近线性Klein-Gordon-Maxwell系统正解的存在性
线性回归方程的求解与应用
权重常思“浮名轻”
二阶线性微分方程的解法
为党督政勤履职 代民行权重担当
基于公约式权重的截短线性分组码盲识别方法
真实忆阻器数学建模以及电学仿真
具有脉冲的忆阻器神经网络周期解的稳定性
层次分析法权重的计算:基于Lingo的数学模型
忆阻器网络等效分析电路及其特性研究