校准方法和存内训练相结合的忆阻器神经形态计算方法*

2023-09-28 07:21杜湘瑜刘海军
国防科技大学学报 2023年5期
关键词:阻器识别率原位

杜湘瑜,彭 杰,刘海军

(国防科技大学 电子科学学院, 湖南 长沙 410073)

近年来,深度学习技术发展迅速,尤其是在神经网络领域[1]。深度学习算法通常采用CPU或GPU进行训练[2],这也带来了很大的功耗问题[3]。随着超大规模集成电路制造业的快速发展[4-5],嵌入式系统逐渐成为研究的热点,它能够在功耗和占用面积非常小的情况下解决目标检测问题[6]。

在嵌入式神经形态处理系统的发展中[7],基于忆阻器的神经形态计算体系架构引起了许多研究者的关注[8-9]。一些基于忆阻器的神经形态计算体系架构已被提出[10-11]。例如, Sun等[12]提出了一种基于忆阻器的神经形态计算架构,该架构实现了三层全并行卷积神经网络(full-parallel convolutional neural networks, FP-CNN)。Sun等[13]在FP-CNN计算体系架构的基础上,以其为基本计算单元(basic computing units, BCUs)提出了一种级联神经网络体系架构。Yakopcic等[14]提出了一种基于忆阻器的卷积神经网络,该网络使用多个忆阻器交叉阵列。上述方法在网络架构方面取得了很好的效果,但当忆阻器阵列存在低良率问题时,其性能会出现明显下降[15-16]。

对此,本文提出了一种基于忆阻器的神经形态计算方法,将能够提高忆阻器阵列乘累加计算准确率的校准方法与可减少训练误差的原位训练方法相结合,能够提高网络在低良率阵列中的识别率。

1 校准方法与原位训练的实现

1.1 校准方法

Sun等[16]提出了一种基于输入分割的校准方法,提高了存在损坏器件情况下网络的识别率,如图1所示。

图1 校准方法流程Fig.1 Flow chart of the calibration method

根据算法的基本原理,标定算法的实现过程可以概括为:

1.2 原位训练

由于器件具有波动性,忆阻器的阻值在读写过程中会发生变化,特别是在编程过程中,器件不能准确地编程到预期的阻值状态。

为了解决这一问题,采用了原位训练神经网络的方法[17]。需要说明的是,原位训练方法需要对权值进行频繁更新,因此对器件的擦写次数要求很高,当前器件水平下,还难以制备出性能一致的大规模阵列,随着工艺水平的不断提升,这一问题将会得到妥善解决。图2展示的是采用原位训练更新阻值的方法。这意味着忆阻器被编程时,器件的实际阻值被读出,读出的阻值被代入神经网络的反向传播中进行计算。将交叉阵列读出的神经网络权值代入网络训练中,误差损失函数可以得到更准确的计算结果。

图2 采用原位训练更新阻值的图示Fig.2 Diagram of resistances updated by in-situ training

1T1R阵列编程电路如图3所示[13]。在这个电路中,只有目标忆阻器对应的行是启用的。该电路使用两个数模转换器来控制电压范围。可以假设要设置的忆阻为w,数模转换器(digital to analog convertor, DAC)能够将每个浮点权值转换为一组预定义的电导率状态内的值。其中:k对应所使用的DAC的位宽;α是待写入的器件权值,近似值为2B,B为实际的有效位宽,且0

图3 一种编程忆阻器交叉阵列的电路Fig.3 A circuit for a programmed memristor cross array

阵列编程电路根据两个比较器的输出电压VT决定记忆电阻是减小还是增大。如果与门(AND GATE)有高电平输出,一个负脉冲将被写到目标忆阻器,如果与非门(NAND GATE)有高电平输出,一个正脉冲将被写到目标忆阻器。这个编程过程将被重复进行,直到异或门(XOR GATE)得到一个高电平输出,代表一个忆阻器编程成功。

1.3 校准算法与原位计算相结合

本文将校准方法与原位训练相结合,以提高低良率忆阻器阵列中实现的神经网络的识别率。算法流程如图4所示。

图4 组合算法的执行流程Fig.4 Execution flow chart of the combined algorithm

首先,使用忆阻器阵列进行乘累加计算,并使用1.1节校准方法进行校准,以获得校准输出。定义一个“阈值”(threshold)来确定使用校准算法后阵列的标准输出与原始输出之间的差值是否大于预期。阈值的确定与实际器件可支撑的擦写次数、网络精度有关。阈值越小,实现的网络精度会提高,对应的网络精度调整越细,训练时间会越长,网络训练过程中的权值更新越频繁,器件的实际擦写次数越多,对器件的要求就越高;反之,阈值越大,实现的网络精度会降低,对应的网络精度调整越粗,网络训练过程中的权值更新次数越低,对器件的要求也越低。在本文的仿真实验中,综合考虑器件可支撑的擦写次数、网络精度等因素,阈值被设为10-2,所采用的数据集经过200个epoch的训练,能够最终收敛。为了保证网络能够收敛,需要优选网络的初始化权值等参数,并综合考虑实际器件可支撑的擦写次数、网络精度等因素的影响合理设置阈值。如果校准输出与原始输出的差值大于“阈值”,则进行原位训练,训练后再进行校准验证,直到误差达到要求的精度为止。该算法的执行流程总结如下:

