掌桥专利:专业的专利平台
掌桥专利
首页

联邦迁移学习方法、装置、计算机设备及介质

文献发布时间:2023-06-19 16:03:19



技术领域

本申请适用于人工智能技术领域,尤其涉及一种联邦迁移学习方法、装置、计算机设备及介质。

背景技术

目前,联邦学习是一种在保护数据隐私情况下联合利用不同客户端数据进行联合建模的学习方式,依靠联邦学习的模型可以以分散的和私有的方式进行训练。联邦训练的模型分布在多个客户端上,每个客户端都有本地的一组数据进行分布式训练,使得模型可以从每个客户端中获益,而不必直接访问客户端,将训练的结果移动到中央服务器进行全局的训练,或在上述的客户端之间共享数据进行联合训练,最终得到训练好的模型。

在每一轮训练中,模型的参数必须在客户端和中央服务器之间进行交换,发送这么多参数的通信开销可能会超出客户端的功率预算,考虑到效率等因素,联邦学习在真实场景中的实用性大打折扣。为了减少参数之间的通信开销,就需要缩减参数的数据量,因而会导致模型训练不精确的问题,为此,采用迁移学习来压缩模型参数的数据量成为解决此问题的主要方法,然而模型是使用目标场景的数据进行训练和验证的,通常不能很好地泛化训练数据集以外的场景,导致迁移学习的参数与原有模型参数差别较大,造成训练出的模型针对目标的使用场景的适用性较差。因此,如何合理迁移模型参数,以降低模型参数通信开销的基础上保证训练出的模型对目标场景的适用性成为亟待解决的问题。

发明内容

有鉴于此,本申请实施例提供了一种联邦迁移学习方法、装置、计算机设备及介质,以解决合理迁移模型参数,以降低模型参数通信开销的基础上保证训练出的模型对目标场景的适用性的问题。

第一方面,本申请实施例提供一种联邦迁移学习方法,应用于分布式训练系统,所述分布式训练系统包括至少一个客户端和一个服务器,每个客户端的本地训练模型包括至少两个卷积层,且在相邻两个卷积层间设置有适配层,所述联邦迁移学习方法包括:

针对任一客户端,固定对应的本地训练模型的初始模型参数,并使用对应的本地训练集计算固定模型参数的本地训练模型的损失函数;

根据所述损失函数,通过优化器算法更新每个适配层的本地适配参数,并将更新后的本地适配参数发送给所述服务器;

所述服务器根据获取的所有客户端发送的更新后的本地适配参数,计算得到每个适配层的全局适配参数,并将所述全局适配参数发送给所有客户端;

针对任一客户端,使用所述全局适配参数更新对应适配层的本地适配参数,使用预设调节算法更新的初始模型参数,得到更新模型参数;

将更新模型参数作为所述初始模型参数,返回执行固定对应的本地训练模型的初始模型参数,并使用对应的本地训练集计算固定模型参数的本地训练模型的损失函数的步骤直至收敛,得到训练好的本地训练模型。

在一实施方式中,在固定对应的本地训练模型的初始模型参数之前,还包括:

在客户端加载本地训练模型,并初始化本地训练模型的模型参数,得到本地训练模型的初始化模型参数;

使用对应的本地训练集计算固定模型参数的本地训练模型的损失函数包括:

将所述客户端的本地训练集输入固定模型参数的本地训练模型,经过每个卷积层和每个适配层后,输出本地训练集中每个训练数据的真实值和预测值;

根据所有训练数据的真实值和预测值,结合预设的损失函数公式,计算得到对应的损失函数。

在一实施方式中,所述优化器算法包括梯度下降算法,根据所述损失函数,通过优化器算法更新每个适配层的本地适配参数,并将更新后的本地适配参数发送给所述服务器包括:

获取所述本地训练模型中适配层的层级和层数,其中,靠近模型输出的适配层的层级越高;

使用所述梯度下降算法对所述损失函数进行梯度下降,得到与适配层层数对应的更新损失;

将更新损失按照从大至小的顺序,依次对最高层级的适配层至最低层级的适配层的本地适配参数进行更新;

将每个适配层的更新后的本地适配参数发送给所述服务器。

在一实施方式中,所述服务器根据获取的所有客户端发送的所述更新后的本地适配参数之后,还包括:

将具有相同层级的适配层的更新后的本地适配参数归为一类,得到每个层级对应的一组本地适配参数集合;

