一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

集成学习模型的训练方法、装置、系统和相关设备与流程

2022-07-30 13:17:58 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种集成学习模型的训练方法、装置、系统、设备和计算机可读存储介质。


背景技术:

2.集成学习模型,可以用于机器学习领域的分类、回归等问题的处理过程,目的是为了获得更优的分类准确性和预测表现。集成学习模型在安平、运营商、金融等行业以及各种生产系统中都有广泛应用。
3.目前,为了达到模型训练的性能和精度要求,集成学习模型通常是由包括多个服务器的集群上完成训练,具体是由每个服务器利用一组训练样本对集成学习模型进行训练,由于每个服务器通过模型训练仅能得到集成学习模型的部分训练结果,因此不同服务器之间还会交互各自训练获得的部分训练结果,从而基于汇总得到的训练结果确定训练后的集成学习模型。但是,当训练样本的数据规模较大时,不同服务器之间需要交互的部分训练结果的数据量也较大,这使得集成学习模型的训练效率因为服务器之间交互的数据量过大而较低,甚至可能会因为训练超时或服务器之间带宽过载而导致集成学习模型训练失败,难以满足用户的应用需求。因此,如何提供一种高效的集成学习模型的训练方法成为亟待解决的技术问题。


技术实现要素:

4.本技术提供了一种集成学习模型的训练方法、装置、设备、系统、计算机可读存储介质及计算机程序产品,用以提高集成学习模型的训练效率以及训练成功率。
5.第一方面,提供一种集成学习模型的训练方法,该方法可以应用于包括控制节点以及工作节点的模型训练系统中。在训练集成学习模型时,控制节点获取集成学习模型的训练请求,并根据该训练请求生成训练任务集合,其中,所生成的训练任务集合包括多个训练任务,并且该多个训练任务中的;然后,控制节点向工作节点集合中的多个工作节点分别发送该训练任务集合中的训练任务,每个训练任务可以被分配到一个工作节点,并且由一个工作节点执行,每个训练任务用于训练集成学习模型中的至少一个子学习模型,而不同训练任务用于训练不同的子学习模型。当然,一个工作节点可以仅分配到一个子学习模型的训练任务,也可以是被分配到多个子学习模型的训练任务。
6.由于集成学习模型中的每个子学习模型均利用一个工作节点进行训练,这样,每个子学习模型的训练结果可以全部由一个工作节点处理,从而工作节点在完成对于子学习模型的训练后,可以不用从其它工作节点获取针对于该子学习模型的训练结果。如此,可以有效减少训练子学习模型过程中各个工作节点之间所需通信的数据量,从而不仅能够减少训练集成学习模型中所需的资源消耗,而且,也能够有效提高对于集成学习模型的训练效率以及成功率。
7.在一种可能的实施方式中,训练请求包括训练该集成学模型的指示以及该集成学
习模型中子学习模型的数量,而控制节点在该接收到该训练请求后,可以基于该训练请求中的指示,触发集成学习模型的训练,并根据该训练请求中所包括的子学习模型的数量,生成同等数量的训练任务,以用于子学习模型的训练。当然,在其它可能的实施方式中,集成学习模型中的子学习模型的数量可以固定,此时,训练请求可以仅包括针对集成学习模型的训练指示,而控制节点可以基于该训练指示生成固定数量的子学习模型,以完成对于集成学习模型的训练。
8.在另一种可能的实施方式中,控制节点根据该训练请求生成训练任务集合时,具体可以是根据该训练请求中包括的子学习模型的数量生成训练任务集合,并且该训练任务集合包括的训练任务数量与子学习模型的数量相等,如每个训练任务可以用于训练一个子学习模型等。当然,在其它可能的实施方式中,也可以是多个训练任务用于训练一个子学习模型等,本实施例对此并不进行限定。
9.在另一种可能的实施方式中,控制节点在向工作节点集合中的多个工作节点分别发送训练任务集合中的训练任务时,具体可以是获取该工作节点集合中各个工作节点的负载,并根据各个工作节点的负载,向第一部分工作节点中的每个工作过节点发送一个训练任务,其中,该工作节点集合除了包括第一部分工作节点之外,还包括第二部分工作节点,而接收到训练任务的第一部分工作节点中的每个工作节点的负载均小于第二部分工作节点中每个工作节点的负载。例如,控制节点可以对工作集合中的各个工作节点的负载进行排序,并将训练任务依次分配给负载较小的前n个工作节点,而负载较大的后m个工作节点可以不被分配到训练节点(工作集合中包括m n个工作节点)。如此,在训练集成学习模型的过程中可以避免部分工作节点负载过高而导致整个集成学习模型的训练效率被拉低甚至训练过程失败。当然,实际应用时,也可以是采用其它可能的实施方式为工作节点分配训练任务等,本技术实施例对此并不进行限定。
10.在另一种可能的实施方式中,集成学习模型中的子学习模型具体可以是决策树模型。当然,实际应用中,该子学习模型也可以是其它类型的模型,本技术实施例对此并不进行限定。
11.在另一种可能的实施方式中,当子学习模型具体为决策树模型时,子学习模型的训练终止条件包括如下条件中的至少一种:子学习模型的叶子节点对应的训练样本数量均小于数量阈值,或者用于训练子学习模型的训练样本集的不纯度指标小于不纯度阈值,或者子学习模型中节点的深度大于等于深度阈值。当集成学习模型中的每个子学习模型均满足上述条件中的至少一种时,控制节点可以结束对于集成学习模型的训练。
12.第二方面,本技术还提供了一种集成学习模型的训练装置,所述集成学习模型的训练装置包括用于执行第一方面或第一方面任一种可能实现方式中的集成学习模型的训练方法的各个模块。
13.第三方面,本技术还提供了一种设备,包括:处理器和存储器;该存储器用于存储指令,当该设备运行时,该处理器执行该存储器存储的该指令,以使该设备执行上述第一方面或第一方面的任一实现方法中集成学习模型的训练方法。需要说明的是,该存储器可以集成于处理器中,也可以是独立于处理器之外。业务需求调整系统还可以包括总线。其中,处理器通过总线连接存储器。其中,存储器可以包括可读存储器以及随机存取存储器。
14.第四方面,本技术还提供了一种模型训练系统,该模型训练系统包括控制节点以
及工作节点,该控制节点用于执行上述第一方面或第一方面的任一实现方式中集成学习模型的训练方法,该工作节点用于执行控制节点发送的训练任务。
15.第五方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面中任意一种实施方式所述的方法。
16.第六方面,本技术提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面中任意一种实施方式所述的方法。
17.本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
18.图1为本技术实施例提供的一示例性模型训练系统的架构示意图;
19.图2为本技术实施例提供的一示例性应用场景示意图;
20.图3为本技术实施例提供的一种集成学习模型的训练方法的流程示意图;
21.图4为本技术实施例提供的一示例性配置界面的示意图;
22.图5为各工作节点利用训练样本集训练各个子学习模型的示意图;
23.图6为本技术实施例提供的一种集成学习模型的训练装置的结构示意图;
24.图7为本技术实施例提供的一种设备的硬件结构示意图。
具体实施方式
25.下面将结合本技术实施例中的附图,对本技术中的技术方案进行描述。
26.如图1所示,为本技术实施例提供的一种模型训练系统,该模型训练系统包括控制节点(driver)100以及多个工作节点(worker)。其中,控制节点100与工作节点之间协同完成集成学习模型的训练,控制节点100用于生成集成学习模型的训练任务,并将上述训练任务发送给工作节点;工作节点用于执行其接收到的训练任务,得到集成学习模型中的子学习模型。值得注意的是,图1中是以模型训练系统包括10个工作节点为例进行示例性说明,分别为工作节点201至工作节点210,实际应用时也可以是包括任意数量(大于1个)的工作节点,同时,控制节点100的数量也可以不局限为一个。控制节点100与每个工作节点之间可以通过中间设备(如交换机等,图1中未示出)进行交互。
27.示例地,在企业应用场景中,为了达成模型训练的性能和精度要求,图1所示的模型训练系统可以部署于包括多个服务器的集群中,而模型训练系统中的控制节点100、以及工作节点201至工作节点210可以分别由集群中的服务器部署,并且根据服务器执行的功能将集群中的服务器划分为控制节点与工作节点。例如,服务器1至服务器n组成一个集群,在该集群中可以部署数据库(例如,hadoop)、或计算引擎(例如,spark)等大数据平台,而用于训练集成学习模型的模型训练系统可以基于上述大数据平台进行部署,用于实现集成学习模型的训练与推理。具体的,模型训练系统可以在大数据平台上训练得到一个集成学习模型,该集成学习模型可以包括多个子学习模型;然后,再利用集成学习模型在对已知输入数据进行推理,具体可以是将该已知输入数据分别输入至多个子学习模型中,每个子学习模型分别对该已知输入数据进行推理并输出相应的推理结果,最后再通过投票的方式从多个
子学习模型的推理结果中确定集成学习模型的推理结果,例如,可以是将多个子学习模型的推理结果中投票最多的推理结果作为集成学习模型的推理结果等。
28.具体实施时,集成学习模型可以是基于随机森林的集成学习模型,如spark ml、spark mllib等;集成学习模型也可以是其它类型的集成学习模型,本技术对此并不进行限定。并且,图2所示的部署模型训练系统的应用场景仅作为一种示例性说明,实际应用时该模型训练系统也可以是部署于其它可能的场景中,比如,图1中的控制节点100以及各个工作节点也可以是部署于一个服务器上,此时,控制节点100以及各个工作节点,具体可以是该服务器上的不同计算单元,并且通过功能将其划分为控制节点以及工作节点等。本实施例中,对于模型训练系统所适用的应用场景并不进行限定。
29.为提高集成学习模型的训练效率,模型训练系统在训练集成学习模型的过程中,每个子学习模型可以利用一个工作节点进行训练,这样,每个子学习模型的训练结果可以全部位于一个工作节点,从而工作节点在完成对于子学习模型的训练后,可以不用从其它工作节点获取针对于该子学习模型的训练结果。如此,可以有效减少训练子学习模型过程中各个工作节点之间所需通信的数据量,从而不仅能够减少训练集成学习模型中所需的资源消耗(主要可以是通信资源的消耗),而且,也能够有效提高对于集成学习模型的训练效率以及成功率。此外,当集成学习训练模型需要经过多轮训练过程时,在每轮训练集成学习模型的过程中,也可以按照上述方法,每个子学习模型利用一个工作节点进行训练,有效减少训练子学习模型过程中各个工作节点之间所需通信的数据量。
30.其中,模型训练系统在训练集成学习模型时,可以针对于每个子学习模型生成一个训练任务,例如,模型训练系统接收到针对集成训练模型的训练请求时,可以从该训练请求中解析出集成学习模型所包括的子学习模型的数量,并生成同等数量的训练任务,模型训练系统可以将每个训练任务分配给一个工作节点进行执行。可选地,模型训练系统也可以将多个子学习模型分配给一个工作节点执行。
31.在一种分配训练任务的示例中,模型训练系统可以是根据工作节点的负载,将训练任务分配给相应的工作节点。例如,模型训练系统(具体可以是该模型训练系统中的控制节点100)获取各个工作节点的负载,并对各个工作节点的负载进行排序;然后,模型训练系统可以训练任务优先分配给负载较小的工作节点,而负载较大的工作节点可以不分配训练任务,如此,可以在模型训练系统中实现负载的均衡化。当然,在其它可能的示例中,模型训练系统也可以直接按照工作节点的编号顺序,依次下发训练任务等,本实施例中,对于每个训练任务被下发至哪个工作节点中进行执行的具体实现方式并不进行限定。
32.示例性地,集成学习模型中的子学习模型可以是决策树模型。其中,决策树模型是指包括决策点、策略点(事件点)及结果构成的树形图,可以应用于序列决策中。实际应用时,可以基于最大收益期望值或最低期望成本等作为决策准则,并通过图解方式求解在不同条件下各类方案的决策结果,进而通过比较各类方案的决策结果,给出最终的决策结果。当然,该子学习模型也可以是其它具有树形结构的模型等,本实施例对此并不进行限定。
33.下面,结合图3进一步介绍本技术提供的集成学习模型的训练方法,图3为本技术实施例提供的一种集成学习模型的训练方法的流程示意图,为便于理解,下面在描述集成学习模型的训练过程中结合子学习模型具体为决策树模型为例,该方法可以应用于上述图1所示的模型训练系统,或者其它可适用的模型训练系统中。该方法具体可以包括:
34.s301:控制节点100获取集成学习模型的训练请求。
35.本实施例中,模型训练系统可以是在接收到针对集成学习模型的训练请求时,触发集成学习模型的训练过程。作为一种示例,模型训练系统可以与用户终端存在通信连接,而用户可以在该用户终端上执行训练集成学习模型的触发操作,并由用户终端基于该操作生成相应的集成学习模型的训练请求,再将其发送给模型训练系统,以使得模型训练系统中的控制节点100获取到该训练请求并触发执行后续的模型训练过程。
36.s302:控制节点100根据接收到的训练请求生成训练任务集合,其中,该训练任务集合包括多个训练任务,并且该多个训练任务中每个训练任务由一个工作节点执行,每个训练任务用于训练集成学习模型中的至少一个子学习模型,并且,不同训练任务用于训练不同的子学习模型。
37.模型训练系统中的控制节点100在接收到训练请求后,可以获取用于训练集成学习模型中的多个子学习模型的训练样本,其中,样本的数量通常为多个;并且,控制节点100可以进一步根据该训练样本生成多个训练样本集,不同训练样本集所包括的样本可以存在差异。
38.在一种示例中,控制节点100在获取训练样本(例如可以是由用户提供给控制节点100等)后,可以通过有放回抽样的方式对训练样本进行抽样,得到的p个训练样本集。当然,控制节点100也可以是通过其它方式生成多个训练样本集,本实施例对此并不进行限定。
39.其中,控制节点100抽样得到的训练样本集的数量(p)可以由用户进行确定。比如,控制节点可以向用户呈现如图4所示的配置界面,以便用户在该配置界面上配置模型训练的并行参数为p,即同时执行p个模型训练过程,则控制节点100可以基于用户的配置生成p个训练样本集,每个训练样本集可以支持一个子学习模型的训练,如图4所示。实际应用时,执行训练过程的节点具体可以是工作节点,因此,控制节点100可以将生成的多个训练样本集分别下发至不同的工作节点,比如,每个训练样本集可以被分发至一个工作节点等。
40.同时,控制节点100还可以基于接收到的训练请求生成训练任务集合,该训练任务中包括多个训练任务,每个训练任务可以用于指示工作节点基于接收到的训练样本集执行一个子学习模型的训练过程。作为一种示例,控制节点100所接收到的训练请求中,具体可以包括训练集成训练模型的指示以及该集成学习模型中包括的子学习模型的数量,从而使得控制节点100在接收到该训练请求后,可以基于该训练请求中的指示,启动集成学习模型的训练过程,并根据子学习模型的数量,生成同等数量的训练任务,每个训练任务用于指示工作节点完成一个子学习模型的训练过程,并且不同训练任务所指示训练的子学习模型不同。
41.s303:控制节点100向工作节点集合中多个工作节点分别发送该训练任务集合中训练任务。
42.控制节点100在生成训练任务集合后,可以将该训练任务集合中的训练任务下发给各个工作节点,并且每个训练任务可以被下发给一个工作节点进行执行,训练任务对应的子学习模型的训练结果可以全部由一个工作节点执行。实际应用中,控制节点100可以是基于各个工作节点的负载选择执行训练任务的工作节点。例如,对于模型训练系统中的工作节点集合,控制节点100可以根据该工作节点集合中各个工作节点的负载排序,确定工作节点集合中的第一部分工作节点以及第二部分工作节点,其中,该第一部分工作节点中每
个工作节点的负载,均小于或等于第二部分工作节点中每个工作节点的负载;然后,控制节点100可以将训练任务逐个下发给该第一部分工作节点中的各个工作节点,而针对于负载较高的第二部分工作节点,控制节点100可以不为其分配训练任务,如此,可以尽可能避免模型训练系统中出现部分工作节点的负载过高而影响模型训练效率以及成功率,实现工作节点的负载均衡化。当然,在其它可能的示例中,模型训练系统也可以是随机选择执行训练任务的工作节点、或者按照工作节点的编号等顺序依次下发训练任务等,本实施例中,对于每个训练任务被下发至哪个工作节点中进行执行的具体实现方式并不进行限定。
43.实际应用的一些场景中,每个工作节点中可以包括多个执行器,该执行器例可以是工作节点中的逻辑执行单元,执行器用于执行工作节点所需执行的训练任务。基于此,在一种可能的实施方式中,每个训练任务中可以包括多个子任务(task),每个子任务可以用于指示工作节点执行一个子学习模型的部分模型训练过程,从而控制节点100在将训练任务下发至工作节点后,该工作节点上的多个执行器可以用于执行该训练任务中的不同子任务。如此,通过多个执行器并行执行多个不同子任务,可以提高工作节点训练单个子学习模型的效率。
44.作为一种示例,当子学习模型具体为决策树模型时,如图5所示,工作节点上的每个执行器,可以分别利用训练样本集1中的部分样本,对决策树模型1的树节点进行训练,每个执行器在训练该树节点时所采用的分块样本并不相同。这样,在一个工作节点上,可以得到基于每个分块样本对决策树模型1的树节点的训练结果,也即得到利用训练样本集1对决策树模型1的完整训练结果。
45.其中,训练任务的数量,可以与训练样本集的数量相同,从而多个工作节点在训练子学习模型过程中,每个工作节点可以利用接收到的训练样本集、并根据单个训练任务所包括的任务执行相应的模型训练过程;而每个训练任务中的子任务数量,可以是根据对训练样本集中的训练样本进行分块的数量进行确定,比如,当训练样本集中的训练样本被划分为数量相等的5部分时,控制节点100可以根据该5部分训练样本生成5个子任务,每个子任务对应于其中一个分块样本,不同子任务所对应的分块样本不同,并且生成的5个子任务可以构成一个训练任务,如此,控制节点100基于不同训练样本集可以生成不同的训练任务。其中,针对于每个训练样本集的分块数量,可以是由用户在图4所示的配置界面上进行配置,当然,也可以是由技术人员预先设定的默认值等,本实施例对此并不进行限定。
46.示例性的,训练任务的数量与工作节点的数量可以相同,也可以是不同。例如,当训练任务的数量与工作节点相同时,每个工作节点可以执行一个训练任务中的所有任务。而当训练任务的数量与工作节点不同时,一个工作节点可以执行多个训练任务中的所有子任务,即一个工作节点可以完成多个子学习模型的训练。
47.值得注意的是,模型训练系统在训练集成学习模型时,通常会执行多轮的迭代训练过程。并且每一轮的模型训练过程中,控制节点100都可以重新生成多个训练任务并将其下发至工作节点进行执行。在多轮迭代训练过程中,用于训练每个子学习模型的训练样本集可以不变,而每轮训练一个子学习模型的训练任务中所包括的子任务的内容可以与上一轮训练该子学习模型的训练任务中所包括的子任务存在差异。例如,当子学习模型具体为决策树模型时,上一轮训练中的子任务用于对决策树模型中的树节点1进行训练,而当轮训练中的子任务用于对该决策树模型中的树节点2和树节点3进行训练等。其中,当轮训练是
指,在对集成学习模型进行训练的过程中,模型训练系统正在对集成学习模型执行训练的轮次,比如,当模型训练系统正在对集成学习模型进行第二轮模型训练时,该第二轮模型训练,即为当轮训练。
48.在每轮的模型训练过程中,若所要生成的训练任务的数量固定(例如可以是根据工作节点的数量进行确定),则控制节点100可以首先为每个训练任务分配一个子学习模型,即每个训练任务中的子任务用于训练一个子学习模型。当子学习模型的数量大于训练任务的数量时,控制节点100在为每个训练任务分配一个子学习模型后,继续从剩余的子学习模型中为每个训练任务再分配一个子学习模型,此时,一个训练任务中的子任务可以用于训练多个子学习模型。
49.在一种示例中,当子学习模型具体为决策树模型时,训练任务中的子任务,具体可以是用于确定决策树模型中树节点(tree node)的最佳分割点。其中,确定最佳分割点,是指在在决策树模型中确定适合进行样本分割的树节点,并且该树节点分割后所得到的两个子节点中包含的训练样本在某个属性上分别属于不同范围。
50.在首轮训练决策树模型时,控制节点100可以创建待训练的树节点列表(tree node list),并且将该列表中的树节点初始化为各个决策树模型的根节点,即当决策树模型的数量为x时,该树节点列表中的包括x个根节点。
51.由于决策树模型会经过多轮迭代训练,并且每轮训练决策树模型的任务,都是对决策树模型中的树节点进行分裂,因此,控制节点100在每轮的模型训练过程中,可以从待训练的树节点列表中选择树节点加入至当轮训练树节点列表(cur-tree node list)。其中,控制节点100具体可以是按照树节点的索引编号顺序将待训练的树节点列表中的树节点逐个添加至当轮训练树节点列表中。可选地,在经过多轮训练后,决策树模型中可能会分裂出较多的节点,为避免添加至当轮训练树节点列表中的节点数量过多而导致工作节点分裂节点的负载过大。在一种可能的实施方式中,控制节点100可以限制向当轮训练节点列表中添加的节点数量不超过节点数量阈值,也即限制当轮训练节点列表中的长度,而待训练的树节点列表中未参加当轮训练的节点,可以参与下一轮的模型训练,从而在待训练的树节点列表中节点数量过多时,控制节点100可以控制对其进行分批次训练。
52.然后,控制节点100可以生成子任务与待训练的树节点的映射关系,并将其广播至各个工作节点。并且,控制节点100可以进一步将生成的训练任务中的子任务下发至工作节点,如通过轮询(round-robin)机制下发子任务至每个工作节点等。
53.工作节点可以根据接收到的训练任务,利用该训练任务所对应的训练样本集执行相应的模型训练任务。具体实现时,每个工作节点上的执行器可以根据控制节点100广播的子任务与待训练的树节点的映射关系,以及控制节点100下发的子任务,确定所要进行训练的树节点,并利用该子任务所对应的训练样本对该树节点进行训练,具体可以是先确定用于分裂该树节点的样本属性,如年龄等,再确定该子任务对应的分块样本中针对该样本属性的样本分布,即确定该分块样本中哪些训练样本归为一类,如年龄属性的属性值大于23训练样本的归为一类,哪些训练样本归为另一类,如年龄属性的属性值小于23的训练样本归为另一类。其中,该样本属性可以通过预设的随机算法进行选择,或者通过其它方式进行选择等。如此,工作节点上的多个执行器分别完成模型训练后,工作节点可以获取整个训练样本集中的所有训练样本针对于该树节点的训练结果,该训练结果例如可以是训练样本针
对于该树节点的分布直方图等。
54.其中,当训练任务中的所有子任务均是由一个工作节点上的执行器完成时,该工作节点可以直接获得当轮训练针对于树节点的训练结果,而无需从其它工作节点获得,使得不同工作节点之间可以无需交互各自对于决策树模型的训练结果。如此,可以有效减少集成学习模型的训练过程中工作节点之间通信的数据量。
55.工作节点在获得当轮训练过程中针对于树节点的完整训练结果后,可以计算出对该树节点的最佳分割点,该最佳分割点用于对该树节点所包含的训练样本进行分裂(对于根节点而言,根节点对应的训练样本即为整个训练样本集中的所有训练样本)。具体实现时,该完整训练结果可以指示各个训练样本针对于预先确定的样本属性的样本值(也即属性值),而工作节点可以根据各个训练样本针对于该样本属性的样本值,确定所有样本值中能够达到最大信息增益的样本值,从而以确定出的样本值为分界,将训练样本划分为两部分,而达到最大信息增益的样本值即为最佳分割点。
56.作为一种确定最佳分割点的示例,工作节点根据获得的完整训练结果,可以确定出训练样本集中所有训练样本具有的上述属性特征对应的样本值,并从该样本值中通过遍历计算的方式确定出作为最佳分割点的样本值。具体的,假设最佳分割点为变量s,该s的取值为上述所有样本值中的任意一个值。根据该变量s的取值,将大小为n的训练样本集d划分为两个集合,分别为左训练样本集d
left
以及右训练样本集d
right
,例如将训练样本集中样本值小于该变量s的训练样本划入左训练样本集,而将训练样本集中样本值大于或等于该变量s的训练样本划入右训练样本集等。然后,工作节点可以计算变量s的取值所具有的信息增益ig(d,s),其中,该信息增益ig例如可以通过如下公式(1)、(2)计算得到:
[0057][0058][0059]
其中,impurity是指训练样本集中包含杂质的指标,也可以称之为“不纯度指标”,k为训练样本集中样本类别数量,pi为训练样本集中第i个样本类别的概率。值得注意的是,公式(2)中的impurity是以基尼为例,实际应用时,该impurity还可以熵、方差等,本实施例对此并不进行限定。
[0060]
通过上述公式(1)以及公式(2),工作节点可以遍历计算出变量s的每个取值分别对应的信息增益,从而可以将最大信息增益对应的s取值作为最佳分割点。
[0061]
工作节点将计算出的最佳分割点作为当轮训练的最终训练结果反馈给控制节点100,从而控制节点100可以从多个工作节点上获取多个决策树模型的当轮训练结果,也即首轮训练过程中针对于每个决策树模型的根节点的最佳分割点。
[0062]
针对于每个决策树模型,控制节点100可以根据该决策树模型对应的最佳分割点,计算出分裂节点,如将根节点分裂为左节点以及右节点,其中,左节点对应的训练样本可以是上述左训练样本集d
left
中的训练样本,而右节点对应的训练样本可以是上述右训练样本集d
right
中的训练样本。如此,基于上述过程,可以完成针对于每个决策树模型的一轮训练过程。
[0063]
然后,控制节点100可以判断经过当轮训练后所得到的决策树模型是否满足训练终止条件,若满足,则集成学习模型中的多个决策树模型即为当轮训练得到的决策树模型,
而若不满足,则控制节点100可以继续执行对决策树模型的下一轮训练。
[0064]
在一些示例中,训练终止条件包括以下方式中至少一种:
[0065]
方式1,决策树模型的叶子节点对应的训练样本数量均小于数量阈值。
[0066]
方式2,用于训练子学习模型的训练样本集的不纯度指标小于不纯度阈值。
[0067]
方式3,子学习模型中节点的深度大于等于深度阈值。
[0068]
当集成学习模型中的每个决策树模型,均满足上述训练终止条件中的任意一种或多种时,控制节点100可以停止模型训练过程,即完成对于集成学习模型的训练。当然,上述训练终止条件仅作为一种示例,实际应用时,该训练终止条件也可以是采用其它方式进行实现。
[0069]
当确定当轮训练得到的各个决策树模型不满足训练终止条件时,控制节点100可以继续执行下一轮针对于各个决策树模型的训练过程。
[0070]
具体的,控制节点100可以清空待训练的树节点列表以及当轮训练树节点列表中已经完成分裂的树节点,并将上一轮对于各个决策树模型的分裂节点添加至该树节点列表中。然后,控制节点100再将当前待训练的树节点列表中的树节点添加至当轮训练树节点列表,并基于上述类似过程,利用工作节点对当轮训练树节点列表中的树节点再次进行分裂,如此,通过多次迭代训练集成学习模型的各个决策树模型,直至各个决策树模型均满足训练终止条件时完成集成学习模型的训练。
[0071]
本实施例中,由于在训练集成学习模型时,该集成学习模型中的每个子学习模型均利用一个工作节点进行训练,这样,每个子学习模型的训练结果可以全部位于一个工作节点,从而工作节点在完成对于子学习模型的训练后,可以不用从其它工作节点获取针对于该子学习模型的训练结果。如此,可以有效减少训练子学习模型过程中各个工作节点之间所需通信的数据量,从而不仅能够减少训练集成学习模型中所需的资源消耗,而且,也能够有效提高对于集成学习模型的训练效率以及成功率。
[0072]
值得注意的是,上述实施例中,是以控制节点与工作节点部署于包括多个服务器的集群为例进行示例性说明,在其它可能的实施例中,上述针对于集成学习模型的训练过程,也可以是由云数据中心提供的云服务实现。
[0073]
具体的,用户可以通过相应的终端设备向云数据中心发送针对集成学习模型的训练请求,以请求云数据中心训练出该集成学习模型并反馈给用户。云数据中心在接收到该训练请求后,可以调用相应的计算资源完成集成学习模型的训练,具体可以是调用部分计算资源(如支持该云服务的一台服务器等)实现上述控制节点100所实现的功能,以及调用另一部分计算资源(如支持该云服务的多台服务器等)实现上述多个工作节点的功能。其中,云数据中心基于调用的计算资源完成集成学习模型的训练过程,可以参见上述实施例中的相关之处描述,在此不做赘述。云数据中心在完成对于集成学习模型的训练后,可以将训练得到的集成学习模型发送给用户侧的终端设备,以使得用户能够获得其所需的集成学习模型。
[0074]
值得注意的是,上述实施例仅作为对于本技术技术方案的示例性说明,本领域的技术人员根据以上描述的内容,能够想到的其他合理的步骤组合,也属于本技术的保护范围内。其次,本领域技术人员也应该熟悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本技术所必须的。
[0075]
上文中结合图1至图5,详细描述了本技术所提供的集成学习模型的训练方法,下面将结合图6至图7,描述根据本技术所提供的集成学习模型的训练装置和用于训练集成学习模型的设备。
[0076]
图6为本技术提供的一种集成学习模型的训练装置的结构示意图,该集成学习模型的训练装置600可以应用于模型训练系统中的控制节点,并且,该模型训练系统还包括工作节点。其中,该装置600包括:
[0077]
获取模块601,用于获取集成学习模型的训练请求;
[0078]
生成模块602,用于根据所述训练请求生成训练任务集合,所述训练任务集合包括多个训练任务,所述多个训练任务中每个训练任务由一个工作节点执行,每个所述训练任务用于训练所述集成学习模型中的至少一个子学习模型,不同训练任务用于训练不同的子学习模型;
[0079]
通信模块603,用于向工作节点集合中多个工作节点分别发送所述训练任务集合中训练任务。
[0080]
应理解的是,本技术实施例的装置600可以通过中央处理器(central processing unit,cpu),也可以通过专用集成电路(application-specific integrated circuit,asic)实现,或可编程逻辑器件(programmable logic device,pld)实现,上述pld可以是复杂程序逻辑器件(complex programmable logical device,cpld),现场可编程门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。也可以通过软件实现图3所示的集成学习模型的训练方法时,装置600及其各个模块也可以为软件模块。
[0081]
可选地,所述训练请求包括训练所述集成学习模型的指示以及所述集成学习模型中子学习模型的数量。
[0082]
可选地,所述生成模块602,具体用于根据所述训练请求包括的子学习模型的数量生成所述训练任务集合,所述训练任务集合包括的训练任务的数量与所述子学习模型的数量相等。
[0083]
可选地,所述通信模块603,具体包括:
[0084]
负载获取单元,用于获取所述工作节点集合中各个工作节点的负载;
[0085]
发送单元,用于根据所述各个工作节点的负载,向第一部分工作节点中的每个工作节点发送一个训练任务,所述工作节点集合包括所述第一部分工作节点以及第二部分工作节点,所述第一部分工作节点中每个工作节点的负载小于所述第二部分工作节点中每个工作节点的负载。
[0086]
可选地,所述子学习模型包括决策树模型。
[0087]
可选地,所述子学习模型的训练终止条件包括如下条件中的至少一种:
[0088]
子学习模型的叶子节点对应的训练样本数量均小于数量阈值;或者,
[0089]
用于训练子学习模型的训练样本集的不纯度指标小于不纯度阈值;或者,
[0090]
子学习模型中节点的深度大于等于深度阈值。
[0091]
由于装置600在训练集成学习模型时,该集成学习模型中的每个子学习模型均利用一个工作节点进行训练,这样,每个子学习模型的训练结果可以全部位于一个工作节点,从而工作节点在完成对于子学习模型的训练后,可以不用从其它工作节点获取针对于该子
学习模型的训练结果。如此,可以有效减少训练子学习模型过程中各个工作节点之间所需通信的数据量,从而不仅能够减少训练集成学习模型中所需的资源消耗,而且,也能够有效提高对于集成学习模型的训练效率以及成功率。
[0092]
根据本技术实施例的集成学习模型的训练装置600可对应于执行本技术实施例中描述的方法,并且集成学习模型的训练装置600的各个模块的上述和其它操作和/或功能分别为了实现图3中的各个方法的相应流程,为了简洁,在此不再赘述。
[0093]
图7为本技术提供的一种设备700的示意图。如图7所示,所述设备700包括处理器701、存储器702、通信接口703。其中,处理器701、存储器702、通信接口703通过总线704进行通信,也可以通过无线传输等其他手段实现通信。该存储器702用于存储指令,该处理器701用于执行该存储器702存储的指令。进一步的,设备700还可以包括内存单元705,还内存单元705可以通过总线704与处理器701、存储介质702以及通信接口703连接。其中,该存储器702存储程序代码,且处理器701可以调用存储器702中存储的程序代码执行以下操作:
[0094]
获取集成学习模型的训练请求;
[0095]
根据所述训练请求生成训练任务集合,所述训练任务集合包括多个训练任务,所述多个训练任务中每个训练任务由一个工作节点执行,每个所述训练任务用于训练所述集成学习模型中的至少一个子学习模型,不同训练任务用于训练不同的子学习模型;
[0096]
向工作节点集合中多个工作节点分别发送所述训练任务集合中训练任务。
[0097]
应理解,在本技术实施例中,该处理器701可以是cpu,该处理器701还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立器件组件、图形处理器(graphics processing unit,gpu)、神经网络处理单元(neural processing unit,npu)、张量处理器(tensor processing unit,tpu)、人工智能(artificial intelligent)芯片等至少一种。通用处理器可以是微处理器或者是任何常规的处理器等。
[0098]
该存储器702可以包括只读存储器和随机存取存储器,并向处理器701提供指令和数据。存储器702还可以包括非易失性随机存取存储器。例如,存储器702还可以存储设备类型的信息。
[0099]
该存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data date sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
[0100]
该通信接口703用于与设备700连接的其它设备进行通信。该总线704除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线704。
[0101]
应理解,根据本技术实施例的设备700可对应于本技术实施例中的集成学习模型的训练装置600,并可以对应于执行根据本技术实施例中图3所示方法中的控制节点100,并且设备700所实现的上述和其它操作和/或功能分别为了实现图3中的各个方法的相应流程,为了简洁,在此不再赘述。
[0102]
作为一种可能的实施例,本技术所提供的设备也可以由多个如图7所示的设备构成,多个设备之间通过网络进行通信,该设备用于实现上述图3中的各个方法的相应流程,为了简洁,在此不再赘述。
[0103]
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,ssd)
[0104]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献