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

用于多模式分布式学习的模型池的制作方法

2022-10-26 19:32:55 来源:中国专利 TAG:


1.公开了与分布式学习相关并且具体地与用于多模式分布式学习的模型池相关的实施例。


背景技术:

2.涉及分散数据的分布式学习是一种机器学习技术,它解决了各种与数据相关的约束(例如隐私、带宽),这些约束禁止或以其他方式限制本地训练数据从本地客户端节点传输到中央节点以进行集中处理。在这样的场景中,从数据中学习发生在本地,并且更新从本地客户端节点被发送到中央服务器节点,以使得不同的本地客户端节点可以影响全局模型,而不必牺牲它们的本地训练数据的安全性或隐私。
3.作为一个示例,考虑从移动设备中键入的前缀来预测单词的问题。配备有学习过程的本地设备可以对用户的键入行为进行建模以建议或推荐后缀来完成部分键入的单词。考虑到共享共同语言的许多用户,来自每个本地设备的结果模型可以被组合(例如平均)以产生仍然表示问题的全局模型。联合学习(一种类型的分布式学习)是一种适用于此类问题的技术,其中多个本地模型可以被平均以创建准确的全局模型。
4.联合学习分轮次进行,其中每一轮包括:
5.·
在中央服务器节点处,选择参与节点的子集。
6.·
在中央服务器节点处,将当前全局模型发送到选定节点。
7.·
在每个选定节点处,在本地数据集上本地训练全局模型。
8.·
在每个选定节点处,将反映本地训练的更新发回中央服务器节点。
9.·
在中央服务器节点处,聚合更新并且将它们应用于全局模型。
10.继续先前的单词预测示例,现在考虑多个用户以不同的语言键入。在这样的示例中,训练数据分布可能从一个用户到另一个用户而变化很大。在该示例中应用传统的联合学习方法无疑会导致不希望的准确性下降,即,从一种语言学习的更新可能与来自另一种语言的更新相矛盾。当然,在该示例中,针对每种语言维护不同的全局模型可能已足够。但是,在更一般的真实世界场景中,这样的先验分离(prior separation)可能很难或不可能识别。


技术实现要素:

11.如果本地客户端节点之间的训练数据分布不同,则会出现问题。例如,典型的联合学习技术通过平均来实现模型合成,这对于本地数据分布远非独立同分布(iid)的场景并不稳健。典型的联合学习技术仅支持使用来自本地模型的更新而改进的一个中央模型,这对非重叠、非iid数据分布提出了挑战。给定部署的目标场景或目标数据分布,典型的联合学习技术只能提供这样的中央模型:如果本地目标分布与其他本地客户端节点显著不同,则该中央模型不太可能是一个良好的起点。
12.一些联合学习技术应用聚类以便将本地客户端节点聚类到不同的组中。这样的技
术是有限的,并且并未完全解决上述问题以及它们具有的其他问题。例如,这样的聚类方法需要指定用于对本地客户端节点进行分类的聚类数量,如果本地客户端节点的数据分布随时间变化,则必须被更新以反映当前情况,以及还受限于这样的方法如何对本地客户端节点进行聚类,从而依赖于本地训练数据而不是其他本地客户端资源。此外,这样的聚类技术是一种全有或全无方法,其中如果两个本地客户端节点具有类似的数据分布但属于不同的聚类,则来自一个本地客户端节点的更新将不会被传播到另一个本地客户端节点。
13.因此,需要改进的学习技术。本文公开的实施例在本地训练数据在它们的分布中具有显著差异的情况下,在分布式学习环境中提供了改进的机器学习。例如,本地训练数据分布中的这种显著差异可能由于不同本地客户端节点的固有本地特性(例如硬件、软件、地理位置、系统类型)而产生。无论不同分布的原因为何,如果这样的差异显著,则可能影响维护表示每个本地客户端节点的性能良好的集中式模型的能力,例如因为来自具有不同分布的本地客户端节点的更新可能导致性能下降或者甚至阻止全局模型收敛。在这种情况下,如果本地客户端节点具有明显不同的训练数据分布,则可以认为全局数据分布是多模式的。本文的实施例通过维护中央模型的模型池以覆盖多个本地数据分布来提供改进的学习。
14.实施例采用和管理用于分布式学习环境(例如联合学习)的模型池。模型池可以被用于存储、更新和取得一组中央模型。模型池定义了用于操纵所存储的中央模型的读取和写入操作。在一些实施例中,模型池中的每个中央模型可以与键(例如精心设计的键)相关联,该键识别训练场景和针对其训练中央模型的数据分布。然后,给定输入键(例如,来自本地客户端节点)和该输入键与模型池中的中央模型的键的距离,可以从模型池的中央模型中聚合复合模型作为加权平均,其中,基于该输入键与模型池中的中央模型的键的相似度对加权进行偏置。在实施例中,键被设计为具有本地保留(locality preservation)属性,这意味着类似的训练场景和数据分布产生类似的键。
15.在实施例中,针对模型池定义了读取操作和写入操作,并且这些操作可以以分布式方式实现。也就是说,键可以被用于读取和/或写入模型池中的多个中央模型。每个中央模型对操作结果的影响取决于中央模型的对应键与输入键的类似程度。因为在实施例中,键携带有关训练场景和数据分布的信息,所以来自冲突背景(具有不同的训练场景或数据分布)的中央模型相互影响较弱,这允许覆盖广泛的场景和数据分布。
16.实施例有利地允许确定中央模型(例如从模型池中读取)以匹配特定的目标部署场景和/或目标数据分布。实施例有利地允许使用完整键(本地场景和数据分布两者)或部分键(本地场景和数据分布之一)来更新中央模型(例如写入模型池)。实施例还能够有利地调整模型池的大小(例如增大和/或减小模型池中的中央模型的数量)。
17.实施例还有利地定义一种统一且有效的方式来指定键,以使用本地保留(locality-preserving)散列来标识本地客户端节点的训练数据和资源。实施例是有效的,例如因为不需要基于本地客户端节点的键进行聚类,以及不需要在学习轮次之间评估聚类一致性。
18.根据第一方面,提供了一种由中央服务器节点执行的方法。所述方法包括:从本地客户端节点接收本地模型权重和对应键;以及更新模型池,所述模型池具有多个中央模型和与所述中央模型中的每个中央模型相关联的对应键。更新所述模型池是基于所述本地模
型权重以及以下中的一项或多项:与所述本地客户端节点相对应的键,以及共同与所述中央模型中的每个中央模型相对应的键。更新所述模型池包括:更新在所述模型池中包含的所述多个中央模型中的至少两个中央模型。
19.在一些实施例中,更新所述模型池进一步包括:计算相似度得分,所述相似度得分将与所述本地客户端节点相对应的所述键和共同与所述多个中央模型中的每个中央模型相对应的所述键进行比较,并且其中,更新所述多个中央模型中的至少两个中央模型是基于所述相似度得分。在一些实施例中,所述方法还包括:基于所述相似度得分,从所述模型池中选择所述多个中央模型中的所述至少两个中央模型。在一些实施例中,来自所述模型池的所述多个中央模型中的所述至少两个中央模型包括所述多个中央模型中的所有中央模型。在一些实施例中,更新所述多个中央模型中的至少两个中央模型包括:对于所述多个中央模型中的所述至少两个中央模型中的每个中央模型,将所述本地模型权重与该中央模型的当前版本进行组合,以使得与具有较低的对应相似度得分的中央模型相比,对于具有较高的对应相似度得分的中央模型,所述本地模型权重被赋予更大的权重。
20.在一些实施例中,更新所述多个中央模型中的至少两个中央模型包括:针对与所述多个中央模型中的所述至少两个中央模型相对应的一组索引中的每个i,计算新的模型权重其中:
21.是指用于与所述索引i相对应的中央模型的所述新的模型权重,
22.是指用于与所述索引i相对应的中央模型的旧的模型权重,
[0023][0024]
w=(w1,

,wm)是所述相似度得分,以使得wi对应于与所述本地客户端节点相对应的所述键和与所述多个中央模型中的第i个中央模型相对应的键之间的相似度,
[0025]
m是所述模型池中的所述多个中央模型的数量,以及
[0026]
是指所述本地模型权重。
[0027]
在一些实施例中,所述相似度得分w被规范化,以使得∑wi=1。在一些实施例中,与所述本地客户端节点相对应的所述键和共同与所述多个中央模型中的每个中央模型相对应的所述模型池的所述键中的一个或多个键各自包括数据分布部分和部署部分,其中,所述一个或多个键中的每个键的所述数据分布部分包括描述与相应的本地客户端节点或中央模型相对应的数据分布的信息,并且其中,所述一个或多个键中的每个键的所述部署部分包括描述与相应的本地客户端节点或中央模型相对应的部署环境的信息。
[0028]
在一些实施例中,计算相似度得分是基于具有数据分布部分和部署部分的第一键k1与具有数据分布部分和部署部分的第二键k2之间的相似度函数d(k1,k2),以使得在一些实施例中,作为接收到本地模型权重和对应键的结果,执行更新所述模型池,而无需等待来自附加的本地客户端节点的附加的本地模型权重和对应键。在一些实施例中,所述方法还包括:修改所述模型池,以使得与所述模型池的所述中央模型相对应的所述键的分布是基于来自所述本地客户端节点的所述对应键而被修改的。
[0029]
根据第二方面,提供了一种由中央服务器节点执行的方法。所述方法包括:从本地
客户端节点接收对模型的请求,其中,所述请求包括与所述本地客户端节点相对应的键;响应于接收到所述请求,从模型池构造模型,所述模型池具有多个中央模型和与所述中央模型中的每个中央模型相关联的对应键;以及向所述本地客户端节点发送所构造的模型。从所述模型池构造所述模型是基于与所述本地客户端节点相对应的所述键和共同与所述中央模型中的每个中央模型相对应的键。从所述模型池构造所述模型包括:聚合在所述模型池中包含的所述多个中央模型中的至少两个中央模型。
[0030]
在一些实施例中,从所述模型池构造所述模型进一步包括:计算相似度得分,所述相似度得分将与所述本地客户端节点相对应的所述键和共同与所述多个中央模型中的每个中央模型相对应的所述键进行比较,并且其中,聚合所述多个中央模型中的至少两个中央模型是基于所述相似度得分。在一些实施例中,所述方法还包括:基于所述相似度得分,从所述模型池中选择所述多个中央模型中的所述至少两个中央模型。在一些实施例中,来自所述模型池的所述多个中央模型中的所述至少两个中央模型包括所述多个中央模型中的所有中央模型。在一些实施例中,聚合所述多个中央模型中的至少两个中央模型被执行,以使得所述多个中央模型中的所述至少两个中央模型中的具有较高的对应相似度得分的中央模型比具有较低的对应相似度得分的模型被更多地加权。
[0031]
在一些实施例中,聚合所述多个中央模型中的至少两个中央模型包括:计算聚合模型权重其中:
[0032]
是指用于所构造的模型的所述聚合模型权重,
[0033]
m是所述模型池中的所述多个中央模型的数量,
[0034]
θi是指用于与索引i相对应的中央模型的模型权重,以及
[0035]
w=(w1,

,wm)是所述相似度得分,以使得wi对应于与所述本地客户端节点相对应的所述键和与所述多个中央模型中的第i个中央模型相对应的键之间的相似度。
[0036]
在一些实施例中,所述相似度得分w被规范化,以使得∑wi=1。在一些实施例中,与所述本地客户端节点相对应的所述键和共同与所述多个中央模型中的每个中央模型相对应的所述模型池的所述键中的一个或多个键各自包括数据分布部分和部署部分,其中,所述一个或多个键中的每个键的所述数据分布部分包括描述与相应的本地客户端节点或中央模型相对应的数据分布的信息,并且其中,所述一个或多个键中的每个键的所述部署部分包括描述与相应的本地客户端节点或中央模型相对应的部署环境的信息。
[0037]
在一些实施例中,计算相似度得分是基于具有数据分布部分和部署部分的第一键k1与具有数据分布部分和部署部分的第二键k2之间的相似度函数d(k1,k2),以使得在一些实施例中,所述方法还包括:修改所述模型池,以使得与所述模型池的所述中央模型相对应的所述键的分布是基于来自所述本地客户端节点的所述对应键而被修改的。
[0038]
根据第三方面,提供了一种中央服务器节点,所述中央服务器节点包括处理电路和存储器,所述存储器存储能够由所述处理电路执行的指令。所述处理电路可操作以:从本地客户端节点接收本地模型权重和对应键;以及更新模型池,所述模型池具有多个中央模型和与所述中央模型中的每个中央模型相关联的对应键。更新所述模型池是基于所述本地
模型权重以及以下中的一项或多项:与所述本地客户端节点相对应的键,以及共同与所述中央模型中的每个中央模型相对应的键。更新所述模型池包括:更新在所述模型池中包含的所述多个中央模型中的至少两个中央模型。在一些实施例中,所述中央服务器节点用于实现准确的分布式机器学习。
[0039]
根据第四方面,提供了一种中央服务器节点,所述中央服务器节点包括处理电路和存储器,所述存储器存储能够由所述处理电路执行的指令。所述处理电路可操作以:从本地客户端节点接收对模型的请求,其中,所述请求包括与所述本地客户端节点相对应的键;响应于接收到所述请求,从模型池构造模型,所述模型池具有多个中央模型和与所述中央模型中的每个中央模型相关联的对应键;以及向所述本地客户端节点发送所构造的模型。从所述模型池构造所述模型是基于与所述本地客户端节点相对应的所述键和共同与所述中央模型中的每个中央模型相对应的键。从所述模型池构造所述模型包括:聚合在所述模型池中包含的所述多个中央模型中的至少两个中央模型。在一些实施例中,所述中央服务器节点用于实现准确的分布式机器学习。
[0040]
根据第五方面,提供了一种包括指令的计算机程序,所述指令当由处理电路执行时使得所述处理电路执行第一方面或第二方面的任一个实施例的方法。
[0041]
根据第六方面,提供了一种载体,其包含第五方面的计算机程序,其中,所述载体是电子信号、光信号、无线电信号和计算机可读存储介质中的一个。
[0042]
根据第七方面,提供了一种网络,其包括彼此通信的中央服务器节点和本地客户端节点,所述中央服务器节点包括处理电路和存储器,所述存储器存储能够由所述处理电路执行的指令。所述处理电路可操作以:从所述本地客户端节点接收本地模型权重和对应键;以及更新模型池,所述模型池具有多个中央模型和与所述中央模型中的每个中央模型相关联的对应键,其中,更新所述模型池是基于所述本地模型权重以及以下中的一项或多项:与所述本地客户端节点相对应的键,以及共同与所述中央模型中的每个中央模型相对应的键,并且其中,更新所述模型池包括:更新在所述模型池中包含的所述多个中央模型中的至少两个中央模型。
[0043]
根据第八方面,提供了一种网络,其包括彼此通信的中央服务器节点和本地客户端节点,所述中央服务器节点包括处理电路和存储器,所述存储器存储能够由所述处理电路执行的指令。所述处理电路可操作以:从所述本地客户端节点接收对模型的请求,其中,所述请求包括与所述本地客户端节点相对应的键;响应于接收到所述请求,从模型池构造模型,所述模型池具有多个中央模型和与所述中央模型中的每个中央模型相关联的对应键;以及向所述本地客户端节点发送所构造的模型,其中,从所述模型池构造所述模型是基于与所述本地客户端节点相对应的所述键和共同与所述中央模型中的每个中央模型相对应的键,以及其中,从所述模型池构造所述模型包括:聚合在所述模型池中包含的所述多个中央模型中的至少两个中央模型。
附图说明
[0044]
结合在本文中并形成说明书的一部分的附图示出了各种实施例。
[0045]
图1示出了根据实施例的机器学习系统;
[0046]
图2示出了根据实施例的模型池;
[0047]
图2a和2b示出了根据实施例的权重分布;
[0048]
图3a和3b示出了根据实施例的键分布;
[0049]
图4示出了根据实施例的消息图;
[0050]
图5示出了根据实施例的消息图;
[0051]
图6是根据实施例的流程图;
[0052]
图7是根据实施例的流程图;
[0053]
图8是根据实施例的装置的框图;
[0054]
图9是根据实施例的装置的框图。
具体实施方式
[0055]
图1示出了根据实施例的机器学习系统100。如图所示,中央服务器节点或计算设备102与一个或多个本地客户端节点或计算设备104通信。可选地,本地客户端节点或计算设备104可以利用各种网络拓扑和/或网络通信系统中的任何一种彼此通信。例如,本地客户端节点104包括诸如智能电话、平板电脑、膝上型计算机、个人计算机之类的用户计算设备,并且还可以通过诸如互联网之类的公共网络(例如经由wifi)或通信网络(例如lte或5g)以通信方式被耦接。中央服务器节点104可以包括计算设备,例如服务器、基站、大型机和云计算资源。尽管示出了中央服务器节点或计算设备102,但是中央服务器节点102的功能可以跨越多个节点分布,以及可以在一个或多个本地客户端节点104之间被共享。
[0056]
如图所示,每个本地客户端节点104可以将模型更新传送到中央服务器节点102,而中央服务器节点102可以将更新后的中央模型发送到本地客户端节点104。本地客户端节点104与本地客户端节点104之间的链接被示为在这些实体之间是双向的(例如具有双向链路,或者通过不同的通信信道)。
[0057]
如本文实施例中所述的联合学习可以涉及一轮或多轮,其中在每轮中迭代地训练中央模型。本地客户端节点104可以向中央服务器节点102注册以指示它们参与中央模型的联合学习的意愿,并且可以连续地或滚动地执行此操作。在注册时(并且可能在此后的任何时间),中央服务器节点102将训练参数发送到本地客户端节点104。中央服务器节点102可以将初始模型发送到本地客户端节点104。例如,中央服务器节点102可以向本地客户端节点104发送(例如,新近被初始化的或通过前几轮联合学习被部分训练的)中央模型。本地客户端节点104可以用它们自己的数据在本地训练它们的个体模型。这种本地训练的结果然后可以被回报给中央服务器节点102,中央服务器节点102可以汇集结果并且更新全局模型。该过程可以被迭代地重复。此外,在训练中央模型的每个轮次,中央服务器节点102可以选择所有已注册的本地客户端节点104的子集(例如随机子集)来参与该训练轮次。
[0058]
中央服务器节点102负责管理模型池。如该描述中所使用的,“训练节点”是指参与学习的本地客户端节点104;而“聚合节点”是指模型池处于活动的中央服务器节点102。在下面的讨论中,假设训练节点通过使用神经网络来实现回归或分类任务,其中标签仅在本地可用。在实施例中,其他类型的机器学习模型也可以适用。
[0059]
在一些实施例中,中央服务器节点102能够被用于实现准确的分布式机器学习。
[0060]
出于讨论的目的,下面的描述假设多个训练节点i=1,