计算得到每个适配层的全局适配参数,并将所述全局适配参数发送给所有客户端包括:

针对任一层级,将对应的一组本地适配参数集合进行加权求平均,确定均值为对应层级的全局适配参数;

将每个层级的全局适配参数发送给每个客户端的对应层级的适配层。

在一实施方式中,使用预设调节算法更新的初始模型参数,得到更新模型参数包括:

使用微调算法对所述初始模型参数进行微调处理,确定微调后的模型参数为更新模型参数。

在一实施方式中,所述适配层包括下投影层、激活层和上投影层,任两个相邻卷积层间的数据处理包括:

在下的卷积层将原始数据输入所述下投影层进行降维映射,将降维映射的结果输入所述激活层进行激励,得到激励结果;

将激励结果输入所述上投影层进行升维映射,得到与原始数据维度相同的更新数据,将所述更新数据输入在上的卷积层。

第二方面,本申请实施例提供一种联邦迁移学习装置,应用于分布式训练系统,所述分布式训练系统包括至少一个客户端和一个服务器,每个客户端的本地训练模型包括至少两个卷积层,且在相邻两个卷积层间设置有适配层,所述联邦迁移学习方法包括:

固定训练模块,用于针对任一客户端,固定对应的本地训练模型的初始模型参数,并使用对应的本地训练集计算固定模型参数的本地训练模型的损失函数;

适配参数更新模块,用于根据所述损失函数,通过优化器算法更新每个适配层的本地适配参数,并将更新后的本地适配参数发送给所述服务器;

全局训练模块,用于所述服务器根据获取的所有客户端发送的更新后的本地适配参数,计算得到每个适配层的全局适配参数,并将所述全局适配参数发送给所有客户端;

模型参数更新模块,用于针对任一客户端,使用所述全局适配参数更新对应适配层的本地适配参数,使用预设调节算法更新的初始模型参数,得到更新模型参数;

返回执行训练模块,用于将更新模型参数作为所述初始模型参数,返回执行固定对应的本地训练模型的初始模型参数,并使用对应的本地训练集计算固定模型参数的本地训练模型的损失函数的步骤直至收敛,得到训练好的本地训练模型。

在一实施方式中,所述联邦迁移学习装置还包括:

模型初始化模块,用于在固定对应的本地训练模型的初始模型参数之前,在客户端加载本地训练模型,并初始化本地训练模型的模型参数,得到本地训练模型的初始化模型参数;

所述固定训练模块包括:

模型运行单元,用于将所述客户端的本地训练集输入固定模型参数的本地训练模型,经过每个卷积层和每个适配层后,输出本地训练集中每个训练数据的真实值和预测值;

损失计算单元,用于根据所有训练数据的真实值和预测值,结合预设的损失函数公式,计算得到对应的损失函数。

在一实施方式中,所述优化器算法包括梯度下降算法,所述适配参数更新模块包括:

适配层信息获取单元,用于获取所述本地训练模型中适配层的层级和层数,其中,靠近模型输出的适配层的层级越高;

梯度下降单元,用于使用所述梯度下降算法对所述损失函数进行梯度下降,得到与适配层层数对应的更新损失;

适配参数更新单元,用于将更新损失按照从大至小的顺序,依次对最高层级的适配层至最低层级的适配层的本地适配参数进行更新;

适配参数发送单元,用于将每个适配层的更新后的本地适配参数发送给所述服务器。

在一实施方式中,所述联邦迁移学习装置还包括:

适配参数归类模块,用于所述服务器根据获取的所有客户端发送的所述更新后的本地适配参数之后,将具有相同层级的适配层的更新后的本地适配参数归为一类,得到每个层级对应的一组本地适配参数集合;

所述全局训练模块包括:

全局参数计算单元, 用于针对任一层级,将对应的一组本地适配参数集合进行加权求平均,确定均值为对应层级的全局适配参数;

全局参数发送单元,用于将每个层级的全局适配参数发送给每个客户端的对应层级的适配层。

在一实施方式中,所述模型参数更新模块包括:

模型参数更新单元,用于使用微调算法对所述初始模型参数进行微调处理,确定微调后的模型参数为更新模型参数。

在一实施方式中,所述适配层包括下投影层、激活层和上投影层,任两个相邻卷积层间的数据处理包括:

