摘要:郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!
Preprint · September 2020
Abstract
脉冲神经网络(SNN)具有在专用神经形态硬件上高效实现深度神经网络(DNN)的巨大潜力。最近的研究表明,在图像分类任务(包括CIFAR10和ImageNet数据)上,与DNN相比,SNN具有竞争优势。目前的工作着重于结合SNN与ATARI游戏中的深度强化学习,与图像分类相比,它涉及更多的复杂性。我们回顾了将DNN转换为SNN并将转换扩展到深度Q网络(DQN)的理论。我们提出了发放率的可靠表征,以减少转换过程中的误差。此外,我们引入了一种新的指标来评估转换过程,方法是分别比较DQN和SNN做出的决策。我们还分析了仿真时间和参数归一化如何影响转换后的SNN的性能。我们在17项性能最优的Atari游戏中获得了相当的得分。据我们所知,我们的工作是第一个在具有SNN的多个Atari游戏上实现最新性能的工作。我们的工作为将DQN转换为SNN提供了基准,并为进一步研究解决SNN强化学习任务铺平了道路。
Introduction
近年来,深度卷积神经网络(CNN)在图像识别方面取得了巨大成功(LeCun, Bengio, and Hinton, 2015; He et al., 2016)。经过深度RL训练的CNN在许多RL任务中的表现甚至达到甚至超过了人类水平(Mnih et al., 2015; Vinyals et al., 2019)。但是,结合DNN进行深度RL需要大量资源,在某些实际问题中可能无法获得。例如,在许多现实生活场景中,要求处理系统具有高能效和低延迟(Cheng et al., 2016)。
脉冲神经网络(SNN)提供了一种有吸引力的解决方案,可以减少延迟和计算负荷。与处理连续激活值的ANN相反,SNN使用脉冲通过许多离散事件传输信息。这使SNN更加节能。SNN可以在专用硬件上实现,例如IBM的TrueNorth (Merolla et al., 2014)和英特尔的Loihi (Davies et al., 2018)。据报道,它们的能源效率是传统芯片的1000倍。因此,随着ANN在社会许多领域的应用,SNN有潜力满足对AI的快速增长的需求。
理论分析表明,SNN在计算上与常规神经元模型一样强大(Maass and Markram, 2004),但是,目前SNN的使用非常有限。主要原因是训练多层SNN是一个挑战,因为SNN的激活函数通常是不可微的。因此,与ANN相反,不能使用基于梯度下降的方法来训练神经网络。训练SNN的方法有多种,例如使用随机梯度下降法(O‘Connor and Welling, 2016),将膜电位可微化(Lee, Delbruck, and Pfeiffer, 2016),事件驱动的随机反向传播(Neftci et al., 2017)和其他方法(Tavanaei and Maida, 2019; Kheradpisheh et al., 2018; Mozafari et al., 2018)。与ANN相比,这些方法在浅层网络的MNIST (LeCun et al., 1998)上具有竞争优势。但是,它们在更现实和复杂的数据集上的性能都没有竞争力,例如CIFAR-10 (Krizhevsky, Sutskever and Hinton, 2012)和ImageNet (Russakovsky et al., 2015)。最近,(Wu et al., 2019)和(Lee et al., 2020)使用基于脉冲的反向传播在CIFAR-10上实现了90%以上的精度,这对于直接训练SNN而言是一个巨大的进步。
为了避免训练SNN的困难,同时利用SNN处理的优势,我们遵循(Pérez-Carrasco et al., 2013)提出的将ANN转换为SNN的替代方法。该方法采用预训练ANN的参数,并将它们映射到具有相同架构的等效SNN (Diehl et al., 2015) (Rueckauer et al., 2017) (Sengupta et al., 2019)。由于ANN具有许多高性能的训练方法,因此我们的目标是将最先进的ANN直接转换为神经网络,而不会降低性能。(Sengupta et al., 2019)的最新工作表明这种转换的确是可能的。也就是说,他们表明,即使非常深的ANN,如VGG16和ResNet,也可以成功转换为SNN,而CIFAR-10和ImageNet数据集的错误率不到1%。
继ANN到SNN转换方法在图像分类任务上取得成功之后,希望扩展这些结果以解决深度RL问题。然而,事实证明,使用深度SNN解决RL任务非常困难。问题可以总结如下。由于针对训练好的ANN进行图像分类的优化过程中使用的误差性质,正确类别的得分始终明显高于其他类别。因此,转换过程的误差不会对最终性能产生重大影响。但是,对于深度Q网络(DQN),即使对于训练好的网络,不同动作的输出q值也通常非常相似。这使得网络更容易受到转换过程中引入的误差的影响。这是将DQN转换为SNN的艰巨任务的关键原因。
在本文中,我们提出了SNN来解决深度RL问题。与(Rueckauer et al., 2017)提出的等效模拟激活值相比,我们的方法提供了脉冲神经元发放率的更准确近似值。首先,我们探索和解释(Rueckauer et al., 2017)描述的参数归一化的效果。接下来,我们通过在仿真时间结束时使用膜电压来减少转换过程中引起的误差,从而提出了更为可靠的发放率表征。最后,我们在17种Atari游戏中测试了所提出的将DQN转换为SNN的方法。它们都达到了与原始DQN相当的性能。这项工作探讨了在深度RL领域中采用SNN的可行性。成功的实现将促进SNN在未来的各种机器学习任务中的使用。
Related work
为了开发一种有效的方法来处理从事件驱动的传感器收集的数据,(Pérez-Carrasco et al., 2013)通过在卷积网络和SNN之间映射权重参数,将传统的帧驱动的卷积网络转换为事件驱动的SNN。但是,此方法需要调整表征各个神经元动态的参数。此外,它遭受相当大的精度损失。随着CNN的成功,研究人员开始致力于使用SNN解决计算机视觉问题,尤其是在使用转换方法进行图像分类和对象识别方面。(Cao, Chen, and Khosla, 2015)率先报道了CIFAR-10的高精度,其中SNN由CNN转换而成。它使用ReLU来确保所有激活值都是非负的,并且简单的IF脉冲神经元消除了调整额外参数的需要。下一节将对IF神经元模型进行描述。他们的方法有多个简化。例如,它需要在每次训练迭代后将所有偏差都设置为零,并且它使用空间线性子采样而不是更流行的最大池化。
基于(Cao, Chen, and Khosla, 2015), (Diehl et al., 2015)提出了一种新的权重归一化方法,以实现ANN的激活值和SNN的发放率在相同范围内。他们报告了MNIST的测试精度为99.1%。Rueckauer et al. (2017)提出了转换方法的综合数学理论。他们将脉冲神经元发放率的近似值等同于等效的模拟激活值。脉冲神经元产生脉冲后,他们的方法从膜电位中减去神经元的阈值,而不是将膜电位复位为零。他们观察到这种方法可以减少误差。此外,他们基于(Diehl et al., 2015),以缓解较高层的低发放率。他们还提供了将ANN中的许多常见操作转换为其等效SNN版本的方法,例如最大池化,softmax,批正则化和Inception模块。通过这些方法,一些深度神经网络架构(例如VGG-16和Inception-v3)已成功转换为SNN。他们报告了MNIST,CIFAR-10和ImageNet的良好性能。
(Sengupta et al., 2019)提出了一种新方法来根据输入数据调整阈值,而不是进行权重归一化。他们成功地将ResNet转换为SNN。他们的工作实现了CIFAR-10和ImageNet上转换方法的最新技术。(Rueckauer and Liu, 2018)提出了使用首次脉冲时间代替发放率来表示ANN的激活值。尽管此方法大大减少了计算量,但会引入更多误差。与基于发放率的转换方法相比,该方法报告在MNIST上的测试精度损失约为1%,该损失将在更复杂的数据集和任务中放大。
各种研究旨在将转换方法应用于其他任务以利用SNN,例如基于事件的视觉识别(Ruckucker et al., 2019)和自然语言处理(NLP) (Diehl et al., 2016)。(Patel et al., 2019)首次尝试使用SNN进行深度RL任务。它使用粒子群优化(PSO)搜索最优的权重缩放参数。尽管此方法的性能接近使用浅层网络的DQN,并且具有更高的抗干扰性,但由于探索空间大,因此在深度DQN网络上失败。
Methods
在本节中,我们首先提供转换方法的数学框架,将工作扩展为(Rueckauer et al., 2017)。基于发展的理论,我们提出了两种方法来减少误差并提高SNN中的发放率。
Theory for converting ANNs to SNNs
转换方法的主要思想是建立SNN的发放率与ANN的激活值之间的关系。通过这种关系,我们可以将训练好的ANN权重映射到SNN,这样就可以直接获得高性能的SNN,而无需额外的训练。(Rueckauer et al., 2017)综述了最新技术,并提出了完整的数学理论,该理论涉及如何使脉冲神经元的发放率近似于等效的模拟激活值。他们的推导有些过分简化,可能导致转换过程中的误差。在这项工作中,我们纠正了这些误差,并使数学结果更加可靠。仅当脉冲神经元的选定阈值不是一个阈值时,本工作中引入的校正才重要。
我们使用的脉冲神经元是IF神经元,它是最简单的脉冲神经元模型之一。IF神经元简单地对其输入进行积分,直到膜电位超过电压阈值并产生脉冲为止。IF神经元没有衰减机制,我们假设没有不应期,这与人工神经元更为相似。
对于具有L层的SNN,让Wl, bl, l ∈ {1, ... , L}表示第 l 层的权重和偏差。层 l 在时间 t 的输入电流zl(t)可计算为:
其中θl-1(t)是一个矩阵,表示层l-1中的神经元是否在时间 t 产生脉冲:
其中Vl(t-1)表示在时间t-1处 l 层中脉冲神经元的膜电位。Vthr是脉冲神经元的阈值。
在此,我们的公式(1)与(Rueckauer et al., 2017)中的公式稍有不同,后者的公式为zl(t) = Vthr(Wlθl-1(t)+ bl)。如果所有输入电流都乘以阈值,则等于将阈值设置为1。然后得出的结果是,无论我们设置的阈值如何,输入电流都会改变相应的倍数,从而抵消了阈值的影响。
通常,典型的IF神经元在产生尖峰后会将其膜电位复位为零。 但是,缺少电压超过阈值的消息。(Rueckauer et al., 2017)证明它将引入新的错误并提出解决方案。 当神经元的膜电位超过阈值时,而不是将其重置为零,而是从膜电位中减去阈值的电压。 在这项工作中,我们还对IF神经元采用了这种减法机制:
Methods to Alleviate the Error
在本节中,我们介绍了一组减小转换过程中误差的方法。
Parameter Normalization
Robust Firing Rate
Results
Environment
Networks
Conversion
Metric
Testing
The Effect of Simulation Time
The Effect of Percentile
The Performance of Converted SNNs on Different Games
Conclusions and Future work
Supplymentary Material
Strategy and Benchmark for Converting Deep Q-Networks to Event-Driven Spiking Neural Networks