,n(参与本地客户端节点104的子集)和一个聚合节点i=0(中央服务器节点102)。每个训练节点i从未知分布x~pi
收集数据,其中标签y由感兴趣的系统在本地提供,其中x∈rn并且y∈rm,n,m≥1。节点i中的问题然后包括从示例(x,y)中学习参数化函数fi:其中函数参数θi表示神经网络的权重。
[0061]
模型池可以由(1)键k和(2)中央模型θ来标识。因此,模型池在本文中可以被表示为(k,θ),其中粗体指示引用元素是向量。中央模型易于定义,因为它们是来自神经网络架构的权重,与训练节点中的权重相等,在此被表示为f。
[0062]
在图1中,节点0(中央服务器节点102)表示聚合节点,其中模型池(k,θ)是活动的并且管理来自训练节点i=1,

,n的更新。每个训练节点由它的键ki和本地模型θi来标识。
[0063]
模型池操作
[0064]
将键视为向量其中l>0,并且将相应神经网络的权重视为向量θj∈rd,其中d>>0。然后,模型池将m》0个键-模型对(kj,θj)存储在维度为(m,l d)的矩阵p中。尽管讨论将p称为矩阵,但是模型池的任何合适的数据结构或存储格式都在所公开的实施例的范围内。
[0065]
从矩阵p中,每个读取操作或写入操作取决于计算被存储在p中的输入键k与所有键k之间的相似度。所计算的相似度w=(w1,

,wm)然后被规范化为总和等于1。例如,可以通过softmax函数来执行规范化,例如:
[0066][0067]
观察到,通过将基数b》0增大到较大值,可以产生更集中围绕最大相似度的概率分布,而通过保持基数b较小,可以产生更广泛地集中的概率分布(比较图2a和2b)。在极限之中,随着b的增大,仅最类似的行才将具有足够大的值来影响读取操作或写入操作。在相反的情况下(在b接近0时),大多数行将影响读取操作或写入操作。通过对相似度和特定b值的这种预处理,w可以被重新定义为:
[0068]
w=(σ(w,b,1),σ(w,b,2),

,σ(w,b,m))
[0069]
应当理解,存在其他方法对w中的所计算的相似度进行规范化。
[0070]
读取
[0071]
读取操作符接收预处理后的(即,规范化后的)相似度向量w,以及例如通过被存储在池中的中央模型的加权和来产生聚合模型θ
read
。“操作符”通常是一种映射,该映射作用于一个空间的元素以产生另一个空间(可能是同一个空间)的元素。读取操作符作用于模型池中的相似度向量w和模型θ以产生聚合模型θ
read
。该动作被称为读取操作。
[0072]
读取操作是响应于来自本地客户端节点104的模型请求而被执行的。来自本地客户端节点104的模型请求可以包括与本地客户端节点104相对应的键。基于与本地客户端节点104相对应的键和被存储在模型池中的共同与中央模型中的每个中央模型相对应的键k,构造聚合模型θ
read
。通过聚合模型池中的模型中的至少两个模型来构造聚合模型θ
read
。例如,与本地客户端节点104相对应的键可以被用于生成相似度向量w,其存储该键与被存储在模型池中的所有键k之间的相似度。聚合模型池中的模型中的至少两个模型可以进一步基于相似度向量w。模型池中的模型中的至少两个模型可以基于相似度向量w而被选择,或者可以包括模型池中的所有模型。
[0073]
该聚合可以被执行,以使得包含具有更高相似度得分(即,相似度向量w的对应分
量更大)的对应键的模型比包含具有更低相似度得分的对应键的模型被更多地加权。例如,在一些实施例中,读取操作通过被存储在池中的中央模型的加权和来产生聚合模型θ
read
,如下所示:
[0074][0075]
在读取操作产生聚合模型θ
read
之后,聚合模型θ
read
可以被发送到发送模型请求的本地客户端节点104。
[0076]
图2根据矩阵p示出了模型池200。如图所示,在维度为(m,l d)的矩阵p中存在m个键-模型对(kj,θj)。图2a和2b示出了两个不同的规范化相似度向量,一个使用小基数(图2a)并且另一个使用大基数(图2b)。相似度向量标识哪些矩阵行(模型池中存储的中央模型)应当更强烈地影响所得到的聚合模型。如果相似度得分最高,则影响将更大;如果相似度得分最低,则影响将更小。例如,对于wi≈0的相似度得分,影响应当最小。观察到,在基数b非常大的极端情况下,只有其键与作为输入接收的键最接近的行才显著影响所得到的模型的创建。
[0077]
在一些实施例中,每个模型θj可能影响聚合模型θ
read
,即使影响很小。在其他实施例中,基于相似度向量w来选择模型θj的子集,以使得仅选定子集影响聚合模型θ
read
。例如,在一些实施例中,可以仅选择相似度高于阈值(例如0.05)的模型,以及在一些实施例中,可以仅选择基于相似度得分的前n个模型(例如前20个)或前n%(例如前20%)的模型。
[0078]
写入
[0079]
写入操作符接收预处理后的相似度向量w和由本地训练产生的模型更新作为输入。“操作符”通常是一种映射,该映射作用于一个空间的元素以产生另一个空间(可能是同一个空间)的元素。写入操作符作用于相似度向量w和所接收的模型更新以产生更新后的模型池。该动作被称为写入操作。
[0080]
写入操作是响应于从本地客户端节点104接收到本地模型权重(即,本地更新)而被执行的。当本地客户端节点104提供本地模型权重时,本地客户端节点104可以包括与本地客户端节点104相对应的键。可以基于本地模型权重以及以下中的一项或多项来更新模型池:与本地客户端节点104相对应的键,以及被存储在模型池中的共同与中央模型中的每个中央模型相对应的键k。更新模型池包括更新被存储在模型池中的模型中的至少两个模型。例如,与本地客户端节点104相对应的键可以被用于生成相似度向量w,相似度向量w存储该键与被存储在模型池中的所有键k之间的相似度。当更新模型池时,可以使用相似度向量w。被更新的至少两个模型可以是基于相似度向量w而被选择的,或者可以包括模型池中的所有模型。
[0081]
可以通过将更新与正在被更新的模型池中的每个模型的当前版本相组合来执行模型池的更新,以使得与具有较低的对应相似度得分的给定模型相比,对于具有较高的对应相似度得分(即,相似度向量w的对应分量较大)的给定模型,更新比给定模型的当前版本被更多地加权。例如,在一些实施例中,相似度向量w可以被用于如下缩放模型更新。首先,可以针对模型池中的每个条目i来计算加权平均:
[0082][0083]
接下来,新的更新和存储值θi可以被平均并且被存储回模型池中(注意,在计算
时已经执行加权):
[0084][0085]
代替对模型池中的每个条目i进行操作,一些实施例可以改为对模型池中的条目i的子集进行操作。
[0086]
因为每个模型更新可以被独立地处理,所以在更新模型池之前不必等待每个训练节点提供它的更新。也就是说,模型池可以在模型更新从每个训练节点到达时被更新。
[0087]
在一些实施例中,每个模型θj可能受到模型更新的影响,即使影响很小。在其他实施例中,基于相似度向量w来选择模型θj的子集,以使得仅选定子集受到模型更新的影响。例如,在一些实施例中,可以仅选择相似度高于阈值(例如0.05)的模型,以及在一些实施例中,可以仅选择基于相似度得分的前n个模型或前n%的模型。
[0088]
键的属性
[0089]
读取操作和写入操作符依赖于键,并且基于键来确定模型之间的相似度。因此,重要的是,与模型相关联的键携带有关该模型的两个或多个方面的信息:(1)目标数据分布和(2)目标场景。目标数据分布是指针对模型的训练数据的分布,而目标场景是指部署环境的非训练数据相关的特性。例如,移动电话的目标场景可以包括制造商信息、网络标准(例如4g、5g)、设备资源信息(例如内存、处理能力等)。在一些实施例中,目标场景信息可以取决于问题域。
[0090]
每个训练节点可以在本地产生它自己的键。每个训练节点的本地数据集和场景描述被称为d,s。产生键k的过程则包括将高维输入d和s映射到低维输出h(d)和h(s)。
[0091]
为了确保键针对矩阵p的适当条目实现读取操作和写入操作,函数h应当被定义为本地保留(locality-preserving)。这样的属性实际上保证了当且仅当本地数据集d1、d2类似时,两个输出键h(d1)和h(d2)也应当类似。用于本地敏感散列的技术通常采用具有该属性的函数。在一些实施例中,可以基于数据集的域来选择特定的本地保留散列函数。用于该讨论的键属性是本地保留散列函数产生比原始数据更低维的向量。因此,给定本地的一对数据集和场景描述(d,s)以及相应的部分键kd=h(d)和ks=h(s),可以产生复合键k=(kd,ks)。如果其他本地信息对于描述训练节点是相关的,则其他本地信息也可以是复合键的一部分。
[0092]
用于训练节点的键标识了训练节点在给定时刻的当前状态。在一些实施例中,例如周期性地或在特定事件时(例如每次本地模型被发送到聚合节点以用于写入操作时),可以(从本地训练数据和场景描述)重新计算键。通常,在每轮学习中重新计算键的成本可以忽略不计,这是由于两个事实:(1)联合学习中的本地训练数据集通常不是很大;以及(2)本地保留散列技术通常不复杂。作为一个示例,公知的minhash技术的最坏情况复杂度是o(nk),这意味着它不差于随数据集的大小n和常数k而线性增长,这允许提高准确度。
[0093]
计算相似度
[0094]
读取操作和写入操作依赖于输入键k(对应于训练节点)和被存储在模型池中的引用键k(共同与被存储在模型池中的中央模型中的每个中央模型相对应)之间的相似度。如前一节中所定义,每个部分键标识了训练节点的特性(例如数据分布、场景),而复合键串接所有这样的标识符。
[0095]
在实施例中,被用于计算相似度的相似度度量应当能够考虑部分键,即训练节点的部分知识。例如,考虑下面描述的情况:
[0096]
·
(情况a)将模型部署到其特性和设置(场景)已知的新边缘节点。因为是新部署,所以本地数据不可用。实施例允许节点从模型池中读取模型以匹配目标场景(部分键)。
[0097]
·
(情况b)将模型部署到其特性和设置未知但是本地数据样本已经可用的边缘设备。实施例允许节点从模型池中读取模型以匹配目标数据分布。
[0098]
在情况a中,没有可用的数据。因此,没有与目标数据分布相关联的部分键kd,即k=(-,ks)。相反地,在情况b中,没有对部署的目标场景的描述。因此,没有关联的部分键ks,即k=(kd,-)。
[0099]
相似度函数可以采取任何类型的形式。在一些实施例中,相似度函数可以是部分键之间的相似度之和:
[0100][0101]
为了支持部分键不可用,不可用部分键与部分键之间的相似度(例如)可以被定义为零。在这种情况下,不可用键不影响相似度,这意味着对于这样的键,池中的所有中央模型都同样适合。因此,只有键的剩余部分影响相似度。
[0102]
充分定义的相似度度量能够支持情况a和b两者,如下例示的:
[0103]
·
(场景a)对场景描述s进行散列以产生部分键ks=h(s)。模型池管理器计算复合键k=(-,ks)和所存储的引用键之间的相似度。因为部分键kd不可用,所以仅ks影响相似度。由于键的本地保留,因此读取操作返回聚合模型,该聚合模型偏向其场景最接近目标场景的中央模型。
[0104]
·
(场景b)对样本本地数据d进行散列以产生部分键kd=h(d)。模型池管理器计算复合键k=(kd,-)和所存储的引用键之间的相似度。因为部分键ks不可用,所以仅kd影响相似度。由于键的本地保留,因此读取操作返回模型,该模型偏向其训练数据分布最接近目标分布的中央模型。
[0105]
·
如果两个部分键都可用(这是最常见的情况),则读取操作返回模型,该模型偏向其训练数据分布和场景最接近训练节点的训练数据分布和场景的中央模型。写入操作也是如此。
[0106]
值得注意的是,给定本地保留散列函数,相似度度量可以很简单,并且对于标识模型池中的适当中央模型仍然有用。
[0107]
维护引用键
[0108]
本文描述的读取操作和写入操作允许中央模型收敛到类似的本地训练模型。因为相似度是比较键的结果,所以不需要直接比较大型神经网络权重向量,这提高了方法的可扩展性。除了适当定义的读取操作和写入操作之外,它还可能有助于提高准确度以确保所存储的中央模型的代表性。
[0109]
为了更好地解释代表性在该上下文中意味着什么,考虑图3a和3b,其中实心黑色圆圈表示三个所存储的中央模型的键,而空心圆圈表示先前被读取或写入的本地训练模型的键。图3a示出了其中引用键(和对应的中央模型)没有很好地覆盖(或表示)被读取或写入的许多模型的情况,因为它们的键太远。图3b示出了更好的情况,其中引用键(和对应的中
央模型)更好地分布。通过保证中央模型的键很好地表示本地训练模型,可以进一步改进读取操作和写入操作。
[0110]
在从分散数据中学习的过程开始时,中央模型未被训练。因此,很自然地使用最初写入的模型来填充模型池,并且使用对应键作为模型池中的引用键。但是,该方法可能导致图3a所示的情况,具有较差的代表覆盖。在实施例中,模型池中存储的中央模型及它们的对应键可以周期性地或以其他方式被更新(例如在每次读取或写入操作发生之后)以提供更好的代表性,例如通过将键移向更多操作正在被执行的区域。也就是说,在实施例中,可以使键适配覆盖在读取操作和写入操作期间被读取或写入的键的整体分布。
[0111]
为了更新模型池代表性,可以采用两种基本方法:一种采用静态模型池大小,而另一种采用动态模型池大小。下面描述两种方法的示例性实施例。
[0112]
静态模型池大小
[0113]
如果模型池p的大小(行数m)是固定的,即,不允许增长或收缩,则可以通过采用在线k均值聚类策略来维护引用键。这样的策略将(本公开的上下文中的对(k,θ)的)数据流视为输入,并且每当接收到对(k,θ)时更新k个质心的位置。(注意,k均值中的k是指聚类的数量,其在该上下文中转换为p中的行数m。当指键时使用斜体字母,而非斜体k被用作传统的k均值过程的描述符。)给定足够的读取操作和/或写入操作,在线k均值聚类过程适配被存储在p中的键以获得对键的整体分布的良好覆盖,从而导致由图3b所示的情况。
[0114]
简而言之,该过程可以如下进行。被写入模型池的前m个键-模型对被存储为初始引用。每个后续读取操作或写入操作都触发最接近的引用键朝向被提供给读取或写入操作符的键的轻微适配。这可以被视为预热阶段,其中模型池和其中的键-模型对适配本地模型的数据分布。
[0115]
注意,对模型池中的引用键的更改必然需要对相应的中央模型的更改。例如,如果确定了新的引用键k
new
,则可以通过在模型池被修改之前对键k
new
执行读取操作来确定该键的对应模型。然后,可以通过用新计算的键-模型对替换键-模型对来修改模型池。
[0116]
尽管实现起来更简单,但静态模型池大小具有其局限性。事先不可能知道一个特定用例要使用多少个引用键。如果m小于必要的值,则模型池引用键可能无法很好地表示多模式本地数据分布。如果m太大,则许多引用键在大多数读取操作和写入操作中变得无用。因此,在一些实施例中,动态方法可能是方便的。
[0117]
动态模型池大小
[0118]
如果模型池p的大小(行数m)是动态的,即,允许增长或收缩,则可以通过采用其他策略(例如,增长神经气体技术)来维护引用键。这样的方法解决了与在线k均值聚类技术相同的问题,但它们另外提供了用于检测对插入或删除引用键的需要的机制,这将允许模型池增长或收缩。
[0119]
简而言之,该过程可以如下进行。被写入模型池的前两个键-模型对被存储为初始引用。每个后续读取操作或写入操作都触发一些引用键朝向被提供给读取或写入操作符的键的轻微适配。通过删除很少与被提供给读取或写入操作符的键接近的引用键来发生收缩。通过插入新的引用键以覆盖其中已发生读取或写入操作的区域,偶尔发生增长。收缩阶段和增长阶段产生动态模型池。
[0120]
注意,对模型池中的引用键的更改必然需要对相应的中央模型的更改。例如,如果
确定了新的引用键k
new
,则可以通过在模型池被修改之前对键k
new
执行读取操作来确定该键的对应模型。然后,可以通过用新计算的键-模型对替换键-模型对或者通过在模型池中插入新的键-模型对而不替换现有的键-模型对来修改模型池。
[0121]
图4示出了根据实施例的消息流程图。如图所示,两个本地客户端节点104与维护模型池200的中央服务器节点102通信。
[0122]
在所示的“联合会话客户端1”循环中,本地客户端节点1通过键从中央服务器节点102请求模型(在410处)。中央服务器节点102使用来自本地客户端节点1的键对模型池200执行读取操作,以通过所提供的键来获得模型(在412,414处)。中央服务器节点102然后将模型发送到请求该模型的本地客户端节点1(在416处)。
[0123]
在所示的“联合会话客户端2”循环中发生了类似的序列。本地客户端节点2通过键从中央服务器节点102请求模型(在418处)。中央服务器节点102使用来自本地客户端节点1的键对模型池200执行读取操作,以通过所提供的键来获得模型(在420,422处)。中央服务器节点102然后将模型发送到请求该模型的本地客户端节点1(在424处)。
[0124]
如图所示,当本地客户端节点104(本地客户端节点1或2)请求模型时,本地客户端节点104可以在它的请求中包括键。
[0125]
图5示出了根据实施例的消息流程图。如图所示,本地客户端节点104与维护模型池200的中央服务器节点102通信。本地客户端节点104可以包括一个或多个模块,包括数据源502、本地数据库504、模型训练器506和键管理器508。这些模块被示为本地客户端节点104的单独实体,但是应当理解,它们的功能还可以在比此处所示更多或更少的模块中实现,并且这些模块可以远离本地客户端节点104。
[0126]
在所示的“数据收集”循环中,由数据源502收集的数据被存储在本地数据库504中(在510处)。例如,在模型池中的模型预测部分键入的单词的后缀的实施例中,数据可以包括本地客户端节点104的用户键入的字符序列。通常,所收集的数据将是应用特定的。
[0127]
在所示的“获得模型”循环中,模型训练器506从键管理器508请求本地键,键管理器508然后提供键(在512,514处)。模型训练器506然后可以使用本地键从中央服务器节点102请求模型(在516处)。中央服务器节点102使用该键来获得模型(例如参见图4),然后将模型发送到请求该模型的模型训练器506(在518处)。
[0128]
在所示的“训练”循环中,模型训练器506从本地数据库504请求数据样本,本地数据库504然后提供数据样本(在520,522处)。例如,这可以包括在“数据收集”循环期间收集的数据。模型训练器506然后使用该数据来训练模型(在524处)。
[0129]
训练后的模型然后可以被发送到中央服务器节点102。本地客户端节点102还可以将本地键提供给中央服务器节点102,以使得中央服务器节点102可以对模型池200执行写入操作。
[0130]
图6示出了根据实施例的流程图。过程600是由中央服务器计算设备102执行的方法。过程600可以开始于步骤s602。
[0131]
步骤s602包括:从本地客户端节点接收本地模型权重和对应键。
[0132]
步骤s604包括:更新模型池,该模型池具有多个中央模型和与中央模型中的每个中央模型相关联的对应键。
[0133]
步骤s608包括:其中,更新模型池是基于本地模型权重以及以下中的一项或多项:
与本地客户端节点相对应的键,以及共同与中央模型中的每个中央模型相对应的键。
[0134]
步骤s610包括:其中,更新模型池包括:更新在模型池中包含的多个中央模型中的至少两个中央模型。
[0135]
在一些实施例中,更新模型池进一步包括:计算相似度得分,该相似度得分将与本地客户端节点相对应的键和共同与多个中央模型中的每个中央模型相对应的键进行比较,并且其中,更新多个中央模型中的至少两个中央模型是基于相似度得分。在一些实施例中,该方法还包括:基于相似度得分,从模型池中选择多个中央模型中的至少两个中央模型。在一些实施例中,来自模型池的多个中央模型中的至少两个中央模型包括多个中央模型中的所有中央模型。在一些实施例中,更新多个中央模型中的至少两个中央模型包括:对于多个中央模型中的至少两个中央模型中的每个中央模型,将本地模型权重与该中央模型的当前版本进行组合,以使得与具有较低的对应相似度得分的中央模型相比,对于具有较高的对应相似度得分的中央模型,本地模型权重被赋予更大的权重。
[0136]
在一些实施例中,更新多个中央模型中的至少两个中央模型包括:针对与多个中央模型中的至少两个中央模型相对应的一组索引中的每个i,计算新的模型权重其中:
[0137]
是指用于与索引i相对应的中央模型的新的模型权重,
[0138]
是指用于与索引i相对应的中央模型的旧的模型权重,
[0139][0140]
w=(w1,

,wm)是相似度得分,以使得wi对应于与本地客户端节点相对应的键和与多个中央模型中的第i个中央模型相对应的键之间的相似度,
[0141]
m是模型池中的多个中央模型的数量,以及
[0142]
是指本地模型权重。
[0143]
在一些实施例中,相似度得分w被规范化,以使得∑wi=1。在一些实施例中,与本地客户端节点相对应的键和共同与多个中央模型中的每个中央模型相对应的模型池的键中的一个或多个键各自包括数据分布部分和部署部分,其中,一个或多个键中的每个键的数据分布部分包括描述与相应的本地客户端节点或中央模型相对应的数据分布的信息,并且其中,一个或多个键中的每个键的部署部分包括描述与相应的本地客户端节点或中央模型相对应的部署环境的信息。在一些实施例中,计算相似度得分是基于具有数据分布部分和部署部分的第一键k1与具有数据分布部分和部署部分的第二键k2之间的相似度函数d(k1,k2),以使得),以使得
[0144]
在一些实施例中,作为接收到本地模型权重和对应键的结果,执行更新模型池,而无需等待来自附加的本地客户端节点的附加的本地模型权重(例如,来自所谓的落后者(stragglers),即,未及时提供它们的本地更新的本地节点)和对应键。在一些实施例中,该方法还包括:修改模型池,以使得与模型池的中央模型相对应的键的分布是基于来自本地客户端节点的对应键而被修改的。例如,可以采用上述静态或动态模型池大小方法来更新模型池,以使得与模型池的中央模型相对应的键的分布是基于来自本地客户端节点的对应键而被修改的。
[0145]
图7示出了根据实施例的流程图。过程700是由中央服务器计算设备102执行的方
法。过程700可以开始于步骤s702。
[0146]
步骤s702包括:从本地客户端节点接收对模型的请求,其中,该请求包括与本地客户端节点相对应的键。
[0147]
步骤s704包括:响应于接收到该请求,从模型池构造模型,该模型池具有多个中央模型和与中央模型中的每个中央模型相关联的对应键。
[0148]
步骤s706包括:向本地客户端节点发送所构造的模型。
[0149]
步骤s708包括:其中,从模型池构造模型是基于与本地客户端节点相对应的键和共同与中央模型中的每个中央模型相对应的键。
[0150]
步骤s710包括:其中,从模型池构造模型包括:聚合在模型池中包含的多个中央模型中的至少两个中央模型。
[0151]
在一些实施例中,从模型池构造模型进一步包括:计算相似度得分,该相似度得分将与本地客户端节点相对应的键和共同与多个中央模型中的每个中央模型相对应的键进行比较,并且其中,聚合多个中央模型中的至少两个中央模型是基于相似度得分。在一些实施例中,该方法还包括:基于相似度得分,从模型池中选择多个中央模型中的至少两个中央模型。在一些实施例中,来自模型池的多个中央模型中的至少两个中央模型包括多个中央模型中的所有中央模型。在一些实施例中,聚合多个中央模型中的至少两个中央模型被执行,以使得多个中央模型中的至少两个中央模型中的具有较高的对应相似度得分的中央模型比具有较低的对应相似度得分的模型被更多地加权。
[0152]
在一些实施例中,聚合多个中央模型中的至少两个中央模型包括:计算聚合模型权重其中:
[0153]
是指用于所构造的模型的聚合模型权重,
[0154]
m是模型池中的多个中央模型的数量,
[0155]
θi是指用于与索引i相对应的中央模型的模型权重,以及
[0156]
w=(w1,

,wm)是相似度得分,以使得wi对应于与本地客户端节点相对应的键和与多个中央模型中的第i个中央模型相对应的键之间的相似度。
[0157]
在一些实施例中,相似度得分w被规范化,以使得∑wi=1。在一些实施例中,与本地客户端节点相对应的键和共同与多个中央模型中的每个中央模型相对应的模型池的键中的一个或多个键各自包括数据分布部分和部署部分,其中,一个或多个键中的每个键的数据分布部分包括描述与相应的本地客户端节点或中央模型相对应的数据分布的信息,并且其中,一个或多个键中的每个键的部署部分包括描述与相应的本地客户端节点或中央模型相对应的部署环境的信息。
[0158]
在一些实施例中,计算相似度得分是基于具有数据分布部分和部署部分的第一键k1与具有数据分布部分和部署部分的第二键k2之间的相似度函数d(k1,k2),以使得在一些实施例中,该方法还包括:修改模型池,以使得与模型池的中央模型相对应的键的分布是基于来自本地客户端节点的对应键而被修改的。例如,可以采用上述静态或动态模型池大小方法来更新模型池,以使得与模型池的中央模型相对应的键的分布是基于来自本地客户端节点的对应键而被修改的。
[0159]
图8是根据一些实施例的装置800(例如,本地客户端节点104和/或中央服务器节
点102)的框图。如图8所示,该装置可以包括:处理电路(pc)802,其可以包括一个或多个处理器(p)855(例如通用微处理器和/或一个或多个其他处理器,例如专用集成电路(asic)、现场可编程门阵列(fpga)等);网络接口848,其包括发射机(tx)845和接收机(rx)847,用于使该装置能够向被连接到网络接口848所连接到的网络810(例如互联网协议(ip)网络)的其他节点发送数据和从这些其他节点接收数据;以及本地存储单元(也称为“数据存储系统”)808,其可以包括一个或多个非易失性存储设备和/或一个或多个易失性存储设备。在pc 802包括可编程处理器的实施例中,可以提供计算机程序产品(cpp)841。cpp841包括存储计算机程序(cp)843的计算机可读介质(crm)842,cp843包括计算机可读指令(cri)844。crm 842可以是非暂时性计算机可读介质,例如磁性介质(例如硬盘)、光学介质、存储设备(例如随机存取存储器、闪存)等。在一些实施例中,计算机程序843的cri 844被配置以使得当由pc 802执行时,cri使得该装置执行本文描述的步骤(例如本文参考流程图描述的步骤)。在其他实施例中,该装置可以被配置为执行本文描述的步骤而不需要代码。也就是说,例如pc 802可以仅包括一个或多个asic。因此,本文描述的实施例的特征可以以硬件和/或软件来实现。
[0160]
图9是根据一些其他实施例的装置800的示意性框图。装置800包括一个或多个模块900,每个模块以软件实现。模块900提供本文描述的装置800的功能(例如本文的步骤,例如针对图4-7)。
[0161]
尽管本文描述了本公开的各种实施例,但应当理解,它们仅通过示例的方式提供而非限制。因此,本公开的广度和范围不应受上述任何示例性实施例的限制。此外,除非本文另外指明或者以其他方式明显与上下文矛盾,否则本公开包含上述元素的所有可能变型的任何组合。
[0162]
附加地,尽管在上面描述并且在附图中示出的过程被示为一系列步骤,但这仅为了说明。因此,构想了可以添加一些步骤,可以省略一些步骤,可以重新安排步骤的顺序,以及可以并行执行一些步骤。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献