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

一种流言联邦学习方法和架构

2022-08-02 23:42:16 来源:中国专利 TAG:


1.本技术涉及机器学习技术领域,特别是涉及一种流言联邦学习方法和架构。


背景技术:

2.联邦学习(federated learning,简称:fl)的关键挑战之一来自数据异构性问题。传统的集中式机器学习基本上假定训练样本具有数据独立同分布(independent identically distribution,简称:iid)特性,而在许多常见的fl设置中,客户端的底层数据分布可能会有很大的不同。这导致不同客户的模型更新差异极大,并导致不希望出现的模型差异,这也使得最终训练的模型很难被许多现有客户以及新客户使用,因为新客户可能拥有与现有客户不同的数据分布,并且没有参与训练过程。
3.一般来说,对于数据非独立同分布(non-independent identically distribution,简称:non-iid)问题,现有的解决方案主要有两种:(1)为每个客户构建个性化模型;(2)构建一个能够适应大多数客户的全局模型。现有的大部分工作都集中在第一种方法上,使用知识提炼或迁移学习等。然而,当新客户加入fl时,这些方法将很难选择一个合适的模型来使用。许多专注于第二种方法的工作,如fedprox和scaffold,通过在其损失函数中添加正则化子来训练全局模型,而无需对训练过程进行任何修改。虽然现有的研究已经在non-iid问题方面取得了一定的成果,但是每个客户端的non-iid数据对模型性能的影响还是存在的。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种流言联邦学习方法和架构。
5.一种流言联邦学习方法,所述方法包括:
6.所有客户端与服务器采用联邦学习的方式进行训练,所述服务器根据每个所述客户端的更新模型采用聚类的方式将所述客户端分为不同的类别,所述服务器将聚合的模型和模型类别标签发送到相应的客户端。
7.所述客户端聚类之间采用流言学习的方式进行训练,每个客户端将达到训练终止条件时得到的新模型传送至服务器。
8.所述服务器将接收到的新模型进行聚合,并将聚合后的模型分发给每个所述客户端,客户端聚类之间继续采用流言学习的方法进行训练,直至达到预设条件为止。
9.在其中一个实施例中,所述客户端聚类之间采用流言学习的方式进行训练,每个客户端将达到训练终止条件时得到的新模型传送至服务器,包括:
10.设置客户端通信次数为0;设置每个客户端的模型缓冲区、每个模型的类别队列均为空。
11.当所述客户端接收到模型时,所述客户端将接收到的模型及模型类别标签存储到自身的所述模型缓冲区中,每个所述客户端使用本地数据对最后存储在所述模型缓冲区中的模型进行训练,并更新被训练模型的类别队列。
12.所述客户端将训练后的模型及模型的类别标签发送给该模型的所述类别队列中未包含的类别的客户端;将客户端通信次数加1,直到所述客户端端通信次数等于所述类别的数量为止,所述客户端将训练得到的新模型传送至服务器。
13.在其中一个实施例中,当所述客户端接收到模型时,所述客户端将接收到的模型及模型类别标签存储到自身的所述模型缓冲区中,每个所述客户端使用本地数据对最后存储在所述模型缓冲区中的模型进行训练,并更新被训练模型的类别队列,步骤后还包括:
14.当所述客户端没有接收到模型时,所述客户端使用本地数据对最后存储在所述模型缓冲区中的模型进行训练。
15.当被训练的模型的类别队列不包含当前客户端的类别,则将当前客户端的类别添加到被训练的模型的类别队列中,更新被训练模型的类别队列。
16.在其中一个实施例中,所有客户端与服务器采用联邦学习的方式进行训练,服务器根据每个所述客户端的更新模型采用聚类的方式将所述客户端分为不同的类别,所述服务器将聚合的模型和模型类别标签发送到相应的客户端,包括:
17.服务器将相同的初始化模型发送到每个客户端,每个所述客户端使用本地数据对接收到的模型进行多轮训练后,每个所述客户端将得到的更新模型上传到所述服务器。
18.所述服务器根据每个所述客户端的更新模型采用聚类的方式将所述客户端分为不同的类别。
19.所述服务器聚合所有客户端的更新模型,并将聚合的模型和类别标签发送到相应的客户端。
20.一种流言联邦学习架构,所述流言联邦学习架构包括:服务器和多个可以相互通信的客户端聚类。
21.所述客户端聚类是所述服务器根据每个客户端在接收到服务器发送的模型在本地进行多轮训练后得到的更新模型采用聚类的方式进行分类得到的;所述客户端聚类包括多个类别相同的且不能相互通信的客户端。
22.所述服务器,用于在进行客户端聚类时下发初始模型、对客户端训练完成时上传的新模型进行聚合并下发聚合后的模型到客户端;还用于在客户端聚类之间进行流言训练时对接收到的模型进行聚合并下发聚合后的模型到客户端。
23.不同所述客户端聚类之间采用流言学习的方式进行训练,每个客户端将达到训练终止条件时得到的新模型传送至服务器;所述服务器将接收到的新模型进行聚合,并将聚合后的模型分发给每个所述客户端,客户端聚类之间继续采用流言学习的方法进行训练,直至达到预设条件为止。
24.在其中一个实施例中,每个客户端包括一个模型缓冲区,所述模型缓冲区用于存储从其他客户端接收的模型;每个模型包括一个类别队列,所述类别队列用于存储该模型已经训练过的客户端类别。
25.不同所述客户端聚类之间采用流言学习的方式进行训练,每个客户端将达到训练终止条件时得到的新模型传送至服务器,包括:
26.设置客户端通信次数为0;设置每个客户端的模型缓冲区、每个模型的类别队列均为空。
27.当所述客户端接收到模型时,所述客户端将接收到的模型及模型类别标签存储到
自身的所述模型缓冲区中,每个所述客户端使用本地数据对最后存储在所述模型缓冲区中的模型进行训练,并更新被训练模型的类别队列。
28.所述客户端将训练后的模型及模型的类别标签发送给该模型的所述类别队列中未包含的类别的客户端;将客户端通信次数加1,直到所述客户端端通信次数等于所述类别的数量为止,所述客户端将训练得到的新模型传送至服务器。
29.在其中一个实施例中,当所述客户端接收到模型时,所述客户端将接收到的模型及模型类别标签存储到自身的所述模型缓冲区中,每个所述客户端使用本地数据对最后存储在所述模型缓冲区中的模型进行训练,并更新被训练模型的类别队列,步骤后还包括:
30.当所述客户端没有接收到模型时,所述客户端使用本地数据对最后存储在所述模型缓冲区中的模型进行训练。
31.当被训练的模型的类别队列不包含当前客户端的类别,则将当前客户端的类别添加到被训练的模型的类别队列中,更新被训练模型的类别队列。
32.在其中一个实施例中,客户端聚类的方法包括:
33.服务器将相同的初始化模型发送到每个客户端,每个所述客户端使用本地数据对接收到的模型进行多轮训练后,每个所述客户端将得到的更新模型上传到所述服务器。
34.所述服务器根据每个所述客户端的更新模型采用聚类的方式将所述客户端分为不同的类别。
35.所述服务器聚合所有客户端的更新模型,并将聚合的模型和类别标签发送到相应的客户端。
36.上述一种流言联邦学习方法和架构,所述方法包括:所有客户端与服务器采用联邦学习的方式进行训练,服务器根据每个客户端的更新模型采用聚类的方式将客户端分为不同的类别,服务器将聚合的模型和模型类别标签发送到相应的客户端;客户端聚类之间采用流言学习的方式进行训练,每个客户端将达到训练终止条件时得到的新模型传送至服务器;服务器将接收到的新模型进行聚合,并将聚合后的模型分发给每个客户端,客户端聚类之间继续采用流言学习的方法进行训练,直至达到预设条件为止。该方法利用流言学习的优势来解决联邦学习环境中的non-iid问题。
附图说明
37.图1为一个实施例中流言联邦学习方法的流程示意图;
38.图2为一个实施例中流言训练的流程示意图。
具体实施方式
39.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
40.在一个实施例中,如图1所示,提供了一种流言联邦学习方法,该方法包括以下步骤:
41.步骤100:所有客户端与服务器采用联邦学习的方式进行训练,服务器根据每个客户端的更新模型采用聚类的方式将客户端分为不同的类别,服务器将聚合的模型和模型类
别标签发送到相应的客户端。
42.具体的,在联邦学习中,分布式本地客户端根据本地数据样本计算本地模型并将其发送到服务器。服务器通过聚合来自不同设备的本地模型来训练共享模型。因此,在训练过程中,原始数据一直保存在本地设备中,可以有效的保护用户的隐私。但是由于non-iid问题的存在,就会导致不同客户端的模型更新差异极大,并导致不希望出现的模型差异,这也使得最终训练的模型很难被许多现有客户端以及新客户端使用,因为新客户端可能拥有与现有客户不同的数据分布,并且没有参与训练过程。
43.具有不同数据分布的客户端通过聚类被分为不同的类别。客户端聚类可以促进具有不同数据分布的客户端之间的通信,从而避免在相似的客户端之间进行无效通信,降低本地通信成本。通过客户端之间的通信使得每个模型学习到不同客户端上的数据分布并最后将模型上传到服务器上。
44.聚类的方式可以为k均值聚类、均值漂移聚类或其它聚类方式。
45.步骤102:客户端聚类之间采用流言学习的方式进行训练,每个客户端将达到训练终止条件时得到的新模型传送至服务器。
46.在联邦学习中,non-iid的意思一般是值不符合同分布的情况,因为数据的分布肯定是独立的,但是它们不一定服从同一采样方法。本专利的挑战是使全局模型在绝大多数客户端上表现良好。针对这一点,考虑当每个客户端向服务器传递更新模型时,是否可以削弱本地non-iid数据的影响。与联邦学习不同,流言学习(gossip learning,简称:gl)是一种分散式学习方法,它通过不同客户端之间的直接通信而不是客户端与服务器之间的通信来实现协作学习。一个关键的观察结果是,gl充分利用了客户之间的渠道,可以使学习的模型携带更多嵌入不同客户中的信息。
47.步骤104:服务器将接收到的新模型进行聚合,并将聚合后的模型分发给每个客户端,客户端聚类之间继续采用流言学习的方法进行训练,直至达到预设条件为止。
48.具体的,预设条件可以为迭代轮数达到预设的迭代轮数,或得到的最终模型达到预设的模型精度。
49.上述一种流言联邦学习方法中,所述方法包括:所有客户端与服务器采用联邦学习的方式进行训练,服务器根据每个客户端的更新模型采用聚类的方式将客户端分为不同的类别,服务器将聚合的模型和模型类别标签发送到相应的客户端;客户端聚类之间采用流言学习的方式进行训练,每个客户端将达到训练终止条件时得到的新模型传送至服务器;服务器将接收到的新模型进行聚合,并将聚合后的模型分发给每个客户端,客户端聚类之间继续采用流言学习的方法进行训练,直至达到预设条件为止。该方法利用流言学习的优势来解决联邦学习环境中的non-iid问题。
50.在其中一个实施例中,步骤102包括:设置客户端通信次数为0;设置每个客户端的模型缓冲区、每个模型的类别队列均为空;当客户端接收到模型时,客户端将接收到的模型及模型类别标签存储到自身的模型缓冲区中,每个客户端使用本地数据对最后存储在模型缓冲区中的模型进行训练,并更新被训练模型的类别队列;客户端将训练后的模型及模型的类别标签发送给该模型的类别队列中未包含的类别的客户端;将客户端通信次数加1,直到客户端端通信次数等于类别的数量为止,客户端将训练得到的新模型传送至服务器。
51.以客户端聚类的数量为3为例来对采用流言学习的方式进行训练的过程进行说
明。客户端聚类分别为a类、b类和k类,流言训练的流程如图2所示。
52.客户端聚类后的每一轮本地训练中,客户端在每轮训练迭代中相互交流3次。通信的次数被选择为与聚类的数量相等,以便所有本地模型都有机会了解所有类别的分布。然后,在在完成预设的通信次数后,更新后的模型将上载到服务器。具体来说,这项工作为每个客户端维护一个模型缓冲区bi,用于存储从其他客户端接收到的模型,并维护一个类别队列qi,用于指示模型已经训练过的客户端类别。流言训练的过程如下:
53.在每轮开始时,首先重置qi和bi,客户端将其接收到的参数wi连同附在参数wi上的类标签一起推送到自己的模型缓冲区bi中,这表明参数已在当前客户端类别上经过训练。然后,每个客户端使用本地数据来训练最后收到的一个模型。如果客户端没有收到新模型,则会在其缓冲区中采用最新模型。如果附加到模型的类标签不包含当前客户端的类别,则会将其添加到类别队列qi。
54.②
在完成客户端i的本地培训后,客户端i与qi中未包含的客户类别的客户端进行通信。
55.③
客户端之间的通信完成后,客户端将更新的参数发送到服务器。
56.④
服务器将接收到的参数进行聚合。
57.⑤
服务器将聚合后的模型分发给客户端。系统将迭代上述过程,直到满足预定义的终止条件。
58.在其中一个实施例中,当客户端接收到模型时,客户端将接收到的模型及模型类别标签存储到自身的模型缓冲区中,每个客户端使用本地数据对最后存储在模型缓冲区中的模型进行训练,并更新被训练模型的类别队列,步骤后还包括:当客户端没有接收到模型时,客户端使用本地数据对最后存储在模型缓冲区中的模型进行训练;当被训练的模型的类别队列不包含当前客户端的类别,则将当前客户端的类别添加到被训练的模型的类别队列中,更新被训练模型的类别队列。
59.在其中一个实施例中,步骤100包括:服务器将相同的初始化模型发送到每个客户端,每个客户端使用本地数据对接收到的模型进行多轮训练后,每个客户端将得到的更新模型上传到服务器;服务器根据每个客户端的更新模型采用聚类的方式将客户端分为不同的类别;服务器聚合所有客户端的更新模型,并将聚合的模型和类别标签发送到相应的客户端。
60.具体的,客户端聚类由服务器进行执行:当每个客户端从服务器接收到相同的初始化参数时,每个客户端使用本地数据对模型进行几轮训练,之后客户端将更新的参数上传到服务器。服务器根据每个客户端的更新参数将客户端分为不同的类别。集群的数量主要由所有客户端上的数据分布决定。然后,服务器聚合所有客户端的模型,并将聚合的参数和类别标签发送到相应的客户端。
61.应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
62.在一个实施例中,提供了一种流言联邦学习架构,流言联邦学习架构包括:服务器和多个可以相互通信的客户端聚类。
63.客户端聚类是服务器根据每个客户端在接收到服务器发送的模型在本地进行多轮训练后得到的更新模型采用聚类的方式进行分类得到的;客户端聚类包括多个类别相同的且不能相互通信的客户端。
64.服务器,用于在进行客户端聚类时下发初始模型、对客户端训练完成时上传的新模型进行聚合并下发聚合后的模型到客户端;还用于在客户端聚类之间进行流言训练时对接收到的模型进行聚合并下发聚合后的模型到客户端。
65.不同客户端聚类之间采用流言学习的方式进行训练,每个客户端将达到训练终止条件时得到的新模型传送至服务器;服务器将接收到的新模型进行聚合,并将聚合后的模型分发给每个客户端,客户端聚类之间继续采用流言学习的方法进行训练,直至达到预设条件为止。
66.在其中一个实施例中,每个客户端包括一个模型缓冲区,模型缓冲区用于存储从其他客户端接收的模型;每个模型包括一个类别队列,类别队列用于存储该模型已经训练过的客户端类别;不同客户端聚类之间采用流言学习的方式进行训练,每个客户端将达到训练终止条件时得到的新模型传送至服务器,包括:设置客户端通信次数为0;设置每个客户端的模型缓冲区、每个模型的类别队列均为空;当客户端接收到模型时,客户端将接收到的模型及模型类别标签存储到自身的模型缓冲区中,每个客户端使用本地数据对最后存储在模型缓冲区中的模型进行训练,并更新被训练模型的类别队列;客户端将训练后的模型及模型的类别标签发送给该模型的类别队列中未包含的类别的客户端;将客户端通信次数加1,直到客户端端通信次数等于类别的数量为止,客户端将训练得到的新模型传送至服务器。
67.在其中一个实施例中,当客户端接收到模型时,客户端将接收到的模型及模型类别标签存储到自身的模型缓冲区中,每个客户端使用本地数据对最后存储在模型缓冲区中的模型进行训练,并更新被训练模型的类别队列,步骤后还包括:当客户端没有接收到模型时,客户端使用本地数据对最后存储在模型缓冲区中的模型进行训练;当被训练的模型的类别队列不包含当前客户端的类别,则将当前客户端的类别添加到被训练的模型的类别队列中,更新被训练模型的类别队列。
68.在其中一个实施例中,客户端聚类的方法包括:服务器将相同的初始化模型发送到每个客户端,每个客户端使用本地数据对接收到的模型进行多轮训练后,每个客户端将得到的更新模型上传到服务器;服务器根据每个客户端的更新模型采用聚类的方式将客户端分为不同的类别;服务器聚合所有客户端的更新模型,并将聚合的模型和类别标签发送到相应的客户端。
69.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
70.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护
范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

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

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

相关文献