前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >忆阻器玩Atari游戏

忆阻器玩Atari游戏

作者头像
用户1908973
发布2024-04-26 17:44:33
680
发布2024-04-26 17:44:33
举报
文章被收录于专栏:CreateAMindCreateAMind

Single Neuromorphic Memristor closely Emulates Multiple Synaptic Mechanisms for Energy Efficient Neural Networks

单个神经形态忆阻器紧密模拟节能神经网络的多种突触机制

https://arxiv.org/pdf/2402.16628.pdf

我们的可变电阻器的六个固有功能可以被深度STPN网络中的ST-Hebb突触所利用。这样的网络已被证明在动态环境中的各种复杂任务中优于没有多功能突触的传统DNN实现

摘要 (中文1.5万字翻译仅供参考)

生物神经网络不仅包括常见的人工神经网络中假定的长期记忆和权重乘法能力,还包括更复杂的功能,如短期记忆、短期可塑性和元可塑性 - 这些功能都集中在每个突触内。在这里,我们展示了基于SrTiO3的基于忆阻器纳米器件,这些器件天生模拟了所有这些突触功能。这些忆阻器工作在非丝状、低电导区域,这使得它们能够稳定且高效地运行。它们可以作为一类生物启发式深度神经网络(DNN)中的多功能硬件突触,这类网络利用了长期和短期突触动态,并且能够进行元学习或“学会学习”。然后,通过对这种生物启发式的DNN进行训练,使其能够玩视频游戏《Atari Pong》,这是一个在动态环境中进行的复杂强化学习任务。我们的分析显示,具有多功能忆阻器突触的DNN的能耗比纯GPU实现减少了约两个数量级。基于这一发现,我们推断,具有更好突触功能模拟的忆阻器器件不仅扩展了神经形态计算的适用性,还可能改善某些人工智能应用的性能和能源成本。

关键词:STO忆阻器、非丝状、忆阻器动态、多功能突触、短期可塑性、长期可塑性、生物启发式计算

1 简介

生物神经网络(BNNs)已被用作当今最成功的人工神经网络(ANNs)的灵感来源。具体而言,人工神经网络将大脑的复杂功能抽象成一个网络图,其中节点代表神经元,连接代表突触。在这样一个网络中,每个突触传统上具有三个功能:(1)在它们的权重(W)中存储长期记忆,(2)突触传输 - 被建模为输入权重乘法,以及(3)长期可塑性 - 在训练期间更新W。然而,这样的模型只捕捉了生物突触的一部分功能,它们遵循复杂的动态和学习规则,如Hebbian可塑性[1]和短期可塑性[2,3]。此外,还存在更高阶的可塑性规则。它们不直接确定突触权重,而是确定了可塑性规则本身的属性。一个例子是对短期可塑性规则衰减时间尺度的控制,它可以根据神经元的激活从毫秒到分钟不等[4,5]。这种规则被称为元可塑性[6,7]。它们在需要不仅学习而且学会学习的复杂任务中起着重要作用,即元学习。这种突触生物物理学的复杂性和相应的可塑性规则对神经系统的功能至关重要(例如,[14–16]),但在传统的人工神经网络中缺乏。由此产生的有限生物真实性可能在某种程度上解释了人工智能系统在许多方面与人类和动物相比表现较差的原因,例如运动技能和适应动态环境[17]。此外,由于复杂任务需要大规模的网络,当今的人工神经网络消耗了大量的能量[18]。例如,ChatGPT(GPT3)背后的大型语言模型的训练消耗了1.287 GWh的电能[19],足以为100多个家庭提供一年的电力。

为了解决当前人工神经网络(ANNs)存在的问题,一个更具生物启发的突触模型被提出,其中包括短期和Hebbian可塑性以及元可塑性。这个模型被称为ST-Hebb突触,已经证明能够最优地适应连续、动态的环境。具体而言,ST-Hebb突触不仅执行传统ANN突触的前述三个功能,而且包括以下额外的角色:(4)存储随时间衰减的短期记忆(F),(5)短期可塑性 - 在训练和推断期间更新F(?F),以及(6)元可塑性 - 对衰减时间的控制。为了在深度神经网络(DNN)中利用ST-Hebb突触,最近提出了短期可塑性神经元(STPN)模型,如图1c所示。它将传统的神经元模型与ST-Hebb突触结合起来。重要的是,该模型利用了所有六个突触功能(1)至(6),并且包含元学习,它可以集成到多层网络中,并且在各种具有挑战性的任务中优于具有较少生物真实性突触的更传统的ANNs。

运行这种神经网络的首选硬件是图形处理单元(GPUs)等并行计算架构。然而,基于GPU的多功能突触的实现受到了前述额外突触操作引起的计算开销的影响。这种趋势被构建现代神经网络中大量突触(从10^6到10^14)所加剧。此外,控制ST-Hebb突触动态的操作是内存绑定的,因此受到由物理上分离的内存和处理单元所施加的著名冯·诺伊曼瓶颈的负面影响。这些因素使得在GPU上实现ST-Hebb突触变得低效,因此促使开发更适合具有多功能突触的神经网络的新硬件范例。

