CN114072820A - 执行机器学习模型 - Google Patents
执行机器学习模型 Download PDFInfo
- Publication number
- CN114072820A CN114072820A CN201980097196.1A CN201980097196A CN114072820A CN 114072820 A CN114072820 A CN 114072820A CN 201980097196 A CN201980097196 A CN 201980097196A CN 114072820 A CN114072820 A CN 114072820A
- Authority
- CN
- China
- Prior art keywords
- machine learning
- learning model
- node
- information
- executing
- 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
- 238000010801 machine learning Methods 0.000 title claims abstract description 818
- 238000000034 method Methods 0.000 claims abstract description 103
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 38
- 230000004044 response Effects 0.000 claims abstract description 13
- 238000003066 decision tree Methods 0.000 claims description 98
- 238000013528 artificial neural network Methods 0.000 claims description 75
- 238000012545 processing Methods 0.000 claims description 33
- 238000007637 random forest analysis Methods 0.000 claims description 27
- 238000004891 communication Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012706 support-vector machine Methods 0.000 claims description 7
- 238000012549 training Methods 0.000 description 29
- 238000007620 mathematical function Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 19
- 238000007792 addition Methods 0.000 description 9
- 238000012217 deletion Methods 0.000 description 9
- 230000037430 deletion Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000012886 linear function Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000035772 mutation Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229920000747 poly(lactic acid) Polymers 0.000 description 1
Images
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/29—Graphical models, e.g. Bayesian networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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
-
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/043—Distributed expert systems; Blackboards
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Medical Informatics (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Mobile Radio Communication Systems (AREA)
- Machine Translation (AREA)
Abstract
本文所描述的实施例提供了用于执行机器学习模型的方法和装置。在第一节点处,基于第一数据集并使用机器学习算法开发第一机器学习模型。在第二节点处,基于第一机器学习模型和第二数据集并使用机器学习算法开发第二机器学习模型。关于第一机器学习模型与第二机器学习模型之间的差异的信息从第二节点被传送到第一节点。在第一节点处接收对执行机器学习模型的请求。响应于接收到对执行机器学习模型的请求,在第一节点处获得指示执行策略的信息。最后,取决于所获得的指示执行策略的信息:在第一节点处执行基于第一机器学习模型和关于第一机器学习模型与第二机器学习模型之间的差异的信息的机器学习模型以获得结果;或者在第一节点处部分地执行第一机器学习模型,并在第二节点处部分地执行第二机器学习模型,以获得结果。
Description
技术领域
本文所描述的实施例涉及用于执行机器学习模型的方法和装置。
背景技术
图1示出了网络100的示例。网络100包括中央节点102和多个边缘节点104a、104b、104c。在该示例中,边缘节点104a、104b、104c分别通过链路106a、106b、106c通信地互连到中央节点102。边缘节点104a、104b、104c可以是基于边缘的部署的示例,中央节点102可以是集中式部署的示例。应当理解,在本公开的上下文中,基于边缘的部署是指在其中可以执行或训练机器学习模型的环境,其中该环境比集中式环境更接近数据源,诸如数据中心(例如,中央节点102)。例如,基于边缘的部署可以包括用户设备。
如上文所描述的,中央节点102可以包括一个或多个集中式数据集。这些一个或多个集中式数据集可被用于训练机器学习模型。通常,需要大型的集中式数据集来训练准确的机器学习模型。
然而,对训练机器学习模型的集中式数据集的该需要可以通过采用分布式机器学习技术(例如,联邦学习)来补充。通过采用分布式机器学习技术,可以在网络100内的边缘节点104a、104b、104c中继续训练经训练的机器学习模型。可以使用被包括在边缘节点104a、104b、104c内的数据集来执行该进一步的机器学习模型的训练。在一些实施例中,被包括在边缘节点104a、104b、104c内的数据集将已经在边缘节点104a、104b、104c处本地生成。
因此,分布式机器学习技术允许在边缘节点104a、104b、104c处训练更新的机器学习模型,其中,已经使用尚未被传送到中央节点102(机器学习模型在此被初始训练)且中央节点102未知的数据来训练了这些更新的机器学习模型。换句话说,可以使用仅在边缘节点104a、104b、104c处可访问并且在网络100内的其他节点处不可访问的数据集来在边缘节点104a、104b、104c本地训练更新的机器学习模型。本地数据集可包括未被传送到网络100内的其他节点的敏感信息或另外的私有信息。
分布式学习技术的一个优点在于,减少了将大量数据从边缘节点104a、104b、104c(例如,分别通过链路106a、106b、106c)传送到中央节点102的需要,因为集中式数据集可能不需要在中央节点102处提供。又一优点在于,可以减少在中央节点102处所需的数据存储量。
此外,有利的是,如果边缘节点104a、104b、104c将更新的机器学习模型传送到中央节点102,则仅需要将更新(换句话说,变化)传送到机器学习模型,并且不需要传送整个更新的机器学习模型。因此,可以在网络100中更安全地训练和传送更新的机器学习模型。
此外,由于仅传送对机器学习模型的更新,因此,很少或没有与曾被用于训练更新的机器学习模型的数据集相关的信息被传送到中央节点102。这保护了曾被用于训练更新的机器学习模型的数据集的隐私,因为没有与数据(其可能已经在中央节点102处生成)相关的信息被传送到中央节点102。
然而,如果机器学习模型包括神经网络,则该技术仅能够保护更新的机器学习模型以及被存储在边缘节点104a、104b、104c处的数据集的隐私。
例如,当机器学习模型包括决策树(其与神经网络类似,采用计算图)时,如果对机器学习模型的更新包括对在决策树内包括的决策节点的改变,则该更新可以向中央节点102提供与曾被用于训练更新的决策树的数据集相关的信息。例如,可以推断与用于在中央节点102处训练更新的模型的数据集相关的信息,其中该数据集旨在对边缘节点104a、104b、104c保持私有。在对在边缘节点104a、104b、104c处生成和/或存储的数据的隐私要求非常高的情况下,这可能是不可接受的。例如,中央节点102可以代表服务提供商,边缘节点104a、104b、104c可以代表服务提供商的客户。在该示例中,可能要求在客户环境处生成和/或存储的数据(以及可从该数据推断的信息)本地保留在客户环境内。这例如在某些医疗环境中、在某些电信环境中(其中可以采用在特定节点和/或部署中生成和/或存储的数据的地理围栏)可能是要求,并且也可能被要求符合数据保护规则,诸如欧盟通用数据保护条例(GDPR)。
因此,能够以不透露与曾被用于训练更新的机器学习模型的数据集相关的信息的方式传送已在边缘节点104a、104b、104c处被训练的更新的机器学习模型的更新会是有利的。
发明内容
根据第一方面,提供了一种用于执行机器学习模型的方法,该方法包括:
在第一节点处,基于第一数据集并使用机器学习算法,开发第一机器学习模型;
在第二节点处,基于第一机器学习模型和第二数据集并使用机器学习算法,开发第二机器学习模型;
从第二节点向第一节点传送关于第一机器学习模型与第二机器学习模型之间的差异的信息;
在第一节点处,接收对执行机器学习模型的请求;
响应于接收到对执行机器学习模型的请求,在第一节点处,获得指示执行策略的信息;以及
取决于所获得的指示执行策略的信息:
在第一节点处,执行基于第一机器学习模型和关于第一机器学习模型与第二机器学习模型之间的差异的信息的机器学习模型,以获得结果;或者
在第一节点处部分地执行第一机器学习模型,并在第二节点处部分地执行第二机器学习模型,以获得结果。
根据另一方面,提供了一种用于执行机器学习模型的系统,该系统包括:
第一网络节点;以及
第二网络节点,
其中,该系统被配置为执行根据第一方面的方法。
根据另一方面,提供了一种计算机程序产品,包括计算机可读代码,该计算机可读代码被配置用于使得适合的编程处理器执行根据第一方面的方法。
根据又一方面,提供了一种计算机程序产品,包括有形计算机可读介质,该介质包含用于使得处理器执行方法的计算机可读指令,该方法包括:
在第一节点处,基于第一数据集并使用机器学习算法,开发第一机器学习模型;
在第二节点处,基于第一机器学习模型和第二数据集并使用机器学习算法,开发第二机器学习模型;
从第二节点向第一节点传送关于第一机器学习模型与第二机器学习模型之间的差异的信息;
在第一节点处,接收对执行机器学习模型的请求;
响应于接收到对执行机器学习模型的请求,在第一节点处,获得指示执行策略的信息;以及
取决于所获得的指示执行策略的信息:
在第一节点处,执行基于第一机器学习模型和关于第一机器学习模型与第二机器学习模型之间的差异的信息的机器学习模型,以获得结果;或者
在第一节点处部分地执行第一机器学习模型,并在第二节点处部分地执行第二机器学习模型,以获得结果。
根据第二方面,提供了一种用于执行在第一节点中执行的机器学习模型的方法,该方法包括:
在第一节点处,基于第一数据集并使用机器学习算法,开发第一机器学习模型;
向第二网络节点传送第一机器学习模型;
从第二节点接收关于第一机器学习模型与第二机器学习模型之间的差异的信息;
接收对执行机器学习模型的请求;
响应于接收到对执行机器学习模型的请求,获得指示执行策略的信息;以及
取决于所获得的指示执行策略的信息:
执行基于第一机器学习模型和关于第一机器学习模型与第二机器学习模型之间的差异的信息的机器学习模型,以获得结果;或者
部分地执行第一机器学习模型,并使得第二节点部分地执行第二机器学习模型,以获得结果。
根据另一方面,提供了一种用于执行机器学习模型的第一网络节点,该第一网络节点包括:
接口,其被配置用于允许与其他网络节点通信;
存储器;以及
处理器,
其中,第一网络节点被配置为执行根据第二方面的方法。
根据另一方面,提供了一种计算机程序产品,包括计算机可读代码,该计算机可读代码被配置用于使得适合的编程处理器执行根据第二方面的方法。
根据又一方面,提供了一种计算机程序产品,包括有形计算机可读介质,该介质包含用于使得处理器执行方法的计算机可读指令,该方法包括:
在第一节点处,基于第一数据集并使用机器学习算法,开发第一机器学习模型;
向第二网络节点传送第一机器学习模型;
从第二节点接收关于第一机器学习模型与第二机器学习模型之间的差异的信息;
接收对执行机器学习模型的请求;
响应于接收到对执行机器学习模型的请求,获得指示执行策略的信息;以及
取决于所获得的指示执行策略的信息:
执行基于第一机器学习模型和关于第一机器学习模型与第二机器学习模型之间的差异的信息的机器学习模型,以获得结果;或者
部分地执行第一机器学习模型,并使得第二节点部分地执行第二机器学习模型,以获得结果。
根据第三方面,提供了一种用于执行在第二节点中执行的机器学习模型的方法,该方法包括:
从第一节点接收第一机器学习模型;
基于第一机器学习模型和第二数据集并使用机器学习算法,开发第二机器学习模型;
将关于第一机器学习模型与第二机器学习模型之间的差异的信息传送到第一节点;
从第一节点接收部分结果;
使用第一部分结果来部分地执行第二机器学习模型,以形成第二部分结果;以及
将第二部分结果传送到第一节点。
根据另一方面,提供了一种用于执行机器学习模型的第二网络节点,该第二网络节点包括:
接口,其被配置用于允许与其他网络节点通信;
存储器;以及
处理器,
其中,第二网络节点被配置为执行根据第三方面的方法。
根据另一方面,提供了一种计算机程序产品,包括计算机可读代码,该计算机可读代码被配置用于使得适合的编程处理器执行根据第三方面的方法。
根据又一方面,提供了一种计算机程序产品,包括有形计算机可读介质,该介质包含用于使得处理器执行方法的计算机可读指令,该方法包括:
从第一节点接收第一机器学习模型;
基于第一机器学习模型和第二数据集并使用机器学习算法,开发第二机器学习模型;
将关于第一机器学习模型与第二机器学习模型之间的差异的信息传送到第一节点;
从第一节点接收部分结果;
使用第一部分结果来部分地执行第二机器学习模型,以形成第二部分结果;以及
将第二部分结果传送到第一节点。
根据第四方面,提供了一种用于开发机器学习模型的方法,该方法包括:
在第一节点处,基于第一数据集并使用机器学习算法,开发第一机器学习模型;
在第二节点处,基于第一机器学习模型和第二数据集并使用机器学习算法,开发第二机器学习模型;
从第二节点向第一节点传送关于第一机器学习模型与第二机器学习模型之间的差异的信息。
关于第一机器学习模型与第二机器学习模型之间的差异的信息可以包括第二机器学习模型与第一机器学习模型不同的信息。
关于第一机器学习模型与第二机器学习模型之间的差异的信息可以包括第二机器学习模型与第一机器学习模型不同的信息,或者可以包括第二机器学习模型与第一机器学习模型没有不同的信息。
关于第一机器学习模型与第二机器学习模型之间的差异的信息可以进一步包括标识第一机器学习模型与第二机器学习模型之间的差异的信息。
关于第一机器学习模型与第二机器学习模型之间的差异的信息可以进一步包括第二机器学习模型。
第一机器学习模型和第二机器学习模型可以各自能够由计算图表示。计算图则可以是有向无环图。
第一机器学习模型和第二机器学习模型可以各自是以下各项之一:神经网络,支持向量机,决策树,以及随机森林。
根据另一方面,提供了一种用于开发机器学习模型的系统,该系统包括:
第一网络节点;以及
第二网络节点,
其中,该系统被配置为执行根据第四方面的方法。
根据另一方面,提供了一种计算机程序产品,包括计算机可读代码,该计算机可读代码被配置用于使得适合的编程处理器执行根据第四方面的方法。
根据又一方面,提供了一种计算机程序产品,包括有形计算机可读介质,该介质包含用于使得处理器执行方法的计算机可读指令,该方法包括:
在第一节点处,基于第一数据集并使用机器学习算法,开发第一机器学习模型;
在第二节点处,基于第一机器学习模型和第二数据集并使用机器学习算法,开发第二机器学习模型;
从第二节点向第一节点传送关于第一机器学习模型与第二机器学习模型之间的差异的信息。
根据第五方面,提供了一种用于执行机器学习模型的方法,该方法包括:
在第一节点处,接收对执行机器学习模型的请求;
响应于接收到对执行机器学习模型的请求,在第一节点处,获得指示执行策略的信息;以及
取决于所获得的指示执行策略的信息:
在第一节点处,执行基于第一机器学习模型和关于第一机器学习模型与第二机器学习模型之间的差异的信息的机器学习模型,以获得结果;或者
在第一节点处部分地执行第一机器学习模型,并在第二节点处部分地执行第二机器学习模型,以获得结果。
该方法还可包括:传送所获得的结果。
在第一节点处部分地执行第一机器学习模型并在第二节点处部分地执行第二机器学习模型以获得结果的步骤可包括:
在第一节点处,部分地执行第一机器学习模型;以及
在第一节点处,使得第二机器学习模型基于关于第一机器学习模型与第二机器学习模型之间的差异的信息而在第二节点处被部分地执行。
关于第一机器学习模型与第二机器学习模型之间的差异的信息可以包括第二机器学习模型与第一机器学习模型不同的信息。
关于第一机器学习模型与第二机器学习模型之间的差异的信息可以包括第二机器学习模型与第一机器学习模型不同的信息,或者可以包括第二机器学习模型与第一机器学习模型没有不同的信息。
关于第一机器学习模型与第二机器学习模型之间的差异的信息可以进一步包括标识第一机器学习模型与第二机器学习模型之间的差异的信息。
关于第一机器学习模型与第二机器学习模型之间的差异的信息可以进一步包括第二机器学习模型。
可以从策略节点获得指示执行策略的信息。
可以从第一节点中的存储器获得指示执行策略的信息。
当指示执行策略的信息包括指示在第一节点处执行基于第一机器学习模型和关于第一机器学习模型与第二机器学习模型之间的差异的信息的机器学习模型的信息时,所述信息还可包括指示所述机器学习模型的至少一部分应当在飞地(enclaved)模式中被执行的信息。
当指示执行策略的信息包括指示在第一节点处部分地执行第一机器学习模型并在第二节点处部分地执行第二机器学习模型的信息时,所述信息还可包括指示所述第一机器学习模型或所述第二机器学习模型的至少一个组件应当在飞地模式中被执行的信息。
第一机器学习模型和第二机器学习模型可以各自能够由计算图表示。计算图可以是有向无环图。
第一机器学习模型和第二机器学习模型可以各自是以下各项之一:神经网络,支持向量机,决策树,以及随机森林。
在第一节点处执行基于第一机器学习模型和关于第一机器学习模型与第二机器学习模型之间的差异的信息的机器学习模型以获得结果的步骤可包括:在第一节点处,在飞地存储器段中至少部分地执行基于第一机器学习模型和关于第一机器学习模型与第二机器学习模型之间的差异的信息的机器学习模型。
在第一节点处部分地执行第一机器学习模型并在第二节点处部分地执行第二机器学习模型以获得结果的步骤可包括:在第一节点处,在飞地存储器段中执行第一机器学习模型的至少一个组件。
在第一节点处部分地执行第一机器学习模型并在第二节点处部分地执行第二机器学习模型以获得结果的步骤可包括:在第二节点处,在飞地存储器段中执行第二机器学习模型的至少一个组件。
在第一节点处部分地执行第一机器学习模型并在第二节点处部分地执行第二机器学习模型以获得结果的步骤可包括:
在第一节点处,部分地执行第一机器学习模型,以形成第一部分结果;
从第一节点向第二节点传送第一部分结果;
在第二节点处,使用第一部分结果来部分地执行第二机器学习模型,以形成第二部分结果;
从第二节点向第一节点传送第二部分结果;
在第一节点处,使用第二部分结果来部分地执行第一机器学习模型,以形成最终结果。
根据另一方面,提供了一种用于执行机器学习模型的系统,该系统包括:
第一网络节点;以及
第二网络节点,
其中,该系统被配置为执行根据第五方面的方法。
根据另一方面,提供了一种计算机程序产品,包括计算机可读代码,该计算机可读代码被配置用于使得适合的编程处理器执行根据第五方面的方法。
根据又一方面,提供了一种计算机程序产品,包括有形计算机可读介质,该介质包含用于使得处理器执行方法的计算机可读指令,该方法包括:
在第一节点处,接收对执行机器学习模型的请求;
响应于接收到对执行机器学习模型的请求,在第一节点处,获得指示执行策略的信息;以及
取决于所获得的指示执行策略的信息:
在第一节点处,执行基于第一机器学习模型和关于第一机器学习模型与第二机器学习模型之间的差异的信息的机器学习模型,以获得结果;或者
在第一节点处部分地执行第一机器学习模型,并在第二节点处部分地执行第二机器学习模型,以获得结果。
附图说明
为了更好地理解本发明并显示本发明可以如何实现,现在将仅通过示例的方式参考附图,其中:
图1示出了网络的示例;
图2示出了根据一些实施例的包括处理器(或逻辑)的第一节点;
图3示出了根据一些实施例的包括处理器(或逻辑)的第二节点;
图4示出了决策树的示例;
图5示出了神经网络的示例;
图6示出了用于执行机器学习模型的序列图;以及
图7示出了根据本公开的一些实施例的用TM于执行机器学习模型的方法。
具体实施方式
以下描述阐述了根据本公开的示例实施例。进一步的示例实施例和实施方式对于本领域的普通技术人员将是显而易见的。进一步地,本领域的普通技术人员将认识到,可以应用各种等同技术来代替或结合以下讨论的实施例,并且所有这样的等同技术应被视为由本公开所包含。
以下阐述了特定细节,诸如特定实施例以用于解释而非限制的目的。但是,本领域的技术人员将理解到,除了这些特定细节之外,可以使用其他实施例。在一些实例中,众所周知的方法、节点、接口、电路和设备的详细描述被省略,以便不必要的细节模糊该描述。本领域的技术人员将理解,所描述的功能可以使用硬件电路(例如,相互连接以执行专用功能的模拟和/或离散逻辑门、ASIC、PLA等)和/或使用软件程序和数据并结合特别适于基于执行这样的程序来执行本文所公开的处理的一个或多个数字微处理器或通用计算机而被实现在一个或多个节点中。使用空中接口通信的节点还具有适合的无线电通信电路。而且,本技术可以附加地被认为是完全实现在任何形式的计算机可读存储器内,诸如固态存储器、磁盘、或光盘,其包含会使得处理器执行本文所描述的技术的适当的计算机指令集。
硬件实现方式可以包括或者涵盖但不限于能够执行这样的功能的数字信号处理器(DSP)硬件、精简指令集处理器、硬件(例如,数字或者模拟)电路(包括但不限于(一个或多个)专用集成电路(ASIC)和/或(一个或多个)现场可编程门阵列(FPGA))、以及(在适当的情况下)状态机。
在计算机实现方面,计算机通常被理解为包括一个或多个处理器、一个或多个处理模块或一个或多个控制器,并且术语“计算机”、“处理器”、“处理模块”和“控制器”可以互换使用。当由计算机、处理器或控制器提供时,功能可以由单个专用计算机或处理器或控制器、由单个共享计算机或处理器或控制器、或由多个单独的计算机或处理器或控制器(其中的一些可以被共享或被分布)提供。而且,术语“处理器”或“控制器”还是指能够执行这样的功能和/或执行软件的其他硬件,诸如上文记载的示例硬件。
描述涉及网络节点(可包括多个网络节点)之间的通信。然而,网络节点可包括无线电接入节点,例如如3GPP定义的eNodeB(eNB)、或者在预期满足5G要求的未来标准中使用的gNodeB(gNB)。然而,应当理解,本文所描述的概念可以涉及任何网络节点。而且,在以下描述涉及在网络节点中或由网络节点采取的步骤的情况下,这还包括一些或所有的处理和/或决策制定步骤可以在与无线电接入节点的无线电天线物理分离但与其逻辑连接的设备中执行的可能性。因此,在“在云中”执行处理和/或决策制定的情况下,出于这些目的,相关的处理设备被认为是无线电接入节点的一部分。
本文所描述的实施例提供了用于执行机器学习模型的方法和装置,该执行是基于在机器学习模型的不同部分已在其中被更新的不同节点之间存在的策略。特别地,本文所描述的实施例减轻了上文所描述的问题。
图2示出了根据一些实施例的第一网络节点200,其包括处理电路(或逻辑)202。处理电路202控制第一网络节点200的操作,并且可以实现本文中关于第一网络节点200所描述的方法。处理电路202可包括一个或多个处理器、处理单元、多核处理器或者模块,其被配置或者被编程为以本文所描述的方式控制第一网络节点200。在特定实现中,处理电路202可包括多个软件和/或硬件模块,其各自被配置为执行或用于执行本文中关于第一网络节点200所描述的方法的单独或多个步骤。
简要地,第一网络节点200的处理电路202被配置为执行用于执行机器学习模型的方法,该方法包括:基于第一数据集并使用机器学习算法,开发第一机器学习模型;将第一机器学习模型传送到第二网络节点;从第二节点接收关于第一机器学习模型与第二机器学习模型之间的差异的信息;接收对执行机器学习模型的请求;响应于接收到对执行机器学习模型的请求,获得指示执行策略的信息;以及取决于所获得的指示执行策略的信息:执行基于第一机器学习模型和关于第一机器学习模型与第二机器学习模型之间的差异的信息的机器学习模型,以获得结果;或者部分地执行第一机器学习模型,并使得第二节点部分地执行第二机器学习模型,以获得结果。
在一些实施例中,部分地执行第一机器学习模型并使得第二节点在第二节点处部分地执行第二机器学习模型以获得结果的步骤包括:部分地执行第一机器学习模型;以及使得第二节点基于关于第一机器学习模型与第二机器学习模型之间的差异的信息来部分地执行第二机器学习模型。
在一些实施例中,第一网络节点200可以可选地包括通信接口204。第一网络节点200的通信接口204可以用于与其他节点(诸如其他虚拟节点)通信。例如,第一网络节点200的通信接口204可以被配置为向其他节点发送和/或从其他节点接收请求、资源、信息、数据、信号等。第一网络节点200的处理电路202可以被配置为控制第一网络节点200的通信接口204以向其他节点发送和/或从其他节点接收请求、资源、信息、数据、信号等。
可选地,第一网络节点200可包括存储器206。在一些实施例中,第一网络节点200的存储器206可以被配置为存储可以由第一网络节点200的处理电路202执行以执行本文中关于第一网络节点200所描述的方法的程序代码。可替代地或附加地,第一网络节点200的存储器206可以被配置为存储本文所描述的任何请求、资源、信息、数据、信号等。第一网络节点200的处理电路202可以被配置为控制第一网络节点200的存储器206以存储本文所描述的任何请求、资源、信息、数据、信号等。
本文所描述的第一网络节点200可以包括例如在服务提供商中的中央节点102、或者被包括在适合的网络(诸如图1中的网络100)内的任何其他适合的网络节点。
图3示出了根据一些实施例的第二网络节点300,其包括处理电路(或逻辑)302。处理电路302控制第二网络节点300的操作,并可以实现本文中关于第二网络节点300所描述的方法。处理电路302可包括一个或多个处理器、处理单元、多核处理器或者模块,其被配置或者被编程为以本文所描述的方式控制第二网络节点300。在特定实现中,处理电路302可包括多个软件和/或硬件模块,其各自被配置为执行或用于执行本文中关于第二网络节点300所描述的方法的单独或多个步骤。
简要地,第二网络节点300的处理电路302被配置为执行用于执行机器学习模型的方法,该方法包括:从第一节点接收第一机器学习模型;基于第一机器学习模型和第二数据集并使用机器学习算法,开发第二机器学习模型;向第一节点传送关于第一机器学习模型与第二机器学习模型之间的差异的信息;从第一节点接收部分结果;使用第一部分结果来部分地执行第二机器学习模型,以形成第二部分结果;以及将第二部分结果传送到第一节点。
在一些实施例中,第二网络节点300可以可选地包括通信接口304。第二网络节点300的通信接口304可以用于与其他节点(诸如其他虚拟节点)通信。例如,第二网络节点300的通信接口304可以被配置为向其他节点发送和/或从其他节点接收请求、资源、信息、数据、信号等。第二网络节点300的处理电路302可以被配置为控制第二网络节点300的通信接口304以向其他节点发送和/或从其他节点接收请求、资源、信息、数据、信号等。
可选地,第二网络节点300可包括存储器306。在一些实施例中,第二网络节点300的存储器306可以被配置为存储可以由第二网络节点300的处理电路302执行以执行本文中关于第二网络节点300所描述的方法的程序代码。可替代地或附加地,第二网络节点300的存储器306可以被配置为存储本文所描述的任何请求、资源、信息、数据、信号等。第二网络节点300的处理电路302可以被配置为控制第二网络节点300的存储器306以存储本文所描述的任何请求、资源、信息、数据、信号等。
本文所描述的第二网络节点300可以包括例如在客户中的边缘节点104a、104b、104c、或者被包括在适合的网络(诸如图1中的网络100)内的任何其他适合的网络节点。
图4示出了决策树400的示例。应当理解,决策树400是计算图的示例。
被包括在决策树400内的第一节点是根节点402。根节点402是决策树400的最顶层的节点,并因此没有父节点。被包括在决策树400内的所有其他节点可通过循着决策树400的边(链接)而从根节点402到达。
在该示例中,根节点402具有三个子节点404a、404b和404c。根节点402的这些子节点404a、404b和404c可以分别通过边406a、406b和406c而从根节点402到达。
在该示例中,根节点402的子节点404a本身具有两个子节点408a和408b(其可以分别通过边410a和410b而从节点404a到达)。根节点402的子节点404c本身也具有两个子节点412a和412b(其可以分别通过边414a和414b而从节点404c到达)。因此,决策树400的节点402、404a和404c可以被描述为决策树400的内部节点(或可替代地,分支节点)。决策树400的内部节点是被包括在决策树400内的具有子节点的任何节点。
在该示例中,根节点402的子节点404b没有子节点。类似地,节点408a、408b、412a和412b没有子节点。因此,节点404b、408a、408b、412a和412b可以被描述为决策树400的外部节点(或可替代地,叶节点)。决策树400的外部节点是被包括在决策树400内的没有子节点的任何节点。
决策树400可以被用作机器学习模型。机器学习模型将从根节点402开始,并且对于决策树400的任何给定节点,机器学习模型将仅传递到该节点的子节点之一。
在一个示例中,决策树400可用于基于一个或多个其他连续或分类变量(这些变量的值是已知的)来预测分类变量的目前未知类。在另一个示例中,决策树400可用于基于一个或多个其他连续或分类变量(这些变量的值是已知的)来预测连续变量的目前未知值。因此,将理解,在一些示例中,决策树400的外部节点可以表示分类变量的类。在其他示例中,决策树400的外部节点可以表示连续变量的值。决策树400的内部节点可表示条件。其他连续变量或分类变量中的一个或多个是否满足所述条件将确定机器学习模型将传递到内部节点的哪个子节点。换句话说,给定一个或多个其他连续或分类变量(这些变量的值是已知的),这将确定机器学习模型将如何从根节点402进展到子节点。
例如,内部节点404a可表示用于连续变量的阈值。如果连续变量超过该阈值,则机器学习模型可以传递到外部节点408a,并且机器学习模型的输出将是由外部节点408a表示的类或值。如果连续变量未能超过阈值,则机器学习模型可以传递到外部节点408b,并且机器学习模型的输出将是由外部节点408b表示的类或值。
应当理解,可以使用ID3、C4.5、CART或任何其他适合的机器学习算法来生成决策树(例如,决策树400)。该生成可以基于训练数据集。机器学习模型将旨在准确预测的分类(在分类树的情况下)或回归值(在回归树的情况下)在训练数据集被应用于决策树400之前将已经是已知的。
此外,应当理解,决策树400是有向无环图(DAG)的示例。有向无环图是不包含有向环的有向图。
随机森林(或可替代地,随机决策森林)是从训练数据集生成多个决策树的机器学习模型。换句话说,随机森林是决策树的集成。应当理解,这些多个决策树中的每一个可以再次使用ID3、C4.5、CART或任何其他适合的机器学习算法生成。然而,训练数据集可以采用替换来被随机采样,然后,训练数据的每个随机采样子集可用于训练被包括在随机森林内的对应的决策树。然而,可以使用生成随机森林的任何其他合适的方法。
作为机器学习模型,随机森林将输出类,该类是由随机森林的个体决策树输出的类的众数,或者随机森林将输出值,该值是由随机森林的个体决策树输出的值的平均值。因此,由随机森林预测的输出值或类可以比由个体决策树预测的输出值或类更准确。
图5示出了神经网络500的示例。应当理解,神经网络500是计算图的示例。
神经网络500包括四层:输入层502,第一隐藏层504,第二隐藏层506和输出层508。因此,在该示例中,神经网络500包括两个隐藏层。然而,应当理解,神经网络500可包括任何数量的隐藏层。
神经网络500可以被用作机器学习模型。机器学习模型将从输入层502开始,并且在每一层将传递到直接在该层之后的层,直到到达输出层508。
在一个示例中,神经网络500可用于基于一个或多个其他连续或分类变量(这些变量的值是已知的)来预测分类变量的目前未知类。在另一个示例中,神经网络500可用于基于一个或多个其他连续或分类变量(这些变量的值是已知的)来预测连续变量的目前未知值。
在该示例中,输入层502包括三个节点502a、502b和502c。然而,应当理解,神经网络500的输入层可包括任何适合数量的输入节点。输入节点的数量可以对应于要被输入到神经网络500中的已知变量的数量。
在该示例中,输出层包括两个输出节点508a和508b。然而,应当理解,神经网络500的输出层可包括任何适合数量的输出节点。例如,输出节点的数量可以表示变量可被预测为的可能类的数量。此外,由每个输出节点输出的值可以表示变量属于每个输出节点分别表示的每个类的概率。
如上文所提到的,神经网络500包括两个隐藏层。第一隐藏层504包括四个节点504a、504b、504c和504d。第二隐藏层506也包括四个节点506a、506b、506c和506d。然而,应当理解,在神经网络500内的隐藏层可包括任何适合数量的节点。
如图5的所示示例中所见,被包括在输入层502内的节点502a、502b、502c各自连接到被包括在第一隐藏层504内的每个节点504a、504b、504c、504d。因此,被输入到输入层502中的信息沿着这些边被传递到第一隐藏层504的每个节点。神经网络500的节点之间的边可包括权重。权重可以修改在节点之间传递的值。
在一些示例中,权重可以对应于针对特定节点的输入的相对“强度”,并且在一些示例中可以对应于在神经网络500中的特定点处一个输入对另一输入的依赖度。
在第一隐藏层504内的每个节点504a、504b、504c、504d包括数学函数。被包括在每个节点504a、504b、504c、504d中的数学函数可以是相同的函数,或者它们可以是不同的函数。被包括在节点内的数学函数将被应用于已被输入到所述节点中的数据。例如,被包括在节点504a内的数学函数将被应用于已经从节点502a、502b和502c传递到节点504a的数据。
在数学函数的该应用之后,应用被包括在节点内的数学函数的结果将传递到神经网络500的下一层。例如,应用被包括在节点504a内的数学函数的结果将沿着分别连接节点504a和每个节点506a、506b、506c和506d的边传递到被包括在第二隐藏层506内的节点506a、506b、506c和506d。
在第二隐藏层506内的每个节点506a、506b、506c、506d包括数学函数。被包括在每个节点506a、506b、506c、506d中的数学函数可以是相同的函数,或者它们可以是不同的函数。被包括在节点内的数学函数将被应用于已被输入到所述节点中的数据。例如,被包括在节点506a内的数学函数将被应用于已经从节点504a、504b,504c和504d传递到节点506a的数据。
在数学函数的该应用之后,应用被包括在节点内的数学函数的结果将传递到神经网络500的下一层。例如,应用被包括在节点506a内的数学函数的结果将沿着分别连接节点506a和每个节点508a和508b的边传递到被包括在输出层508内的节点508a和508b。
因此,应当理解,被包括在神经网络500的隐藏层内的节点将包括数学函数,该数学函数可以被应用于已传递到节点的数据,然后,应用这些数学函数的结果可以被传递到被包括在神经网络500的下一层内的节点。
在输出层508内的每个节点508a、508b包括数学函数。被包括在每个节点508a、508b中的数学函数可以是相同的函数,或者它们可以是不同的函数。被包括在节点内的数学函数将被应用于已被输入到所述节点中的数据。例如,被包括在节点508a内的数学函数将被应用于已经从节点506a、506b、506c和506d传递到节点508a的数据。
在一些示例中,被包括在输出层508的节点508a、508b内的数学函数可以是softmax函数。例如,将softmax函数分配给被包括在神经网络500的输出层内的每个节点可以提供变量属于每个输出节点分别被分配以表示的类的概率的指示。
被包括在神经网络500的节点内的数学函数也可以被称为激活函数,或者可替代地,它们可以被称为传递函数。数学函数可以是非线性函数以便将非线性引入神经网络500,或者可以是线性函数。例如,数学函数可以是以下函数之一:sigmoid函数,双曲正切函数,或修正线性函数。
因此,应当理解,被包括在神经网络500内的隐藏层的数量以及被包括在隐藏层内的节点的数量可以是设计选择。
神经网络500通常用训练数据集来训练。机器学习模型将旨在准确预测的分类(在分类神经网络的情况下)或回归值(在回归神经网络的情况下)在训练数据集被应用于神经网络500之前将已经是已知的。在训练过程期间,由神经网络500输出的分类(针对分类神经网络)或者由神经网络500输出的回归值(针对回归神经网络)将与被输入到神经网络500中的训练数据的已知分类或已知回归值相比较。为了提高神经网络500的预测的准确度,将调整沿着边传递以被输入到节点中的信息的权重。权重将被调整,以使得与由神经网络500产生的输出相对应的误差被最小化。技术人员将熟悉用于训练神经网络500的权重以使得与由神经网络500产生的输出相对应的误差被最小化的方法。
因此,神经网络500的权重将在训练过程期间被更新,以使得机器学习模型被训练以产生更准确的输出。将理解,最初权重可以被任意或随机地设置。
将理解,神经网络500是有向无环图(DAG)的示例。有向无环图是不包含有向环的有向图。
因此,决策树和神经网络都是机器学习模型的示例,该机器学习模型可以基于一个或多个其他连续或分类变量(这些变量的值是已知的)来预测分类变量的目前未知类,或者可替代地可用于基于一个或多个其他连续或分类变量(这些变量的值是已知的)来预测连续变量的目前未知值。
图6示出了用于执行机器学习模型的序列图,图7示出了用于执行机器学习模型的方法。本文所描述的方法可以在网络100中执行。
在步骤602处,基于第一数据集并使用机器学习算法,在第一网络节点200处开发第一机器学习模型。
在一些实施例中,可能已经在第一网络节点200处生成了第一数据集。可替代地,在一些实施例中,可能已经从一个或多个外部源接收第一数据集。可替代地,在一些实施例中,第一数据集可以包括已在第一网络节点200处生成的数据和已从一个或多个外部源接收的数据。第一数据集的源可以取决于网络100的安全和/或隐私要求。例如,网络100的要求可以是数据不被传送,以使得它从它在其中被生成的网络节点传递到它不在其中被生成的网络节点。
在一些实施例中,第一数据集被分割,以使得第一数据集的80%被用于初始地训练第一机器学习模型,第一数据集的剩余20%被用于验证经训练的第一机器学习模型的输出。然而,将理解,为了机器学习模型的训练和验证的目的,任何适合的分割可被用于第一数据集。
将理解,第一机器学习模型可以是如上文所描述的机器学习模型之一。例如,第一机器学习模型可以是决策树(例如,决策树400)、神经网络(例如,神经网络500)、或随机森林。然而,将理解,第一机器学习模型可以是采用计算图的任何机器学习模型。例如,第一机器学习模型可以是支持向量机。在一些实施例中,所采用的计算图可以是有向无环图。
将理解,用于开发第一机器学习模型的机器学习算法可以是用于第一机器学习模型的任何适合的机器学习算法。借助于其中第一机器学习模型是决策树(例如,决策树400)的说明性示例,可以使用ID3、C4.5、CART或任何其他适合的机器学习算法来生成决策树。
因此,如图7的方法的步骤702所示,基于第一数据集并使用机器学习算法,在第一节点处开发第一机器学习模型。
在步骤604处,第一机器学习模型被传送到第二网络节点300。在一些实施例中,第一机器学习模型的序列化版本可以被传送到第二网络节点300。序列化版本可以是信息可在其中被表示的方式,该方式比例如使信息对于程序可访问的表示信息的方式(例如,被存储在程序可以读取以访问数据的存储器中的数据结构)对于网络转移更优化。例如,在其中第一机器学习模型包括神经网络的一些实施例中,第一机器学习模型的序列化版本可包括神经网络的结构和神经网络的权重。附加地或可替代地,第一网络节点200与第二网络节点300之间的该传送可以被加密。
在步骤606处,第二网络节点300向第一网络节点200传送第一机器学习模型已经被第二网络节点300接收的确认。
在步骤608处,基于第一机器学习模型和第二数据集,使用机器学习算法在第二网络节点300处开发第二机器学习模型。
在一些实施例中,可能已经在第二网络节点300处生成了第二数据集。可替代地,在一些实施例中,可能已从一个或多个外部源接收第二数据集。可替代地,在一些实施例中,第二数据集可以包括在第二网络节点300处被生成的数据和从一个或多个外部源接收的数据。第二数据集的源可取决于网络100的安全和/或隐私要求。例如,网络100的要求可以是数据不被传送,以使得它从它在其中被生成的网络节点传递到它不在其中被生成的网络节点。换句话说,在一些示例中,在第二节点300处被生成的数据(或信息)可能永不被传送给第一节点200。
在一些实施例中,第二数据集被分割,以使得第二数据集的80%被用于初始地训练第二机器学习模型,第二数据集的剩余20%被用于验证经训练的第二机器学习模型的输出。然而,将理解,为了机器学习模型的训练和验证的目的,任何适合的分割可被用于第二数据集。
用于开发第二机器学习模型的机器学习算法可以是如上文所描述的机器学习算法之一。具体地,用于开发第二机器学习模型的机器学习算法可以与用于开发第一机器学习模型的机器学习算法相同。
讲理解,第二机器学习模型可以是如上文所描述的机器学习模型之一。例如,第二机器学习模型可以是决策树(例如,决策树400)、神经网络(例如,神经网络500)、或随机森林。然而,将理解,第二机器学习模型可以是采用计算图的任何机器学习模型。例如,第二机器学习模型可以是支持向量机。在一些实施例中,计算图可以有向无环图。
将理解,用于开发第二机器学习模型的机器学习算法可以是用于第二机器学习模型的任何适合的机器学习算法。借助于其中第二机器学习模型是决策树(例如,决策树400)的说明性示例,可以使用ID3、C4.5、CART或任何其他适合的机器学习算法来生成决策树。
如上文所描述的,第二机器学习模型是基于第一机器学习模型。因此,在一些实施例中,第二机器学习模型可以基本上类似于第一机器学习模型,但是当与第一机器学习模型相比较时,第二机器学习模型包括一个或多个变异。
例如,在第一机器学习模型和第二机器学习模型是具有图4所示的决策树400形式的决策树的情况下,第一机器学习模型的内部节点404a可以表示第一条件;而第二机器学习模型的内部节点404a可以表示第二条件,其中,第一条件与第二条件不同。例如,第一条件可以包括用于特定变量的第一阈值,第二条件可以包括用于该特定变量的第二阈值。由于第二机器学习模型的进一步训练是基于第二数据集,因此,可导致该变异。
在另一个示例中,在第一机器学习模型和第二机器学习模型是随机森林的情况下,第一机器学习模型可以包括多个独决策树,第二机器学习模型可以包括相同数量的单独决策树。然而,第二机器学习模型的单独决策树中的一个或多个可以与第一机器学习模型的单独决策树不同。例如,作为基于第二数据集来训练第二机器学习模型的结果,作为该训练的结果而生成的一个或多个单独决策树可与作为基于第一数据集来训练第一机器学习模型的结果而生成的单独决策树不同。附加地或可替代地,第二机器学习模型的一个或多个单独决策树可以以如下文更详细描述的方式改变(例如,通过变异、添加或删除)。由于第二机器学习模型的进一步训练是基于第二数据集,因此,可导致这些变异。
在另一个示例中,在第一机器学习模型和第二机器学习模型是具有图5所示的神经网络500的一般形式的神经网络的情况下,连接第二机器学习模型的节点的边的权重中的一个或多个可与连接第一机器学习模型的节点的边的权重不同。由于第二机器学习模型的训练是基于与第一数据集相对的第二数据集,因此,可导致该变异。
附加地或者可替代地,在一些实施例中,第二机器学习模型可以基本上类似于第一机器学习模型,但是,当与第一机器学习模型相比较时,第二机器学习模型包括一个或多个添加。
例如,在第一机器学习模型和第二机器学习模型是具有图4所示的决策树400形式的决策树的情况下,第一机器学习模型的内部节点404a可以具有两个子节点408a、408b,如图4所示;而第二机器学习模型的内部节点404a可以具有子节点408a和408b,并且还可以具有附加的子节点。由于第二机器学习模型的进一步训练是基于第二数据集,因此,可导致该添加。
在另一个示例中,在第一机器学习模型和第二机器学习模型是随机森林的情况下,第一机器学习模型可以包括第一数量的单独决策树,第二机器学习模型可以包括第二数量的单独决策树,其中,第一数量大于第二数量。由于第二机器学习模型的训练是基于与第一数据集相对的第二数据集,因此,可导致该删除。
在另一个示例中,在第一机器学习模型和第二机器学习模型是具有图5所示的神经网络500的一般形式的神经网络的情况下,第一机器学习模型可以包括两个隐藏层502和504;而第二机器学习模型可以包括隐藏层502、504和附加的隐藏层。由于第二机器学习模型的进一步训练是基于第二数据集,因此,可导致该添加。
附加地或者可替代地,在一些实施例中,第二机器学习模型可以基本上类似于第一机器学习模型,但是,当与第一机器学习模型相比较时,第二机器学习模型包括一个或多个删除。
例如,在第一机器学习模型和第二机器学习模型是具有图4所示的决策树400形式的决策树的情况下,第一机器学习模型的内部节点404a可以具有两个子节点408a、408b;而第二机器学习模型的内部节点404a可以仅具有子节点408a。由于第二机器学习模型的进一步训练是基于第二数据集,因此,可导致该删除。
在另一个示例中,在第一机器学习模型和第二机器学习模型是随机森林的情况下,第一机器学习模型可以包括第一数量的单独决策树,第二机器学习模型可以包括第二数量的单独决策树,其中,第一数量小于第二数量。由于第二机器学习模型的进一步训练是基于第二数据集,因此,可导致该添加。
在另一个示例中,在第一机器学习模型和第二机器学习模型是具有图5所示的神经网络500的一般形式的神经网络的情况下,第一机器学习模型可以包括两个隐藏层502和504;而第二机器学习模型可以仅包括一个隐藏层502。由于第二机器学习模型的进一步训练是基于第二数据集,因此,可导致该删除。
因此,将理解,当与第一机器学习模型相比较时,第二机器学习模型可包括一个或多个变异、和/或一个或多个添加、和/或一个或多个删除。
因此,如图7的方法的步骤704所示,基于第一机器学习模型和第二数据集并使用机器学习算法,在第二节点处开发第二机器学习模型。
在步骤610处,在第二网络节点300处确定第一机器学习模型与第二机器学习模型之间的差异。
在一些实施例中,可以通过第一机器学习模型和第二机器学习模型的比较来识别该差异。在一些实施例中,当与第一机器学习模型相比较时,差异可以被识别为对第二机器学习模型的添加(或插入)。附加地或可替代地,当与第一机器学习模型相比较时,差异可以被识别为从第二机器学习模型的删除。附加地或可替代地,当与第一机器学习模型相比较时,差异可以被识别为第二机器学习模型的变异。
在步骤612处,关于第一机器学习模型与第二机器学习模型之间的差异的信息从第二网络节点300被传送到第一网络节点200。在一些实施例中,关于差异的信息的序列化版本可以被传送到第一网络节点200。例如,在其中第一机器学习模型和第二机器学习模型各自包括决策树的一些实施例中,关于差异的信息的序列化版本可以包括第一机器学习模型与第二机器学习模型之间的一个或多个差异在第一机器学习模型的结构中何处存在的指示。附加地或可替代地,第二网络节点300与第一网络节点200之间的该传送可以被加密。
在一些实施例中,关于差异的信息可包括第二机器学习模型与第一机器学习模型不同的信息。例如,关于差异的信息可当在第一机器学习模型与第二机器学习模型之间存在差异时包括检查点,并且当在第一机器学习模型与第二机器学习模型之间不存在差异时不包括检查点。在另一个示例中,关于差异的信息可当在第一机器学习模型与第二机器学习模型之间存在差异时包括消息,并且当在第一机器学习模型与第二机器学习模型之间不存在差异时不包括消息。换句话说,在一些实施例中,如果在第二机器学习模型与第一机器学习模型之间不存在差异,则没有信息从第二网络节点300发送到第一网络节点200。
在一些实施例中,关于差异的信息可包括第二机器学习模型与第一机器学习模型不同的信息,或者可以包括第二机器学习模型与第一机器学习模型没有不同的信息。例如,关于差异的信息可当在第一机器学习模型与第二机器学习模型之间存在差异时包括被设置的检查点,并且当在第一机器学习模型与第二机器学习模型之间不存在差异时包括未被设置的检查点。在另一个示例中,关于差异的信息可以当在第一机器学习模型与第二机器学习模型之间存在差异时包括第一消息,并且当在第一机器学习模型与第二机器学习模型之间不存在差异时包括第二消息。换句话说,在一些实施例中,不管在第一机器学习模型与第二机器学习模型之间是否存在差异,信息都从第二网络节点300发送到第一网络节点200。
在一些实施例中,关于第一机器学习模型与第二机器学习模型之间的差异的信息进一步包括标识第一机器学习模型与第二机器学习模型之间的差异的信息。例如,关于差异的信息可进一步包括标识第一机器学习模型与第二机器学习模型之间的差异的标识消息。在一些实施例中,标识差异的信息可以标识差异的类型。例如,信息可以标识差异包括一个或多个添加、和/或一个或多个删除、和/或一个或多个变异(如上文所描述的)。在一些实施例中,信息可标识在第二机器学习模型内存在差异的位置。
因此,在一些实施例中,尽管在第一网络节点与第二网络节点之间传送与第一机器学习模型与第二机器学习模型之间的差异相关的信息,但是,第二机器学习模型本身不在第一网络节点与第二网络节点之间被传送。这可以是网络100的安全和/或隐私要求,因为可以在第一网络节点200(如果它从第二网络节点300接收第二机器学习模型)推断与第二数据集(其是第二机器学习模型所基于的)相关的信息,尽管第二数据集尚未被传送到第一网络节点200。
在一些实施例中,关于第一机器学习模型与第二机器学习模型之间的差异的信息可进一步包括第二机器学习模型。
因此,如图7的方法的步骤706所示,关于第一机器学习模型与第二机器学习模型之间的差异的信息从第二节点被传送到第一节点。
在步骤614处,关于第一机器学习模型与第二机器学习模型之间的差异的信息在第一网络节点200处被附加到第一机器学习模型。在一些实施例中,检查点或消息可以被附加到第一机器学习模型,指示在第一机器学习模型与第二机器学习模型之间存在差异。在一些实施例中,标识检查点或标识消息可以被附加到第一机器学习模型,标识差异在何处存在和/或标识差异是什么。例如,标识检查点或标识消息可以指示差异是一个或多个添加、和/或一个或多个删除、和/或一个或多个变异。
在一些实施例中,附加关于第一机器学习模型与第二机器学习模型之间的差异的信息的步骤可以包括更新第一机器学习模型,以使得第一机器学习模型与第二机器学习模型之间的差异被并入第一机器学习模型中。
在步骤616处,在第一网络节点200处接收对执行机器学习模型的请求。该请求由第三节点800传送。第三节点800可以是被包括在适合的网络(诸如网络100)内的任何适合的网络节点。对执行的请求通常将伴随有推断数据集。推断数据集将包括与一个或多个变量相对应的数据,并且机器学习模型的执行将基于一个或多个输入变量的值和/或类,对机器学习模型已被训练以预测的不同变量提供分类或回归值。
将理解,第三节点800当请求在第一网络节点200处执行机器学习模型时可能不知道第一机器学习模型的当前状态。换句话说,第三节点800可能不知道已经在第二网络节点300处开发了第二机器学习模型,和/或不知道第一机器学习模型与第二机器学习模型之间的任何差异。
因此,如图7的方法的步骤708所示,在第一节点处接收对执行机器学习模型的请求。
在步骤618处,第一网络节点200向策略节点900传送对指示执行策略的信息的请求。策略节点900可以是被包括在适合的网络(诸如网络100)内的任何适合的网络节点。在一些实施例中,所传送的请求可包括与第一网络节点200和第二网络节点300相关的信息。在一些实施例中,该信息则可以由策略节点900使用以确定将被传送到第一网络节点200的指示执行策略的信息。
在步骤620处,策略节点900将指示执行策略的信息传送到第一网络节点200。因此,响应于接收到对执行机器学习模型的请求,第一网络节点200获得指示执行策略的信息。
在该所示的实施例中,从策略节点900获得指示执行策略的信息。然而,将理解,在一些实施例中,可以从第一网络节点200中的存储器获得指示执行策略的信息。
将理解,策略节点900可以对于第一网络节点200和第二网络节点300两者是可访问的。
在一些实施例中,指示执行策略的信息可以指示在第一网络节点200处应当执行基于第一机器学习模型和关于第一机器学习模型与第二机器学习模型之间的差异的信息的机器学习模型,以获得结果。可选地,指示执行策略的信息可进一步包括指示所述机器学习模型的至少一部分应当在飞地模式中被执行的信息。
通常,当在飞地模式中执行机器学习模型时,将在飞地存储器段中执行机器学习模型。下面将更详细地描述飞地存储器段。
可替代地,在一些实施例中,指示执行策略的信息可以指示第一机器学习模型应当在第一网络节点200处被部分地执行,并且第二机器学习模型应当在第二节点处被部分地执行,以获得结果。可选地,指示执行策略的信息可进一步包括指示所述第一机器学习模型或所述第二机器学习模型的至少一个组件应当在飞地模式中被执行的信息。
因此,如图7的方法的步骤710所示,响应于接收到对执行机器学习模型的请求,在第一节点处获得指示执行策略的信息。
取决于由第一网络节点200获得的指示执行策略的信息,第一网络节点200可以以两种方式中的一种来响应对执行机器学习模型的请求。
在第一实施例中(如图6的步骤622和624所示),第一网络节点200可以执行基于第一机器学习模型和关于第一机器学习模型与第二机器学习模型之间的差异的信息的机器学习模型,以获得结果。
在一些实施例中,执行基于第一机器学习模型和关于第一机器学习模型与第二机器学习模型之间的差异的信息的机器学习模型以获得结果的步骤可包括:更新第一机器学习模型,以使得第一机器学习模型与第二机器学习模型之间的差异被并入第一机器学习模型中,以形成机器学习模型。然后,可以执行该机器学习模型(其已在第一网络节点200处形成)以获得结果。
在一些实施例中,执行的步骤可包括:在第一网络节点200处,在飞地存储器段中,至少部分地执行基于第一机器学习模型和关于第一机器学习模型与第二机器学习模型之间的差异的信息的机器学习模型。
飞地存储器段提供安全且加密的存储器空间。此外,飞地存储器段可仅由在其内包括飞地存储器段的网络节点的处理电路访问,而不由任何其他装置访问。因此,可以执行机器学习模型,并且可以获得结果(或在一些实施例中,是部分结果),而不透露执行模型本身的中间步骤。这样做的可能优点可以是在执行机器学习模型时提高安全性。例如,由于只有第一网络节点200的处理电路202可以访问机器学习模型,因此,更能确保已被用于更新机器学习模型的数据集的隐私(例如,第三节点800将无法访问更新的模型,因此,将不能够推断与已被用于训练该模型的数据相关的任何信息)。
飞地存储器段依赖于在其中正在执行模型的包括特定硬件的网络节点。例如,第一网络节点200可以包括Intel SGXTM或AMDTM硬件,其中硬件的存储器加密依赖于提供飞地存储器段。
在步骤624处,第一网络节点200将所获得的结果传送到第三节点800。
因此,如图7的方法的步骤712a所示,在第一节点处,基于第一机器学习模型和关于第一机器学习模型与第二机器学习模型之间的差异的信息的机器学习模型被执行以获得结果。
因此,作为执行机器学习模型的结果,其中作为更新第一机器学习模型的结果而在第一网络节点200处形成机器学习模型,以使得第一机器学习模型与第二机器学习模型之间的差异被并入第一机器学习模型中,则在第一网络节点200处,在飞地存储器段中提供机器学习模型,该机器学习模型有利地包括已通过在第二网络节点300处训练第二机器学习模型而提供的更新,但不向第三节点800透露或推断与曾被用于在第二网络节点300处训练模型的数据相关的信息。因此,通过执行机器学习模型而获得的结果将可能更准确(因为机器学习模型包括上述的更新),此外,尚未危及已被用于提供该更新的数据的隐私。
此外,减少了从第二网络节点300向第一网络节点200传送大量数据的需要。此外,减少了在第一网络节点200处所需的数据存储量。
在第二实施例中(如图6的步骤626至636所示),第一机器学习模型可以在第一网络节点200处被部分地执行,并且第二机器学习模型可以在第二网络节点300处被部分地执行,以获得结果。
在步骤626处,第一网络节点200部分地执行第一机器学习模型。第一机器学习模型将使用推断数据集被部分地执行。在一些实施例中,在第一网络节点200处发生的部分执行是基于关于第一机器学习模型与第二机器学习模型之间的差异的信息。
例如,关于第一机器学习模型与第二机器学习模型之间的差异的信息可包括关于第一机器学习模型与第二机器学习模型之间的差异存在的第一机器学习模型的位置的信息。然后,可以执行第一机器学习模型,直到该差异存在的点。
在另一个示例中,在第一和第二机器学习模型是决策树(例如,与图4所示的决策树400大致相同的决策树)的情况下,关于差异的信息可以指示在第一机器学习模型中的第一机器学习模型和第二机器学习模型开始在此处彼此不同的节点。在另一个示例中,在第一和第二机器学习模型是神经网络(例如,与图5所示的神经网络500大致相同形式的神经网络)的情况下,关于差异的信息可以指示在第一机器学习模型中的第一机器学习模型和第二机器学习模型开始在此处彼此不同的层。可以执行第一机器学习模型,直到该差异存在的点。
在另一个示例中,在第一和第二机器学习模型是随机森林的情况下,关于差异的信息可以指示第一机器学习模型的第一机器学习模型和第二机器学习模型开始在此处彼此不同的一个或多个单独决策树,以及附加地或可替代地,一个或多个单独决策树中的节点。可以执行第一机器学习模型,直到该差异存在的点。
换句话说,关于第一机器学习模型与第二机器学习模型之间的差异的信息可以指示第一机器学习模型应当被执行到的点。也就是说,关于第一机器学习模型与第二机器学习模型之间的差异的信息可以规定第一机器学习模型的执行应当在哪个点被分支,以使得第二机器学习模型开始被执行。因此,被包括在第二网络节点300处的第二机器学习模型内的更新被包括在机器学习模型的执行中。
在一些实施例中,作为在第一网络节点200处部分地执行第一机器学习模型的结果,形成第一部分结果。例如,在第一和第二机器学习模型包括决策树(例如,与图4所示的决策树400大致相同形式的决策树)的情况下,第一部分结果可以是推断数据集和可选地第二机器学习模型的决策树的执行应当在此处被恢复的节点的指示。在另一个示例中,在第一和第二机器学习模型包括神经网络(例如,与图5所示的神经网络500大致相同形式的神经网络)的情况下,第一部分结果可以包括已从直接在第一和第二机器学习模型之间的差异存在的层之前的层输出的信息集。例如,在第一和第二机器学习模型包括随机森林的情况下,第一部分结果可以是推断数据集和可选地被包括在随机森林内的执行要在此处被恢复的一个或多个决策树的指示,可选地,对于这些一个或多个决策树中的每一个,第二机器学习模型的一个或多个决策树的执行应当在此处被恢复的节点的指示。
换句话说,第一部分结果可以是由第二机器学习模型用作输入的向量,其中,该输入由关于在第一和第二机器学习模型之间存在的差异的信息来编排。
在一些实施例中,在第一网络节点200处部分地执行第一机器学习模型的步骤可包括:在第一网络节点200处,在飞地存储器段中执行第一机器学习模型的至少一个组件。
在第一网络节点200处在飞地存储器段中执行第一机器学习模型的至少一个组件可以以基本上相同的方式来执行,并且可以实现前述优点中的至少一些,如上文所讨论的。
在步骤628处,第一部分结果被传送到第二网络节点300。因此,在一些实施例中,第一网络节点200使得第二机器学习模型基于关于第一机器学习模型与第二机器学习模型之间的差异的信息而在第二网络节点300处被部分地执行。在一些实施例中,第一部分结果的传送可以被加密。
在步骤630处,第二网络节点300使用第一部分结果来部分地执行第二机器学习模型,以形成第二部分结果。在一些实施例中,在第二网络节点300处发生的部分执行是基于关于第一机器学习模型与第二机器学习模型之间的差异的信息。
例如,关于第一机器学习模型与第二机器学习模型之间的差异的信息可包括关于第一机器学习模型与第二机器学习模型之间的差异存在的第一机器学习模型的位置的信息。可以在第二机器学习模型的存在该差异的部分上执行第二机器学习模型。
在另一个示例中,在第一和第二机器学习模型是决策树(例如,与图4所示的决策树400大致相同形式的决策树)的情况下,关于差异的信息可以指示第一机器学习模型中的第一机器学习模型和第二机器学习模型开始在此处彼此不同的节点。在另一个示例中,在第一和第二机器学习模型是神经网络(例如,与图5所示的神经网络500大致相同形式的神经网络)的情况下,关于差异的信息可以指示第一机器学习模型中的第一机器学习模型和第二机器学习模型开始在此处彼此不同的层。可以在第二机器学习模型的存在该差异的部分上执行第二机器学习模型。
在另一个示例中,在第一和第二机器学习模型是随机森林的情况下,关于差异的信息可以指示第一机器学习模型的第一机器学习模型和第二机器学习模型开始在此处彼此不同的一个或多个单独决策树,以及附加地或可替代地,一个或多个单独决策树中的节点。可以在第二机器学习模型的存在该差异的部分上执行第二机器学习模型。
换句话说,关于第一机器学习模型与第二机器学习模型之间的差异的信息可以规定第二机器学习模型的应当被执行的部分。因此,第二机器学习模型的部分执行可以仅仅是执行第二机器学习模型的已被指示为与第一机器学习模型不同的部分。
在一些实施例中,作为在第二网络节点300处部分地执行第二机器学习模型的结果,形成第二部分结果。例如,在第一和第二机器学习模型包括决策树(例如,与图4所示的决策树400大致相同形式的决策树)的情况下,第二部分结果可以是推断数据集和可选地第一机器学习模型的执行应当在此处被恢复的节点的指示。在另一个示例中,在第一和第二机器学习模型包括神经网络(例如,与图5所示的神经网络500大致相同形式的神经网络)的情况下,第二部分结果可以包括从已被确定为在第一机器学习模型与第二机器学习模型之间不同的最终层已输出的信息集和可选地直接在该层之后的层的指示。例如,在第一和第二机器学习模型包括随机森林的情况下,第二部分结果可以是推断数据集和可选地被包括在随机森林内的执行要在此处被恢复的一个或多个决策树的指示,可选地,对于这些一个或多个决策树中的每一个,第二机器学习模型的一个或多个决策树的执行应当在此处被恢复的节点的指示。
在一些实施例中,在第二网络节点300处部分地执行第二机器学习模型以获得结果的步骤可包括:在第二网络节点300处,在飞地存储器段中执行第二机器学习模型的至少一个组件。
在第二网络节点300处在飞地存储器段中执行第二机器学习模型的至少一个组件可以以基本上相同的方式执行,并且可以实现前述优点中的至少一些,如上文所讨论的。
在步骤632处,第二网络节点300将第二部分结果传送到第一网络节点200。在一些实施例中,第二部分结果的传送可以被加密。
在步骤634处,第一网络节点200使用第二部分结果来部分地执行第一机器学习模型,以形成最终结果。换句话说,执行第二机器学习模型的结果被传送到第一网络节点200,并且在适当的地方恢复第一机器学习模型的执行,从而适当地组合执行第二机器学习模型的结果。
在一些情况下,取决于第二机器学习模型与第一机器学习模型之间的差异,在第二节点处执行第二机器学习模型的结果可以是最终结果。在那种情况下,不需要第一网络节点使用从第二网络节点接收的结果来部分地执行第一机器学习模型以形成最终结果。
在一些实施例中,在第一和第二机器学习模型包括决策树(例如,与图4所示的决策树400大致相同形式的决策树)的情况下,第一机器学习模型可以在第一网络节点200处被整体执行以形成第一部分结果,并且第二机器学习模型可以在第二网络节点300处被整体执行以形成第二部分结果。然后,可以在第一网络节点200处例如通过对第一部分结果和第二部分结果求平均来形成最终结果。在另一个示例中,可以在第一网络节点200处通过组合第一部分结果和第二部分结果来形成最终结果。在另一个示例中,可以在第一网络节点200处通过形成第一部分结果和第二部分结果的加权平均来形成最终结果。
在一些实施例中,在第一和第二机器学习模型包括随机森林的情况下,第一机器学习模型可以在第一网络节点200处被整体执行以形成第一部分结果,并且第二机器学习模型可以在第二网络节点300处被整体执行以形成第二部分结果。然后,可以在第一网络节点200处例如通过对第一部分结果和第二部分结果求平均来形成最终结果。在另一个示例中,可以在第一网络节点200处通过组合第一部分结果和第二部分结果来形成最终结果。在另一个示例中,可以在第一网络节点200处通过形成第一部分结果和第二部分结果的加权平均来形成最终结果。
在步骤636处,第一网络节点200将所获得的结果传送到第三节点800。
因此,如图7的方法的步骤712b所示,第一机器学习模型在第一节点处被部分地执行,并且第二机器学习模型在第二节点处被部分地执行,以获得结果。
因此,在一些示例中,关于在第一和第二机器学习模型之间存在的差异的信息可以提供跟踪机器学习模型应当如何跨越网络100中的不同网络节点来执行的方式。在另一个示例中,第一和第二机器学习模型的版本化可以提供跟踪的机器学习模型在网络100中的执行的方式。例如,通过参考前几代的第二机器学习模型,可以确定关于第一机器学习模型与第二机器学习模型之间的差异的信息,并因此可以提供跟踪机器学习模型应当如何跨越网络100中的不同网络节点来执行的方式。
因此,作为在第一网络节点200处部分地执行第一机器学习模型并且在第二网络节点300处部分地执行第二机器学习模型的结果,提供了机器学习模型,该机器学习模型有利地包括已经通过在第二网络节点300处训练第二机器学习模型来提供的更新,但不向第三节点800或向第一网络节点200透露或推断与曾被用于在第二网络节点300处训练模型的数据相关的信息。因此,通过执行机器学习模型而获得的结果将可能更准确(因为机器学习模型包括上述的更新),此外,尚未危及已被用于提供该更新的数据的隐私。
此外,减少了从第二网络节点300向第一网络节点200传送大量数据的需要。此外,减少了在第一网络节点200处所需的数据存储量。
换句话说,在该所描述的第二实施例中,机器学习模型的计算图可以被适当地分成一个或多个组件,其中这些组件可以在一个或多个节点中被执行,同时维持机器学习模型的有向无环图。例如,在机器学习模型包括决策树(例如,决策树400)的情况下,决策树的节点可以在一个或多个网络节点中被分开执行。在另一个示例中,在机器学习模型包括神经网络(例如,神经网络500)的情况下,神经网络的层可以在一个或多个网络节点中被分开执行。如上文所描述的,机器学习模型的一个或多个组件可以在一个或多个节点中被独立地训练。本文所描述的执行策略可以指示机器学习模型的一个或多个组件要在何处执行。此外,本文所描述的执行策略可以指示机器学习模型的一个或多个组件要在飞地存储器段中执行(如果飞地存储器段由执行在其中发生的网络节点的硬件支持)或者不在飞地存储器段中执行。在一些实施例中,机器学习模型的执行可由策略节点900控制。
将理解,本文所描述的方法可以适用于包括有向无环图的任何机器学习模型。
因此,提供了用于执行机器学习模型的方法和装置,该执行是基于在机器学习模型的不同部分已经在其中被更新的不同节点之间的策略。
应当注意,上文所提到的实施例说明而不是限制本文所公开的概念,并且本领域的技术人员将能够在不脱离所附的权利要求的范围的情况下设计许多可替代的实施例。词语“包括”不排除存在除了在权利要求中列出的元件或步骤之外的元件或步骤,“一”或“一个”不排除多个,并且单个处理器或其他单元可以实现在权利要求中记载的多个单元的功能。权利要求中的任何附图标记不应当被解释为限制其范围。
Claims (34)
1.一种用于执行机器学习模型的方法,所述方法包括:
在第一节点处,基于第一数据集并使用机器学习算法,开发第一机器学习模型;
在第二节点处,基于所述第一机器学习模型和第二数据集并使用所述机器学习算法,开发第二机器学习模型;
从所述第二节点向所述第一节点传送关于所述第一机器学习模型与所述第二机器学习模型之间的差异的信息;
在所述第一节点处,接收对执行机器学习模型的请求;
响应于接收到对执行所述机器学习模型的所述请求,在所述第一节点处,获得指示执行策略的信息;以及
取决于所获得的指示执行策略的信息:
在所述第一节点处,执行基于所述第一机器学习模型和关于所述第一机器学习模型与所述第二机器学习模型之间的差异的信息的机器学习模型,以获得结果;或者
在所述第一节点处部分地执行所述第一机器学习模型,并在所述第二节点处部分地执行所述第二机器学习模型,以获得结果。
2.根据任一前述权利要求所述的方法,所述方法还包括:传送所获得的结果。
3.根据任一前述权利要求所述的方法,其中,在所述第一节点处部分地执行所述第一机器学习模型并在所述第二节点处部分地执行所述第二机器学习模型以获得结果的步骤包括:
在所述第一节点处,部分地执行所述第一机器学习模型;以及
在所述第一节点处,使得所述第二机器学习模型基于关于所述第一机器学习模型与所述第二机器学习模型之间的差异的信息而在所述第二节点处被部分地执行。
4.根据任一前述权利要求所述的方法,其中,关于所述第一机器学习模型与所述第二机器学习模型之间的差异的信息包括:
所述第二机器学习模型与所述第一机器学习模型不同的信息;和/或
所述第二机器学习模型与所述第一机器学习模型不同的信息,或者所述第二机器学习模型与所述第一机器学习模型没有不同的信息;和/或
标识所述第一机器学习模型与所述第二机器学习模型之间的差异的信息;和/或
所述第二机器学习模型。
5.根据任一前述权利要求所述的方法,其中,指示执行策略的信息是从策略节点获得的,或者是从所述第一节点中的存储器获得的。
6.根据任一前述权利要求所述的方法,其中,当指示所述执行策略的信息包括指示在所述第一节点处执行基于所述第一机器学习模型和关于所述第一机器学习模型与所述第二机器学习模型之间的差异的信息的所述机器学习模型的信息时,所述信息还包括指示所述机器学习模型的至少一部分应当在飞地模式中被执行的信息。
7.根据任一前述权利要求所述的方法,其中,当指示所述执行策略的信息包括指示在所述第一节点处部分地执行所述第一机器学习模型并在所述第二节点处部分地执行所述第二机器学习模型的信息时,所述信息还包括指示所述第一机器学习模型或所述第二机器学习模型的至少一个组件应当在飞地模式中被执行的信息。
8.根据任一前述权利要求所述的方法,其中,所述第一机器学习模型和所述第二机器学习模型能够各自由计算图表示。
9.根据权利要求8所述的方法,其中,所述计算图是有向无环图。
10.根据权利要求8或9所述的方法,其中,所述第一机器学习模型和所述第二机器学习模型各自是以下各项之一:神经网络,支持向量机,决策树,以及随机森林。
11.根据任一前述权利要求所述的方法,其中,在所述第一节点处执行基于所述第一机器学习模型和关于所述第一机器学习模型与所述第二机器学习模型之间的差异的信息的机器学习模型以获得结果的步骤包括:在所述第一节点处,在飞地存储器段中至少部分地执行基于所述第一机器学习模型和关于所述第一机器学习模型与所述第二机器学习模型之间的差异的信息的机器学习模型。
12.根据权利要求1至10中的任一项所述的方法,其中,在所述第一节点处部分地执行所述第一机器学习模型并在所述第二节点处部分执地行所述第二机器学习模型以获得结果的步骤包括:
在所述第一节点处,在飞地存储器段中执行所述第一机器学习模型的至少一个组件;和/或
在所述第二节点处,在飞地存储器段中执行所述第二机器学习模型的至少一个组件;和/或
在所述第一节点处部分地执行所述第一机器学习模型,以形成第一部分结果;
将所述第一部分结果从所述第一节点传送到所述第二节点;
在所述第二节点处,使用所述第一部分结果来部分地执行所述第二机器学习模型,以形成第二部分结果;
将所述第二部分结果从所述第二节点传送到所述第一节点;
在所述第一节点处,使用所述第二部分结果来部分地执行所述第一机器学习模型,以形成最终结果。
13.一种用于执行机器学习模型的系统,所述系统包括:
第一网络节点;以及
第二网络节点,
其中,所述系统被配置为执行根据权利要求1至12中的任一项所述的方法。
14.一种计算机程序产品,包括计算机可读代码,其被配置用于使得适合的编程处理器执行根据权利要求1至12中的任一项所述的方法。
15.一种计算机程序产品,包括有形的计算机可读介质,其包含用于使得处理器执行方法的计算机可读指令,所述方法包括:
在第一节点处,基于第一数据集并使用机器学习算法,开发第一机器学习模型;
在第二节点处,基于所述第一机器学习模型和第二数据集并使用所述机器学习算法,开发第二机器学习模型;
从所述第二节点向所述第一节点传送关于所述第一机器学习模型与所述第二机器学习模型之间的差异的信息;
在所述第一节点处,接收对执行机器学习模型的请求;
响应于接收到对执行所述机器学习模型的所述请求,在所述第一节点处,获得指示执行策略的信息;以及
取决于所获得的指示执行策略的信息:
在所述第一节点处,执行基于所述第一机器学习模型和关于所述第一机器学习模型与所述第二机器学习模型之间的差异的信息的机器学习模型,以获得结果;或者
在所述第一节点处部分地执行所述第一机器学习模型,并在所述第二节点处部分地执行所述第二机器学习模型,以获得结果。
16.一种用于执行在第一节点中执行的机器学习模型的方法,所述方法包括:
在第一节点处,基于第一数据集并使用机器学习算法,开发第一机器学习模型;
向第二网络节点传送所述第一机器学习模型;
从所述第二节点接收关于所述第一机器学习模型与第二机器学习模型之间的差异的信息;
接收对执行机器学习模型的请求;
响应于接收到对执行所述机器学习模型的所述请求,获得指示执行策略的信息;以及
取决于所获得的指示执行策略的信息:
执行基于所述第一机器学习模型和关于所述第一机器学习模型与所述第二机器学习模型之间的差异的信息的机器学习模型,以获得结果;或者
部分地执行所述第一机器学习模型,并使得所述第二节点部分地执行所述第二机器学习模型,以获得结果。
17.根据权利要求16所述的方法,其中,部分地执行所述第一机器学习模型并使得所述第二节点在所述第二节点处部分地执行所述第二机器学习模型以获得结果包括:
部分地执行所述第一机器学习模型;以及
使得所述第二节点基于关于所述第一机器学习模型与所述第二机器学习模型之间的差异的信息来部分地执行所述第二机器学习模型。
18.根据权利要求16或17所述的方法,其中,关于所述第一机器学习模型与所述第二机器学习模型之间的差异的信息包括:
所述第二机器学习模型与所述第一机器学习模型不同的信息;和/或
所述第二机器学习模型与所述第一机器学习模型不同的信息,或者所述第二机器学习模型与所述第一机器学习模型没有不同的信息;和/或
标识所述第一机器学习模型与所述第二机器学习模型之间的差异的信息;和/或
所述第二机器学习模型。
19.根据权利要求15至18中的任一项所述的方法,其中,指示执行策略的信息是从策略节点获得的,或者是从所述第一节点中的存储器获得的。
20.根据权利要求15至19中的任一项所述的方法,其中,当指示所述执行策略的信息包括指示执行基于所述第一机器学习模型和关于所述第一机器学习模型与所述第二机器学习模型之间的差异的信息的所述机器学习模型的信息时,所述信息还包括指示所述机器学习模型的至少一部分应当在飞地模式中被执行的信息。
21.根据权利要求15至20中的任一项所述的方法,其中,当指示所述执行策略的信息包括指示部分地执行所述第一机器学习模型并指示使得所述第二节点部分地执行所述第二机器学习模型的信息时,所述信息还包括指示所述第一机器学习模型或所述第二机器学习模型的至少一个组件应当在飞地模式中被执行的信息。
22.根据权利要求15至21中的任一项所述的方法,其中,所述第一机器学习模型和所述第二机器学习模型能够各自由计算图表示。
23.根据权利要求22所述的方法,其中,所述计算图是有向无环图。
24.根据权利要求22或23所述的方法,其中,所述第一机器学习模型和所述第二机器学习模型各自是以下各项之一:神经网络,支持向量机,决策树,以及随机森林。
25.根据权利要求15至24中的任一项所述的方法,其中,执行基于所述第一机器学习模型和关于所述第一机器学习模型与所述第二机器学习模型之间的差异的信息的机器学习模型以获得结果的步骤包括:在飞地存储器段中,至少部分地执行基于所述第一机器学习模型和关于所述第一机器学习模型与所述第二机器学习模型之间的差异的信息的机器学习模型。
26.根据权利要求15至24中的任一项所述的方法,其中,部分地执行所述第一机器学习模型并使得所述第二节点部分地执行所述第二机器学习模型以获得结果的步骤包括:
在飞地存储器段中执行所述第一机器学习模型的至少一个组件;和/或
使得所述第二节点在飞地存储器段中部分地执行所述第二机器学习模型;和/或
部分地执行所述第一机器学习模型,以形成第一部分结果;
将所述第一部分结果传送到所述第二节点;
使得在所述第二节点处使用所述第一部分结果来部分地执行所述第二机器学习模型,以使得在所述第二节点处形成第二部分结果;
从所述第二节点接收所述第二部分结果;
使用所述第二部分结果来部分地执行所述第一机器学习模型,以形成最终结果。
27.一种用于执行机器学习模型的第一网络节点,所述第一网络节点包括:
接口,其被配置用于允许与其他网络节点通信;
存储器;以及
处理器,
其中,所述第一网络节点被配置为执行根据权利要求15至26中的任一项所述的方法。
28.一种用于执行在第二节点中执行的机器学习模型的方法,所述方法包括:
从第一节点接收第一机器学习模型;
基于所述第一机器学习模型和第二数据集并使用机器学习算法,开发第二机器学习模型;
向所述第一节点传送关于所述第一机器学习模型与所述第二机器学习模型之间的差异的信息;
从所述第一节点接收部分结果;
使用所述第一部分结果来部分地执行所述第二机器学习模型,以形成第二部分结果;以及
将所述第二部分结果传送到所述第一节点。
29.根据权利要求28所述的方法,其中,关于所述第一机器学习模型与所述第二机器学习模型之间的差异的信息包括:
所述第二机器学习模型与所述第一机器学习模型不同的信息;和/或
所述第二机器学习模型与所述第一机器学习模型不同的信息,或者所述第二机器学习模型与所述第一机器学习模型没有不同的信息;和/或
标识所述第一机器学习模型与所述第二机器学习模型之间的差异的信息;和/或
所述第二机器学习模型。
30.根据权利要求28或29所述的方法,其中,所述机器学习模型和所述第二机器学习模型能够各自由计算图表示。
31.根据权利要求30所述的方法,其中,所述计算图是有向无环图。
32.根据权利要求30或31所述的方法,其中,所述第一机器学习模型和所述第二机器学习模型各自是以下各项之一:神经网络,支持向量机,、决策树,以及随机森林。
33.根据权利要求28至32中的任一项所述的方法,其中,使用所述第一部分结果来部分地执行所述第二机器学习模型以形成第二部分结果的步骤包括:在所述第二节点处,在飞地存储器段中执行所述第二机器学习模型的至少一个组件。
34.一种用于执行机器学习模型的第二网络节点,所述第二网络节点包括:
接口,其被配置用于允许与其他网络节点通信;
存储器;以及
处理器,
其中,所述第二网络节点被配置为执行根据权利要求28至33中的任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/SE2019/050512 WO2020246920A1 (en) | 2019-06-04 | 2019-06-04 | Executing machine-learning models |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114072820A true CN114072820A (zh) | 2022-02-18 |
Family
ID=73652639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980097196.1A Pending CN114072820A (zh) | 2019-06-04 | 2019-06-04 | 执行机器学习模型 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220327428A1 (zh) |
EP (1) | EP3980946A4 (zh) |
CN (1) | CN114072820A (zh) |
WO (1) | WO2020246920A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024055191A1 (en) * | 2022-09-14 | 2024-03-21 | Huawei Technologies Co., Ltd. | Methods, system, and apparatus for inference using probability information |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11636334B2 (en) | 2019-08-20 | 2023-04-25 | Micron Technology, Inc. | Machine learning with feature obfuscation |
US11755884B2 (en) * | 2019-08-20 | 2023-09-12 | Micron Technology, Inc. | Distributed machine learning with privacy protection |
US11743327B2 (en) * | 2021-02-05 | 2023-08-29 | International Business Machines Corporation | Topological ordering of blockchain associated proposals |
US20240078427A1 (en) * | 2021-02-26 | 2024-03-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Collaborative machine learning whose result is stored in a shared memory controlled by a central device |
CN113011522B (zh) * | 2021-04-13 | 2022-09-30 | 上海嗨普智能信息科技股份有限公司 | 基于有向无环图的多标签联邦学习方法、控制器和介质 |
US20240071625A1 (en) * | 2022-08-29 | 2024-02-29 | Cedars-Sinai Medical Center | Nafld identification and prediction systems and methods |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150379426A1 (en) * | 2014-06-30 | 2015-12-31 | Amazon Technologies, Inc. | Optimized decision tree based models |
CN105531709A (zh) * | 2013-09-27 | 2016-04-27 | 迈克菲股份有限公司 | 可执行对象在本地设备上的受信任的执行 |
CN105745661A (zh) * | 2013-12-19 | 2016-07-06 | 英特尔公司 | 对权限管理的内容的基于策略的受信任的检测 |
US20170169231A1 (en) * | 2014-12-23 | 2017-06-15 | Intel Corporation | Technologies for enhanced user authentication using advanced sensor monitoring |
CN107111715A (zh) * | 2014-12-16 | 2017-08-29 | 英特尔公司 | 将可信执行环境用于代码和数据的安全性 |
CN107423823A (zh) * | 2017-08-11 | 2017-12-01 | 成都优易数据有限公司 | 一种基于r语言的机器学习建模平台架构设计方法 |
US20180212996A1 (en) * | 2017-01-23 | 2018-07-26 | Cisco Technology, Inc. | Entity identification for enclave segmentation in a network |
US20180276911A1 (en) * | 2016-12-31 | 2018-09-27 | Intel Corporation | Crowdsourced failure mode prediction |
US20190050564A1 (en) * | 2018-07-12 | 2019-02-14 | Intel Corporation | Protection for inference engine against model retrieval attack |
WO2019032156A1 (en) * | 2017-08-11 | 2019-02-14 | Google Llc | PLATFORM OF LEARNING MACHINE ON DEVICE |
CN109416721A (zh) * | 2016-06-22 | 2019-03-01 | 微软技术许可有限责任公司 | 隐私保护机器学习 |
US20190147188A1 (en) * | 2017-11-16 | 2019-05-16 | Microsoft Technology Licensing, Llc | Hardware protection for differential privacy |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10558924B2 (en) * | 2014-05-23 | 2020-02-11 | DataRobot, Inc. | Systems for second-order predictive data analytics, and related methods and apparatus |
WO2018101862A1 (en) * | 2016-11-29 | 2018-06-07 | Telefonaktiebolaget Lm Ericsson (Publ) | A master node, a local node and respective methods performed thereby for predicting one or more metrics associated with a communication network |
US11144616B2 (en) * | 2017-02-22 | 2021-10-12 | Cisco Technology, Inc. | Training distributed machine learning with selective data transfers |
EP3376373A1 (en) * | 2017-03-15 | 2018-09-19 | Siemens Aktiengesellschaft | A method for deployment and execution of a machine learning model on a field device |
US11113624B2 (en) * | 2017-07-12 | 2021-09-07 | Sap Se | Distributed machine learning on heterogeneous data platforms |
US20190079898A1 (en) * | 2017-09-12 | 2019-03-14 | Actiontec Electronics, Inc. | Distributed machine learning platform using fog computing |
US11556730B2 (en) * | 2018-03-30 | 2023-01-17 | Intel Corporation | Methods and apparatus for distributed use of a machine learning model |
-
2019
- 2019-06-04 CN CN201980097196.1A patent/CN114072820A/zh active Pending
- 2019-06-04 WO PCT/SE2019/050512 patent/WO2020246920A1/en unknown
- 2019-06-04 US US17/616,369 patent/US20220327428A1/en active Pending
- 2019-06-04 EP EP19932148.0A patent/EP3980946A4/en active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105531709A (zh) * | 2013-09-27 | 2016-04-27 | 迈克菲股份有限公司 | 可执行对象在本地设备上的受信任的执行 |
CN105745661A (zh) * | 2013-12-19 | 2016-07-06 | 英特尔公司 | 对权限管理的内容的基于策略的受信任的检测 |
US20150379426A1 (en) * | 2014-06-30 | 2015-12-31 | Amazon Technologies, Inc. | Optimized decision tree based models |
CN107111715A (zh) * | 2014-12-16 | 2017-08-29 | 英特尔公司 | 将可信执行环境用于代码和数据的安全性 |
US20170169231A1 (en) * | 2014-12-23 | 2017-06-15 | Intel Corporation | Technologies for enhanced user authentication using advanced sensor monitoring |
CN107004074A (zh) * | 2014-12-23 | 2017-08-01 | 英特尔公司 | 使用高级传感器监测来进行增强型用户认证的技术 |
CN109416721A (zh) * | 2016-06-22 | 2019-03-01 | 微软技术许可有限责任公司 | 隐私保护机器学习 |
US20180276911A1 (en) * | 2016-12-31 | 2018-09-27 | Intel Corporation | Crowdsourced failure mode prediction |
US20180212996A1 (en) * | 2017-01-23 | 2018-07-26 | Cisco Technology, Inc. | Entity identification for enclave segmentation in a network |
CN107423823A (zh) * | 2017-08-11 | 2017-12-01 | 成都优易数据有限公司 | 一种基于r语言的机器学习建模平台架构设计方法 |
WO2019032156A1 (en) * | 2017-08-11 | 2019-02-14 | Google Llc | PLATFORM OF LEARNING MACHINE ON DEVICE |
US20190147188A1 (en) * | 2017-11-16 | 2019-05-16 | Microsoft Technology Licensing, Llc | Hardware protection for differential privacy |
US20190050564A1 (en) * | 2018-07-12 | 2019-02-14 | Intel Corporation | Protection for inference engine against model retrieval attack |
Non-Patent Citations (2)
Title |
---|
"Split learning for health: Distributed deep learning without sharing raw patient data", 《ARXIV:1812.00564V1》, 3 November 2018 (2018-11-03), pages 1 - 7 * |
舒娜等: "分布式机器学习平台与算法综述", 《计算机科学》, 15 March 2019 (2019-03-15), pages 9 - 18 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024055191A1 (en) * | 2022-09-14 | 2024-03-21 | Huawei Technologies Co., Ltd. | Methods, system, and apparatus for inference using probability information |
Also Published As
Publication number | Publication date |
---|---|
WO2020246920A1 (en) | 2020-12-10 |
EP3980946A4 (en) | 2023-02-08 |
US20220327428A1 (en) | 2022-10-13 |
EP3980946A1 (en) | 2022-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114072820A (zh) | 执行机器学习模型 | |
AU2017437537B2 (en) | Training tree-based machine-learning modeling algorithms for predicting outputs and generating explanatory data | |
JP2019526107A (ja) | 信用されるモデルを使用する機械学習のためのシステムおよび方法 | |
CN111652615B (zh) | 基于区块链大数据的安全识别方法及人工智能云服务平台 | |
CN111523686B (zh) | 一种模型联合训练的方法和系统 | |
JP6870508B2 (ja) | 学習プログラム、学習方法及び学習装置 | |
CN111783142B (zh) | 数据保护方法、装置、服务器和介质 | |
US20150363687A1 (en) | Managing software bundling using an artificial neural network | |
WO2020075644A1 (ja) | ハイパーパラメータチューニング方法、装置及びプログラム | |
US20200034705A1 (en) | Action shaping from demonstration for fast reinforcement learning | |
KR20210015531A (ko) | 뉴럴 네트워크 모델을 업데이트하는 방법 및 시스템 | |
JP6688902B2 (ja) | 制御モデルに基づいて技術システムを制御するための方法および装置 | |
CN111832059B (zh) | 一种基于云服务的空间大数据管理方法及系统 | |
US20240095529A1 (en) | Neural Network Optimization Method and Apparatus | |
CN111144574A (zh) | 使用指导者模型训练学习者模型的人工智能系统和方法 | |
CN111079153B (zh) | 安全建模方法、装置、电子设备及存储介质 | |
US20210168195A1 (en) | Server and method for controlling server | |
Caymes-Scutari et al. | Dynamic Tuning of a Forest Fire Prediction Parallel Method | |
JP2020198135A (ja) | ハイパーパラメータチューニング方法、装置及びプログラム | |
CN115202591B (zh) | 一种分布式数据库系统的存储装置、方法及存储介质 | |
KR102472800B1 (ko) | 인공지능 기반 기업 등급 평가 방법, 장치 및 시스템 | |
US20230237036A1 (en) | Data modification method and information processing apparatus | |
US20230306312A1 (en) | Stable local interpretable model for prediction | |
KR102132901B1 (ko) | 펌웨어 패키징 및 언패키징 방법 | |
CN107292324A (zh) | 用于训练混合模型的方法和设备 |
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 |