GeekAI 张倩参与

浙大&川大提出脉冲版ResNet:继承ResNet优势,实现当前最佳

脉冲神经网络(SNN)具有生物学上的合理性,并且其计算潜能和传统神经网络相同,主要障碍在于训练难度。为解决这个问题,浙江大学和四川大学近日提出了脉冲版的深度残差网络 Spiking ResNet。为解决模型转换的问题,研究者提出了一种新机制,对连续值的激活函数进行标准化,以匹配脉冲神经网络中的脉冲激发频率,并设法减少离散化带来的误差。在多个基准数据集上的实验结果表明,该网络取得了脉冲神经网络的当前最佳性能。

研究表明,脉冲神经网络 [21] 是一种弥合模型性能和计算开销之间鸿沟的解决方案。从理论上讲,脉冲神经网络可以像人工神经网络(ANN)一样逼近任意的函数。与传统的人工神经网络(ANN)不同,脉冲神经网络神经元通过离散的事件(尖峰脉冲)而不是连续值的激活函数来相互通信。当事件到达时,这个系统会被异步更新,从而减少在每个时间步上所需要的运算步数。最新的研究进展表明,脉冲神经网络可以通过像 TrueNorth [24],SpiNNaker[9],以及 Rolls [26] 这样的神经形态的硬件来模拟,其能量消耗比当前的计算机硬件少几个数量级。此外,由于其基于事件的特性,脉冲神经网络天生就适合处理从具有低冗余、低延迟和高动态范围的基于 AER(地址时间表达)的传感器那里得到的输入数据,例如:动态视觉传感器(DVS)[19] 和听觉传感器(硅耳蜗)[20]。最近的一项研究 [28] 指出,脉冲立体神经网络的实现比基于经典绝对误差和(SAD)算法的微控制器的实现少消耗大约一个数量级的能量。

如今,脉冲神经网络所面临的一大挑战是如何找到一种有效的训练算法,克服脉冲的不连续性,并且获得和人工神经网络(ANN)相当的性能。转换方法,即通过训练一个传统的人工神经网络并建立一个转换算法,将权重映射到一个等价的脉冲神经网络中去,取得了迄今为止最好的性能。然而,对一个非常深的人工神经网络进行转换的难题在这之前从未被解决过。 

在本文中,我们研究了基于残差神经网络 [11] 的深度脉冲神经网络的学习,这是一种非常前沿的卷积神经网络(CNN)架构,它在许多数据集上取得了非常好的性能,并且大大增加了网络的深度。在假设被转化的残差神经网络仍然具有它原本的优势的前提条件下,我们将一个预训练好的残差神经网络转换到它的脉冲版本。为了放缩连续值的激活函数使其适用于脉冲神经网络,我们开发了一种快捷正则化技术去标准化快捷连接并且在整个脉冲神经网络上保持了单元的最大脉冲激发频率,换言之,每一层上的神经元能够达到理论上最大的脉冲激发频率(每个时间步都会激活脉冲)。我们还提出了一种分层的误差补偿方法,通过减少每一层的采样误差来提高近似程度。

图 1: 脉冲残差网络架构示意图。

构建脉冲残差网络

起初,研究者们提出用残差神经网络解决深度神经网络退化的问题。由于意识到一个通过增加恒等识别层构建的深度网络不会比原来的浅层网络性能差,He 等人 [11] 用堆叠起来的非线形层去接近 F(x) := H(x) − x 的映射,其中 H(x) 是所需的潜在的映射。接着,原始的映射就变成了一个残差映射:H(x) = F(x) + x。它们假设残差映射更容易通过现有的优化方法来优化,并且通过实证证明了他们的假设。他们的实验表明,残差网络能够在非常大的深度下获得出色的性能。受到他们成果的启发,我们假设残差神经网络的脉冲版本继承了残差神经网络的优势,并且通过脉冲残差网络探索了学习非常深的脉冲神经网络的未知领域。

与其它的深度脉冲神经网络的对比

在表 1 中,我们总结了在 MNIST、CIFAR-10、CIFAR-100 数据集上得到的结果,并且与其它的深度脉冲神经网络的结果进行了比较。此处,我们定义深度时考虑了神经网络中所有可以学习权重的层,即卷基层和全连接层。在上述三个数据集上,我们的脉冲残差网络取得了比其它的深度脉冲神经网络更好的性能。在 MNIST 数据集上,我们实现了对 ResNet-8 的无损转换,并且得到了 99.59% 的准确率。我们没有在 MNIST 上用更深的网络进行实验,因为我们相信一个较浅的网络所做的工作已经足以学到这些手写数字背后的隐藏映射。在 CIFAR-10 数据集上,深度为 44 的脉冲残差网络取得了(脉冲神经网络中)最佳的性能 92.37%,它也是目前最深的前馈脉冲神经网络。原始的深度为 44 的残差神经网络准确率是 92.85%,由转换导致的精度损失是 0.48%,这与其它的深度脉冲神经网络相比已经相当低了。在 CIFAR-100 数据集上,深度为 44 的脉冲残差网络也取得了很好的性能,准确率达到了 68.56%,转换过程导致准确率降低了 1.62%。

表 1:和其他的转化方法在 MNIST,CIFAR-10 和 CIFAR-100 数据集上的对比。

快捷正则化技术的实验