适配层降维处理模块,用于在下的卷积层将原始数据输入所述下投影层进行降维映射,将降维映射的结果输入所述激活层进行激励,得到激励结果;

适配层升维处理模块,用于将激励结果输入所述上投影层进行升维映射,得到与原始数据维度相同的更新数据,将所述更新数据输入在上的卷积层。

第三方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的联邦迁移学习方法。

第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的联邦迁移学习方法。

本申请实施例与现有技术相比存在的有益效果是:本申请应用于分布式训练系统,该系统包括至少一个客户端和一个服务器,每个客户端的本地训练模型包括至少两个卷积层,且在相邻两个卷积层间设置有适配层,针对任一客户端,固定对应的本地训练模型的初始模型参数,并使用对应的本地训练集计算固定模型参数的本地训练模型的损失函数,根据损失函数,通过优化器算法更新每个适配层的本地适配参数,并将更新后的本地适配参数发送给服务器,服务器根据获取的所有客户端发送的更新后的本地适配参数,计算得到每个适配层的全局适配参数,并将全局适配参数发送给所有客户端,针对任一客户端,使用全局适配参数更新对应适配层的本地适配参数,使用预设调节算法更新的初始模型参数,得到更新模型参数,返回执行训练直至收敛,得到训练好的本地训练模型,采用增加适配层的方式将卷积层的模型参数转化为与服务器通信的适配参数,从而将模型参数迁移学习,以减少通信开销,同时,每次训练均固定模型参数,只训练适配层参数,再使用全局的适配参数反向微调模型参数,从而使得模型参数与适配参数间差异较小,不影响训练出的模型对目标场景的使用。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例一提供的一种联邦迁移学习方法的一应用环境示意图;

图2是本申请实施例二提供的一种联邦迁移学习方法的流程示意图;

图3是本申请实施例三提供的一种联邦迁移学习方法的流程示意图;

图4是本申请实施例四提供的一种联邦迁移学习装置的结构示意图;

图5是本申请实施例五提供的一种计算机设备的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。

人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

应理解,以下实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

为了说明本申请的技术方案,下面通过具体实施例来进行说明。

本申请实施例一提供的一种联邦迁移学习方法,可应用在如图1的应用环境中,其中,客户端与服务端进行通信,形成分布式训练系统。其中,客户端包括但不限于掌上电脑、桌上型计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、云端计算机设备、个人数字助理(personal digital assistant,PDA)等计算机设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

参见图2,是本申请实施例二提供的一种联邦迁移学习方法的流程示意图,上述联邦迁移学习方法应用于图1所示的分布式训练系统中,分布式训练系统包括至少一个客户端和一个服务器,每个客户端的本地训练模型包括至少两个卷积层,且在相邻两个卷积层间设置有适配层中的服务端。服务端与客户端进行通信,客户端之间不进行通信,每个客户端具备本地训练模型和本地训练集,用于本地训练,服务器中设置有全局模型,用于全局计算。如图2所示,该联邦迁移学习方法可以包括以下步骤:

步骤S201,针对任一客户端,固定对应的本地训练模型的初始模型参数,并使用对应的本地训练集计算固定模型参数的本地训练模型的损失函数。

本申请中,如果服务器连接一个客户端,则该分布式训练系统即为通过一个客户端进行训练的系统,一般情况下,服务器连接两个以上的客户端,每个客户端上具备相同的本地训练模型,但每个客户端中的训练集归本地所有,即无法与其他客户端共享训练集,因此,客户端的本地训练模型的训练需采用本地训练集。

本地训练模型包括至少两个卷积层,且在相邻两个卷积层之间设置有适配层,在下的卷积层输出的数据需要经过适配层后才能到达在上的卷积层。在一实施方式中,本地训练模型为具有5层卷积层构成的ResNet网络,其中,ResNet网络可以用表示,为客户端

固定本地训练模型的初始模型参数即是指在将本地训练集输入本地训练模型之后,在每个卷积层进行运算时,均是采用初始模型参数进行运算。例如,在编码时,使用初始的编码参数对每一个训练数据进行编码,在解码时,使用初始的解码参数对每一个训练数据进行解码。

计算损失函数是指根据本地训练模型对本地训练集进行处理,再将处理结果结合损失函数计算公式计算得到损失函数,此时的损失函数可以为损失值,还可以为未最终计算为数字量的表达式。

