一、摘要
1、背景
分布式+神经计算,脑启发的芯片很好。
IBM的芯片不错,但是在RNN上表现不行。
把LSTM映射到SNN上
2、方法
用到了各种近似方法
activation discretization
weight quantization
scaling & rounding
SN circuts(gating + store-and-release)
3、结果
成功实现
4、结论
与没有硬件限制的SNN平台上的性能进行了比较,代表了可达到的精度的上限。
二、结论
1、与我的研究相关
相关
2、通过哪些结果得出了结论
LSTM分拆成块,用spiking neurons成功近似。
三、介绍
1、背景介绍
2、课题开展的原因
- 一个LSTM的输入和输出需要同步。在时间stept-1中的输出向量ht-1必须与输入向量xtin时间stept相连以计算新的输出向量。这种同步级别需要在事件驱动的硬件平台上使用特殊的神经电路。
- 难以用尖峰表示正数值和负数值,
- 在尖峰域中缺乏对诸如Sigmoid和tanh的非线性激活函数的直接支持。
3、主要结果
4、结论
四、图表
五、讨论
六、方法
- 我们将首先讨论如何使用不同的尖峰编码方案表示值。2. 然后,我们将描述LSTM的基于尖峰的组成模块,
- 以及如何使用TrueNorth Corelet配置的细节维护这些模块的活动的时间关系。
- 最后,我们提出了映射算法。
1、LSTM中神经元的时间行为
同步对于维持递归网络中复发的时间动力学是必要的。这也是启用LSTM复杂门控机制的关键,该机制需要输入,门输出和单元状态反馈之间的同步交互。考虑到与异步突刺神经元同步表示这种固有的困难,我们提出了一种存储和释放机制。它通过特殊的神经回路实现,其中神经元以两种模式运行,即存储和释放。在存储模式下,神经元控制其输出,接收输入信号并积累其膜电位。在释放模式期间,神经元随机或突发地以与其膜电位成正比的平均速率发出输出尖峰。两个内部时钟信号分别通过施加高负电势或正电势来控制aneuron何时进入或退出存储或释放模式。第III-C节将讨论如何配置和连接异步神经元以形成这样的同步神经回路。
利用存储和释放机制,整个LSTM网络分为三个分区,如图3(a)和(b)所示。它们分别称为输入,处理和输出分区,分别使用蓝色,红色和绿色进行颜色编码。系统操作分为两个阶段,即处理阶段和I / O阶段。每个分区只能在其指定阶段即生成输出尖峰。在处理阶段,处理分区峰值,在I / O阶段,输入和输出分区峰值。请注意,在I / O阶段,如果输出分区正在处理第i个数据,则输入分区在第(i + 1)个工作数据Ω
每个功能模块的输出是一个尖峰序列。这些峰值列车在每个分区处缓冲,然后在相关阶段释放。除输入分区外,所有处理分区和输出分区的输入都使用存储和释放神经元进行缓冲,这些神经元在图3(a)中用白色圆圈表示。处理分区的输入在I / O阶段存储并在处理阶段释放,而输出分区的输入在处理阶段存储并在I / O阶段释放。对于输入分区,其输入ht-1之一在I / O阶段释放,另一个输入xt是外部信号。通过仔细控制,我们可以确保xtis也仅在I / O阶段释放。因此,我们可以在I / O阶段基本上重叠输入和输出分区的活动。 xtandht-1穿过输入分区,并在I / O阶段被缓冲在处理分区的输入处。在此期间在实现中,存储和释放神经元将合并到其后续功能模块中,并实现为存储和释放tanh或存储和释放乙状结肠,如我们将在III-C节中介绍的那样。唯一的例外是点积之前的存储和释放神经元,它将保持独立。
图3(c)显示了这三个分区是如何交替运行的。每个阶段的持续时间称为相位长度(PL)。输入分区在矩阵向量乘法上工作,以在I / O阶段为忘记,输入和输出门生成操作数。它们在处理分区的输入处由存储和释放神经元缓冲。在处理阶段,这些神经元释放它们存储的内容,处理分区生成细胞状态(Ct)和部分输出(ot),它们在输出分区的输入处由存储和释放神经元缓冲。在/ O阶段,Ctandotis释放并用于计算TH,然后将其进一步转发到输入分区以再次计算矩阵向量乘法。通过本地时钟(全局一致)尖峰来维持相位的过渡,这些尖峰会为所有具有存储和释放功能的神经元产生存储和释放尖峰。
2、编码和峰值表示
由于峰值是二进制的(开-关),因此固有地很难使用它们来表示正值和负值。这是另一个挑战,因为在LSTM中,很难避免在负方向和正方向上都存在数值(即输入,输出和激活),因为学习的权重可能为负,并且tanh函数输出的值介于-1到1之间。一个简单的解决方案通过用ReLU代替双曲线正切值来限制数值,该ReLUs没有负范围,而有开放式正范围。由于ReLU具有阻止消失梯度的能力,它提高了vanillaRNN的性能[18]。但是,由于其门控方案,消失梯度在LSTM中不再是问题。相反,在LSTM中使用像ReLU这样的无界激活函数会导致它发散,从而导致性能变差[19]。因此,我们选择保留Tanh函数,但分别通过使用尖峰的正负通道来解决数据范围问题