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

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


                                                         1 N spike (t;t +∆t)
                                                    p(t) =                                           (11)
                                                         ∆t    K
                    种群速率编码将多个神经元聚集在一起计算它们的脉冲数量, 能够在非常短的时间窗口内测量一群神经元的
                 发射率, 增加了速率编码机制的可信性. 如公式              (11) 所示, 在一个时间窗    ∆t 内, 将种群中总脉冲数量      N spike   除以神
                 经元总数   N  和持续时间   ∆t 即可得到发射率. 图     3(c) 展示了  N = 4 时的种群速率编码方案.

                                                         1 N spike (t;t +∆t)
                                                    A(t) =                                           (12)
                                                         ∆t    N

                 1.2.2    时间编码
                    时间编码通过单个脉冲的相对时间对信息进行编码, 输入值被转换成具有精确时间的脉冲序列, 常用于时间
                 序列处理. 时间编码方案包括首脉冲触发时间编码, 秩序编码, 延迟编码, 相位编码等.
                    首脉冲触发时间       (time-to-first-spike, TTFS) 编码是最基础的时间编码方案, 它通过刺激开始时刻和神经元
                 第  1  个脉冲到达时刻之间的时间差来编码信息. TTFS            方案中每个神经元仅使用第          1  个脉冲, 而忽略其他脉冲, 牺
                 牲了一定计算精度从而获得更低的功耗. 例如, 图              4(a) 里的每个神经元的刺激强度越大, 那么其第            1  个脉冲到达的
                     ∆t 就越短.
                 时间

                              输入刺激
                       神经元 1              神经元 1             4  神经元 1             神经元 1
                       神经元 2  Δt          神经元 2             1  神经元 2             神经元 2
                       神经元 3              神经元 3             2  神经元 3             神经元 3
                       神经元 4              神经元 4             3  神经元 4             参考相位
                                                                                         Δt 1
                                                                       Δt 1  Δt 2  Δt 3
                           (a) 首脉冲触发时间编码         (b) 秩序编码             (c) 延迟编码           (d) 相位编码
                                                      图 4 时间编码

                    秩序编码    (rank-order coding, ROC) 使用神经元发射脉冲的相对顺序作为编码, 在这种情况下, 神经元发射的
                 确切时延并不重要, 重要的是每个神经元的排列顺序, 编码较大模拟值的输入神经元比编码较小模拟值的输入神
                 经元更早被激活. 例如, 图      4(b) 里  4  个神经元发射脉冲的相对排序为④①②③, 排序越靠前的神经元会编码更大
                 的模拟值.                          转换法可达到与
                    延迟编码如图      4(c) 所示, 信息被嵌入到神经元组峰值之间的相对时间差               ∆t i  中, 较大的模拟值意味着延迟较小
                 的脉冲, 其拥有更早的发射时间和更大的刺激强度.
                    相位编码受大脑区域内发生的背景振荡启发, 在脉冲和背景振荡之间的相对时间差中编码信息, 如果周期之
                 间没有变化, 相位模式会周期性重复. 如图            4(d) 所示, 每个神经元根据参考信号         ∆t i  发射脉冲, 并对数据进行类似
                 于     TTFS  的编码.
                 1.2.3    边缘部署时的脉冲编码方案对比
                    在使用速率编码的       SNN  中, 神经元的整合和发射行为几乎与           ReLU  激活函数相匹配     [52] , 后者常作为  ANN  中
                 使用的激活函数. 因此, 由      ANN  训练的权重可直接用于        SNN, 无需额外的训练信息, 直接将训练好的            ANN 模型转
                 换为  SNN  模型进行评估    [53] . 而时间编码往往需要基于脉冲的训练机制来训练脉冲之间的时间间隔以及网络参数,
                 限制了   SNN  的探索范围, 适用于浅层网络.
                    尽管基于速率编码的        ANN-to-SNN              ANN  接近的精度, 在复杂任务中得到了广泛应用, 但是
                 通过发射速率传输模拟值需要大量的脉冲, 从而导致推理延迟和能耗的增加, 而且速率编码只关注时间窗内的脉
                 冲数, 忽略了码间干扰, 不能充分利用脉冲序列中包含的时空信息, 因此效率不高.
                    相比之下, 基于时间编码的         SNN  可以在边缘部署时获得更高的能效, 因为时间编码大大减少了脉冲的数量.
                 无论输入数据的强度如何, TTFS        编码都只使用一个脉冲, 因此就脉冲数量而言, TTFS              方案有最低的功耗      [54] . 然而,
                 许多研究都使用了复杂的突触函数, 导致在边缘设备上很难用时间编码实现                        [55−57] .
                    表  2  简单给出了速率编码和时间编码在边缘部署时的性能比较. 总的来说, 速率编码以神经元的发射速率对
   352   353   354   355   356   357   358   359   360   361   362