忆阻器交叉开关阵列中的长短期记忆(LSTM)神经网络

忆阻器交叉开关阵列中的长短期记忆(LSTM)神经网络

原文:Long short-term memory networks in memristor crossbar arrays
作者:CanLi. et al.
期刊:Nature machine intelligence

导师布置的寒假任务之一,翻译指定的几篇文献,其中最感兴趣的就是这篇和2020年清华在nature上那篇完全基于忆阻器的存算一体化系统的文章。以下翻译了实验结果之前的部分和实验结果中的忆阻器交叉开关阵列的部分。

摘要:

​ 最近,基于长短期记忆(LSTM)单元的循环深度神经网络的突破造就了人工智能领域的重大进步。然而,由于有着显著增加的复杂度和大量的参数,最前沿的LSTM模型受到计算能力方面的瓶颈,这些瓶颈来源于有限的存储能力和有限的数据传输带宽。在本文中,我们从实验上证实了在一个LSTM中,不同时间步长共享的突触权重可以在一个忆阻器交叉开关阵列上实现,它有着较小的电路尺寸且能够存储大量的参数,同时它所提供的存内计算能力有助于克服“冯诺依曼瓶颈”。我们展示了在解决实际中的回归和分类问题方面,我们的交叉开关阵列作为核心部件所表现的能力,表明基于忆阻器的LSTM是用于边缘推断的理想低功耗和低延迟硬件平台。

正文:

​ 最近在人工智能领域的成功,很大程度上得益于深度神经网络方面的的进步。在神经网络的众多架构中,LSTM是其中重要的一种。通过控制学习过程记忆或者遗忘观测的历史数据,基于LSTM架构的循环神经网络(RNNs)在分析时间序列数据方面的应用发挥作用,例如数据预测、自然语言理解、机器翻译、语音识别和视频监控。然而,当在传统的数字电路上实现LSTM时,其复杂的架构导致了在推断延迟和电力消耗方面的退步。在物联网(IoT)时代,随着越来越多的应用涉及到数据源头处产生的时间数据处理,这些问题正变得日益突出。为了加速基于LSTM的循环神经网络,尽管在新型架构的设计上正在投入越来越多的努力,但计算单元和存储单元之间的低并行性和有限带宽仍然是突出的问题。因此,寻找LSTM网络的替代计算范式是目前迫切的任务。

​ 忆阻器是一种二端口“记忆电阻”,依据物理法则,能够在存储信息的地方进行计算(存内计算)。这种存算一体化的特点彻底地消除了在存储和计算之间传输数据的需求。建立在交叉开关结构中,忆阻器已经成功地应用于全连接前馈神经网络,并且相比基于CMOS实现的相同部分,展现出在功耗和推断延迟方面的巨大优势。一些忆阻器的短期记忆效应也已经被用于储备池计算。另一方面,最前沿的深度神经网络,其中包括对近来时间数据处理的成功做出贡献的LSTM,建立在相比全连接网络更复杂的结构之上。LSTM在忆阻器交叉开关阵列上的实现还有待证实,主要是因为大型忆阻器阵列相对缺乏。

​ 在本文中,我们证实了LSTM网络的一个核心部分在忆阻器交叉开关阵列上实验上的实现。忆阻器单片地集成到晶体管上来实现单晶体管-单忆阻器的单元。通过将一个循环LSTM网络连接到一个全连接网络上,我们实施了这个用于回归和分类问题的、基于LSTM的多层循环神经网络的原位训练和推断,其中,在训练和推断过程中的所有矩阵乘法和更新用数字计算推断,并且在一个忆阻器交叉阵列上物理地实现。这些LSTM网络在忆阻器试验成功地预测了航班乘客数量和基于步态的单人识别。这些工作表明,建立在忆阻器交叉开关阵列上的LSTM网络代表着一种有希望的、在速度和功耗上高效的替代计算范式。

结果:

用于LSTM的忆阻器交叉开关阵列:包含LSTM单元的神经网络是循环的;这是说,它们不仅完全连接不同层之间的节点,而且也在不同的时间步骤中循环地连接同一层的节点,如在Fig.1a中展示的那样。在LSTM单元中的循环连接也包含门单元来控制记忆或者遗忘,使得LSTM能够学习长时间依赖性。在一个标准的LSTM单元中的数据流如Fig.1b所展示的那样,以等式(1)(线性矩阵操作)和等式(2)(门级非线性激活)或者等价地表示成方法部分中地等式(3)到(5)。

(展示等式1和等式2)

其中, x t x^t xt是当前步骤的输入向量, h t h^t ht h t − 1 h^{t-1} ht1分别是当前和上一时间步骤的输出向量, c ^ t \hat{c}^t c^t是内部细胞单元的状态, ⨀ \bigodot 代表逐元素相乘。σ是逻辑斯蒂sigmoid函数,为输入门,遗忘门和输出门产生 i ^ t , f ^ t \hat{i}^t,\hat{f}^t i^t,f^t o ^ t \hat{o}^t o^t。模型参数存储在权重W、循环权重U和偏置参数b中,分别用于细胞激活(a)、和每个门(i,f,o)。由于这种复杂的结构,最前沿的包含LSTM单元的深度RNN包含有大量的模型参数,通常超过了片上内存(通常是静态随机存储,SRAM)、有时甚至是片外主存(通常是动态随机存储,DRAM)的正常容量。结果是,用网络的推断和训练将需要将参数从一个分离的、用于计算的芯片传输到处理单元,并且芯片之间的数据传输很大地限制了基于LSTM的RNNs在传统硬件上的表现。

