ICLR 2024 | 连续学习不怕丢西瓜捡芝麻,神经形态方法保护旧知识

以脉冲神经网络(SNN)为代表的脑启发神经形态计算(neuromorphic computing)由于计算上的节能性质在最近几年受到了越来越多的关注 [1]。受启发于人脑中的生物神经元,神经形态计算通过模拟并行的存内计算、基于脉冲信号的事件驱动计算等生物特性,能够在不同于冯诺依曼架构的神经形态芯片上以低功耗实现神经网络计算。

然而,神经网络模型在持续学习新任务时通常存在对旧任务的灾难性遗忘的问题,这和人脑通过终生的连续学习(continual learning)来不断积累知识非常不同。如何能够通过神经形态的计算形式解决连续学习是一个对人工智能和神经科学都很重要的问题,也是构建具有持续学习能力的低功耗 SNN 神经形态计算系统的关键步骤。

此前的连续学习方法或者从已观察到的神经科学现象获得启发,提出如记忆重放、正则化等方法,但尚不清楚其他广泛存在的生物法则,如赫布学习(Hebbian Learning)、横向连接等,如何能够系统性地支持连续学习;或者关注纯粹的机器学习方法,例如在高维空间的正交投影以实现有保证的更好的知识保留 [2,3],但需要复杂的通用计算,难以通过神经形态的计算实现。如何通过神经计算的形式更好地解决连续学习仍是一个重要的问题。

为了解决这个问题,来自北京大学林宙辰教授团队的研究者们提出了一种新的基于赫布学习的正交投影的连续学习方法,其通过神经网络的横向连接以及赫布与反赫布学习,以神经形态计算的方式提取神经元活动的主子空间并对突触前神经元的活动迹进行投影,实现了连续学习中对旧知识的保护。HLOP 首次展示了更有数学保障的正交投影的思想能够如何在神经元运算中实现,以及横向神经回路和赫布学习等生物特性可能如何支持神经计算系统的高级能力。论文被机器学习顶会 ICLR 2024 接收。

方法介绍

正交投影方法对神经网络的每一层进行知识保护。对两层之间的突触权重 W,设此前学习的任务中突触前输入 张成一个子空间,当根据与该子空间正交的子空间的投影矩阵 P 对梯度进行投影时,更新后的权重满足,即新的学习不会干扰旧任务的输出。此前的工作采用不同的方法计算正交子空间的投影矩阵 P,如根据一个小批次的数据通过奇异值分解得到前 k 主成分矩阵 M,进而计算[3],但这些方法难以通过神经计算实现,且对整体主子空间的估计是有偏的。

HLOP 方法基于神经形态的赫布学习和横向神经回路实现正交投影,如图 1 所示。方法的主要思想是通过横向神经回路中的赫布学习提取当前任务的神经活动的主子空间,从而使得横向连接在后续任务中能够进行正交投影以连续学习。因此与常规的前向网络不同,HLOP 考虑神经网络每一层将与一组子空间神经元有循环的横向连接,其不影响前向传播而主要调控用于权重更新的神经元的活动迹。

图 1:HLOP 方法示意图

通过横向连接进行投影

注意到由于现有的监督学习方法通过 的方式计算权重更新,其中 是误差信号,x 是突触前神经元的活动迹(其定义依赖于具体 SNN 训练算法,如神经元的脉冲信号或资格迹),因此对梯度的投影仅需对局部的 x 进行投影。HLOP 通过一个具有反对称突触权重的循环横向连接实现对活动迹的修改,如图 1 (b,d) 所示:横向连接首先向子空间神经元传播 y=Hx,然后通过循环连接传播得到突触后响应 ,活动迹根据响应进行更新 。因此,只要连接权重 H 与主成分矩阵有相似的性质,即可通过横向连接进行所需的正交投影。

通过赫布学习提取主子空间

HLOP 通过对 H 进行赫布学习的方式提取主子空间,如图 1 (c) 所示。赫布型的学习长久以来被认为是神经系统的基本学习法则,并展示了具有从流输入中提取主成分的能力 [4]。具体而言,推广的 Oja 法则以 的方式更新权重,权重将收敛至一个主导的主子空间。

HLOP 同样通过循环的横向连接实现该赫布学习。循环连接得到y=Hx和突触后响应,连接权重将根据两阶段赫布学习进行更新 ,而反对称权重分别对应了赫布与反赫布学习。进一步针对在已有子空间的基础上学习新的子空间神经元和权重 H' 的情况,仅需根据突触前活动和整合的突触后响应更新,如图 1 (c) 所示。

赫布学习能够从流式输入的大量数据中无偏地提取主子空间,因此相比此前的正交投影方法,HLOP 也能更好地构建主子空间,得到更好的结果。

