模型训练方法、装置、设备及存储介质与流程

文档序号:35565376发布日期:2023-09-24 05:05阅读:22来源:国知局
模型训练方法、装置、设备及存储介质与流程

本技术涉及机器学习,尤其涉及一种模型训练方法、装置、设备及存储介质。


背景技术:

1、随着人工智能技术的发展,为了解决数据孤岛的问题,人们提出了联邦学习(federatedlearning)的概念。联邦学习本质上是一种分布式机器学习技术,它的目标是在保障数据隐私安全的前提下让多个参与方协作进行机器学习模型的训练,以提升模型的效果。

2、目前的联邦学习方法只支持对不同客户的相同任务进行联合建模,因此,对于具有不同任务需求的客户来说,他们是无法利用现有的联邦学习方法进行联合建模的,导致这些客户的本地数据无法得到很好地利用。


技术实现思路

1、为了解决现有技术中存在的上述问题,本技术实施例中提供一种模型训练方法、装置、设备及存储介质,支持为不同客户的不同任务进行联合建模,拓宽了联邦学习的应用场景,可以充分利用各个客户本地的数据进行模型训练,提升模型效果。

2、第一方面,本技术提供了一种模型训练方法,用于第一客户端,该方法包括:将第一客户端中的第一任务对应的有标签数据输入第一模型中的第一骨干网络,得到第一特征,其中,第一骨干网络的第一网络权重参考了第一结果和第二结果,第一结果是第一客户端使用第一客户端中的无标签数据对第一骨干网络进行训练的训练结果,第二结果是第二客户端使用第二客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果,第一模型用于执行第一任务,第二模型用于执行第二任务,第一任务和第二任务是不同的任务;通过第一特征对第一模型中的第一任务网络进行训练。

3、可以看出,上述第一客户端的任务需求包括第一任务,并且第一客户端上存在第一任务对应的有标签数据和无标签数据;第一客户端中的第一模型可用于执行该第一任务,它包括第一骨干网络和第一任务网络,其中,第一骨干网络用于特征提取,第一骨干网络的输出作为第一任务网络的输入,第一任务网络与第一任务对应,用于基于第一骨干网络输入的特征输出第一任务的结果。类似的,第二客户端的任务需求包括第二任务,并且第二客户端上存在无标签数据;第二客户端中的第二模型可用于执行第二任务,第二模型包括第二骨干网络,第二骨干网络也用于特征提取。需要说明的是,第二骨干网络与第一骨干网络的结构相同,但二者的网络权重不一定相同。

4、虽然第一客户端和第二客户端的任务需求不同,但是它们本地都有一个骨干网络(分别是第一骨干网络和第二骨干网络),它们可以先分别利用其本地的无标签数据对本地的骨干网络进行自监督训练,再将各自得到的训练结果(分别是第一结果和第二结果)作为第一骨干网络的第一网络权重的参考。比如,可以将上述第一结果和第二结果进行聚合得到该第一网络权重。

5、可以理解的是,因为第一骨干网络的第一网络权重综合了第一客户端的上述第一结果和第二客户端的上述第二结果,所以第一网络权重可理解为是第一客户端和第二客户端共同训练的成果。这样的第一骨干网络(其网络权重为第一网络权重)的特征提取能力会比较好,进而可以加快第一模型中的第一任务网络的训练速度。

6、在传统的横向联邦学习方法中只支持相同任务的联合建模,即任务需求相同的多个客户端才能一起参与横向联邦学习,它们的目标模型是一样的,该目标模型用于执行该任务。如果多个客户端的任务需求不同,则它们的目标模型也不相同(各客户端的目标模型分别用于执行该客户端需求的任务),因此它们无法通过这种传统的横向联邦学习进行模型训练,导致各个客户端的本地数据得不到充分利用。

7、不同于传统的横向联邦学习方法,本方案支持为不同客户端的不同任务进行联合建模,拓宽了联邦学习的应用场景,从而能够将各个客户端的本地数据充分利用起来。在本方案中,各个客户端的目标模型均采用骨干网络和任务网络(与该客户端需求的任务对应)两部分来构成,其中,骨干网络用于特征提取,任务网络基于骨干网络提取的特征输出对应任务的结果。此时骨干网络作为各客户端的目标模型中的公共部分,便可以基于传统的横向联邦学习方法进行联合训练:各个客户端分别利用其本地的无标签数据对本地的骨干网络进行自监督训练,各客户端得到的训练结果由服务端聚合后再下发给各客户端,以更新各客户端本地的骨干网络;经过上面多次循环便可以得到训练好的骨干网络,这个训练好的骨干网络对所有客户端都有益。之后,各客户端再根据训练好的骨干网络及其本地的有标签数据对任务网络进行训练。可以理解的是,上述训练好的骨干网络相当于学习了多个客户端的本地数据的知识,所以特征提取效果较好,进而可以加快任务网络的训练速度,仅用少量有标签数据即可。

