一种支持任意网络拓扑的高效局部学习系统及方法与流程

专利2026-07-01  11


本发明属于人工智能,尤其涉及支持任意网络拓扑的高效局部学习方法。


背景技术:

1、反向传播算法(backpropagation,bp)是深度学习成功的基础,基于bp算法的深度学习由于其强大的特征提取与学习能力使其能够广泛应用于生活中的方方面面,如计算机视觉、自然语言处理、语音识别、医疗领域、自动驾驶等。但它需要连续的向后更新和非局部计算,这使得大规模并行化任务具有挑战性,且学习规则与大脑的学习方式不同,不具备生物合理性。因此,以pc[1,2,5],ep[3,6]为代表的具有生物合理性的算法相继提出,它们能够以更加合理的生物特性进行运作,且有效计算近似于bp方法所得到的参数梯度。然而,这些算法都是独立存在,没有一个统一的理论将他们联系在一起。因此,millidge,b.等人[4]将它们用基于能量的模型(energybased models,ebm)统一了起来。基于能量的模型是一类具有生物合理性和鲁棒性的神经网络模型,预测编码(predictive coding,pc)和均衡传播(equilibrium propagation,ep)就是两种代表性的学习方法,通过构建能量函数描述神经网络行为,在解释生物神经系统的信息处理机制等方面具有天然优势,在神经科学和机器学习领域具有广阔的研究和应用前景。但是,由于其理论性较强,没有给出具体的实验验证,难以映射到具体的算法实现,无法考量其计算效率,资源开销等问题,且目前还没任何一款框架能够友好的支持该类研究,研究者需要在网络构建、状态与参数更新等方面需要花费大量的时间,这极大阻碍了局部学习理论的发展。

2、以pc和ep为代表的局部学习方法以其生物合理特性使得“智能”成为可能。然而,该方面研究正处于理论研究阶段,仍然还有诸多问题需要解决,如:

3、1)目前局部学习只能应用于简单序列网络结构[1,3]中,难以应用于复杂/深层的深度学习网络,导致该研究暂时难以应用到人们的生活中;

4、2)现有的基于pytorch实现的局部学习项目在局部学习模型训练和推理方面,需要花费大量的时间和计算资源;

5、3)目前暂未有一个框架能够有效支持局部学习研究,研究人员需要基于已有深度学习框架(如pytorch等)手动实现模型能量计算过程,状态更新,梯度计算等流程(尤其对于复杂的模型,实现是颇具难度),极大阻碍了局部学习理论发展及相关应用落地。

6、本发明引用的文献的信息如下:

7、[1]james c.r.whittington,rafal bogacz;an approximation of the errorbackpropagation algorithmin a predictive coding network with local hebbiansynaptic plasticity.neural comput 2017;29(5):1229–1262;

8、[2]millidge,b.,tschantz,a.,&buckley,c.l.(2022).predictive codingapproximates backprop along arbitrary computation graphs.neural computation,34(6),1329-1368;

9、[3]scellier,b.,&bengio,y.(2017).equilibrium propagation:bridging thegap between energy-based models and backpropagation.frontiers incomputational neuroscience,11,24;

10、[4]millidge,b.,song,y.,salvatori,t.,lukasiewicz,t.,and etal.(2022).backpropagation at the infinitesimal inference limit of energy-based models:unifying predictive coding,equilibrium propagation,and contrastive hebbianlearning.arxiv preprint arxiv:2206.02629。

11、[5]rosenbaum r(2022)on the relationship between predictive coding andbackpropagation.plos one 17(3):e0266102.

12、[6]laborieux a,maxence e and etal."scaling equilibrium propagation todeep convnets by drastically reducing its gradient estimator bias."frontiersin neuroscience 15(2021):633674.


技术实现思路

1、本发明旨在提供一个高效的局部学习系统及方法,该系统目标为:

2、a)能够支持任意网络拓扑,使用户能够按需创建复杂的网络模型;

3、b)利用即时编译和并行技术降低局部学习网络训练与推理速度;

