一、摘要
1、背景
2、方法
train and constrained mehodology
- train rnn
- discretizing weights
- converting wights to spiking rnn
- discretize the synaptic weightsto 16 levels,
- discretize the neural activities to 16 levels, andto limit fan-in to 64 inp
3、结果
classification
74 accuracy 0.025% cores
4、结论
二、结论
1、相关性
2、哪些结果证明结论
- synaptic delays are sufficientfor supporting the temporal dynamics of simple recurrentneural networks.
- Using a 15 tick delay for "storing" the stateof the neurons corresponds to discretizing the state to 4 bit.
三、介绍
1、背景
2、课题开展原因
3、改进点
4、结果
四、图
image.png image.png五、方法
1、TrueNorth与神经元转化
ibm neuro synaptic系统“TrueNorth”是一个非von neumann体系结构,集成了100万个可编程的spiking神经元。该系统由4096个核组成,每个核有256个神经元,每个核可以以交叉的方式容纳多达65536个突触。每个神经元的序列和突触状态每毫秒更新一次,我们称之为1tick。请注意,虽然模拟的是连续时间神经网络,但这些离散的更新了0 1 2 3 0 1 2 3 G0 G1 G2G 3 G G G G 3 G G G G 3 G G G G 3 G G 0轴突[0,…,255]个神经元[0,。。。,255]轴突型延迟=1516(64)48(192)16(64)投影层SoftmaxFigure 的一种常用方法
通过在每个实际输入中使用四个突触,可以实现4位精度的突触,这使得每个神经元的fan-in为64。作为概念的证明,我们将重点放在TrueNorth上实现递归层,见图2。我们只使用一个核,因为与其他网络如进化神经网络相比,它足以理解转换方法和转换RNN时的主要挑战。我们选择只转换当前层(即图1中的纯蓝色背景部分或图2中的TrueNorth实现),而不转换其他层,因为这些层过去已经在TrueNorth上成功实现
使用Ns位权重,将循环层的尺寸限制为Nin +Nhid≤256/ Ns,其中Ninis为输入数,Nhidis为循环层中(隐藏的)单位数,Nsis为权重的分辨率(以位为单位)。 TrueNorth,我们使用了线性神经元,其膜态遵循以下动力学:
image.png
其中Ai(t)是轴突i的输入尖峰,sGijis突触权重,Gi∈{0,1,2,4}是轴突类型,wij∈0,1是轴突和神经元j之间的突触连通性。有关完整的神经元方程,请参阅[31]。以上方程式暗示,在产生尖峰之后,膜状态会减去与激发阈值相对应的量,这使神经元能够激发与突触输入成比例的次数。
该模型是使用IBM Neurosynaptic System的集成编程环境在MATLAB中编写的。模型的一个参数是仿真平台。通过在“ TN”和“ NSCS”之间切换此参数,可以在连接的TrueNorth芯片上运行完全相同的程序,也可以使用NSCS仿真环境运行该程序。请注意,仿真环境的结果与TrueNorthchip之间存在精确的一对一对应关系,这意味着可以使用任一系统运行代码(前提是用户可以使用TrueNorth芯片)。
2、 encode & decode
在Elman RNN的训练过程中,递归层的输入由投影层的输出编码。然而,在转换成尖峰网络后,需要以尖峰形式提供输入。这里我们使用一个简单的输出速率码,也就是说,循环层的输入越高,输入峰值的数量就越高。更具体地说,我们使用泊松-尖峰序列,其发射率对应于射影层的表示输入维数的速率。例句中的每一个单词用16个记号表示。这意味着48个输入中的每一个和每个输入字可以有多达16个输入峰值。因此,输入分辨率从32位离散到4位。在不同的句子之间,我们重置神经元和突触状态。类似,我们对电流层的输出使用一个速率码,即16个神经元中的每一个都可以发射多达16个峰值,这再次代表了用于训练到4位的32位精度的离散化。
3、Weight Discretization.
这里描述的权重离散化方法与[18]中描述的方法相同,因为TrueNorth上的每个突触要么存在,要么不存在,但是它的权重只能是4种选择类型中的一种,所以加权分辨率可以解释为单比特。然而,通过对每个实际输入使用4个轴突,可以为每个实际输入实现4位精度。例如,通过选择4种轴突类型为{1,2,4,-8},然后将它们适当地组合在一起,-8和7之间的任何数字都可以代表。到对网络学习的位进行了离散化,以适应网络学习的需要。为了取消缩放的效果,对递归层的输入按1/16缩放。
4、隐藏层编码
hiddenstate的编码是这项工作的关键部分,因为这是(除了Elman RNN的不同训练)全连接网络的主要区别。问题是Elman RNN中的隐藏状态是最后一个输入字的当前层的输出。虽然这很容易在传统的硬件上实现,但如何“存储”这些信息以备下一次输入并不是一件容易的事。
我们决定用突触延迟来表示spikingRNN的隐藏状态。使用单一连接,TrueNorth能够实现高达15个时钟周期的延迟,也就是说,在源神经元向目标神经元发出信号后,尖峰将到达16个节拍(传播1个节拍,延迟15个节拍)。因此,在机器学习过程中,有16个周期的峰值与一个时间步长无关注意事项这就是我们为每个输入单词选择16次滴答的持续时间的原因。
图3描述了一个时间过程示例。在第1到16个点,从投影层到当前层的输入峰值表示单词“如何”。在最初的16次滴答声中没有其他的尖峰到达。然而,一旦复发层神经元的asone出现尖峰,所有与该神经元相连的复发神经元都将在16个节拍后接收到这个尖峰,e、 g.神经元13在第10个节间发射的尖峰,这意味着连接到神经元13的所有神经元都将在第26个节间接收到一个尖峰(除了来自复发神经元的其他可能的尖峰,以及来自投射层的输入尖峰)。请注意,这些长矛并没有被聚合,而是总是以它们发射时的精确时差到达。这是机器学习RNN的一个重要区别,在计算结果之前,所有的信息都被聚集起来,这可能会导致spiking RNN的性能比机器学习RNN低。
在第一个单词出现之后,对应于下一个单词“much”的尖峰在tick 17到32期间被用作projection层的输入。同时,在第一个词“如何”时,由神经元从再生层发出的尖峰波正在到达。因此,延迟线实质上是存储在最后一个输入字期间激发的尖峰。
积分时间有效地决定了激活函数的离散化,或者每个例子可以得到多少峰值。由于延迟的持续时间必须等于新输入之间的时间间隔,因此最大延迟限制了可能的积分时间。注意,通过链接额外轴突的延迟(每个轴突多16个节拍),可以增加这种延迟
4、用于比较的设置
为了更好地比较机器学习RNN与TrueNorth对等网络的性能,我们使用了两个中间设置。第一种方法相当于原始机器学习RNN,但是权值被缩放并离散到4位(因为ReLUs没有偏差,所以缩放实际上对性能没有影响),第二种设置除了将权重离散到4位之外,还使用了将隐藏状态离散到4位的方法。这是通过离散ReLU函数来实现的,使得激活是16个不同值中的一个来模拟真北神经元。
网友评论