几种有前景的神经形态结构使用忆阻器作为硬件突触,因为它们能够在单个设备中同时集成内存和计算,从而避免了冯·诺伊曼瓶颈。忆阻器是一种两端口设备,可以在电气[25, 26]或光学[27, 28]刺激下改变其导电状态,类似于生物系统中神经元间的突触耦合(权重)在神经脉冲下的改变。越来越多的研究表明,忆阻器的丰富内部动态可以被利用来模拟突触和神经元中发生的生物物理过程。已经多次演示了使用忆阻器实现具有长期和短期动态的生物启发式硬件突触的多个示例,这些示例展示了具有生物学学习规则,如三重脉冲时序依赖可塑性(triplet-STDP)[33]或Bienenstock-Cooper-Monroe(BCM)[34]。然而,这些演示依赖于脉冲时序可塑性规则,因此不能集成到深度神经网络中,这限制了它们的适用性。同时,最近在忆阻器硬件上展示了一种利用生物启发式多功能突触的单层神经网络。作者展示了在动态变化环境中进行分类任务推断时添加短期突触可塑性的好处。这些突触使用了忆变晶体器件。除了所有忆阻器共有的两个电接触外,它们还具有类似晶体管的栅极。为了实现衰减迹象,将具有短期衰减形状的电压信号应用于第三个栅极接触。因此,短期可塑性不是这些器件的固有属性,即这些器件本身不具有短期记忆,而是需要额外的刺激来实现。对于每个忆变晶体突触施加精确工程化的电压信号的需求使得这种系统的大规模实现面临挑战,因为所需的控制电路和布线将迅速变得非常复杂。因此,引入一种固有包含所有六种突触角色(1-6)的两端口忆阻器设备对于实现可扩展的神经形态硬件至关重要,这种硬件不仅高效节能,而且达到甚至超越传统人工智能方法的性能水平。

在这项工作中,我们提出了一种两端口的忆阻器设备,它依赖于SrTiO3(STO)中的价态变化开关机制,并固有地具有作为ST-Hebb突触所需的六种操作功能。制造的纳米尺度器件的SEM图像上方显示了一个符号表示,如图1d所示。测得的忆阻器导电性行为作为可塑性突触权重,并反映了图1b中显示的行为。具体来说,我们的器件可以在其内存中存储两种不同的状态,(I)具有缓慢动态(长期权重W)的状态和(II)具有快速动态(短期权重F)的状态,这两种状态都编码在忆阻器的导电性中。在计算方面,图1b中标记为2、3、5和6的四种突触操作均可以由我们的STO器件执行(III)长期可塑性(即长期权重W的改变)和(IV)短期可塑性(短期权重更新ΔF)可以由不同大小的电压脉冲触发。值得注意的是,短期衰减会自发发生,无需施加复杂信号。(V)元可塑性(即对衰减时间的控制)可以通过将直流偏置电压应用于两个端口中的一个来实现,这限制了控制电路和布线的复杂性(VI)此外,我们的器件还提供了输入(电压U)与突触权重(导电G)之间的标准内存乘法能力,这由欧姆定律I = G · U实现。由于其非丝型开关操作,它们还表现出低周期变异性。因此,少量原子的随机位移不会像丝型价态变化型忆阻器[37]中那样引起太多噪音。此外,我们可以在非常低的导电值(数十nS)下操作我们的器件,这降低了操作时的功耗。其可实现的短期时间范围从10毫秒到100毫秒左右。重要的是,以100毫秒量级的时间尺度通常很难使用其他神经形态学方法(如模拟电路)在纳米尺度上实现,因为所需的电容器依赖于更大的尺寸[38–40]。

为了估计我们多功能硬件突触在大型DNN环境中的能量消耗,我们引入了一个修改后的STPN(m-STPN)单元,该单元模拟了部分设备特性,并完全整合了我们设备的测量能量消耗。然后,我们将这个单元集成到[21]中的原始STPN网络模拟器中,以在具有多功能突触的软件中执行复杂的强化学习任务,即学习玩Atari的视频游戏Pong。Atari套件是强化学习的常见基准,并且在这里被选择为动态环境的示例任务。我们展示了m-STPN单元相对于原始版本能够实现更快速和更稳定的训练。这主要是由于我们设备所施加的短期衰减时间常数的引入约束。此外,我们证明了具有长时间尺度的短期权重,例如我们的忆阻器所表现出的权重,对于网络的稳健和快速训练是必需的。最后,我们比较了纯GPU实现突触的网络能量消耗与我们的忆阻器突触估计能量消耗。我们展示了根据GPU实现的估计能量效率提升了96倍至970倍不等。

图1 生物启发的突触功能及其忆阻器实现。a)哺乳动物大脑的组织结构,多个生物神经元通过突触连接。当 postsynaptic spike(浅蓝色)与 presynaptic spike(浅绿色)同时发生时,相应的突触耦合会在有限的时间内加强(Hebbian可塑性)(短期可塑性)。该生物物理过程在圆形插图中说明:(I)通过 postsynaptic 电压门控离子通道的离子流入(例如 Ca2+),导致(II)突触受体数量增加,从而增加突触权重。(III)由于受体逐渐从膜上分离,权重随后会回到其原始值。b)比较标准ANN中人工突触(“人工”列)和生物突触(“生物”列)的突触功能的表格。右侧的图表显示了生物突触权重随时间变化的情况。当 presynaptic 和 postsynaptic spike 同时发生时,短期权重(F)会更新(ΔF)。此外,F的衰减时间可以受控,对应于元可塑性。c) 生物启发的短期可塑性神经元(STPN)模型,将传统的神经元模型与短期Hebbian(ST-Hebb)突触结合起来。d) 神经形态学ST-Hebb突触的硬件实现,使用Cr/Pt-SrTiO3-Ti忆阻器。右侧的设备测量反映了ST-Hebb的生物功能,结合了内存和计算以及长期(W)和短期(F)动态。

