CN117396888A - 决策树在神经网络中的并入 - Google Patents
决策树在神经网络中的并入 Download PDFInfo
- Publication number
- CN117396888A CN117396888A CN202180098074.1A CN202180098074A CN117396888A CN 117396888 A CN117396888 A CN 117396888A CN 202180098074 A CN202180098074 A CN 202180098074A CN 117396888 A CN117396888 A CN 117396888A
- Authority
- CN
- China
- Prior art keywords
- layers
- layer
- neural network
- group
- decision tree
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 155
- 238000003066 decision tree Methods 0.000 title claims abstract description 134
- 238000010348 incorporation Methods 0.000 title description 2
- 238000010801 machine learning Methods 0.000 claims abstract description 64
- 238000000034 method Methods 0.000 claims abstract description 62
- 238000012549 training Methods 0.000 claims description 67
- 238000013139 quantization Methods 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 21
- 230000006870 function Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 abstract description 13
- 239000010410 layer Substances 0.000 description 264
- 238000012545 processing Methods 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 16
- 238000012986 modification Methods 0.000 description 15
- 230000004048 modification Effects 0.000 description 15
- 239000011159 matrix material Substances 0.000 description 14
- 230000009471 action Effects 0.000 description 7
- 230000004913 activation Effects 0.000 description 7
- 238000007792 addition Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 229920002803 thermoplastic polyurethane Polymers 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/042—Knowledge-based neural networks; Logical representations of neural networks
-
- 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/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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/0495—Quantised networks; Sparse networks; Compressed networks
-
- 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/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
用于调度在计算图形上表示的操作的方法、系统和装置,包括在计算机存储介质上编码的计算机程序。所述方法之一包括:接收表示包括按序列排列的多个层的神经网络的数据;选择一个或多个层组,每个层组包括按序列彼此相邻的一个或多个层;生成新机器学习模型,包括:针对每个层组,选择替换层组的相应决策树,其中相应决策树接收到该组中的相应第一层的输入的量化版本作为输入并且生成该组中的相应最后层的输出的量化版本作为输出,其中相应决策树的树深度至少部分地基于该组的层的数量。
Description
技术领域
本说明书涉及在大型神经网络中并入决策树。
背景技术
神经网络是机器学习模型,其采用一层或多层非线性单元来预测接收输入的输出。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中下一层——即下一个隐藏层或输出层——的输入。网络的每个层根据相应参数集的当前值从接收到的输入生成输出。
更具体地,每个神经网络层包括多个节点,并且每个层表示由神经网络定义的操作集合。通常,这些操作是算术操作,其可以包括线性操作(例如加法和乘法)以及非线性操作(例如非线性激活函数,如“Relu”或“Sigmoid”函数)。线性操作组合用于层的层输入和权重。用于每个层的线性操作可以使用张量操作来实现,在张量操作中,层的权重以矩阵或张量形式呈现并且用于层的层输入以向量形式呈现。
大型神经网络,即具有许多层和大量参数的神经网络,已经在各种机器学习任务上示出了良好性能。然而,这些大型神经网络能够具有大时延并且消耗大量的计算资源,例如,具有大存储器需求并且消耗显著大量的处理器循环来进行预测。用于增加神经网络的计算效率的传统技术之一是操纵一些权重矩阵成为稀疏矩阵。稀疏矩阵是其中大量项为零的矩阵。
发明内容
本说明书描述了用于在大型神经网络中并入决策树以生成新机器学习模型的技术。
通常,本说明书中所描述的主题的一个创新方面可以体现在包括以下动作的方法中:接收表示包括按序列排列的多个层的神经网络的数据;从多个层中选择一个或多个层组,每个层组包括按序列彼此相邻的一个或多个层;生成对应于神经网络的新机器学习模型。
新机器学习模型的生成包括:针对每个层组,选择替换该层组的相应决策树。相应决策树接收该组中的相应第一层的输入的量化版本作为输入并且生成该组组中的相应最后层的输出的量化版本作为输出。相应决策树的树深度至少部分地基于该组的层的数量。
该方面的其它实施例包括记录在一个或多个计算机存储设备上的对应计算机系统、装置和计算机程序,每个被配置为执行所述方法的动作。
前述和其它实施例可以各自可选地单独或组合地包括以下特征中一个或多个。特别地,一个实施例组合地包括所有以下特征。
该方法还可以包括基于用于神经网络的训练数据,通过训练神经网络中的未被相应决策树替换的层的至少一部分来训练新机器学习模型的动作。
如上所述选择一个或多个层组中的每一个的动作还可以包括以下动作:选择神经网络中的相应初始层,生成相应多个候选组,每个候选组将该相应初始层作为该候选组中的第一层,针对相应多个候选组中的每一个候选组,确定用于候选组的相应性能度量,该性能度量测量具有由相应决策树替换的候选组中的层的对应新机器学习模型的性能,以及基于用于相应多个候选组的相应性能度量来选择候选组中的一个作为该组。
相应初始层的选择可以通过随机过程或基于神经网络的序列来实现。可以使用二进制或三进制量化来生成组中的相应第一层的输入的量化版本和组中的相应最后层的输出的量化版本。替换层组的相应决策树层可以包括GradientBoost决策树或AdaBoost决策树。
该方法还可以包括将新机器学习模型输出到被配置为实现新机器学习模型的系统,其中该系统包括用于通过从添加、选择或切换功能中选择的一个或多个功能来实现决策树的一个或多个计算单元。也就是说,(例如经训练的)新机器学习模型可以被输出到包括用于在不需要用于执行乘法的更昂贵的计算单元(诸如乘法累加器单元(MAC))的情况下实现决策树的一个或多个计算单元(诸如多路复用器或算术逻辑单元)的系统。
本说明书中描述的主题可以在特定实施例中实现,以便实现以下优点中的一个或多个。
实现下面描述的技术的所述系统可以减少计算成本并且提高用于针对大型神经网络执行推断计算的效率。
首先,当系统针对神经网络执行推断计算时,用于由决策树替换大型神经网络的一个或多个网络层的所描述的技术可以减少操作量。例如,替换神经网络的一个或多个层的决策树可以仅具有一个或几个层(例如,树桩(tree stump)或浅树)。对树桩和浅树执行操作的计算成本远小于计算大型神经网络的神经网络层所需的计算成本。作为另一示例,如果决策树是Adaboost树,则不需要对Adaboost树执行任何乘法操作,从而系统可以执行比计算传统神经网络层更少的操作并且提高效率,该传统神经网络层通常需要乘法和加法两者。
其次,所描述的技术可以通过至少量化由一个或多个决策树替换的网络层的输入和输出来减小神经网络的总大小。量化这些输入和输出以包括用于计算的较少有效数字可以降低计算成本,特别对于插入的决策树和至少邻近决策树的神经网络层(即,决策树的前一层或后一层)而言。量化还可以减少计算系统的总存储器/存储要求,因为神经网络的大小通过量化而减小。鉴于此,所描述的技术允许具有较小存储器和计算能力的设备(例如,智能电话,平板电脑)有效地执行经修改的神经网络的推断计算。在一些情况下,可以定制设备上的一个或多个硬件加速器以用于执行特定经修改的神经网络的推断计算(即,一个或多个层已经由一个或多个决策树替换,且一个或多个层输入和输出已经被量化),其可以降低设备的存储器使用,减少功率消耗,且更有效且更快地执行推断计算。
另外地,当对神经网络执行推断计算时,通常由未量化的输入和输出提供的较高精度对于精确地检测和表示重要特征的存在或不存在是不必要的。也就是说,与效率增益相比,将输入和输出量化到由决策树替换的层所引入的误差是最小的。
虽然用于训练和计算神经网络的量化数据已经在实践中被使用,但是量化输入和输出以适于相应决策树和其余神经网络层对于下面描述的技术是重要的。更具体地,系统可以量化浮点数以减少用于表示浮点数的数字的数量,从而系统可以将更少的数字用于浮点数的符号、指数和尾数。针对二进制量化和三进制量化,系统可以将浮点映射到整数,例如{1,-1}或{1,0,-1},仅举几个示例。
此外,所描述的技术可以有效地训练经修改的神经网络(即,其中层由决策树替换的新神经网络)。该系统仅需要使用用于训练原始神经网络的相同训练示例的至少一部分来微调(fine-tune)经修改的神经网络中的参数。因此,用于训练经修改的神经网络所需的时间段可以显著短于训练原始神经网络。
此外,所描述的技术可以使用用于执行决策树的操作的低成本可编程硬件来减少成本。例如,计算系统可以使用多路复用器(MUX)单元来计算决策树中的操作,而不是乘法累加器单元(MAC)。本领域普通技术人员已知MUX单元比MAC单元消耗更少的功率和空间。因此,计算系统可以仅包括适于经修改的神经网络的可编程硬件单元,而不是昂贵的硬件加速器,诸如GPU或TPU。因此,构造用于针对经修改的神经网络执行推断计算的硬件系统的总成本远小于原始神经网络的总成本。
本说明书的主题的一个或多个实施例的细节在附图和以下描述中阐述。本主题的其他特征、方面和优点将从说明书、附图和所附的权利要求中变得显而易见。
附图说明
图1示出了包括示例神经网络修改引擎的示例神经网络部署系统。
图2A图示了具有包括二进制量化输出的决策树的示例新机器学习模型的一部分。
图2B图示了具有包括三进制量化输出的决策树的另一示例新机器学习模型的一部分。
图3是用于生成经训练的新机器学习模型的示例过程的流程图。
图4是用于选择一个或多个神经网络层组的示例过程的流程图。
图5图示了决策树的示例。
图6图示了使用固定功能硬件的决策树的示例实施方式。
图7图示了用于为决策树执行推断计算的示例可编程核心。
不同附图中相同的附图标记和名称指示相同的元件。
具体实施方式
一种增加训练和计算大型神经网络的效率的常规方法是针对每个层的激活输入和权重构造相应稀疏矩阵。然而,构造稀疏矩阵的方法可能带来新问题。例如,使用稀疏矩阵可以使得计算系统在一段时间内不访问相同的存储器地址,这也被称为缺乏推断局部性。更具体地,当构造稀疏矩阵时,计算系统将原始矩阵的非零项存储在不同的存储器地址中,这些存储器地址可以在物理上彼此远离地定位。在一些情况下,稀疏矩阵中的每个项的存储器地址可以在计算期间动态地改变。例如,零项可以在与另一非零项相加之后变成非零。计算系统因此能够在访问存储在存储器中的数据时遭受存储器时延、高速缓存振荡(trashing)、以及甚至高速缓存污染,这最终降低了用于使用大型神经网络来训练或处理输入的操作效率。
可替代地,另一常规技术方法是将权重矩阵融合到层逻辑中。例如,采用融合权重技术的系统可以确定权重矩阵中的零项,并且因此不执行用于该项的乘法和累加操作。鉴于此,融合权重技术可以通过不执行任何将输出零的计算来减少大型神经网络的计算成本,因为输入之一是零。然而,融合权重是有代价的。首先,融合权重技术要求神经网络一旦被部署在硬件加速器上就不被修改,即,权重矩阵中的零项在计算期间应当保持为零。然而,在实践中,所部署的神经网络的权重矩阵可能需要使用新训练数据来微调。其次,如果稀疏权重矩阵中的零项由多个操作共享,例如,乘法之后是加法,并且之后是另一乘法,则系统仍然需要对零项执行操作。
在下面的说明书中描述的技术可以解决上述问题。更具体地,所描述的技术可以使用量化和决策树来有效地执行用于大型神经网络的一个或多个推断计算。一般地,所描述的技术涉及通过相应的决策树替换神经网络的一层或多层,并且到决策树的输入和来自决策树的输出是用于对应层的输入和输出的量化版本。
本说明书描述了一种在一个或多个位置中的一个或多个计算机上实现为计算机程序的系统,该系统通过由一个或多个决策树替换神经网络的一个或多个网络层组来生成新机器学习模型,以减少计算成本并且提高用于使用经济硬件执行推断计算的效率。
图1示出了包括示例神经网络修改引擎120的示例神经网络部署系统100。
通常,神经网络部署系统100接收表示神经网络110的数据作为输入并且输出经训练的新机器学习模型180。神经网络部署系统100包括用于针对输入神经网络模型生成新机器学习模型130的神经网络修改引擎120。新机器学习模型130是原始输入神经网络模型与由一个或多个决策树所替换的一个或多个神经网络层的混合。下面将描述生成新机器学习模型130的细节。神经网络部署系统100还包括:训练引擎140,其被配置为使用训练数据150来训练新机器学习模型;以及存储器160,其被配置为存储和提供用于训练引擎140的数据(例如,用于机器学习模型的训练和输出数据,以及定义机器学习模型的数据)。
更具体地,由部署系统100接收到的表示神经网络110的数据可以包括定义神经网络——诸如神经网络的每个层的操作,以及用于每个网络层的权重——的信息每个层。
数据110还可以表示神经网络的其它方面。例如,数据110可以包括神经网络内的多个网络层、每个层中的相应数量的节点、表示一个或多个类型的层间连接(例如,逐元素连接或全连接)的数据、以及表示神经网络中的每个层的类型(例如,池化层、全连接层或SoftMax层)的数据。
通常,数据110可以表示已经在多个训练数据150上训练的经训练的神经网络或者尚未训练的神经网络。
神经网络部署系统100可以将接收到的数据110提供给神经网络修改引擎120。修改引擎120可以选择一个或多个神经网络层组,并且用相应的决策树来替换每个层组以输出新机器学习模型130。下面将更详细地描述一个或多个层组的选择。
替换相应层组的每个决策树可以被存储在存储器160中并且对于修改引擎120是可访问的。更具体地,表示决策树并且存储在存储器160中的数据可以包括指定节点(例如,根和多个叶)的总数、节点之间的连通性(例如,叶如何连接到一个或多个其他叶)以及一个或多个节点操作(例如,一个或多个节点的逻辑比较)的数据。
修改引擎120可以自动地确定相应决策树以替换层组。可替代地,替换相应层组的决策树类型可以由用户或由修改引擎120外部的一个或多个计算机实现的计算机程序预先确定。决策树可以是GradientBoost树或AdaBoost树。
GradientBoost(或梯度提升)树可以通过梯度提升来获得,该梯度提升是以一个或多个简单预测模型(例如,决策树)的组合(例如,加权和)的形式产生模型的机器学习方法。AdaBoost(或自适应提升)自适应地组合一个或多个简单预测模型(例如决策树),使得在训练期间,为具有较低性能(例如不正确分类的测量)的简单预测模型指派更大权重,使得由AdaBoost所生成的经训练的模型更可能在给定特定输入的情况下正确地生成预测。
修改引擎120还可以量化由数据110表示的神经网络的至少一部分。例如,修改引擎120可以量化由决策树所替换的层组中的第一层的输入,以及来自该层组中的最后层的输出。可替代地,修改引擎120可以量化整个神经网络,使得对每个层的输入和输出被量化。此外,修改引擎120可以量化训练数据150的至少一部分,并且使用经量化的训练数据来训练相应决策树,或者量化新机器学习模型130的至少一部分,或者量化这两者。
量化是将大集合中的输入值映射到较小集合中的输出值的过程并且通常被用于舍入和截断。更具体地,量化可以被用于减少数值的精度。例如,量化可以将浮点数的精度从32位减少到8位。结合神经网络的场境,修改引擎120可以量化激活张量、神经网络层的权重张量,或者从8位到4位或者甚至1位(例如,尾数的一位)的精度的层输出。将结合图2A和图2B描述量化(例如,二进制量化和三进制量化)的细节。
修改引擎120可以向训练引擎140提供新机器学习模型130。训练引擎140然后可以基于用于训练原始神经网络110的训练数据150来训练新机器学习模型130的至少一部分并且输出经训练的新机器学习模型180作为系统100的输出。更具体地,训练引擎140可以使用训练数据150来训练神经网络的在一段时间内未被决策树替换的剩余层。可替代地或另外地,训练引擎140可以基于量化的训练数据来训练整个新机器学习模型130,假设每个决策树用于相应梯度。
用于训练新机器学习模型130的时间段可以是几分钟、几小时或几天。可替代地或另外地,时间段可以基于用于训练新机器学习模型130的至少一部分的训练数据150的大小。例如,时间段可以通过用于使用训练数据150的100个小批次或1000个小批次来训练(例如,微调)新机器学习模型130所需的时间来确定。
训练引擎140可以训练替换原始神经网络的一层或多层的决策树。
更具体地,训练引擎140在用决策树替换原始神经网络的网络层之前训练决策树。如上所述,训练引擎140还可以微调新机器学习模型130中的决策树。
为了训练决策树,训练引擎140可以使用用于训练原始神经网络的相同但经量化的训练数据150的对应部分作为训练数据。具体地,训练引擎140使用相应训练样本来训练决策树。相应训练示例包括层组中的第一层的层输入的量化版本和来自该层组中的最后层的层输出的量化版本。层组将由决策树替换。层输入和输出的量化版本与已经用于训练原始神经网络中的层组的对应训练数据150的层输入和输出相关联。
训练引擎140可以在训练决策树时定义损失,并且调整节点操作以降低损失,直到其达到特定标准以下。该损失可以是指定错误标记的铰链损失,或者表示基于熵理论的信息增益的日志损失,或者用于训练决策树的任何其它合适的损失。训练引擎140可以调整节点操作,诸如用于一个或多个节点上的逻辑比较操作的相应临界值。在一些情况下,训练引擎140可以通过在训练期间修剪决策树,即删除一个或多个叶以及与一个或多个叶相关联的所有分支和子叶,来减少过度拟合。训练引擎140可以备用原始训练数据集的一部分作为用于检测和改进过度拟合的验证集合。
被用于训练新机器学习模型130的至少一部分的训练引擎140可以包括中央处理单元(CPU)、图形处理单元(GPU)、张量处理单元(TPU)或适于执行神经网络的操作的任何其它计算单元。特别地,新机器学习模型仍然可以具有尚未替换的层,包括线性操作(例如,主要是张量操作),训练引擎140因此可以包括比CPU或GPU更多的TPU,以便于训练过程。
经训练的新机器学习模型180可以被用于在给定输入的情况下有效地生成推断。经训练的新机器学习模型180可以被用于使用较少的计算能力来生成推断。例如,经训练的新机器学习模型180需要比原始神经网络更小的存储器大小来存储,因为神经网络层的一层或多层已经被具有较少节点的浅决策树替换。作为另一示例,经训练的新机器学习模型与使用较少的位所表示的量化输入和输出可兼容,这在计算期间减少了系统存储器带宽。此外,因为诸如MUX单元或算术逻辑(ALC)单元的计算单元可以用于执行决策树中的操作,所以神经网络推断引擎或系统可以用一个或多个MUX单元或ALC单元来替换具有更小且更便宜的可编程核心的诸如TPU或GPU等的大型昂贵的计算单元,以执行用于新机器学习模型180的决策树的推断计算。因此,设备的总成本和总大小可以降低,以用于生成新机器学习模型的推断。
图2A图示了具有包括二进制量化输出225的决策树的示例新机器学习模型295的一部分。
如图2A所示,由输入数据110表示的原始神经网络200的一部分包括多个网络层。多个网络层可以包括:由系统100确定为要由对应决策树替换的网络层组290、在该网络层组290中的第一层之前的第一网络层210、以及接续(to succeed)该网络层组中的最后层的第二网络层230。
神经网络200的该部分中的多个层中的每个层具有多个节点,每个节点表示线性操作和非线性操作。例如,网络层210包括节点210a-f。作为另一示例,网络层230包括节点230a-230f。此外,网络层组290中的每个层包括相应数量的节点(未示出)。
神经网络200的该部分的网络层根据序列来定位,使得针对神经网络的每个输入,前一层可以生成层输出并且将该输出作为层激活输入提供给后一层。例如,网络层组290中的第一层从网络层210接收作为层激活输入213。作为另一示例,网络层组290中的最后层向后一层230提供层输出217。
输入和输出可以根据计算要求而具有相应精度。例如,输入和输出可以具有32位精度的浮点格式。作为另一示例,神经网络的前几层的输入和后几层的输出可以具有比中间层更高的精度。
在一些实施方式中,系统100可以量化神经网络的一层或多层的输入和输出,以使用不同量化方法来减少精度。例如,激活输入213和层输出217可以使用二进制量化或三进制量化来量化,并且具有8位,或者甚至1位的精度。可替代地,系统100可以仅量化网络层的权重或激活输入的一部分。
如上所述,量化是减少数值的精度的过程(例如,降低用于表示数值的符号、指数和尾数的位数)。二进制量化和三进制量化是量化过程的分支。
关于二进制量化,结合神经网络部署系统100和图2A,系统100可以将浮点数量化为二进制集合{1,-1}。二进制量化可以被认为是特定量化过程,其中系统100仅使用一个数字(digit)用于符号,使用零数字用于指数幂,以及使用一个数字用于浮点数的有效数。更具体地,使用二进制量化,浮点格式0.744的权重可以被量化为1,浮点格式-0.21的激活输入可以被量化为-1,仅举几个示例。
类似地,三进制量化是二进制量化的替代,允许以更大的模型大小为代价的更高精度。结合图2B,系统100可以将浮点数量化为三元组{1,0,-1}。更具体地,浮点格式中大于0.66的归一化权重可以被量化为1,小于0.66且大于-0.66的另一归一化权重可以被量化为0,而小于-0.66的另一归一化权重可以被量化为-1。
系统100可以通过将每个量化输入或量化输出乘以相应标度因子来将相应标度因子应用于每个量化输入和量化输出。在给定特定输入的情况下,系统100可以基于量化的神经网络和没有量化的原始神经网络之间的近似(或相似性)的测量来获得相应标度因子。系统100可以在训练经修改的神经网络之后确定标度因子,并且在对经修改的神经网络执行推断计算时将它们设置为常数。
返回参考图2A,神经网络修改引擎120可以通过由决策树220替换神经网络200的原始部分的网络层组290来生成新机器学习模型295(或其新部分),该决策树220具有至少基于网络层组290中的层的数量的树深度。决策树可以是任何类型,只要它适合于替换网络层组。例如,决策树可以是GradientBoost决策树或AdaBoost决策树。
系统100可以至少针对网络层组290中的第一层的输入213以及来自网络层组290中的最后层的输出217执行二进制量化。可替代地,系统100针对整个神经网络执行二进制量化。
决策树200可以从前一层210接收二进制量化输入215并且将量化输出225输出到后一层230。更具体地,量化输入215包括来自前一层210中的节点210a-f的二进制输入(1或-1)。类似地,仅出于说明的目的,量化输出225可以是表示{1}的输出225a或表示{-1}的输出225b。来自决策树的每个输出被量化为1或-1并且被提供给后一层230。
在由决策树220替换该网络层组290之前,系统100可以使用训练示例的对应部分的量化版本来训练决策树220。更具体地,系统100可以在给定用于原始神经网络的训练示例的情况下获得该层组290中的第一层的输入的量化版本,以及来自层组290中的最后层的输出的量化版本。系统100可以将输入的量化版本设置为到决策树220的输入,将输出的量化版本设置为来自决策树220的输出,并且使用输入和输出的量化版本来训练决策220。
图2B图示了具有包括三进制量化输出275的决策树的另一示例新机器学习模型255的一部分。
类似于图2A,系统100可以由不同的决策树270替换神经网络250的一部分中的不同层组285,并且使用三元量化来量化用于决策树的输入和输出。量化输入265和量化输出275包括值集合{-1,0,1}中的一个。仅出于说明的目的,量化输出275可以是表示{1}的输出275a、表示{0}的输出275b和表示{-1}的输出275c中的一个。
尽管在图2A中网络层组的数量是3,并且为了便于说明,在图2B中网络层组的数量是5,但是要由决策树替换的网络层组的数量可以是由系统100确定的任何合适的值。例如,数字可以是1、10或50。
图3是用于生成经训练的新机器学习模型的示例过程300的流程图。为方便起见,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的神经网络部署系统100,例如图1所描绘的系统100,可以执行过程300。
系统接收表示神经网络的数据,该神经网络包括按序列排列的多个层310。接收到的数据可以包括由神经网络的网络层中的每一个所执行的操作以及用于每个网络层的权重,仅举几个示例。网络层根据序列排列,使得从前一层的层输出被提供给后一层作为层输入。
系统从多层中选择一个或多个层组,层组中的每个包括在序列中彼此相邻的一层或多层320。例如,系统可以选择三个组层,其中第一组层仅包括一个层,第二组层包括三个层,最后组层包括具有神经网络的第二最后层的五个层。
系统通过由相应决策树替换所选择的一个或多个层组中的每一个来生成对应于神经网络的新机器学习模型330。
用于替换相应层组的相应决策树可以具有至少基于层组中的层的数量的树深度。例如,决策树的树深度等于层组中的层的数量。作为另一示例,决策树的树深度是3,并且由决策树替换的层组具有5个网络层。
决策树可以包括任何合适的树类型。例如,决策树可以是GradientBoost树或AdaBoost树。
系统可以至少量化到层组中的第一层的输入和来自该层组的最后层的输出,并且将量化输入和量化输出提供给相应决策树。更具体地,针对一个或多个层组中的每一个,相应决策树接收到该组中的相应第一层的输入的量化版本作为输入并且生成该组中的相应最后层的输出的量化版本作为输出。
在一些实施方式中,系统可以基于相应标度因子来获得到相应决策树的输入和输出的量化版本。更具体地,系统可以通过将量化输入与相应标度因子相乘来生成到决策树的输入的量化版本。如上所述,标度因子至少基于量化层和原始层之间的相似性的度量来获得。
系统基于用于原始神经网络的训练数据来训练新机器学习模型340。系统训练原始神经网络中的未被相应决策树替换的层的至少一部分。在一些实施方式中,系统训练神经网络中的在序列中接续神经网络的所述一个或多个层组的各层。
在一些情况下,系统可以使用用于原始神经网络的相同但量化的训练样本来训练整个新机器学习模型。在一些实施方式中,系统可以使用量化输入和量化输出用于训练期间的前向传播,以及使用浮点类型的输入和输出用于在后向传播期间更新权重。可替代地,系统可以计算表示新机器学习模型中的相应决策树的相应梯度的数据。
系统可以选择任何合适的算法来选择层组并且由相应决策树替换该层组。在一些实施方式中,系统可以迭代地选择层组。更具体地,用于选择层组的一个示例算法描述如下:
假设神经网络包括N个网络层,则系统根据序列将神经网络的每个层编索引为层i,其中,i∈[0,1,2,…,N-1]。
系统将从中选择层组的层(所有层)的总数设置为等于神经网络的大小(N层)。
系统随机地从所有层中选择层L作为层组中的第一层。在一些实施方式中,系统可以根据层序列来选择层组中的第一层。例如,系统可以从层0开始作为层组中的第一层。
针对从层L开始到最后层N的序列中的每个层,系统首先检查当前层是否已经由决策树替换或属于决策树。
在确定当前层尚未由决策树替替换或属于决策树时,系统将当前层添加到层组中。
系统对层组中的初始层L的输入和来自当前层的输出执行量化,并且由相应决策树暂时地替换从层L到当前层的各层。如上所述,系统可以对神经网络层的输入和输出执行二进制量化或三进制量化。在一些实施方式中,系统量化神经网络中的每个层的所有输出,使得累加器大小可以被限制到决策树的特定数量。
系统更新用于层组的层信息并且测量经修改的网络的性能(例如,推断精度)。将结合图4更详细地描述确定层组和性能度量的细节。
在确定层组之后,系统用相应决策树来替换层组。
系统训练从该组的最后层开始到神经网络的最后层的其余层。更具体地,系统使用被用于训练原始神经网络的相同训练示例的对应部分来微调其余层的权重。
图4是用于选择一个或多个神经网络层组的示例过程400的流程图。为方便起见,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的神经网络部署系统100,例如图1所示的系统100,可以执行过程400。
系统在神经网络410中选择相应初始层。如上所述,系统可以随机地或基于层序列为层组选择初始层。
系统生成相应多个候选组,每个候选组将相应初始层作为候选组420中的第一层。更具体地,系统暂时地设置用于具有相同初始层的每个候选组的各层的相应数量。例如,系统生成仅具有两个层的第一候选组、具有四个层的第二候选组、以及具有六个层的第三候选组。在一些实施方式中,候选组可以具有连续数量的层。例如,第一候选组包括单个层,第二候选组包括两个层,并且第三候选组包括三个层。
针对相应多个候选组中的每一个,系统确定用于候选组的相应性能度量,其测量具有由决策树430所替换的候选组中的各层的对应新机器学习模型的性能。更具体地,该系统生成多个新机器学习模型,每个模型包括由相应决策树所替换的相应候选层组。系统使用相同的输入数据针对每个新机器学习模型执行推断计算,并且获得用于每个新机器学习模型的相应性能分值。相应性能分值可以基于推断精度来获得。
系统基于相应多个候选组440的相应性能度量来选择候选层组中的一个作为要由决策树替换的层组。在一些实施方式中,系统确定相应性能度量中的最大性能度量;并且从相应多个候选组中选择与最大性能度量相关联的候选组作为该组。可替代地,系统选择具有相对高性能分值但是用于执行推断计算的最快候选组的候选组。
图5图示了决策树500的示例。
如图5所示,决策树500可以包括具有特定树深度的多个节点。树深度基于树层的总数来确定。决策的每个层可以包括表示相应节点操作——例如,逻辑比较或其它合适标准——的节点。
例如,如图5所示,决策树500可以具有多个节点,包括根节点510和不同树层中的相应非根节点520、530。根节点510是决策树500的起始点并且不具有父节点,并且非根节点520和530每个都具有父节点并且也被称为子节点。通常,除了树层中的叶节点之外的每个节点可以具有将节点连接到下一个树层中的相应子节点的一个或多个分支(图5中的箭头)。具有子节点的节点也被称为非叶节点,例如节点510、520a和520b。
针对最深或最后树层中的叶节点(例如,节点530a、530b、530c和530d),每一个都可以表示用于决策树500的推断输出,并且不具有连接到其它子节点的任何分支。推断输出可以是预测,例如,用于叶节点530a的概率P1。
参照图5,当系统(例如,图1中的系统100)用表示因子nf1、nf2、和nf3的输入数据执行决策树的推断操作时,除了最深树层中的叶节点之外,每个非叶节点具有相应节点操作(例如,如图5所示的逻辑比较)。系统可以对根节点510执行节点操作,从节点操作获得逻辑结果(例如,真或假),并且基于结果沿相应分支接近对应子节点。例如,如果结果为假,则系统接近节点520a。在一些实施方式中,系统可以使用整数0和1来表示假和真。最终,系统接近决策树的最深层中的特定叶节点并且返回由特定叶节点所表示的推断。
图6图示了使用固定功能硬件600的决策树的示例实施方式。
如图6所示,系统(例如,图1所示的系统100)可以使用固定功能硬件600来执行决策树的推断计算。更具体地,系统可以接收输入x 610并且返回用于图5所示的示例决策树的最终推断输出620。决策树600可以包括多个计算单元630和640,以从不同的节点获得推断结果并且生成由决策树中的特定叶节点所表示的最终推断输出620。
使用固定功能硬件600的系统可以将每个输入数据指派给对应树节点,并且使用相应比较器和多路复用器在每个节点上实现相应功能。如图6所示,系统将输入数据x∈[h1,l1]指派给顶节点(其相当于图5中的根节点510),将输入数据x∈[h2,l2]指派给左节点630a(其相当于第二树层中的左非叶节点520a),将输入数据x∈[h3,l3]指派给右节点630b(其相当于第二树层中的右非叶节点520b)。系统可以使用相应比较器640和多路复用器630在每个节点上实现操作。例如,系统使用比较器630c和多路复用器630c在顶部节点上实现操作。更具体地,系统接收输入x——其可以是实值的向量——并且选择具有范围x∈[h1,l1]的输入的一部分以提供给顶部根节点。系统使用比较器640c来将输入的该部分与标准a1进行比较,其中标准a1可以表示实值标量。如果输入数据x大于或等于a1,则系统使用指派给节点的多路复用器630c输出表示“真”的结果,例如,多路复用器可以输出表示“真”的整数1。系统可以继续对当前节点沿着对应树分支链接到的子节点执行操作。在对第二最后树层中的非叶节点进行处理操作之后,系统可以基于由决策树中的对应叶节点所表示的值(例如,概率)来输出最终结果620。
图7图示了用于针对决策树执行推断计算的示例可编程核心700。
如图7所示,系统(例如,图1中所示的系统100)可以使用可编程核心700对决策树执行推断计算。可编程核心700可以接收树输入710并且针对树输入生成推断输出720。可编程核心700可以包括多个计算组件,例如MUX单元、ALU单元和静态随机存取存储器(SRAM)。可编程核心700可以仅通过在计算组件中所配置的添加、选择和切换功能来执行节点操作。因此,可编程核心700不需要包括用于执行作为用于针对决策树生成推断输出的节点操作的乘法和加法的任何MAC单元。
参照图7,为了在根节点(例如,图5中的根节点510)上实现操作,系统可以通过联合单元接收输入710并且修改接收到的输入710,其中阵列(x,a,l,h,i0,i1)专用于根节点并且先前存储在队列中。如上所述,a表示节点标准,l和h表示输入x的数值范围,并且索引i0,i1每个可以表示将当前节点连接到相应子节点的树分支,并且可以被指派给相应整数值以表示对节点操作执行操作的结果。
系统可以使用任意单元来选择所组合的输入并且在根节点上实现节点操作。例如,系统可以使用相应比较器来实现输入x∈[h,l]和标准a1之间的比较。作为响应,可以由系统将索引i0,i1指派给相应整数值以表示比较的结果,并且将决策树的计算引导到对应子节点。例如,如果系统确定x∈[h,l]大于标准a1,则系统可以指派i0=0,i1=1,使得系统可以沿着由i1表示的树分支对对应下一子节点执行操作。
为了在下一子节点上实现操作,系统可以首先应用切换单元来基于编号标准N来确定下一子节点是非叶节点还是叶节点。为了确定,系统可以使用相应标签K(例如,整数)来对每个节点进行编号,并且基于预定编号标准来确定下一子节点的类型。例如并且结合图5,系统可以将节点510、520a和520b标记为节点0、节点1和节点2,并且将叶节点530a、530b、530c和530d标记为节点3、节点4、节点5和节点6。系统可以设置编号准则N=3,使得其中标签K<3的节点是非叶节点,而其中标签K>=3的节点是叶节点。
响应于确定下一子节点是非叶节点,系统可以从存储在非叶SRAM中的数据更新用于下一子节点的相应阵列(x,a,l,h,i0,i1)。类似地,响应于确定下一子节点是叶节点,系统可以提供与存储在叶SRAM中的叶节点相关联的最终输出。
针对并行计算,系统可以采用分叉函数来在队列中存储节点的输入数据的部分,以及在SRAM中存储标识节点的操作和类型的相应阵列。系统可以基于在并行计算期间针对每个计算单元所观察到的相应时延使用一个或多个联合单元自动地确定何时使用相应阵列修改输入数据。
这里提及的实施例提供了用于训练神经网络的改进的方法。神经网络可以被配置为接收任何类型的数字数据输入并且基于该输入生成任何类型的分值、分类或回归输出。输入数据项可以包括自然语言的图像数据(其这里包括视频数据)、音频数据、或文本数据,例如单词或单词片段(或其表示,例如嵌入)。输入数据项可以包括序列数据,例如表示数字化音频的数据采样序列或表示为像素序列的图像,或由图像序列表示的视频,或表示自然语言的单词序列的序列。这里,“图像”包括例如LIDAR图像。
在一些实施方式中,神经网络输出可以包括特征表示,其然后可以被进一步处理以生成系统输出。例如,系统输出可以包括用于将输入数据项分类成多个类别——例如图像、视频或音频类别(例如,表示输入数据项或输入数据项的对象/元素属于类别的估计可能性的数据)——中的一个的分类输出、或者用于将输入数据项的区域分割成例如在图像或视频中表示的对象或动作的分割输出。或者系统输出可以是强化学习系统中的动作选择输出。
在一些其它实施方式中,网络输出可以包括相同或不同类型的另一数据项。例如,输入数据项可以是图像、音频或文本,并且输出数据项可以是图像、音频或文本的修改版本,例如改变输入数据项或输入数据项内的一个或多个对象或元素的样式、内容、属性、姿态等;或填充输入数据项的(缺失)部分;或者预测数据项的另一版本或视频或音频数据项的扩展;或提供输入数据项的上采样(或下采样)版本。例如,输入数据项可以是第一语言的文本的表示,并且输出数据项可以是文本到另一种语言的翻译,或者文本到另一种语言的翻译的分值。在另一示例中,输入图像可以被转换为视频或者线框模型,或者CAD模型,或者2D中的输入图像可以被转换为3D;反之亦然。或者输入数据项可以包括从口头话语或口头话语序列中导出的特征或从中导出的特征,并且网络系统输出可以包括用于文本片段集合中的每一个的分值,每个分值表示基于特征文本片段是正确转录的估计可能性。在另一示例中,输入数据项可以是图像、音频或文本,并且输出数据项可以是输入数据项以不同格式的表示。例如,神经网络可以将文本转换为语音,或者反之亦然(用于语音识别),或者将图像(或视频)转换为文本(例如用于字幕)。当生成包括序列数据的输出时,神经网络可以包括一个或多个卷积的例如扩大的卷积层。
在一些其它实施方式中,网络输出可以包括用于选择要由智能体(agent)执行的动作的输出,该智能体诸如在环境——例如真实世界环境或真实世界环境的模拟——中的机器人或其它机械智能体。
在一些实施方式中,神经网络被配置为接收输入数据项并且处理输入数据项以根据网络参数生成输入数据项的特征表示。通常,数据项的特征表示是数值的有序合集(例如向量),其将数据项表示为多维特征空间中的点。换句话说,每个特征表示可以包括输入数据项的多个特征中的每一个的数值。如前所述,神经网络可以被配置为接收任何类型的数字数据输入作为输入并且根据输入生成特征表示。例如,也可以被称为网络输入的输入数据项可以是图像、文档部分、文本序列、音频数据、医疗数据等。
一旦被训练,特征表示可以向另一系统提供输入,例如,用于在网络输入上使用以执行机器学习任务。示例任务可以包括基于特征的检索、聚类、近重复检测、验证、特征匹配、域自适应、基于视频的弱监督学习;并且针对视频——例如跨视频帧的对象跟踪,由视频中描绘的实体执行的手势的手势识别。
如果神经网络的输入是已经从图像中提取的图像或特征,则由神经网络针对给定图像所生成的输出可以是对象类别集合中的每一个的分值,其中每个分值表示图像包含属于该类别的对象的图像的估计可能性。更具体地,从输入图像提取的输入图像或特征中的每个可以包括一个或多个像素,每个像素具有相应强度值。神经网络被配置为处理从图像提取的输入图像或特征的相应强度值并且生成预测,例如图像分类、图像识别或图像分割。
作为另一示例,如果神经网络的输入是因特网资源(例如,网页)、文档、或文档的部分或从因特网资源、文档、文档的部分所提取的特征,则由神经网络针对给定因特网资源、文档、或文档的部分所生成的输出可以是主题集合中的每一个的分值,每个分值表示因特网资源、文档或文档部分是关于该主题的估计可能性。
作为另一示例,如果神经网络的输入是特定广告(advertisement)的印象场境的特征,则由神经网络所生成的输出可以是表示特定广告将被点击的估计可能性的分值。
作为另一示例,如果神经网络的输入是用户的个性化推荐的特征,例如,表征推荐的场境的特征,例如,表征用户采取的先前动作的特征,则由神经网络生成的输出可以是内容项集合中的每一个的分值,每个分值表示用户将有利地响应于被推荐的内容项的估计可能性。
作为另一示例,如果神经网络的输入是一种语言的文本序列,则由神经网络生成的输出可以是另一种语言的文本片段集合中的每一个的分值,其中每个分值表示另一种语言的文本片段是输入文本到另一种语言的适当翻译的估计可能性。
作为另一示例,如果神经网络的输入是表示口头话语的序列,则由神经网络所生成的输出可以是文本片段集合中的每一个的分值,每个分值表示该文本片段是用于话语的正确转录的估计可能性。
本说明书中描述的主题和功能操作的实施例可以在数字电子电路中、在有形体现的计算机软件或固件中、在计算机硬件中实现,包括在本说明书中公开的结构和它们的结构等效物,或者它们中的一种或多种的组合。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即,一个或多个计算机程序指令模块,其被编码在有形的非暂时性存储介质上,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备,或者它们中的一种或多种的组合。替代地或附加地,程序指令可以在人工生成的传播信号上编码,例如机器生成的电、光或电磁信号,生成该信号以编码信息以传输到合适的接收器装置以供数据处理装置执行。
术语“数据处理装置”指数据处理硬件并且涵盖用于处理数据的所有种类的装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。该装置还可以是或进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一种或多种的组合的代码。
也可以称为或描述为程序、软件、软件应用、应用、模块、软件模块、脚本或代码的计算机程序,可以用包括编译或解释性语言、或声明或过程语言的任何形式的编程语言编写;并且它可以以包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其他单元的任何形式部署。程序可以但不必对应于文件系统中的文件。程序可以被存储在包含其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本、专用于所讨论程序的单个文件、或多个协调文件——例如,存储一个或多个模块、子程序或代码部分的文件——中。可以部署计算机程序以在一个计算机或位于一个站点或跨多个站点分布并通过数据通信网络互连的多个计算机上执行。
在本说明书中,术语“数据库”广泛用于指代任何数据合集:数据不需要以任何特定方式结构化,或者根本不需要结构化,并且它可以被存储在一个或多个位置中的存储设备上。因此,例如,索引数据库可以包括多个数据合集,每个数据合集可以以不同方式组织和访问。
类似地,在本说明书中,术语“引擎”广泛用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为一个或多个软件模块或组件,其被安装在一个或多个位置中的一个或多个计算机上。在一些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,可以在相同的一个或多个计算机上安装和运行多个引擎。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出以执行功能来执行。过程和逻辑流程也可以由例如FPGA或ASIC的专用逻辑电路或由专用逻辑电路和一个或多个编程计算机的组合来执行。
适合执行计算机程序的计算机可以基于通用或专用微处理器或两者,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或实行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或结合在专用逻辑电路中。通常,计算机还将包括或可操作地耦合以从用于存储数据的一个或多个大容量存储设备——例如,磁、磁光盘或光盘——接收数据或向其传输数据或两者。然而,计算机不需要有这样的设备。此外,计算机可以被嵌入到另一设备,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备,例如,通用串行总线(USB)闪存驱动器等,仅几个举例。
适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,通过示例包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实现,该计算机具有:用于向用户显示信息的显示设备,例如,CRT(阴极射线管)或LCD(液晶显示器)监视器;以及键盘和指示设备(pointing device),例如鼠标或轨迹球,用户可以通过它们向计算机提供输入。也可以使用其他种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;可以以包括声学、语音或触觉输入的任何形式接收来自用户的输入。另外,计算机可以通过向用户使用的设备发送文档和从其接收文档来与用户交互;例如,通过响应于从Web浏览器接收到的请求将网页发送到用户设备上的Web浏览器。此外,计算机可以通过将文本消息或其他形式的消息发送到个人设备(例如,正在运行消息传递应用的智能手机)并且然后反过来接收来自用户的响应消息来与用户交互。
用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产——即推断、工作负载——的常见和计算密集型部件。
机器学习模型可以使用机器学习框架——例如TensorFlow框架、MicrosoftCognitive Toolkit框架、Apache Singa框架或Apache MXNet框架——来实现和部署。
本说明书中描述的主题的实施例可以在计算系统中实现,所述计算系统:包括后端组件,例如,作为数据服务器;或者包括中间件组件,例如,应用服务器;或者包括前端组件,例如,具有图形用户界面、Web浏览器或app的客户端计算机,用户可以通过其与本说明书中描述的主题的实施方式进行交互;或一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过例如通信网络的任何形式或介质的数字数据通信互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系是通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生的。在一些实施例中,服务器将例如HTML页面的数据传输到用户设备,例如,用于向与作为客户端的设备交互的用户显示数据和从该用户接收用户输入的目的。在用户设备处生成的数据,例如用户交互的结果,可以在服务器处从设备接收。
尽管本说明书包含许多具体的实施方式细节,但这些不应被解释为对任何发明的范围或可要求保护的范围的限制,而是对可能特定于特定发明的特定实施例的特征的描述。在本说明书中在分开的实施例的场境中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的场境中描述的各种特征也可以在多个实施例中分开地或以任何合适的子组合来实施。此外,尽管特征可能在上面描述为在某些组合中起作用,并且甚至最初被如此要求保护,但在一些情况下,来自要求保护的组合的一个或多个特征可以从组合中删除,并且要求保护的组合可以针对子组合或子组合的变化。
类似地,虽然操作在附图中被描绘并且在所附的权利要求中以特定次序叙述,但这不应被理解为要求这样的操作以所示的特定次序或按顺序次序执行,或者所有所示的操作都被执行,以达到期望的效果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中各个系统模块和组件的分离不应理解为在所有实施例中都需要这样的分离,而应该理解的是,所描述的程序组件和系统通常可以被一起集成在单个软件产品中,或者打包成多个软件产品。
已经描述了本主题的特定实施例。其他实施例在所附的权利要求书的范围内。例如,所附的权利要求书中记载的动作可以以不同的次序执行且仍达到期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定次序或顺序次序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。
Claims (15)
1.一种由一个或多个计算机实现的方法,所述方法包括:
接收表示包括按序列排列的多个层的神经网络的数据;
从所述多个层中选择一个或多个层组,每个层组包括按所述序列彼此相邻的一个或多个层;
生成与所述神经网络对应的新机器学习模型,其中生成所述新机器学习模型包括:
针对每个层组,选择替换所述层组的相应决策树,其中所述相应决策树接收所述层组中的相应第一层的输入的量化版本作为输入并且生成所述层组中的相应最后层的输出的量化版本作为输出,其中,所述相应决策树的树深度至少部分地基于所述层组的层的数量。
2.根据权利要求1所述的方法,进一步包括:
基于用于所述神经网络的训练数据,通过训练所述神经网络中的未被相应决策树替换的层中的至少一部分来训练所述新机器学习模型。
3.根据权利要求2所述的方法,其中,训练所述神经网络中的未被相应决策树替换的层中的至少一部分包括:
训练所述神经网络中的依据所述序列接续所述神经网络的所述一个或多个层组的各层。
4.根据权利要求1至3中的任一项所述的方法,其中,选择所述一个或多个层组中的每一个包括:
选择所述神经网络中的相应初始层;
生成相应多个候选组,每个候选组将所述相应初始层作为该候选组中的第一层;
针对所述相应多个候选组中的每个候选组,确定用于该候选组的相应性能度量,所述性能度量测量具有该候选组中的由相应决策树替换的层的对应新机器学习模型的性能;以及
基于用于所述相应多个候选组的相应性能度量来选择所述候选组中的一个作为所述组。
5.根据权利要求4所述的方法,其中,为了生成相应层组,选择所述神经网络中的所述相应初始层包括:
通过随机过程或基于所述神经网络的所述序列来选择所述相应初始层。
6.根据权利要求4或权利要求5所述的方法,其中,基于相应性能度量来选择所述候选组中的一个作为所述组包括:
确定所述相应性能度量中的最大性能度量;以及
从所述相应多个候选组中选择与所述最大性能度量相关联的候选组作为所述组。
7.根据权利要求1至6中的任一项所述的方法,其中,所述组中的相应第一层的所述输入的所述量化版本和所述组中的相应最后层的所述输出的所述量化版本是使用二进制量化或三进制量化来生成的。
8.根据权利要求1至7中的任一项所述的方法,其中,替换所述层组的所述相应决策树层包括GradientBoost决策树或AdaBoost决策树。
9.根据权利要求1至8中的任一项所述的方法,其中,每个层包括相应权重集合,所述方法进一步包括:
针对所述神经网络中不在所述一个或多个层组中的每个层,量化与该层相关联的权重的至少一部分。
10.根据权利要求1至9中的任一项所述的方法,其中,所述相应决策树的所述树深度等于所述组中的层的所述数量。
11.根据权利要求1至10中的任一项所述的方法,其中,所述组中的相应第一层的所述输入的所述量化版本或所述组中的相应最后层的所述输出的所述量化版本由一个或多个标度因子生成。
12.根据权利要求1至11中的任一项所述的方法,其中,由所接收的数据表示的所述神经网络是由训练数据集合初始训练的神经网络,
其中,替换相应层组的每个决策树已经基于所述训练数据集合的量化版本的相应部分来训练,
其中,所述训练数据集合的所述量化版本的所述相应部分的每个训练样本包括:(i)所述组中的所述第一层的层输入的量化版本,以及(ii)来自所述组中的所述最后层的层输出的量化版本。
13.根据权利要求1至12中的任一项所述的方法,进一步包括:将所述新机器学习模型输出到被配置为实现所述新机器学习模型的系统,其中所述系统包括用于通过从添加、选择或切换功能中所选择的一个或多个功能来实现所述决策树的一个或多个计算单元。
14.一种包括一个或多个计算机和存储指令的一个或多个存储设备的系统,所述指令在由所述一个或多个计算机执行时使得所述一个或多个计算机执行权利要求1至13中的任一项所述的方法的操作。
15.一个或多个存储指令的计算机存储介质,所述指令在由一个或多个计算机执行时使得所述一个或多个计算机执行权利要求1至13中的任一项所述的方法的操作。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2021/031636 WO2022240391A1 (en) | 2021-05-10 | 2021-05-10 | Incorporation of decision trees in a neural network |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117396888A true CN117396888A (zh) | 2024-01-12 |
Family
ID=76250447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180098074.1A Pending CN117396888A (zh) | 2021-05-10 | 2021-05-10 | 决策树在神经网络中的并入 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP4315165A1 (zh) |
JP (1) | JP2024519326A (zh) |
KR (1) | KR20230162721A (zh) |
CN (1) | CN117396888A (zh) |
WO (1) | WO2022240391A1 (zh) |
-
2021
- 2021-05-10 JP JP2023569726A patent/JP2024519326A/ja active Pending
- 2021-05-10 KR KR1020237038523A patent/KR20230162721A/ko unknown
- 2021-05-10 WO PCT/US2021/031636 patent/WO2022240391A1/en active Application Filing
- 2021-05-10 EP EP21729708.4A patent/EP4315165A1/en active Pending
- 2021-05-10 CN CN202180098074.1A patent/CN117396888A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2024519326A (ja) | 2024-05-10 |
WO2022240391A1 (en) | 2022-11-17 |
KR20230162721A (ko) | 2023-11-28 |
EP4315165A1 (en) | 2024-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11935516B2 (en) | Speech recognition method and appratus using weighted scores | |
CN109885842B (zh) | 处理文本神经网络 | |
US11544573B2 (en) | Projection neural networks | |
CN107836000B (zh) | 用于语言建模和预测的改进的人工神经网络方法、电子设备 | |
US20230102337A1 (en) | Method and apparatus for training recommendation model, computer device, and storage medium | |
CN109376222B (zh) | 问答匹配度计算方法、问答自动匹配方法及装置 | |
KR20210029785A (ko) | 활성화 희소화를 포함하는 신경 네트워크 가속 및 임베딩 압축 시스템 및 방법 | |
CN113837370B (zh) | 用于训练基于对比学习的模型的方法和装置 | |
US11915129B2 (en) | Method and system for table retrieval using multimodal deep co-learning with helper query-dependent and query-independent relevance labels | |
CN115795065A (zh) | 基于带权哈希码的多媒体数据跨模态检索方法及系统 | |
CN113535912B (zh) | 基于图卷积网络和注意力机制的文本关联方法及相关设备 | |
WO2020005599A1 (en) | Trend prediction based on neural network | |
CN116547681A (zh) | 用于持续演进内容的动态语言模型 | |
Bai et al. | Memory consolidation for contextual spoken language understanding with dialogue logistic inference | |
US20230368003A1 (en) | Adaptive sparse attention pattern | |
CN116340635A (zh) | 物品推荐方法、模型训练方法、装置及设备 | |
CN117371447A (zh) | 命名实体识别模型的训练方法、装置及存储介质 | |
CN117396888A (zh) | 决策树在神经网络中的并入 | |
CN116415624A (zh) | 模型训练方法及装置、内容推荐方法及装置 | |
CN113420561B (zh) | 一种命名实体识别方法、装置、设备及存储介质 | |
CN116737607B (zh) | 样本数据缓存方法、系统、计算机设备和存储介质 | |
CN113779225B (zh) | 实体链接模型的训练方法、实体链接方法及装置 | |
CN117786234B (zh) | 一种基于两阶段对比学习的多模态资源推荐方法 | |
CN117009374A (zh) | 计算引擎确定方法、装置、存储介质及计算机设备 | |
Dong et al. | An optimization method for pruning rates of each layer in CNN based on the GA-SMSM |
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 |