关键词:
脉冲神经网络
梯度下降
误差反向传播
脉冲频率
神经形态类脑计算
摘要:
与传统的人工神经网络(Artificial Neural Network,ANN)采用连续的实数值进行信息传递不同,脉冲神经网络(Spike Neural Network,SNN)采用类似于大脑神经元产生动作电位的离散脉冲事件进行信息传递,因而具有更接近于大脑的信息处理能力。SNN通过脉冲事件驱动的通信实现神经元和突触计算,其与事件传感器相结合,有望突破深度人工神经网络所面临的能源和吞吐量瓶颈,实现低功耗、低延迟和高精度的目标识别。但由于脉冲函数无法求导数,误差反向传播算法难以直接应用于SNN训练,阻碍了SNN的发展。为此,本文从神经元模型、网络结构、算法优化等几方面进行研究,提出了一种新的基于脉冲频率与输入电流关系(Spike Rate Input Current,SRIC)的SNN训练算法,进一步提高了SNN在图像识别方面的性能,并显著提高了学习效率,具体包括:(1)提出SRIC训练算法。针对目前SNN仍然面临无法直接训练难题,受到神经科学领域关于LIF(Leaky Integrate-and-Fire)神经元响应机制研究启发,本文提出了一种新的基于频率编码的SNN训练算法。通过仿真实验对LIF神经元发放脉冲频率进行建模,得到LIF神经元脉冲频率与输入电流之间显示表达关系,并将其导数作为梯度。解决了SNN训练过程中脉冲函数的不可微性问题,使得可利用BP算法对SNN进行训练。其次,采用LIF神经元响应机制的参数更新机制。现有基于频率编码的方法大多采用时间信用分配(Temporal Credit Assignment)机制进行参数更新,通常具有较差的学习效率,为此,本文采用LIF神经元响应机制更新网络参数,提高学习效率。(2)针对本文提出的SRIC算法进一步改进,提高SRIC算法在深层网络上的识别精度与SRIC算法的抗噪性。针对训练深层SNN时脉冲发放速率变得极低,从而导致识别精度较差的问题,提出对SRIC算法的脉冲输入标准化。具体来说,在网络训练时的每一时间步,对卷积后的脉冲输入进行标准化,从而完成在时间和空间两个维度上的标准化,使脉冲的发放频率保持稳定,进而提高SRIC算法在深层网络的识别精度。其次,将侧向作用机制引入到SRIC的网络结构中,通过引入一个可训练的核,使得膜电位的更新受到该神经元的邻近神经元影响,进而提高了SRIC网络的抗噪性。仿真实验结果表明,本文所提出的SRIC算法在静态数据集和动态数据集的识别精度均有不同程度的提升,在训练效率上,相较于采用时间信用分配机制更新参数的其他SNN算法有着较大提升。其次,通过增加脉冲输入标准化与侧向作用,使得SRIC算法进一步提高了在深层网络训练的识别精度以及算法的抗噪性能。