为了评估快捷正则化的有效性,我们在 CIFAR-10 数据集上训练了深度为 20、32、44、56、110 的残差神经网络,并且将它们转换为带有/不带有快捷正则化的脉冲残差网络。表 2 给出了原始的残差神经网络和相应的带有/不带有快捷正则化的脉冲残差网络所取得的识别准确率。在所有的不同深度的脉冲神经网络中,带有快捷正则化的网络都比不带快捷正则化的网络性能更好。随着深度从 20 增大到 32、44、56、110,他们相应的性能差距也从 2.34% 增大到 6.32%、7.42%、8.31%、8.59%。随着网络的加深,不带快捷正则化脉冲神经网络比带有快捷正则化脉冲神经网络受到的性能损失也随之增大。此外,带有快捷正则化脉冲神经网络的性能在深度为 20、32、44、56 时十分稳定。在深度为 20 时,转换后的性能仅仅下降了 0.20%。

表 2: 残差神经网络和脉冲残差网络(带有/不带有快捷正则化技术)在 CIFAR-10 数据集上的分类准确率

图 4: 普通网络和残差网络在 CIFAR-10 数据集上转化效率的对比。

图 5: 普通人工神经网络(ANN)和残差人工神经网络的对比。

论文:Spiking Deep Residual Network

论文链接:https://arxiv.org/abs/1805.01352

摘要:近一段时间以来,脉冲神经网络因其生物学上的合理性受到了广泛的关注。从理论上讲,脉冲神经网络至少与传统的人工神经网络(ANN)具有相同的计算能力,并且有潜力实现革命性的高效节能。然而,当前的状况是,训练一个非常深的 SNN 是一个巨大的挑战。在本文中,我们提出了一个高效的方法去构建一个脉冲版的深度残差网络(ResNet),它也代表了最先进的卷积神经网络(CNN)。我们将训练好的残差神经网络(ResNet)转换成一个脉冲神经元组成的网络,并将该网络命名为「脉冲残差网络(Spiking ResNet)」。为了解决这个转换的问题,我们提出了一种快捷的正则化机制,适当地对连续值的激活函数进行放缩(标准化),用来匹配脉冲神经网络中的脉冲激发频率。并且,我们还采用了分层的误差补偿方法来减少离散化带来的误差。我们在 MNIST、CIFAR-10 和 CIFAR-100 数据集上的实验结果表明,我们提出的脉冲残差网络取得了脉冲神经网络当前最佳性能。

理论深度残差网络浙江大学四川大学人工神经网络
4
相关数据
激活函数技术
Activation function

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

神经网络技术
Neural Network

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

深度神经网络技术
Deep neural network

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

卷积神经网络技术
Convolutional neural network

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

深度残差网络技术
Deep Residual Network

残差网络通过使用残差模型模块构建网络,从而训练此类深层网络,这称为退化(degradation)问题。

映射技术
Mapping

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

神经元技术
neurons

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

规范化技术
Normalization

规范化:将属性数据按比例缩放,使之落入一个小的特定区间,如-1.0 到1.0 或0.0 到1.0。 通过将属性数据按比例缩放,使之落入一个小的特定区间,如0.0到1.0,对属性规范化。对于距离度量分类算法,如涉及神经网络或诸如最临近分类和聚类的分类算法,规范化特别有用。如果使用神经网络后向传播算法进行分类挖掘,对于训练样本属性输入值规范化将有助于加快学习阶段的速度。对于基于距离的方法,规范化可以帮助防止具有较大初始值域的属性与具有较小初始值域的属相相比,权重过大。有许多数据规范化的方法,包括最小-最大规范化、z-score规范化和按小数定标规范化。

脉冲神经网络技术
Spiking neural network

第三代神经网络,脉冲神经网络(Spiking Neural Network,SNN),旨在弥合神经科学和机器学习之间的差距,使用最拟合生物神经元机制的模型来进行计算。脉冲神经网络与目前流行的神经网络和机器学习方法有着根本上的不同。SNN 使用脉冲——这是一种发生在时间点上的离散事件——而非常见的连续值。每个峰值由代表生物过程的微分方程表示出来,其中最重要的是神经元的膜电位。本质上,一旦神经元达到了某一电位,脉冲就会出现,随后达到电位的神经元会被重置。对此,最常见的模型是 Integrate-And-Fire(LIF)模型。此外,SNN 通常是稀疏连接的,并会利用特殊的网络拓扑。

堆叠技术
Stacking

堆叠泛化是一种用于最小化一个或多个泛化器的泛化误差率的方法。它通过推导泛化器相对于所提供的学习集的偏差来发挥其作用。这个推导的过程包括:在第二层中将第一层的原始泛化器对部分学习集的猜测进行泛化,以及尝试对学习集的剩余部分进行猜测,并且输出正确的结果。当与多个泛化器一起使用时,堆叠泛化可以被看作是一个交叉验证的复杂版本,利用比交叉验证更为复杂的策略来组合各个泛化器。当与单个泛化器一起使用时,堆叠泛化是一种用于估计(然后纠正)泛化器的错误的方法,该泛化器已经在特定学习集上进行了训练并被询问了特定问题。

权重技术
Weight

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

准确率技术
Accuracy

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

卷积技术
Convolution

张倩
张倩

机器之心编辑

推荐文章