在上述步骤S201中,并不涉及对本地训练模型的训练,而是将本地训练模型作为初始模型进行使用运算,进而得到损失函数,本地训练模型的训练需结合后续步骤来执行。

可选的是,在固定对应的本地训练模型的初始模型参数之前,还包括:

在客户端加载本地训练模型,并初始化本地训练模型的模型参数,得到本地训练模型的初始化模型参数;

使用对应的本地训练集计算固定模型参数的本地训练模型的损失函数包括:

将客户端的本地训练集输入固定模型参数的本地训练模型,经过每个卷积层和每个适配层后,输出本地训练集中每个训练数据的真实值和预测值;

根据所有训练数据的真实值和预测值,结合预设的损失函数公式,计算得到对应的损失函数。

其中,加载可以是指将模型放入缓存、容器或者运行器中进行进程的设置,从而启动模型,启动后即初始化加载的模型。不同的客户端所使用的初始化过程可以为相同,也可以为不相同,因而,不同的客户端在本地训练模型初始化之后的初始模型参数可能不相同,即使客户端所使用的初始化过程是相同的,初始化之后的初始模型参数也可能不相同,从而使得模型参数具有更多可能性或者随机性,有助于提高模型的训练时的收敛速度。

将本地训练集输入本地训练模型,经过每个卷集层和每个适配层的运算之后,输出每个训练数据对应的真实值和预测值,从而用于结合预设的损失函数公式计算损失函数。预设的损失函数可以为交叉熵损失函数、均方差损失函数等,预设的损失函数与本地训练模型所基于的训练算法相关,可根据实际场景需求等进行设定。

可选的是,适配层包括下投影层、激活层和上投影层,任两个相邻卷积层间的数据处理包括:

在下的卷积层将原始数据输入下投影层进行降维映射,将降维映射的结果输入激活层进行激励,得到激励结果;

将激励结果输入上投影层进行升维映射,得到与原始数据维度相同的更新数据,将更新数据输入在上的卷积层。

其中,适配层将一个输入隐藏向量

在适配层中使用残差连接,激活层采用激活函数

式中,

步骤S202,根据损失函数,通过优化器算法更新每个适配层的本地适配参数,并将更新后的本地适配参数发送给服务器。

本申请中,优化器算法包括基本梯度下降算法、动量优化算法和自适应学习率优化算法,其中,基本梯度下降算法包括标准梯度下降法(Gradient Descent,GD),随机梯度下降法(Stochastic Gradient Descent,SGD)、批量梯度下降法(Batch GradientDescent,BGD)和微批量梯度下降法(Mini-Batch Gradient Descent,MBGD),动量优化算法包括标准动量优化方法(Momentum Optimizer)、牛顿加速梯度动量优化法(Nesterovaccelerated gradient,NAG)等,自适应学习率优化算法包括AdaGrad算法、Adadelta算法、RMSProp算法、Adam算法等。

使用优化器算法能够对损失函数进行优化,优化后的损失函数能够用于代替相应的参数进行再训练,其中,本申请是用优化后的损失函数代替适配层的本地适配参数,并且每个适配层均对应一个优化后的损失函数,也即每个适配层的优化后的损失函数不相同。

将适配层的本地适配参数替换更新之后,将对应的更新后的本地适配参数发送给服务器,如果适配层为4个,则本地适配参数也为4组,每一组均需要发给服务器。

可选的是,优化器算法包括梯度下降算法,根据损失函数,通过优化器算法更新每个适配层的本地适配参数,并将更新后的本地适配参数发送给服务器包括:

获取本地训练模型中适配层的层级和层数,其中,靠近模型输出的适配层的层级越高;

使用梯度下降算法对损失函数进行梯度下降,得到与适配层层数对应的更新损失;

将更新损失按照从大至小的顺序,依次对最高层级的适配层至最低层级的适配层的本地适配参数进行更新;

将每个适配层的更新后的本地适配参数发送给服务器。

其中,选择梯度下降算法作为更新本地适配参数的方法,在使用梯度下降算法对损失函数进行优化之前,需要确定优化目标,因此,需要获取本地训练模型中适配层的层数,以及每个适配层的层级,规定层级越高对应的适配层与靠近本地训练模型的输出,即适配层的层级从输入向输出依次排列。

适配层的层数决定了会产生几个更新损失,例如,4个适配层,使用梯度下降算法对损失函数进行梯度下降,得到4个下降了梯度的损失函数即可。