1)根据公式Vout=Vin×G×Rs,使用忆阻器阵列执行乘累加运算以获得模拟输出,其中,Vout为阵列输出电压向量,Vin为阵列输入电压向量,G为忆阻器阵列电导,Rs为运放电阻值。

3)确定校准输出和标准输出之间的差值是否大于阈值。如果差异大于“阈值”,进行原位训练,然后回到第一步。

4)输出最终的计算结果。

需要说明的是,上述方法中第三步的阈值设定与实际器件可支撑的擦写次数、网络精度有关。阈值仅体现在训练过程中,仅影响训练过程的参数更新,对识别过程没有影响。本文方法将能够提高忆阻器阵列乘累加计算准确率的校准方法与可减少训练误差的原位训练方法相结合,从而提高网络在低良率阵列中的识别率。

2 仿真验证

2.1 仿真设置

使用Tensorflow[18]开源库进行实验,并使用LTspice进行电路仿真。为了更好地反映算法的实际应用性能,不使用任何数据增强技术[18-20]。选择MNIST数据集[21]进行验证,将每幅图像归一化为0~1的灰度值。本文采用Ti/AlOx/TaOx/Pt[15]忆阻器进行仿真实验。忆阻器阵列可以重复编程到从1 kΩ到12 kΩ的不同状态。在实验中,校准算法的误差阈值设置为10-2。

2.2 性能仿真

使用一个784×100×10的多层感知机(multi-layer perceptron, MLP)[22]来验证所提方法的性能。图5显示了MLP在两层忆阻器阵列上的实现。权重矩阵W1被映射到一个784×200的数组,矩阵W2被映射到一个100×20的数组。需要说明的是,激活函数采用的是Abs激活函数,原因在于Abs激活函数在浅层神经网络中有助于提高识别率[12]。在Abs激活函数后,第一个数组的输出被视为第二个数组的输入。

图5 MLP在两层忆阻器阵列上的实现Fig.5 Implementation of MLP on a two-layer memristor array

在模拟实验中,本文考虑了器件的波动性和阵列的良率。在良率方面,本文主要考虑单比特错误(single-bit failure,SBF)[23]。具体来说,当SBF发生时,忆阻器固定在高阻状态。

图6展示了本文算法在MNIST数据集上的识别率。图中的识别率均为100次实验的平均识别率。在实际中,阵列同时受波动性与良率共同影响,因此本实验采用坏块比例的方法进行仿真。坏块比例(defect percent)考虑了良率与波动性两个因素。若当前的坏块比例为α,则受良率影响的阵列比例为α×β,受器件波动性影响的阵列比例为α×(1-β)。在本文的仿真实验中,β被设为0.5。受波动性和良率影响的器件的位置随机产生,其中波动性系数σ在0.6~1.0之间随机产生。

图6 算法在MNIST数据集上的识别率Fig.6 Performance of the algorithms on the MNIST dataset

从图6中可以看出,采用原位训练和校准算法相结合的方法对网络进行训练后,识别率明显提高。例如,当坏块比例达到10%时,不进行任何校准的网络精度只能达到38.3%,使用校准算法的网络精度可以达到48.5%,使用校准算法与原位训练相结合的网络精度可以达到近70%。在最坏的情况下,在坏块比例达到20%的情况下,网络识别性能从21.4%提高到了60%。

本文还将这项工作与文献[24]的方法进行了比较,后者对神经网络进行了再训练,以提高精度。表1 展示了两种方法在MLP上的性能(784×256×10)。假设器件损坏只存在于权矩阵W1和W2中,或者同时存在于W1和W2中。可以看出,文献[24]可以获得92.93% 的识别率,本文工作比文献[24]的识别率高出0.29%。

表1 本文算法同主流方法的识别率对比Tab.1 Recognition rate comparison of the proposed algorithm and the mainstream methods %

3 结论

本文提出了一种基于忆阻器的神经形态计算方法,将校准方法与原位训练相结合。通过MLP架构的仿真验证了该方法的有效性。从以上的仿真结果来看,神经网络的精度有明显的提高(近40%)。实验结果表明,与不进行校准的方法相比,该方法的网络精度提高了约30%。与现有方法相比,该方法的精度比现有方法提高了0.29%。

猜你喜欢
阻器识别率原位
基于类图像处理与向量化的大数据脚本攻击智能检测
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
提升高速公路MTC二次抓拍车牌识别率方案研究
未培养微生物原位培养技术研究进展
真实忆阻器数学建模以及电学仿真
高速公路机电日常维护中车牌识别率分析系统的应用
BAMO-THF共聚醚原位结晶包覆HMX
具有脉冲的忆阻器神经网络周期解的稳定性
原位强化的铝基复合材料常见增强相及制备方法
忆阻器网络等效分析电路及其特性研究