APP下载

基于梯度下降的脉冲神经网络训练算法

2021-02-27徐梦遥

现代计算机 2021年35期

徐梦遥

(上海交通大学电子信息与电气工程学院,上海 200240)

0 引言

人工神经网络(artificial neural network,ANN)近年来迅猛发展并广泛运用于各行业[1]。ANN的一个计算单元包括多个加权输入和一个连续可求导的激活函数,可求导的激活函数使ANN易于通过沿梯度下降的方法进行训练[2],这样的计算单元也被称为人工神经元。但ANN与生物神经网络在结构,计算,信息传递机制上存在较大差异,且在很多任务场景中仍无法实现更智能的功能。与传统人工神经元相比,新一代脉冲神经网络(spiking neural network,SNN)神经元在信息的表达和传递上更加接近生物神经元[3-4],因此作为第三代神经网络,有望处理更复杂的任务、实现更好的性能,因而受到学术界的广泛研究。此外,对于规模更大的深度神经网络(deep neural net⁃work,DNN),脉冲神经网络的脉冲特性能够实现更好的能效比,占用更少的硬件资源。但由于脉冲神经网络不可求导的激活函数和离散的信息表达方式,现有的基于梯度下降的反向传播算法难以被用于训练SNN[5],因此SNN尚且缺乏一个有效的训练方法,影响了它的广泛应用。

一个常见的训练SNN的方法是先训练ANN,然后将其转换为SNN并进行权重微调[7-9]。这样的方法普遍存在的问题是会对ANN产生很多限制,例如不得使用偏差、批量归一化和平均池化层。Sengupta团队[9]提出将SNN神经元输入的最大值设置为激活阈值,但脉冲时间序列的总长度达到2000—2500,导致整个网络的计算时间非常长。Rueckauer团队[10]选择输入分布的某一个百分位作为阈值,在一定程度上降低了整个网络的计算延迟并提高了鲁棒性,但阈值的选择缺乏有效的方法。……

登录APP查看全文