更新函数为采用梯度下降的方式得到,则更新函数存在大小顺序,使用最大的更新损失更新层级最高的适配层的本地适配参数,使用最小的更新损失更新层级最低的适配层的本地适配参数,中间的更新损失和适配层需要按照层级大小和更新损失大小一一对应,对应原则为层级越高,更新损失越大。

步骤S203,服务器根据获取的所有客户端发送的更新后的本地适配参数,计算得到每个适配层的全局适配参数,并将全局适配参数发送给所有客户端。

本申请中,服务器能够获取到客户端发送的更新后的本地适配参数,对本地适配参数进行全局运算,其中,全局运算可以为使用服务器中预设的全局模型进行模型训练,得到全局适配参数,全局运算还可以是使用服务器中预设的计算模型进行计算,而不用训练即可得到全局适配参数。需说明的是,全局适配参数是为了融合不同客户端发送来的本地适配参数,本申请并不限定采用何种融合方式来得到全局适配参数。

由于每个适配层均有对应的本地适配参数,此时,全局适配参数的个数可以与适配层的层数相吻合,当然,在一实施方式中,全局适配参数的个数为一个,适用于所有层级的适配层。

步骤S204,针对任一客户端,使用全局适配参数更新对应适配层的本地适配参数,使用预设调节算法更新的初始模型参数,得到更新模型参数。

本申请中,全局适配参数更新对应适配层的本地适配参数,再通过预设的调节算法更新初始模型参数,从而得到具有新的模型参数和适配参数的模型,针对该模型返回执行步骤S201。

预设调节算法为根据需求设定的用于调节模型参数的算法,如梯度下降算法、微调算法等,通过相应的可以得到一种有助于提高训练效率和精确度的调节算法,再次不做进一步说明。

可选的是,使用预设调节算法更新的初始模型参数,得到更新模型参数包括:

使用微调算法对初始模型参数进行微调处理,确定微调后的模型参数为更新模型参数。

其中,采用微调算法对初始模型参数进行调节,调节后的模型参数更新初始模型参数,例如,将初始模型参数按照微分的方式增加一个一阶微分项,实现参数的微调节。

步骤S205,将更新模型参数作为初始模型参数,返回执行固定对应的本地训练模型的初始模型参数,并使用对应的本地训练集计算固定模型参数的本地训练模型的损失函数的步骤直至收敛,得到训练好的本地训练模型。

本申请中,对于任一客户端的本地训练模型,训练需要将上述步骤S201至步骤S204重复执行,直至收敛,此处的收敛可以是指损失函数收敛,也可以是指达到预设迭代次数。通过重复的调节、更新、计算,最终确定收敛时对应的本地训练模型为训练好的,即其中的模型参数和适配参数可用于实际场景中使用。

本申请实施例应用于分布式训练系统,该系统包括至少一个客户端和一个服务器,每个客户端的本地训练模型包括至少两个卷积层,且在相邻两个卷积层间设置有适配层,针对任一客户端,固定对应的本地训练模型的初始模型参数,并使用对应的本地训练集计算固定模型参数的本地训练模型的损失函数,根据损失函数,通过优化器算法更新每个适配层的本地适配参数,并将更新后的本地适配参数发送给服务器,服务器根据获取的所有客户端发送的更新后的本地适配参数,计算得到每个适配层的全局适配参数,并将全局适配参数发送给所有客户端,针对任一客户端,使用全局适配参数更新对应适配层的本地适配参数,使用预设调节算法更新的初始模型参数,得到更新模型参数,返回执行训练直至收敛,得到训练好的本地训练模型,采用增加适配层的方式将卷积层的模型参数转化为与服务器通信的适配参数,从而将模型参数迁移学习,以减少通信开销,同时,每次训练均固定模型参数,只训练适配层参数,再使用全局的适配参数反向微调模型参数,从而使得模型参数与适配参数间差异较小,不影响训练出的模型对目标场景的使用。

参见图3,是本申请实施例三提供的一种联邦迁移学习方法的流程示意图,如图3所示,该联邦迁移学习方法可以包括以下步骤:

步骤S301,针对任一客户端,固定对应的本地训练模型的初始模型参数,并使用对应的本地训练集计算固定模型参数的本地训练模型的损失函数。