8、基于第一方面,在可能的实施例中,第一客户端中的无标签数据包括第一任务对应的无标签数据,第二客户端中的无标签数据包括第二任务对应的无标签数据。

9、也就是说,第一客户端可以利用第一客户端中的第一任务对应的无标签数据对第一骨干网络进行训练,而第二客户端可以利用第二客户端中的第二任务对应的无标签数据对第二骨干网络进行训练。由于第一骨干网络的第一网络权重参考了第一客户端和第二客户端的上述训练结果,相当于利用了不同客户端上的不同任务对应的无标签数据对第一骨干网络进行了训练,能够提升第一骨干网络的特征提取能力。

10、基于第一方面,在可能的实施例中,第一骨干网络的第一网络权重是根据以下两种训练结果聚合得到的:使用第一客户端中的无标签数据对第一骨干网络进行训练的训练结果;使用第二客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果。

11、也就是说,可以将第一客户端使用本地的无标签数据对第一骨干网络进行训练得到的结果以及第二客户端使用本地的无标签数据对第二骨干网络进行训练得到的结果进行聚合,从而得到第一骨干网络的第一网络权重。

12、基于第一方面,在可能的实施例中,所述通过第一特征对第一模型中的第一任务网络进行训练,包括:将第一特征输入第一模型中的第一任务网络,得到预测值;根据该预测值和第一客户端中的第一任务对应的有标签数据更新第一任务网络,得到第二网络权重。

13、也就是说,第一客户端将第一骨干网络输出的第一特征输入第一任务网络,可以得到相应的预测值,然后将该预测值与之前输入的有标签数据的标签(真实值)进行比较,计算损失函数值,再根据损失函数值对第一任务网络的网络权重进行更新,从而得到第二网络权重。应理解,这里只更新了第一模型中的第一任务网络,没有更新第一模型中的第一骨干网络,第一骨干网络的网络权重固定为第一网络权重。

14、基于第一方面,在可能的实施例中,在得到第二网络权重之后,该方法还包括:将第二网络权重发送给服务端;接收服务端发送的第三网络权重,其中,第三网络权重参考了第二网络权重和第三结果,第三结果是第三客户端使用第三客户端中的第一任务对应的有标签数据对第三模型进行训练的训练结果,第三模型包括第三骨干网络和第二任务网络,第三模型用于执行第一任务;使用第三网络权重更新第一任务网络。

15、可以看出,第一客户端和第三客户端的任务需求都包括第一任务,第一客户端中的第一模型和第三客户端中的第三模型都可用于执行第一任务。第一模型包括第一骨干网络和第一任务网络,第三模型包括第三骨干网络和第二任务网络。第三骨干网络也用于特征提取;第二任务网络与第一任务也是对应的,用于基于第三骨干网络提取特征输出第一任务的结果。第三骨干网络与第一骨干网络的结构相同,但网络权重不一定相同。

16、第一客户端和第三客户端可以分别利用本地的第一任务对应的有标签数据对第一模型和第三模型进行训练,再分别将训练得到的训练结果上传至服务端,服务端根据它们上传的训练结果可以得到第三网络权重并下发给第一客户端(也可以下发给第三客户端),以更新第一客户端中的第一任务网络。可以理解的是,由于第三网络权重综合了第一客户端和第三客户端各自在本地的训练结果,相当于综合了不同客户端的训练成果,因此第一任务网络使用第三网络权重进行更新之后的效果会更好。

17、基于第一方面,在可能的实施例中,所述根据预测值和第一客户端中的第一任务对应的有标签数据更新第一任务网络,包括:根据预测值和第一客户端中的第一任务对应的有标签数据,更新第一任务网络和第一骨干网络;所述使用第三网络权重更新第一任务网络,包括:使用第三网络权重更新第一任务网络和第一骨干网络。

18、也就是说,第一客户端可以不固定第一模型中的第一骨干网络的网络权重,根据预测值和第一客户端中的第一任务对应的有标签数据,既更新第一模型中的第一任务网络的网络权重,也更新第一模型中的第一骨干网络的网络权重。应理解,第一骨干网络更新之后,其网络权重就不再是第一网络权重。于是,这里的第二网络权重不仅包括第一任务网络更新后的网络权重,还包括第一骨干网络更新后的网络权重。

19、基于第一方面,在可能的实施例中,第三网络权重还参考了使用服务端中的第一任务对应的有标签数据对第四模型进行训练的训练结果,第四模型包括第四骨干网络和第三任务网络,第四模型用于执行第一任务。