2 单忆阻器中的多功能突触行为

我们在STO单晶衬底上制备了一个多功能忆阻器突触(见图1d)。首先,我们沉积了一个具有高功函数的接触层(Pt,下面带有一层Cr粘附层)。接着,在其上制备了一个带有Pt覆盖层的Ti电极,该覆盖层可以防止Ti在空气中氧化。这两个接触层均采用电子束蒸发沉积,并通过电子束光刻及随后的提取工艺进行图案化,从而形成了大约40纳米的典型电极间隙。设备在流动Ar中于300°C退火20分钟,导致在Ti-STO界面形成热氧化物。整个结构最后被覆盖上均匀的15纳米SiN层。该制备过程在方法部分5.1中有详细介绍5.1。

图2a显示了我们的Cr/Pt-STO-Ti忆阻器(见图2b)的30个I-V特性周期。电压(-2V至2V)施加在Pt电极上,而Ti电极接地。我们获得了高的周期重复性以及低的导电值(数百纳西),这使得器件的能效操作成为可能。低的导电值和黑色箭头所示的逆时针开关方向归因于非丝状开关机制,该机制已经在类似材料堆叠中得到报道。在这种开关区域,电导率的变化不是由形成连接两个电极的氧空位(VO2+)的丝状体引起的,而是由于在Pt-STO界面处的肖特基势垒的调制。该调制被归因于在施加外部电压时VO2+的产生和复合。空位反过来局部掺杂了STO,改变了肖特基势垒的高度和宽度,从而影响了电导率。当将正电压施加到Pt接触时,来自晶体的氧离子(O2?)移动到Pt-STO界面或进入多孔Pt电极中,留下一个带有正电荷的晶体缺陷。这种n型掺杂增加了电导率,因为肖特基势垒高度和宽度减小。由于VO2+是可移动的并带有正电荷,它们沿着施加的电场朝向Ti电极迁移,其中它们积累并可能在一个称为电成形的过程中形成丝状体。我们观察到对于高正电压(>4V),我们能够使我们的器件电成形并将其置于丝状开关操作中。这证实了我们的器件在正电压下产生VO2+。生成的空位数量以及VO2+从Pt接触迁移的距离取决于施加电压和电信号的持续时间。当不施加外部电压时,空位沿着电化学势梯度向Pt接触扩散,并在那里与界面氧重新组合。这逐渐重置了肖特基势垒和电导率。这个过程在施加负偏压的情况下得到了加速,导致更快的电导率衰减。因此,衰变时间可以受到电压控制。尽管这个物理图像解释了我们的实验观察结果,但不能排除界面的陷阱态在开关过程中起关键作用的可能性,正如其他作品所建议的那样 [46].

在我们的方法中,忆阻器的电导率实现了突触权重,在ST-Hebb突触中,其动态(长期和短期)至关重要(见图1b)。为了研究我们的STO忆阻器的电导率动态,我们向其施加不同电压和宽度的脉冲(图2c和2d)。我们首先通过施加100个幅值为4V、持续时间为500?s的SET脉冲诱导长期可塑性(图1b中的功能3),使器件从低电导态转变为高电导态(图2c)。这种高电导态的电导率在没有施加偏压的情况下在数千秒内缓慢衰减(附录第S3节)。在SET过程后,我们将器件保持在0V处240s(未显示),让其稳定到一个稳定状态。然后,我们在0.6V处测量器件的电导率375s(图2d),期间施加了持续时间为100?s的脉冲,电压分别为2、2.5和3V。由SET脉冲诱导的长期电导率在测量期间基本保持不变。100?s长的脉冲导致电导率短期增加,即短期可塑性(图1b中的功能5),其幅度取决于脉冲电压(分别为2、2.5和3V,分别为3、5和10nS),然后衰减。这可以在图2e中观察到,在协议的最后三个脉冲期间的电导率被绘制出来(图2d中的虚线矩形)。显示读取电压期间的电导率,省略了100?s脉冲期间的值。在图2f中,电导率的长期和短期成分(图1b中的功能1和4)被可视化为具有不同长期权重W值的六个测量值。通过多次重复图2c和2d的协议,即首先通过100个SET脉冲设置长期权重(W1、W2、...),等待240s,然后应用图2d的短期脉冲协议来获取测量数据。在这种方式中,可以设置在12到23nS范围内的长期电导率值(长期可塑性)。这些电导率值可以进一步通过电压脉冲诱导的短期增加(短期可塑性)。长期和短期可塑性的获得使得将这些器件用作ST-Hebb突触成为可能。

图2 多功能忆阻器突触的直流和动态行为。a) 制备的Cr/Pt-STO-Ti忆阻器的电导率与电压特性。黑色箭头表示逆时针切换方向。b) 设备堆栈的示意图及其基础切换机制。两个插图以不同的施加电压放大了Pt-STO界面,显示了界面氧离子(O)和氧空位(VO)的动态:(Vapp > 0) 在正电压下,VO的形成和迁移发生。带负电荷的氧向界面和多孔Pt电极迁移,带正电荷的VO沿着电场远离Pt电极向接地的Ti电极迁移。(Vapp ≤ 0) 在零施加电压下,VO迁移回到Pt,受内置电化学梯度的驱动,它们与O复合。负电压加速了这个过程。c) 在幅值为4V、持续时间为500?s的100个SET脉冲的作用下从低到高的电导率变化。d) 在施加幅值为2V、2.5V和3V、持续时间为100?s的一系列电压脉冲时的时间依赖电导率测量(在0.6V处读取)。长期电导率(红色区域)保持不变。脉冲导致电导率短期增加,随后衰减。e) 测量d)中最后三个电压脉冲导致的短期电导率变化,由虚线矩形表示。这里只显示读取电压期间的电导率值。f) 统计图显示不同长期权重W值的短期可塑性。首先通过应用d)中的协议来表征最小长期权重(W1)的短期可塑性来获得测量数据。然后通过100个SET脉冲改变长期权重(c),在等待240s后,再次测量短期可塑性。

短期可塑性在图3a中得到了更详细的研究,其中显示了五次测量的平均值(实线)和标准偏差(阴影区域)。使用四种不同的电压幅度(2、2.5、3和3.5V)获得脉冲诱导的短期电导率更新(?F)和随后的衰减。脉冲宽度固定为100?s,读取电压为0.6V。通过从数据中减去t=0时的初始电导率来对电导率值进行归一化。我们观察到低的周期性变异性,与图2a中的I-V特性相一致。相同的测量针对另外两个脉冲宽度(20和500?s)重复进行。结果显示在图3b中,作为脉冲幅度和宽度的函数。可以看到通过调整这些参数可以实现0.7 - 38.6 nS范围内的?F值。相应的脉冲能量见图3c,对于相同的脉冲电压和宽度组合。脉冲能量计算的细节见补充材料S4节。

除了电导率增加的幅度外,还可以使用在实验过程中持续施加的直流偏置电压(Vbias)来控制随后的衰减,有效地实现元可塑性(图1b中的第6个功能)。作为时间函数,显示了五次测量的电导率的平均值和标准偏差。触发电导率增加的电压脉冲在所有情况下都是相同的,因此导致类似的?F,而偏置电压是变化的(有关详细信息,请参阅补充材料S6节)。随着Vbias从几百毫秒(Vbias = -0.6V)增加到几十秒(Vbias = 0.6V),衰减的时间尺度也增加。为了量化作为偏置电压函数的衰减时间常数(Λ),我们对测得的曲线进行了指数拟合(请参阅补充材料S6节)。在我们的拟合中,Λ的最大值为1表示没有衰减,而最小值(Λ = 0)对应于立即衰减。图3e表明,我们可以实验性地控制Λ在从0.08到0.92的范围内,作为应用的Vbias的函数。Vbias和Λ之间的关系由一个S形函数

来建模,其中L、k、V0和Λ0是拟合参数。总之,我们的忆阻器固有地执行以下功能:存储长期(W)和短期(F(t))权重、长期可塑性、短期可塑性、通过对衰减时间参数Λ的控制实现元可塑性以及根据欧姆定律将输入电压与突触权重相乘。

Fig. 3 对短期导电更新的幅度和动态的控制。a) 从五次导电测量中得到的脉冲诱导的短期导电更新(?F)的平均值(实线)和标准差(阴影区域),使用四种不同的脉冲电压(2、2.5、3 和 3.5V)。读取电压设置为0.6V,脉冲宽度设置为100 ?s。为了更好地比较测量结果,通过从数据中减去 t=0 时刻的初始导电来调整导电值。b) 不同脉冲电压和宽度下实现的?F的热图。c) 与b中相同电压和宽度组合所需脉冲能量的热图。d) 在线性x轴上显示的应用电压协议(顶部),以及在对数x轴上显示的使用0.6V读取脉冲的对应导电值(底部)。在读取脉冲之间,施加一个可变幅度的恒定偏置电压(Vbias)。在所有测量中,主脉冲电压和宽度分别设置为3.5V和500 ?s。调整后的导电值的平均值和标准差在半对数图上显示了5次测量。e) 从d中的测量中提取的衰减时间常数Λ作为 Vbias 的函数。实验数据点使用 Sigmoid 函数拟合。

3 具有多功能忆阻突触的 DNN

我们的可变电阻器的六个固有功能可以被深度STPN网络中的ST-Hebb突触所利用。这样的网络已被证明在动态环境中的各种复杂任务中优于没有多功能突触的传统DNN实现[21]。这样一个动态任务是学习玩Atari Pong,这是一款视频游戏和常见的机器学习基准测试。在Pong中,一名玩家(即STPN网络)面对一个对手,每个人都操纵一个可以垂直移动的条来击打一个球,目的是让球穿过对手的条(即得分)或阻止对手这样做。当任一玩家得分达到21分时,游戏结束。

STPN网络的奖励是游戏结束时玩家分数与对手分数之间的差异。仅给定这个标量奖励作为输入,网络通过反复玩游戏并采用强化学习,一种生物启发式学习范式[47],找到一种使得最高分达到21分的策略。下面我们展示了一个修改过的STPN单元(m-STPN)的发展,这是[21]中的一个改变版本,它利用我们的多功能突触来玩Atari Pong。通过模拟,我们可以估计整个网络在我们的可变电阻器硬件上运行时的能量消耗,并将其与纯GPU实现进行比较。

3.1 改进的短期可塑性神经元

