【博士每天一篇文献-算法】Neurogenesis Dynamics-inspired Spiking Neural Network Training Acceleration

简介: NDSNN(Neurogenesis Dynamics-inspired Spiking Neural Network)是一种受神经发生动态启发的脉冲神经网络训练加速框架,通过动态稀疏性训练和新的丢弃与生长策略,有效减少神经元连接数量,降低训练内存占用并提高效率,同时保持高准确性。

阅读时间:2023-12-22

1 介绍

[Neurogenesis dynamics-inspired spiking neural network training acceleration.pdf]
年份:2023
作者:黄绍仪,康涅狄格大学;Haowen Fang,雪城大学;Kaleel Mahmood康涅狄格大学驻校助理教授
会议: DAC(一区)
引用量:6
Huang S, Fang H, Mahmood K, et al. Neurogenesis dynamics-inspired spiking neural network training acceleration[C]//2023 60th ACM/IEEE Design Automation Conference (DAC). IEEE, 2023: 1-6.
本文提出了一种受神经发生动态启发的脉冲神经网络(SNN)训练加速框架,称为NDSNN,NDSNN框架通过动态稀疏性从头开始训练模型,而不牺牲模型保真度,是一种新的减少非零权重数量的丢弃和生长策略,动态地减少SNN稀疏训练中的神经元连接数量,实现保证准确率的同时,实现较大的稀疏性,减少训练内存占用并提高训练效率。实验结果表明,与其它最先进方法(例如彩票假设LTH、SET-SNN、RigL-SNN)相比,NDSNN在Tiny-ImageNet上使用ResNet-19(稀疏度为99%)实现了高达20.52%的准确率提升。此外,NDSNN的训练成本仅为LTH训练成本的40.89%(ResNet-19)和31.35%(VGG-16)。
image.png

image.png

image.png

2 创新点

  1. 受神经发生动态启发的训练框架:NDSNN框架是受人类海马体中神经元退化和重新分化过程(神经发生动态)启发而设计的。这种生物学上的类比被用于设计SNN的稀疏训练策略。
  2. 动态稀疏性训练:NDSNN通过动态调整权重的稀疏性,从头开始训练模型,而不是像传统方法那样先训练一个密集模型然后进行剪枝。这种方法可以在训练过程中减少内存占用和计算需求。
  3. 新的丢弃和生长策略:NDSNN设计了一种新的drop-and-grow策略,该策略在训练过程中逐渐减少非零权重的数量,以维持极高的稀疏性和准确性。这种策略模仿了神经元的死亡(drop)和新生(grow)过程。
  4. 高效率和高准确性:实验结果表明,NDSNN在保持高准确性的同时,相比于其他最先进方法(SOTA),在训练成本上实现了显著降低。例如,在Tiny-ImageNet数据集上使用ResNet-19模型时,NDSNN在99%的稀疏度下实现了比其他SOTA方法高达20.52%的准确率提升。
  5. 跨数据集和模型的评估:NDSNN在多个数据集(CIFAR-10, CIFAR-100, Tiny-ImageNet)和不同的神经网络架构(VGG16和ResNet-19)上进行了评估,证明了其方法的通用性和有效性。
  6. 内存占用和训练成本分析:论文不仅关注模型的准确性,还对NDSNN的内存占用和训练成本进行了详细的分析,证明了其在实际应用中的潜力,尤其是在资源受限的边缘设备上。
  7. 计算效率的量化评估:通过与密集模型和LTH方法的比较,NDSNN显示出较低的相对计算成本,这表明了其在训练过程中的效率。

3 相关研究

(1)相关论文
使用稀疏性来压缩SNN模型大小和加速推理

  • 训练-剪枝-再训练方法(例如,交替方向乘子法(ADMM)剪枝[5, 7, 8, 9])
    • Deng L, Wu Y, Hu Y, et al. Comprehensive snn compression using admm optimization and activity regularization[J]. IEEE transactions on neural networks and learning systems, 2021, 34(6): 2791-2805.
    • Peng H, Huang S, Geng T, et al. Accelerating transformer-based deep learning models on fpgas using column balanced block pruning[C]//2021 22nd International Symposium on Quality Electronic Design (ISQED). IEEE, 2021: 142-148.
    • Chen S, Huang S, Pandey S, et al. Et: re-thinking self-attention for transformer models on gpus[C]//Proceedings of the international conference for high performance computing, networking, storage and analysis. 2021: 1-18.
    • Luo Y, Behnam P, Thorat K, et al. Codg-reram: An algorithm-hardware co-design to accelerate semi-structured gnns on reram[C]//2022 IEEE 40th International Conference on Computer Design (ICCD). IEEE, 2022: 280-289.
  • 迭代剪枝(例如,彩票假设(LTH)[6, 10])。
    • Kim Y, Li Y, Park H, et al. Exploring lottery ticket hypothesis in spiking neural networks[C]//European Conference on Computer Vision. Cham: Springer Nature Switzerland, 2022: 102-120.’
    • Frankle J, Carbin M. The lottery ticket hypothesis: Finding sparse, trainable neural networks[J]. arXiv preprint arXiv:1803.03635, 2018.