20、也就是说,如果服务端上也具有第一任务对应的有标签数据,那么,服务端也可以利用其本地的第一任务对应的有标签数据对第四模型进行训练,服务端上的第四模型也可用于执行第一任务,包括第四骨干网络和第三任务网络。其中,第四骨干网络与第一骨干网络的结构相同,但网络权重不一定相同,第四骨干网络也用于特征提取,第三任务网络用于基于第四骨干网络输入的特征输出第一任务的结果。

21、第二方面,本技术实施例提供了又一种模型训练方法,用于服务端,该方法包括:将服务端中的第一任务对应的有标签数据输入第一模型中的第一骨干网络,得到第一特征,其中,第一骨干网络的第一网络权重参考了第一结果和第二结果,第一结果是第一客户端使用第一客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果,第二结果是第二客户端使用第二客户端中的无标签数据对第三模型中的第三骨干网络进行训练的训练结果,第二模型用于执行第一任务,第三模型用于执行第二任务,第一任务和第二任务是不同的任务;通过第一特征对第一模型中的第一任务网络进行训练。

22、可以看出,服务端上存在第一任务对应的有标签数据,服务端上的第一模型可用于执行第一任务。第一模型包括第一骨干网络和第一任务网络,第一骨干网络用于特征提取,第一任务用于基于第一骨干网络提取的特征输出第一任务的结果。

23、还可以看出,第一客户端和第二客户端本地均有一个骨干网络,分别是第二骨干网络和第三骨干网络,它们与服务端上的第一骨干网络的结构是相同的。第一客户端可以使用本地的无标签数据对第二骨干网络进行自监督训练,得到相应的训练结果,同样的,第二客户端也可以使用本地的无标签数据对第三骨干网络进行自监督训练,得到相应的训练结果。然后,服务端可以将上述第一客户端和第二客户端的训练结果作为第一骨干网络的第一网络权重的参考。

24、可以理解的是,因为第一骨干网络的第一网络权重综合了第一客户端和第二客户端各自在本地得到的上述训练结果,所以第一网络权重可理解为是不同客户端共同训练的成果。这样的第一骨干网络(其网络权重为第一网络权重)的特征提取能力会比较好,进而可以加快第一模型中的第一任务网络的训练速度。

25、基于第二方面,在可能的实施例中,第一客户端中的无标签数据包括第一任务对应的无标签数据,第二客户端中的无标签数据包括第二任务对应的无标签数据。

26、基于第二方面,在可能的实施例中,第一网络权重是根据以下两种训练结果聚合得到的:使用第一客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果;使用第二客户端中的无标签数据对第三模型中的第三骨干网络进行训练的训练结果。

27、基于第二方面,在可能的实施例中,所述通过第一特征对第一模型中的第一任务网络进行训练,包括:将第一特征输入第一模型中的第一任务网络,得到预测值;根据预测值和服务端中的第一任务对应的有标签数据更新第一任务网络,得到第二网络权重。

28、基于第二方面,在可能的实施例中,该方法还包括:接收第一客户端发送的第三网络权重,其中,第三网络权重是第一客户端使用第一客户端中的第一任务对应的有标签数据对第二模型进行训练的训练结果,第二模型包括第二骨干网络和第二任务网络;根据第三网络权重和第二网络权重聚合得到第四网络权重,使用第四网络权重更新第一任务网络。

29、可以看出,第一客户端上存在第一任务对应的有标签数据,第一客户端可以利用本地的第一任务对应的有标签数据对第一客户端上的第二模型进行训练,然后将训练得到的第三网络权重发送给服务端。服务端可以对自身训练得到的第二网络权重以及第三网络权重进行聚合,从而得到第四网络权重,然后使用第四网络权重更新第一任务网络。

30、由于第四网络权重综合了第一客户端和服务端各自的训练结果,相当于服务端上的第一任务网络是综合利用了第一客户端中的第一任务对应的有标签数据以及服务端中的第一任务对应的有标签数据来训练,相当于提升了第一任务网络的训练数据的数据量,第一任务网络使用第四网络权重更新之后的效果会更好。

31、基于第二方面,在可能的实施例中,根据预测值和服务端中的第一任务对应的有标签数据更新第一任务网络,包括:根据预测值和服务端中的第一任务对应的有标签数据,更新第一任务网络和第一骨干网络;使用第四网络权重更新第一任务网络,包括:使用第四网络权重更新第一任务网络和第一骨干网络。

32、也就是说,服务端既可以将第一模型中的第一骨干网络的网络权重固定为第一网络权重,也可以不固定第一骨干网络的网络权重,服务端在使用本地的第一任务对应的有标签数据训练第一模型时,不仅更新第一模型中的第一任务网络的网络权重,还更新第一骨干网络的网络权重。

33、基于第二方面,在可能的实施例中,该方法还包括:将第四网络权重发送给第一客户端,以使得第一客户端根据第四网络权重更新第二模型。