在这里研究的深度STPN网络模拟器(图4a)采用了我们修改过的STPN单元(m-STPN),详细描述见第5.3节的方法部分。该网络依赖于一个演员-评论家的架构,该架构以Atari Pong环境的帧作为输入,计算环境中下一步要采取的行动(演员)以及当前状态的价值估计(评论家)。帧首先通过两个卷积层进行处理,形成密集的特征集,作为m-STPN层的输入。后者由64个m-STPN单元组成,每个单元通过ST-Hebb突触连接到2592个输入,并递归地连接到64个输出。总共,这相当于(2592 + 64)× 64 = 169,984个突触。m-STPN层的输出然后被馈送到两个全连接线性层,用于计算下一步行动(演员在游戏中的下一步)和当前价值(当前游戏状态的优势)。我们的目标是展示我们的多功能记忆电阻器可以在图4a的STPN网络中充当硬件ST-Hebb突触。为实现此目标,以下设备特性被实现到m-STPN单元中:(1)通过线性关系将记忆电阻器导纳(Gmeas)映射到模拟的无量纲突触权重(G)

(2) 在模拟的短期权重更新(?F)中添加离散化操作,将?F值(状态)的数量限制在我们的记忆电阻器可以解决的范围内。为满足这一要求,两个相邻状态对应的导纳值应该至少相差一个标准偏差,对于所有短期权重更新?Fmeas(图3b中的最大值为±0.9 nS),标准偏差均低于1nS。因此,我们选择了1nS的离散化步长用于?Fmeas,这对应于根据公式1模拟的?F的步长为0.5。(3)将|?F|的最大值固定为20,以确保权重更新保持在STO记忆电阻器可达到的范围内。在整个乒乓球游戏过程中,带有和不带有非理想性的所有突触的?F的直方图见补充材料第S8节。(4)将衰减时间常数Λ的范围限制在我们设备可以达到的值范围内([0.08, 0.92])。对Λ的限制对网络的训练性能产生影响,如图4b所示。在训练过程中,奖励值作为演员采取的步骤数的函数进行绘制(有关详细信息,请参阅方法部分5.4节)。每条曲线代表16个使用不同随机初始化参数学习玩游戏的智能体的平均奖励。五条线表示对学习的衰减时间参数Λ施加的不同约束。值得注意的是,在训练过程中,将具有较大衰减时间常数的突触合并是有益的:Λ的上限越大,奖励增长越快。令人意外的是,Λ = 0的情况(即,所有突触的短期权重变化立即衰减)也能够学习,尽管学习速度较慢且不够稳健,这可以从与Λ = [0.08, 0.92]相比较的较大标准偏差中看出(图4b的插图)。更长的受约束衰减时间是通过修改的权重归一化方案在m-STPN中实现的(见方法部分5.3节)。由于衰减常数Λ在我们的设备中受到自然限制,因此会自动防止不稳定现象,例如指数增益(Λ > 1)而不是衰减(Λ < 1)。

在训练后,16个训练智能体中的一些达到了最大奖励值21(见补充材料第S9节)。在整个游戏过程中(大约持续50秒),单个这样训练过的智能体的总突触权重值G = W + F 被报告在图4c中。选择了这个特定的突触,因为它在整个网络中显示出最大的突触变化(?F)。因此,在文本的剩余部分中,它被称为Smax{?F },并将作为STPN网络中突触行为的代表性示例。观察到突触权重G的值随时间变化,这是由于ST-Hebb突触的短期可塑性。重要的是,短期更新是稀疏的,这使得在我们的记忆电阻器硬件上实现这一强化学习任务具有能源效率,因为只需要少量消耗能量的短期权重更新(?F)。图4d显示了模拟的突触权重G的放大部分,其中显示了长期权重分量W(红色)和短期权重更新?F(黑色)。每个模拟时间步骤都由一个点标记。

图4:具有多功能突触的STPN网络的仿真和能量消耗。

a)完整的STPN网络示意图。Atari游戏的一帧输入到两个卷积层中:Conv(核,步幅)加上ReLU激活函数。然后将特征展平为1D数组,并输入到由m-STPN单元(蓝色椭圆)和相应的ST-Hebb突触(蓝色线)组成的m-STPN层中。该层的输出通过两个全连接线性层分成“动作”和“价值”。

b)在训练期间,平均奖励作为智能体步骤的函数的五个不同Λ范围的情况。每条曲线代表具有不同随机参数初始化的16个智能体的平均奖励。在插图中,显示了Λ = 0和Λ = [0.08,0.92](即,可实现的设备范围)的情况及其标准偏差(阴影区域)。

c)在整个游戏过程中训练网络的单个突触(Smax{?F })的总突触权重(长期和短期组成)。

d)c)中点状区域的放大部分。长期权重W标记为红色。黑色条表示每个时间步长的?F。

e)作为?F函数所需的电压脉冲消耗的能量的实验值。这些值遵循幂律关系。

f)作为不同Vbias的函数所使用的总突触权重的单个突触的计算功耗,用于变化短期衰减常数。

g)在整个Pong游戏(大约50秒)期间,在c)中的突触的估计能量消耗的时间演变,比较记忆电阻突触与纯GPU实现。显示了不同的组件以及总能量消耗。

h)网络中所有突触的直方图,指示整个Pong游戏期间消耗特定量能量的突触数量。能量消耗的两个不同组成部分(?F和衰减)与g)类似。假设所有突触的最坏情况的Vbias = 0.6。

i)每个突触在整个游戏过程中消耗的总能量(?F加衰减)。

3.2 深度STPN网络的能耗

接下来,我们估算了突触