(2)“稀疏性”指的是神经网络中非零权重与总权重的比例,在神经网络中,增加稀疏性通常意味着减少网络中的参数数量,这可以降低模型的复杂度,提高计算效率,减少内存占用,并可能提高模型的泛化能力。

4 算法

  1. 初始化:设置初始稀疏度 θ i \theta_i θi​和目标稀疏度 θ f \theta_f θf​,选择训练频率 Δ T \Delta T ΔT,初始化网络权重W。
  2. 稀疏度分布:使用等权随机关键(Equal Row Kulback-Leibler, ERK)方法来确定每层网络在训练开始和结束时的稀疏度分布 Θ i \Theta_i Θi​和 Θ f \Theta_f Θf​。
  3. 训练循环:对每个训练迭代t 执行以下操作:
    • 如果当前迭代t 满足剪枝条件(即 t m o d    Δ T = 0 t\mod \Delta T = 0 tmodΔT\=0 且 t < T e n d t < T_{end} t<Tend​),则进入剪枝和生长阶段;否则,进行正常的权重更新。
  4. 剪枝(Drop)
    • 计算每层需要剪掉的权重数量 D l , t D_{l, t} Dl,t​。
    • 选择绝对值最小的正权重和最大的负权重进行剪枝,即将这些权重设置为零。
  5. 生长(Grow)
    • 在剪枝后,计算每层需要恢复的权重数量 G l , t G_{l, t} Gl,t​。
    • 选择在稀疏掩码中为零的位置,根据梯度的大小更新为非零值,以此“生长”新的连接
  6. 权重更新
    • 对于非零权重,使用替代梯度方法和反向传播通过时间来计算梯度,并更新权重。
  7. 死亡比例更新:使用余弦退火学习率调度器来更新每层的死亡比例 d t d_t dt​。
  8. 稀疏掩码更新:根据当前的稀疏度和目标稀疏度动态更新稀疏掩码。
  9. 终止条件:当达到总训练迭代次数时,结束训练。
  10. 输出:最终得到一个具有目标稀疏度分布 Θ f \Theta_f Θf​ 的稀疏网络。

5 实验分析

(1)稀疏化方法
image.png

(2)图示神经生成生物机制及仿真过程
image.png
图2(a)ABC展示了在神经系统中神经细胞由于炎症原因,神经细胞凋亡和神经系统的重新组合。
图2(b) 展示了神经网络中的丢弃(drop)和生长(grow)过程,模仿了以上中描述的神经发生动态过程。

  • 丢弃过程指的是在神经网络中将一些权重(连接)设置为零,类似于神经元的退化或死亡。这通常发生在权重的绝对值较小的情况下,意味着这些连接对于网络的功能贡献不大。
  • 生长过程指的是在网络中重新引入或更新一些权重(连接),类似于新神经元的生成或重新分化。这通常发生在权重对于网络性能有显著影响的情况下。

实验结论:表明通过这种动态调整权重稀疏性的方法,网络可以在保持性能的同时减少参数数量,从而提高计算效率和降低模型复杂度。

(3)NDSNN)训练过程中的丢弃和生长机制
image.png

  • 丢弃权重(Drop):用红色箭头表示。在NDSNN的训练过程中,某些权重会被设置为零,即从网络中“丢弃”。这通常发生在训练的某些阶段,目的是为了减少网络的复杂性,提高稀疏性,从而降低模型的内存占用和计算成本。丢弃的权重可能是那些对网络性能贡献较小的权重。
  • 生长权重(Grow):用绿色箭头表示。在丢弃了一些权重之后,网络会在其他位置“生长”出新的权重,即更新原本为零的权重为非零值。这一步骤有助于网络在减少参数的同时,保持或甚至提高其学习能力和性能。

(4)不同方法稀疏性与准确率的比较
image.png
随着稀疏比率的增加,所有方法的准确率普遍呈下降趋势。NDSNN在高稀疏比率的情况下,大多数都达到了最高的准确率。在99%的稀疏比率下,NDSNN在某些情况下仍然能够保持相对较高的准确率,这显示了其在极端稀疏条件下的强大性能。
(5)NDSNN与LTH-SNN在不同稀疏比率下的准确率比较
image.png

  • (a) VGG-16架构在CIFAR-10数据集上
  • (b) VGG-16架构在CIFAR-100数据集上
  • © ResNet-19架构在CIFAR-10数据集上
  • (d) ResNet-19架构在CIFAR-100数据集上

NDSNN的准确率普遍高于LTH-SNN,特别是在高稀疏比率的情况下。随着稀疏比率的增加,两种方法的准确率都有所下降,但NDSNN的下降幅度较小,显示出更好的性能维持能力。在VGG-16和ResNet-19这两种不同架构上,NDSNN都优于LTH-SNN,这表明NDSNN的优势不依赖于特定的网络架构。在CIFAR-10和CIFAR-100数据集的复杂性不同的数据集上,NDSNN在两个数据集上都显示出了较好的性能。
(5)训练成本对比
image.png
训练成本在这里可能指的是为了达到一定的训练效果所需的计算资源,包括但不限于处理时间、内存使用、所需的浮点运算次数等。一个低训练成本意味着模型训练过程更加高效。与密集模型和LTH方法相比,NDSNN在训练成本上显著降低。这表明NDSNN在训练过程中需要较少的计算资源。

6 思考

(1)NDSNN与其他神经网络剪枝的方法有什么区别和优点?

  1. 生物学启发:NDSNN算法受神经发生动态的启发,模仿了生物神经系统中神经元的死亡(剪枝)和新生(生长)过程。这种生物学类比为设计剪枝策略提供了新的思路。
  2. 动态稀疏性:NDSNN从训练一开始就引入稀疏性,并通过训练过程中的周期性剪枝和生长操作动态调整稀疏度,直至达到目标稀疏度。这与许多传统剪枝方法(如后训练剪枝)不同,后者通常在训练完成后才开始剪枝。
  3. 丢弃和生长策略:NDSNN采用一种新的丢弃和生长策略,通过减少非零权重的数量来维持极高的稀疏性和准确性。这种策略有助于在训练过程中逐步优化网络结构。
  4. 训练效率:NDSNN算法在训练过程中显著降低了内存占用和计算成本,这在资源受限的边缘设备上尤为重要。
  5. 准确性保持:尽管NDSNN通过剪枝减少了网络的参数数量,但实验结果表明,它能够在多种数据集和网络架构上保持或甚至提高模型的准确性。
  6. 计算成本降低:与其他SOTA方法相比,NDSNN在保持高准确性的同时,显著降低了训练成本,这在大规模训练和部署深度学习模型时尤为重要。
  7. 通用性:NDSNN算法不仅适用于特定的网络架构或数据集,而是具有较好的通用性,能够在不同的网络和数据集上实现高效的稀疏训练。
  8. 内存占用优化:NDSNN通过高稀疏性显著减少了模型在训练和推理阶段的内存占用,这对于内存受限的设备尤其有利。
  9. 适应性:NDSNN算法能够适应不同的训练条件,例如在较小的时间步长下仍能保持高准确率,显示出良好的适应性和鲁棒性。

(2)本文其实只仿真了神经细胞的凋亡过程和重新连接的过程。神经生成的生物特征有增值、分化、迁移、成熟、整合、可塑性、凋亡等。

  1. 增殖(Proliferation):神经干细胞或神经前体细胞通过有丝分裂增加数量。
  2. 分化(Differentiation):神经前体细胞发展成特定的神经元类型。
  3. 迁移(Migration):新生成的神经元迁移到大脑的特定区域。
  4. 成熟(Maturation):新神经元发展出成熟的形态和功能特征,包括树突和轴突的生长,以及突触的形成。
  5. 整合(Integration):新生成的神经元与现有的神经网络建立连接,成为功能网络的一部分。
  6. 可塑性(Plasticity):新神经元能够根据经验和学习改变其结构和功能,这是学习和记忆形成的基础。
  7. 凋亡(Apoptosis):在某些情况下,新生成的神经元可能因为未能成功整合或由于其他因素而经历程序性细胞死亡。