34、也就是说,服务端聚合得到第四网络权重之后,还可以将其发送给第一客户端,以使得第一客户端利用第四网络权重更新第一客户端上的第二模型,提升第二模型的效果。在此之后,第一客户端可以继续使用其本地的第一任务对应的有标签数据对更新后的第二模型进行训练,还可以将训练后得到的训练结果再次发送给服务端进行聚合。

35、第三方面,本技术实施例提供了一种装置,该装置包括:处理模块,用于将装置中的第一任务对应的有标签数据输入第一模型中的第一骨干网络,得到第一特征,其中,第一骨干网络的第一网络权重参考了使用装置中的无标签数据对第一骨干网络进行训练的训练结果,以及,使用第二客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果,第一模型用于执行第一任务,第二模型用于执行第二任务,第一任务和第二任务是不同的任务;训练模块,用于通过第一特征对第一模型中的第一任务网络进行训练。

36、上述装置对应于第一方面中的第一客户端,该装置中的各个模块具体用于执行第一方面中的任一实施例的方法。

37、第四方面,本技术实施例提供了又一种装置,该装置包括:处理模块,用于将装置中的第一任务对应的有标签数据输入第一模型中的第一骨干网络,得到第一特征,其中,第一骨干网络的第一网络权重参考了使用第一客户端中的无标签数据对第二模型中的第二骨干网络进行训练的训练结果,以及,使用第二客户端中的无标签数据对第三模型中的第三骨干网络进行训练的训练结果,第二模型用于执行第一任务,第三模型用于执行第二任务,第一任务和第二任务是不同的任务;训练模块,用于通过第一特征对第一模型中的第一任务网络进行训练。

38、上述装置对应于第二方面中的服务端,具体用于执行第二方面中的任一实施例的方法。

39、第五方面,本技术实施例提供了一种设备,包括处理器和存储器;处理器和存储器可通过总线相互连接,也可以集成在一起。该处理器用于读取存储器中存储的程序代码,以使得所述设备执行上述第一方面或第二方面中任一实施例的方法。

40、第六方面,本技术实施例提供一种计算机可读存储介质;该计算机可读存储介质用于存储上述第一方面或第二方面中的任一实施例方法的实现代码。

41、第七方面,本技术实施例提供了一种计算机程序(产品),该计算机程序(产品)包括程序指令,当该计算机程序产品被执行时,用于执行上述第一方面或第二方面中的任一实施例的方法。

42、综上所述,本技术实施例中的第一客户端可以利用其本地的无标签数据训练本地的骨干网络(即第一骨干网络),然后将得到的训练结果发送给服务端。同样的,其他客户端也可以利用本地的无标签数据训练本地的骨干网络,然后将训练结果发送给服务端。服务端可以对第一客户端发送的本地骨干网络的训练结果以及其他客户端发送的本地骨干网络的训练结果进行聚合,然后将聚合后得到的网络权重(即第一网络权重)下发给第一客户端,第一客户端可以使用第一网络权重更新第一模型中的第一骨干网络。这时候第一骨干网络的第一网络权重,既参考了第一客户端使用本地的无标签数据对第一骨干网络进行训练的训练结果(即第一结果),还参考了其他客户端使用其本地的无标签数据对本地的骨干网络进行训练的训练结果(如第二客户端的第二结果),相当于联合利用了不同客户端本地的无标签数据对第一骨干网络进行训练。这样的第一骨干网络(网络权重为第一网络权重)的特征提取能力会比较好,进而可以加快第一模型中的第一任务网络的训练速度,仅需少量的有标签数据即可完成训练。

43、接着,第一客户端可以使用本地的第一任务对应的有标签数据对第一模型进行训练,第一模型包括第一骨干网络(其网络权重为第一网络权重)和第一任务网络(即第一任务对应的网络)。第一客户端将本地的第一任务对应的有标签数据输入第一骨干网络,得到第一特征,然后通过第一特征对第一模型中的第一任务网络进行训练,得到第二网络权重,第一客户端可以将第二网络权重发送给服务端。同样的,其他客户端也可以分别利用本地的第一任务对应的有标签数据对它们本地的第一任务对应的网络进行训练,然后将训练结果发送给服务端。服务端可以将第一客户端上传的第二网络权重以及其他客户端上传的网络权重进行聚合,再将得到的第三网络权重发送给第一客户端,以更新第一客户端上的第一模型,提升第一模型的训练效果。可以理解的是,该第三网络权重相当于是学习了第一客户端以及其他客户端上的第一任务对应的有标签数据的知识,采用第三网络权重更新第一模型中的第一任务网络,可以加快第一任务网络的训练速度。然后,第一客户端还可以使用本地的第一任务对应的有标签数据,对更新后的第一模型继续进行训练。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1