4、c)提供一个简单易用、灵活扩展的用户接口,降低深度学习、局部学习领域研究人员开发难度,使其能够快速上手。

5、本发明提供一种支持任意网络拓扑的高效局部学习系统,应用于各类局部学习任务中,由具有计算能力的电子设备实现,该系统包括:模块层和算子层;其中,

6、模块层封装的模块包括:rlayer模块、datasets模块、grads模块、metrics模块、及optimizer模块;其中,

7、rlayer模块包括多个用于创建网络的算子,至少包括:卷积算子、池化算子、归一化算子;

8、datasets模块包括多个公用数据集的下载、加载以及预处理的类;

9、grads模块包括多个局部学习求导类;

10、metrics模块包括多个深度学习衡量指标;

11、optimizer模块包括多个优化器;

12、算子层封装的算子类、梯度求解类、优化器类,数据集类及衡量指标函数,对应于模块层封装的模块,用于提供模块层所封装的模块的接口,包括:

13、对应于rlayer模块,至少封装有:rconv1d算子、rconv2d算子、rconv3d算子、rsequential算子、rweightnorm算子、rmaxpoll算子、rminpoll算子、ravgpoll算子;

14、对应于datasets模块,至少封装有:mnist、cifar10、及cifar100数据集下载及预处理类;

15、对应于grads模块,至少封装有:pc局部学习梯度求导类、bipc局部学习梯度求导类、及ep局部学习梯度求导类;此外,还包括梯度求导基类localbase,用户可按照自己的需求重写相应的方法,实现其局部学习求导类;对应于metrics模块,至少封装有:模型精度计算函数、损失计算函数;

16、对应于optimizer模块,至少封装有:adam优化器、sgd优化器;

17、模块层封装的算子、数据集下载与预处理类、优化器类、梯度求导类、指标计算函数均具有输入输出接口,用户可通过rlayer模块按需创建并实例化网络,通过datasets模块下载与预处理相应的数据集,通过optimizer模块选择相应的优化器,通过grads模块选择局部学习梯度求导类,通过metrics模块选择损失与精度计算函数,完成网络及相应超参的初始化,实现网络训练与测试。

18、进一步地,局部学习方法至少包括:strictpc、fixedpredpc、bipc、ep two phase、ep three phase。

19、进一步地,电子设备的处理器为:cpu、gpu、或bpu。

20、进一步地,网络结构定义为:以算子计算流程为边,以算子的输出为节点;算子包括a_mat属性和operataion属性,其中,a_mat属性用于存储与该边相连的节点id,operation属性用户存诸该边相邻的前节点所涉及的操作;网络结构形式至少包括:单向网络、双向网络及跳连网络。

21、本发明还提供一种支持任意网络拓扑的高效局部学习方法,由如上所述的支持任意网络拓扑的高效局部学习系统实现,该方法包括如下步骤:

22、步骤1,通过rlayer模块调用多个算子构建用户所需的网络;

23、步骤2,实例化所创建的网络,并设置各类超参数;

24、步骤21,实例化所创建的网络,得到网络参数;

25、步骤22,调用datasets模块下的数据集下载、加载及预处理类,设置batchsize,对所加载的训练数据集和测试数据集进行数据归一化;

26、步骤23,调用optimizer模块,选择优化器,设置学习率及其它参数完成所选择的优化器的初始化;

27、步骤24,调用grads模块,选择局部学习梯度求导类。

28、步骤3,基于实例化的网络及超参数,进行网络能量求解、状态更新、梯度计算;

29、步骤31,遍历网络中每个实例化的算子,得到该算子所有的属性,判断该属性是否继承自父类module的实例化对象,如果是,获取该对象中的前向、反向计算过程、a_mat,operation属性以及算子对应的网络参数,将其存储到一个列表adj_mat中,用户能量函数计算,状态耿喜、梯度计算操作

30、步骤32,根据能量函数来计算网络能量,得到最终的网络节点状态;

31、步骤33,根据所得到的最终的网络节点状态,计算网络能量,并对网络参数进行求导,得到网络参数梯度。