为了解决这个问题,我们为一个RNN采用了忆阻器交叉开关阵列,并且将一个LSTM-RNN所需要的大量参数存储为忆阻器的电导。这个神经网络的拓扑结构和数据流方向如Fig.1c所示。线性矩阵乘法在一个忆阻器开关交叉阵列上进行原位计算,消除了来回传输权重值的必要。模型的参数被存储在与实现模拟矩阵乘法相同的忆阻器开关交叉阵列中。为了这里描述的试验,我们把LSTM层连接到一个全连接层,在未来,这些层可以被级联到更复杂的结构中。为了验证的目的,我们当前工作中LSTM层中的门级单元和全连接层中非线性单元在软件上实现,但是它们可以被不需要数字信号转化的模拟电路所实现,极大地减少了能量的消耗和推断延迟。

在我们的LSTM上的模拟矩阵单元被实现在一个 128 × 64   1 T 1 R 128\times64\space1T1R 128×64 1T1R交叉阵列中,其中忆阻器被单片地集成到一个商用代工晶体管阵列的顶部。集成的 T a / H f O 2 Ta/HfO_2 Ta/HfO2忆阻器表现出稳定的多层电导,使得模拟信号领域中的矩阵乘法得以实现。通过晶体管控制限制电流,集成的忆阻器阵列可通过加载一种通过写和验证的方式预先定义的电导矩阵(之前用于模拟信号和图像处理,以及全连接的神经网络的异位训练)或者通过一种简单的双脉冲方案(之前用于全连接神经网络的原位训练,在我们的工作中也被用于LSTM的原位训练)。通过应用忆阻器阵列行线上的电压和虚拟的地线(列线)上的电流,来执行LSTM层的推断。读取的电流向量是忆阻器电导矩阵和输入电压幅度向量的点乘,这可以直接由物理定律得到(欧姆定律用于乘法,基尔霍夫电流定律用于求和)。每个LSTM模型的参数都通过同一列两个忆阻器电导之间的差值所编码,通过把相同幅度、但是极性不同的电压加在相应的行线上,我们可以在交叉开关阵列上实现减法。连接在忆阻器上的行线上所加的电压用于表示偏置,在所有的样本和时间步长中都是固定的。忆阻器开关交叉阵列上的试验读取电流由4部分组成,代表等式(1)中所描述的向量 a ^ t , i ^ t , f ^ t \hat{a}^t,\hat{i}^t,\hat{f}^t a^t,i^t,f^t o ^ t \hat{o}^t o^t,它们是被非线性激活的、通过门级控制的,并且转化为电压(在现在的工作中通过软件实现)。电压向量 h t h^t ht之后被反馈到下一层(全连接层),并且循环到LSTM层本身在下一时间步骤中( h t − 1 h^{t-1} ht1)。神经网络在忆阻器开关阵列上进行原位训练,以弥补可能的硬件缺陷,例如有限的器件输出、电导状态上的变化和噪声、线上的电阻、模拟信号外围不对称等等。在训练之前,所有的忆阻器电导要进行初始化,是通过设置在整个忆阻器设备上的电压脉冲和晶体管上及时的定幅脉冲。在训练期间,最初的推断在一批时序数据(小批量)上进行,并且产生时序的输出。忆阻器的电导之后要被调整,以使得推断输出更加接近目标输出(通过一个损失函数来评估,见方法部分)。意欲达到的电导增量通过在片外电子设备上使用时间反向传播算法(BPTT)来计算(细节见方法部分),之后用于忆阻器阵列的试验。对于需要减少电导的忆阻器,我们首先将一个复位电压脉冲加到它们的底部电极上(顶部电极接地)来将忆阻器初始化到它们的低电导状态。我们之后将同步置位电压脉冲加到顶部电极,模拟电压脉冲加到晶体管门级电路( Δ V g a t e ∝ Δ G ΔV_{gate}\proptoΔG ΔVgateΔG),零电压加在底部电极(接地),以此来更新阵列中所有忆阻器的电导值。电导更新的方式可以按照每行或者每列的方式进行,正如在之前的工作中提到的。在实现线性和对称的忆阻器电导更新方面,这种双脉冲的方案在之前的工作中被证明是有效的。

现在的工作聚焦于探索基于使用全新模拟器件(例如忆阻器)、有着多种多样结构的神经网络(尤其是LSTM网络)的可行性。出于这个目的,我们在matlab上建立了一种有着Keras预测功能的神经网络结构,使得任意一种配置的神经网络架构能够实现,尤其是在我们的工作中,这种LSTM-全连接网络(详细结构见附图2)。用于试验的忆阻器在正向和反向传播中执行矩阵乘法和权重更新,这件事可以用一个模拟的忆阻器交叉阵列或者一个使用32位浮点计算的软件后端所代替。这个架构可以实现,交叉阵列神经网络与用相同算法及数据集的数字方法之间的一个直接比较。在开关阵列的实现中,这种结构和我们定制的片外测试系统通信(从忆阻器开关交叉阵列接收或者发送),能够提供多达128种不同的模拟电压和瞬间感受64个电流通道,完成矩阵的乘法和权重更新。

猜你喜欢

转载自blog.csdn.net/weixin_45358177/article/details/113896316
今日推荐