Page 359 - 《软件学报》2025年第4期
P. 359

俞诗航 等: 神经形态计算: 从脉冲神经网络到边缘部署                                                     1765


                 比, 所提出的突触在能耗和面积上分别减少了              94%  和  43%. 此外, 也有工作将   STDP  与存内计算的理念相结合, 实
                 现了硬件友好的      SNN  和高能效   STDP  学习方法, 最终达到了     0.47 nJ/像素的学习效率和     70.38 TOPS/W  的学习能
                                                                                                  12
                 效  [68] . TOPS (tera operations per second) 是处理器运算能力单位, 代表处理器每秒可进行一万亿次        (10 ) 操作.
                 TOPS/W  表示在功耗   1 W  的情况下, 处理器能进行多少        TOPS  操作.

                 1.3.2    有监督学习
                    有监督学习是指从带有标记的数据中识别模式的训练算法, 此时网络接收输入数据, 并根据学习到的分布对
                 输入进行预测, 然后将预测标签与真实标签进行比较, 以确定误差, 最终基于损失函数相对于参数的梯度更新网络
                 参数. 然而, 由于脉冲神经元不可微的特性, 在           SNN  中直接实现基于梯度的反向误差传播训练方法十分具有挑战性.
                    为了规避脉冲神经元动力方程不可微的问题, 一些研究将不连续导数近似为连续函数的代理梯度并用于训练
                 端到端反向传播的       SNN [49,73−75] . 代理梯度法的原理如图  5  所示, 其思想是用连续伪导数逼近脉冲函数的不连续梯

                 度.    x 1  和   x 2  表示两个输入神经元的泊松脉冲序列, 他们以    w 1,1  和  w 1,2  的权重连接到  LIF  神经元,   u 代表膜电位,   λ
                           o 为  LIF  神经元的脉冲输出. LIF                       x 的导数是不连续的, 因此可由伪导数近
                 为泄漏系数,                              神经元的输出     o 对其输入
                 似, 以便通过反向传播实现信用分配. 文献            [49] 使用代理梯度法来替代脉冲序列的导数, 并将权重二值化, 高效地
                                                    [79,80]
                 实现了支持神经形态硬件的          SNN  训练算法, 训练得到的      SNN  模型在   N-MNIST, DVS-CIFAR10, DvsGesture 和
                 N-TIDIGITS18  数据集上分别获得了     99.52%, 62.1%, 97.57%  和  90.35%  的识别准确率.

                                          Poisson spike-train  Leaky intergrate & fired
                                             x 1     w 1,1
                                                               V t
                                              t: 1 2 3            o i
                                                           u
                                                                     t: 1 2 3
                                             x 2     w 1,2
                                                             time
                                              t: 1 2 3
                                                            t−1
                                                          t
                                                         u i =  λu i +∑w ij  x j t
                                                              j
                                                              t
                                                            1, if u >V
                                                          t
                                                         o i =
                                                            0, otherwise
                                                          t   t  t
                                                         do i  do i  du i
                                                          t   t  t
                                                         dx j  du i  dx j
                                                                     w ij
                                                       Discontinuous  Surrogate gradient/
                                                        gradient  pseudo-deritative
                                                            u i =V t  u i =V t
                                                                         Linear
                                                                         Exponential
                                                            →        →
                                                            u i      u i
                                                  图 5 代理梯度训练方法       [76]

                    除了代理梯度法外, SNN       的有监督训练还包括反向误差传播训练法. 最早使用反向传播误差训练                        SNN  的算
                 法之一是   SpikeProp [55] , 该模型使用  3  层结构成功地应用于分类问题. 文献      [77] 借助  SNN  中的脉冲时序来估计梯
                 度分量, 从而实现与传统       ANN  中采用的随机梯度下降过程类似的学习, 适合在神经形态硬件中实现.
                    在  SNN  的反向误差传播训练法中, 基于脉冲的梯度下降法是一种广泛被使用的方法. 该方法通过时间反向传
                 播  (backpropagation through time, BPTT) 执行信用分配, 结合脉冲序列中的时间信息实现更低的推理延迟            [78] . 由于
                 SNN  在前向传递中需要在多个时间步长上进行计算, 因此可以通过及时展开网络并执行                          BPTT  来计算梯度. 如图   6
                 所示, BPTT  根据输入序列的长度展开         SNN, 并利用链式规则将计算出的最终误差反向传播到整个输入序列. 文
                 献  [79] 提出了一种使用    BPTT  进行训练的   SNN, 消除了梯度近似的需要, 最终在         MNIST  测试集上达到了      97.58%
                 的准确率.
                    尽管  BPTT  为训练  SNN  带来了新的方案        , 但其复杂的时空动态和巨大的内存消耗导致这类                 SNN  在边缘
                 部署时的门槛很高      [81] . 同时, 这种训练方法在生物合理性方面也带来了一些问题, 且损害了                 SNN  的在线处理能力.
                 最近, 几种受生物启发的在线训练算法            [82,83] 一定程度上解决了   BPTT  的缺陷. 这些算法将     BPTT 计算出的梯度因
                                                                                            t
                                    T                  1
                 式分解为瞬时学习信号        L  与神经元合格性轨迹       e  的时间乘积之和. 这两个信号在每个时间步长   上结合在一起,
                 可以得到训练参数的更新, 无需通过时间向后传播信息, 如图                  7  所示.
   354   355   356   357   358   359   360   361   362   363   364