32、步骤4,基于网络参数梯度对网络参数进行更新,进行下一步迭代训练;

33、步骤5,不断迭代步骤3-4,直到网络训练达到用户所设的收敛条件。

34、进一步地,步骤32具体为:

35、步骤321,遍历adj_mat,进行模型前向计算,初始化网络节点状态;

36、步骤322,根据能量函数计算网络能量,并对网络节点状态进行求导,得到网络节点状态变化量;

37、步骤323,根据初始化的网络节点状态和网络节点状态变化量更新网络节点状态;

38、步骤324,重复执行执行步骤322-323,直到网络节点状态达到稳态,得到最终的网络节点状态。

39、进一步地,步骤33具体为:当用户选择的求导方法为ep two phase时,执行如下步骤,得到网络参数梯度:

40、步骤3311,执行322-324得到第一阶段的网络节点状态,将第一阶段的网络节点状态记作稳态v1,基于稳态v1计算网络能量并对网络参数进行求导,得到网络参数梯度g1;

41、步骤3312,基于稳态v1执行322-324,得到第二阶段的网络节点状态,将第二阶段的网络节点状态记作稳态v2,基于稳态v2计算网络能量并对网络参数进行求导,得到网络参数梯度g2;

42、步骤3313,根据g1、g2计算最终的网络参数梯度。

43、进一步地,步骤33具体为:当用户选择的局部学习求导方法为ep three phase方法,执行如下步骤,得到网络参数梯度:

44、步骤3321,执行322-324得到第一阶段网络节点状态,将第一阶段的网络节点状态记作稳态v1,基于稳态v1计算网络能量并对网络参数进行求导,得到网络参数梯度g1;

45、步骤3322,引入外部能量函数,基于稳态v1执行322-324,得到第二阶段网络节点状态,将第二阶段的网络节点状态记作稳态v2,基于稳态v2计算网络能量并对网络参数进行求导,得到网络参数梯度g2;

46、步骤3323,引入-beta*外部能量函数,基于稳态v1执行322-324,得到第三阶段网络节点状态(稳态v3),基于稳态v3再次计算网络能量并对网络参数求导,得到网络参数梯度g3;

47、步骤3324,根据g3和g2计算最终的网络参数梯度。

48、进一步地,步骤33具体为:当用户选择的局部学习求导方法为strictpc、fixedpredpc时,执行如下步骤得到网络参数梯度:执行322-324得到网络节点状态,将网络节点状态记作稳态v1,基于稳态v1计算网络能量并对网络参数进行求导,得到网络参数梯度作为网络参数最终梯度。

49、进一步地,步骤33具体为:当用户选择的局部学习求导方法为bipc时,执行如下步骤得到网络参数梯度:在计算网络能量时,需考虑网络中反向节点状态,执行步骤322-324,得到第一阶段网络阶段状态,将第一阶段的网络节点状态记作稳态v1,基于稳态v1计算网络能量并对网络参数进行求导,得到的网络参数梯度作为网络参数最终梯度。

50、进一步地,采用即时编译和并行技术提高网络训练与推理速度。

51、本发明还提供一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现如上所述的一种支持任意网络拓扑的高效局部学习方法中的步骤。

52、本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的一种支持任意网络拓扑的高效局部学习方法中的步骤。

53、本发明基于jax构建了一种支持任意网路拓扑的高效局部学习系统和方法,该系统不仅能够支持用户创建任意复杂的局部学习网络,且能够极大提高网络训练速度,有效降低资源开销,此外,该系统为用户提供了简单易用且能够灵活扩展的局部学习接口,用户可以基于已有的局部学习方法[1-6]实现相应任务,也可继承局部学习基类,重写能量函数、状态计算与更新及梯度计算与更新接口,实现更加复杂的局部学习任务。


技术特征:

1.一种支持任意网络拓扑的高效局部学习系统,应用于各类局部学习任务中,由具有计算能力的电子设备实现,其特征在于,该系统包括:模块层和算子层;其中,

2.如权利要求1所述的支持任意网络拓扑的高效局部学习系统,其特征在于,局部学习方法至少包括:strictpc、fixedpredpc、bipc、ep two phase、ep three phase。

3.如权利要求1所述的支持任意网络拓扑的高效局部学习系统,其特征在于,电子设备的处理器为:cpu、gpu、或bpu。

4.如权利要求1所述的支持任意网络拓扑的高效局部学习系统,其特征在于,网络结构定义为:以算子计算流程为边,以算子的输出为节点;算子包括a_mat属性和operataion属性,其中,a_mat属性用于存储与该边相连的节点id,operation属性用户存诸该边相邻的前节点所涉及的操作;网络结构形式至少包括:单向网络、双向网络及跳连网络。

5.一种支持任意网络拓扑的高效局部学习方法,其特征在于,由如上权利要求1-4任一项所述的支持任意网络拓扑的高效局部学习系统实现,该方法包括如下步骤:

6.如权利要求5所述的支持任意网络拓扑的高效局部学习方法,其特征在于,步骤32具体为:

7.如权利要求5所述的支持任意网络拓扑的高效局部学习方法,其特征在于,步骤33具体为:当用户选择的求导方法为ep two phase时,执行如下步骤,得到网络参数梯度:

8.如权利要求5所述的步骤支持任意网络拓扑的高效局部学习方法,其特征在于,步骤33具体为:当用户选择的局部学习求导方法为ep three phase方法,执行如下步骤,得到网络参数梯度:

9.如权利要求5所述的步骤支持任意网络拓扑的高效局部学习方法,其特征在于,步骤33具体为:当用户选择的局部学习求导方法为strictpc、fixedpredpc时,执行如下步骤得到网络参数梯度:执行322-324得到网络节点状态,将网络节点状态记作稳态v1,基于稳态v1计算网络能量并对网络参数进行求导,得到网络参数梯度作为网络参数最终梯度。

10.如权利要求5所述的步骤支持任意网络拓扑的高效局部学习方法,其特征在于,步骤33具体为:当用户选择的局部学习求导方法为bipc时,执行如下步骤得到网络参数梯度:在计算网络能量时,需考虑网络中反向节点状态,执行步骤322-324,得到第一阶段网络阶段状态,将第一阶段的网络节点状态记作稳态v1,基于稳态v1计算网络能量并对网络参数进行求导,得到的网络参数梯度作为网络参数最终梯度。

11.如权利要求5所述的步骤支持任意网络拓扑的高效局部学习方法,其特征在于,采用即时编译和并行技术提高网络训练与推理速度。

12.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现权利要求5至11中任一项所述的一种支持任意网络拓扑的高效局部学习方法中的步骤。

13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求5至11中任一项所述的一种支持任意网络拓扑的高效局部学习方法中的步骤。


技术总结
本发明一种支持任意网络拓扑的高效局部学习系统,应用于各类局部学习任务中,由具有计算能力的电子设备实现,包括:模块层封装的模块包括:rlayer模块、datasets模块、grads模块、metrics模块、optimizer模块;算子层封装的算子类、梯度求解类、优化器类、数据集类及衡量指标函数,对应模块层封装的模块,用于提供模块层所封装的模块的接口;模块层封装的算子、数据集下载与预处理类、优化器类、梯度求导类、指标计算函数均具有输入输出接口,用户可通过rlayer模块按需创建并实例化网络,通过datasets模块下载与预处理数据集,通过optimizer模块选择相应的优化器,通过grads模块选择局部学习梯度求导类,通过metrics模块选择损失与精度计算函数,完成网络及相应超参的初始化,实现网络训练与测试。

技术研发人员:何福存,蔡炎松,金罗军,王俊宜,陆洋,杜帅帅,朱苗苗,刘慧,何静,陈海波,蔡汶兴,谷轩
受保护的技术使用者:中国电子科技南湖研究院
技术研发日:
技术公布日:2024/7/25
转载请注明原文地址: https://bbs.8miu.com/read-441769.html

最新回复(0)