CN116681127B - 一种神经网络模型训练方法、装置及电子设备和存储介质 - Google Patents
一种神经网络模型训练方法、装置及电子设备和存储介质 Download PDFInfo
- Publication number
- CN116681127B CN116681127B CN202310928140.4A CN202310928140A CN116681127B CN 116681127 B CN116681127 B CN 116681127B CN 202310928140 A CN202310928140 A CN 202310928140A CN 116681127 B CN116681127 B CN 116681127B
- Authority
- CN
- China
- Prior art keywords
- matrix
- model
- neural network
- global
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012549 training Methods 0.000 title claims abstract description 203
- 238000003062 neural network model Methods 0.000 title claims abstract description 108
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000003860 storage Methods 0.000 title claims abstract description 24
- 238000013528 artificial neural network Methods 0.000 claims abstract description 34
- 230000004931 aggregating effect Effects 0.000 claims abstract description 15
- 239000011159 matrix material Substances 0.000 claims description 368
- 238000004364 calculation method Methods 0.000 claims description 46
- 230000006870 function Effects 0.000 claims description 32
- 238000005457 optimization Methods 0.000 claims description 18
- 230000004913 activation Effects 0.000 claims description 17
- 238000004422 calculation algorithm Methods 0.000 claims description 16
- 230000002776 aggregation Effects 0.000 claims description 14
- 238000004220 aggregation Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 10
- 239000000284 extract Substances 0.000 claims description 10
- 210000002569 neuron Anatomy 0.000 description 66
- 238000004891 communication Methods 0.000 description 26
- 238000000354 decomposition reaction Methods 0.000 description 23
- 230000001360 synchronised effect Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000005291 magnetic effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/098—Distributed learning, e.g. federated learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Pure & Applied Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种神经网络模型训练方法、装置及电子设备和存储介质,涉及计算机技术领域,该方法包括:获取训练数据集,将训练数据集划分为多个训练数据子集;获取目标神经网络模型,将目标神经网络模型按照神经网络层划分为多个子模型;将多个训练数据子集和多个子模型分别发送至多个计算节点,多个计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算局部信息;将多个局部信息进行聚合得到全局信息,并将全局信息广播至多个计算节点,多个计算节点基于全局信息更新对应的子模型的模型参数,实现对应的子模型的迭代训练得到训练完成的子模型;基于多个训练完成的子模型确定训练完成的目标神经网络模型。
Description
技术领域
本发明涉及计算机技术领域,更具体地说,涉及一种神经网络模型训练方法、装置及电子设备和存储介质。
背景技术
在相关技术中,采用分布式训练的方式对神经网络模型进行训练。若分布式训练以数据存放为主,则一般采用数据并行模式,考虑内存占用为关键因素,若分布式训练以模型配置为主,则一般采用模型并行模式,考虑模型分割放置与节点通信为关键因素。可见,上述两种策略没有兼顾内存占用与节点通信的优势。
因此,如何兼顾内存占用与通信优化间的分布式训练并行模式是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的在于提供一种神经网络模型训练方法、装置及一种电子设备和一种计算机可读存储介质,实现了兼顾内存占用与通信优化间的分布式训练并行模式。
为实现上述目的,本发明提供了一种神经网络模型训练方法,包括:
获取训练数据集,将所述训练数据集划分为多个训练数据子集;
获取目标神经网络模型,将所述目标神经网络模型按照神经网络层划分为多个子模型;
将多个所述训练数据子集和多个所述子模型分别发送至多个计算节点,以便多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算局部信息;
将多个所述计算节点计算得到局部信息进行聚合得到全局信息,并将所述全局信息广播至多个所述计算节点,以便多个所述计算节点基于所述全局信息更新对应的子模型的模型参数,实现对应的子模型的迭代训练,得到训练完成的子模型;
基于多个所述计算节点训练完成的子模型确定训练完成的目标神经网络模型。
其中,所述多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算局部信息,包括:
多个所述计算节点基于接收到的训练数据子集抽取训练样本,并基于所述训练样本和接收到的子模型的当前模型参数局部信息。
其中,所述多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算局部信息,包括:
多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算目标函数的梯度和二阶优化算法的关键矩阵。
其中,所述将多个所述计算节点计算得到局部信息进行聚合得到全局信息,包括:
将多个所述计算节点计算得到的所述目标函数的梯度进行聚合得到全局梯度;
将多个所述计算节点计算得到的关键矩阵进行聚合得到全局关键矩阵;
基于所述全局梯度和所述全局关键矩阵确定全局信息。
其中,所述将多个所述计算节点计算得到的所述目标函数的梯度进行聚合得到全局梯度,包括:
将多个所述计算节点计算得到的所述目标函数的梯度的和与所述计算节点的数量之间的比值确定为全局梯度。
其中,所述将多个所述计算节点计算得到的关键矩阵进行聚合得到全局关键矩阵,包括:
按照多个所述计算节点接收到的子模型在所述神经网络模型中的排列顺序,将多个所述计算节点计算得到的关键矩阵依次作为对角块生成块对角局矩阵作为全局关键矩阵。
其中,所述基于所述全局梯度和所述全局关键矩阵确定全局信息,包括:
将所述全局关键矩阵分解为上三角矩阵和下三角矩阵的乘积;
基于所述上三角矩阵或所述下三角矩阵生成所述全局关键矩阵的近似矩阵;
基于所述全局关键矩阵的近似矩阵生成更新因子;
将所述全局梯度和所述更新因子作为所述全局信息。
其中,将所述全局关键矩阵分解为上三角矩阵和下三角矩阵的乘积,包括:
利用平方根法将所述全局关键矩阵分解为上三角矩阵和下三角矩阵的乘积。
其中,所述基于所述上三角矩阵或所述下三角矩阵生成所述全局关键矩阵的近似矩阵,包括:
提取所述上三角矩阵或所述下三角矩阵的对角线元素生成中间矩阵;
计算所述全局关键矩阵与所述上三角矩阵或所述下三角矩阵的差值的F范数作为第一范数,计算所述全局关键矩阵的F范数作为第二范数;
将所述第一范数与所述第二范数的比值与所述中间矩阵的乘积作为所述全局关键矩阵的近似矩阵。
其中,所述关键矩阵包括激活矩阵和梯度矩阵。
其中,所述基于所述全局关键矩阵的近似矩阵生成更新因子,包括:
将所述激活矩阵的近似矩阵与所述梯度矩阵的近似矩阵的克罗内克积的逆作为更新因子。
其中,所述关键矩阵包括海森矩阵。
其中,所述基于所述全局关键矩阵的近似矩阵生成更新因子,包括:
将所述海森矩阵的近似矩阵的逆作为更新因子。
其中,所述多个所述计算节点基于所述全局信息更新对应的子模型的模型参数,实现对应的子模型的迭代训练,得到训练完成的子模型,包括:
多个所述计算节点基于所述全局梯度、学习率、所述更新因子更新对应的子模型的模型参数;判断子模型是否收敛,若是,则得到训练完成的子模型,若否,则重新基于接收到的训练数据子集和子模型的当前模型参数计算局部信息。
其中,所述多个所述计算节点基于所述全局梯度、学习率、所述更新因子更新对应的子模型的模型参数,包括:
多个所述计算节点计算所述全局梯度、学习率、所述更新因子的乘积;
将对应的子模型的当前模型参数与所述乘积的差值作为更新后的模型参数。
其中,所述多个所述计算节点基于所述全局梯度、学习率、所述更新因子更新对应的子模型的模型参数,包括:
利用模型参数更新公式更新对应的子模型的模型参数;其中,所述模型参数更新函数为:
;
其中,为对应的子模型更新前的模型参数,/>为对应的子模型更新后的模型参数,f为所述目标函数,/>为所述学习率,/>为所述更新因子。
其中,所述判断子模型是否收敛,包括:
判断迭代次数是否大于第一预设值,或,更新后的模型参数与更新前的模型参数之间的差值是否小于第二预设值;
若任一项为是,则判定子模型收敛。
其中,所述多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算局部信息之后,还包括:
多个所述计算节点将计算得到的局部信息发送至目标计算节点。
其中,所述将多个所述计算节点计算得到局部信息进行聚合得到全局信息,并将所述全局信息广播至多个所述计算节点,包括:
所述目标计算节点将多个所述计算节点计算得到局部信息进行聚合得到全局信息,并将所述全局信息广播至多个所述计算节点。
为实现上述目的,本发明提供了一种神经网络模型训练装置,包括:
第一划分模块,用于获取训练数据集,将所述训练数据集划分为多个训练数据子集;
第二划分模块,用于获取目标神经网络模型,将所述目标神经网络模型按照神经网络层划分为多个子模型;
发送模块,用于将多个所述训练数据子集和多个所述子模型分别发送至多个计算节点,以便多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算局部信息;
聚合模块,用于将多个所述计算节点计算得到局部信息进行聚合得到全局信息,并将所述全局信息广播至多个所述计算节点,以便多个所述计算节点基于所述全局信息更新对应的子模型的模型参数,实现对应的子模型的迭代训练,得到训练完成的子模型;
确定模块,用于基于多个所述计算节点训练完成的子模型确定训练完成的目标神经网络模型。
为实现上述目的,本发明提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述神经网络模型训练方法的步骤。
为实现上述目的,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述神经网络模型训练方法的步骤。
通过以上方案可知,本发明提供的一种神经网络模型训练方法,包括:获取训练数据集,将所述训练数据集划分为多个训练数据子集;获取目标神经网络模型,将所述目标神经网络模型按照神经网络层划分为多个子模型;将多个所述训练数据子集和多个所述子模型分别发送至多个计算节点,以便多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算局部信息;将多个所述计算节点计算得到局部信息进行聚合得到全局信息,并将所述全局信息广播至多个所述计算节点,以便多个所述计算节点基于所述全局信息更新对应的子模型的模型参数,实现对应的子模型的迭代训练,得到训练完成的子模型;基于多个所述计算节点训练完成的子模型确定训练完成的目标神经网络模型。
本发明提供的神经网络模型训练方法,在对神经网络模型进行训练时,不同的计算节点训练不同的数据,也即采用数据并行的训练方式,不同的计算节点训练不同的子模型,也即采用模型并行的训练方式采用数据并行与模型并行相结合的混合并行模式,实现了兼顾内存占用与通信优化间的分布式训练并行模式,加快了计算节点的计算效率,加速了神经网络模型训练过程。本发明还公开了一种图像分类装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为根据一示例性实施例示出的一种神经网络模型训练方法的流程图;
图2为根据一示例性实施例示出的一种神经网络模型中第1层与第2层之间的链接示意图;
图3为图2去除链接后的神经网络模型的示意图;
图4为根据一示例性实施例示出的一种神经网络模型的示意图;
图5为图4去除神经元之后的神经网络模型的示意图;
图6为根据一示例性实施例示出的另一种神经网络模型训练方法的流程图;
图7为根据一示例性实施例示出的一种神经网络模型训练***的结构图;
图8为根据一示例性实施例示出的一种分布式并行模块的整体流程图;
图9为根据一示例性实施例示出的一种神经网络模型训练装置的结构图;
图10为根据一示例性实施例示出的一种电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,在本发明实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
分布式训练并行模块规定了异构计算节点的通信架构与通信同步方式。一般地,通信架构包括中心化架构与去中心化架构,通信同步方式包括同步更细与异步更细策略。
对于通信架构,中心化架构中包含中心服务器节点与计算节点,计算节点负责本地局部模型训练任务、发送本地局部信息至中心服务器节点、获取中心服务器节点全局信息。中心服务器节点汇总全体计算节点局部信息并更新全局模型,输出全局模型并将全局模型参数返回至各计算节点处。去中心化架构仅包含计算节点而没有中心服务器节点。
对于通信同步方式,计算节点间的信息交换依赖于通信同步方式。通常,通信同步方式可分为同步更细策略与异步更新策略。同步更细策略是指一个计算节点完成当前轮次的迭代训练任务后,它必须等待其他计算节点也完成各自当前轮次的迭代,只有当所有计算节点共同完成当前轮次的训练任务后,***才会进入下一轮次的迭代。同步更新策略受限于计算节点性能最差的节点,导致其他计算节点出现资源闲置与等待,造成一定的计算资源的浪费。异步更新策略是指一个计算节点完成当前轮次的迭代后,无需等待其他计算节点而自行进入下次迭代与更新,通过一些周期性的同步更新克服模型训练收敛慢的问题。异步更新策略适用于异构计算设备构成的分布式训练环境,充分提高设备的利用率。
因此,本发明的分布式并行模块采用去中心化架构的异步更新策略。
本发明实施例公开了一种神经网络模型训练方法,实现了兼顾内存占用与通信优化间的分布式训练并行模式。
参见图1,根据一示例性实施例示出的一种神经网络模型训练方法的流程图,如图1所示,包括:
S101:获取训练数据集,将所述训练数据集划分为多个训练数据子集;
S102:获取目标神经网络模型,将所述目标神经网络模型按照神经网络层划分为多个子模型;
本实施例中的目标神经网络模型可以应用于图像分类、文本分类、音频分类等应用场景,对应的训练数据集可以包括图像数据及对应的分类标签、文本数据及对应的分类标签、音频数据及对应的分类标签。
在获取目标神经网络模型之后,可以首先基于第i个神经网络层中的神经元与第i+1个神经网络层中的神经元之间的链接的链接重要程度去除第i个神经网络层与第i+1个神经网络层之间链接重要程度最低的第一数量个链接,1≤i≤L-1,L为目标神经网络模型包含的神经网络层的数量,链接重要程度描述链接对模型训练结果的影响,从而使得目标神经网络模型变得更为稀疏。其次基于所有神经元的神经元重要程度,去除中间神经网络模型中神经元重要程度最低的第二数量个神经元以及与神经元重要程度最低的第二数量个神经元相应的链接,神经元重要程度描述神经元对模型训练结果的影响,从而使得目标神经网络模型宽度降低。然后将去除链接和神经元的目标神经网络模型按照神经网络层划分为多个子模型。通过降低目标神经网络模型的规模,提高了后续目标神经网络模型的训练效率。
在具体实施中,可以通过相邻神经网络层中神经元间的关联矩阵(也即权重矩阵)W对神经元之间的链接进行描述,关联矩阵的行和列分别对应第i个神经网络层和第i+1个神经网络层中的神经元,关联矩阵用于描述第i个神经网络层中的神经元与第i+1个神经网络层中的神经元之间的链接的权重。例如,第1层与第2层之间的链接如图2所示,第1层包括神经元n1、n2、n3、n4,第2层包括神经元n5、n6、n7,第1层与第2层之间的链接包括n1→n5、n1→n6、n1→n7、n2→n5、n2→n6、n2→n7、n3→n5、n3→n6、n3→n7、n4→n5、n4→n6、n4→n7。第1层与第2层之间的关联矩阵如下:
;
进一步的,将第i个神经网络层中的神经元与第i+1个神经网络层中的神经元之间的链接的链接重要程度确定为关联矩阵中对应元素的值。例如,对于上述关联矩阵,链接n1→n5的链接重要程度为0.15,链接n1→n6的链接重要程度为0.8,依次类推。
确定关联矩阵包含的元素的数量,将关联矩阵包含的元素的数量与第一预设系数的乘积的向上取整确定为第一数量。第一数量的定义方式如下:
;
其中,W(i,i+1)为第i个神经网络层中的神经元与第i+1个神经网络层之间的关联矩阵,表示矩阵或向量的模,即矩阵或向量元素个数,/>表示向上取整操作符,/>为第一预设系数,/>。
可以理解为以一定比例去除神经网络相邻两层中的链接,目的是去除权重矩阵中排序靠后的/>个链接,因为这些链接在权重传递中数值较小,对模型训练结果影响程度较弱,故可剔除。
对于图2来说,若,则/>,因此,需要从矩阵W中去除元素数值排序靠后的3条链接,即链接n2→n7、n2→n6、n4→n5,去除链接后的神经网络模型如图3所示。
在具体实施中,可以通过全体关联矩阵对神经元之间的链接进行描述,全体关联矩阵的行对应神经网络模型中除最后一个神经网络层中的神经元、列对应神经网络模型中除第一个神经网络层中的神经元,全体关联矩阵用于描述神经网络模型中相邻神经网络层中的两个神经元之间的链接的权重。例如,神经网络模型如图4所示,第1层包括神经元n1、n2、n3、n4,第2层包括神经元n5、n6、n7,第3层包括神经元n8、n9、n10、n11,第1层与第2层之间的链接包括n1→n5、n1→n6、n1→n7、n2→n5、n2→n6、n2→n7、n3→n5、n3→n6、n3→n7、n4→n5、n4→n6、n4→n7,第2层与第3层之间的链接包括n5→n8、n5→n9、n5→n10、n6→n9、n6→n10、n6→n11、n7→n10、n7→n11。全体关联矩阵如下:
;
进一步的,确定全体关联矩阵中的行神经元集RW和列神经元集CW,对于上述全体关联矩阵来说,RW={n1,n2,n3,n4,n5,n6,n7},CW={n5,n6,n7,n8,n9,n10,n11}。wij表示神经元 i指向神经元 j 的权重,空白位置表示wij=0表明两个神经元之间没有关联。
在具体实施中,将全体关联矩阵中列神经元所在行中所有元素的值的平方和确定为行神经元的第一重要程度,将全体关联矩阵中列神经元所在列中所有元素的值的平方和确定为列神经元的第二重要程度。
假定全体关联矩阵WM×N,即 W规模为M行N列。对于RW中的第 i 个神经元,其第一重要程度定义为矩阵W中第 i 行元素值的平方和:,对于CW中的第j个神经元,其第二重要程度为矩阵W中第 j 行元素值的平方和:/>。
RW与CW中可能存在相同的神经元p,即i=j的情况。因此,一个神经元p的神经元重要程度定义如下:Imfluence(p)=ImfluenceRW(i)+ImfluenceCW(j)。
对于图4来说,首先计算行神经元的第一重要程度ImfluenceRW:
ImfluenceRW(n1)=0.15^2+0.8^2+0.4^2=0.8225;
ImfluenceRW(n2)=0.08^2+0.05^2+0.01^2=0.009;
ImfluenceRW(n3)=0.1^2+0.5^2+0.2^2=0.3;
ImfluenceRW(n4)=0.8^2+0.6^2+0.1^2=1.01;
ImfluenceRW(n5)=0.005^2+0.001^2+0.01^2=0.000126;
ImfluenceRW(n6)=0.7^2+0.4^2+0.8^2=1.29;
ImfluenceRW(n7)=0.9^2+0.3^2=0.9。
其次计算列神经元的第二重要程度ImfluenceCW:
ImfluenceCW(n5)=0.15^2+0.08^2+0.1^2+0.8^2=0.6789;
ImfluenceCW(n6)=0.8^2+0.05^2+0.5^2+0.6^2=1.2525;
ImfluenceCW(n7)=0.4^2+0.01^2+0.2^2+0.1^2=0.2101;
ImfluenceCW(n8)=0.005^2=0.000025;
ImfluenceCW(n9)=0.001^2+0.7^2+0.9^2=1.300001;
ImfluenceCW(n10)=0.01^2+0.4^2+0.3^2=0.2501;
ImfluenceCW(n11)=0.8^2=0.64。
最后,计算各神经元的神经元重要程度:
神经元n1的Imfluence(n1)=ImfluenceRW(n1)=0.8225;
神经元n2的Imfluence(n2)=ImfluenceRW(n2)=0.009;
神经元n3的Imfluence(n3)=ImfluenceRW(n3)=0.3;
神经元n4的Imfluence(n4)=ImfluenceRW(n4)=1.01;
神经元n5的Imfluence(n5)=ImfluenceRW(n5)+ImfluenceCW(n5)=0.679026;
神经元n6的Imfluence(n6)=ImfluenceRW(n6)+ImfluenceCW(n6)=2.5425;
神经元n7的Imfluence(n7)=ImfluenceRW(n7)+ImfluenceCW(n7)=1.1101;
神经元n8的Imfluence(n8)=ImfluenceCW(n8)=0.000025;
神经元n9的Imfluence(n9)=ImfluenceCW(n9)=1.300001;
神经元n10的Imfluence(n10)=ImfluenceCW(n10)=0.2501;
神经元n11的Imfluence(n11)=ImfluenceCW(n11)=0.64。
因此,神经元重要程度降序排列为:n6>n9>n7>n4>n1>n5>n11>n3>n10>n2>n8。
确定全体关联矩阵包含的行神经元集合和列神经集合,确定行神经元集合与列神经元集合的并集,并确定并集包含的神经元的数量,将并集包含的神经元的数量与第二预设系数的乘积的向上取整确定为第二数量。第二数量的定义如下:
;
其中,W为全体关联矩阵,表示矩阵或向量的模,即矩阵或向量元素个数,/>表示向上取整操作符,/>为第二预设系数,/>,/>表示集合取并集整操作符。
对于图4来说,,若/>,则/>。因此,将神经元重要性程度排名靠后的3个神经元n10、n2、n8去除,去除神经元之后的神经网络模型如图5所示。
S103:将多个所述训练数据子集和多个所述子模型分别发送至多个计算节点,以便多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算局部信息;
在本实施例中,按照各计算节点的内存将训练数据集划分为多个训练数据子集,将多个训练数据子集分别发送至多个计算节点。进一步的,将用于执行图像分类任务的目标神经网络模型按照神经网络层划分为多个子模型,例如,目标神经网络模型包含L个神经网络层,则将目标神经网络模型划分为L个子模型,每个子模型对应一个神经网络层。本实施例中的目标神经网络模型可以包括Resnet152模型。将多个子模型分别发送至多个计算节点,多个计算节点并行执行子模型的训练任务,也即基于接收到的训练数据子集和接收到的子模型的当前模型参数计算局部信息,该局部信息可以包括目标函数的梯度、二阶优化算法的关键矩阵。二阶优化算法可以为牛顿法(Newton Algorithm),对应的关键矩阵为二阶的海森矩阵(H矩阵),二阶优化算法也可以为自然梯度下降算法,对应的关键矩阵为Fisher信息矩阵,也即激活矩阵(A矩阵)和梯度矩阵(G矩阵)。
作为一种可行的实施方式,所述多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算局部信息,包括:多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算目标函数的梯度和二阶优化算法的关键矩阵。
在具体实施中,各计算节点基于接收到的训练数据子集抽取训练样本,基于训练样本和接收到的子模型的当前模型参数计算目标函数的梯度和二阶优化算法的关键矩阵。
S104:将多个所述计算节点计算得到局部信息进行聚合得到全局信息,并将所述全局信息广播至多个所述计算节点,以便多个所述计算节点基于所述全局信息更新对应的子模型的模型参数,实现对应的子模型的迭代训练,得到训练完成的子模型;
在具体实施中,多个计算节点将计算得到的局部信息发送至目标计算节点,目标计算节点将多个计算节点计算得到局部信息进行聚合得到全局信息。
作为一种可行的实施方式,所述将多个所述计算节点计算得到局部信息进行聚合得到全局信息,包括:将多个所述计算节点计算得到的所述目标函数的梯度进行聚合得到全局梯度;将多个所述计算节点计算得到的关键矩阵进行聚合得到全局关键矩阵;基于所述全局梯度和所述全局关键矩阵确定全局信息。
在具体实施中,将多个所述计算节点计算得到的所述目标函数的梯度的和与所述计算节点的数量之间的比值确定为全局梯度。按照多个所述计算节点接收到的子模型在所述神经网络模型中的排列顺序,将多个所述计算节点计算得到的关键矩阵依次作为对角块生成块对角局矩阵作为全局关键矩阵。例如,第1个计算节点训练神经网络模型中第1个神经网络层,第2个计算节点训练神经网络模型中第2个神经网络层,第2个计算节点训练神经网络模型中第2个神经网络层,第1个计算得到的关键矩阵为X1,第1个计算得到的关键矩阵为X2,第1个计算得到的关键矩阵为X3,则聚合得到的全局关键矩阵为:
;
空白位置的元素值均为0。需要说明的是,各计算节点计算得到的关键矩阵的尺寸可以相同也可以不同,也即上述X1、X2、X3的尺寸可以相同也可以不同。
作为一种优选实施方式,所述基于所述全局梯度和所述全局关键矩阵确定全局信息,包括:将所述全局关键矩阵分解为上三角矩阵和下三角矩阵的乘积;基于所述上三角矩阵或所述下三角矩阵生成所述全局关键矩阵的近似矩阵;基于所述全局关键矩阵的近似矩阵生成更新因子;将所述全局梯度和所述更新因子作为所述全局信息。
可以理解的是,对于分布式训练***中求解神经网络各类目标函数的优化方法,虽然二阶优化算法较一阶优化算法具有更快的理论收敛速率。但是,由于参数模型规模过于庞大,导致计算和存储关键矩阵、以及其逆矩阵代价过高。例如,假设模型参数规模为O(N),存储关键矩阵需要O(N2)的空间,计算关键矩阵则需要O(N3)的开销,其中N表示关键矩阵的规模。因此,当N较大时,直接求逆运算的复杂度过高。在相关技术中,在各次迭代中需要计算大规模关键矩阵及其逆矩阵或特征值矩阵,导致算法本身计算开销过大。此外,由于模型参数更新依赖于各计算节点间通信内容,包括局部计算节点的大规模矩阵与梯度矩阵,导致通信开销与存储开销巨大。
因此,在本实施例中,充分考虑到关键矩阵的性质,利用Cholesky分解方法(平方根法)将所述全局关键矩阵分解为上三角矩阵和下三角矩阵的乘积,上三角矩阵为主对角线以下都是零的方阵,下三角矩阵为主对角线以上都是零的方阵。三角矩阵的求逆运算复杂度至多为O(1/2*N3)。综上,Cholesky分解的复杂度O(1/6*N3),三角矩阵求逆运算复杂度O(1/2*N3),本实施例总复杂度为O(2/3*N3),仅为原始矩阵直接求逆运算复杂度的2/3。因此,本实施例的计算复杂度较现有方法的复杂度降低三分之一。
Cholesky矩阵分解本质是上对关键矩阵提取关键属性或特征,并且上三角矩阵或下三角矩阵较原始矩阵,数据量减少的同时,存储于计算开销均降低。
作为一种可行的实施方式,所述基于所述上三角矩阵或所述下三角矩阵生成所述全局关键矩阵的近似矩阵,包括:提取所述上三角矩阵或所述下三角矩阵的对角线元素生成中间矩阵;计算所述全局关键矩阵与所述上三角矩阵或所述下三角矩阵的差值的F范数作为第一范数,计算所述全局关键矩阵的F范数作为第二范数;将所述第一范数与所述第二范数的比值与所述中间矩阵的乘积作为所述全局关键矩阵的近似矩阵。
为进一步降低***开销,本实施例对上三角矩阵或下三角矩阵、抽取主对角线元素,并以此作为原始的关键矩阵的近似。
对于激活矩阵A来说,计算其近似矩阵的公式为:
;
其中,为激活矩阵的近似矩阵,A1为激活矩阵分解的上三角矩阵或下三角矩阵,dig(A1)表示A1的对角线元素构成的矩阵,/>为A-A1的F范数,/>为A的的F范数。
对于梯度矩阵G来说,计算其近似矩阵的公式为:
;
其中,为梯度矩阵的近似矩阵,G1为梯度矩阵分解的上三角矩阵或下三角矩阵,dig(G1)表示G1的对角线元素构成的矩阵,/>为G-G1的F范数,/>为G的的F范数。
对于海森矩阵H来说,计算其近似矩阵的公式为:
;
其中,为梯度矩阵的近似矩阵,H1为海森矩阵分解的上三角矩阵或下三角矩阵,dig(H1)表示H1的对角线元素构成的矩阵,/>为H-H1的F范数,/>为H的的F范数。
若关键矩阵包括激活矩阵和梯度矩阵,则将所述激活矩阵的近似矩阵与所述梯度矩阵的近似矩阵的克罗内克积的逆作为更新因子,计算公式为:
;
其中,为所述梯度矩阵的近似矩阵,/>为所述激活矩阵的近似矩阵,/>表示克罗内克积,/>,/>为更新因子。
若关键矩阵包括海森矩阵,则将海森矩阵的近似矩阵的逆作为更新因子。
进一步的,目标计算节点将聚合得到的全局信息广播至多个计算节点,多个计算节点基于全局梯度、学习率、所述更新因子更新对应的子模型的模型参数更新对应的子模型的模型参数;判断子模型是否收敛,若是,则得到训练完成的子模型,若否,则重新基于接收到的训练数据子集和子模型的当前模型参数计算局部信息。
作为一种可行的实施方式,所述多个所述计算节点基于所述全局梯度、学习率、所述更新因子更新对应的子模型的模型参数,包括:多个所述计算节点计算所述全局梯度、学习率、所述更新因子的乘积;将对应的子模型的当前模型参数与所述乘积的差值作为更新后的模型参数。
在具体实施中,利用模型参数更新公式更新对应的子模型的模型参数;其中,所述模型参数更新函数为:
;
其中,为对应的子模型更新前的模型参数,/>为对应的子模型更新后的模型参数,f为所述目标函数,/>为所述学习率,/>为所述更新因子。
作为一种可行的实施方式,所述判断子模型是否收敛,包括:判断迭代次数是否大于第一预设值,或,更新后的模型参数与更新前的模型参数之间的差值是否小于第二预设值;若任一项为是,则判定子模型收敛。
在具体实施中,收敛条件可以有以下两种,一是设定一个固定迭代次数,也即第一预设值,例如,执行10000次迭代,算法停止。二是比较更新后的模型参数与更新前的模型参数之间的变化情况,即如果新后的模型参数与更新前的模型参数之间的差值小于第二预设值,则认为模型参数基本保持不变,算法停止。
S105:基于多个所述计算节点训练完成的子模型确定训练完成的目标神经网络模型。
本发明实施例提供的神经网络模型训练方法,在对神经网络模型进行训练时,不同的计算节点训练不同的数据,也即采用数据并行的训练方式,不同的计算节点训练不同的子模型,也即采用模型并行的训练方式采用数据并行与模型并行相结合的混合并行模式,实现了兼顾内存占用与通信优化间的分布式训练并行模式,加快了计算节点的计算效率,加速了神经网络模型训练过程。
本发明实施例公开了一种神经网络模型训练方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
参见图6,根据一示例性实施例示出的另一种神经网络模型训练方法的流程图,如图6所示,包括:
S201:获取训练数据集,将所述训练数据集划分为多个训练数据子集;
S202:获取目标神经网络模型,将所述目标神经网络模型按照神经网络层划分为多个子模型;
S203:将多个所述训练数据子集和多个所述子模型分别发送至多个计算节点,以便多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算目标函数的梯度和二阶优化算法的关键矩阵;
S204:将多个所述计算节点计算得到的所述目标函数的梯度进行聚合得到全局梯度;将多个所述计算节点计算得到的关键矩阵进行聚合得到全局关键矩阵;
S205:将所述全局关键矩阵分解为上三角矩阵和下三角矩阵的乘积;基于所述上三角矩阵或所述下三角矩阵生成所述全局关键矩阵的近似矩阵;基于所述全局关键矩阵的近似矩阵生成更新因子;将所述全局梯度和所述更新因子作为全局信息;
本实施例中,充分考虑到关键矩阵的性质,利用Cholesky分解方法(平方根法)将所述全局关键矩阵分解为上三角矩阵和下三角矩阵的乘积,而三角矩阵的求逆运算复杂度至多为O(1/2*N3)。综上,Cholesky分解的复杂度O(1/6*N3),三角矩阵求逆运算复杂度O(1/2*N3),本实施例总复杂度为O(2/3*N3),仅为原始矩阵直接求逆运算复杂度的2/3。因此,本实施例的计算复杂度较现有方法的复杂度降低三分之一。
Cholesky矩阵分解本质是上对关键矩阵提取关键属性或特征,并且上三角矩阵或下三角矩阵较原始矩阵,数据量减少的同时,存储于计算开销均降低。
作为一种可行的实施方式,所述基于所述上三角矩阵或所述下三角矩阵生成所述全局关键矩阵的近似矩阵,包括:提取所述上三角矩阵或所述下三角矩阵的对角线元素生成中间矩阵;计算所述全局关键矩阵与所述上三角矩阵或所述下三角矩阵的差值的F范数作为第一范数,计算所述全局关键矩阵的F范数作为第二范数;将所述第一范数与所述第二范数的比值与所述中间矩阵的乘积作为所述全局关键矩阵的近似矩阵。
为进一步降低***开销,本实施例对上三角矩阵或下三角矩阵、抽取主对角线元素,并以此作为原始的关键矩阵的近似。
对于激活矩阵A来说,计算其近似矩阵的公式为:
;
其中,为激活矩阵的近似矩阵,A1为激活矩阵分解的上三角矩阵或下三角矩阵,dig(A1)表示A1的对角线元素构成的矩阵,/>为A-A1的F范数,/>为A的的F范数。
对于梯度矩阵G来说,计算其近似矩阵的公式为:
;
其中,为梯度矩阵的近似矩阵,G1为梯度矩阵分解的上三角矩阵或下三角矩阵,dig(G1)表示G1的对角线元素构成的矩阵,/>为G-G1的F范数,/>为G的的F范数。
对于海森矩阵H来说,计算其近似矩阵的公式为:
;
其中,为梯度矩阵的近似矩阵,H1为海森矩阵分解的上三角矩阵或下三角矩阵,dig(H1)表示H1的对角线元素构成的矩阵,/>为H-H1的F范数,/>为H的的F范数。
若关键矩阵包括激活矩阵和梯度矩阵,则将所述激活矩阵的近似矩阵与所述梯度矩阵的近似矩阵的克罗内克积的逆作为更新因子,计算公式为:
;
其中,为所述梯度矩阵的近似矩阵,/>为所述激活矩阵的近似矩阵,/>表示克罗内克积,/>,/>为更新因子。
若关键矩阵包括海森矩阵,则将海森矩阵的近似矩阵的逆作为更新因子。
S206:将所述全局信息广播至多个所述计算节点,以便多个所述计算节点基于所述全局信息更新对应的子模型的模型参数,实现对应的子模型的迭代训练,得到训练完成的子模型;
在具体实施中,目标计算节点将聚合得到的全局信息广播至多个计算节点,多个计算节点基于全局梯度、学习率、所述更新因子更新对应的子模型的模型参数更新对应的子模型的模型参数;判断子模型是否收敛,若是,则得到训练完成的子模型,若否,则重新基于接收到的训练数据子集和子模型的当前模型参数计算局部信息。
作为一种可行的实施方式,所述多个所述计算节点基于所述全局梯度、学习率、所述更新因子更新对应的子模型的模型参数,包括:多个所述计算节点计算所述全局梯度、学习率、所述更新因子的乘积;将对应的子模型的当前模型参数与所述乘积的差值作为更新后的模型参数。
在具体实施中,利用模型参数更新公式更新对应的子模型的模型参数;其中,所述模型参数更新函数为:
;
其中,为对应的子模型更新前的模型参数,/>为对应的子模型更新后的模型参数,f为所述目标函数,/>为所述学习率,/>为所述更新因子。
S207:基于多个所述计算节点训练完成的子模型确定训练完成的目标神经网络模型。
下面介绍本发明提供的一种应用实施例,一种图像分类***如图7所示,包括分布式训练并行模块、算子分解与近似模块、以及训练结果输出模块。
分布式训练并行模块首先根据分布式训练***当前异构计算节点间内存占用与通信情况,灵活配置参与海森矩阵或Fisher信息矩阵相关运算的异构计算节点数量。其次,各类异构计算节点间需设计数据并行模型与模型并行模式,实现数据内存占用与算子通信间的平衡。该模块规定了分布式训练的通信架构、数据与模型的放置策略、训练流程。
分布式并行模块的整体流程如图8所示,采用数据并行(不同节点训练不同数据)与模型并行(不同节点训练不同局部模型)相结合的混合并行模式,加速训练过程。该模块主要包括三个阶段:数据并行阶段一、模型并行阶段二、数据并行阶段三。输入的训练数据集可以为Imagenet-1K,使用到的神经网络模型可以为Resnet152模型。
数据并行阶段一:该阶段包括数据分配步骤、前向传播步骤、后向传播步骤。数据分配步骤:不同的异构计算节点,根据其自身内存与存储分配不同的数据样本子集。训练时不同的计算节点从自身数据样本子集中随机抽取相应的小批量样本执行训练任务。前向传播步骤:不同的异构计算节点,根据随机抽取的小批量样本,以及当前模型参数,计算目标函数。后向传播步骤:不同计算节点依据其局部目标函数,分别计算激活矩阵A、梯度矩阵G。数据并行阶段各异构计算节点分别计算局部信息。
模型并行阶段二:该阶段包括全局算子聚合阶段、算子分解与近似步骤。全局算子聚合步骤:不同计算节点输出的局部信息,如激活矩阵A以及梯度G等需要进行聚合,并产生全局信息,便于模型训练的收敛。算子分解与近似步骤:对聚合后的全局算子进行特殊形式的分解与近似,降低矩阵求逆、特征值、乘法运算复杂度,降低数据存储、计算、通信开销。该步骤具体过程参见算子分解与近似模块。模型并行阶段二输出全局的分解与近似后的信息。
数据并行阶段三:该阶段将上阶段产生的处理过后的分解与近似信息广播至全体计算节点,使得全体计算节点以当前时刻的全局信息进行训练。全局算子信息广播步骤:将全局算子信息广播至全体计算节点,各个异构计算节点再利用本地数据进行模型参数更新,实现模型迭代训练。
算子分解与近似模块在分布式训练并行模块基础之上,首先设计了一种Cholesky矩阵分解方法,规避直接对大规模矩阵H或F直接进行求逆、特征值运算及乘法运算,降低计算复杂度,从而加速计算。同时,将大规模矩阵转换成特殊的矩阵形式,降低通信量,从而降低通信开销。例如,Cholesky矩阵分解之后,原始矩阵可以表达为一个上三角矩阵与一个下三角矩阵的乘积,并且这两个三角矩阵互为转置关系。利用上三角矩阵或下三角矩阵的对称性,可使得通信量降低。另外,本发明进一步对三角阵主对角先元素进行抽取来近似三角矩阵,实现通信量的进一步降低。实际训练过程中原算子均采用近似算子,以提高分布式训练效率。
训练结果输出模块负责将上述模块的训练结果(也即模型参数)进行整合,并输出训练任务的全局解。
下面对本发明实施例提供的一种神经网络模型训练装置进行介绍,下文描述的一种神经网络模型训练装置与上文描述的一种神经网络模型训练方法可以相互参照。
参见图9,根据一示例性实施例示出的一种神经网络模型训练装置的结构图,如图9所示,包括:
第一划分模块100,用于获取训练数据集,将所述训练数据集划分为多个训练数据子集;
第二划分模块200,用于获取目标神经网络模型,将所述目标神经网络模型按照神经网络层划分为多个子模型;
发送模块300,用于将多个所述训练数据子集和多个所述子模型分别发送至多个计算节点,以便多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算局部信息;
聚合模块400,用于将多个所述计算节点计算得到局部信息进行聚合得到全局信息,并将所述全局信息广播至多个所述计算节点,以便多个所述计算节点基于所述全局信息更新对应的子模型的模型参数,实现对应的子模型的迭代训练,得到训练完成的子模型;
确定模块500,用于基于多个所述计算节点训练完成的子模型确定训练完成的目标神经网络模型。
本发明实施例提供的神经网络模型训练装置,在对神经网络模型进行训练时,不同的计算节点训练不同的数据,也即采用数据并行的训练方式,不同的计算节点训练不同的子模型,也即采用模型并行的训练方式采用数据并行与模型并行相结合的混合并行模式,实现了兼顾内存占用与通信优化间的分布式训练并行模式,加快了计算节点的计算效率,加速了神经网络模型训练过程。
在上述实施例的基础上,作为一种优选实施方式,所述发送模块300具体用于:将多个所述训练数据子集和多个所述子模型分别发送至多个计算节点,以便多个所述计算节点基于接收到的训练数据子集抽取训练样本,并基于所述训练样本和接收到的子模型的当前模型参数局部信息。
在上述实施例的基础上,作为一种优选实施方式,所述发送模块300具体用于:将多个所述训练数据子集和多个所述子模型分别发送至多个计算节点,以便多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算目标函数的梯度和二阶优化算法的关键矩阵。
在上述实施例的基础上,作为一种优选实施方式,所述聚合模块400包括:
第一聚合子模块,用于将多个所述计算节点计算得到的所述目标函数的梯度进行聚合得到全局梯度;
第二聚合子模块,用于将多个所述计算节点计算得到的关键矩阵进行聚合得到全局关键矩阵;
确定子模块,用于基于所述全局梯度和所述全局关键矩阵确定全局信息;
广播子模块,用于将所述全局信息广播至多个所述计算节点,以便多个所述计算节点基于所述全局信息更新对应的子模型的模型参数,实现对应的子模型的迭代训练,得到训练完成的子模型。
在上述实施例的基础上,作为一种优选实施方式,所述第一聚合子模块具体用于:将多个所述计算节点计算得到的所述目标函数的梯度的和与所述计算节点的数量之间的比值确定为全局梯度。
在上述实施例的基础上,作为一种优选实施方式,所述第二聚合子模块具体用于:按照多个所述计算节点接收到的子模型在所述神经网络模型中的排列顺序,将多个所述计算节点计算得到的关键矩阵依次作为对角块生成块对角局矩阵作为全局关键矩阵。
在上述实施例的基础上,作为一种优选实施方式,所述确定子模块包括:
分解单元,用于将所述全局关键矩阵分解为上三角矩阵和下三角矩阵的乘积;
第一生成单元,用于基于所述上三角矩阵或所述下三角矩阵生成所述全局关键矩阵的近似矩阵;
第二生成单元,用于基于所述全局关键矩阵的近似矩阵生成更新因子;
确定单元,用于将所述全局梯度和所述更新因子作为所述全局信息。
在上述实施例的基础上,作为一种优选实施方式,所述分解单元具体用于:利用平方根法将所述全局关键矩阵分解为上三角矩阵和下三角矩阵的乘积。
在上述实施例的基础上,作为一种优选实施方式,所述第一生成单元具体用于:提取所述上三角矩阵或所述下三角矩阵的对角线元素生成中间矩阵;计算所述全局关键矩阵与所述上三角矩阵或所述下三角矩阵的差值的F范数作为第一范数,计算所述全局关键矩阵的F范数作为第二范数;将所述第一范数与所述第二范数的比值与所述中间矩阵的乘积作为所述全局关键矩阵的近似矩阵。
在上述实施例的基础上,作为一种优选实施方式,所述关键矩阵包括激活矩阵和梯度矩阵。
在上述实施例的基础上,作为一种优选实施方式,所述第二生成单元具体用于:将所述激活矩阵的近似矩阵与所述梯度矩阵的近似矩阵的克罗内克积的逆作为更新因子。
在上述实施例的基础上,作为一种优选实施方式,所述关键矩阵包括海森矩阵。
在上述实施例的基础上,作为一种优选实施方式,所述第二生成单元具体用于:将所述海森矩阵的近似矩阵的逆作为更新因子。
在上述实施例的基础上,作为一种优选实施方式,所述广播子模块具体用于:将所述全局信息广播至多个所述计算节点,以便多个所述计算节点基于所述全局梯度、学习率、所述更新因子更新对应的子模型的模型参数;判断子模型是否收敛,若是,则得到训练完成的子模型,若否,则重新基于接收到的训练数据子集和子模型的当前模型参数计算局部信息。
在上述实施例的基础上,作为一种优选实施方式,所述广播子模块具体用于:将所述全局信息广播至多个所述计算节点,以便多个所述计算节点计算所述全局梯度、学习率、所述更新因子的乘积;将对应的子模型的当前模型参数与所述乘积的差值作为更新后的模型参数;判断子模型是否收敛,若是,则得到训练完成的子模型,若否,则重新基于接收到的训练数据子集和子模型的当前模型参数计算局部信息。
在上述实施例的基础上,作为一种优选实施方式,模型参数更新函数为:
;
其中,为对应的子模型更新前的模型参数,/>为对应的子模型更新后的模型参数,f为所述目标函数,/>为所述学习率,/>为所述更新因子。
在上述实施例的基础上,作为一种优选实施方式,所述广播子模块具体用于:将所述全局信息广播至多个所述计算节点,以便多个所述计算节点基于所述全局梯度、学习率、所述更新因子更新对应的子模型的模型参数;判断迭代次数是否大于第一预设值,或,更新后的模型参数与更新前的模型参数之间的差值是否小于第二预设值;若任一项为是,则得到训练完成的子模型,否则重新基于接收到的训练数据子集和子模型的当前模型参数计算局部信息。
在上述实施例的基础上,作为一种优选实施方式,所述发送模块300具体用于:将多个所述训练数据子集和多个所述子模型分别发送至多个计算节点,以便多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算局部信息,并将计算得到的局部信息发送至目标计算节点。
在上述实施例的基础上,作为一种优选实施方式,所述聚合模块400具体用于:利用所述目标计算节点将多个所述计算节点计算得到局部信息进行聚合得到全局信息,并将所述全局信息广播至多个所述计算节点。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于上述程序模块的硬件实现,且为了实现本发明实施例的方法,本发明实施例还提供了一种电子设备,图10为根据一示例性实施例示出的一种电子设备的结构图,如图10所示,电子设备包括:
通信接口1,能够与其它设备比如网络设备等进行信息交互;
处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的图像分类方法。而所述计算机程序存储在存储器3上。
当然,实际应用时,电子设备中的各个组件通过总线***4耦合在一起。可理解,总线***4用于实现这些组件之间的连接通信。总线***4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为总线***4。
本发明实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器3旨在包括但不限于这些和任意其它适合类型的存储器。
上述本发明实施例揭示的方法可以应用于处理器2中,或者由处理器2实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。
处理器2执行所述程序时实现本发明实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本发明实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器3,上述计算机程序可由处理器2执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、CD-ROM等存储器。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种神经网络模型训练方法,其特征在于,包括:
获取训练数据集,将所述训练数据集划分为多个训练数据子集;
获取目标神经网络模型,将所述目标神经网络模型按照神经网络层划分为多个子模型;
将多个所述训练数据子集和多个所述子模型分别发送至多个计算节点,以便多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算局部信息;
将多个所述计算节点计算得到局部信息进行聚合得到全局信息,并将所述全局信息广播至多个所述计算节点,以便多个所述计算节点基于所述全局信息更新对应的子模型的模型参数,实现对应的子模型的迭代训练,得到训练完成的子模型;
基于多个所述计算节点训练完成的子模型确定训练完成的目标神经网络模型;
其中,所述将多个所述计算节点计算得到局部信息进行聚合得到全局信息,包括:
将多个所述计算节点计算得到的目标函数的梯度进行聚合得到全局梯度;
将多个所述计算节点计算得到的关键矩阵进行聚合得到全局关键矩阵;
将所述全局关键矩阵分解为上三角矩阵和下三角矩阵的乘积;
提取所述上三角矩阵或所述下三角矩阵的对角线元素生成中间矩阵;
计算所述全局关键矩阵与所述上三角矩阵或所述下三角矩阵的差值的F范数作为第一范数,计算所述全局关键矩阵的F范数作为第二范数;
将所述第一范数与所述第二范数的比值与所述中间矩阵的乘积作为所述全局关键矩阵的近似矩阵;
基于所述全局关键矩阵的近似矩阵生成更新因子;
将所述全局梯度和所述更新因子作为所述全局信息。
2.根据权利要求1所述神经网络模型训练方法,其特征在于,所述多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算局部信息,包括:
多个所述计算节点基于接收到的训练数据子集抽取训练样本,并基于所述训练样本和接收到的子模型的当前模型参数局部信息。
3.根据权利要求1所述神经网络模型训练方法,其特征在于,所述多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算局部信息,包括:
多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算目标函数的梯度和二阶优化算法的关键矩阵。
4.根据权利要求1所述神经网络模型训练方法,其特征在于,所述将多个所述计算节点计算得到的所述目标函数的梯度进行聚合得到全局梯度,包括:
将多个所述计算节点计算得到的所述目标函数的梯度的和与所述计算节点的数量之间的比值确定为全局梯度。
5.根据权利要求1所述神经网络模型训练方法,其特征在于,所述将多个所述计算节点计算得到的关键矩阵进行聚合得到全局关键矩阵,包括:
按照多个所述计算节点接收到的子模型在所述神经网络模型中的排列顺序,将多个所述计算节点计算得到的关键矩阵依次作为对角块生成块对角局矩阵作为全局关键矩阵。
6.根据权利要求1所述神经网络模型训练方法,其特征在于,将所述全局关键矩阵分解为上三角矩阵和下三角矩阵的乘积,包括:
利用平方根法将所述全局关键矩阵分解为上三角矩阵和下三角矩阵的乘积。
7.根据权利要求1所述神经网络模型训练方法,其特征在于,所述关键矩阵包括激活矩阵和梯度矩阵。
8.根据权利要求7所述神经网络模型训练方法,其特征在于,所述基于所述全局关键矩阵的近似矩阵生成更新因子,包括:
将所述激活矩阵的近似矩阵与所述梯度矩阵的近似矩阵的克罗内克积的逆作为更新因子。
9.根据权利要求1所述神经网络模型训练方法,其特征在于,所述关键矩阵包括海森矩阵。
10.根据权利要求9所述神经网络模型训练方法,其特征在于,所述基于所述全局关键矩阵的近似矩阵生成更新因子,包括:
将所述海森矩阵的近似矩阵的逆作为更新因子。
11.根据权利要求1所述神经网络模型训练方法,其特征在于,所述多个所述计算节点基于所述全局信息更新对应的子模型的模型参数,实现对应的子模型的迭代训练,得到训练完成的子模型,包括:
多个所述计算节点基于所述全局梯度、学习率、所述更新因子更新对应的子模型的模型参数;判断子模型是否收敛,若是,则得到训练完成的子模型,若否,则重新基于接收到的训练数据子集和子模型的当前模型参数计算局部信息。
12.根据权利要求11所述神经网络模型训练方法,其特征在于,所述多个所述计算节点基于所述全局梯度、学习率、所述更新因子更新对应的子模型的模型参数,包括:
多个所述计算节点计算所述全局梯度、学习率、所述更新因子的乘积;
将对应的子模型的当前模型参数与所述乘积的差值作为更新后的模型参数。
13.根据权利要求11所述神经网络模型训练方法,其特征在于,所述多个所述计算节点基于所述全局梯度、学习率、所述更新因子更新对应的子模型的模型参数,包括:
利用模型参数更新公式更新对应的子模型的模型参数;其中,所述模型参数更新函数为:
;
其中,为对应的子模型更新前的模型参数,/>为对应的子模型更新后的模型参数,f为所述目标函数,/>为所述学习率,/>为所述更新因子。
14.根据权利要求11所述神经网络模型训练方法,其特征在于,所述判断子模型是否收敛,包括:
判断迭代次数是否大于第一预设值,或,更新后的模型参数与更新前的模型参数之间的差值是否小于第二预设值;
若任一项为是,则判定子模型收敛。
15.根据权利要求1所述神经网络模型训练方法,其特征在于,所述多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算局部信息之后,还包括:
多个所述计算节点将计算得到的局部信息发送至目标计算节点。
16.根据权利要求15所述神经网络模型训练方法,其特征在于,所述将多个所述计算节点计算得到局部信息进行聚合得到全局信息,并将所述全局信息广播至多个所述计算节点,包括:
所述目标计算节点将多个所述计算节点计算得到局部信息进行聚合得到全局信息,并将所述全局信息广播至多个所述计算节点。
17.一种神经网络模型训练装置,其特征在于,包括:
第一划分模块,用于获取训练数据集,将所述训练数据集划分为多个训练数据子集;
第二划分模块,用于获取目标神经网络模型,将所述目标神经网络模型按照神经网络层划分为多个子模型;
发送模块,用于将多个所述训练数据子集和多个所述子模型分别发送至多个计算节点,以便多个所述计算节点基于接收到的训练数据子集和接收到的子模型的当前模型参数计算局部信息;
聚合模块,用于将多个所述计算节点计算得到局部信息进行聚合得到全局信息,并将所述全局信息广播至多个所述计算节点,以便多个所述计算节点基于所述全局信息更新对应的子模型的模型参数,实现对应的子模型的迭代训练,得到训练完成的子模型;
确定模块,用于基于多个所述计算节点训练完成的子模型确定训练完成的目标神经网络模型;
其中,所述聚合模块具体用于:将多个所述计算节点计算得到的目标函数的梯度进行聚合得到全局梯度;将多个所述计算节点计算得到的关键矩阵进行聚合得到全局关键矩阵;将所述全局关键矩阵分解为上三角矩阵和下三角矩阵的乘积;提取所述上三角矩阵或所述下三角矩阵的对角线元素生成中间矩阵;计算所述全局关键矩阵与所述上三角矩阵或所述下三角矩阵的差值的F范数作为第一范数,计算所述全局关键矩阵的F范数作为第二范数;将所述第一范数与所述第二范数的比值与所述中间矩阵的乘积作为所述全局关键矩阵的近似矩阵;基于所述全局关键矩阵的近似矩阵生成更新因子;将所述全局梯度和所述更新因子作为所述全局信息。
18.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至16任一项所述神经网络模型训练方法的步骤。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至16任一项所述神经网络模型训练方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310928140.4A CN116681127B (zh) | 2023-07-27 | 2023-07-27 | 一种神经网络模型训练方法、装置及电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310928140.4A CN116681127B (zh) | 2023-07-27 | 2023-07-27 | 一种神经网络模型训练方法、装置及电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116681127A CN116681127A (zh) | 2023-09-01 |
CN116681127B true CN116681127B (zh) | 2023-11-07 |
Family
ID=87787608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310928140.4A Active CN116681127B (zh) | 2023-07-27 | 2023-07-27 | 一种神经网络模型训练方法、装置及电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116681127B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687801B (zh) * | 2024-02-02 | 2024-05-10 | 浪潮电子信息产业股份有限公司 | 一种跨域分布式计算***、方法、存储介质和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299781A (zh) * | 2018-11-21 | 2019-02-01 | 安徽工业大学 | 基于动量和剪枝的分布式深度学习*** |
CN114997337A (zh) * | 2022-07-18 | 2022-09-02 | 浪潮电子信息产业股份有限公司 | 信息融合、数据通信方法、装置及电子设备和存储介质 |
CN115660078A (zh) * | 2022-12-29 | 2023-01-31 | 浪潮电子信息产业股份有限公司 | 一种分布式计算方法、***、存储介质和电子设备 |
CN115860100A (zh) * | 2021-09-23 | 2023-03-28 | 华为技术有限公司 | 一种神经网络模型训练方法、装置及计算设备 |
CN116391191A (zh) * | 2020-10-16 | 2023-07-04 | 杜比国际公司 | 用于处理滤波器组域中的音频样本的生成神经网络模型 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4032035A1 (en) * | 2019-09-20 | 2022-07-27 | Secondmind Limited | Efficient computational inference |
-
2023
- 2023-07-27 CN CN202310928140.4A patent/CN116681127B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299781A (zh) * | 2018-11-21 | 2019-02-01 | 安徽工业大学 | 基于动量和剪枝的分布式深度学习*** |
CN116391191A (zh) * | 2020-10-16 | 2023-07-04 | 杜比国际公司 | 用于处理滤波器组域中的音频样本的生成神经网络模型 |
CN115860100A (zh) * | 2021-09-23 | 2023-03-28 | 华为技术有限公司 | 一种神经网络模型训练方法、装置及计算设备 |
CN114997337A (zh) * | 2022-07-18 | 2022-09-02 | 浪潮电子信息产业股份有限公司 | 信息融合、数据通信方法、装置及电子设备和存储介质 |
CN115660078A (zh) * | 2022-12-29 | 2023-01-31 | 浪潮电子信息产业股份有限公司 | 一种分布式计算方法、***、存储介质和电子设备 |
Non-Patent Citations (2)
Title |
---|
Cholesky-based model averaging for covariance matrix estimation;Hao Zheng et al.;Statistical Theory and Related Fields;第48-58页 * |
梯度预处理的随机梯度下降算法研究;张转;中国博士学位论文全文数据库 信息科技辑;第2023卷(第02期);正文第7-8页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116681127A (zh) | 2023-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116644804B (zh) | 分布式训练***、神经网络模型训练方法、设备和介质 | |
CN110998570B (zh) | 具有带有块浮点处理的矩阵矢量单元的硬件节点 | |
CN112764936B (zh) | 基于深度强化学习的边缘计算服务器信息处理方法及装置 | |
CN115186821B (zh) | 面向芯粒的神经网络推理开销估计方法及装置、电子设备 | |
CN116681127B (zh) | 一种神经网络模型训练方法、装置及电子设备和存储介质 | |
CN113222150B (zh) | 一种量子态的变换方法及装置 | |
WO2022227217A1 (zh) | 文本分类模型的训练方法、装置、设备及可读存储介质 | |
CN110929862B (zh) | 定点化的神经网络模型量化装置和方法 | |
CN108304926B (zh) | 一种适用于神经网络的池化计算装置及方法 | |
CN108270805A (zh) | 用于数据处理的资源分配方法及装置 | |
CN113158685A (zh) | 文本的语义预测方法、装置、计算机设备和存储介质 | |
CN118095103B (zh) | 水厂数字孪生应用增强方法、装置、存储介质及电子设备 | |
CN110442753A (zh) | 一种基于opc ua的图数据库自动建立方法及装置 | |
CN111160560A (zh) | 预估模拟量子计算所需资源的方法、*** | |
CN114297934A (zh) | 一种基于代理模型的模型参数并行仿真优化方法及装置 | |
CN115953651B (zh) | 一种基于跨域设备的模型训练方法、装置、设备及介质 | |
CN112561050B (zh) | 一种神经网络模型训练方法及装置 | |
WO2024066143A1 (zh) | 分子碰撞截面的预测方法、装置、设备及存储介质 | |
Zhan et al. | Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems | |
CN109388784A (zh) | 最小熵核密度估计器生成方法、装置和计算机可读存储介质 | |
CN115496181A (zh) | 深度学习模型的芯片适配方法、装置、芯片及介质 | |
CN114707655A (zh) | 一种量子线路转换方法、***、存储介质和电子设备 | |
CN114154631A (zh) | 一种基于fpga的卷积神经网络量化实现方法以及装置 | |
EP4220501A1 (en) | Runtime predictors for computation reduction in dependent computations | |
Shouman et al. | Static Workload Distribution of Parallel Applications in Heterogeneous Distributed Computing Systems with Memory and Communication Capacity Constraints |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |