CN111414961A - 一种基于任务并行的细粒度分布式深度森林训练方法 - Google Patents
一种基于任务并行的细粒度分布式深度森林训练方法 Download PDFInfo
- Publication number
- CN111414961A CN111414961A CN202010193428.8A CN202010193428A CN111414961A CN 111414961 A CN111414961 A CN 111414961A CN 202010193428 A CN202010193428 A CN 202010193428A CN 111414961 A CN111414961 A CN 111414961A
- Authority
- CN
- China
- Prior art keywords
- forest
- sub
- training
- forests
- deep
- 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.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 59
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000007637 random forest analysis Methods 0.000 claims abstract description 15
- 238000004364 calculation method Methods 0.000 claims abstract description 5
- 238000002790 cross-validation Methods 0.000 claims abstract description 5
- 239000013598 vector Substances 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 6
- 238000003066 decision tree Methods 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 239000008188 pellet Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 240000004808 Saccharomyces cerevisiae Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于任务并行的细粒度分布式深度森林训练方法,包括以下步骤:(a)在深度森林的每一层,其中每一个森林被拆分成多个均匀的子森林,其中每个子森林对应一个计算任务;(b)为子森林设置合适的随机状态,为子森林训练时的交叉验证设置合适的随机状态;(c)将子森林训练任务发放到各个计算节点执行;(d)采用Tree‑Reduce树形合并法将属于同一个随机森林的子森林的结果合并,得到该原始随机森林的训练结果,完成多个森林的并行训练。以提高深度森林训练效率,促进其应用与解决实际问题。
Description
技术领域
本发明涉及分布式机器学习领域,尤其涉及一种基于任务并行的细粒度分布式深度森林训练算法。
背景技术
针对深度神经网络(DNN)需要大量数据样本和昂贵计算资源、超参数调优难以及不适合处理有结构数据等问题,许多研究人员开始探索DNN的替代方案。周志华等提出了深度森林,这为许多机器学习任务开辟了一扇新的大门。深度森林是随机森林的深度集成模型,具有一个级联森林结构,以进行表示学习。与DNN相比,深度森林可以自适应地确定的模型复杂度(例如,级联层的层数)。此外,深度森林在大范围的任务中实现了相比DNN更加优异的精度结果。
在许多任务中,深度森林是DNN的理想的替代品。然而,现有的深度森林训练系统gcForest效率不高。原因有两点,首先,gcForest深度森林的训练过程是串行的。在每个级联层中,森林是顺序地进行训练的。其次,gcForest是一个缺乏可扩展性的单机系统,效率不高。举例来说,在具有2个Intel Xeon 2.1GHz CPU(12个物理核)的商用PC上,gcForest在MNIST数据集上训练一个深度森林需要近10个小时。对于CIFAR10数据集,训练时间甚至超过了一天。
gcForest的低效率会在一定程度上阻碍深度森林的实际应用。与此同时,越来越多的研究人员也意识到,计算效率、计算性能以及底层高性能计算系统在机器学习算法的实际应用中起着至关重要的作用。因此,迫切需要研究一种高效的深度森林系统,来帮助深度森林算法更快速地研究和应用。
发明内容
本发明要解决的技术问题是提供一种基于任务并行的细粒度分布式深度森林训练算法,以提高深度森林训练效率,促进其应用与解决实际问题。
为了解决上述技术问题,本发明的技术方案为:
一种基于任务并行的细粒度分布式深度森林训练方法,包括以下步骤:
(a)在深度森林的每一层,其中每一个森林被拆分成多个均匀的子森林,其中每个子森林对应一个计算任务;
(b)为子森林设置合适的随机状态,为子森林训练时的交叉验证设置合适的随机状态;
(c)将子森林训练任务发放到各个计算节点执行;
(d)采用Tree-Reduce树(树形规约树)分层树形合并法将属于同一个随机森林的子森林的结果合并,得到该原始随机森林的训练结果,完成多个森林的并行训练。
进一步地,在步骤(a)中子森林拆分方法产生的级联层输出类向量与非拆分的方法产生的级联层输出类向量一致。
进一步地,在步骤(a)中将子森林训练任务随机和独立地发送到集群中的各个计算节点执行。
进一步地,在步骤(d)中还包括以下步骤:
(d1)子森林的结果首先发送给底层工作节点;
(d2)本地合并结果后进一步发送给上层工作节点;
(d3)最后,由主节点对所有合并后的完整森林的结果进行合并。
采用上述技术方案,使得本发明所述基于任务并行的细粒度分布式深度森林训练方法能够将深度森林训练效率在大范围的数据集上提升平均一个数量级。
附图说明
图1为本发明的基于任务并行的细粒度分布式深度森林训练方法的总体流程示意图;
图2为本发明的基于任务并行的细粒度分布式深度森林训练方法的拆分过程图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步说明。在此需要说明的是,对于这些实施方式的说明用于帮助理解本发明,但并不构成对本发明的限定。此外,下面所描述的本发明各个实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明提出一种基于任务并行的细粒度分布式深度森林训练算法,解决了现有方法无法并行执行、效率低和扩展性差的问题。本发明算法主要包括以下4个步骤:
(1)在深度森林的每一层,每一个森林被拆分成多个均匀的子森林。每个子森林对应一个计算任务。
(2)为子森林设置合适的随机状态,为子森林训练时的交叉验证设置合适的随机状态。
(3)将子森林训练任务发放到各个计算节点执行。
(4)采用Tree-Reduce树形合并法将属于同一个随机森林的子森林的结果合并,得到该原始随机森林的训练结果。
下面以图1中所示的两个森林为例,说明本发明的具体的实施方式。结合本例,本发明的具体的实施方式为:
发明内容里的步骤(1)的具体实施方式为:将森林A,B分别均匀拆分为4个子森林,即sub-forest(子森林)A1-A4,sub-forest B1-B4。
发明内容里的技术方案步骤(2)的具体实施方式为:以图2为例,假设有一个5棵的森林f。采用均匀拆分方法,分别将森林分为具有2,2,1棵树的F1,F2,F3三个子森林。令f的随机状态为s0,则f中每棵树的随机状态为si(1≤i≤5),这是按顺序生成的。
这种情况下,本发明中的算法显式地设置F1的初始随机状态为s0,F2的初始随机状态为s2,F3的初始随机状态为s3。这样,子森林拆分后各树的随机状态与非拆分方法将完全相同,从而F1,F2,F3可以并行训练;并且,将各子森林的训练结果合并成的最终结果,与原森林f产生的结果完全相同。
发明内容中所述的步骤(3)的具体实施方式为:将子森林训练任务随机、独立地发送到集群中计算节点执行。
发明内容中所述的技术方案的步骤(4)的具体实施方式为:将结果合并任务当做一个可远程并发执行的任务,通过运行多个结果合并任务,首先将每个子森林的4个result(输出结果)合并为每个森林2个result,然后再合并为每个森林1个result,即为最终原始随机森林的result。
发明内容中所述步骤(5)的具体实施方式为:将合并后的Result A和Result B收集到master端,即可得到两个森林A,B的训练结果。也就完成了两个森林的并行训练。
为测试该方法的实际性能,在相同的软件、硬件平台上,采用ADULT、YEAST、LETTER、IMDB、sEMG、MINIST、CIFAR10作为测试数据集,测量了本发明提出的技术方法对数据集进行分布式深度森林训练的执行时间。作为比较,同时测量了现有单机训练算法gcForest的执行时间。表1展示了实际测量的结果,在同样的软件、硬件平台上,本发明所述的技术方案比单纯的全量计算或基于过滤的技术方法的执行时间短。从下表1中可以看出,一方面,即使在单机模式下(仅使用一个计算节点),本发明方法的性能也优于gcForest。其主要原因是gcForest深度森林训练过程是串行的。在每个级联层中,所有森林都是逐个训练的。相比之下,本发明方法首先将每个森林分成一系列子森林,然后同时训练所有的子森林。因此,本发明方法比gcForest更高效。此外,随着计算节点数量的增加,性能的提升变得更加显著。另一方面,对于所有测试数据集数据集,本发明方法的运行速度要比gcForest快一个数量级。。
表1 gcForest与本发明方法的性能
根据上述的算法核心是拆分-合并(Split-Merge)过程。算法首先将每个级联层的森林拆分成多个均匀的子森林,然后并行地执行所有子森林训练任务。最后,算法将各个子森林的训练结果(即类概率向量)进行合并,得到该级联层所有森林的最终类概率向量。
为了提高计算并行度,同时降低通信开销,算法首先将每一级联层的森林拆分为子森林。在森林的拆分过程中,有两个基本工作原理:
(1)原理1:子森林拆分方法产生的级联层输出类向量应与非拆分的方法产生的级联层输出类向量一致,以保证结果的一致性。
(2)原理2:子森林拆分方法应尽可能地减少期望的训练时间。
具体地,首先提出了一种确定性的随机状态生成方法,以确保结果的一致性。其次,基于加权的“球盒问题”的启发,提出了一种均匀拆分机制,以最小化期望的训练时间。
在本发明设计的算法中,每个子森林都是独立训练的。子森林的训练过程与整个森林的训练过程相似。子森林中每棵树的输入都是原始输入的自主采样(Bootstrap)后的样本。对于随机森林拆分后的子森林来说,算法仍选择个特征作为决策树节点分裂的候选特征(K为输入特征数),然后算法从中选择gini系数最佳的特征进行分割。类似的,对于完全随机森林拆分后的子森林,算法为每棵决策树的每个节点随机选择一个特征作为分裂特征。
注意到,随机森林中每棵树的训练结果都是由森林的初始随机状态决定的。众所周知,计算机系统中的随机状态是伪随机值,伪随机值是由计算机系统中的确定性算法产生的。在初始随机种子一致的情况下,计算机可以生成唯一确定的随机数序列。因此,为了保证拆分方法和非拆分方法具有一致的训练结果,本发明设计的算法将为每一个子森林以显式的方式设置特定的随机状态。
具体地,对“加权球盒问题”进行形式化描述。假设有m个小球和n个箱子,球i(i∈{1,...,m})的权重为wi。令w=(w1,...,wn)为球的权重向量,为所有球的总权重。令a为分配函数,a(i)代表球i分配的标号。箱子的载荷是分配到该箱的球的权重之和。其中一种分配方案可以表示为一个载荷向量L(w)=(l1(w),...,ln(w))。将箱子载荷由从大到小排序,使得l1≥l2≥…≥ln。然后令为具有最高载荷的k个箱子的总载荷。
对于子森林拆分问题来说,E[Sk(w)]代表负载最大的k个计算节点的期望总资源负载。如前所述,每一个级联层的完成时间取决于最慢的节点的训练完成时间,所以,E[Sk(w)]越小,代表负载越均衡,级联层的期望训练完成时间越短。同时,意味着wmajorises w′,换句话说,w′比w更均衡,也即小球的权重更加均衡。
很明显,均匀的权重向量被其他所有权重向量所majorise。因此,可以得出,当小球的权重均等时,能够获得箱子的期望最小载荷。类似的,对于子森林拆分问题来说,划分均匀的子森林(例如,相同的决策树数量)能够最小化节点期望最大负载,从而最小化每个级联层的期望训练完成时间。
因此,根据上述定理,本发明设计的算法将森林拆分成均匀大小的子森林。令g表示拆分粒度,代表每个子森林的决策树数量。假设拆分粒度g为250,一个500棵树组成的森林将被分成2个子森林,每个子森林包含250棵树。
在子森林拆分之后,需要合并每个子森林产生的中间结果。对于具有t棵树的子森林,每个样本的输出是其中ci是由子森林中的第i棵树产生的类向量。如果原始森林含有T棵树并且被分成K个子森林。合并之后,最终的类向量如下:
一种容易想到的合并策略是计算工作节点(Worker)直接将结果发送给主节点(Master),然后主节点合并所有中间结果。这种策略的优点是简单,不容易出错。但是,当中间结果的数量变大时,主节点可能成为性能瓶颈。
为了解决潜在的瓶颈问题,本发明采用分层树形规约合并法。在此方法中,中间结果以分层聚合的形式,自下而上进行从叶子节点到根节点的树型聚合。具体来说,本发明将合并操作也封装为一个可远程执行的计算任务。子森林的结果首先发送给底层工作节点(Bottom Workers)。本地合并结果进一步发送给上层工作节点(Upper Workers)。最后,由主节点对所有合并后的完整森林的结果进行合并。
综合上述的算法,本发明提供了一种基于任务并行的细粒度分布式深度森林训练方法,包括以下步骤:
(a)在深度森林的每一层,其中每一个森林被拆分成多个均匀的子森林,其中每个子森林对应一个计算任务;
(b)为子森林设置合适的随机状态,为子森林训练时的交叉验证设置合适的随机状态;
(c)将子森林训练任务发放到各个计算节点执行;
(d)采用Tree-Reduce分层树形合并法将属于同一个随机森林的子森林的结果合并,得到该原始随机森林的训练结果,完成多个森林的并行训练。
进一步地,在步骤(a)中子森林拆分方法产生的级联层输出类向量与非拆分的方法产生的级联层输出类向量一致。
进一步地,在步骤(a)中将子森林训练任务随机和独立地发送到集群中的各个计算节点执行。
进一步地,在步骤(d)中还包括以下步骤:
(d1)子森林的结果首先发送给底层工作节点;
(d2)本地合并结果后进一步发送给上层工作节点;
(d3)最后,由主节点对所有合并后的完整森林的结果进行合并。
以上结合附图对本发明的实施方式作了详细说明,但本发明不限于所描述的实施方式。对于本领域的技术人员而言,在不脱离本发明原理和精神的情况下,对这些实施方式进行多种变化、修改、替换和变型,仍落入本发明的保护范围内。
Claims (4)
1.一种基于任务并行的细粒度分布式深度森林训练方法,其特征在于,包括以下步骤:
(a)在深度森林的每一层,其中每一个森林被拆分成多个均匀的子森林,其中每个子森林对应一个计算任务;
(b)为子森林设置合适的随机状态,为子森林训练时的交叉验证设置合适的随机状态;
(c)将子森林训练任务发放到各个计算节点执行;
(d)采用基于树形规约树的分层树形合并法将属于同一个随机森林的子森林的结果合并,得到该原始随机森林的训练结果,完成多个森林的并行训练。
2.根据权利要求1所述的基于任务并行的细粒度分布式深度森林训练方法,其特征在于,在步骤(a)中子森林拆分方法产生的级联层输出类向量与非拆分的方法产生的级联层输出类向量一致。
3.根据权利要求1所述的基于任务并行的细粒度分布式深度森林训练方法,其特征在于,在步骤(a)中将子森林训练任务随机和独立地发送到集群中的各个计算节点执行。
4.根据权利要求1所述的基于任务并行的细粒度分布式深度森林训练方法,其特征在于,在步骤(d)中还包括以下步骤:
(d1)子森林的结果首先发送给底层工作节点;
(d2)本地合并结果后进一步发送给上层工作节点;
(d3)最后,由主节点对所有合并后的完整森林的结果进行合并。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010193428.8A CN111414961A (zh) | 2020-03-18 | 2020-03-18 | 一种基于任务并行的细粒度分布式深度森林训练方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010193428.8A CN111414961A (zh) | 2020-03-18 | 2020-03-18 | 一种基于任务并行的细粒度分布式深度森林训练方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111414961A true CN111414961A (zh) | 2020-07-14 |
Family
ID=71493088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010193428.8A Pending CN111414961A (zh) | 2020-03-18 | 2020-03-18 | 一种基于任务并行的细粒度分布式深度森林训练方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111414961A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632532A (zh) * | 2020-12-28 | 2021-04-09 | 重庆邮电大学 | 边缘计算中基于深度森林的用户异常行为检测方法 |
CN112966438A (zh) * | 2021-03-05 | 2021-06-15 | 北京金山云网络技术有限公司 | 机器学习算法选择方法、分布式计算系统 |
CN113688891A (zh) * | 2021-08-17 | 2021-11-23 | 华东师范大学 | 一种可自适应划分子森林的分布式级联森林方法 |
-
2020
- 2020-03-18 CN CN202010193428.8A patent/CN111414961A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632532A (zh) * | 2020-12-28 | 2021-04-09 | 重庆邮电大学 | 边缘计算中基于深度森林的用户异常行为检测方法 |
CN112966438A (zh) * | 2021-03-05 | 2021-06-15 | 北京金山云网络技术有限公司 | 机器学习算法选择方法、分布式计算系统 |
CN113688891A (zh) * | 2021-08-17 | 2021-11-23 | 华东师范大学 | 一种可自适应划分子森林的分布式级联森林方法 |
CN113688891B (zh) * | 2021-08-17 | 2023-09-29 | 华东师范大学 | 一种可自适应划分子森林的分布式级联森林方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112398899B (zh) | 一种面向边缘云系统的软件微服务组合优化方法 | |
Guo et al. | Cloud resource scheduling with deep reinforcement learning and imitation learning | |
CN107239335B (zh) | 分布式系统的作业调度系统及方法 | |
CN104951425B (zh) | 一种基于深度学习的云服务性能自适应动作类型选择方法 | |
CN111414961A (zh) | 一种基于任务并行的细粒度分布式深度森林训练方法 | |
CN107404523A (zh) | 云平台自适应资源调度系统和方法 | |
CN113010302A (zh) | 量子-经典混合架构下多任务调度方法、系统及量子计算机系统架构 | |
CN107016077B (zh) | 一种面向Web服务组合的优化方法 | |
CN108805193B (zh) | 一种基于混合策略的电力缺失数据填充方法 | |
CN107908536B (zh) | Cpu-gpu异构环境中对gpu应用的性能评估方法及系统 | |
Gu et al. | A parallel computing platform for training large scale neural networks | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
CN113255873A (zh) | 一种聚类天牛群优化方法、系统、计算机设备和存储介质 | |
CN111984403A (zh) | 一种分布式系统下软件构件的分配部署方法及系统 | |
Gong et al. | Evolutionary computation in China: A literature survey | |
CN114546609A (zh) | 一种面向异构集群的dnn推理任务批调度方法 | |
Mansour et al. | Allocating data to multicomputer nodes by physical optimization algorithms for loosely synchronous computations | |
CN110058942B (zh) | 基于层次分析法的资源分配系统及方法 | |
CN108182243A (zh) | 一种基于Spark的分布式进化算法岛模型并行化方法 | |
CN109919219B (zh) | 一种基于粒计算ML-kNN的Xgboost多视角画像构建方法 | |
CN116523640A (zh) | 一种基于调度反馈算法的金融信息管理系统 | |
CN105872109A (zh) | 云平台负载运行方法 | |
CN116050235A (zh) | 一种云边环境下工作流数据布局的方法及存储介质 | |
CN110415162B (zh) | 大数据中面向异构融合处理器的自适应图划分方法 | |
Abubaker et al. | Minimizing staleness and communication overhead in distributed SGD for collaborative filtering |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200714 |