步骤S302,根据损失函数,通过优化器算法更新每个适配层的本地适配参数,并将更新后的本地适配参数发送给服务器。

其中,上述步骤S301至步骤S302与上述实施例二的步骤S201至步骤S202的内容相同,可参考上述步骤S201和步骤S202的描述,在此不再赘述。

步骤S303,服务器根据获取的所有客户端发送的更新后的本地适配参数,将具有相同层级的适配层的更新后的本地适配参数归为一类,得到每个层级对应的一组本地适配参数集合。

本申请中,为了方便每个层级的适配层均由对应的全局适配参数,服务器在得到本地适配参数后,将本地适配参数进行归类,即将同一层级的本地适配参数归为一类,用于后续的处理。

步骤S304,针对任一层级,将对应的一组本地适配参数集合进行加权求平均,确定均值为对应层级的全局适配参数。

本申请中,加权求平均中的权值可以根据实际需求设定,例如,就客户端而言,可以依照客户端的重要程度、数据量等来分配权值,其中,客户端重要程度越高,或者数据量越大时,对应的权值越大。

在一实施方式中中,设定所有客户端的权值均为1,能够一定程度上体现分布式训练的公平度。

步骤S305,将每个层级的全局适配参数发送给每个客户端的对应层级的适配层。

本申请中,全局适配参数的个数与适配层的层数相当,因此,一个层级的适配层对应一个层级的全局适配参数。

步骤S306,针对任一客户端,使用全局适配参数更新对应适配层的本地适配参数,使用预设调节算法更新的初始模型参数,得到更新模型参数。

步骤S307,将更新模型参数作为初始模型参数,返回执行固定对应的本地训练模型的初始模型参数,并使用对应的本地训练集计算固定模型参数的本地训练模型的损失函数的步骤直至收敛,得到训练好的本地训练模型。

其中,上述步骤S306至步骤S307与上述实施例二的步骤S204至步骤S205的内容相同,可参考上述步骤S204和步骤S205的描述,在此不再赘述。

本申请实施例应用于分布式训练系统,该系统包括至少一个客户端和一个服务器,每个客户端的本地训练模型包括至少两个卷积层,且在相邻两个卷积层间设置有适配层,固定本地训练模型的模型参数,用本地训练集计算损失函数,通过优化器算法使用损失函数更新适配层的本地适配参数,将更新后的本地适配参数发送给服务器,将具有相同层级的适配层的更新后的本地适配参数归为一类,得到每个层级对应的一组本地适配参数集合,针对任一层级,将对应的一组本地适配参数集合进行加权求平均,确定均值为对应层级的全局适配参数,将每个层级的全局适配参数发送给每个客户端的对应层级的适配层,以更新对应适配层的本地适配参数,使用预设调节算法更新的模型参数,返回执行训练直至收敛,无需在服务器中训练全局模型,而采用加权融合的方式进行全局分析,使得客户端之间能够学习到相应的内容,缩短了服务器的工作时间,提高了模型训练的效率,另外,方法的本质依然是采用增加适配层的方式将卷积层的模型参数转化为与服务器通信的适配参数,从而将模型参数迁移学习,以减少通信开销,同时,每次训练均固定模型参数,只训练适配层参数,再使用全局的适配参数反向微调模型参数,从而使得模型参数与适配参数间差异较小,不影响训练出的模型对目标场景的使用。

对应于上文实施例的联邦迁移学习方法,图4示出了本申请实施例四提供的联邦迁移学习装置的结构框图,上述联邦迁移学习装置应用于图1所示的分布式训练系统中,分布式训练系统包括至少一个客户端和一个服务器,每个客户端的本地训练模型包括至少两个卷积层,且在相邻两个卷积层间设置有适配层中的服务端。服务端与客户端进行通信,客户端之间不进行通信,每个客户端具备本地训练模型和本地训练集,用于本地训练,服务器中设置有全局模型,用于全局计算。为了便于说明,仅示出了与本申请实施例相关的部分。

参见图4,该联邦迁移学习装置包括:

固定训练模块41,用于针对任一客户端,固定对应的本地训练模型的初始模型参数,并使用对应的本地训练集计算固定模型参数的本地训练模型的损失函数;

适配参数更新模块42,用于根据损失函数,通过优化器算法更新每个适配层的本地适配参数,并将更新后的本地适配参数发送给服务器;

