英语原文共 26 页
摘要:
近期,在具有长短期记忆(LSTM)单元的递归深层神经网络的突破引领了人工智能领域的主要突破。然而,由于内存容量和数据通信带宽的限制,最先进的拥有显著增长的复杂度和大量参数的LSTM模型在计算能力上存在瓶颈。这篇文献中,我们通过实验证明了LSTM可以在忆阻器阵列上实现,它以更小的电路面积存储巨量的参数,并且具有存算一体能力(in-memory computing),以此来绕过“冯·诺依曼瓶颈”。我们通过解决实际的回归和分类问题来演示该系统的能力,这表明通过忆阻LSTM阵列在实现低功耗、低延迟的边缘推断硬件平台是很有希望的。
介绍:
近期人工智能领域的成功很大程度上来源于具有各种微观结构的深层神经网络的进步,其中长短期记忆(LSTM)网络是重要的部分。通过实现学习过程中有选择性的记忆或遗忘输入的样本历史,基于LSTM的递归神经网络(RNN)实现了对时序数据的分析,例如数据预测、自然语言理解、机器翻译、语音识别、图像监控等等。然而,传统的基于数字电路的LSTM网络因其复杂的结构,而具有高额的推断延迟和高功耗等缺点。在物联网时代,越来越多的应用涉及到现场处理时序数据,这些问题也变得越来越突出。尽管在设计新结构以加速LSTM神经网络的努力越来越多,运算器和内存之前的低并行度和有限的传输带宽仍然是突出的问题。因此迫切需要为LSTM网络寻找一种代替的计算模式。
忆阻器是一种两端口的具有记忆特性的电阻,可通过本身的物理规律实现在同一个位置进行计算和存储。这种结构完全不需要在存储器与运算器之间进行数据传输。忆阻器交叉阵列在实现了前向传播全连接神经网络上展现了卓越的优势,相比于CMOS电路,它具有更低的功耗和更低的推断延时。一些忆阻器的短期记忆效应也被应用于储备池计算。另一方面,最先进的深度神经网络比全连接网络具有更精巧的微观结构,其中LSTM是近期成功处理时序数据的原因。据我们所知,在忆阻阵列中实现LSTM还没有被报道过,主要是因为由于大型阵列相对缺乏。
在这项工作中,我们展示了我们在实验中在忆阻交叉阵列上实现的LSTM网络。忆阻器被整体集成到晶体管上,形成“1T1R”(one-transistor one-memristor)细胞。通过将忆阻器全连接网络与忆阻器递归LSTM网络连接,我们用这个多层LSTM-RNN执行了在线训练与推断,并解决了回归与分类等问题。这个LSTM网络在实验中成功实现了预测乘客数量和人类步态识别。这项工作表明,基于忆阻器交叉阵列的LSTM网络是一种具有高速和高能量效率的新型计算范式。
结论:
LSTM忆阻器交叉阵列:含有LSTM单元的神经网络是递归的,不仅是不同层间的节点全连接,而且还在不同的时序将同一层的节点循环地连接起来,如图1a所示。LSTM单元的循环连接同时还引入了控制记忆与遗忘的门控单元,实现了长期相关性的学习。标准LSTM单元中的数据流如图1b所示,并由式(1)(线性矩阵运算)和式(2)(门控非线性激活)表征,或等效的表达为“方法”部分中的式(3)-式(5)。
其中,xt是当前时刻的输入向量,ht和ht-1分别是当前时刻和前一时刻的输出向量,ct是内部细胞状态,☉表示数组元素依次相乘。sigma;表示逻辑Sigmod函数,it,ft,ot分别表示输入门,遗忘门和输出门。模型参数存储在权重W中,递归权重U和偏置参数b分别用于细胞激活(a)和每个门(i,f,o)。由于这种复杂的结构,先进的包含了LSTM单元的RNN含有大量的模型参数,通常超过了片上存储的容量,有时甚至超过了片外存储的容量。因此,网络的训练和推断需要将参数从独立的存储芯片中传输到处理单元进行运算,而且芯片间的数据传输也严重地限制了基于传统硬件的LSTM-RNN的性能。
为了解决这一问题,我们采用了忆阻器交叉阵列来搭建LSTM网络,并将网络所需的参数存储在阵列中忆阻器的电导值中。该神经网络的拓扑结构和数据流向展示在图1c中。线性矩阵乘法实在忆阻器交叉阵列中进行的,消除了来回传递权值的需要。模型的参数存储在执行模拟矩阵乘法的忆阻器阵列中。在本工作中,我们将一个LSTM层与一个全连接层相连,这些层未来可以级联成更复杂的结构。为便于演示,当前的工作在软件中实现了LSTM门控单元和全连接层的非线性单元,但它们是可以在模拟电路中实现的,无需进行数模转换,进一步显著降低能耗和推断延迟。
LSTM的模拟矩阵单元实现在128*64的1T1R忆阻器阵列上,并集成在一个晶圆厂制造的商业晶体管阵列上(图2a-2c)。Ta/HfO2忆阻器展现了稳定的多阶电导,使得在模拟域实现矩阵乘法成为可能。通过晶体管控制正向电流,集成的忆阻阵列通过加载带有写验证或不带有写验证的预定义电导矩阵进行编程。LSTM层的推断过程由加在阵列行线上的电压,并从虚地的列线上读出电流来实现。读出的电流向量是忆阻电导矩阵与输入电压幅值向量的点积,直接由物理定律求得(乘法由欧姆定律实现,加法由基尔霍夫电流定律实现)。LSTM模型中的每个权重参数都是由同一列线的两个忆阻器之间的电导差进行编码,并通过在相应行线上施加振幅相同极性相反的电压,在阵列上相减得到最终的电流(图2a)。对表示偏置的连接着忆阻器的行线上施加的电压在不同的样本和不同的时序上都是固定的。读出电流由公式(1)描述并非线性激活和门控的at,it,ft,ot四部分组成,之后转换成电压值。电压向量ht同时输出到下一层(本工作中是全连接层)和下一时刻的LSTM层本身(图1c)。
神经网络在忆阻阵列内部进行现场训练,以不忽略可能的硬件缺陷,例如有限的设备产量,电导状态的不一致性和噪声,导线电阻,非对称性等等。在训练之前,所有的忆阻器电导值都是由一组横跨所有忆阻器设备的电压脉冲和一个固定幅值的同步门电压初始化的。在训练期间,对一批时序数据(小批量)执行初始推断,并产生顺序输出。然后调整忆阻器电导值,使得推断输出更接近目标输出(使用一个损失函数求值,见“方法”)。预期的电导值更新(△G)通过时间反向传播算法(back-propagation through time,BPTT)得出(详见“方法”)。忆阻器的电导值由一个双脉冲方案来进行更新,之前的研究表明,该方法能有效地实现线性和对称的忆阻电导的更新。
回归实验:
首先我们使用忆阻LSTM来预测下个月的航空乘客数量,这是一个典型的回归问题。我们在一个128*64 1T1R忆阻阵列中构建了双层RNN网络,每一层都在阵列的不同分区中。RNN的输入是present month航空旅客人数,输出subsequent month的预计人数。RNN的网络结构展示在图3a中。我们使用了2040个忆阻器(34*60阵列)所代表的1020个突触权重(图3b)构成了包含一个数据输出端,一个固定偏置输入端和十五个对自身的递归输出端的LSTM单元。神经网络的第二层是一个全连接层,该层有来自LSTM层的十五个数据输入端和一个偏置输入端。LSTM单元的递归权值代表了网络学习到的关于何时该记忆和何时该遗忘的知识,因此网络的输出同时依赖与当前的输入值和此前的输入值。我们为这个预测任务选择的数据集包含了从1949年1月到1960年12个月共144个月的每月航空旅客数量,前96个月作为训练集,剩余的48个月作为测试集(图3c)。推断过程中,将乘客数线性地转换为电压幅值(小于0.2V,以免干扰忆阻器电导值)。最终的电流值经归一化处理后表示预测的乘客数值。训练过程是通过BPTT算法(见“方法”),通过随机梯度下降,使训练集数据与网络输出之间的均方误差(如式7)最小化。800个训练周期后在推断过程中的加在忆阻器阵列上的原始电压和输出的原始电流展示在图3d-3g中。相应的电导和权值见补充图1,尽管他们既不用于训练也不用于推断。实验训练结果如图3c所示,经过800个周期的训练后,网络学会了预测训练数据集和位置的测试数据集。
分类实验:
我们进一步应用忆阻器LSTM-RNN来进行人类步态识别任务。步态作为一种生物特征,在进行远距离识别时具有独特的优势,这是其他的生物特征(如人脸)占的像素过小以至于无法识别。在由于伪装和缺乏光照而无法进行人脸识别的情况下,步态识别变得更加重要。为了在监视时使用步态识别,最好的办法是部署多个摄像机在本地执行推断,而不是将原始视频数据发送回云端服务器。边缘推断应该可以在低功耗和小通信带宽的情况下执行,但仍然要实现低延迟。
忆阻器LSTM-RNN采用从视频帧中提取的特征向量作为输入,将分类结果作为序列末端的电流输出。(图4a)我们通过分割128*64的忆阻器阵列来实现双层RNN,其中第一层的十五个LSTM单元通过64*56个突触全连接到50维的输入向量(在128*56忆阻阵列中实现)。十四个LSTM单元进一步全连接到八个输出节点。分类结果由全连接层输出节点输出向量的最大维数表示。
为了演示忆阻器LSTM网络的核心操作,我们通过软件从视频帧中提取了输入LSTM-RNN的特征向量。我们首先从USFNIST步态数据库的原始视频帧中预提取了128*88像素的人体轮廓,然后处理成128维的宽度轮廓向量然后将向量降维到50维,以适应我们阵列的大小(图4c)。我们从原始数据集的75个人中选择了八个不同的人提取了视频序列。这些视频覆盖了不同的场景下人们穿着两双不同的鞋子,站在两种不同的地面上(草地或混凝土),从两种不同的视角拍摄。将视频序列进一步分割成664个序列,每个序列25帧,详见补充图2。随机抽取数据集中的597条序列进行训练,其余67条未知序列进行分类测试。在最先进的深层神经网络中,输入LSTM层的特征向量通常由多个卷积层或全连接层自动提取。在不久的将来,当大型阵列可用时,特征向量的提取也可以在忆阻交叉阵列中实现。
训练和推断过程在忆阻阵列上进行,过程类似于回归实验(见“方法”)。训练的目的实在贝叶斯概率下最小化交叉熵(“方法”中的式8),也就是损失函数,由上个时序的电流和地的情况计算出来的(图4a)。期望的权重更新值由基于由BPTT算法计算出的权重梯度的均方根传播(RMSprop)优化,并对五十个训练序列中的一小批进行推断运算后施加到忆阻阵列上。计算每个小批量推断过程的平均交叉熵,如图4d所示,从中可以看出忆阻交叉阵列训练的有效性。在每个训练周期后,用单独的测试集进行分类测试。分类准确率在训练器件稳步提升,50个周期内最大准确率为79.1%,与无缺陷仿真的结果(图4e)吻合较好,验证了验证了现场训练在没有手动调整器件参数的情况下对硬件缺陷的适应性。
讨论:
综上所述,我们构建了具有忆阻LSTM层和忆阻全连接层的多层RNN。在回归和分类任务上的成功展示了不同配置的忆阻神经网络的通用性。研究结果为在同一芯片上集成多个不同的忆阻阵列开辟了新的方向,这将最小化数据传输的需求并显著削减深层神经网络中的传输延迟和功耗。
方法:
1T1R阵列集成:晶体管阵列是在商业晶圆上使用2mu;m节点技术制造的。之后我们在大学的超净间中将忆阻器集成到阵列中去。阵列中的晶体管被用作选通管,以减轻阵列中的漏电流问题,并使电导的调整更加精确。在BEOL(Back-end-of-the-line)工艺中,为了降低导线电阻(细胞之间的电阻约0.3Omega;),我们还制作了两层金属导线作为行线和列线。阵列中的低导线电阻是保证矩阵乘法精度的关键因素之一。忆阻器是在UMass Amherst 超净间中在晶体管阵列的上层制作的,以溅射钯为底电极,原子层沉积铪作为开关层,溅射钽作为顶电极。
双层LSTM-RNN中的推断:本工作中的网络分为两层,第一层是LSTM单元,第二层是全连接层。由于网络的级联结构,该算法可以扩展为层数更大的神经网络。xt为网络的输入,LSTM单元的激活结果at由式(3)给出。
控制输出的输入门、遗忘门、输出门由式(4)定义。
LSTM层的输出(即网络的隐含层输出)由式(5)给出。式(3)(4)(5)等价于正文中的式(1)(2),其中线性和非线性运算被分离开来,便于理解。
RNN的最终输出由全连接层读出,其函数如式(6)所示。
其中f是全连接层中的非线性激活函数。具体来说,我们在航空旅客数量预测实验中使用了Logistic sigmoid函数,在人体步态识别实验中使用了Softmax函数。
通过BPTT
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。