《分布式决策树训练.pdf》由会员分享,可在线阅读,更多相关《分布式决策树训练.pdf(21页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN102331992A43申请公布日20120125CN102331992ACN102331992A21申请号201110162273222申请日2011060812/797,43020100609USG06F17/3020060171申请人微软公司地址美国华盛顿州72发明人J肖顿MD布迪尤AW费茨吉本M菲诺齐奥RE摩尔D罗伯逊74专利代理机构上海专利商标事务所有限公司31100代理人黄嵩泉54发明名称分布式决策树训练57摘要本发明涉及分布式决策树训练。计算机化的决策树训练系统可以包括被配置为接收用于训练决策树的训练数据输入的分布式控制处理单元。系统可以进一步包括多个数据批处理。
2、单元,其中每个数据批处理单元被配置为为训练数据的分别的数据批次评估决策树的多个分裂函数中的每一个,从而为每个分裂函数、为数据批次中的每个数据计算部分的直方图。系统可以进一步包括多个节点批处理单元,节点批处理单元被配置为为每个分裂函数聚集相关的部分直方图,以为边缘树节点的子集中的每个节点的每个分裂函数形成聚集的直方图,并且被配置为通过计算为边缘树节点产生最高的信息增益的分裂函数来为每个边缘树节点确定选定的分裂函数。30优先权数据51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书9页附图8页CN102332005A1/3页21一种计算机化的决策树训练系统10,所述系。
3、统包括被配置为接收用于训练决策树16的训练数据14的输入的分布式控制处理单元50,训练数据14包括多个数据单元18,每个数据单元18进一步包括具有相关类标签的至少一个示例数据;多个数据批处理单元54,每个数据批处理单元54被配置为从分布式控制处理单元50接收表示训练数据14中数据单元18的子集的分别的数据批次64,并且被配置为为分别的数据批次64评估决策树16的多个分裂函数中的每一个,从而为数据批次64中的每个分裂函数和每个数据计算部分直方图56;以及多个节点批处理单元58,对于分别的树节点批次66中决策树16的边缘树节点48的每个子集,每个节点批处理单元58被配置为聚集每个分裂函数的相关的部。
4、分直方图56以在子集的每个边缘树节点48处为每个分裂函数形成聚集的直方图60,所述每个节点批处理单元58被配置为通过计算为边缘树节点48产生最高信息增益的分裂函数来为分别的子集中的每个边缘树节点48确定选定的分裂函数;所述分布式控制处理单元50进一步被配置为将每个边缘树节点48重新分类为包括分别的一个选定的分裂函数的分裂节点40,以扩展决策树16以包括从分裂节点40处分支出的新的边缘树节点48,并且输出决策树16用于安装在下游计算设备24上。2如权利要求1所述的系统,其特征在于,所述分布式控制处理单元被配置为将接收到的训练数据存储在大容量存储设备中,以将训练数据划分为多个数据批次,并且以将每个。
5、数据批次分发给分别的数据批处理单元,以通过每个分别的数据批处理单元为每个数据批次计算分裂函数的部分直方图。3如权利要求1所述的系统,其特征在于,所述分布式控制处理单元被配置为为多个节点批处理单元中的每一个分配边缘树节点的分别的子集;所述多个数据批处理单元中的每一个被配置为从分别的数据批次中选择数据的子集,选定的数据子集包括由决策树分类为位于对应的边缘树节点处的每个数据;以及所述多个数据批处理单元中的每一个被配置为将选定的数据子集的部分直方图传送到与对应的边缘树节点相关的节点批处理单元,以用于节点批处理单元聚集每个分裂函数的相关的部分直方图以形成聚集的直方图。4如权利要求1所述的系统,其特征在于。
6、,所述边缘树节点批次处的每个分裂函数的聚集的直方图在分别的节点批处理单元上被计算。5如权利要求1所述的系统,其特征在于,所述每个数据单元包含至少一个图像或图像区域,每个图像或图像区域包括至少一个数据,即像素,并且评估分裂函数包括计算像素的像素特征;所述每个像素具有包括颜色、强度和深度的像素数据,深度由深度照相机确定;所述像素特征基于目标像素以及该像素邻近的其它像素的像素数据而被计算。6如权利要求5所述的系统,其特征在于,所述训练数据包括身体的图像,并且训练数据中的至少若干像素被分类为与身体模型中分别的类相关,类表示对应的身体部位;以及所述输出的决策树被配置为将目标图像的像素分类为多个类中的一个。
7、,每个类与一个边缘树节点相关,至少若干个类表示身体模型上对应的身体部位。权利要求书CN102331992ACN102332005A2/3页37如权利要求5所述的系统,其特征在于,所述输出的决策树被输出至游戏控制台以用于处理实时数据流中的图像。8一种计算机化的决策树训练方法100,所述方法包括接收用于训练决策树16的训练数据14的输入,训练数据14包括多个数据单元18,每个数据单元18进一步包括具有相关类标签的至少一个示例数据;对于数据单元18的多个数据批次64中的每一个数据批次中每个数据单元18的每个数据,评估在每个数据批次64的分别的数据批处理单元54上决策树16的多个分裂函数中的每一个,从。
8、而为数据批次64中的每个分裂函数和每个数据计算部分直方图56;在分别的节点批处理单元58处,为分别的树节点批次66中决策树16的边缘树节点48的每个子集,聚集每个分裂函数的相关的部分直方图56以在边缘树节点48处为每个分裂函数形成聚集的直方图60;通过计算产生最高信息增益的分裂函数来为每个边缘树节点48确定选定的分裂函数;将每个边缘树节点48重新分类为包括选定的分裂函数的分别的一个分裂节点的分裂节点40;扩展决策树16以包括从分裂节点40处分支出的新的边缘树节点48;以及输出决策树16用于安装在下游计算设备24上。9如权利要求8所述的方法,其特征在于,在评估分裂函数之前,所述方法还包括将训练数。
9、据划分为多个数据批次;以及将每个数据批次分发给分别的数据批处理单元,以由每个数据批处理单元计算多个分裂函数中的每一个的部分直方图。10如权利要求8所述的方法,其特征在于,在聚集之前,所述方法还包括为多个节点批处理单元中的每一个分配边缘树节点的分别的子集;在多个数据批处理单元中的每一个上,选择来自分别的数据批次的数据子集,选定的数据子集包括由决策树分类为位于对应的边缘树节点处的每个数据;以及将选定的数据子集的部分直方图从多个数据批处理单元传送至与对应的边缘树节点相关的节点批处理单元,以用于节点批处理单元聚集每个分裂函数的相关的部分直方图以形成聚集的直方图。11如权利要求8所述的方法,其特征在于,。
10、所述在边缘树节点批次处每个分裂函数的聚集的直方图在分别的节点批处理单元上被处理。12如权利要求8所述的方法,其特征在于,所述决策树依照混合广度优先/深度优先算法被扩展,所述混合广度优先/深度优先算法包括广度优先训练阶段和深度优先训练阶段。13如权利要求8所述的方法,其特征在于,所述方法还包括在分裂函数批次阶段,将决策树的分裂函数划分为多个分裂函数批次;将每个分裂函数批次分发给分别的分裂函数批处理单元;将训练数据中的所有数据单元分发给多个分裂函数批处理单元中的每一个;为训练数据中的每个数据评估在其分别的分裂函数批处理单元上每个批次的每个分权利要求书CN102331992ACN102332005A。
11、3/3页4裂函数,从而为每个分裂函数计算直方图;以及选择具有产生最大信息增益的直方图的分裂函数。14如权利要求8所述的方法,其特征在于,所述决策树依照混合广度优先/分裂函数算法被扩展,所述混合广度优先/分裂函数算法包括广度优先阶段和分裂函数阶段。15如权利要求8所述的方法,其特征在于,所述每个数据单元包含至少一个图像或图像区域,每个图像或图像区域包括至少一个数据,即像素,并且所述评估分裂函数包括计算像素的像素特征。权利要求书CN102331992ACN102332005A1/9页5分布式决策树训练技术领域0001本发明涉及计算机领域,尤其涉及计算机领域中的决策树训练。背景技术0002可以运用机。
12、器学习技术以使得计算机能够处理实验数据并且得出关于其的结论。一个示例的机器学习技术是基于示例数据训练决策树,以及应用经训练的决策树以将未知数据分类为若干类中的一个。在众多应用中,为决策树的训练使用尽可能大的数据集可以获得更准确的结果。但是,使用大数据集的决策树训练的一个缺点是这种训练可以使计算系统的处理器或存储器资源无法承受,从而造成决策树的训练是不实际或不可能的。因此,计算机科学家和软件开发者受到他们可以用来训练决策树的数据集大小和复杂度的限制,并且难以取得在这种决策树的分类能力上的改进。发明内容0003提供计算机化的决策树训练系统和方法。计算机化的决策树训练系统可以包括被配置为接收用于训练。
13、决策树的训练数据输入的分布式控制处理单元。系统可以进一步包括多个数据批处理单元,其中每个数据批处理单元被配置为为分别的训练数据的数据批次对决策树的多个分裂函数中的每一个评估,从而为每个分裂函数、为数据批次中的每个数据计算部分的直方图。系统可以进一步包括多个节点批处理单元,节点批处理单元被配置为为每个分裂函数聚集相关的部分直方图,以为边缘树节点的子集中的每个节点的每个分裂函数形成聚集的直方图,并且被配置为通过计算为边缘树节点产生最高的信息增益的分裂函数来为每个边缘树节点确定选定的分裂函数。0004提供本概述以便用一种简单的形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在确定所要求保护。
14、的主题的关键或必要特征,也不旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中注释的任何或所有缺点的实施。附图说明0005图1是依照本发明的一个实施例的计算机化的决策树训练系统的示意图。0006图2是示出可以由图1中的系统计算的决策树的示意图。0007图3是示出可以由图1中的系统实现的决策树的深度优先训练的示意图。0008图4是示出可以由图1中的系统实现的决策树的广度优先训练的示意图。0009图5是图1中计算机化的决策树训练系统的机器学习计算机系统的详细示意图,其被配置为通过处理分别的处理单元上的数据批次和节点批次以训练决策树。0010图6是示出可以由图1。
15、中的系统实现的混合广度优先/深度优先训练算法的示意图。0011图7是图1中计算机化的决策树训练系统的机器学习计算机系统的另一个实施例说明书CN102331992ACN102332005A2/9页6的详细示意图,其被配置为通过处理分别的处理单元上的分裂函数以训练决策树。0012图8是计算机化的决策树训练方法的一个实施例的流程图。具体实施方式0013图1示出计算机化的决策树训练系统10。计算机化的决策树训练系统10包括被配置为接收训练数据14、处理训练数据14和输出已训练的决策树16的机器学习计算机系统12。训练数据14包括已经被分类为预定数量的类中的一个类的众多示例。依照以下所述的过程,可以基于。
16、训练数据14来训练决策树16。0014训练数据14可以包括各种数据类型,并且一般地被组织为多个数据单元18。在一个特定示例中,数据单元18可以包含图像20或图像区域,该图像或图像区域依次包括像素数据22。替代地或额外地,数据单元18可以包括音频数据、视频序列、3D医学扫描或其它数据。0015紧接着计算机化的决策树训练系统10的决策树16的训练,可以在下游计算设备24的输入模块26中安装决策树16,以用于处理和分类由输入模块26从与计算设备24相关的数据源30接收的数据流28中的数据。在一个示例中,数据源30是深度照相机,计算设备24是游戏控制台,并且数据流28包含一系列包括实时地从深度照相机接。
17、收的深度信息的图像。在另一个示例中,数据源30可以是话筒,并且数据流可以包含音频信号流。而在另一个示例中,数据源30可以是医学成像设备,计算设备24可以是医学分析计算机,并且数据流28可以包含从医学成像设备接收的一系列图像。0016输入模块26被配置为使用决策树16分类数据流18中的数据单元,从而产生经处理的数据32。在一个示例中,经处理的数据32可以包括图像数据,其中每个图像中的每个像素已经如以下所述,通过决策树分配例如身体模型上的身体部分的类。经处理的数据32可以被传递到例如游戏程序的计算机程序34以用于下游处理。计算机程序34又被配置为解释经处理的数据32并且在与计算设备24相关的显示器。
18、36上显示相关的图形输出。在以上示例中,计算机程序可以是游戏程序,并且经处理的数据可以是通过决策树使用身体部分分类的逐像素地编码的玩家的图像。玩家可以在深度照相机前自然地移动其身体,从而创建通过决策树16分类的并且由计算机程序34解释的自然输入,以控制例如在游戏中的玩家人物。0017现在参考图2,这幅图一般地示出图1中的系统的决策树16的示例。决策树16包括一个根节点38,在由机器学习计算机系统12训练期间,该根节点包含或可访问来自计算机化的决策树训练系统10的机器学习计算机系统12的所有经处理的训练数据14。在训练期间,依照训练算法诸如以下所述的深度优先、广度优先、或混合广度/深度,决策树1。
19、6通过若干层的分裂节点40从根节点38处分叉,并且最终在叶节点终止。在训练算法的任何给定迭代处,可以计算决策树16直到一组边缘树节点48为止,如虚线所示。0018决策树16具有可以被评估以表明训练数据14中的差别的若干相关的分裂函数。为了建立决策树16,在每个边缘节点48处,必须选择分裂函数以从边缘节点创建分裂节点。评估多个候选的分裂函数,并且产生最大信息增益熵的分裂函数被分配给分裂节点。以这种方式,直到达到信息增益的预定最小阈值,或者达到决策树中预定的层数,或者满足某一其它终止条件之前,树都将进行分支。决策树的分支在叶节点42或末端节点处终说明书CN102331992ACN102332005。
20、A3/9页7止,其中每个叶节点或末端节点都具有与其相关的类和概率直方图44。直方图表示遍历树到达该叶节点的训练数据是每个类的成员的概率。在一个示例中,如以上所述,类可以表示身体模型45上的身体部位,用于处理由深度照相机拍摄的身体图像。0019现在参考图3,这幅图示出可以由图1中的系统实现的用于决策树16的深度优先训练算法。深度优先训练算法是递归的决策树遍历算法,该算法从根节点38处开始并且在回溯之前基于最大信息增益在每一步向更深的一层遍历决策树16,直到到达叶节点42为止。在一个特定示例中,最简单的深度优先训练算法对于所有的多个数据单元18开始,数据单元包括例如图像20的像素数据22的所有训练。
21、示例,并且通过选择一组分裂函数从根节点38处继续进行操作。对于每个分裂函数,跨多个数据单元18的类建立两个概率直方图44,其中一个用于决策树16的节点处的左侧结果,一个用于右侧结果。可以基于分裂评估准则为每个分裂节点选择分裂函数。在一个实施例中,分裂评估准则包括本地地选择可以依照以下公式表示的给出最大预期信息增益的分裂函数。00200021在以上公式中,EQ是分布Q的香农SHANNON熵,Q_L和Q_R是节点左分支和右分支的直方图。0022应当理解也可以使用其它分裂评估准则,诸如基尼GINI系数熵、名为“二分”的准则、用于平等地分裂树的树平衡准则等。0023一旦使用这些分裂评估准则中的一个为给。
22、定分裂节点本地地选择了分裂函数,含有一组数据单元18的对应分裂节点被划分为数据单元18的左子集和右子集。然后将这一过程递归地应用于数据单元18的左子集和右子集,划分直到基于终止条件达到预定的最大深度为止,该终止条件可以是最小阈值信息增益、节点处的最小示例数、预定的层数、或者其它终止条件。例如,为了计算效率,可以使用要计算到预定的10层或者根据需要更多或更少层的决策树的深度优先算法。作为另一个示例,在分裂节点处最少数量的示例数据可以被建立为终止条件,该终止条件可以使用适用于训练数据14但不适用于数据流28的反向结果以帮助防止决策树的过度拟合。0024深度优先训练算法一般地包括对不同存储器区域的随。
23、机访问例如在不同图像中的不同像素,并且因此一般地将所有数据单元18存储在存储器中,这将需要用于大的训练数据集的显著存储器。此外,深度优先训练算法需要以树深度为幂的潜在指数数量的硬盘读取以训练决策树16,从而消耗显著的访问时间。但是,一旦在存储器中存储了所有的数据单元18,在训练决策树16的期间存储器需求不会显著地增长。0025现在参考图4,这幅图示出可以由图1中的系统实现的决策树16的广度优先训练算法。广度优先训练算法是从根节点38处开始并且探查所有相邻分裂节点的树遍历算法。在广度优先训练算法中,维持边缘树节点48虚线的的边缘,并且训练迭代的一次迭代或回合扩展了边缘中的所有边缘节点。边缘从根节。
24、点38处开始,并且随着每个边缘节点被重新分类为分裂节点40而被扩展,并且在下一次迭代中分支为两个新边缘节点。假设由算法扩展边缘中的所有节点,则将在每个时间步使边缘的大小翻倍。0026如上所述,通过用具有大的数据集的深度优先或广度优先算法来训练决策树16说明书CN102331992ACN102332005A4/9页8可以提高决策树16的性能,但是也可以是时间和资源密集的。例如,在一个实现中,训练数据可以包括数十亿的图像,其中每幅图像都可以包括数十万的像素。在这一实现中,可以使用超过数十万的分裂函数以建立决策树,该决策树将每幅图像的每个像素分类为例如上述身体模型45的身体部分的将近30个类中的一个。
25、。从而,对于决策树中的每个分裂节点,为每个分裂函数评估每个像素,并且计算决策树所需的总计算量变得相当大。0027用公式表示,为了使用广度优先算法处理这么大的数据集,在训练决策树的期间在计算机的存储器中建立大小为NXFXCXB的直方图,其中N是边缘节点数,F是分裂函数的数量例如100000,C是类的数量例如30,并且B是树的元数例如对于二元树为2。对于深度优先算法,一次仅处理一个节点,因此N1。因此,使用深度优先算法在训练期间在存储器中建立大小为FXCXB的三维直方图。尽管深度优先算法比广度优先算法消耗更少的存储器,但是如果数据不适合RAM,则磁盘的访问数将随着决策树的深度呈指数级地增长,从而减。
26、缓计算。实际上,对于非常大的数据集,无论使用广度优先还是深度优先的计算都是实际上不可能的,这是因为这两个算法的任一个都将消耗比一般的单处理器计算机上商业合理的时间多得多的时间,或者需要比一般的单处理器计算机上可用的处理器速度和存储器多得多的处理器速度和存储器。0028为了解决在一般的单处理器计算机上使用广度优先或深度优先算法的缺点,机器学习处理器系统12可以使用有效利用多个网络计算设备的硬件资源以在大的训练数据集14上训练决策树16的分布式处理算法。图5示出这一系统,该图示出图1中的计算机化的决策树训练系统10的机器学习计算机系统12的内部细节。0029如图5所示,机器学习计算机系统12包括具。
27、有处理器和相关存储器的分布式控制处理单元DCPU50。分布式控制处理单元50包含以一系列连续的迭代将训练数据划分为数据批次,为并行处理在各处理单元中分发数据批次,并且基于并行处理的结果建立决策树的程序逻辑。0030在每次迭代期间,训练数据经历数据批次阶段65和树节点批次阶段67。数据批次阶段65的计算由数据批处理单元DBPU54执行,并且树节点批次阶段67的计算由节点批处理单元NBPU58执行。应当理解,数据批处理单元54和节点批处理单元58可以是分别的计算设备或多核计算设备上分别的核,或者其组合,并且在一些实施例中,计算设备和/或核可以既在数据批次阶段65期间充当数据批处理单元54,又在节点。
28、批次阶段67期间充当节点批处理单元58。0031返回至图5,分布式控制处理单元50被配置为接收训练数据14并且将其存储在相关的大容量存储设备52中。分布式控制处理单元50被配置为将接收到的训练数据14划分为多个数据批次,并且将那些数据批次发送给分别的数据批处理单元54以用于在一系列连续的迭代的每一次迭代中进行分布式处理。每个数据批次包括训练数据14的数据单元18的子集。在一个示例中,第一数据批次可以包括训练数据14中所有图像总数中的图像1100000,第二数据批次可以包括训练数据14中所有图像总数中的图像100001200000,等等。0032如图所示,机器学习计算机系统12包括多个数据批处理。
29、单元54。每个数据批处理单元54都被配置为从分布式控制处理单元50接收表示训练数据14中数据单元18的子集的分别的数据批次。因此,在以上示例中,第一数据批处理单元54可以接收图像1100000,说明书CN102331992ACN102332005A5/9页9第二数据批处理单元54可以接收图像100001200000,等等。通过以这种方式对训练数据14分批,可管理大小的数据批次可以被发送到每个数据批处理单元54以在数据批次阶段进行处理。0033在数据批次阶段期间,多个数据批处理单元54的每个被进一步配置为对用于分别的数据批次64的决策树的多个分裂函数中的每一个进行评估,从而为每个分裂函数和数据批。
30、次中的每个数据计算部分直方图56。因此,在不同的数据批次64上,相同的分裂函数由每个数据批处理单元54评估。例如,一个分裂函数可以计算当前像素的像素深度是否是比当前像素上方10个像素点的像素的像素深度低的阈值距离ISCURRENTPIXELPIXELDEPTHPIXEL_10PIXELSABOVEPIXELDEPTH,并且另一个分裂函数可以计算当前像素的强度是否高于强度阈值ISCURRENTPIXELINTENSITYINTENSITYTHRESHOLD。应当理解,在2元决策树中,每个分裂函数有第一结果和第二结果。因此,部分直方图56表示每个数据批次中每个数据单元例如图像的每个数据例如像素可以。
31、由例如100000个分裂函数中的每个分裂函数分类以达到第一结果或第二结果的概率。在处理中的这一阶段,部分直方图56不包括用于所有数据单元中的所有数据的数据,训练数据也不由决策树16中的节点组织。0034为了实现节点批次阶段67,机器学习计算机系统12进一步包括多个节点批处理单元58,节点批处理单元由分布式控制处理单元50分配分别的边缘树节点的子集。如以上所述,决策树16的边缘树节点48是在图24中由虚线圆圈示出的,在决策树的当前训练迭代中为其评估分裂函数的那些节点。通过将边缘树节点48划分为子集,可管理数量的数据被发送到每个节点批处理单元以处理。训练数据14的每个子集包括在当前迭代期间由决策树。
32、分类为位于对应的边缘树节点48处的每个数据。0035在节点批次阶段67期间,对于分别的树节点批次66中决策树16的边缘树节点48的每个子集,每个节点批处理单元58被配置为为每个分裂函数聚集相关的部分直方图56来为在子集的每个边缘树节点处的每个分裂函数形成聚集的直方图60。0036在每次迭代中,为了将由数据批次阶段64中的数据批处理单元54计算的数据分发至用于节点批次阶段67的合适的节点批处理单元58,依照以下控制方案,可以利用在分别的处理单元之间的多对多消息传递。首先,分布式控制处理单元50被配置为将分别的边缘树节点的子集分配给多个节点批处理单元54中的每一个。多个数据批处理单元54中的每一个。
33、被配置为从分别的数据批次64中选择数据子集,选定的数据子集包括由决策树16分类为位于对应的边缘树节点的每个数据。多个数据批处理单元54中的每一个进一步被配置为将选定的数据子集的部分直方图56传输至与对应的边缘树节点相关的节点批处理单元58,以用于节点批处理单元58为每个分裂函数聚集相关的部分直方图56以形成聚集的直方图60。0037在一个实施例中,每个节点批处理单元58被配置为通过计算为边缘树节点48产生最高信息增益或最大熵的分裂函数,来为分别的子集中每个边缘树节点48确定选定的分裂函数。替代地,如上所述,可以采用其它分裂评估准则来为每个分裂节点选择分裂函数。0038分布式控制处理单元50被进。
34、一步配置为将每个边缘树节点48重新分类为分裂节点40,该分裂节点包括选定的分裂函数例如用最高信息增益的一个分别的分裂节点,以说明书CN102331992ACN102332005A6/9页10扩展决策树16以包括从分裂节点分支出的新的边缘树节点48,并且输出决策树16用于为了上述使用安装在下游计算设备24上。0039应当理解,使用分布式处理算法的每个循环经过数据批次阶段65、节点批次阶段67和决策树的更新来训练一组新的边缘节点。分布式控制处理单元54被配置为将具有不满足上述终止条件的当前版本的决策树的每个边缘树节点48重新分类为包括选定的分裂函数的分别的一个分裂函数的分裂节点,该分裂节点已经被确。
35、定为在每个边缘节点处提供最大信息增益,以便扩展决策树以包括从分裂节点分支出的新的边缘树节点。以这种方式,如图3和4所示,可以以一系列训练步骤来增长决策树。分布式控制处理单元54可以被配置为迭代地计算决策树,直到决策树已经被计算到例如预定深度的所需层次为止,或者直到在每个边缘节点处达到预定的阈值信息增益为止。一旦决策树被计算到所需层次,如前所述,分布式控制处理单元50被配置为在下游计算设备24上输出用于安装的决策树。0040如上所述,在一些实施例中,每个数据单元18包含至少一幅图像20,并且每幅图像20包括至少一个数据,即像素。这一数据单元的分裂函数的计算可以包括对像素的像素特征的计算,其中每个。
36、像素具有包括颜色、强度和深度的像素数据22。深度可以由游戏控制台的深度照相机或其它设备确定。如上所述,可以基于目标像素的像素数据并且还基于目标像素邻近的其它像素的像素数据来计算像素特征。0041如图2所示,训练数据14可以包括身体的图像,并且训练数据14中至少若干像素已经被分类为与身体模型45中分别的类相关,类表示在身体模型45上对应的身体部位。这可以用作游戏或医学成像等中使用的自然输入。输出决策树16可以被配置为将目标图像的像素分类为多个类中的一个,并且每个类与叶节点或边缘树节点中的一个相关。例如为了用作游戏程序的自然输入,以这种方式,输出决策树16可以将图像中的像素分类为与例如游戏控制台的。
37、游戏玩家的用户的身体部位相关。0042现在参考图6,这幅图示出可以由机器学习计算机系统12实现的混合广度优先/深度优先训练算法。混合广度优先/深度优先算法包括至少一个广度优先训练阶段和至少一个深度优先训练阶段。这些阶段可以按照合适的顺序被排序,并且在需要时被重复,以实现处理效率。例如,可以使用广度优先训练直到系统确定训练一个或更多边缘节点所需的所有数据单元将适合单独的处理单元的存储器为止,此时深度优先训练开始。根据依照图6中的混合广度优先/深度优先算法的训练的所示示例,依照广度优先训练算法在第一阶段中扩展决策树至第一预定深度68,并且依照深度优先训练算法在第二阶段中扩展决策树直到第二预定深度7。
38、0为止。例如,第一预定深度68和第二预定深度中的每一个都可以是分别的用户指定深度,或者是达到分别的最小阈值信息增益的深度。例如,在一个示例中,可以通过检查机器学习计算机系统12的性能数据启发式地选择第一和第二预定深度两者,以选择合适的深度。应当理解,如果需要,可以迭代地实现广度优先/深度优先阶段以训练决策树。0043现在参考图7,这幅图示出可以由机器学习计算机系统12实现的用于在分裂函数批次阶段81期间,通过在分别的分裂函数批处理单元80上处理分裂函数批次来训练决策树的分布式计算算法的另一个实施例。分裂函数批次阶段81一般地发生在由分布式控制处理单元50实现的广度优先训练算法的每个迭代训练循环。
39、期间。在分裂函数批次阶段81期间,分布式控制处理单元50被配置为将训练数据14中的所有数据单元分发给每个分裂说明书CN102331992ACN102332005A7/9页11函数批处理单元80,并且将分裂函数划分为多个子集,并且将分裂函数的每个子集分发给分别的分裂函数批处理单元80。为每个子集评估分裂函数和计算直方图82,并且基于上述的最大信息增益原则为子集选择最优分裂函数。然后,由分布式控制处理单元50聚集每个子集的最优分裂函数,这为当前决策树的每个边缘节点聚集子集数据并且选择最优分裂函数。一般地,在每次迭代处基于选定的分裂函数更新和扩展决策树,直到达到所需深度为止。0044依照另一个实施例。
40、,可以使用包括广度优先阶段和分裂函数阶段的混合分裂函数/广度优先分布式训练算法。依照这一混合算法,为了进一步降低由单独的广度优先训练使用的存储器,对于一个或更多处理单元上的分裂函数的子集,在广度优先阶段,广度优先训练算法可以以串行、并行或分布式的方式运行。然后,在分裂函数阶段,可以通过跨所有子集计算最满足上述分裂评估准则最大信息增益等的分裂函数来聚集广度优先阶段的结果。由于在结果的计算图中有更多的计算顶点,因此这一方法为任务的有效调度提供改进的机会。0045现在转至图8,这幅图示出计算机化的决策树训练方法100的一个实施例。应当理解,方法100可以由上述系统10的硬件和软件组件,或者由其它合适。
41、的硬件和软件组件实现。在102处,方法包括接收训练数据的输入。训练数据可以包括多个数据单元,每个数据单元包括至少一幅图像或图像区域,每个数据单元进一步包括具有相关类标签的至少一个示例数据。在104处,方法可以包括初始化决策树,决策树具有多个相关的分裂函数和类,并且包括根节点以及一个或更多分裂节点和边缘树节点。0046在106处,方法可以包括将训练数据划分为多个数据批次,每个数据批次包括数据单元的分别的子集。在108处,方法可以包括将每个数据批次分配给分别的数据批处理单元。在110处,方法可以包括为每个数据批次中每个数据单元的每个数据,对在数据批次分别的数据批处理单元上的每个分裂函数进行评估,从。
42、而在112处为数据批次中的每个分裂函数和每个数据计算部分直方图。0047在114处,方法可以包括将边缘树节点划分为多个边缘树节点批次。在116处,方法可以包括将每个边缘树节点批次分发给分别的节点批处理单元。在118处,方法可以包括将来自每个分别的数据批处理单元上每个数据批次中每个数据单元的选定数据子集的部分直方图分发给对应的节点批处理单元。通过选择由决策树分类为位于与节点批处理单元对应的边缘树节点处的每个数据来选择选定的子集。0048在120处,方法可以包括在每个节点批处理单元上,为分别的树节点批次中的每个边缘树节点,聚集每个分裂函数的相关部分直方图以在边缘树节点处为每个分裂函数形成聚集的直方。
43、图。在122处,方法可以进一步包括通过计算产生最大信息增益的分裂函数来为每个边缘树节点确定选定的分裂函数。0049在124处,方法可以包括将每个边缘树节点重新分类为包括每个分别的最优分裂函数的分裂节点。在126处,方法可以包括扩展决策树以包括从重新分类的分裂节点分支出的新的边缘树节点。在128处,方法可以包括例如通过确定是否已达到决策树的指定深度,或在边缘节点处是否已达到最小阈值信息增益,来确定是否满足终止条件。一旦在128处确定满足终止条件,在132处,方法包括输出决策树用于安装在下游计算设备上。0050在一个实施例中,在120处的聚集之前,方法进一步包括为多个节点批处理单元说明书CN102。
44、331992ACN102332005A8/9页12中的每一个分配边缘树节点的分别的子集。此外,方法可以包括在多个数据批处理单元中的每一个上选择来自分别的数据批次的数据子集,选定的数据子集包括由决策树分类为位于对应的边缘树节点处的每个数据。方法还可以包括将选定数据子集的部分直方图从多个数据批处理单元传送到与对应的边缘树节点相关的节点批处理单元,以用于节点批处理单元聚集每个分裂函数的相关的部分直方图以形成聚集的直方图。0051依照另一个实施例,方法可以被配置为调节分裂函数批次,并且因此进一步包括在分裂函数批次阶段,将决策树的分裂函数划分为多个分裂函数批次,将每个分裂函数批次分发给分别的分裂函数批处。
45、理单元,并且将训练数据中的所有数据单元分发给多个分裂函数批处理单元中的每一个。方法可以进一步包括针对训练数据中每个数据评估分别的分裂函数批处理单元上每个批次的每个分裂函数,从而为每个分裂函数计算直方图,并且选择具有产生最大信息增益的直方图的分裂函数。例如,如以上关于图7所述,可以扩展决策树以包括具有选定的分裂函数的分裂节点。0052在另一个实施例中,每个数据单元包括至少一幅图像,每幅图像包括至少一个数据,即像素,并且方法100中的评估分裂函数可以包括计算像素的像素特征。在这一实施例中,每个像素可以具有包括颜色、强度和深度的像素数据,深度由深度照相机确定。例如,可以基于目标像素以及该像素邻近的其。
46、它像素的像素数据来计算像素特征。由方法100输出的决策树可以被配置为将像素分类为多个类中的一个,每个类与一个边缘树节点相关,类表示身体模型上对应的身体部位。输出的决策树可以被输出至例如游戏控制台,以用于处理来自例如深度照相机的源的实时数据流中的图像。0053此外,应当理解,还可以构想例如医学成像应用的其它应用。如上所述,相应地,输出可以被发送至医学成像设备等。0054尽管主要参照包括图像的训练数据描述了上述实施例,但是也可以使用音频数据来训练决策树。在这一实施例中,每个数据单元包含音频数据,并且每个音频数据单元包括作为音频信号一部分的至少一个数据。此外,方法100中的评估分裂函数可以包括计算该。
47、部分音频信号的音频特征。0055上述的系统和方法有若干潜在的优点。例如,通过以上述方式组织训练,可以实现容错训练系统。如果组中的处理单元在训练会话期间发生故障,则仅需要重新完成总计算中的一小部分。0056此外,应当理解,每个数据批处理单元计算的结果例如图5所示的计算的结果可以被保存到大容量存储设备中。通过以这种方式保存结果,实现了结果的自动“检查点”,这通过从最近保存的数据处重新开始计算以在硬件或软件故障之后帮助数据的恢复。0057另一个潜在优点是直方图的稀疏表示可以用于降低存储器消耗。当决策树训练进行时,给定的树节点将接收更少的训练示例,并且因此计算后的直方图将具有更多的零值。因此,上述的系。
48、统和方法可以包括从阵列表示到稀疏表示来表示这些直方图,这样将以计算时间为代价,而节省存储器。直方图的稀疏表示可以以散列表、堆、密钥,计数的列表、或其它数据结构存储。应当理解,如果两个稀疏直方图均通过密钥来排序,则将其合并是快速的线性时间操作,并且潜在地节省了处理时间。0058还应当理解,通过改变数据划分的数量,系统可以为广度优先和分裂函数分布式方法在处理单元的计算时间和存储器使用之间做出权衡。此外,可以在上述广度优先算法说明书CN102331992ACN102332005A9/9页13的计算之后,并且在数据批处理单元和节点批处理单元的多对多映射之前,通过将若干部分直方图流输出和存储在大容量存储。
49、来做出这种计算时间和存储器使用之间的权衡。以这种方式,可以按需要减少或增加节点批处理单元的数量。0059如上所述,每个处理器单元可以是多核处理器,并且在处理器的不同核上并行地处理不同的数据单元。以这种方式并行处理可以减少计算时间。0060还应当理解,以上系统和方法的使用使得能够重新使用用于实现上述算法的代码库以执行分布式测试。为了实现这一目的,跨处理单元的组来划分测试数据,训练后的决策树被传递至组中的各处理单元,并且每个处理单元在其训练数据的划分上计算测试度量。然后在中央或控制处理单元上聚集这些度量,并且将结果呈现给用户。0061上述的系统和方法可以用于以使用跨多个处理单元展开计算任务的并行处理算法的分布式方式,在大的数据集上有效地训练决策树。0062应当理解,此处所述的体系结构和/或方法本质上是示例性的,并且不必以限制的意义考虑这些特定的实施例或示例,因为众多变种是可能的。此处所述的特定线程或方法可以表示任何数量的处理策略中的一个或更多。同样地,可以以所示顺序、以其它顺序、并行地、或以若干省略的情况来执行所示各动作。同样地,可以改变上述过程的顺序。0063本公开的主题包括此处所公开的各过程、系统和体系结构、以及其它特征、函数、动作和/或性质的所有新颖和非显而易见的组合和子组合,并且包括任何和所有关于其的相等物。说明书CN102331992ACN102332005A1/8页。