阅读时间:2023-12-15
1 介绍
年份:2023
作者:张铁林
期刊: Science Advances
引用量:7
代码:https://zenodo.org/records/8037309
Zhang T, Cheng X, Jia S, et al. A brain-inspired algorithm that mitigates catastrophic forgetting of artificial and spiking neural networks with low computational cost[J]. Science Advances, 2023, 9(34): eadi2947.
提出神经调节辅助信用分配(Neuromodulation-Assisted Credit Assignment, NACA)的算法,解决人工神经网络(ANNs)和脉冲神经网络(SNNs)在学习过程中的灾难性遗忘问题,并有较低的计算成本。
NACA算法利用期望信号来诱导特定水平的神经调节物质选择性地作用于突触,从而非线性地修改长期突触增强(LTP)和长期突触抑制(LTD)。这种算法在空间和时间分类任务的学习中实现了高识别准确率,并且显著降低了计算成本。特别是在连续学习任务中,NACA算法在不同复杂度的五个不同类别的学习中,表现出显著减轻的灾难性遗忘问题,并且计算成本很低。
2 创新点
- 神经调节辅助信用分配算法(NACA):提出了一种新的计算算法,该算法模仿大脑中的神经调节机制,通过使用期望信号来诱导特定水平的神经调节物质,选择性地作用于突触。
- 非线性突触可塑性调节:NACA算法实现了对长期突触增强(LTP)和长期突触抑制(LTD)的非线性调节,这种调节依赖于突触上神经调节物质的水平。
- 减少计算成本:NACA算法在提高识别准确性的同时,显著降低了学习空间和时间分类任务的计算成本。
- 减轻灾难性遗忘:在连续学习任务中,NACA算法有效地减轻了神经网络的灾难性遗忘问题,使得网络能够在学习新任务时保留对旧任务的记忆。
- 全局与局部神经调节的结合:NACA算法不仅模拟了全局神经调节对突触可塑性的影响,还结合了局部可塑性规则,实现了更高效的学习和记忆保持。
- 突触权重变化的映射:通过映射突触权重的变化,论文展示了NACA算法如何通过稀疏和有针对性的突触修改来实现记忆保持和新学习,这些修改归因于基于期望的全局神经调节。
- 生物学启发的网络性能优化:NACA算法的设计灵感来源于生物学,特别是大脑中的神经调节机制,这为设计更高效、更健壮的神经网络提供了新的思路。
- 适用于脉冲和非脉冲神经网络:NACA算法不仅适用于脉冲神经网络(SNNs),也适用于非脉冲人工神经网络(ANNs),显示了其广泛的适用性。
- 连续学习任务的验证:NACA算法在多个具有不同复杂度的连续学习任务中得到了验证,证明了其在多样化学习场景中的有效性。
3 相关研究
(1)相关概念
“信用分配”(credit assignment)是一个比喻性术语,用于描述在神经网络学习过程中,如何确定哪些神经元或突触应该对网络的最终输出错误负责,并因此需要调整其权重。这个概念借鉴了经济学中的信用分配,其中信用(或责任)被分配给经济体中的个体,以反映他们对整体经济表现的贡献。
4 算法
(1)引言
使用LIF模型作为SNNs中脉冲神经元的基本模型。
NACA算法实现:对于SNNs,NACA算法包括脉冲序列的编码、神经调节物质水平的设定、膜电位和脉冲的更新、局部突触可塑性的调节,以及脉冲序列的解码。对于ANNs,NACA算法用局部梯度替换了SNNs中的局部可塑性,其余步骤类似。
(2)算法步骤
- 期望值编码(Encoding of expectation value E):
- 输入类型和输出误差编码期望值,用于隐藏层和输出层。
- $ E_{input type} $由两个具有相同标准差SD的正常分布生成,但均值随机生成。
- $ E_{output error} $是输出期望值和实际输出值之间的误差差。
- 全局神经调节(Global neuromodulation):
- 使用输入类型基础的期望矩阵 $ N_{in} $和输出误差基础的期望矩阵 $ N_{out} $来设置神经调节物质水平 λ。
- $ \lambda_{l} = N_{in,l} \cdot E $
- $ \lambda_{L} = N_{out,L} \cdot (S_{L,t} - E)$
- 更新膜电位和脉冲(Update of membrane potentials V and spikes S):
- 膜电位 $ V_{l,t} $和脉冲$ S_{l,t} $的更新遵循LIF神经元模型。
- $ \tau_{\text{lif}} \frac{dV_{l,t}}{dt} = \frac{g_{l}(V_{l,t} - V_{\text{rest}})(1 - S_{l,t}) + W_{l}S_{l,t-1}}{C} $
- 当 $ V_{l,t} $达到阈值 $ V_{\text{th}} $时, $ S_{l,t} $被设置为1(发放脉冲)。
- 局部突触可塑性的非线性调节(Neuromodulator level–dependent modulation of local synaptic plasticity):
- 使用非线性函数 $ f_{\text{local}}(\lambda) $来调节局部突触的LTP和LTD。
- $ f_{\text{local}}(\lambda) = \begin{cases} -(\theta_{\text{max}} - 1)(2\lambda - \lambda_{1})^2 / \lambda_{1}^2 + \theta_{\text{max}}, & \text{if } 0 \leq \lambda \leq \lambda_{1} \\ (\lambda - \lambda_{\text{inv}})^2 / (\lambda_{1} - \lambda_{\text{inv}})^2, & \text{if } \lambda_{1} \leq \lambda \leq \lambda_{\text{inv}} \\ -f_{\text{local}}(2\lambda_{\text{inv}} - \lambda), & \text{if } \lambda > \lambda_{\text{inv}} \end{cases} $
- 突触权重更新(Synaptic weight update):
- SNNs中的突触权重更新结合了全局神经调节和局部可塑性。ANNs通过结合全局神经调节和梯度计算突触权重的变化。
- $ \Delta W_{\text{SNN},l}^{\text{NACA}} = -\eta f_{local}(\lambda_{l}) \Delta W_{\text{local}} $
- ANNs中的突触权重更新使用类似的结构,但使用局部梯度代替局部可塑性。
- 解码脉冲序列(Decoding of spike trains):
- 在SNNs的输出层,解码函数 $ \sigma_{\text{dec},L} $用于从脉冲序列中计算输出。
- $ \sigma_{\text{dec},L}(S_{L,t}) = \frac{1}{T_{w}} \sum_{t=1}^{T_{w}} S_{L,t} $
其中,λ代表神经调节物质水平, $ \theta_{\text{max}} $和 $ \lambda_{\text{inv}} $是NACA算法中的极性反转和最大调节因子,$ \lambda_{1} $是 $ \lambda_{\text{inv}} $的一半, η是学习率, $ T_{w} $是时间窗口,C是膜电容, $ g_{l} $是电导, $ V_{\text{rest}} $是静息和重置电位, $ V_{\text{th}} $是发放阈值。
5 实验分析
(1)预备知识
A图: 展示了来自不同神经调节神经元的分散轴突如何通过神经调节物质(如多巴胺、去甲肾上腺素、5-羟色胺和乙酰胆碱)对局部可塑性进行全局性的调节。这些神经调节物质从特定的脑区(例如,多巴胺来自腹侧被盖区VTA、去甲肾上腺素来自蓝斑核LC、5-羟色胺来自背侧缝核DRN、乙酰胆碱来自基底前脑BF)释放,并作用于多个突触。
B图: 说明了局部调节的非线性依赖于神经调节物质的水平(λ)。λ的值介于0到1之间,分别代表低和高浓度的多巴胺。随着λ的增加,神经调节因子(θ,范围在-2到2之间)设定了LTP(长期增强)或LTD(长期抑制)幅度调节的程度。在特定的突触前和突触后电位时序下,当λ=0时没有调节发生。调节因子首先随着λ的增加而增加,直到达到最大幅度,然后随着λ的继续增加而减少,此时再次没有调节发生。当λ大于 $ λ_{inv} $时,神经调节会逆转LTP/LTD的方向。
**C图:**展示了在生物神经系统中,常见的基于突触时序的LTD/LTP(DP)可以被重新塑造成其他八种形式,这些形式展示了在负和正时间窗口下LTD(D)、LTP(P)以及无修改(0)的不同组合。这些包括完全的时间反转(PD)、DP或PD的部分反转(PP和DD)、部分消除DP(0P和D0)和PD(0D和P0),以及无突触修改(00)。
(2)NACA算法流程
A图: 此图说明了基于输入类型和输出误差的期望是如何通过期望矩阵Nin和Nout在选定的突触群体中编码为神经调节物质水平(信用值)。Nin矩阵为隐藏层突触设置了输入类型的信用值,而Nout矩阵为输出层突触设置了基于输出误差的信用值。Nin中的值是随机生成的(采用均匀概率分布),受到生物学发现的启发(33),而Nout中的值仅对对角线单元依赖于输出误差。E2a/b和E7a/b是在两个正态分布的基础上编码后的输入类型信用值。
B图: 此图展示了基于神经调节物质水平依赖性的局部信用分配的非线性函数flocal(∙),该函数根据图1B中的调制因子(θ)来确定。
C图: 描述了NACA算法的流程,该算法实现了局部可塑性的全局神经调节,包括在全局选择性的突触亚群中将期望值线性编码为神经调节物质水平,以及基于神经调节物质水平的非线性调节局部可塑性。
D和E图: 这两部分展示了在标准三层SNN(D)和ANN(E)中实现NACA算法。输入神经元(黄色)接收特定于输入类型的期望,以激活隐藏神经元(粉色),并在隐藏层突触(Wi,j)产生局部可塑性。反过来,隐藏神经元激活输出神经元(蓝色),在SNNs的输出层突触(Wj,k)产生LTP/LTD,或在ANNs产生局部梯度,这两者都依赖于分配给每个突触的神经调节物质水平。
实验结论: 实验结果表明,NACA算法能够有效地集成到SNNs和ANNs中,通过模拟大脑中的神经调节机制来提高网络的学习能力和效率。
(3)调参过程及性能对比
A图: 描述了在N个训练周期(N=5)内,如何计算在上界和下界之间的学习准确度曲线f1(x)和f2(x)的平均周期。
B图: 比较了反向传播(BP)、目标传播(TP)、生物学上可信的奖励传播(BRP)、资格传播(e-prop)和NACA的每周期算法复杂度。总复杂度是通过将多层的前馈(FF)和反馈(FB)步骤的复杂度O(·)求和得到的,其中m、n和k分别是不同层的神经元数量。
C、D、E、F图: 使用MNIST数据集对SNNs、ANNs、TIDigits-SNNs、TIDigits-ANNs进行手写数字识别任务的性能,选择出最佳的参数,$λ_{inv}=0.5 $和 $ θ_{max}=1.2 $。小提琴图展示了三种不同算法在训练结束时的准确度和计算成本。
实验结论: 实验结果显示,NACA算法在手写数字识别和口语数字识别任务中都提高了SNNs和ANNs的性能。通过调整NACA算法中的λinv和θmax参数,可以优化网络的准确度。实验选择了 $ λ_{inv}=0.5 $和 $ θ_{max}=1.2 $这一参数对,因为它在实验中表现出了较好的性能。此外,与其他算法相比,NACA算法在训练结束时不仅实现了更高的准确度,而且显著降低了计算成本。
(4)SNNs和ANNs的性能对比
A图: 这是一个示意图,展示了大脑中的多尺度神经调节,其中多巴胺通过D1样受体(D1R)的兴奋或D2样受体(D2R)的抑制来调节AMPA受体,影响突触和神经元尺度上的谷氨酸传递。
B图: 展示了NACA算法用于突触调节和神经元选择。
C图: 展示了MNIST数据集进行10类连续学习(10-class-CL)任务时,SNNs和ANNs的性能。C1和C3分别展示了在训练数据集中训练不同类别数量后,对测试数据集进行分类的准确度。数据点表示五次独立试验的平均准确度值,这些试验具有不同的初始连接权重。C2和C4展示了使用不同算法训练10个类别后的分类准确度和计算成本的直方图。
D-G图: 展示了在四种不同的学习算法下,SNNs和ANNs在26类手写字母数据集、46类手写数学希腊字母数据集(E)、10类自然图像Cifar10数据集和11类基于事件的视频DvsGesture数据集上的性能,所有这些都以与C部分相同的方式呈现。
实验结论: 实验结果表明,NACA算法在所有测试的连续学习任务中都能显著提高SNNs和ANNs的分类准确度。与反向传播(BP)和弹性权重巩固(EWC)等其他算法相比,NACA算法在处理增加类别数量的数据集时,能够更好地保持对先前学习类别的准确识别,从而显著减少了灾难性遗忘的问题。
(5)权重变化分析
图5展示了在进行10类连续学习(10-class-CL)任务时,使用MNIST数据集的不同学习算法后,隐藏层突触权重变化的情况。以下是对图5各部分的解释以及实验结论的概述:
A部分: 展示了在没有神经调节(即NACA算法中λ=0)的情况下,仅使用LTP(长期增强)和LTD(长期抑制)的局部可塑性学习10类-CL任务后,SNNs中所有隐藏层突触的权重变化。顶部是电路图,展示了突触权重变化(ΔWi,j)在-1到+1之间,分别代表最大抑制和增强的值。中间是矩阵图,其中权重变化值按颜色编码(右侧显示比例尺),用于表示784个输入神经元(水平)和1000个隐藏神经元(垂直)之间的所有突触。底部是直方图,显示了表现出各种权重变化值的突触总数(以对数单位)。注意,大多数突触被极化为最大增强或抑制状态。
B部分: 展示了使用NACA算法(λinv=0.5, θmax=1.2)学习10类-CL任务后,突触权重变化呈现类似正态分布,具有各种权重变化值。注意,大量突触的权重变化保持不变(在0处达到峰值)。三个面板的展示方式与A部分相同。
C和D部分: 展示了使用EWC(弹性权重巩固)和BP(反向传播)算法学习10类-CL任务后,突触权重的变化。
E部分: 展示了在类别-CL过程中突触权重变化的演变,分别展示了在没有神经调节的纯局部LTP和LTD(NACA λ=0)、标准NACA、EWC和BP算法下,学习0th(之前)、1st、3rd和10th类别后的权重分布。所有图形都是使用不同的初始随机数种子重复五个学习周期后的平均值。
**实验结论:**实验结果表明,NACA算法在连续学习任务中有效地控制了突触权重的变化,使得权重变化分布更加均匀,避免了极端的增强或抑制状态,这有助于减轻灾难性遗忘。这与没有神经调节的局部可塑性学习相比,后者在连续学习后导致突触权重极端极化。NACA算法通过引入基于期望的全局神经调节,实现了对突触权重变化的有效控制,从而减轻了灾难性遗忘问题。
此外,E图的结果显示,NACA算法在连续学习过程中能够维持突触权重变化的正态分布,并且有大量突触的权重变化保持不变,这表明NACA算法在选择性地更新突触权重的同时,保留了一些突触的原始状态,这有助于网络在连续学习新任务时不会遗忘旧任务。这种突触权重变化的分布可能解释了NACA算法在减轻灾难性遗忘方面的有效性。
(6)数据集
- MNIST数据集:包含10个类别的手写数字,用于图像识别任务。
- TIDigits数据集:包含10个类别的口语数字录音,用于语音识别任务。该数据集提供了口语数字的音频样本,用于评估模型对语音的识别能力。
- Alphabet数据集:包含26个类别,从A到Z的手写字母。用于连续学习任务。
- MathGreek数据集:包含46个类别的手写希腊字符和一些数学符号。用于连续学习任务。
- Cifar10数据集:包含10个类别的自然图像。
- DvsGesture数据集:包含11个类别的基于事件的视频记录的手势。这个数据集专注于动态图像的识别,与传统的帧序列不同,它基于事件触发的数据。
6 思考
(1)计算每种算法的计算成本
- 确定算法复杂度(Algorithmic Complexity):
- 首先确定每种算法的算法复杂度,这通常以每周期(epoch)所需的浮点运算次数(FLOPs)来衡量。
- 计算平均训练周期数(Mean Epoch Number):
- 对于每个算法,计算达到预定准确度水平所需的平均训练周期数。这涉及到在多次独立试验中记录达到特定准确度所需的周期数,然后取这些周期数的平均值。
- 计算单个训练周期的成本(Cost per Epoch):
- 将算法复杂度与所需的平均训练周期数相乘,得到单个训练周期的成本。
- 计算总成本(Total Cost):
- 对于每个算法,将单个训练周期的成本乘以达到不同准确度水平所需的周期数,然后将这些乘积求和,得到总成本。
计算成本公式如下:
$ \text{Cost}_{total} = \sum_{i=1}^{N} \text{Cost}_{\text{epoch},i} \times \text{O}(n)_i $
其中:
- $ \text{Cost}_{\text{epoch},i} $是在第i个准确度水平上,达到该准确度所需的平均训练周期数。
- $ \text{O}(n)_i $是在第i个准确度水平上,每周期的算法复杂度,通常以FLOPs表示。
- N是预定的准确度水平的数量。
此外,不同算法在连续学习任务中的性能,通过以下公式计算连续学习的成本:
$ \text{cost}{\leq c} = \frac{1}{c} \sum_{\tau=1}^{c} \text{Cost}_{\tau} $
其中:
- c 是连续学习任务中的类别总数。
- $ \text{Cost}_{\tau} $是学习到第 τ类时的计算成本。
(2)ANNs和SNNs中的突触是指什么?
突触是指神经网络中的连接点,其中神经元之间通过这些连接点相互传递信号。在ANNs和SNNs中,突触通常被建模为权重,这些权重决定了一个神经元的输出对另一个神经元输入的影响程度。
(3)算法的局限性
尽管NACA算法表现出色,但在深层神经网络中可能表现出一些不稳定性,且难以与传统的BP算法结合。
NACA算法目前只引入了单一类型的神经调节物质和兴奋性神经元,没有考虑不同类型神经调节物质和更多神经元类型的相互作用。