关键词:
脉冲神经网络
代理梯度
训练算法
类脑计算
摘要:
脉冲神经网络是受生物神经网络启发而设计的一种特殊的神经网络结构,它使用二值脉冲组成的脉冲序列在层间传递信息。使用二值的脉冲信号作为信息的载体,神经元在轴突计算突触电流时具有将高功耗的矩阵乘法退化为低功耗的矩阵加法的潜力,从而使得脉冲神经网络具有低功耗和快速响应特性。在一些特殊的实时场景和低功耗终端设备上具有应用优势。然而脉冲信号的二值化由于其发放函数为阶跃函数,它的不可导性也为脉冲神经网络带来了极大的训练挑战。
目前有两种主流的方法来获得深层脉冲神经网络,分别为网络转换算法和直接训练算法。网络转换算法通过将使用ReLU为激活函数的人工神经网络转换为同结构的脉冲神经网络。然而,目前的网络转换算法仅仅是基于ReLU激活值与神经元激活频率的正比关系,缺乏网络整体转换的效果分析,所以转换后的脉冲神经网络需要巨大的时间步长才能达到源人工神经网络的性能。相比于网络转换算法,直接训练算法对于网络结构和数据集有更强的适应性,但是其训练难度和开销较大。使用代理梯度在反向梯度计算中替换阶跃函数是目前最主流直接训练方法。代理梯度的引入虽然为训练复杂脉冲神经网络提供了可能性,但是也带来了梯度累积误差,低泛化性等问题。本文围绕脉冲神经网络的训练问题出发,重点研究了转换算法的转换误差问题,以及降低代理梯度导致的梯度误差累积问题,以及如何提供训练效果,增强网络泛化性,并提出了适合脉冲神经网络的新结构。本文主要的研究内容和创新点包括:
1.定义网络转换算法的转换误差,并计算出其数值上界。现有的网络转换算法主要是基于ReLU激活函数的激活值与脉冲频率之间的正比关系,但是缺乏对转换前后不同网络整体输出差异的分析。本文通过逐层分解的方法将转换前后网络在相同输入下的输出差定义为转换误差,并计算出其理论上界,填补了网络转换算法的理论空白,为后续转换算法的改进提供了理论支持。同时本文提出了两种算法将转换后脉冲神经网络所需的仿真时间步长降低到了原本的1/10。
2.分析了脉冲神经网络的低泛化性原因,并提出了高效时间训练算法提高了脉冲神经网络的泛化性。在一些小规模数据集上,脉冲神经网络和传统神经网络往往都能在训练集达到极高的性能,但是在测试集上脉冲神经网络的表现远低于传统神经网络。本文分析了此现象的原因,并提出了新颖的高效时间训练算法,并从理论以及实验角度证明了新算法的有效性,在所有数据集,特别是神经形态数据集上高效时间训练大幅提升了脉冲神经网络的泛化性。如DVS-CIFAR10数据集,本文提出的算法使脉冲神经网络首次达到了80%以上的准确率,对比现存算法实现了10%以上的测试集准确率提升。
3.分析了代理梯度导致的梯度误差累积问题,提出了代理模块学习算法缓解梯度误差累积。本文分析了代理梯度在链式法则上会引入梯度误差,并进行逐层累积,导致了脉冲神经网络的性能和最佳网络深度受限。本文提出了代理模块学习算法来缓解此类问题,代理模块学习引入新的辅助支路来回传更精确的梯度到前面层,从而缓解累积梯度误差的影响。代理模块学习在不同的数据集上都取得了最优的性能,同时本文证明了代理模块学习能够在其他使用代理梯度的网络模型上的适用性使用本文提出的代理模块训练算法,ResNet-34结构的脉冲神经网络的ImageNet数据集准确率达到了69.35%,对比现有的训练算法是提高了4.56%。
4.本文设计了适合脉冲神经网络的新的网络结构,使得脉冲神经网络在不同数据集上的性能获得大幅度提升。本文分析研究了不同令牌混合器的表现,并通过网络搜索算法找到了适应不同数据集的优秀编码器结构。基于以上实验,本文提出了STMixer的新结构,在ImageNet等数据集上取得了目前同等参数量规模的最优性能。通过本文提出的新结构,以及设计的新代理模块训练算法,脉冲神经网络以约72%的参数量取得了比现有结果更高的ImageNet准确率(+0.73%),达到了75.52%。