目前的神经启发的论文有如下,对应不同的神经生成生物特征。

  • 增殖
    • Garg, S., Rish, I., Cecchi, G.A., & Lozano, A.C. (2017). Neurogenesis-Inspired Dictionary Learning: Online Model Adaption in a Changing World. International Joint Conference on Artificial Intelligence.
    • Draelos T J, Miner N E, Lamb C C, et al. Neurogenesis deep learning: Extending deep networks to accommodate new classes[C]//2017 international joint conference on neural networks (IJCNN). IEEE, 2017: 526-533.
  • 凋亡
    • Tran L M, Santoro A, Liu L, et al. Adult neurogenesis acts as a neural regularizer[J]. Proceedings of the National Academy of Sciences, 2022, 119(45): e2206704119.
    • Huang S, Fang H, Mahmood K, et al. Neurogenesis dynamics-inspired spiking neural network training acceleration[C]//2023 60th ACM/IEEE Design Automation Conference (DAC). IEEE, 2023: 1-6.
  • 分化/成熟
    • Gurbuz M B, Moorman J M, Dovrolis C. NICE: Neurogenesis Inspired Contextual Encoding for Replay-free Class Incremental Learning[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2024: 23659-23669.
目录
相关文章
|
4月前
|
机器学习/深度学习 人工智能 资源调度
【博士每天一篇文献-算法】连续学习算法之HAT: Overcoming catastrophic forgetting with hard attention to the task
本文介绍了一种名为Hard Attention to the Task (HAT)的连续学习算法,通过学习几乎二值的注意力向量来克服灾难性遗忘问题,同时不影响当前任务的学习,并通过实验验证了其在减少遗忘方面的有效性。
87 12
|
4月前
|
机器学习/深度学习 算法 计算机视觉
【博士每天一篇文献-算法】持续学习经典算法之LwF: Learning without forgetting
LwF(Learning without Forgetting)是一种机器学习方法,通过知识蒸馏损失来在训练新任务时保留旧任务的知识,无需旧任务数据,有效解决了神经网络学习新任务时可能发生的灾难性遗忘问题。
289 9
|
4月前
|
机器学习/深度学习 算法 机器人
【博士每天一篇文献-算法】改进的PNN架构Lifelong learning with dynamically expandable networks
本文介绍了一种名为Dynamically Expandable Network(DEN)的深度神经网络架构,它能够在学习新任务的同时保持对旧任务的记忆,并通过动态扩展网络容量和选择性重训练机制,有效防止语义漂移,实现终身学习。
65 9
|
4月前
|
机器学习/深度学习 算法 文件存储
【博士每天一篇文献-算法】 PNN网络启发的神经网络结构搜索算法Progressive neural architecture search
本文提出了一种名为渐进式神经架构搜索(Progressive Neural Architecture Search, PNAS)的方法,它使用顺序模型优化策略和替代模型来逐步搜索并优化卷积神经网络结构,从而提高了搜索效率并减少了训练成本。
66 9
|
4月前
|
存储 机器学习/深度学习 算法
【博士每天一篇文献-算法】连续学习算法之HNet:Continual learning with hypernetworks
本文提出了一种基于任务条件超网络(Hypernetworks)的持续学习模型,通过超网络生成目标网络权重并结合正则化技术减少灾难性遗忘,实现有效的任务顺序学习与长期记忆保持。
55 4
|
4月前
|
机器学习/深度学习 存储 人工智能
【博士每天一篇文献-算法】改进的PNN架构Progressive learning A deep learning framework for continual learning
本文提出了一种名为“Progressive learning”的深度学习框架,通过结合课程选择、渐进式模型容量增长和剪枝机制来解决持续学习问题,有效避免了灾难性遗忘并提高了学习效率。
90 4
|
4月前
|
存储 机器学习/深度学习 算法
【博士每天一篇文献-算法】连续学习算法之RWalk:Riemannian Walk for Incremental Learning Understanding
RWalk算法是一种增量学习框架,通过结合EWC++和修改版的Path Integral算法,并采用不同的采样策略存储先前任务的代表性子集,以量化和平衡遗忘和固执,实现在学习新任务的同时保留旧任务的知识。
100 3
|
23小时前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
101 80
|
19天前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
|
5天前
|
供应链 算法 调度
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。