在整个游戏过程中如果实现在我们的记忆电阻器上时的能量消耗。考虑了两种能量损耗源:首先,每个导致短期权重更新的电压脉冲消耗能量

(图3c)。其次,由于施加恒定偏置以控制衰减时间,小电流持续流过设备,引起功率损耗(Pbias)。我们分别处理这两个组成部分。图4e报告了第一个组成部分

作为短期权重更新?F的函数。这个量从图3b和3c的测量数据中提取出来,对于不同的脉冲宽度。测量的能量数据点紧密地遵循幂律关系:

其中c = 30pJ,α = 1.52。这个幂律关系被纳入到我们的神经网络模拟器中,以估算我们的记忆电阻器中短期权重更新的能量消耗。由于|?F|的值被限制为20,并且由于权重更新是稀疏的,这种能量消耗的第一贡献仍然很低。图4f给出了能量消耗的第二个贡献(Pbias)作为总突触权重G的函数。它根据

进行计算。请注意,即使对于模拟的权重G = 0,也会有残余功耗(除非Vbias = 0),这是由于物理器件的有限最小导纳值

所致。因此,对于最大偏置电压

,具有恒定权重G = 0的突触消耗的功率为4.3nW。这种低功耗是我们的记忆电阻器低导纳值的直接结果,这是由它们的非纤维开关行为实现的。

在图4g中,提供了在整个Pong游戏过程中通过记忆电阻器(蓝色)或纯GPU实现(橙色)的突触Smax{?F }消耗的估计能量。在记忆电阻器的情况下,能量消耗可以分解为两个部分,即短期权重更新(?F)和需要控制衰减时间常数的施加偏置电压(Decay)。这两个组成部分涵盖了推理过程中ST-Hebb突触所需的短期突触可塑性和元可塑性。标准的输入-权重乘法通过欧姆定律I = G · Vread获得,其中Vread编码输入。然而,这种操作的功耗已经包含在Pbias中:由最大偏置电压max{Vbias} = 0.6V产生的电流可以读取以计算输入-权重乘法。为了在GPU上实现相同的可塑性、元可塑性和输入-权重乘法,在游戏的每个时间步骤(总共6826个)中需要执行以下四个操作:(1)短期和长期权重组件的逐元素加法,(2)F与Λ的逐元素乘法用于短期衰减,(3)F和?F的逐元素加法用于短期权重更新,以及(4)输入和权重的向量矩阵乘法(权重乘法)。对于每个操作,测量了单个突触的GPU能量消耗(见方法部分5.5节)。发现记忆电阻器的能量消耗随着时间步数的增加而增加的速度比GPU基线慢。然而,应该注意的是,即使我们的多功能记忆电阻突触可以完全模仿ST-Hebb突触的行为,神经元的操作仍然需要在GPU上执行:这涉及通过方法方程式4中的第一项计算?F的大小、通过方法方程式3计算非线性激活函数以及前突触输入的归一化(见补充图S7b)。

为了估算整个网络的总突触能量消耗,必须考虑每个突触在整个Pong游戏中的贡献(见图4h)。通过直方图形式展示了每个突触在?F更新(深蓝色)和衰减时间常数控制(浅蓝色)方面消耗的能量。大多数突触在整个游戏过程中不会进行任何短期权重更新,因此在此操作中不消耗能量,如以0为中心的大的?F峰所示。对于衰减控制,我们假设了最坏情况,即所有突触都施加了0.6 V的偏置电压。由于这种偏置产生的电流可以被读取,这解释了由于输入和权重之间的向量矩阵乘法计算而引起的能量消耗。为此,假设了一个交叉条阵架构。

图4i的直方图显示了每个记忆电阻突触消耗的总能量(即?F加衰减)。通过将所有突触的贡献相加,我们得到了整个Pong游戏期间整个STPN网络所有记忆电阻突触的总能量消耗为36mJ(表1中的“Memristor”行)。该值考虑了整个STPN网络中所有记忆电阻突触的四个突触操作(?F、衰减、W+F和权重乘法)在整个Pong游戏期间的能量消耗。为了与纯GPU实现进行细致的比较,我们提供了使用NVIDIA A100 40GB设备进行的两项单独测量(有关详细信息,请参见方法部分5.5节)。我们分别报告了每种突触操作的100次单独运行的中位数,用于半精度和单精度浮点算术(fp16和fp32)。

首先,我们测量了GPU执行每个突触操作的能量消耗,涉及整个网络的169984个多功能突触。结果显示在“GPU(标准)”行中。观察到大约三分之一的总能量消耗来自于三个ST-Hebb特定操作(?F、衰减和W + F),另外三分之二来自于标准输入-权重乘法。我们注意到,由于GPU是一种大规模并行的机器,这数量级的突触可能无法充分利用设备,可能导致能源效率降低。实际上,A100 GPU对于具有大约221个突触的假设网络实现了最高的能源效率。标记为“GPU(最优)”的情况是将相应的能量消耗缩放到原始网络的突触数量。通过将“GPU(最优)”能量消耗的fp16情况与“Memristor”行中的总能量进行比较,可以获得96倍的改进。节省的功耗归功于我们的记忆电阻器的多功能性质和它们的内存计算能力,这两者结合起来允许在没有任何内存流量的情况下同时计算四个操作。内存流量的缺失尤其有益,因为考虑到的所有操作(即逐元素和向量-矩阵乘法)几乎没有数据重用且受限于内存。因此,大部分能量消耗在数据移动而不是计算中(冯·诺依曼瓶颈)。在方法部分5.5中我们对GPU内存流量的能量消耗进行了量化:它占总能量的98%以上。请注意,我们的估算中没有包括所需外围电路的功耗。尽管如此,能源效率的显著提升以及我们的记忆电阻器的简单的二端结构是我们的记忆电阻器硬件扩大规模的可行性的关键指标。

