第13卷㊀第3期Vol.13No.3㊀
㊀
智㊀能㊀计㊀算㊀机㊀与㊀应㊀用
IntelligentComputerandApplications
㊀
㊀2023年3月㊀
Mar.2023
㊀㊀㊀㊀㊀㊀
文章编号:2095-2163(2023)03-0051-08
中图分类号:TP389.1
文献标志码:A
一种基于权值缩减克服IR-Drop的忆阻器阵列神经网络训练方法
缪伟伟
(合肥工业大学计算机与信息学院,合肥230601)
摘㊀要:忆阻器阵列(Memristor-BasedCrossbar)能够有效地加速神经网络中的矩阵运算㊂然而,忆阻器阵列会受到IR-Drop的影响,降低到达忆阻器的计算电压,导致计算精度下降㊂为减轻IR-Drop对忆阻器阵列计算精度的影响,提出了一种基于权值缩减的神经网络训练方法㊂首先,在网络训练中添加L2正则化,使训练后的神经网络权值尽可能分布在较小值范围,以此提高计算精度对IR-Drop的鲁棒性㊂然后,利用基于行列约束的映射算法将大权值映射到受IR-Drop影响小的忆阻器上,减小忆阻器阵列精度损失㊂最后,迭代减小受到IR-Drop影响大的大权值,再通过重训练调整被减小值的附近权值,提升忆阻器阵列的计算精度㊂实验结果表明,所提方法能够有效地提高忆阻器阵列的计算精度,最多可以将忆阻器阵列计算精度提升至接近理想状态,精度损失小于1%㊂
关键词:忆阻器阵列;神经网络训练;IR-Drop;映射算法
Anetworktrainingmethodofmemristor-basedcrossbarby
weightreductiontoovercomeIR-Drop
MIAOWeiwei
(SchoolofComputerScienceandInformationEngineering,HefeiUniversityofTechnology,Hefei230601,China)
ʌAbstractɔMemristor-basedcrossbarcaneffectivelyacceleratematrix-vectormultiplicationinneuralnetwork.However,theaccuracyofcrossbarmayseriouslydecreaseduetoIR-Drop.ToreducetheimpactofIR-Droponthememristor-basedcrossbar,thispaperproposesanetworktrainingmethodofmemristor-basedcrossbarbyweightreduction.Firstly,L2regularizationisaddedtothenetworktrainingtoshrinktheweightdistributiontoasmallvaluerange,whichincreasetheresistanceofmemristorincrossbartoredu
cetheimpactofIR-Drop.Then,amappingalgorithmwiththeconstraintofrowandcolumnisusedtomaptheweighttothememristorlessaffectedbyIR-Drop,whichavoidsthatlargeweightsmappedthememristorswithhighIR-Drop,increasingtheaccuracylossofmemristor-basedcrossbarcausedbyIR-Drop.Finally,theweightsmappedtothememristorwithhighIR-Droparereducediteratively,andtheaccuracyofthememristor-basedcrossbarcanberestoredthroughretraining.Theexperimentalresultsshowthattheproposedtechniquecanpulltheclassificationaccuracyupclosetoideallevelwiththelossoflessthan1%.ʌKeywordsɔmemristor-basedcrossbar;neuralnetworktraining;IR-Drop;mappingalgorithm
基金项目:国家自然科学基金(U1613217,62174048)㊂
作者简介:缪伟伟(1997-),男,硕士研究生,主要研究方向:人工神经网络计算机㊂收稿日期:
2022-04-28
0㊀引㊀言
深度神经网络(DNN)中存在大量的矩阵乘法运算㊂然而随着神经网络层数的不断增加,利用传统处理器实现矩阵乘法会造成计算时间过长和能耗过大㊂新型器件忆阻器(memristor)为实现矩阵乘法提供了一种更高效的方式[1],能够以O(1)的时间复杂度实现矩阵乘法㊂并且与传统的CMOSASIC和GPU解决方案相比,忆阻器阵列可以将能效提高100倍以上[2-3]㊂忆阻器阵列实现矩阵乘法的结构如图1所示㊂
V n V i
V 2V 1
g i j
I 1
I 2
I j
I m
图1㊀利用忆阻器阵列实现矩阵乘法
Fig.1㊀
Theimplementationofmatrixmultiplicationusingmemristor-basedcrossbar
㊀㊀图1中,忆阻器的电导值gij表示神经网络的权值,为忆阻器电阻值的倒数㊂对忆阻器阵列的第i
行施加一个电压矢量Vi,流经第i行第j列忆阻器的电流为gij㊃Vi,第j列的输出电流Ij=ðni=1gij㊃Vi,即为
输入向量与权值矩阵第j列的乘积结果㊂
㊀㊀尽管忆阻器具有很好的应用前景,但是由于IR-Drop问题,会导致忆阻器阵列计算精度下降
㊂IR-Drop会造成输入端电压与实际到达忆阻器的计算电压之间存在偏差,导致忆阻器的实际输出偏移理想输出,忆阻器阵列计算精度降低㊂在本文中,将输入端电压称为理想计算电压,实际到达忆阻器的计算电压称为实际计算电压㊂忆阻器离输入端和输出端越远,IR-Drop造成的理想计算电压和实际计算电压的偏差越大,忆阻器的理想输出电流和实际输出电流的偏差也越大[4-5]㊂并且随着忆阻器阵列规模的增大,IR-Drop对忆阻器阵列计算精度的影响也越明显㊂例如,当忆阻器阵列规模从16ˑ16增大到128ˑ128时,计算精度降低了35%[5]㊂
㊀㊀为减轻忆阻器阵列中IR-Drop的影响,文献[5]㊁文献[6]分别提出主成分分析(PrincipalComponentAnalysis,PCA)和奇异值分解(SingularValueDecomposition,SVD)的方法将大矩阵分解为2个小矩阵的乘积㊂通过减小忆阻器阵列规模,降低IR-Drop对忆阻器阵列计算精度的影响㊂文献[7]㊁文献[8]分别在忆阻器阵列每列的输出端添加对应的平均电流偏移量以及调整每列跨阻放大器(TIA)的阻值,以此直接减小列输出的偏差㊂文献[4]㊁文献[9]在网络训练中加入忆阻器阵列的IR-Drop模型,使训练出的权值对IR-Drop具有更好的鲁棒性㊂IR-Drop会降低忆阻器的实际计算电压,进而影响忆阻器的输出结果㊂但忆阻器的输出结果等于忆阻器的实际计算电压与权值的乘积㊂忆阻器的权值越小,IR-Drop造成的输出结果偏差也越小㊂假设理想计算电压为1V,忆阻器的实际计算电压为0.8V㊂当忆阻器权值为5时,忆阻器的输出结果偏差则为|1-0.8|ˑ5=1㊂而当
忆阻器权值为1时,忆阻器的理想输出结果与实际输出结果的偏差为|1-0.8|ˑ1=0.2㊂同时映射到忆阻器的权值越小,忆阻器阻值越大,IR-Drop对忆阻器实际计算电压的影响也就越小,造成忆阻器输出结果偏差也越小[8]㊂因此,小权值会使忆阻器输出结果对IR-Drop有更好的鲁棒性㊂
为减小IR-Drop对忆阻器阵列计算精度的影响,本文提出了一种基于权值缩减的神经网络训练方法(ANetworkTrainingWeightReduction),为叙述方便在后续部分中简称为NTWR㊂首先,在网络训练中添加L2正则化,以此使训练出的权值尽可能小,从而提高忆阻器阵列计算精度对IR-Drop的鲁棒性㊂然后,本文通过基于行列约束的映射算法将大权值映射到离输入端和输出端较近的位置,避免大权值映射到
IR-Drop影响较大的忆阻器上,产生较大的输出结果偏差㊂在确定权值与忆阻器的映射关系后,可能仍存在部分大权值映射到离输入端和输出端较远处的忆阻单元上,导致忆阻器阵列计算精度降低㊂最后,减小映射到离输入端和输出端较远处的大权值,再利用重训练调整附近权值以恢复由于减小权值带来的计算精度损失㊂不断迭代减小权值和重训练,直到忆阻器阵列的计算精度无法提升为止㊂
1㊀基于权值缩减的神经网络训练方法1.1㊀NTWR方法的整体流程
NTWR方法的整体流程如图2所示㊂由图2可看到,第一步是在神经网络训练中添加L2正则化,使
训练出的权值分布在较小值的范围,从而减小IR-Drop对忆阻器阵列计算精度的影响㊂第二步是在得到训练好的网络权值后,执行行列映射算法将大权值映射到离输入端和输出端较近的位置,避免大权值映射到IR-Drop影响较大的位置,造成较大的计算精度损失㊂第三步是在执行映射算法后,减小映射在IR-Drop影响较大处的权值,以此降低IR-Drop造成的输出结果偏差㊂再执行重训练恢复由于权值减小造成的计算精度损失,直到忆阻器阵列计算精度无法提升为止㊂
执行基于行列约束的映射
算法确定映射关系
迭代减小计算结果偏差大
的权值
添加L2正则化训练网络权值
执行重训练以恢复精度
计算精度是否有提升?
输出结果
Y
N
①
②
③
图2㊀NTWR的总体流程
Fig.2㊀TheoverallprocessofNTWR
25智㊀能㊀计㊀算㊀机㊀与㊀应㊀用㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀第13卷㊀
1.2㊀L2正则化
在本节中,将详细探讨L2正则化在神经网络权值训练中的作用㊂研究时在训练中增加L2正则化,是因为L2正则化在训练过程中对大权重具有更大的偏向性,可以将权重分布缩小到较小的值范围[10],进而提高忆阻器阵列的计算精度对IR-Drop
的鲁棒性㊂因此本文提出在损失函数中增加L2正则化的惩罚项,利用L2正则化使训练出的权值尽可能小,从而降低IR-Drop的影响㊂这里需用到的数学公式为:
L^
W()=LW()+λ㊃X
2
(1)
㊀㊀其中,W是神经网络的权值矩阵;λ是正则化参数,用来控制L2正则化对损失函数L^
W()的重要性;X
2
是L2正则化的惩罚项㊂
㊀㊀目前,比较流行的为L1正则化方法和L2正则化方法,可分别由如下公式进行描述:
X1
=
ðn
i=1
xi(2)X
2
=
ð
ni=1
xi
2
()
1/2
(3)
㊀㊀如果在网络训练中添加L1正则化,则会使网络权值为零,导致训练出的神经网络稀疏化㊂尽管稀疏化使大部分权值为零,不会对神经网络的计算精度造成较大的精度损失[11],但会使神经网络的计算精度对训练出的非零权值更加敏感㊂在IR-Drop影响下,会造成非零权值的输出结果出现偏差,对忆阻器阵列计算精度产生更大的影响㊂而由文献[12]
分析可知,L2正则化可以降低神经网络的敏感性,从而提高神经网络的鲁棒性㊂执行神经网络训练后,可以得到L2正则化后的权值矩阵㊂下面将对权值矩阵的映射算法进行研究阐述㊂1.3㊀基于行列约束的映射算法
在本节中,将详细介绍基于行列约束的映射算法(MappingalgorithmwiththeConstraintofRowandColumn,MCRC)的具体步骤㊂MCRC算法的主要思
想是将权值矩阵中未确定映射关系的最大值在行列约束下映射到离输入端和输出端最近的忆阻器上,以此最小化IR-Drop对忆阻器阵列计算精度的影响㊂其中,行列约束指的是权值矩阵同一行和同一
列的权值在映射到忆阻器阵列后仍在同一行和同一列㊂之所以需要令确定的映射关系满足行约束,是因为施加在忆阻器阵列一行的理想计算电压是同一个,而不同行的理想计算电压是不同的㊂例如,若将权值矩阵整个第1行的权值映射到忆阻器阵列第2行,则只需要在忆阻器阵列第2行施加权值矩阵第
1行的理想计算电压V1,权值矩阵第1行第j列的输出结果仍为V1ˑw1j,如图3(a)所示㊂但是若权值矩阵第1行的w11和w12分别映射到忆阻器阵列第2行和第3行,则权值矩阵第1行第2列的输出结果不再是V1ˑw12㊁而是V3ˑw12,如图3(b)所示㊂同理,每一列的输出结果等于该列所有忆阻器的输出结果之和,如果权值矩阵一列的权值被映射到忆阻器阵列的不同列上,同样会导致输出结果出现误差㊂故权值矩阵与忆阻器阵列的映射关系也需要满足列约束㊂w 11w 12w 13V 1w 21w 22w 23V 2w 31
w 32
w 33V 3
V 1
V 1V 3
w 11w 12w 13V 1w 21w 22w 23V 2w 31
w 32
w 33V 3
(a)满足行约束的映射㊀㊀㊀㊀㊀㊀(b)不满足行约束的映射
图3㊀基于行约束映射的举例
Fig.3㊀Theexampleofmappingwiththeconstraintofrow
㊀㊀忆阻器阵列实现多层神经网络时,每层忆阻器
阵列的输出都会连接下一层忆阻器阵列的输入,如图4所示㊂如果调整第n层权值矩阵与忆阻器阵列的映射关系,例如将权值矩阵第i行映射到忆阻器
阵列第j行,则原连接到第n层第i行的第n-1层的输出也需要重新连接到第n层的第j行㊂同理,如果要将第n层权值矩阵第i列映射到忆阻器阵列第j列,则原连接第n层第i列和第j列的第n+1层的输入也需要交换连接㊂因此,如果想要独立映射每层
权值矩阵的M行或M列,而不改变与相邻层的连接,则需要使用MˑM的路由模块来连接相邻层的忆阻器阵列,会带来较大的硬件开销[13]㊂而MCRC算法是一种对忆阻器阵列通用的映射算法,无需得知忆阻器阵列的相关信息㊂因此可以在确定每层权值矩阵与忆阻器阵列的映射关系后再制造忆阻器阵列,在多层神经网络中无需考虑映射带来的硬件开销,只需确定的映射关系满足行列约束㊂故本文提出的MCRC算法可以同时执行行映射和列映射㊂
3
5第3期
缪伟伟:一种基于权值缩减克服IR-Drop的忆阻器阵列神经网络训练方法
I1I2I m I1I2I m I1I2I m
第n-1层第n层第n+1层
图4㊀忆阻器阵列实现多层神经网络
Fig.4㊀Theimplementationofmulti-layerneuralnetworkusingmemristor-basedcrossbar
㊀㊀MCRC算法的伪代码具体见算法1㊂
算法1㊀MCRC算法
输入㊀权值矩阵Wnˑm,距离矩阵Dnˑm
输出㊀输出映射结果
1.Tnˑm=|Wnˑm|,mapped_row[n]和mapped_col[m]全部置为-1,occupied[n][m]全部置为false;
2.While(存在未确定映射关系的权值)3.㊀在当前Tnˑm中到最大值,将其行序号和列序号分别赋给row,col
4.㊀visited[n][m]=occupied[n][m]㊀㊀㊀㊀㊀//将occupied数组中的信息复制到visited数组中
5.㊀While(true)
6.㊀在当前Dnˑm到visited[i][j]=false的最小值,将其行序号和列序号分
别赋给i,j7.㊀If((mapped_row[i]=-1ormapped_row[i]=row)and(mapped_col[i]=-1ormapped_col[j]=col))㊀㊀//判断是否满足行列约束
8.㊀㊀mapped_row[i]=row,mapped_col[j]=col;㊀㊀//将确定的映射关系存储到数组中9.㊀㊀occupied[i][j]=true,T[row][col]=-1;㊀㊀㊀//更新状态
10.㊀㊀break;㊀㊀㊀//跳出当前while循环11.㊀End
12.㊀visited[i][j]=true;
㊀㊀//标记当前位置被访问
13.End
14.End
15.输出映射结果
在算法中,输入为权值矩阵Wnˑm和距离矩阵D
nˑm㊂距离矩阵第i行第j列的元素Dij表示忆阻器阵列第i行第j列的忆阻器离输入端和输出端的距离㊂以离输入端和输出端最近的忆阻器为原点,字线为横坐标,位线为纵坐标,建立坐标轴,如图5所示㊂以横坐标和纵坐标之和表示忆阻器离输入端和输出端的距离,如Dij=i+j㊂
算法1中,伪代码的第1行,对矩阵Tnˑm㊁数组mapped_row㊁mapped_col和occupied进行初始化㊂T
nˑm
为Wnˑm的绝对值矩阵,其中Tij=|Wij|㊂数组mapped_row和mapped_col分别用于存储确定的行映射关系和列映射关系㊂数组occupied用于标记忆阻器阵列中忆阻器是否已确定映射关系,occupied[i][j]=true表示忆阻器阵列第i行第j列的忆阻器已确定映射关系㊂
位线
V n
V i
V2
V1
字线
(n,0)
(i,0)
(1,0)
(0,0)
(n,1)
(i,1)
(1,1)
(0,1)
(n,j)
(i,j)
(1,j)
(0,j)
(n,m)
(i,m)
(1,m)
(0,m)
I1I2I j I m
图5㊀在忆阻器阵列上建立坐标轴
Fig.5㊀Thecoordinatesystembasedonmemristor-basedcrossbar㊀㊀下面通过具体的例子来阐释基于MCRC算法的具体执行过程㊂假设矩阵Tnˑm㊁距离矩阵Dnˑm和数组occupied分别为T(0)3ˑ3㊁D3ˑ3和occupied(
0)3ˑ3㊂研究推得的各矩阵值具体如下:
T(0)3ˑ3=
0.40.91
0.30.10.2
0.50.60.7
é
ë
ê
ê
ê
ù
û
ú
ú
ú
㊀D3ˑ3=
234
123
012
é
ë
ê
ê
ê
ù
û
ú
ú
ú
occupied(0)3ˑ3=
falsefalsefalse
falsefalsefalse
falsefalsefalse
é
ë
ê
ê
ê
ù
û
ú
ú
ú
㊀㊀算法1伪代码第3 4行,按照Tnˑm中值大小降序确定权值的映射关系,令row和col分别为Tnˑm中最大值的行序号和列序号㊂利用数组visited标记
45智㊀能㊀计㊀算㊀机㊀与㊀应㊀用㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀㊀第13卷㊀
忆阻器是否被访问过或已确定重映射关系㊂例如在T(0)3ˑ3中,最大值为T22=1,row=2,col=2㊂
算法1伪代码第6行,按照离输入端和输出端的距离升序选择能在行列约束下与权值确定映射关系的忆阻器,令i和j分别为Dnˑm中visited[i][j]=false的最小值的行序号和列序号㊂例如在当前D3ˑ3中visited[i][j]=false的最小值为D00,i和j均为0㊂
算法1伪代码第7 11行,判断权值矩阵第row行第col列权值映射到忆阻器阵列第i行第j列忆阻器是否满足行列约束㊂如果满足行列约束,则保存
确定的映射关系,更新相应状态㊂例如在当前T(0)
3ˑ3中,mapped_row[0]和mapped_col[0]均为-1,即
忆阻器阵列第0行和第0列都未确定映射关系㊂因此,权值矩阵第2行第2列的权值与忆阻器阵列第0
行第0列确定映射关系㊂mapped_row[0]=2,
mapped_col[0]=2,T(0)3ˑ3和occupied(0)
3ˑ3分别更新为T(1)3ˑ3和occupied(1)3ˑ3,跳出当前while循环㊂研究推
得的各矩阵值具体如下:
T(1)3ˑ3=0.40.9-10.30.10.20.50.60.7éëêêêùû
úúúoccupied(1)3ˑ3
=falsefalsefalsefalsefalsefalsetruefalsefalseéëêêêùû
úúú㊀㊀算法1伪代码第2 14行,若还存在未确定映
射关系的权值,则继续执行算法㊂如T(1)
3ˑ3中仍存在
未确定映射关系的权值,因此继续执行算法㊂在T(1)3ˑ3中,最大值为T21=0.9,row=2,col=1㊂将
occupied(1)3ˑ3的信息复制到数组visited中㊂在当前D3ˑ3中visited
[i][j]=false的最小值为D10,i=1,
j=0㊂因mapped_col[0]=2且mapped_col[0]ʂ
1,即忆阻器阵列第0列已经确定映射关系,且并不是权值矩阵第1列确定的映射关系,因此不满足行列约束㊂将visited[1][0]置为true,继续寻当前D3ˑ3中visited[i][j]=false的最小值㊂此时满足条
件的最小值为D01,i=0,j=1㊂mapped_row[0]ʂ1但mapped_row[0]=2,并且mapped_col[1]=-1,满足行列约束㊂因此,权值矩阵第2行第1列的权值与忆阻器阵列第0行第1列确定映射关系㊂
mapped_row[0]=2,mapped_col[1]=1,T(1)
3ˑ3和
occupied(1)3ˑ3分别更新为T(2)3ˑ3和occupied(2)3ˑ3,跳出当前while循环㊂由于在T(2)3ˑ3中仍有未确定映射关系
的权值,因此继续根据上述步骤执行算法,直到所有
权值确定映射关系㊂研究推得的各矩阵值具体如下:
T(2)3ˑ3=0.4-1-10.30.10.20.50.60.7éëêêêùû
úúúoccupied(2)3ˑ3
=falsefalsefalsefalsefalsefalsetruetruefalseéëêêêùû
úúú㊀㊀算法1伪代码第15行,当Tnˑm中所有值确定映
射关系后,输出映射结果㊂如对T(2)3ˑ3继续执行算法,
可以得到映射后的T3ˑ3为Tmapped
正则化网络3ˑ3㊂推得的矩阵值具
体如下:
Tmapped
3ˑ3
=0.2
0.10.30.70.60.510.90.4éë
êêêùû
úúú1.4㊀重训练算法
尽管利用MCRC算法可以尽可能避免大权值映射到离输入端和输出端较远的忆阻器上,但大权值若聚集于一行或一列,则无法避免地会有部分较大权值被映射到离输入端和输出端较远的忆阻器上,导致忆阻器阵列计算精度的下降㊂因此,本文提出一种重训练算法,通过减小映射到离输入端和输
出端较远处的权值,降低IR-Drop对输出结果的影响㊂再通过重训练,恢复权值减小造成的计算精度损失㊂重训练算法的伪代码具体见算法2㊂算法2㊀重训练算法
输入㊀映射后的权值矩阵Wmappednˑm,距离矩阵Dnˑm,偏差矩阵,IR-Drop影响矩阵Snˑm
输出㊀输出新的权值矩阵Wᶄnˑm
1.While(忆阻器阵列计算精度仍可提升)2.㊀初始化Modified[n][m],全部置为false㊀㊀㊀㊀
//用于标记修改过的权值
3.㊀在当前Snˑm中到最大值,将对应的权值赋给Wij
4.㊀Wij=Wij/2㊀//减小权值5.㊀Modified[i][j]=true㊀㊀㊀㊀
//将权值进行标记,重训练中不更新该权值
6.㊀执行重训练,得到新的权值矩阵Wᶄnˑm7.㊀测试重训练后忆阻器阵列的计算精度
8.㊀重新计算Snˑm9.End
10.输出矩阵Wᶄnˑm
在算法中,输入为映射后的权值矩阵Wmappednˑm㊁距
离矩阵Dnˑm以及IR-Drop影响矩阵Snˑm㊂Wmappednˑm
5
5第3期
缪伟伟:一种基于权值缩减克服IR-Drop的忆阻器阵列神经网络训练方法
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论