图 2:HLOP 与 SNN 在线训练算法结合示意图

与 SNN 训练相结合

HLOP 方法主要通过横向连接修改突触前神经元的活动迹,因此可以与各种基于突触前神经元活动迹的 SNN 训练算法灵活的结合,如基于脉冲编码表示的方法、随时间反向传播与替代梯度方法、随时间在线训练方法等。图 2 展示了 HLOP 与一类 SNN 随时间在线训练算法 [5] 结合的示意图,这种训练算法更契合生物和神经形态硬件的在线学习性质。在该结合中,HLOP 仅需通过额外考虑横向回路中的突触后响应以在线修改神经元的资格迹,这种简易的结合方式可以为在芯片上进行连续学习提供基础。

原始的 HLOP 在横向神经回路中主要考虑线性神经元,这对于部分支持混合神经网络的神经形态硬件 [6] 而言可以支持。针对更广泛的情况,HLOP 进一步考虑在横向连接中采用脉冲神经元,如图 2 (d) 所示,其通过神经元发放高频的突发脉冲序列(burst)并对此进行频率编码以表示信息。

实验结果

论文在多种设定的连续学习实验下验证了 HLOP 方法的有效性,考虑 ACC 和 BWT 两个指标,分别表示连续学习任务的平均正确率和旧任务的平均遗忘率。

首先,HLOP 方法可灵活地适用于不同的 SNN 训练算法,如下图所示,HLOP 一致地解决了连续学习中的灾难性遗忘。

然后,HLOP 方法在任务增量和域增量的设定、不同数据集、不同网络结构、以及不同误差传播算法(反向传播及生物可行性更高的反馈对齐和符号对称方法)的设定下均一致地解决了灾难性遗忘,如下图所示。

同时,HLOP 在横向连接中采用脉冲神经元的设定下仍有效地解决了遗忘的问题,如下图所示。

最后,与其他代表性的连续学习方法相比,HLOP 在各数据集上都一致地超越了此前的方法,如下图所示。而且,HLOP 是基于神经形态计算的形式,对神经形态硬件更友好,这展示了构建高性能的连续学习神经形态计算系统的潜力。

总结

HLOP 作为一种神经形态计算形式的连续学习方法,展示了横向连接和赫布学习能够通过提取神经活动主子空间并修改突触前神经元的活动迹以系统性地提供强大的连续学习能力。这阐明了一些生物法则可能如何支持神经形态计算系统的高级能力,也首次展示了正交投影的思想能够如何在神经元系统中实现。HLOP 可灵活地与任意基于突触前神经元活动迹的训练算法相结合,为构建芯片上连续学习的低功耗 SNN 神经形态计算系统提供了坚实的基础。

参考文献:

[1] Kaushik Roy, Akhilesh Jaiswal, and Priyadarshini Panda. Towards spike-based machine intelligence with neuromorphic computing. Nature, 2019.

[2] Guanxiong Zeng, Yang Chen, Bo Cui, et al. Continual learning of context-dependent processing in neural networks. Nature Machine Intelligence, 2019.

[3] Gobinda Saha, Isha Garg, and Kaushik Roy. Gradient projection memory for continual learning. ICLR, 2021.

[4] Erkki Oja. Neural networks, principal components, and subspaces. International Journal of Neural Systems, 1989.

[5] Mingqing Xiao, Qingyan Meng, Zongpeng Zhang, et al. Online training through time for spiking neural networks. NeurIPS, 2022.

[6] Jing Pei, Lei Deng, Sen Song, et al. Towards artificial general intelligence with hybrid Tianjic chip architecture. Nature, 2019.

相关推荐
果冻人工智能1 小时前
2025 年将颠覆商业的 8 大 AI 应用场景
人工智能·ai员工
代码不行的搬运工1 小时前
神经网络12-Time-Series Transformer (TST)模型
人工智能·神经网络·transformer
石小石Orz1 小时前
Three.js + AI:AI 算法生成 3D 萤火虫飞舞效果~
javascript·人工智能·算法
孤独且没人爱的纸鹤1 小时前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai
阿_旭1 小时前
TensorFlow构建CNN卷积神经网络模型的基本步骤:数据处理、模型构建、模型训练
人工智能·深度学习·cnn·tensorflow
羊小猪~~1 小时前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
极客代码1 小时前
【Python TensorFlow】进阶指南(续篇三)
开发语言·人工智能·python·深度学习·tensorflow
zhangfeng11331 小时前
pytorch 的交叉熵函数,多分类,二分类
人工智能·pytorch·分类
Seeklike1 小时前
11.22 深度学习-pytorch自动微分
人工智能·pytorch·深度学习
庞传奇1 小时前
TensorFlow 的基本概念和使用场景
人工智能·python·tensorflow