1. 长期和短期成分都会影响同一设备的导纳,因此增加W+F无需显式执行。

2. 输入-权重乘法通过I = G·U计算,这在读取操作期间消耗电能。然而,这种功耗已经由衰减项考虑到,衰减项需要施加恒定偏置Vbias来控制Λ参数。这里假设最坏情况(对所有突触施加Vbias = 0.6V)。由于这个电压产生的电流可以被读取,给出了输入-权重乘法的结果。为了实现所有输入与所有突触的完整向量-矩阵乘法,需要使用交叉条阵配置。

4。结论

我们提出了一种基于STO的两端记忆电阻器,能够存储和计算长期和短期突触权重更新,有效地将存储和计算以及长期和短期动态集成在一起。特别是,我们演示了对短期衰减时间常数的控制,而无需额外的电气接触或复杂的控制信号,这实现了一种内在的元可塑性形式。所有这些特征对于神经形态电路的实现至关重要,例如STPN网络,在大规模、复杂的机器学习任务(如Atari Pong)中,它们优于传统的人工神经网络。我们通过引入m-STPN单元,为这些网络的发展做出了贡献,在训练过程中提高了可靠性,并突显了长衰减时间常数的重要性。最后,在模拟中,我们将我们的记忆电阻器实现的STPN网络与GPU进行了比较,并获得了至少96倍的推理能效的显著增加。

要完全实现我们的硬件模拟概念,还需要进一步的工作:首先,我们的STO记忆电阻器应该转换为垂直结构,以更好地控制其金属电极之间的距离,并允许创建交叉条阵列。其次,应该改善我们的记忆电阻器的长期保持性,同时仍保持其短期可塑性。已经有人提出,在Pt电极和STO之间的氧化层可能会增加低导电状态的保持性。

此外,由于我们观察到衰减时间常数对训练性能的显著影响,应该对STPN网络中的长期和短期成分进行不同的衰减模型的研究。受生物学启发的这种神经网络的进展具有潜力显著提高人工智能应用在各种动态环境中的性能。此外,具有内在动态的多功能记忆电阻突触可以作为下一代神经网络能源高效硬件实现的关键启用技术。

5种方法

5.1 器件制造

电极堆叠(Cr-Pt和Ti-Pt)均采用电子束光刻进行图案化,并通过电子束蒸发进行沉积(见补充图S1a和S1b)。沉积后,整个器件随后在Ar气氛中以300摄氏度退火20分钟(见补充图S1c)。这一步骤导致在Ti-STO界面形成热氧化物,留下氧空位。退火还可能导致铬扩散到STO中,在这个过程中对STO进行掺杂。最后,使用等离子增强化学气相沉积(PECVD)将器件堆叠体封装在30nm的SiN中,以防止氧化(见补充图S1d)。

5.2 实验装置

准静态I-V特性是使用Keysight M9601A源测量单元进行测量的。电压脉冲是由Keysight 33500任意波形发生器生成的。电流通过来自Femto的DHPCA-100转阻放大器输入,并由Rohde&Schwarz RTE 1104示波器读取。

5.3 改进的STPN模型

描述通过 STPN 层的前向传播的方程如下 [21]:

粗体字表示矩阵, ⊙ 表示逐元素乘法, ? 表示外积。STPN层模型由长期权重W、Hebbian关联强度Γ和短期衰减参数Λ参数化。在训练过程中,这3个参数通过时序反向传播(BPTT)进行学习。虽然W直接控制突触强度,但Λ和Γ参数定义了突触权重如何对刺激做出响应,有效地实现了一种元可塑性或“学会学习”的形式。突触的塑性更新由方程4建模。方程3和4略微改编自[21]中的原始作品,以反映此处的具体实现。除了方程2到4之外,原始STPN模型还对突触输入

和塑性权重

(补充图S7a)进行了一种规范化。这加速了训练过程中的随机梯度下降。F的归一化导致方程4的修改,其中衰减参数Λ变为

。因此,衰减时间常数在每个时间步长变化,因为F(t)随时间变化。这种变化可能导致训练过程中的不稳定性,而且无法直接在我们的记忆电阻器上实现。另一个重要特征是,衰减时间常数Λ无法限制在某个范围内,因为

取决于W和F的值,在训练开始时是未知的。然而,如果突触达到Λef f > 1的值,训练会变得非常不稳定,因此,将Λ固定是重要的。在[21]的原始公式中,解决此问题的方法是在训练开始时使用较小的Λ值,以确保Λef f不超过1。这种方法的缺点是,网络学习长衰减时间常数的速度较慢。通过在我们修改后的STPN单元中仅对输入进行归一化(补充图S7b),我们在训练过程中实现了更好的性能,并且使在记忆电阻器上的实现成为可能。

5.4 网络训练

我们严格遵循[21]中建立的训练方案。具体地,我们使用RLLib[50]在PongNoFrameskip-v4环境中训练和评估代理程序。与[51]中相同的预处理步骤(维度和颜色比例)用于处理游戏帧,但不包括帧堆叠。训练参数也是从[21]中采用的:回合长度(50)、梯度裁剪(40)、折扣因子(0.99)和学习率从0.0001开始,按线性衰减时间表在2亿次迭代后降至10^-11。模型是根据4个并行代理收集的经验进行训练的。