全局训练模块43,用于服务器根据获取的所有客户端发送的更新后的本地适配参数,计算得到每个适配层的全局适配参数,并将全局适配参数发送给所有客户端;

模型参数更新模块44,用于针对任一客户端,使用全局适配参数更新对应适配层的本地适配参数,使用预设调节算法更新的初始模型参数,得到更新模型参数;

返回执行训练模块45,用于将更新模型参数作为初始模型参数,返回执行固定对应的本地训练模型的初始模型参数,并使用对应的本地训练集计算固定模型参数的本地训练模型的损失函数的步骤直至收敛,得到训练好的本地训练模型。

可选的是,上述联邦迁移学习装置还包括:

模型初始化模块,用于在固定对应的本地训练模型的初始模型参数之前,在客户端加载本地训练模型,并初始化本地训练模型的模型参数,得到本地训练模型的初始化模型参数;

上述固定训练模块41包括:

模型运行单元,用于将客户端的本地训练集输入固定模型参数的本地训练模型,经过每个卷积层和每个适配层后,输出本地训练集中每个训练数据的真实值和预测值;

损失计算单元,用于根据所有训练数据的真实值和预测值,结合预设的损失函数公式,计算得到对应的损失函数。

可选的是,上述优化器算法包括梯度下降算法,上述适配参数更新模块42包括:

适配层信息获取单元,用于获取本地训练模型中适配层的层级和层数,其中,靠近模型输出的适配层的层级越高;

梯度下降单元,用于使用梯度下降算法对损失函数进行梯度下降,得到与适配层层数对应的更新损失;

适配参数更新单元,用于将更新损失按照从大至小的顺序,依次对最高层级的适配层至最低层级的适配层的本地适配参数进行更新;

适配参数发送单元,用于将每个适配层的更新后的本地适配参数发送给服务器。

可选的是,上述联邦迁移学习装置还包括:

适配参数归类模块,用于服务器根据获取的所有客户端发送的更新后的本地适配参数之后,将具有相同层级的适配层的更新后的本地适配参数归为一类,得到每个层级对应的一组本地适配参数集合;

上述全局训练模块43包括:

全局参数计算单元, 用于针对任一层级,将对应的一组本地适配参数集合进行加权求平均,确定均值为对应层级的全局适配参数;

全局参数发送单元,用于将每个层级的全局适配参数发送给每个客户端的对应层级的适配层。

可选的是,上述模型参数更新模块44包括:

模型参数更新单元,用于使用微调算法对初始模型参数进行微调处理,确定微调后的模型参数为更新模型参数。

可选的是,上述适配层包括下投影层、激活层和上投影层,任两个相邻卷积层间的数据处理包括:

适配层降维处理模块,用于在下的卷积层将原始数据输入下投影层进行降维映射,将降维映射的结果输入激活层进行激励,得到激励结果;

适配层升维处理模块,用于将激励结果输入上投影层进行升维映射,得到与原始数据维度相同的更新数据,将更新数据输入在上的卷积层。

需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。

图5为本申请实施例五提供的一种计算机设备的结构示意图。如图5所示,该实施例的计算机设备包括:至少一个处理器(图5中仅示出一个)、存储器以及存储在存储器中并可在至少一个处理器上运行的计算机程序,处理器执行计算机程序时实现上述任意各个联邦迁移学习方法实施例中的步骤。

该计算机设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图5仅仅是计算机设备的举例,并不构成对计算机设备的限定,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括网络接口、显示屏和输入装置等。

所称处理器可以是CPU,该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器包括可读存储介质、内存储器等,其中,内存储器可以是计算机设备的内存,内存储器为可读存储介质中的操作系统和计算机可读指令的运行提供环境。可读存储介质可以是计算机设备的硬盘,在另一些实施例中也可以是计算机设备的外部存储设备,例如,计算机设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器还可以既包括计算机设备的内部存储单元也包括外部存储设备。存储器用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,该其他程序如计算机程序的程序代码等。存储器还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。

本申请实现上述实施例方法中的全部或部分流程,也可以通过一种计算机程序产品来完成,当计算机程序产品在计算机设备上运行时,使得计算机设备执行时实现可实现上述方法实施例中的步骤。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

相关技术
  • 联邦迁移学习方法、装置、计算机设备及介质
  • 联邦学习方法和装置、系统、电子设备、计算机可读介质
技术分类

06120114688498