5.5 GPU 能耗测量

为了公平比较图4a中网络的记忆电阻器和GPU实现的效率,关键是只测量GPU的能耗,以适应记忆电阻器可以执行的特定算术操作:(1) W+F,(2) Decay,(3) ?F和(4) 权重乘法(更多细节请参见补充部分S10)。我们通过运行每个操作的专门设计的Python脚本来实现这一点。为了测量GPU的能耗,我们使用pyJoules库[52],这是NVIDIA自己的能耗报告框架NVIDIA Management Library (nvml)的Python包装器。由于所有操作的运行时间非常短,为了提高准确性,我们测量相应核心的10,000至200,000次执行所消耗的能量。我们报告了100次多次执行的中值,并使用1000个样本的自举法来估计99%的置信区间(CI)。我们以三种方式报告操作(1)到(4)的GPU能耗:(I)每个完整的Atari Pong游戏的整个神经网络,该游戏使用64 * 2656 = 169984个突触,并运行6826个时间步长(主文中的表1),(II)每个操作,即单个突触和一个时间步长(本节中的表2),以及(III)在完整的Atari Pong游戏过程中的单个突触,即6826个时间步长(图4g)。

在表1中的“GPU(标准)”结果中,操作(1)到(4)所需的矩阵W,F(t),x(t)和Λ的大小与神经网络模拟中的大小相同。对于“GPU(最佳)”结果,我们使用公式(2592 + 64)* k来增加矩阵的大小,其中k是2的幂,范围从64(原始网络大小)到4096。我们报告了k = 1024的能量消耗,该能量效率最高,并将其缩小到原始网络的大小(请参阅补充图S10b)。

在表2中,“GPU(标准)”和“GPU(最佳)”行是通过将表1的值除以整个游戏过程中执行的操作数量(64 * 2656 * 6826)而获得的。能量以每个浮点操作(flop)的pJ给出。请注意,权重乘法是通过融合乘加(FMA)操作计算的,它计为两个flop(一个用于加法,一个用于乘法)。

在表2的“GPU(计算)”行中,我们实现了一个CUDA核函数,仅对存储在寄存器中的数据进行操作,而不涉及从/向GPU全局内存的读写。因此,这些结果仅测量了计算所花费的能量,而没有考虑内存传输的贡献。具体来说,每次核心执行都执行了足够完成一次完整的Atari Pong游戏所需的算术操作(加法、乘法或FMA)。为了提高准确性,每次测量结合了10,000次核心执行。与之前一样,我们报告了100次多次执行的中值,并估计了99%的置信区间。权重乘法每个flop的能量消耗约为5.9和9.5 pJ/flop,分别对应于半精度和单精度。这与NVIDIA提供的测量数据和对GPU的浮点运算单元(FPU)的独立测试[53, 54]大致相符,证实了我们的测量结果的准确性。通过将“GPU(计算)”结果与“GPU(最佳)”进行比较,我们发现内存传输占GPU总能量消耗的98%以上。这个结果显示了GPU的FPU的显着能量效率以及减少内存传输的好处。然而,值得注意的是,这种特定的GPU实现在实践中是没有用处的,因为核心计算的结果不可通过内存访问,因此无法被运行在GPU上的程序使用。因此,对应于工作实现的最高效率GPU基准是“GPU(最佳)”行中的fp16能量测量。

(III)对于图4g中显示的单个突触的GPU能耗,我们利用了表2中“GPU(标准)”行的fp32情况下每个操作的能量测量结果。值得注意的是,表2中的能量值是通过首先测量网络中所有突触并行消耗的能量,然后除以突触数量来计算的。这确保了GPU的大规模并行性得到了利用,尽管我们只关心单个突触的能量消耗。然后,对所有时间步长的每个操作的能量贡献进行累积求和,以获得图4g中的时间序列GPU数据。

我们注意到这些核心使用了GPU的常规FP核心,而不是张量核心,因为这些操作(W+F、衰减、?F和权重乘法)不涉及计算矩阵-矩阵乘积。

我们的测试系统的规格是:

硬件:

表2每个浮点操作(flop)的能耗,以pJ为单位。能耗分别针对ST-Hebb突触特有的操作(?F、衰减和W+F),以及输入-权重乘法(weight mult.)进行给出,后者对所有突触模型通用。请注意,权重乘法是通过融合乘加(FMA)操作计算的,这算作两个flop(一个用于加法,一个用于乘法)。其他操作(?F、衰减和W+F)计为一个flop。

1. 长期和短期组分都会影响同一设备的导电性,因此不需要显式执行W+F的加法操作。

2. 输入-权重乘法通过I = G · U计算,这在读取操作中消耗电能。然而,这种功耗已经由衰减项考虑在内,后者需要施加常量偏置Vbias来控制Λ参数。这里假设最坏情况(Vbias = 0.6V,应用于所有突触)。由于这种电压引起的电流可以被读取出来,从而得到输入-权重乘法的结果。为了实现所有输入与所有突触之间的完整向量-矩阵乘法,需要使用交叉阵列配置。

Code availability. The repository with the m-STPN network source code can be found here: https://bitbucket.org/weilen-mc/stpn/src/submission/

The GPU energy calculations are available here: https://github.com/NanoTCAD/SpikeDecay

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-20,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 CreateAMind 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud?GPU?Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com