CN113159283B - 一种基于联邦迁移学习的模型训练方法及计算节点 - Google Patents

一种基于联邦迁移学习的模型训练方法及计算节点 Download PDF

Info

Publication number
CN113159283B
CN113159283B CN202110350001.9A CN202110350001A CN113159283B CN 113159283 B CN113159283 B CN 113159283B CN 202110350001 A CN202110350001 A CN 202110350001A CN 113159283 B CN113159283 B CN 113159283B
Authority
CN
China
Prior art keywords
model
computing node
parameter value
model parameter
computing
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.)
Active
Application number
CN202110350001.9A
Other languages
English (en)
Other versions
CN113159283A (zh
Inventor
詹德川
施意
李新春
宋绍铭
邵云峰
李秉帅
钱莉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110350001.9A priority Critical patent/CN113159283B/zh
Publication of CN113159283A publication Critical patent/CN113159283A/zh
Priority to PCT/CN2022/082380 priority patent/WO2022206498A1/zh
Application granted granted Critical
Publication of CN113159283B publication Critical patent/CN113159283B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Abstract

本申请实施例公开了一种基于联邦迁移学习的模型训练方法及计算节点,可应用于人工智能领域中,该方法包括:在各源域上通过本地有标签数据训练各自的特征提取器的模型参数G和子任务模型(如分类器)的模型参数T,再将所有G发送给目标域,并在各源域上训练各自域鉴别器的模型参数D1,在目标域上训练域鉴别器的模型参数D2,将所有D1和D2在服务器端或目标域端聚合得到聚合参数值D,并将D发送给各个源域,每个源域通过各自的特征提取器和鉴别器进行多次迭代的对抗训练。本申请通过对抗训练过程实现域对齐,并且域之间互相传递的仅是模型参数值,不传递数据或数据特征,保护了数据隐私,在兼顾域对齐和数据隐私的情况下实现了对模型的协同训练。

Description

一种基于联邦迁移学习的模型训练方法及计算节点
技术领域
本申请涉及人工智能领域,尤其涉及一种基于联邦迁移学习的模型训练方法及计算节点。
背景技术
联邦学习(federated learning,FL)又称为联邦机器学习、联合学习、联盟学习等,其能有效帮助多个计算节点在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模;迁移学习(transfer learning,TL)是把为任务A开发的模型作为初始点,重新使用在为任务B开发模型的过程中,也就是把基于已有任务训练好的模型学习到的知识迁移到新的任务中来帮助该模型进行再训练。
业界目前已有几种基于联邦学习/迁移学习的模型训练方法,一种联邦学习方法称为联邦平均(federated averaging,FedAvg),FedAvg结构上一般包括一个服务器和一些客户端,适用于各个客户端的数据都有标签的场景,技术流程主要包括模型下发和模型聚合过程,在模型下发过程,客户端从服务器下载模型,在本地数据上训练,训练到一定程度后上传模型到服务器;模型聚合过程,服务器会收集各个客户端上传的模型,并进行模型融合,这两个过程会反复迭代直至模型收敛。一种迁移学习方法则称为对抗判别域适应(adversarial discriminative domain adaptation,ADDA),ADDA的特点是从源域数据提取的特征和从目标域数据提取的特征会合并到一起作为训练数据的特征,结构上一般包括特征提取器和一个鉴别器,其中,特征提取器负责提取训练数据的特征,希望提取到的特征能够迷惑鉴别器,使鉴别器无法分辨该特征属于源域还是目标域,鉴别器则需要尽量保证自己能区分来自特征提取器的特征是属于哪个域,两者相互对抗,在迭代训练过程中互相提高,从而实现对源域和目标域的对齐。
但上述方案都存在缺陷,FedAvg能够很好地保护用户隐私,但是因为没有对源域数据和目标域数据做对齐,所以当不同域之间的数据存在分布差异时,模型性能比较差;ADDA则与FedAvg相反,其考虑了域对齐,但由于将从不同域提取的数据特征合并到一起再训练,传递的特征本身还是在一定程度上泄露了数据隐私。基于此,一种既能实现域对齐,又能保护数据隐私的联邦迁移学习的模型训练方法亟待推出。
发明内容
本申请实施例提供了一种基于联邦迁移学习的模型训练方法及计算节点,用于利用第一计算节点上第一数据集辅助第二计算节点上的第二数据集对模型进行训练,实现域对齐,并且在计算节点之间传递的仅仅是模型的参数值,不传递数据或数据特征,充分保护了用户数据隐私,因此在兼顾域对齐和用户数据隐私的情况下,本申请实施例实现了对模型的协同训练,提高了模型的性能。
基于此,本申请实施例提供以下技术方案:
第一方面,本申请实施例首先提供一种基于联邦迁移学习的模型训练方法,可用于人工智能领域中,例如计算机视觉领域,该方法包括:首先,第一计算节点在第一计算节点上第一模型(如,特征提取器)的第一模型参数值(可用Gs表示)和第一计算节点上的第二模型(如,分类器)的第二模型参数值(可用Ts表示)保持不变的情况下(也可称为固定Gs和固定Ts),采用该第一计算节点上的第一数据集对第一计算节点上的第三模型(如,域鉴别器,也可简称为鉴别器)进行训练,以得到该第一计算节点上的第三模型的第三模型参数值(可用Ds表示),其中,该第一模型参数值Gs为第一计算节点对第一模型训练后得到的模型参数值,第二模型参数值Ts为第一计算节点对第二模型训练后得到的模型参数取值。在本申请实施例中,第一模型用于对输入数据进行特征提取;第二模型用于基于第一模型提取出的特征执行目标任务,例如,目标任务可以是分类任务(如,目标检测任务、语义分割任务、语音识别任务等),也可以是回归任务,此处不做限定;第三模型用于鉴别由第一模型提取出的特征的源域。作为一种示例,根据源域的数据分布可以区分特征对应的输入数据所位于的计算节点,例如,判断获取到的特征是来自源域设备,还是来自目标域设备。之后,第一计算节点将接收第一聚合参数值(可用D-all表示),该第一聚合参数值D-all是基于第三模型参数值Ds和第四模型参数值(可用Dt表示)得到,该第四模型参数值Dt为第二计算节点上的第三模型的模型参数取值,该第二计算节点上的第三模型由该第二计算节点采用第二计算节点上的数据集(可称为第二数据集)训练得到。第一计算节点在得到了第一聚合参数值D-all后,会将原来的第三模型参数值Ds更新为该第一聚合参数值D-all,并在保持第三模型参数值Ds取第一聚合参数值D-all不变的情况下(可称为固定Ds=D-all),采用第一数据集对第一计算节点上的第一模型和第一计算节点上的第二模型再进行训练,得到第一计算节点上的第一模型的第五模型参数值(可用Gs’表示)和第一计算节点上的第二模型的第六模型参数值(可用Ts’表示)。最后,第一计算节点将第五模型参数值Gs’和第六模型参数值Ts’作为新的第一模型参数值Gs和新的第二模型参数值Ts
需要注意的是,在本申请的一些实施方式中,第一计算节点还可以重复执行上述步骤,直至达到迭代终止条件,该迭代终止条件可以是达到预设的训练轮次,也可以是使得损失函数收敛,还可以是其他设定的训练终止条件,具体此处不做限定。
还需要注意的是,在本申请实施例中,第一计算节点上的第一数据集可以是有标签的数据集,第二计算节点上的第二数据集是无标签或少标签的数据集。此外,在本申请实施例中,第一计算节点可以是一个,也可以是多个,当第一计算节点是多个的情况时,那么每个计算节点上进行的操作是类似的,此处不予赘述。
在本申请上述实施方式中,具体阐述了第一计算节点侧训练各个模型并得到各模型的模型参数值的过程,在该训练过程中,第一计算节点与第二计算节点之间互相传递的仅是模型参数值,不传递数据或数据特征,保护了数据隐私;并且基于传递的模型参数值,使得第一计算节点上的第一模型从第一数据集提取的特征与第二计算节点上的第一模型从第二数据集提取的特征的分布差异在迭代训练过程中逐步缩小,从而实现域对齐。因此,本申请上述实施方式在兼顾域对齐和数据隐私的情况下实现了对模型的协同训练。
在第一方面的一种可能的设计中,第一计算节点接收第一聚合参数值D-all,且第一聚合参数值D-all基于第三模型参数值Ds以及第四模型参数值Dt得到的过程可以是:首先,第一计算节点将第三模型参数值Ds向第二计算节点发送,以使得第二计算节点将第三模型参数值Ds和第四模型参数值Dt进行聚合,以得到第一聚合参数值D-all;之后,第一计算节点再接收由第二计算节点发送的第一聚合参数值D-all。需要注意的是,如果第一计算节点为一个,第一聚合参数值D-all就是由一个第三模型参数值Ds与第四模型参数值Dt聚合得到;如果第一计算节点为多个,第一聚合参数值D-all就是由多个第三模型参数值Ds(即每个第一计算节点各自有一个对应的第三模型参数值Ds,可分别用D1、……、Dn表示)与第四模型参数值Dt进行聚合。
在本申请上述实施方式中,第三模型参数值Ds与第四模型参数值Dt的聚合过程由第二计算节点执行,这种情况下无需额外部署新的计算节点,节约了成本,扩大了可应用本申请所提供的模型训练方法的场景。
在第一方面的一种可能的设计中,第二聚合参数值G-all基于第一模型参数值Gs得到的过程可以基于第一计算节点是一个还是多个分为两种情况:1)在第一计算节点为一个的情况下,第一计算节点会将该第一计算节点上的该第一模型参数值Gs(即一个Gs)向第二计算节点发送,这种情况下,第二聚合参数值G-all实质就是该第一模型参数值Gs;2)在第一计算节点为多个(假设为n个,n≥2)的情况下,那么每个第一计算节点会将各自得到的第一模型参数值Gs(即多个Gs,分别用G1、……、Gn表示)向第二计算节点发送,这种情况下,第二计算节点会对接收到的这些第一模型参数值G1、……、Gn进行聚合,以得到第二聚合参数值G-all。
在本申请上述实施方式中,具体阐述了在不部署新的计算节点的情况下,当第一计算节点分别为一个或多个的情况时,第二聚合参数值G-all是如何得到的,具备灵活性。
在第一方面的一种可能的设计中,该方法还包括:第一计算节点将更新得到的第一模型参数值和更新得到的第二模型参数值向该第二计算节点发送。若第一计算节点是重复执行上述步骤,直至达到迭代终止条件,那么在第一计算节点重复执行上述步骤,直至达到迭代终止条件后,该方法就还包括:第一计算节点将最后一次更新得到的第一模型参数值和最后一次更新得到的第二模型参数值向该第二计算节点发送。
需要注意的是,在本申请实施例中,由于第一计算节点可以是一个,也可以是多个,若是迭代多次的情况,那么第一计算节点将最后一次更新得到的第一模型参数值和最后一次更新得到的第二模型参数值向第二计算节点发送具体可分为两种情况:1)在第一计算节点为一个的情况下,第一计算节点会将最后一次更新得到的第二模型参数值Ts向第二计算节点发送,以使得该第二计算节点根据第二计算节点上的第一模型和第二计算节点上的第二模型执行目标任务,其中,第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值G-all,第二计算节点上的第二模型的模型参数取值为最后一次更新得到的第二模型参数值Ts;2)在第一计算节点为多个的情况下,每个第一计算节点各自将最后一次更新得到的第二模型参数值Ts(即多个Ts,分别用T1、……、Tn表示)向第二计算节点发送,以使得第二计算节点对各个最后一次更新得到的第二模型参数值T1、……、Tn进行聚合,以得到第三聚合参数值(可用Ts-all表示),并进一步使得第二计算节点根据第二计算节点上的第一模型和第二计算节点上的第二模型执行目标任务,其中,第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值G-all,第二计算节点上的第二模型的模型参数取值为该第三聚合参数值Ts-all。
在本申请上述实施方式中,在不部署新的计算节点的情况下,第一计算节点完成迭代训练后,会将最后一次更新得到的第二模型参数值向第二计算节点发送,从而可使得第二计算节点基于第一模型的最新模型参数值和第二模型的最新模型参数值执行目标任务,由于第二计算节点上的第一模型和第二模型各自最终的模型参数值是经由第一计算节点和第二计算节点协同训练得到的,因此模型性能得到了提高。
在第一方面的一种可能的设计中,第一计算节点接收第一聚合参数值D-all,且第一聚合参数值D-all基于第三模型参数值Ds以及第四模型参数值Dt得到的过程还可以是:第一计算节点将第三模型参数值Ds向第三计算节点发送,同时第二计算节点也会将第四模型参数值Dt向第三计算节点发送,以使得第三计算节点将第三模型参数值Ds以及来自第二计算节点的第四模型参数值Dt进行聚合,以得到第一聚合参数值D-all;之后,第一计算节点接收由第三计算节点发送的第一聚合参数值D-all。
在本申请上述实施方式中,第三模型参数值Ds与第四模型参数值Dt的聚合过程可以由额外部署的一个第三计算节点执行,降低了第二计算节点的计算开销,提高了第二计算节点的计算速度。
在第一方面的一种可能的设计中,第二聚合参数值G-all基于第一模型参数值Gs得到的过程可以根据第一计算节点是一个还是多个分为两种情况:1)在第一计算节点为一个的情况下,第一计算节点会将该第一计算节点上的该第一模型参数值Gs(即一个Gs)向第三计算节点发送,再由该第三计算节点将该第一模型参数值Gs向第二计算节点发送,这种情况下,第二聚合参数值G-all实质就是该第一模型参数值Gs;2)在第一计算节点为多个(假设为n个,n≥2)的情况下,那么每个第一计算节点会将各自得到的第一模型参数值Gs(即多个Gs,分别用G1、……、Gn表示)向第三计算节点发送,以使得该第三计算节点对接收到的这些第一模型参数值G1、……、Gn进行聚合,以得到第二聚合参数值G-all,并由该第三计算节点将得到的第二聚合参数值G-all向第二计算节点发送。
在本申请上述实施方式中,具体阐述了在部署新的计算节点(即第三计算节点)的情况下,当第一计算节点分别为一个或多个的情况时,第二聚合参数值G-all是如何得到的,具备灵活性。
在第一方面的一种可能的设计中,第一计算节点将更新得到的第一模型参数值和更新得到的第二模型参数值向第三计算节点发送。若第一计算节点是重复执行上述步骤,直至达到迭代终止条件,那么在第一计算节点重复执行上述步骤,达到迭代终止条件后,该方法还包括:第一计算节点将最后一次更新得到的第一模型参数值和最后一次更新得到的第二模型参数值向第三计算节点发送。需要注意的是,在本申请实施例中,由于第一计算节点可以是一个,也可以是多个,若是迭代多次的情况,那么第一计算节点将最后一次更新得到的第一模型参数值和最后一次更新得到的第二模型参数值向第三计算节点发送具体可分为两种情况:1)在第一计算节点为一个的情况下,第一计算节点会将最后一次更新得到的第二模型参数值Ts向第三计算节点发送,再由该第三计算节点将最后一次更新得到的第二模型参数值Ts向第二计算节点发送,以使得该第二计算节点根据第二计算节点上的第一模型和第二计算节点上的第二模型执行目标任务,其中,第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值G-all,第二计算节点上的第二模型的模型参数取值为最后一次更新得到的第二模型参数值Ts;2)在第一计算节点为多个(假设为n个,n≥2)的情况下,每个第一计算节点各自将最后一次更新得到的第二模型参数值Ts(即多个Ts,分别用T1、……、Tn表示)向第三计算节点发送,以使得第三计算节点对各个最后一次更新得到的第二模型参数值T1、……、Tn进行聚合,以得到第三聚合参数值Ts-all,再由该第三计算节点将第三聚合参数值Ts-all向第二计算节点发送,使得第二计算节点根据第二计算节点上的第一模型和第二计算节点上的第二模型执行目标任务,其中,第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值G-all,第二计算节点上的第二模型的模型参数取值为该第三聚合参数值Ts-all。
在本申请上述实施方式中,在部署有新的计算节点(即第三计算节点)的情况下,第一计算节点完成迭代训练后,会将最后一次更新得到的第二模型参数值向第三计算节点发送,由第三计算节点直接转发或聚合后转发给第二计算节点,从而使得第二计算节点基于第一模型的最新模型参数值和第二模型的最新模型参数值执行目标任务,由于第二计算节点上的第一模型和第二模型各自最终的模型参数值是经由第一计算节点和第二计算节点各自利用本地数据集协同训练得到的,因此模型性能得到了提高。
第二方面,本申请实施例还提供一种基于联邦迁移学习的模型训练方法,可用于人工智能领域中,例如计算机视觉领域,该方法包括:首先,第二计算节点获取第二聚合参数值G-all,该第二聚合参数值G-all基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值Gs得到,其中,每个第一计算节点各自采用自身上的第一数据集对自身上的第一模型进行训练,第一数据集可以是有标签的数据集,第一模型用于对输入数据进行特征提取。之后,第二计算节点在第二计算节点上的第一模型的模型参数取值为第二聚合参数值G-all的情况下,采用第二计算节点上的第二数据集对第二计算节点上的第三模型进行训练,以得到第二计算节点上的第三模型的第四模型参数值Dt,其中,第三模型用于鉴别由第一模型提取出的特征的源域。作为一种示例,根据源域的数据分布可以区分所述输入数据所位于的计算节点,例如,判断获取到的特征是来自源域设备,还是来自目标域设备。
需要注意的是,在本申请的一些实施方式中,第二计算节点还可以重复执行上述步骤,直至达到迭代终止条件,该迭代终止条件可以是达到预设的训练轮次,也可以是使得损失函数收敛,还可以是其他设定的训练终止条件,具体此处不做限定。
需要注意的是,在本申请实施例中,当第一计算节点为一个时,第一模型参数值可直接用Gs表示,第二模型参数值可直接用Ts表示;当第一计算节点为多个(假设为n个,n≥2)时,那么每个第一计算节点会得到各自对应第一模型参数值Gs(即多个Gs,分别用G1、……、Gn表示)以及各自对应的第二模型参数值Ts(即多个Ts,分别用T1、……、Tn表示)。
在本申请上述实施方式中,具体阐述了第二计算节点侧训练各个模型并得到各模型的模型参数值的过程,在该训练过程中,第二计算节点与第一计算节点之间互相传递的仅是模型参数值,不传递数据或数据特征,保护了数据隐私;并且基于传递的模型参数值,使得第二计算节点上的第一模型从第二数据集提取的特征与第一计算节点上的第一模型从第一数据集提取的特征的分布差异在迭代训练过程中逐步缩小,从而实现域对齐。因此,本申请上述实施方式在兼顾域对齐和数据隐私的情况下实现了对模型的协同训练,可以得到在目标任务上表现优异的模型。
在第二方面的一种可能的设计中,该方法还可以包括:第二计算节点还可以进一步获取第一聚合参数值D-all,该第一聚合参数值D-all基于第三模型参数值Ds(一个或多个)以及第四模型参数值Dt得到,第三模型参数值Ds为每个第一计算节点各自采用自身上的第一数据集对自身上的第三模型进行训练得到的模型参数取值。之后,第二计算节点将第四模型参数值Dt更新为第一聚合参数值D-all,并在保持第一聚合参数值D-all不变的情况下(即固定D-all),采用第二数据集对第二计算节点上的第一模型和第二计算节点上的第二模型进行训练,以得到第二计算节点上的第一模型的第七模型参数值(可用Gt’表示)和第二计算节点上的第二模型的第八模型参数值(可用Tt’表示)。
需要注意的是,若是迭代多次的情况,那么上述过程是在第二计算节点重复执行上述步骤,直至达到迭代终止条件之前执行。
在本申请实施例中,在不部署新的计算节点的情况下,阐述了第二计算节点侧也可以在固定第一聚合参数值D-all的情况下对该第二计算节点上的第一模型和第二模型进行训练,也就是不仅在第一计算节点进行对抗训练,在第二计算节点上也进行对抗训练,从而使得从第一数据集上提取的特征和从第二数据集上提取的特征更快、更好地实现域对齐,提高训练速度和效果。
在第二方面的一种可能的设计中,第二计算节点获取第一聚合参数值D-all,且第一聚合参数值D-all基于第三模型参数值Ds以及第四模型参数值Dt得到的过程可以是:首先,第二计算节点接收由一个或多个第一计算节点各自发送的第三模型参数值Ds(一个或多个);之后,第二计算节点再将第四模型参数值Dt和每个第三模型参数值Ds进行聚合,以得到第一聚合参数值D-all。
在本申请上述实施方式中,具体阐述了在不部署新的计算节点的情况下,从第二计算节点侧说明第二聚合参数值G-all是如何得到的,具备灵活性。
在第二方面的一种可能的设计中,第二计算节点获取第二聚合参数值G-all,且第二聚合参数值G-all基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值Gs得到的过程可以是:第二计算节点接收由一个或多个第一计算节点各自发送的更新后的第一模型参数值Gs(一个或多个),并将第七模型参数值Gt’(也就是更新后的第二计算节点上的第一模型的模型参数值)和每个更新的第一模型参数值Gs进行聚合,以得到第二聚合参数值G-all。由于第一计算节点可以是一个,也可以是多个,因此可分为两种情况:1)若第一计算节点为一个,则第二计算节点将第七模型参数值Gt’和该一个第一模型参数值Gs进行聚合,以得到第二聚合参数值G-all;若第二计算节点为多个(假设为n个,n≥2),则第二计算节点将第七模型参数值Gt’和每个第一模型参数值G1、……、Gn进行聚合,以得到第二聚合参数值G-all。
在本申请上述实施方式中,在不部署新的计算节点且由第二计算节点进行对抗训练的的情况下,以得到第二聚合参数值的聚合过程是由该第二计算节点执行的,具备灵活性。
在第二方面的一种可能的设计中,该方法还可以包括:第二计算节点基于更新后的第一模型参数值,更新第二聚合参数值,并接收由一个或多个第一计算节点发送的更新后的第二模型参数值,并将每个更新后的第二模型参数值和更新后的第八模型参数值Tt’(即更新后的第二计算节点上的第二模型的模型参数值)进行聚合,以得到第四聚合参数值(可用T-all表示)。之后,第二计算节点根据第二计算节点上的第一模型和第二计算节点上的第二模型执行目标任务,其中,第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值G-all,第二计算节点上的第二模型的模型参数取值为该第四聚合参数值T-all。
需要注意的是,若是迭代多次的情况,那么该方法还可以包括:第二计算节点基于更新后的第一模型参数值,更新第二聚合参数值,并接收由一个或多个第一计算节点发送的最后一次更新得到的第二模型参数值,并将每个最后一次更新得到的第二模型参数值和更新后的第八模型参数值Tt’(即更新后的第二计算节点上的第二模型的模型参数值)进行聚合,以得到第四聚合参数值(可用T-all表示)。具体地,1)在第一计算节点为一个的情况下,第二计算节点接收第一计算节点发送的最后一次更新得到的第二模型参数值Ts,并将该最后一次更新得到的第二模型参数值Ts和最后一次更新得到的第八模型参数值Tt’进行聚合,以得到第四聚合参数值T-all;2)在第一计算节点为多个的情况下,第二计算节点接收每个第一计算节点各自发送的最后一次更新得到的第二模型参数值Ts(即多个Ts,分别用T1、……、Tn表示),第二计算节点再将各个最后一次更新得到的第二模型参数值T1、……、Tn以及Tt’进行聚合,以得到第四聚合参数值T-all。之后,第二计算节点根据第二计算节点上的第一模型和第二计算节点上的第二模型执行目标任务,其中,第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值G-all,第二计算节点上的第二模型的模型参数取值为该第四聚合参数值T-all。
在本申请上述实施方式中,在不部署新的计算节点的情况下,具体阐述了在第二计算节点也进行了对抗训练后,第二计算节点会接收第一计算节点发送的最后一次更新得到的第二模型参数值,从而使得第二计算节点基于第一模型的最新模型参数值和第二模型的最新模型参数值执行目标任务,由于第二计算节点上的第一模型和第二模型各自最终的模型参数值是经由第一计算节点和第二计算节点协同训练得到的,因此模型性能得到了提高。
在第二方面的一种可能的设计中,第二计算节点获取第二聚合参数值,且该第二聚合参数值基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值得到的过程可以是:接收由每个第一计算节点各自发送的第一模型参数值Gs,并对接收到的每个第一模型参数值进行聚合,以得到所述第二聚合参数值G-all。同样地,由于第一计算节点可以是一个,也可以是多个,因此可分为两种情况:1)在第一计算节点为一个的情况下,第二计算节点接收由第一计算节点发送的第一模型参数值Gs(即一个Gs),这种情况下,第二聚合参数值G-all实质就是该第一模型参数值Gs;2)在第一计算节点为多个(假设为n个,n≥2)的情况下,第二计算节点接收由每个第一计算节点各自发送的第一模型参数值Gs(即多个Gs,分别用G1、……、Gn表示),这种情况下,第二计算节点会对接收到的这些第一模型参数值G1、……、Gn进行聚合,以得到第二聚合参数值G-all。
在本申请上述实施方式中,具体阐述了在不部署新的计算节点的情况下,从第二计算节点侧阐述当第一计算节点分别为一个或多个的情况时,第二聚合参数值G-all可以是由第二计算节点得到,具备灵活性。
在第二方面的一种可能的设计中,该方法还包括:1)在第一计算节点为一个的情况下,第二计算节点接收由第一计算节点发送的最后一次更新得到的第二模型参数值Ts,并根据第二计算节点上的第一模型和第二计算节点上的第二模型执行目标任务,其中,第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值G-all,第二计算节点上的第二模型的模型参数取值为最后一次更新得到的第二模型参数值Ts;2)在第一计算节点为多个的情况下,第二计算节点接收由每个第一计算节点各自发送的最后一次更新得到的第二模型参数值Ts(即多个Ts,分别用T1、……、Tn表示),并对每个最后一次更新得到的第二模型参数值T1、……、Tn进行聚合,以得到第三聚合参数值Ts-all,并根据第二计算节点上的第一模型和第二计算节点上的第二模型执行目标任务,其中,第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值G-all,第二计算节点上的第二模型的模型参数取值为第三聚合参数值Ts-all。
需要注意的是,若是迭代多次的情况,那么上述过程是在第二计算节点重复执行上述步骤,直至达到迭代终止条件之后执行。
在本申请上述实施方式中,在不部署新的计算节点的情况下,第二计算节点完成迭代训练后,会接收由第一计算节点发送的最后一次更新得到的第二模型参数值,第二计算节点会基于第一模型的最新模型参数值和第二模型的最新模型参数值执行目标任务,由于第二计算节点上的第一模型和第二模型各自最终的模型参数值是经由第一计算节点和第二计算节点各自利用各自的本地数据集协同训练得到的,因此在保护数据隐私的同时,模型性能得到了提高。
在第二方面的一种可能的设计中,第二计算节点获取第一聚合参数值D-all,且该第一聚合参数值D-all基于第三模型参数值Ds以及第四模型参数值Dt得到过程还可以是:首先,第二计算节点向第三计算节点发送该第四模型参数值Dt,之后,第二计算节点接收来自第三计算节点的第一聚合参数值D-all,该第一聚合参数值D-all由第三计算节点对来自一个或多个第一计算节点的每个第三模型参数值Ds和来自第二计算节点的第四模型参数值Dt聚合得到。
在本申请上述实施方式中,阐述第三模型参数值Ds与第四模型参数值Dt的聚合过程由额外部署的一个第三计算节点执行,降低了第二计算节点的计算开销,提高了第二计算节点的计算速度。
在第二方面的一种可能的设计中,第二计算节点获取第二聚合参数值G-all,且第二聚合参数值G-all基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值得到的过程可以是:首先,第二计算节点向第三计算节点发送该第七模型参数值Gt’(即更新后的第二计算节点上的第一模型的模型参数值),之后,该第二计算节点接收来自该第三计算节点的第二聚合参数值G-all,该第二聚合参数值G-all由第三计算节点对该第七模型参数值Gt’以及来自一个或多个第一计算节点的每个更新的第一模型参数值Gs聚合得到。由于第一计算节点可以是一个,也可以是多个,因此可分为两种情况:1)在第一计算节点为一个的情况下,第二计算节点接收由第三计算节点转发的第一模型参数值Gs(由第一计算节点先向第三计算节点发送,再由第三计算节点向第二计算节点转发),这种情况下,第二聚合参数值G-all实质就是该第一模型参数值Gs;2)在第一计算节点为多个(假设为n个,n≥2)的情况下,第二计算节点接收由第三计算节点转发的第二聚合参数值G-all,所述第二聚合参数值由所述第三计算节点对每个第一模型参数值聚合得到,其中,每个第一模型参数值由每个第一计算节点各自向第三计算节点发送,即每个第一计算节点会将各自得到的第一模型参数值Gs(即多个Gs,分别用G1、……、Gn表示)向第三计算节点发送,该第三计算节点对接收到的这些第一模型参数值G1、……、Gn进行聚合,以得到第二聚合参数值G-all。在本申请实施例中,以得到的该G-all可进一步向第二计算节点发送。
在本申请上述实施方式中,具体阐述了在部署新的计算节点(即第三计算节点)且由第二计算节点进行对抗训练的情况下,以得到第二聚合参数值的聚合过程是由该第三计算节点执行的,具备灵活性。
在第二方面的一种可能的设计中,该方法还可以包括:第二计算节点将更新得到的第八模型参数值Tt’(即更新后的第二计算节点上的第二模型的模型参数值)向第三计算节点发送,同时每个第一计算节点也各自将更新后的第二模型参数值向第三计算节点发送,由该第三计算节点将每个更新后的第二模型参数值和更新得到的第八模型参数值Tt’进行聚合,以得到第四聚合参数值T-all。
若是多次迭代的情况,那么该方法还可以是:第二计算节点将最后一次更新得到的第八模型参数值Tt’(即更新后的第二计算节点上的第二模型的模型参数值)向第三计算节点发送,同时每个第一计算节点也各自将最后一次更新得到的第二模型参数值向第三计算节点发送,由该第三计算节点将每个最后一次更新得到的第二模型参数值和最后一次更新得到的第八模型参数值Tt’进行聚合,以得到第四聚合参数值T-all。具体地,1)在第一计算节点为一个的情况下,第三计算节点接收第一计算节点发送的最后一次更新得到的第二模型参数值Ts,同时第三计算节点接收第二计算节点发送的最后一次更新得到的第八模型参数值Tt’,并将该最后一次更新得到的第二模型参数值Ts和最后一次更新得到的第八模型参数值Tt’进行聚合,以得到第四聚合参数值T-all;2)在第一计算节点为多个的情况下,第三计算节点接收每个第一计算节点各自发送的最后一次更新得到的第二模型参数值Ts(即多个Ts,分别用T1、……、Tn表示),同时第三计算节点接收第二计算节点发送的最后一次更新得到的第八模型参数值Tt’,第三计算节点再将各个最后一次更新得到的第二模型参数值T1、……、Tn以及Tt’进行聚合,以得到第四聚合参数值T-all。之后,第二计算节点再接收由第三计算节点发送的第四聚合参数值T-all,并根据第二计算节点上的第一模型和第二计算节点上的第二模型执行目标任务,其中,第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值G-all,第二计算节点上的第二模型的模型参数取值为该第四聚合参数值T-all。
在本申请上述实施方式中,在部署新的计算节点(即第三计算节点)的情况下,具体阐述了在第二计算节点也进行了对抗训练后,第二计算节点会接收第一计算节点发送的最后一次更新得到的第二模型参数值,从而使得第二计算节点基于第一模型的最新模型参数值和第二模型的最新模型参数值执行目标任务,由于第二计算节点上的第一模型和第二模型各自最终的模型参数值是经由第一计算节点和第二计算节点协同训练得到的,因此模型性能得到了提高。
在第二方面的一种可能的设计中,第二计算节点获取第二聚合参数值G-all,且该第二聚合参数值G-all基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值得到的过程可以是:第二计算节点接收来自第三计算节点的第二聚合参数值G-all,该第二聚合参数值G-all由第三计算节点对来自于一个或多个第一计算节点的每个第一模型参数值Gs聚合得到。同样地,由于第一计算节点可以是一个,也可以是多个,因此可分为两种情况:1)在第一计算节点为一个的情况下,第二计算节点接收由第三计算节点转发的第一模型参数值Gs(由第一计算节点先向第三计算节点发送,再由第三计算节点向第二计算节点转发),这种情况下,第二聚合参数值G-all实质就是该第一模型参数值Gs;2)在第一计算节点为多个(假设为n个,n≥2)的情况下,第二计算节点接收由第三计算节点转发的第二聚合参数值G-all,所述第二聚合参数值由所述第三计算节点对每个第一模型参数值聚合得到,其中,每个第一模型参数值由每个第一计算节点各自向第三计算节点发送,即每个第一计算节点会将各自得到的第一模型参数值Gs(即多个Gs,分别用G1、……、Gn表示)向第三计算节点发送,该第三计算节点对接收到的这些第一模型参数值G1、……、Gn进行聚合,以得到第二聚合参数值G-all,并由该第三计算节点将得到的第二聚合参数值G-all向第二计算节点发送。
在本申请上述实施方式中,具体阐述了在不部署新的计算节点的情况下,从第二计算节点侧阐述当第一计算节点分别为一个或多个的情况时,第二聚合参数值G-all可以是由第三计算节点得到,具备灵活性。
在第二方面的一种可能的设计中,该方法还包括:1)在第一计算节点为一个的情况下,第二计算节点接收由第三计算节点发送的最后一次更新得到的第二模型参数值Ts,并根据第二计算节点上的第一模型和第二计算节点上的第二模型执行目标任务,最后一次更新得到的第二模型参数值Ts由第三计算节点从第一计算节点获取到,其中,第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值G-all,第二计算节点上的第二模型的模型参数取值为最后一次更新得到的第二模型参数值Ts;2)在第一计算节点为多个(假设为n个,n≥2)的情况下,第二计算节点接收由第三计算节点发送的第三聚合参数值Ts-all,并根据第二计算节点上的第一模型和第二计算节点上的第二模型执行目标任务,第三聚合参数值Ts-all由第三计算节点对从每个第一计算节点各自接收到的最后一次更新得到的第二模型参数值聚合T1、……、Tn聚合得到,其中,第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值G-all,第二计算节点上的第二模型的模型参数取值为该第三聚合参数值Ts-all。
需要注意的是,若是迭代多次的情况,那么上述过程是在第二计算节点重复执行上述步骤,直至达到迭代终止条件之后执行。
在本申请上述实施方式中,在部署有新的计算节点(即第三计算节点)的情况下,第二计算节点完成迭代训练后,第一计算节点会将最后一次更新得到的第二模型参数值向第三计算节点发送,由第三计算节点直接转发或聚合后转发给第二计算节点,从而使得第二计算节点基于第一模型的最新模型参数值和第二模型的最新模型参数值执行目标任务,由于第二计算节点上的第一模型和第二模型各自最终的模型参数值是经由第一计算节点和第二计算节点协同训练得到的,因此模型性能得到了提高。
第三方面,本申请实施例还提供一种基于联邦迁移学习的模型训练方法,可用于人工智能领域中,例如计算机视觉领域,该方法包括:首先,第一计算节点(可以是一个,也可以是多个)在第一计算节点上第一模型(如,特征提取器)的第一模型参数值(可用Gs表示)和第一计算节点上的第二模型(如,分类器)的第二模型参数值(可用Ts表示)保持不变的情况下(也可称为固定Gs和固定Ts),采用该第一计算节点上的第一数据集对第一计算节点上的第三模型(如,域鉴别器,也可简称为鉴别器)进行训练,以得到该第一计算节点上的第三模型的第三模型参数值(可用Ds表示),其中,该第一模型参数值Gs为第一计算节点对第一模型训练后得到的模型参数值,第二模型参数值Ts为第一计算节点对第二模型训练后得到的模型参数取值,该第一数据集可以是有标签的数据集。在本申请实施例中,第一模型用于对输入数据进行特征提取;第二模型用于基于第一模型提取出的特征执行目标任务,例如,目标任务可以是分类任务(如,目标检测任务、语义分割任务、语音识别任务等),也可以是回归任务,此处不做限定;第三模型用于鉴别由第一模型提取出的特征的源域。作为一种示例,根据源域的数据分布可以区分输入数据所位于的计算节点,例如,判断获取到的特征是来自源域设备,还是来自目标域设备。之后,第二计算节点会获取第二聚合参数值(可用G-all表示),该第二聚合参数值G-all基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值Gs得到,并且,第二计算节点还将在第二计算节点上的第一模型的模型参数取值为第二聚合参数值G-all的情况下,采用第二计算节点上的第二数据集对第二计算节点上的第三模型进行训练,以得到第二计算节点上的第三模型的第四模型参数值Dt。之后,第一计算节点将接收第一聚合参数值(可用D-all表示),该第一聚合参数值D-all是基于第三模型参数值Ds和第四模型参数值Dt得到。第一计算节点在得到了第一聚合参数值D-all后,会将原来的第三模型参数值Ds更新为该第一聚合参数值D-all,也就是将第一计算节点上第三模型的模型参数取值更新为第一聚合参数值D-all,并在保持第一聚合参数值D-all不变的情况下(可称为固定D-all),采用第一数据集对第一计算节点上的第一模型和第一计算节点上的第二模型再进行训练,以得到第一计算节点上的第一模型的第五模型参数值(可用Gs’表示)和第一计算节点上的第二模型的第六模型参数值(可用Ts’表示)。最后,第一计算节点将第五模型参数值Gs’和第六模型参数值Ts’作为新的第一模型参数值和新的第二模型参数值。
需要注意的是,在本申请的一些实施方式中,还可以重复执行上述步骤,直至达到迭代终止条件,该迭代终止条件可以是达到预设的训练轮次,也可以是使得损失函数收敛,还可以是其他设定的训练终止条件,具体此处不做限定。为便于阐述,在本申请第三方面以及第三方面的任一种可能的实现方式中,均以该方法重复执行上述步骤,直至达到迭代终止条件的情况为例进行说明,以下不再赘述。
需要注意的是,在本申请实施例中,当第一计算节点为一个时,第一模型参数值可直接用Gs表示,第二模型参数值可直接用Ts表示;当第一计算节点为多个(假设为n个,n≥2)时,那么每个第一计算节点会得到各自对应第一模型参数值Gs(即多个Gs,分别用G1、……、Gn表示)以及各自对应的第二模型参数值Ts(即多个Ts,分别用T1、……、Tn表示)。
在本申请上述实施方式中,具体阐述了第一计算节点以及第二计算节点所组成的系统训练各个模型并得到各模型的模型参数值的过程,在该训练过程中,第一计算节点与第二计算节点之间互相传递的仅是模型参数值,不传递数据或数据特征,保护了数据隐私;并且基于传递的模型参数值,使得第一计算节点上的第一模型从第一数据集提取的特征与第二计算节点上的第一模型从第二数据集提取的特征的分布差异在迭代训练过程中逐步缩小,从而实现域对齐。因此,本申请上述实施方式在兼顾域对齐和数据隐私的情况下实现了对模型的协同训练。
在第三方面的一种可能的设计中,在重复执行上述步骤,直至达到迭代终止条件之前,该方法还可以包括:第二计算节点还可以进一步获取第一聚合参数值D-all,该第一聚合参数值D-all基于第三模型参数值Ds(一个或多个)以及第四模型参数值Dt得到,第三模型参数值Ds为每个第一计算节点各自采用自身上的第一数据集对自身上的第三模型进行训练得到的模型参数取值。之后,第二计算节点将第四模型参数值Dt更新为第一聚合参数值D-all,并在保持第一聚合参数值D-all不变的情况下(即固定D-all),采用第二数据集对第二计算节点上的第一模型和第二计算节点上的第二模型进行训练,以得到第二计算节点上的第一模型的第七模型参数值(可用Gt’表示)和第二计算节点上的第二模型的第八模型参数值(可用Tt’表示)。
在本申请实施例中,在不部署新的计算节点的情况下,第二计算节点也可以在固定第一聚合参数值D-all的情况下对该第二计算节点上第一模型和第二模型进行训练,也就是不仅在第一计算节点进行对抗训练,在第二计算节点上也进行对抗训练,从而使得从第一数据集上提取的特征和从第二数据集上提取的特征更快实现域对齐,提高训练速度。
在第三方面的一种可能的设计中,第一计算节点接收第一聚合参数值D-all,且第一聚合参数值D-all基于第三模型参数值Ds以及第四模型参数值Dt得到的过程可以是:首先,第一计算节点将第三模型参数值Ds(一个或多个)向第二计算节点发送,第二计算节点再将第三模型参数值Ds和第四模型参数值Dt进行聚合,以得到第一聚合参数值D-all。需要注意的是,如果第一计算节点为一个,第二计算节点得到第一聚合参数值D-all的过程就是:将来自该第一计算节点的第三模型参数值Ds与第四模型参数值Dt聚合,以得到第一聚合参数值D-all;如果第一计算节点为多个,第二计算节点得到第一聚合参数值D-all的过程就是:将来自每个第一计算节点各自的第三模型参数值Ds(即每个第一计算节点各自有一个对应的第三模型参数值Ds,可分别用D1、……、Dn表示)与第四模型参数值Dt聚合,以得到第一聚合参数值D-all。最后,第二计算节点将聚合的第一聚合参数值D-all向第一计算节点发送。
在本申请上述实施方式中,第三模型参数值Ds与第四模型参数值Dt的聚合过程由第二计算节点执行,这种情况下无需额外部署新的计算节点,节约了成本。
在第三方面的一种可能的设计中,第一计算节点接收第一聚合参数值D-all,且第一聚合参数值D-all基于第三模型参数值Ds以及第四模型参数值Dt得到的过程还可以是:第一计算节点将第三模型参数值Ds向第三计算节点发送,同时第二计算节点也会将第四模型参数值Dt向第三计算节点发送,第三计算节点将第三模型参数值Ds以及第四模型参数值Dt进行聚合,以得到第一聚合参数值D-all;之后,第三计算节点将第一聚合参数值D-all向第一计算节点发送。需要注意的是,如果第一计算节点为一个,第三计算节点得到第一聚合参数值D-all的过程就是:将来自该第一计算节点的第三模型参数值Ds与第四模型参数值Dt聚合,以得到第一聚合参数值D-all;如果第一计算节点为多个,第三计算节点得到第一聚合参数值D-all的过程就是:将来自每个第一计算节点各自的第三模型参数值Ds(即每个第一计算节点各自有一个对应的第三模型参数值Ds,可分别用D1、……、Dn表示)与第四模型参数值Dt聚合,以得到第一聚合参数值D-all,最后第三计算节点再将第一聚合参数值D-all向第二计算节点发送。
在本申请上述实施方式中,第三模型参数值Ds与第四模型参数值Dt的聚合过程可以由额外部署的一个第三计算节点执行,降低了第二计算节点的计算开销,提高了第二计算节点的计算速度。
在第三方面的一种可能的设计中,第二计算节点获取第二聚合参数值G-all,且第二聚合参数值G-all基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值Gs得到的过程可以是:第二计算节点接收由一个或多个第一计算节点各自发送的更新后的第一模型参数值Gs(一个或多个),并将第七模型参数值Gt’和每个更新的第一模型参数值Gs进行聚合,以得到第二聚合参数值G-all。由于第一计算节点可以是一个,也可以是多个,因此可分为两种情况:1)若第一计算节点为一个,则第二计算节点将第七模型参数值Gt’和该一个第一模型参数值Gs进行聚合,以得到第二聚合参数值G-all;若第二计算节点为多个(假设为n个,n≥2),则第二计算节点将第七模型参数值Gt’和每个第一模型参数值G1、……、Gn进行聚合,以得到第二聚合参数值G-all。
在本申请上述实施方式中,在不部署新的计算节点且由第二计算节点进行对抗训练的的情况下,以得到第二聚合参数值的聚合过程是由该第二计算节点执行的,具备可实现性。
在第三方面的一种可能的设计中,在重复执行上述步骤,达到迭代终止条件后,该方法还包括:第一计算节点将最后一次更新得到的第一模型参数值和最后一次更新得到的第二模型参数值向该第二计算节点发送。第二计算节点接收到由一个或多个第一计算节点发送的最后一次更新得到的第一模型参数值和第二模型参数值后,首先,会将每个最后一次更新得到的第二模型参数值和最后一次更新得到的第八模型参数值Tt’进行聚合,以得到第四聚合参数值(可用T-all表示)。具体地,1)在第一计算节点为一个的情况下,第二计算节点接收第一计算节点发送的最后一次更新得到的第二模型参数值Ts,并将该最后一次更新得到的第二模型参数值Ts和最后一次更新得到的第八模型参数值Tt’进行聚合,以得到第四聚合参数值T-all;2)在第一计算节点为多个的情况下,第二计算节点接收每个第一计算节点各自发送的最后一次更新得到的第二模型参数值Ts(即多个Ts,分别用T1、……、Tn表示),第二计算节点再将各个最后一次更新得到的第二模型参数值T1、……、Tn以及Tt’进行聚合,以得到第四聚合参数值T-all。最后,第二计算节点根据第二计算节点上的第一模型和第二计算节点上的第二模型执行目标任务,其中,第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值G-all,第二计算节点上的第二模型的模型参数取值为该第四聚合参数值T-all。
在本申请上述实施方式中,在不部署新的计算节点的情况下,具体阐述了在第二计算节点也进行了对抗训练后,第二计算节点会接收第一计算节点发送的最后一次更新得到的第一模型参数值和第二模型参数值,从而使得第二计算节点基于第一模型的最新模型参数值和第二模型的最新模型参数值执行目标任务,由于第二计算节点上的第一模型和第二模型各自最终的模型参数值是经由第一计算节点和第二计算节点协同训练得到的,因此模型性能得到了提高。
在第三方面的一种可能的设计中,在第一计算节点为一个的情况下,第二计算节点获取第二聚合参数值,且该第二聚合参数值基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值得到的过程可以是:第二计算节点接收由第一计算节点发送的第一模型参数值Gs(即一个Gs),这种情况下,第二聚合参数值G-all实质就是该第一模型参数值Gs;在第一计算节点为多个(假设为n个,n≥2)的情况下,第二计算节点获取第二聚合参数值,且该第二聚合参数值基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值得到的过程可以是:第二计算节点接收由每个第一计算节点各自发送的第一模型参数值Gs(即多个Gs,分别用G1、……、Gn表示),这种情况下,第二计算节点会对接收到的这些第一模型参数值G1、……、Gn进行聚合,以得到第二聚合参数值G-all。
在本申请上述实施方式中,具体阐述了在不部署新的计算节点的情况下,当第一计算节点分别为一个或多个的情况时,第二聚合参数值G-all可以是由第二计算节点得到,具备灵活性。
在第三方面的一种可能的设计中,在重复执行上述步骤,直至达到迭代终止条件后,该方法还包括:第一计算节点将最后一次更新得到的第一模型参数值和最后一次更新得到的第二模型参数值向该第二计算节点发送。由于第一计算节点可以是一个,也可以是多个,因此这里分为两种情况进行介绍:1)在第一计算节点为一个的情况下,第二计算节点接收到第一计算节点发送的最后一次更新得到的第二模型参数值Ts后,会根据第二计算节点上的第一模型和第二计算节点上的第二模型执行目标任务,其中,第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值G-all,第二计算节点上的第二模型的模型参数取值为最后一次更新得到的第二模型参数值Ts;2)在第一计算节点为多个的情况下,第二计算节点接收到由每个第一计算节点各自发送的最后一次更新得到的第二模型参数值Ts(即多个Ts,分别用T1、……、Tn表示)后,会对每个最后一次更新得到的第二模型参数值T1、……、Tn进行聚合,以得到第三聚合参数值Ts-all,并根据第二计算节点上的第一模型和第二计算节点上的第二模型执行目标任务,其中,第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值G-all,第二计算节点上的第二模型的模型参数取值为第三聚合参数值Ts-all。
在本申请上述实施方式中,在不部署新的计算节点的情况下,完成迭代训练后,第二计算节点会接收由第一计算节点发送的最后一次更新得到的第一模型参数值和第二模型参数值,第二计算节点会基于第一模型的最新模型参数值和第二模型的最新模型参数值执行目标任务,由于第二计算节点上的第一模型和第二模型各自最终的模型参数值是经由第一计算节点和第二计算节点协同训练得到的,因此模型性能得到了提高。
在第三方面的一种可能的设计中,第二计算节点获取第一聚合参数值D-all,且该第一聚合参数值D-all基于第三模型参数值Ds以及第四模型参数值Dt得到过程还可以是:首先,第二计算节点向第三计算节点发送该第四模型参数值Dt,第一计算节点也将第三模型参数值Ds(一个或多个)向第三计算节点发送,第三计算节点再将第三模型参数值Ds和第四模型参数值Dt进行聚合,以得到第一聚合参数值D-all。需要注意的是,如果第一计算节点为一个,第三计算节点得到第一聚合参数值D-all的过程就是:将来自该第一计算节点的第三模型参数值Ds与第四模型参数值Dt聚合,以得到第一聚合参数值D-all;如果第一计算节点为多个,第三计算节点得到第一聚合参数值D-all的过程就是:将来自每个第一计算节点各自的第三模型参数值Ds(即每个第一计算节点各自有一个对应的第三模型参数值Ds,可分别用D1、……、Dn表示)与第四模型参数值Dt聚合,以得到第一聚合参数值D-all。最后,第三计算节点将聚合的第一聚合参数值D-all向第二计算节点发送。
在本申请上述实施方式中,阐述第三模型参数值Ds与第四模型参数值Dt的聚合过程由额外部署的一个第三计算节点执行,降低了第二计算节点的计算开销,提高了第二计算节点的计算速度。
在第三方面的一种可能的设计中,第二计算节点获取第二聚合参数值G-all,且第二聚合参数值G-all基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值得到的过程可以是:首先,第二计算节点向第三计算节点发送该第七模型参数值Gt’,之后,该第三计算节点对该第七模型参数值Gt’以及来自一个或多个第一计算节点的每个更新的第一模型参数值Gs进行聚合,以得到第二聚合参数值G-all,第三计算节点再将该第二聚合参数值G-all向第二计算节点发送。由于第一计算节点可以是一个,也可以是多个,因此聚合过程可分为两种情况:1)在第一计算节点为一个的情况下,第二计算节点接收由第三计算节点转发的第一模型参数值Gs(由第一计算节点先向第三计算节点发送,再由第三计算节点向第二计算节点转发),这种情况下,第二聚合参数值G-all实质就是该第一模型参数值Gs;2)在第一计算节点为多个(假设为n个,n≥2)的情况下,第二计算节点接收由第三计算节点转发的第二聚合参数值G-all,第二聚合参数值G-all由第三计算节点对每个第一模型参数值聚合得到,其中,每个第一模型参数值由每个第一计算节点各自向第三计算节点发送,即每个第一计算节点会将各自得到的第一模型参数值Gs(即多个Gs,分别用G1、……、Gn表示)向第三计算节点发送,该第三计算节点对接收到的这些第一模型参数值G1、……、Gn进行聚合,以得到第二聚合参数值G-all。
在本申请上述实施方式中,具体阐述了在部署新的计算节点(即第三计算节点)且由第二计算节点进行对抗训练的情况下,以得到第二聚合参数值的聚合过程是由该第三计算节点执行的,具备灵活性。
在第三方面的一种可能的设计中,在重复执行上述步骤,达到迭代终止条件后,该方法还包括:第一计算节点将最后一次更新得到的第一模型参数值和最后一次更新得到的第二模型参数值向第三计算节点发送,此外,第二计算节点也将最后一次更新得到的第八模型参数值Tt’向第三计算节点发送,由该第三计算节点将每个最后一次更新得到的第二模型参数值和最后一次更新得到的第八模型参数值Tt’进行聚合,以得到第四聚合参数值T-all。具体地,1)在第一计算节点为一个的情况下,第三计算节点接收第一计算节点发送的最后一次更新得到的第二模型参数值Ts,同时第三计算节点接收第二计算节点发送的最后一次更新得到的第八模型参数值Tt’,并将该最后一次更新得到的第二模型参数值Ts和最后一次更新得到的第八模型参数值Tt’进行聚合,以得到第四聚合参数值T-all;2)在第一计算节点为多个的情况下,第三计算节点接收每个第一计算节点各自发送的最后一次更新得到的第二模型参数值Ts(即多个Ts,分别用T1、……、Tn表示),同时第三计算节点接收第二计算节点发送的最后一次更新得到的第八模型参数值Tt’,第三计算节点再将各个最后一次更新得到的第二模型参数值T1、……、Tn以及Tt’进行聚合,以得到第四聚合参数值T-all。之后,第二计算节点再接收由第三计算节点发送的第四聚合参数值T-all,并根据第二计算节点上的第一模型和第二计算节点上的第二模型执行目标任务,其中,第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值G-all,第二计算节点上的第二模型的模型参数取值为该第四聚合参数值T-all。
在第三方面的一种可能的设计中,第二计算节点获取第二聚合参数值G-all,且该第二聚合参数值G-all基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值得到的过程可以是:第二计算节点接收来自第三计算节点的第二聚合参数值G-all,该第二聚合参数值G-all由第三计算节点对来自于一个或多个第一计算节点的每个第一模型参数值Gs聚合得到。同样地,由于第一计算节点可以是一个,也可以是多个,因此可分为两种情况:1)在第一计算节点为一个的情况下,第二计算节点接收由第三计算节点转发的第一模型参数值Gs(由第一计算节点先向第三计算节点发送,再由第三计算节点向第二计算节点转发),这种情况下,第二聚合参数值G-all实质就是该第一模型参数值Gs;2)在第一计算节点为多个(假设为n个,n≥2)的情况下,第二计算节点接收由第三计算节点转发的第二聚合参数值G-all,所述第二聚合参数值由所述第三计算节点对每个第一模型参数值聚合得到,其中,每个第一模型参数值由每个第一计算节点各自向第三计算节点发送,即每个第一计算节点会将各自得到的第一模型参数值Gs(即多个Gs,分别用G1、……、Gn表示)向第三计算节点发送,该第三计算节点对接收到的这些第一模型参数值G1、……、Gn进行聚合,以得到第二聚合参数值G-all,并由该第三计算节点将得到的第二聚合参数值G-all向第二计算节点发送。
在本申请上述实施方式中,具体阐述了在不部署新的计算节点的情况下,从第二计算节点侧阐述当第一计算节点分别为一个或多个的情况时,第二聚合参数值G-all可以是由第三计算节点得到,具备灵活性。
在第三方面的一种可能的设计中,在重复执行上述步骤,直至达到迭代终止条件后,该方法还包括:第一计算节点将最后一次更新得到的第一模型参数值和最后一次更新得到的第二模型参数值向第三计算节点发送。由于第一计算节点可以是一个,也可以是多个,因此这里分为两种情况进行介绍:1)在第一计算节点为一个的情况下,第二计算节点接收由第三计算节点发送的最后一次更新得到的第二模型参数值Ts,并根据第二计算节点上的第一模型和第二计算节点上的第二模型执行目标任务,最后一次更新得到的第二模型参数值Ts由第三计算节点从第一计算节点获取到,其中,第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值G-all,第二计算节点上的第二模型的模型参数取值为最后一次更新得到的第二模型参数值Ts;2)在第一计算节点为多个(假设为n个,n≥2)的情况下,第二计算节点接收由第三计算节点发送的第三聚合参数值Ts-all,并根据第二计算节点上的第一模型和第二计算节点上的第二模型执行目标任务,第三聚合参数值Ts-all由第三计算节点对从每个第一计算节点各自接收到的最后一次更新得到的第二模型参数值聚合T1、……、Tn聚合得到,其中,第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值G-all,第二计算节点上的第二模型的模型参数取值为该第三聚合参数值Ts-all。
在本申请上述实施方式中,在部署有新的计算节点(即第三计算节点)的情况下,完成迭代训练后,第一计算节点会将最后一次更新得到的第二模型参数值向第三计算节点发送,由第三计算节点直接转发或聚合后转发给第二计算节点,第二计算节点会基于第一模型的最新模型参数值和第二模型的最新模型参数值执行目标任务,由于第二计算节点上的第一模型和第二模型各自最终的模型参数值是经由第一计算节点和第二计算节点协同训练得到的,因此模型性能得到了提高。
第四方面,本申请实施例还提供一种数据处理方法,该方法包括:首先,计算机设备获取待处理的输入数据,该输入数据与待执行的目标任务相关,例如,当目标任务是分类任务,那么输入数据就是指用于进行分类的数据。之后,计算机设备通过训练后的第一模型对该输入数据进行特征提取,以得到特征图,并通过训练后的第二模型对特征图进行处理,以得到输出数据,其中,该训练后的第一模型的模型参数值和该训练后的第二模型的模型参数值由上述第一方面或第一方面任意一种可能实现方式的方法,或,上述第二方面或第二方面任意一种可能实现方式的方法,或,上述第三方面或第三方面任意一种可能实现方式的方法训练得到。
需要注意的是,在本申请实施例中,根据目标任务的不同,输入数据的类型也不同,这里对几种典型的目标任务的应用场景进行阐述:
1)目标任务是目标检测任务
目标检测任务一般针对图像中的目标物体的检测,在这种情况下,输入数据一般是指输入的图像,计算机设备首先利用训练后的第一模型对输入的图像进行特征提取,再利用训练后的第二模型对提取的特征图进行目标检测,以得到检测结果,即输出数据是检测结果。
2)目标任务是分类任务
一种实施例中,分类任务可以是针对图像进行的,在这种情况下,输入数据是指输入的图像,计算机设备首先利用训练后的第一模型对输入的图像进行特征提取,再利用训练后的第二模型对提取的特征图进行分类,输出分类结果,即输出数据是图像的分类结果。
另一种实施例中,分类任务除了可以是针对图像进行的,还可以是针对文本或音频,在这种情况下,输入数据就是指对应的文本数据或音频数据,输出数据则是文本的分类结果或音频的分类结果。
以上仅是针对几种场景的目标任务进行说明,在不同的目标任务中,输入数据和输出数据是与该目标任务相关的,具体此处不在示例。
本申请实施例第五方面提供一种计算节点,该计算节点作为第一计算节点,具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
本申请实施例第六方面提供一种计算节点,该计算节点作为第二计算节点,具有实现上述第二方面或第二方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
本申请实施例第七方面提供一种计算系统,该计算系统包括第一计算节点和第二计算节点,该计算系统具有实现上述第三方面或第三方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
本申请实施例第八方面提供一种计算节点,该计算节点作为第一计算节点,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于调用该存储器中存储的程序以执行本申请实施例第一方面或第一方面任意一种可能实现方式的方法。
本申请实施例第九方面提供一种计算节点,该计算节点作为第二计算节点,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于调用该存储器中存储的程序以执行本申请实施例第二方面或第二方面任意一种可能实现方式的方法。
本申请实施例第十方面提供一种计算机设备,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于调用该存储器中存储的程序以执行本申请实施例第四方面或第四方面任意一种可能实现方式的方法。
本申请实施例第十一方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机可以执行上述第一方面或第一方面任意一种可能实现方式的方法,或,使得计算机可以执行上述第二方面或第二方面任意一种可能实现方式的方法。
本申请实施例第十二方面提供了一种包括指令的计算机程序或计算机程序产品,当该计算机程序或计算机程序产品在计算机上运行时,使得计算机执行上述第一方面或第一方面任意一种可能实现方式的方法,或,使得计算机可以执行上述第二方面或第二方面任意一种可能实现方式的方法。
本申请实施例第十三方面提供了一种芯片,该芯片包括至少一个处理器和至少一个接口电路,该接口电路和该处理器耦合,至少一个接口电路用于执行收发功能,并将指令发送给至少一个处理器,至少一个处理器用于运行计算机程序或指令,其具有实现如上述第一方面或第一方面任意一种可能实现方式的方法的功能,该功能可以通过硬件实现,也可以通过软件实现,还可以通过硬件和软件组合实现,该硬件或软件包括一个或多个与上述功能相对应的模块。此外,该接口电路用于与该芯片之外的其它模块进行通信,例如,该接口电路可将芯片上训练得到的各个模型的模型参数值发送给目标设备。
附图说明
图1为本申请实施例提供的人工智能主体框架的一种结构示意图;
图2为本申请实施例提供的联邦迁移学习系统的一个示意图;
图3为本申请实施例提供的联邦迁移学习系统的另一个示意图;
图4为本申请实施例提供的基于联邦迁移学习的模型训练方法的一种流程示意图;
图5为本申请实施例提供的基于联邦迁移学习的模型训练方法的另一流程示意图;
图6为本申请实施例提供的基于联邦迁移学习的模型训练方法的另一流程示意图;
图7为本申请实施例提供的基于联邦迁移学习的模型训练方法的另一流程示意图;
图8为本申请实施例提供的基于联邦迁移学习的模型训练方法的另一流程示意图;
图9为本申请实施例提供的基于联邦迁移学习的模型训练方法的另一流程示意图;
图10为本申请实施例提供的基于联邦迁移学习的模型训练方法的另一流程示意图;
图11为本申请实施例提供的基于联邦迁移学习的模型训练方法的另一流程示意图;
图12为本申请实施例提供的数据处理方法的一个流程示意图;
图13为本申请实施例提供的第一计算节点的一个结构示意图;
图14为本申请实施例提供的第二计算节点的一个结构示意图;
图15为本申请实施例提供的计算机设备的一个结构示意图;
图16为本申请实施例提供的设备的一种结构示意图。
具体实施方式
本申请实施例提供了一种基于联邦迁移学习的模型训练方法及计算节点,用于利用第一计算节点上第一数据集辅助第二计算节点上的第二数据集对模型进行训练,实现域对齐,并且在计算节点之间传递的仅仅是模型的模型参数值,不传递数据或数据特征,充分保护了用户数据隐私,因此在兼顾域对齐和用户数据隐私的情况下,本申请实施例实现了对模型的协同训练,提高了模型的性能。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
本申请实施例涉及了许多联邦学习、迁移学习、模型训练等的相关知识,为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的相关术语和概念进行介绍。应理解的是,相关的概念解释可能会因为本申请实施例的具体情况有所限制,但并不代表本申请仅能局限于该具体情况,在不同实施例的具体情况可能也会存在差异,具体此处不做限定。
(1)神经网络
神经网络可以是由神经单元组成的,具体可以理解为具有输入层、隐含层、输出层的神经网络,一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层,神经网络中的每一层可称为神经网络层。其中,具有很多层隐含层的神经网络则称为深度神经网络(deep neural network,DNN)。神经网络中的每一层的工作可以用数学表达式
Figure GDA0003621377350000191
来描述,从物理层面,神经网络中的每一层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中1、2、3的操作由/>
Figure GDA0003621377350000192
完成,4的操作由“+b”完成,5的操作则由“a()”来实现。这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合,其中,W是神经网络各层的权重矩阵,该矩阵中的每一个值表示该层的一个神经元的权重值。该矩阵W决定着上文所述的输入空间到输出空间的空间变换,即神经网络每一层的W控制着如何变换空间。训练神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。
需要注意的是,在本申请实施例中,基于机器学习(如,联邦学习、迁移学习、联邦迁移学习等)任务所采用的学习模型(也可称为学习器、模型等)或其他类型的机器模型,本质都是神经网络。
(2)损失函数(loss function)
在训练神经网络的过程中,因为希望神经网络的输出尽可能的接近真正想要预测的值,可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重矩阵(当然,在第一次更新之前通常会有初始化的过程,即为神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重矩阵让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数或目标函数(objectivefunction),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么神经网络的训练就变成了尽可能缩小这个loss的过程。例如,在分类任务中,损失函数用于表征预测类别与真实类别之间的差距,交叉熵损失函数(cross entropy loss)则是分类任务中常用的损失函数。
在神经网络的训练过程中,可以采用误差反向传播(back propagation,BP)算法修正初始的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经网络模型中的参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。
(3)特征、标签和样本
特征是指输入变量,即简单线性回归中的x变量,简单的机器学习任务可能会使用单个特征,而比较复杂的机器学习任务可能会使用数百万个特征。
标签是简单线性回归中的y变量,标签可以是小麦未来的价格、图片中显示的动/植物品种、音频剪辑的含义或任何事物。在本申请的一些实施例中,标签可以是指图片的分类类别。比如说有一张猫的图片,人们都知道它是只猫,但是计算设备不知道它是只猫,怎么办呢?那么给这张图片打上一个标签,该标签就用于向计算设备指示该图片蕴含的信息是“猫”,然后计算设备就知道它是只猫,计算设备根据这个标签对所有的猫进行学习就能通过这一只猫认识所有的猫。因此,给数据打标签,就是告诉计算设备,输入变量的多个特征描述的是什么(即y),y可以称之为label,也可以称之为target(即目标值)。
样本是指数据的特定实例,一个样本x代表的是一个对象,样本x通常用一个特征向量x=(x1,x2,…,xd)∈Rd表示,其中,d代表样本x的维度(即特征个数),样本分为有标签样本和无标签样本,有标签样本同时包含特征和标签,无标签样本包含特征但不包含标签,机器学习的任务往往就是学习输入的d维训练样本集(可简称为训练集)中潜在的模式。
(4)模型
在本申请实施例中,基于机器学习(如,联邦学习、迁移学习、联邦迁移学习等)任务所采用的学习模型,本质都是神经网络。模型定义了特征与标签之间的关系,模型的应用一般包括训练和推理两个阶段,训练阶段用于根据训练集对模型进行训练,以得到训练后的模型的模型参数取值(与上述所述的神经网络每层的权重矩阵类似),在本申请实施例中,第一数据集、第二数据集等数据集就是作为训练集对本申请所述涉及到的各个模型进行训练;推理阶段用于将训练后的模型对真实的无标签实例进行标签预测,而预测准确率是衡量一个模型训练的好坏的重要指标之一。
(5)特征提取器、分类器和鉴别器
在深度学习领域中,由于神经网络是由神经单元组成的,一个神经网络一般包含多个神经网络层,因此,如果根据神经网络层的具体功能对神经网络进行划分,可以得到各种具有特定功能的神经网络模块,这里介绍本申请实施例涉及到的几种神经网络模块。
特征提取器:神经网络从输入层到某一中间层的部分,用于对输入数据(如,样本)进行特征提取,具体为通过一些运算(如,卷积操作)将原始的输入数据(如,图片、文本等)提取出一些重要特征。在本申请实施例中,第一模型可以是特征提取器。
分类器:根据待执行任务的不同,在特征提取器之后的部分神经网络层可具备不同的功能,这部分神经网络层可称为子任务模型,用于对提取出的特征进行分类、回归或其他下游子任务等,例如,下游子任务可以是目标检测任务、分类任务、语音识别任务、语义分割任务等。下面以子任务模型用在分类任务中为例进行说明:当该子任务模型用在分类任务中时,就用于对特征提取器提取出的特征进行分类,以得到预测的标签。在本申请实施例中,第二模型可以是子任务模型,用于基于第一模型提取出的特征执行目标任务,只要是神经网络可执行的任务,都可作为本申请第二模型能够执行的目标任务。例如,第二模型可以是分类器。为便于阐述,后续实施例中均以第二模型为分类器为例进行示意。
鉴别器:结构上为接在特征提取器之后的部分神经网络层,用于对特征提取器提取出的特征所属的域进行鉴别,可以理解成是域分类器(一种特殊的分类器),只不过此时不是对输入数据进行分类,而是对输入数据的源域进行区分。在本申请实施例中,第三模型可以是鉴别器。
(6)对抗训练(adversarial training)
对抗训练是增强神经网络鲁棒性的重要方式,在本申请实施例中,若第一模型为特征提取器,第三模型为鉴别器,这种情况下的对抗训练指的是特征提取器与鉴别器之间的对抗训练,具体地,一方面,需训练鉴别器尽量能区分出某一提取出的特征是来自于目标域还是源域;另一方面,需训练特征提取器提取出足够迷惑鉴别器的特征,在两者相互对抗的过程中,双方都得到了有效训练。
(7)联邦学习(federated learning,FL)
联邦学习是一种用于保护用户隐私的机器学习方法。在机器学习领域的一些实际应用场景中,由于单个设备上的数据特征不充分或者样本数量较少等限制,很难单独训练出较好的机器学习模型,因此需要融合多个设备的数据在一起进行训练,从而得到一个质量较好的模型;在融合多个设备上的数据进行训练的同时还需要保证用户的数据隐私,即数据不能传送出用户的设备,只能在本地用于进行模型训练,联邦学习就是基于这一要求应运而生,其能有效帮助多个计算节点在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。
(8)迁移学习(transfer learning,TL)
迁移学习是一种机器学习方法,就是把为任务A开发的模型作为初始点,重新使用在为任务B开发模型的过程中。也就是说,把基于已有任务(如所述的任务A)训练好的模型学习到的知识迁移到新的任务(如所述的任务B)中来帮助该模型进行再训练,通过迁移学习将已经学到的知识(蕴含在模型参数中)通过某种方式来分享给新任务从而加快并优化模型的学习效率,这样模型不用从零开始学习。例如,在目标检测任务中,使用在ImageNet数据集上训练好的模型作为新任务的模型可以明显的提升训练效率。
(9)源域和目标域
在迁移学习中,源域是指知识迁出的一方,目标域是指知识迁入的一方。
(10)联邦迁移学习(federated transfer learning,FTL)
联邦迁移学习是一种结合了联邦学习和迁移学习的机器学习方法,即在不共享隐私数据的情况下,对模型(或神经网络)进行多任务协同训练。
(11)独立同分布(independently identically distribution,IID)与非独立同分布(not independently identically distribution,Non-IID)
在概率统计理论中,独立同分布是指一组随机变量中每个变量的概率分布都相同,且这些随机变量互相独立。一组随机变量独立同分布并不意味着它们的样本空间中每个事件发生概率都相同。例如,投掷非均匀骰子得到的结果序列是独立同分布的,但掷出每个面朝上的概率并不相同。
在机器学习领域中,独立同分布是指输入空间X的所有样本服从一个隐含未知的分布,训练数据所有样本都是独立地从这个分布上采样而得;而非独立同分布是指训练数据不是从同一个分布中采样的,或者训练数据之间不是独立进行采样的。
(12)域对齐
在机器学习领域的一些实际应用场景中,源域上的数据一般为带标签数据,目标域上的数据一般为无/少标签的数据。由于目标域已有数据缺少标签,想要直接完成相关的机器学习任务非常困难,常常需要源域数据的辅助来提高模型性能从而完成相关任务。由于不同域之间的数据常常是非独立同分布的,这样的分布差异使得直接迁移知识的效果较差,因此常常需要采用一定的方法对源域和目标域进行域对齐,一般来说,域对齐是对齐不同域之间的数据分布,从而提升迁移学习的迁移效果,在本申请实施例中,域对齐则是指对齐从不同域提取的数据特征的分布。
下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
首先对人工智能系统总体工作流程进行描述,请参见图1,图1示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(CPU、NPU、GPU、ASIC、FPGA等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶、智慧城市等。
本申请实施例可以应用在机器学习中各种模型的训练方法优化上,而通过本申请的基于联邦迁移学习的模型训练方法训练得到的模型具体可以应用于人工智能领域中的各个细分领域中,如,计算机视觉领域中的图像处理领域,具体的,结合图1来讲,本申请实施例中基础设施获取的数据可以是本申请实施例各个计算节点上的本地数据集,如,第一计算节点上的第一数据集、第二计算节点上的第二数据集等,各数据集中的数据具体可以是视频数据(如,可由监控系统拍摄得到)、图像数据(如,可由移动终端的摄像头拍摄得到)、文本数据(如,通过终端设备由用户输入的文本信息)等,具体此处对各数据集内的数据类型不做限定,其中,第一计算节点作为源域设备,其上的第一数据集为有标签数据集,第二计算节点作为目标域设备,其上的第二数据集则为无标签数据或具有少量标签的数据。
接下来对本申请实施例提供的基于联邦迁移学习的模型训练方法的基本原理进行介绍,具体请参阅图2,图2为本申请实施例提供的联邦迁移学习系统的一个示意图,在一种实现方式中,该系统可以包括n个第一计算节点(可记为S1,S2,…,Sn)和一个第二计算节点(可记为T),其中,n为大于等于1的整数,即第一计算节点可以是一个,也可以是多个,此处不做限定。在本申请实施例中,第一计算节点作为源域设备,第二计算节点作为目标域设备,并且,每个计算节点上都各自具有本地数据集,每个第一计算节点上的本地数据集可称为第一数据集,第二计算节点上的本地数据集可称为第二数据集,每个第一数据集均为有标签数据集,第二数据集则为无标签或少标签的数据集。此外,每个计算节点上的数据集也都有自己的数据分布D,如图2中的各个第一数据集的数据分布为D1,D2,…,Dn,第二数据集的数据分布为DT,从图2中的坐标图中可以看出,各个计算节点之间的数据分布存在很大差异,并且,各个本地的数据集本身不能传出本计算节点,如图2中的
Figure GDA0003621377350000241
符号表示的就是指本地数据集不能出其所在的计算节点。
此外,每个计算节点上具备同样的初始模型结构,不同域之间(包括所有源域设备和目标域设备)通过对抗训练的方式实现域对齐,对抗训练使得各个计算节点上的初始模型的模型参数值可能不同,此时每个第一计算节点上的模型的模型参数值可分别记为M1,M2,…,Mn,第二计算节点上的模型参数值可记为MT,具体可如图2所示。然后通过一个新部署的第三计算节点(如,服务器)将各个域上的对应模型(如,特征提取器、鉴别器、分类器等)的模型参数值汇聚为M(汇聚的方式有很多种,例如可以是做模型参数层面的简单平均,也可以是引入一些加权平均或者其他更复杂的汇聚方式),之后再将所述汇聚好的模型参数值M赋值给所有计算节点上的模型的模型参数,以上的整个过程称为一轮训练迭代。之后,通过多轮迭代,直到达到预设的迭代轮次,或者其他设定的训练停止条件。具体地,可以包括如下步骤:步骤1、在各个第一计算节点上通过自身有标签的第一数据集对模型(包括第一模型和第二模型)做有监督训练,其中,第一模型可以是特征提取器,第二模型可以是子任务模型(如,分类器);步骤2、在各个第一计算节点保持各自第一模型的模型参数值和第二模型的模型参数值不变的情况下,利用各自的本地数据集训练各自的第三模型,第三模型可以是鉴别器,此外,第二计算节点也保持自身第一模型的模型参数值(由各个第一计算节点的第一模型的模型参数值聚合得到)不变的情况下,利用第二计算节点上的本地数据集训练自身的第三模型;步骤3、将每个第一计算节点上训练后的第三模型的模型参数值与第二计算节点上训练后的第三模型的模型参数值进行聚合,形成第三模型的聚合参数值;步骤4、将得到的第三模型的聚合参数值赋值给各个第一计算节点各自的第三模型的模型参数,并由各个第一计算节点再次利用各自的本地数据集对各自的第一模型和第二模型进行训练;步骤5、不断迭代步骤2-4,直至达到迭代终止条件。
需要说明的是,在上述实施例中,是通过一个新部署的一个第三计算节点(如,服务器)将各个域上的对应模型(如,特征提取器、鉴别器、分类器等)的模型参数值进行汇聚,在本申请的另一些实施方式中,还可以由作为目标域设备的第二计算节点实现将各个域上的对应模型的模型参数值进行汇聚的功能,在这种情况下,联邦迁移学习系统可以不包括第三计算节点,具体如图3所示,图3为本申请实施例提供的联邦迁移学习系统的另一个示意图,在图3中,第三计算节点的对模型参数值进行汇聚的功能由作为目标域设备的第二计算节点承载。需要注意的是,在本申请实施例中,第二计算节点作为目标域设备,一般为一个,若有多个第二计算节点,则按照类似的方式依次对每个第二计算节点上的模型进行训练,此处不予赘述。
还需要说明的是,在本申请的另一些实施方式中,还可以是由作为源域设备的第一计算节点实现将各个域上的对应模型的模型参数值进行汇聚的功能,具体的汇聚过程与上述第二计算节点或第三计算节点类似,此处不予赘述。需要注意的是,在本申请实施例中,若有多个第一计算节点,则可以是任意选择一个第一计算节点作为模型参数值汇聚的执行主体,也可以是用户根据实际需求选择的符合条件的第一计算节点作为模型参数值汇聚的执行主体,选择方式可以有多种,具体此处不做限定。
在本申请实施例中,由于第一计算节点作为源域设备,可以是一个,也可以是多个,当第一计算节点的数量不同,本申请实施例提供的基于联邦迁移学习的模型训练方法也略有不同,此外,通过部署新的第三计算节点将模型参数值进行汇聚以进行模型的训练,与将第三计算节点的汇聚功能承载在第二计算节点上进行模型训练在方法流程上也略有不同,下面从第一计算节点分别为一个或多个、是否部署有新的第三计算节点的角度,对本申请实施例提供的基于联邦迁移学习的模型训练方法进行介绍。
需要说明的是,在本申请下述实施例中,第一计算节点上的本地数据集为第一数据集,第二计算节点上的本地数据集为第二数据集,各个计算节点均是采用各自的本地数据集对各个模型进行训练,以下不再赘述,此外,在本申请实施例中,s代表源域,t代表目标域,第一模型至第三模型的模型参数分别用G、T、D表示。记来自于n个第一计算节点各自第一数据集的数据和标签,以及对应的数据分布和标签分布为下述式(1)所示:
Figure GDA0003621377350000251
其中,
Figure GDA0003621377350000252
为第i个第一计算节点上的数据,/>
Figure GDA0003621377350000253
为数据/>
Figure GDA0003621377350000254
对应的标签,/>
Figure GDA0003621377350000255
为第i个第一计算节点上第一数据集的数据分布,/>
Figure GDA0003621377350000256
为第i个第一计算节点上第一数据集的标签分布。
此外,记来自于第二计算节点上第二数据集的数据以及对应的数据分布为下述式(2)所示:
Figure GDA0003621377350000257
其中,xt为第二计算节点上的数据,
Figure GDA0003621377350000258
为第二计算节点上第二数据集的数据分布。
并且,记第一模型、第二模型、第三模型分别为:g(·)、c(·)、d(·)。在此基础上,记来自于第i个第一计算节点的第一模型、第二模型、第三模型分别为:
Figure GDA0003621377350000259
记来自于第二计算节点的第一模型、第二模型、第三模型分别为:gt(·)、ct(·)、dt(·)。
一、第一计算节点为一个,且部署有新的第三计算节点
具体请参阅图4,图4为本申请实施例提供的基于联邦迁移学习的模型训练方法的一种流程示意图,该实施例针对的场景是利用单个源域设备(即单个第一计算节点)的本地数据和标签来辅助一个本地数据无标签或少标签的目标域设备(即第二计算节点)提升模型性能。具体地,该方法可以包括如下步骤:
401、第一计算节点在本地训练第一模型和第二模型,并将训练得到的第一模型的模型参数值Gs和第二模型的模型参数值Ts向第三计算节点发送。
首先,第一计算节点采用自身的第一数据集对第一计算节点上的第一模型和第一计算节点上的第二模型做有监督训练,从而得到第一模型的模型参数值Gs(Gs可称为第一模型参数值)和第二模型的模型参数值Ts(Ts可称为第二模型参数值),并将得到的模型参数值Gs和模型参数值Ts向第三计算节点发送。
在本申请实施例中,该第一模型用于对输入数据进行特征提取,因此也可将第一模型称为特征提取器,该第二模型用于基于第一模型提取出的特征执行目标任务(如,目标检测任务、语音识别任务、语义分割任务等),因此可将第二模型称为子任务模型(如,分类任务中的分类器)。具体来说,第一计算节点先将第一数据集中的训练数据输入第一模型,由该第一模型从训练数据中提取出相应特征,然后第一模型将提取出的特征传递至第二模型以执行目标任务,例如,当第二模型为分类任务中的分类器时,提取的特征将会输入分类器进行预测,以得到预测的类别标签,再通过损失函数可刻画预测的类别标签与真实标签之间的差异。在分类任务中,一种典型的损失函数为交叉熵损失函数,可以表示为下述式(3)所示:
Figure GDA0003621377350000261
其中,
Figure GDA0003621377350000262
表示对所有训练数据取平均,qk表示标签y的编码的第k位,δk是分类器输出结果在softmax之后的第k个元素,因此在本申请实施例中,第一计算节点为一个,因此i=1。
需要注意的是,式(3)仅为本申请实施例中一种损失函数的示意,可根据实际应用需求自行选择合适的损失函数,此处不做限定。
需要说明的是,在本申请实施例中,第一模型和第二模型可以属于同一个神经网络的不同部分,例如,在一种应用场景中,第一模型可以作为特征提取器用于对输入数据进行特征提取,第二模型可以作为标签分类器用于对第一模型提取的特征进行标签识别,在这种情况下,第一模型和第二模型可以一起进行训练,以得到的第一模型的模型参数值和第二模型的模型参数值就可以是一起固定、一起训练、一起上传;在另一些应用场景中,第一模型和第二模型也可以是分开进行训练,在这种情况下,以得到的第一模型的模型参数值和第二模型的模型参数值就不是必须一起固定、一起训练、一起上传。也就是说,在本申请的一些实施方式中,第一计算节点也可以只是将训练得到的第一模型的模型参数值Gs向第三计算节点发送。在整个训练达到迭代终止条件的情况下,第一计算节点再将最后一次更新得到的第二模型的模型参数值Ts向第三计算节点发送。
402、第三计算节点将Gs向第二计算节点发送,Gs=Gt
第三计算节点接收由第一计算节点发送的模型参数值Gs,会将该模型参数值Gs向第二计算节点发送,Gs=Gt。在本申请实施例中,第二计算节点上的第一模型可以用该Gt做初始化。
403、第一计算节点在保持Gs和Ts不变(可称为固定Gs和Ts)的情况下,在本地训练第三模型,以得到该第三模型的模型参数值Ds,并将Ds向第三计算节点发送。
第一计算节点在本地训练完第一计算节点上的第一模型和第二模型后,会在保持Gs和Ts不变的情况下,在本地训练第一计算节点上的第三模型,从而得到第一计算节点上第三模型的模型参数值Ds(Ds可称为第三模型参数值),并将Ds向第三计算节点发送。在本申请实施例中,第三模型用于对第一模型提取出的特征所属的域进行鉴别,可以理解成是域分类器(一种特殊的分类器),只不过此时不是对输入数据进行分类,而是对输入数据的源域进行区分。
在本申请实施例中,第三模型的目标就是尽量区分出传入的特征是来自于源域还是来自于目标域。在本申请实施例中,不妨假定源域的域标签为0,目标域的域标签为1,所以第一计算节点上的第三模型要尽量的输出预测标签0,一种典型的损失函数可以表示为下述式(4)所示:
Figure GDA0003621377350000271
相应符号的含义与上述同理,此处不予赘述。并且同样需要注意的是,式(4)仅为本申请实施例中一种损失函数的示意,可根据实际应用需求自行选择合适的损失函数,此处不做限定。
404、第二计算节点在第二计算节点上第一模型的模型参数保持Gt不变(可称为固定Gt)的情况下,在本地训练第三模型,以得到该第三模型的模型参数值Dt,并将Dt向第三计算节点发送。
第二计算节点接收到由第三计算节点发送的模型参数值Gs(即Gt)之后,也会在第二计算节点上第一模型的模型参数保持Gt不变的情况下,在本地训练第二计算节点上的第三模型,从而得到第二计算节点上第三模型的模型参数值Dt(Dt可称为第四模型参数值),并将模型参数值Dt向第三计算节点发送。
类似地,在本申请实施例中,第三模型的目标是尽量区分出传入的特征是来自于源域还是来自于目标域。当假定源域的域标签为0,目标域的域标签为1,那么第二计算节点上的第三模型要尽量的输出预测标签1,一种典型的损失函数可以表示为下述式(5)所示:
Figure GDA0003621377350000272
相应符号的含义与上述同理,此处不予赘述。并且同样需要注意的是,式(5)仅为本申请实施例中一种损失函数的示意,可根据实际应用需求自行选择合适的损失函数,此处不做限定。
需要说明的是,在本申请实施例中,对步骤403与步骤404的执行顺序不做限定,可以先执行步骤403再执行步骤404,也可以先执行步骤404再执行步骤403,还可以是步骤403和步骤404同时执行,具体此处不做限定。
405、第三计算节点将Ds和Dt进行聚合,以得到第一聚合参数值D-all。
第三计算节点分别接收到第一计算节点发送的Ds和第二计算节点发送的Dt后,将对Ds和Dt进行聚合,以得到第一聚合参数值D-all。这样当第三模型的模型参数被赋值为第一聚合参数值D-all时,该第三模型就同时具备了识别第一数据集上的数据特征和第二数据集上的数据特征的能力。
需要说明的是,在本申请实施例中,将Ds和Dt进行聚合的方式有多种,例如可以是做模型参数层面的简单平均,例如,D-all=(Ds+Dt)/2,也可以是引入一些加权平均,例如,D-all=x*Ds+y*Dt,其中,x和y可根据需求自行设置,且x+y=1,或者其他更复杂的聚合方式,具体此处不做限定。由于本申请是对模型的模型参数值进行聚合,并且传递的也仅是模型参数值或聚合参数值,并没有涉及到原始数据或者数据特征的传输,所以能够保护数据隐私。
406、第三计算节点将D-all分别向第一计算节点和第二计算节点发送,使得第一计算节点得到Ds’、第二计算节点得到Dt’,D-all=Ds’=Dt’。
第三计算节点聚合得到第一聚合参数值D-all后,会将第一聚合参数值D-all分别向第一计算节点和第二计算节点发送,使得第一计算节点得到Ds’、第二计算节点得到Dt’,D-all=Ds’=Dt’。
407、第一计算节点将Ds更新为Ds’,并在保持第一计算节点上第三模型的模型参数值不变(即固定Ds’)的情况下,在本地再训练第一模型和第二模型,并将训练得到的第一模型的模型参数值Gs’和第二模型的模型参数值Ts’向第三计算节点发送。
第一计算节点接收到由第三计算节点发送的第一聚合参数值D-all(即Ds’)后,将Ds更新为Ds’(即将第三模型参数值更新为第一聚合参数值),并在保持第一计算节点上第三模型的模型参数值不变(即固定Ds’)的情况下,在本地再训练第一模型和第二模型,并将训练得到的第一模型的模型参数值Gs’(Gs’可称为第五模型参数值)和第二模型的模型参数值Ts’(Ts’可称为第六模型参数值)向第三计算节点发送。
在本申请实施例中,第一计算节点固定Ds’并在本地再训练第一模型和第二模型的目的是让第一模型能够提取到足够迷惑第三模型的特征,也就是尽量对齐源域和目标域的特征,在这一步中,一种典型的损失函数可以表示为下述式(6)所示:
Figure GDA0003621377350000281
相应符号的含义与上述同理,此处不予赘述。并且同样需要注意的是,式(6)仅为本申请实施例中一种损失函数的示意,可根据实际应用需求自行选择合适的损失函数,此处不做限定。
这里还需要说明的是,式(6)中有个“1-”,这个部分是把域标签反置,也就是0变成1,1变成0。这也就是为了迷惑第三模型,使其将源域的预测成目标域的,且将目标域的预测成源域的。
408、将Gs’和Ts’分别作为新的Gs和Ts,重复执行上述步骤402-407,直至达到迭代终止条件。
接下来,第一计算节点会进一步将Gs’和Ts’分别作为新的Gs和Ts(即将第五模型参数值和第六模型参数值作为新的第一模型参数值和新的第二模型参数值),重复上述步骤402-407,直至达到迭代终止条件,该迭代终止条件可以是达到预设的训练轮次,也可以是使得损失函数收敛,还可以是其他设定的训练终止条件,具体此处不做限定。这里需要说明的是,在本申请实施例中,不限定判断迭代终止条件的执行主体是哪个计算节点,例如,可以是第一计算节点,也可以是第三计算节点。作为一个示例,假设迭代终止条件为达到预设的训练轮次(如,100次),那么判断迭代终止条件的执行主体可以是第三计算节点,也可以是第一计算节点,如,当第三计算节点第100次(如,可由部署于第三计算节点上的计数器计数得到)接收到由第一计算节点上传的Gs和Ts,则第三计算节点确定此时达到迭代终止条件,又如,当第一计算节点第100次(类似的,可由部署于第一计算节点上的计数器计数得到)在本地完成对第一模型和第二模型的训练,则第一计算节点确定此时达到迭代终止条件。这里需要注意的是,由某个计算节点(如,第一计算节点)确定了当前训练轮次为最后一个训练轮次后,该计算节点会进一步将判断结果(即确定达到迭代终止条件)发送给其他计算节点(如,第三计算节点)。在本申请下述其他实施例中,如何判断是否达到迭代终止条件的方式与此类似,具体下述不再赘述。
本申请实施例中,步骤402-407就是对抗训练的过程,不断重复这个对抗训练的过程直到达到迭代终止条件,在最后源域和目标域的特征就基本被对齐。
409、第三计算节点将最后一次更新得到的Ts(可称为Ts-new)和Gs(可称为Gs-new)向第二计算节点发送,Ts-new=Tt-new,Gs-new=Gt-new
需要说明的是,在本申请的一些实施方式中,在达到迭代终止条件后,第三计算节点在步骤407中会接收到第一计算节点发送的最后一次更新得到的模型参数值Gs(可称为Gs-new)和最后一次更新得到的模型参数值Ts(可称为Ts-new),因此,第三计算节点会将Gs-new和Ts-new向第二计算节点发送,使得第二计算节点得到Gt-new和Tt-new,Ts-new=Tt-new,Gs-new=Gt-new
这里需要注意的是,在本申请的一些实施方式中,假设是由第一计算节点基于模型(如,第一模型或第二模型)的损失函数的取值情况来判断是否达到迭代终止条件,并假设在当前训练轮次(例如,第60次)的步骤407中,第一计算节点在本地训练第一模型和第二模型时对应损失函数的取值比上一轮次(即第59次)的取值大,说明在上一个轮次的训练过程中,模型的损失函数已实现收敛,在这种情况下,最后一次更新得到的模型参数值Gs和模型参数值Ts不是当前训练轮次得到的模型参数值Gs和模型参数值Ts,而是将上一个训练轮次得到的模型参数值Gs和模型参数值Ts作为最后一次更新得到的Gs-new和Ts-new,这种情况下,第二计算节点已经在上一个训练轮次的步骤402接收到了由第三计算节点向第二计算节点发送的最后一次更新得到的Gs-new,Gs-new=Gt-new,由于在步骤402中,只是将最后一次更新得到的Gs-new向第二计算节点发送了,因此在步骤409中,第三计算节点就只需将Ts-new向第二计算节点发送即可。需要注意的是,在本申请下述其他实施例中,若是由第一计算节点基于模型(如,第一模型或第二模型)的损失函数的取值情况来判断是否达到迭代终止条件的情况都与此执行类似的操作,具体下述不再赘述。
410、第二计算节点使用Gt-new和Ts-new执行目标任务。
第二计算节点在得到Gt-new和Tt-new之后,会将该Gt-new和Tt-new分别作为第二计算节点上第一模型和第二模型的最终模型参数值(因为源域和目标域的特征已经对齐了,这样做才有意义),并根据第二计算节点上的该第一模型和该第二模型执行目标任务,如,目标任务可以是目标检测任务、分类任务、语音识别任务、语义分割任务等,只要是神经网络可执行的任务,都可作为本申请第二计算节点能够执行的目标任务。
需要说明的是,在本申请的一些实施方式中,也可以不需要步骤409和步骤410。
由本申请上述实施例可知,一方面,本申请上述实施例通过步骤402-407的对抗训练过程实现了域对齐,从而缩小了从源域数据上提取的特征和从目标域数据上提取的特征的分布差异,即缩小了从第一数据集提取的数据特征与从第二数据集提取的数据数据之间的分布差异,相比于传统的不做域对齐的联邦学习而言,能够更好地利用第一计算节点上第一数据集辅助第二计算节点上的第二数据集对模型进行训练,训练得到的模型性能会更好;第二方面,由于本申请是对模型的模型参数值进行聚合,并且传递的也仅是模型参数值或聚合参数值,并没有涉及到原始数据或者数据特征的传输,这与传统的迁移学习以及现有的基于特征传输的联邦迁移学习有着本质的区别,因此能够起到保护隐私的作用。
综上所述,在兼顾域对齐和用户数据隐私的情况下,本申请实施例提供的方法实现了对模型的协同训练,提高了模型的性能。
需要说明的是,在本申请上述图4对应的实施例中,对抗训练过程仅是在第一计算节点上进行,实际上,在本申请的一些实施方式中,为了更好的提升模型性能,也可以在第二计算节点上进行对抗训练过程,因此,本申请实施例还提供了一种基于联邦迁移学习的模型训练方法,具体请参阅图5,图5为本申请实施例提供的基于联邦迁移学习的模型训练方法的另一流程示意图,图5对应的实施例与上述图4对应的实施例的区别在于,图5对应的实施例在第二计算节点部分也加入了对抗训练部分。具体地,该方法可以包括如下步骤:
501、第一计算节点在本地训练第一模型和第二模型,并将训练得到的第一模型的模型参数值Gs和第二模型的模型参数值Ts向第三计算节点发送。
502、第三计算节点将Gs向第二计算节点发送,Gs=Gt
503、第一计算节点在保持Gs和Ts不变(可称为固定Gs和Ts)的情况下,在本地训练第三模型,以得到该第三模型的模型参数值Ds,并将Ds向第三计算节点发送。
504、第二计算节点在第二计算节点上第一模型的模型参数保持Gt不变(可称为固定Gt)的情况下,在本地训练第三模型,以得到该第三模型的模型参数值Dt,并将Dt向第三计算节点发送。
505、第三计算节点将Ds和Dt进行聚合,以得到第一聚合参数值D-all。
506、第三计算节点将D-all分别向第一计算节点和第二计算节点发送,使得第一计算节点得到Ds’、第二计算节点得到Dt’,D-all=Ds’=Dt’。
507、第一计算节点将Ds更新为Ds’,并在保持第一计算节点上第三模型的模型参数值不变(即固定Ds’)的情况下,在本地再训练第一模型和第二模型,并将训练得到的第一模型的模型参数值Gs’和第二模型的模型参数值Ts’向第三计算节点发送。
步骤501-507与上述步骤401-407类似,具体请参阅上述步骤401-407,此处不予赘述。
508、第二计算节点将Dt更新为Dt’,并在保持第二计算节点上第三模型的模型参数值不变(即固定Dt’)的情况下,在本地训练第一模型和第二模型,并将训练得到的第一模型的模型参数值Gt’和第二模型的模型参数值Tt’向第三计算节点发送。
第二计算节点接收到由第三计算节点发送的第一聚合参数值D-all(即Ds’)后,将第二计算节点上的第三模型的模型参数值Dt更新为Ds’(即将第四模型参数值更新为第一聚合参数值),并在保持第二计算节点上第三模型的模型参数值不变(即固定Ds’)的情况下,在本地训练第一模型和第二模型,并将训练得到的第一模型的模型参数值Gt’(Gt’可称为第七模型参数值)和第二模型的模型参数值Tt’(Tt’可称为第八模型参数值)向第三计算节点发送。
类似地,在本申请实施例中,第二计算节点固定Dt’并在本地训练第一模型和第二模型的目的也是为了让第一模型能够提取到足够迷惑第三模型的特征,也就是尽量对齐源域和目标域的特征,在这一步中,一种典型的损失函数可以表示为下述式(7)所示:
Figure GDA0003621377350000311
相应符号的含义与上述同理,此处不予赘述。并且同样需要注意的是,式(7)仅为本申请实施例中一种损失函数的示意,可根据实际应用需求自行选择合适的损失函数,此处不做限定。
这里还需要说明的是,式(7)中有个“1-”,这个部分是把域标签反置,也就是0变成1,1变成0。这也就是为了迷惑第三模型,使其将源域的预测成目标域的,且将目标域的预测成源域的。
509、第三计算节点将Gs’和Gt’进行聚合,以得到第二聚合参数值G-all。
这时,第三计算节点从第一计算节点接收到了模型参数值Gs’和模型参数值Ts’,并且从第二计算节点接收到了模型参数值Gt’和模型参数值Tt’,接下来,第三计算节点会进一步将Gs’和Gt’进行聚合,以得到第二聚合参数值G-all。
510、将G-all和Ts’分别作为新的Gs和Ts,重复执行上述步骤502-509,直至达到迭代终止条件。
之后,第一计算节点会进一步将G-all和Ts’分别作为新的Gs和Ts,重复上述步骤502-509,直至达到迭代终止条件,该迭代终止条件可以是达到预设的训练轮次,也可以是使得损失函数收敛,还可以是其他设定的训练终止条件,具体此处不做限定。
511、第三计算节点将最后一次更新得到的Ts(可称为Ts-new)与最后一次更新得到的Tt’(可称为Tt-new)进行聚合,以得到第四聚合参数值T-all。
需要说明的是,在本申请的一些实施方式中,在达到迭代终止条件后,第三计算节点在步骤507中会接收到第一计算节点发送的最后一次更新得到的模型参数值Gs(可称为Gs-new)和模型参数值Ts(可称为Ts-new),并且第三计算节点还会在步骤508中接收到第二计算节点发送的最后一次更新得到的模型参数值Gt’(可称为Gt-new)和模型参数值Tt’(可称为Tt-new),因此第三计算节点会将Ts-new与Tt-new进行聚合,以得到第四聚合参数值T-all。
512、第三计算节点将第四聚合参数值T-all和最后一次更新得到的G-all向第二计算节点发送。
第三计算节点进一步将第四聚合参数值T-all和最后一次更新得到的G-all向第二计算节点发送。
513、第二计算节点使用最后一次更新得到的G-all和T-all执行目标任务。
第二计算节点在得到最后一次更新的G-all和T-all之后,会将该G-all和T-all分别作为第二计算节点上第一模型和第二模型的最终模型参数值(因为源域和目标域的特征已经对齐了,这样做才有意义),并根据第二计算节点上的该第一模型和该第二模型执行目标任务,如,目标任务可以是目标检测任务、分类任务、语音识别任务、语义分割任务等,只要是神经网络可执行的任务,都可作为本申请第二计算节点能够执行的目标任务。
需要说明的是,在本申请的一些实施方式中,也可以不需要步骤511至步骤513。
在本申请上述实施方式中,在作为目标域设备的第二计算节点上也引入了对抗训练过程,这在一些特定的任务场景下能够训练出性能更好的模型。
二、第一计算节点为多个,且部署有新的第三计算节点
上述图4、图5对应的实施例阐述的都是第一计算节点为一个,且部署有新的第三计算节点的情况,在本申请实施例中,将继续介绍第一计算节点为多个,且部署有新的第三计算节点的情况下基于联邦迁移学习的模型训练方法,具体请参阅图6,图6为本申请实施例提供的基于联邦迁移学习的模型训练方法的另一流程示意图,该实施例针对的场景是利用多个源域设备(即多个第一计算节点)的本地数据(每个第一计算节点上都有各自的第一数据集)和标签来辅助一个本地数据无标签或少标签的目标域设备(即第二计算节点)提升模型性能。在本申请实施例中,假定第一计算节点的数量为n,n≥2。具体地,该方法可以包括如下步骤:
601、每个第一计算节点各自在本地训练第一模型和第二模型,并将各自训练得到的第一模型的模型参数值Gi和第二模型的模型参数值Ti向第三计算节点发送,
Figure GDA0003621377350000321
每个第一计算节点在本地训练第一模型和第二模型的过程与上述步骤801类似,具体请参阅上述步骤801,此处不予赘述。
602、第三计算节点对所有Gi(即G1、……、Gn)进行聚合,以得到第二聚合参数值G-all。
在本申请实施例中,由于第一计算节点的数量为n,因此第三计算节点会接收到每个第一计算节点发送的G1、……、Gn,并接收到每个第一计算节点发送的T1、……、Tn,并对G1、……、Gn进行聚合,以得到第二聚合参数值G-all。
需要说明的是,在本申请实施例中,将G1、……、Gn进行聚合的方式有多种,例如可以是做模型参数层面的简单平均,具体可以如下述式(8)所示:
Figure GDA0003621377350000322
其中,θ用于表征第一模型的模型参数,θG为第二聚合参数值G-all,
Figure GDA0003621377350000323
为第一计算节点i上第一模型的模型参数值Gi
此外,将G1、……、Gn进行聚合的方式也可以是进行加权平均,或者其他更复杂的聚合方式,具体此处不做限定。由于本申请是对模型的模型参数值进行聚合,并且传递的也仅是模型参数值或聚合参数值,并没有涉及到原始数据或者数据特征的传输,所以能够保护数据隐私。
603、第三计算节点将G-all向第二计算节点发送,G-all=Gt
第三计算节点将聚合得到的G-all向第二计算节点发送,G-all=Gt。在本申请实施例中,第二计算节点上的第一模型可以用该G-all做初始化。
604、每个第一计算节点在保持各自的Gi和Ti不变(可称为固定Gi和Ti)的情况下,在本地各自训练第三模型,以得到该第三模型的模型参数值Di,并各自将Di向第三计算节点发送。
每个第一计算节点在固定Gi和Ti的情况下,在本地训练第三模型的过程与上述步骤403类似,具体请参阅上述步骤403,此处不予赘述。
605、第二计算节点在第二计算节点上第一模型的模型参数保持Gt不变(可称为固定Gt)的情况下,在本地训练第三模型,以得到该第三模型的模型参数值Dt,并将Dt向第三计算节点发送。
步骤605与上述步骤404类似,具体请参阅上述步骤404,此处不予赘述。
这里需要注意的是,在本申请实施例中,由于第一计算节点为n个,因此,在各个第一计算节点对各自的第三模型进行训练的过程中,既可以将所有第一计算节点的域标签定为0,也可以对它们赋予不同的域标签,以期第三模型还能够区分出输入数据的特征来源于哪个第一计算节点。
需要说明的是,在本申请实施例中,对步骤604与步骤605的执行顺序不做限定,可以先执行步骤604再执行步骤605,也可以先执行步骤605再执行步骤604,还可以是步骤604和步骤605同时执行,具体此处不做限定。
606、第三计算节点将所有Di(即D1、……、Dn)和Dt进行聚合,以得到第一聚合参数值D-all。
第三计算节点分别接收到每个第一计算节点发送的D1、……、Dn,和第二计算节点发送的Dt后,将对所有Di和Dt进行聚合,以得到第一聚合参数值D-all。这样当第三模型的模型参数被赋值为第一聚合参数值D-all时,该第三模型就同时具备了识别第一数据集上的数据特征和第二数据集上的数据特征的能力。
需要说明的是,在本申请实施例中,将D1、……、Dn和Dt进行聚合的方式有多种,例如可以是做模型参数层面的简单平均,具体可以如下述式(9)所示:
Figure GDA0003621377350000331
其中,η用于表征第三模型的模型参数,ηD为第一聚合参数值D-all,
Figure GDA0003621377350000332
为第一计算节点i上第三模型的模型参数值Di。/>
Figure GDA0003621377350000333
为第二计算节点上第三模型的模型参数值Dt
此外,将D1、……、Dn和Dt进行聚合的方式也可以是进行加权平均,或者其他更复杂的聚合方式,具体此处不做限定。由于本申请是对模型的模型参数值进行聚合,并且传递的也仅是模型参数值或聚合参数值,并没有涉及到原始数据或者数据特征的传输,所以能够保护数据隐私。
607、第三计算节点将D-all分别向每个第一计算节点和第二计算节点发送,使得每个第一计算节点各自得到Di’、第二计算节点得到Dt’,D-all=Di’=Dt’。
第三计算节点聚合得到第一聚合参数值D-all后,会将第一聚合参数值D-all分别向每个第一计算节点和第二计算节点发送,使得每个第一计算节点得到Di’、第二计算节点得到Dt’,D-all=Di’=Dt’。
608、每个第一计算节点各自将Di更新为Di’,并在保持每个第一计算节点上第三模型的模型参数值不变(即固定Di’)的情况下,在本地再训练第一模型和第二模型,并将各自训练得到的第一模型的模型参数值Gi’和第二模型的模型参数值Ti’分别向第三计算节点发送。
每个第一计算节点将Di更新为Di’,并在固定Di’的情况下,在本地再训练第一模型和第二模型的过程与上述步骤407类似,具体请参阅上述步骤407,此处不予赘述。
609、将Gi’和Ti’分别作为新的Gi和Ti(即将G1’、……、Gn’作为新的G1、……、Gn,将T1’、……、Tn’作为新的T1、……、Tn,),重复执行上述步骤602-608,直至达到迭代终止条件。
每个第一计算节点将各自的Gi’和Ti’分别作为新的Gi和Ti重复执行上述步骤602-608的过程与上述步骤408类似,具体请参阅上述步骤408,此处不予赘述。
同样地,本申请实施例中,步骤602-608就是对抗训练的过程,不断重复这个对抗训练的过程直到达到迭代终止条件,在最后多个源域和目标域的特征就基本被对齐。
610、第三计算节点将最后一次更新得到的Ti(即T1、……、Tn)进行聚合,以得到第三聚合参数值Ts-all,且将最后一次更新得到的Gi(即G1’、……、Gn’)进行聚合,以得到最后一次更新得到的G-all(可称为Gall-new),并将Ts-all和Gall-new向第二计算节点发送,Ts-all=Tt-new
需要说明的是,在本申请的一些实施方式中,在达到迭代终止条件后,第三计算节点在步骤608中会接收到每个第一计算节点各自发送的最后一次更新得到的模型参数值Gi(可称为Gi-new)和模型参数值Ti(可称为Ti-new),因此,第三计算节点会将各个Ti-new(即T1-new、……、Tn-new)进行聚合,以得到第三聚合参数值Ts-all,且会将最后一次更新得到的Gi进行聚合,以得到最后一次更新得到的G-all(即Gall-new),并将该Ts-all和Gall-new向第二计算节点发送,使得第二计算节点得到Tt-new和Gall-new,Ts-all=Tt-new
611、第二计算节点使用Gall-new和Tt-new执行目标任务。
第二计算节点在得到Gall-new和Tt-new之后,会将该Gall-new和Tt-new分别作为第二计算节点上第一模型和第二模型的最终模型参数值(因为源域和目标域的特征已经对齐了,这样做才有意义),并根据第二计算节点上的该第一模型和该第二模型执行目标任务,如,目标任务可以是目标检测任务、分类任务、语音识别任务、语义分割任务等,只要是神经网络可执行的任务,都可作为本申请第二计算节点能够执行的目标任务。
需要说明的是,在本申请的一些实施方式中,也可以不需要步骤610和步骤611。
综上所述,本申请实施例在兼顾域对齐和用户数据隐私的情况下,实现了对模型的协同训练,提高了模型的性能。此外,本申请实施例是通过利用多个源域设备(即多个第一计算节点)的本地数据(每个第一计算节点上都有各自第一数据集)和标签来辅助一个本地数据无标签或少标签的目标域设备(即第二计算节点)提升模型性能,本申请实施例中由于存在多个源域,模型的模型参数取值可基于多种类型的训练数据得到,因此训练后的模型精度更高。
需要说明的是,在本申请上述图6对应的实施例中,对抗训练过程仅是在第一计算节点上进行,实际上,在本申请的一些实施方式中,为了更好的提升模型性能,也可以在第二计算节点上进行对抗训练过程,因此,本申请实施例还提供了一种基于联邦迁移学习的模型训练方法,具体请参阅图7,图7为本申请实施例提供的基于联邦迁移学习的模型训练方法的另一流程示意图,图7对应的实施例与上述图6对应的实施例的区别在于,图7对应的实施例在第二计算节点部分也加入了对抗训练部分。具体地,该方法可以包括如下步骤:
701、每个第一计算节点各自在本地训练第一模型和第二模型,并将各自训练得到的第一模型的模型参数值Gi和第二模型的模型参数值Ti向第三计算节点发送,
Figure GDA0003621377350000351
702、第三计算节点对所有Gi(即G1、……、Gn)进行聚合,以得到第二聚合参数值G-all。
703、第三计算节点将G-all向第二计算节点发送,G-all=Gt
704、每个第一计算节点在保持各自的Gi和Ti不变(可称为固定Gi和Ti)的情况下,在本地各自训练第三模型,以得到该第三模型的模型参数值Di,并各自将Di向第三计算节点发送。
705、第二计算节点在第二计算节点上第一模型的模型参数保持Gt不变(可称为固定Gt)的情况下,在本地训练第三模型,以得到该第三模型的模型参数值Dt,并将Dt向第三计算节点发送。
706、第三计算节点将所有Di(即D1、……、Dn)和Dt进行聚合,以得到第一聚合参数值D-all。
707、第三计算节点将D-all分别向每个第一计算节点和第二计算节点发送,使得每个第一计算节点各自得到Di’、第二计算节点得到Dt’,D-all=Di’=Dt’。
708、每个第一计算节点各自将Di更新为Di’,并在保持每个第一计算节点上第三模型的模型参数值不变(即固定Di’)的情况下,在本地再训练第一模型和第二模型,并将各自训练得到的第一模型的模型参数值Gi’和第二模型的模型参数值Ti’分别向第三计算节点发送。
步骤701-708与上述步骤601-608类似,具体请参阅上述步骤601-608,此处不予赘述。
709、第二计算节点将Dt更新为Dt’,并在保持第二计算节点上第三模型的模型参数值不变(即固定Dt’)的情况下,在本地训练第一模型和第二模型,并将训练得到的第一模型的模型参数值Gt’和第二模型的模型参数值Tt’向第三计算节点发送。
步骤709与上述步骤508类似,具体请参阅上述步骤508,此处不予赘述。
710、第三计算节点对所有Gi’(即G1’、……、Gn’)和Gt’进行聚合,以得到更新的第二聚合参数值G-all’。
第三计算节点从第一计算节点接收到了模型参数值Gt’和模型参数值Tt’,接下来,第三计算节点会进一步对所有Gi’(即G1’、……、Gn’)和Gt’再进行聚合,以得到更新的第二聚合参数值G-all’。
711、将G-all’、Gi’和Ti’分别作为新的G-all、Gi和Ti(即将G-all’作为新的G-all,将G1’、……、Gn’作为新的G1、……、Gn,将T1’、……、Tn’作为新的T1、……、Tn,),重复执行上述步骤703-710,直至达到迭代终止条件。
712、第三计算节点将每个第一计算节点最后一次更新得到的Ti与最后一次更新得到的Tt’进行聚合,以得到第四聚合参数值T-all,T-all=Tt-new
713、第三计算节点将第四聚合参数值T-all和最后一次更新得到的G-all’(可称为Gall-new)向第二计算节点发送。
714、第二计算节点使用最后一次更新得到的G-all’(即Gall-new)和T-all(即Tt-new)执行目标任务。
步骤711-714与上述步骤510-513类似,具体请参阅上述步骤510-513,此处不予赘述。
需要说明的是,在本申请的一些实施方式中,也可以不需要步骤712至步骤714。
在本申请上述实施方式中,在作为目标域设备的第二计算节点上也引入了对抗训练过程,这在一些特定的任务场景下能够训练出性能更好的模型。
三、第一计算节点为一个,且不部署新的第三计算节点
在本申请上述实施例中,对模型的聚合操作都是在部署的新的第三计算节点上完成,在本申请的一些实施方式中,还可以是由作为目标域的第二计算节点来完成对模型的聚合操作,具体请参阅图8,图8为本申请实施例提供的基于联邦迁移学习的模型训练方法的一种流程示意图,该实施例针对的场景是利用单个源域设备(即单个第一计算节点)的本地数据和标签来辅助一个本地数据无标签或少标签的目标域设备(即第二计算节点)提升模型性能。具体地,该方法可以包括如下步骤:
801、第一计算节点在本地训练第一模型和第二模型,以得到训练后的第一模型的模型参数值Gs和第二模型的模型参数值Ts
步骤801与上述步骤401类似,不同之处在于步骤801得到训练后的第一模型的模型参数值Gs和第二模型的模型参数值Ts之后,不再上传至第三计算节点,其余部分请参阅上述步骤401,此处不予赘述。
802、第一计算节点将Gs向第二计算节点发送,Gs=Gt
第一计算节点得到模型参数值Gs后,会进一步将Gs向第二计算节点发送,Gs=Gt。在本申请实施例中,第二计算节点上的第一模型可以用该Gt做初始化。
803、第一计算节点在保持Gs和Ts不变(可称为固定Gs和Ts)的情况下,在本地训练第三模型,以得到该第三模型的模型参数值Ds,并将Ds向第二计算节点发送。
步骤803与上述步骤403类似,不同之处在于步骤803得到训练后的第三模型的模型参数值Ds之后,不是上传至第三计算节点,而是向第二计算节点发送,其余部分请参阅上述步骤403,此处不予赘述。
804、第二计算节点在第二计算节点上第一模型的模型参数保持Gt不变(可称为固定Gt)的情况下,在本地训练第三模型,以得到该第三模型的模型参数值Dt
步骤804与上述步骤404类似,不同之处在于步骤804得到训练后的第三模型的模型参数值Dt之后,不用上传至第三计算节点,其余部分请参阅上述步骤404,此处不予赘述。
需要说明的是,在本申请实施例中,对步骤803与步骤804的执行顺序不做限定,可以先执行步骤803再执行步骤804,也可以先执行步骤804再执行步骤803,还可以是步骤803和步骤804同时执行,具体此处不做限定。
805、第二计算节点将Ds和Dt进行聚合,以得到第一聚合参数值D-all。
步骤805与上述步骤405类似,不同之处在于是由第二计算节点将Ds和Dt进行聚合,以得到第一聚合参数值D-all,其余部分请参阅上述步骤405,此处不予赘述。
806、第二计算节点向第一计算节点发送D-all,使得第一计算节点得到Ds’,D-all=Ds’。
第二计算节点聚合得到第一聚合参数值D-all后,会将第一聚合参数值D-all向第一计算节点发送,使得第一计算节点得到Ds’,D-all=Ds’。
807、第一计算节点将Ds更新为Ds’,并在保持第一计算节点上第三模型的模型参数值不变(即固定Ds’)的情况下,在本地再训练第一模型和第二模型,以得到训练后的第一模型的模型参数值Gs’和第二模型的模型参数值Ts’。
步骤807与上述步骤407类似,不同之处在于步骤807得到训练后的第一模型的模型参数值Gs和第二模型的模型参数值Ts之后,不再上传至第三计算节点,其余部分请参阅上述步骤407,此处不予赘述。
808、将Gs’和Ts’分别作为新的Gs和Ts,重复执行上述步骤802-807,直至达到迭代终止条件。
步骤808与上述步骤408类似,具体请参阅上述步骤408,此处不予赘述。
809、第一计算节点将最后一次更新得到的Ts(可称为Ts-new)和最后一次更新的得到的Gs(可称为Gs-new)向第二计算节点发送,Ts-new=Tt-new,Gs-new=Gt-new
需要说明的是,在本申请的一些实施方式中,在达到迭代终止条件后,第一计算节点会将最后一次更新得到的Ts(即Ts-new)和最后一次更新的得到的Gs(即Gs-new)向第二计算节点发送,使得第二计算节点得到Tt-new和Gt-new,Ts-new=Tt-new,Gs-new=Gt-new
810、第二计算节点使用Gt-new和Tt-new执行目标任务。
步骤810与上述步骤410类似,具体请参阅上述步骤410,此处不予赘述。
需要说明的是,在本申请的一些实施方式中,也可以不需要步骤809和步骤810。
在本申请上述实施方式中,将模型参数值的聚合过程由作为目标域设备的第二计算节点执行,可减少计算节点的参与数量,同时减少了计算节点之间数据交互的时间,提高了模型训练的效率。
需要说明的是,在本申请上述图8对应的实施例中,对抗训练过程仅是在第一计算节点上进行,实际上,在本申请的一些实施方式中,为了更好的提升模型性能,也可以在第二计算节点上进行对抗训练过程,因此,本申请实施例还提供了一种基于联邦迁移学习的模型训练方法,具体请参阅图9,图9为本申请实施例提供的基于联邦迁移学习的模型训练方法的另一流程示意图,图9对应的实施例与上述图8对应的实施例的区别在于,图9对应的实施例在第二计算节点部分也加入了对抗训练部分。具体地,该方法可以包括如下步骤:
901、第一计算节点在本地训练第一模型和第二模型,以得到训练后的第一模型的模型参数值Gs和第二模型的模型参数值Ts
902、第一计算节点将Gs向第二计算节点发送,Gs=Gt
903、第一计算节点在保持Gs和Ts不变(可称为固定Gs和Ts)的情况下,在本地训练第三模型,以得到该第三模型的模型参数值Ds,并将Ds向第二计算节点发送。
904、第二计算节点在第二计算节点上第一模型的模型参数保持Gt不变(可称为固定Gt)的情况下,在本地训练第三模型,以得到该第三模型的模型参数值Dt
905、第二计算节点将Ds和Dt进行聚合,以得到第一聚合参数值D-all。
906、第二计算节点将D-all向第一计算节点,使得第一计算节点得到Ds’,D-all=Ds’。
907、第一计算节点将Ds更新为Ds’,并在保持第一计算节点上第三模型的模型参数值不变(即固定Ds’)的情况下,在本地再训练第一模型和第二模型,以得到训练后的第一模型的模型参数值Gs’和第二模型的模型参数值Ts’,并将Gs’向第二计算节点发送。
步骤901-907与上述步骤801-807类似,具体请参阅上述步骤801-807,此处不予赘述。不同之处在于,步骤807中第一计算节点还需将Gs’向第二计算节点发送。
908、第二计算节点将Dt更新为Dt’(Dt’=D-all),并在保持第二计算节点上第三模型的模型参数值不变(即固定Dt’)的情况下,在本地训练第一模型和第二模型,以得到训练后的第一模型的模型参数值Gt’和第二模型的模型参数值Tt’。
步骤908与上述步骤508类似,不同之处在于步骤908得到训练后的第一模型的模型参数值Gs和第二模型的模型参数值Ts之后,不再上传至第三计算节点,且在该步骤中,Dt’=D-all,其余部分请参阅上述步骤508,此处不予赘述。
909、第二计算节点将Gs’和Gt’进行聚合,以得到第二聚合参数值G-all。
步骤909与上述步骤509类似,不同之处在于步骤909中是由第二计算节点将Gs’和Gt’进行聚合,以得到第二聚合参数值G-all,其余部分请参阅上述步骤509,此处不予赘述。
910、将G-all和Ts’分别作为新的Gs和Ts,重复执行上述步骤902-909,直至达到迭代终止条件。
步骤910与上述步骤510类似,具体请参阅上述步骤510,此处不予赘述。
911、第一计算节点将最后一次更新得到的Ts(可称为Ts-new)向第二计算节点发送。
912、第二计算节点将Ts-new与最后一次更新得到的Tt’(可称为Tt-new)进行聚合,以得到第四聚合参数值T-all。
步骤912与上述步骤511类似,不同之处在于步骤912中是由第二计算节点将最后一次更新得到的Ts(即Ts-new)与最后一次更新得到的Tt’(即Tt-new)进行聚合,以得到第四聚合参数值T-all,其余部分请参阅上述步骤511,此处不予赘述。
913、第二计算节点使用最后一次更新得到的G-all和T-all执行目标任务。
步骤913与上述步骤513类似,具体请参阅上述步骤513,此处不予赘述。
需要说明的是,在本申请的一些实施方式中,也可以不需要步骤912和步骤913。
在本申请上述实施方式中,将模型参数值的聚合过程由作为目标域设备的第二计算节点执行,可减少计算节点的参与数量,同时减少了计算节点之间数据交互的时间,提高了模型训练的效率。此外,还在作为目标域设备的第二计算节点上也引入了对抗训练过程,这在一些特定的任务场景下能够训练出性能更好的模型。
四、第一计算节点为多个,且不部署新的第三计算节点
上述图8、图9对应的实施例阐述的都是第一计算节点为一个,且不部署新的第三计算节点的情况,在本申请实施例中,将继续介绍第一计算节点为多个,且不部署新的第三计算节点的情况下基于联邦迁移学习的模型训练方法,具体请参阅图10,图10为本申请实施例提供的基于联邦迁移学习的模型训练方法的另一流程示意图,该实施例针对的场景是利用多个源域设备(即多个第一计算节点)的本地数据(每个第一计算节点上都有各自第一数据集)和标签来辅助一个本地数据无标签或少标签的目标域设备(即第二计算节点)提升模型性能。在本申请实施例中,假定第一计算节点的数量为n,n≥2。具体地,该方法可以包括如下步骤:
1001、每个第一计算节点各自在本地训练第一模型和第二模型,以得到各自训练后的第一模型的模型参数值Gi和第二模型的模型参数值Ti
Figure GDA0003621377350000391
每个第一计算节点在本地训练第一模型和第二模型的过程与上述步骤401类似,不同之处在于步骤1001得到训练后的第一模型的模型参数值Gi和第二模型的模型参数值Ti之后,不再上传至第三计算节点,其余部分请参阅上述步骤401,此处不予赘述。
1002、每个第一计算节点将各自得到的Gi向第二计算节点发送。
每个第一计算节点得到各自的模型参数值Gi后,会进一步将Gi向第二计算节点发送。这样第二计算节点可接收到G1、……、Gn
1003、第二计算节点对所有Gi(即G1、……、Gn)进行聚合,以得到第二聚合参数值G-all,G-all=Gt
步骤1003与上述步骤602类似,不同之处在于是由第二计算节点将G1、……、Gn进行聚合,以得到第二聚合参数值G-all,并将G-all作为第二计算节点上第一模型的模型参数值Gt。其余部分请参阅上述步骤602,此处不予赘述。
1004、每个第一计算节点在保持各自的Gi和Ti不变(可称为固定Gi和Ti)的情况下,在本地各自训练第三模型,以得到该第三模型的模型参数值Di,并各自将Di向第二计算节点发送。
步骤1004与上述步骤604类似,不同之处在于步骤1004中每个第一计算节点得到各自训练后的第三模型的模型参数值Di之后,不是上传至第三计算节点,而是向第二计算节点发送,其余部分请参阅上述步骤604,此处不予赘述。
1005、第二计算节点在第二计算节点上第一模型的模型参数保持Gt不变(可称为固定Gt)的情况下,在本地训练第三模型,以得到该第三模型的模型参数值Dt
步骤1005与上述步骤605类似,不同之处在于步骤1005中第二计算节点得到训练后的第三模型的模型参数值Dt之后,不用上传至第三计算节点,其余部分请参阅上述步骤605,此处不予赘述。
1006、第二计算节点将所有Di(即D1、……、Dn)和Dt进行聚合,以得到第一聚合参数值D-all。
步骤1006与上述步骤606类似,不同之处在于是由第二计算节点将D1、……、Dn和Dt进行聚合,以得到第一聚合参数值D-all,其余部分请参阅上述步骤606,此处不予赘述。
1007、第二计算节点将D-all分别向每个第一计算节点发送,使得每个第一计算节点各自得到Di’,D-all=Di’。
第二计算节点聚合得到第一聚合参数值D-all后,会将第一聚合参数值D-all向每个第一计算节点发送,使得每个第一计算节点各自得到Di’,D-all=Di’。
1008、每个第一计算节点各自将Di更新为Di’,并在保持每个第一计算节点上第三模型的模型参数值不变(即固定Di’)的情况下,在本地再训练第一模型和第二模型,各自得到训练后的第一模型的模型参数值Gi’和第二模型的模型参数值Ti’,并将得到的Gi’和Ti’向第二计算节点发送。
每个第一计算节点将Di更新为Di’,并在固定Di’的情况下,在本地再训练第一模型和第二模型的过程与上述步骤608类似,具体请参阅上述步骤608,此处不予赘述,之后,各个第一计算节点将各自得到的Gi’和Ti’向第二计算节点发送。
1009、第二计算节点将所有Gi’(即G1’、……、Gn’)聚合,以得到更新的第二聚合参数值G-all’,G-all’=G-all=Gt
第二计算节点将更新后的G1’、……、Gn’进行聚合,以得到更新后的第二聚合参数值G-all’,并将G-all’作为第二计算节点上第一模型的模型参数值Gt,即G-all’=G-all=Gt
1010、将G-all’、Gi’和Ti’分别作为新的Gt、Gi和Ti(即将G-all’作为新的Gt,将G1’、……、Gn’作为新的G1、……、Gn,将T1’、……、Tn’作为新的T1、……、Tn),重复执行上述步骤1004-1009,直至达到迭代终止条件。
1011、每个第一计算节点将最后一次更新得到的Ti向第二计算节点发送。
需要说明的是,在本申请的一些实施方式中,在达到迭代终止条件后,每个第一计算节点会将最后一次更新得到的Ti(即最后一次更新的T1、……、Tn)各自向第二计算节点发送。
1012、第二计算节点将最后一次更新得到的所有Ti进行聚合,以得到第三聚合参数值Ts-all,Ts-all=Tt-new
第二计算节点接收到每个第一计算节点各自发送的最后一次更新的Ti(即最后一次更新的T1、……、Tn)后,会对最后一次更新的T1、……、Tn进行聚合,以得到第三聚合参数值Ts-all,Ts-all=Tt-new
需要注意的是,由于第二计算节点会在步骤1008接收到由每个第一计算节点各自发送的最后一次更新的Gi’(即最后一次更新的G1’、……、Gn’),第二计算节点会在步骤1009中对最后一次更新的G1’、……、Gn’进行聚合,以得到最后一次更新的第二聚合参数值G-all(可称为Gall-new),Gall-new=Gt-new,因此在步骤1011中,每个第一计算节点只需将最后一次更新得到的Ti向第二计算节点发送即可。
1013、第二计算节点使用最后一次更新得到的G-all(即Gt-new)和Tt-new执行目标任务。
步骤1013与上述步骤611类似,具体请参阅上述步骤611,此处不予赘述。
需要说明的是,在本申请的一些实施方式中,也可以不需要步骤1011至步骤1013。
综上所述,本申请实施例在兼顾域对齐和用户数据隐私的情况下,实现了对模型的协同训练,提高了模型的性能。此外,本申请实施例是通过利用多个源域设备(即多个第一计算节点)的本地数据(每个第一计算节点上都有各自第一数据集)和标签来辅助一个本地数据无标签或少标签的目标域设备(即第二计算节点)提升模型性能,本申请实施例中由于存在多个源域,模型的模型参数取值可基于多种类型的训练数据得到,因此训练后的模型精度更高。此外,本申请实施例还将模型参数值的聚合过程由作为目标域设备的第二计算节点执行,不仅可减少计算节点的参与数量,同时在一些不具备服务器的应用场景中,可以由目标域设备作为第二计算节点对各个模型参数值进行聚合,还减少了计算节点之间数据交互的时间,提高了模型训练的效率。
需要说明的是,在本申请上述图10对应的实施例中,对抗训练过程仅是在第一计算节点上进行,实际上,在本申请的一些实施方式中,为了更好的提升模型性能,也可以在第二计算节点上进行对抗训练过程,因此,本申请实施例还提供了一种基于联邦迁移学习的模型训练方法,具体请参阅图11,图11为本申请实施例提供的基于联邦迁移学习的模型训练方法的另一流程示意图,图11对应的实施例与上述图10对应的实施例的区别在于,图11对应的实施例在第二计算节点部分也加入了对抗训练部分。具体地,该方法可以包括如下步骤:
1101、每个第一计算节点各自在本地训练第一模型和第二模型,以得到各自训练后的第一模型的模型参数值Gi和第二模型的模型参数值Ti
Figure GDA0003621377350000411
1102、每个第一计算节点将各自得到的Gi向第二计算节点发送。
1103、第二计算节点对所有Gi(即G1、……、Gn)进行聚合,以得到第二聚合参数值G-all。
1104、每个第一计算节点在保持各自的Gi和Ti不变(可称为固定Gi和Ti)的情况下,在本地各自训练第三模型,以得到该第三模型的模型参数值Di,并各自将Di向第二计算节点发送。
1105、第二计算节点在第二计算节点上第一模型的模型参数保持Gt不变(可称为固定Gt)的情况下,在本地训练第三模型,以得到该第三模型的模型参数值Dt
1106、第二计算节点将所有Di(即D1、……、Dn)和Dt进行聚合,以得到第一聚合参数值D-all。
1107、第二计算节点将D-all分别向每个第一计算节点发送,使得每个第一计算节点各自得到Di’,D-all=Dt’=Di’。
1108、每个第一计算节点各自将Di更新为Di’,并在保持每个第一计算节点上第三模型的模型参数值不变(即固定Di’)的情况下,在本地再训练第一模型和第二模型,各自得到训练后的第一模型的模型参数值Gi’和第二模型的模型参数值Ti’,并各自将Gi’向第二计算节点发送。
步骤1101-1108与上述步骤1001-1008类似,具体请参阅上述步骤1001-1008,此处不予赘述。
1109、第二计算节点将Dt更新为Dt’,并在保持第二计算节点上第三模型的模型参数值不变(即固定Dt’)的情况下,在本地训练第一模型和第二模型,以得到训练后的第一模型的模型参数值Gt’和第二模型的模型参数值Tt’。
步骤1109与上述步骤709类似,不同之处在于步骤1109中第二计算节点得到训练后的模型参数值Gt’和模型参数值Tt’之后,不用上传至第三计算节点,其余部分请参阅上述步骤709,此处不予赘述。
1110、第二计算节点将所有Gi’(即G1’、……、Gn’)和Gt’聚合,以得到更新的第二聚合参数值G-all’。
步骤1110与上述步骤710类似,不同之处在于步骤1110中是由第二计算节点将G1’、……、Gn’和Gt’进行聚合,以得到更新的第二聚合参数值G-all’,其余部分请参阅上述步骤710,此处不予赘述。
1111、将G-all’、Gi’和Ti’分别作为新的G-all、Gi和Ti(即将G-all’作为新的G-all,将G1’、……、Gn’作为新的G1、……、Gn,将T1’、……、Tn’作为新的T1、……、Tn),重复执行上述步骤1104-1110,直至达到迭代终止条件。
步骤1111与上述步骤711类似,具体请参阅上述步骤711,此处不予赘述。
1112、每个第一计算节点各自将最后一次更新得到的Ti(即最后一次更新得到的T1、……、Tn)向第二计算节点发送。
1113、第二计算节点将每个第一计算节点最后一次更新得到的Ti与最后一次更新得到的Tt’(即Tt-new)进行聚合,以得到第四聚合参数值T-all。
步骤1113与上述步骤712类似,不同之处在于步骤1113中是由第二计算节点将每个第一计算节点最后一次更新得到的Ti与最后一次更新得到的Tt’进行聚合,以得到第四聚合参数值T-all,其余部分请参阅上述步骤712,此处不予赘述。
1114、第二计算节点使用最后一次更新得到的G-all’(即Gt-new)和T-all执行目标任务。
步骤1114与上述步骤714类似,具体请参阅上述步骤714,此处不予赘述。
需要说明的是,在本申请的一些实施方式中,也可以不需要步骤1112至步骤1114。
还需要说明的是,在本申请上述各个实施例中,计算节点可以是各种终端设备或边缘设备,例如,本申请中的计算节点可以包括但不限于:智能电话(如,手机)、膝上型电脑(laptop computer)、个人电脑(personal computer,PC)、平板电脑、板式电脑、超级本、可佩戴装置(如,智能手环、智能手表、智能眼镜、头戴显示设备(head mount display,HMD)等)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、混合现实(mixed reality,MR)设备、蜂窝电话(cellular phone)、个人数字助理(personaldigital assistant,PDA)、数字广播终端等。当然,在以下实施例中,对第一计算和第二计算节点的具体形式不作任何限制。
还需要说明的是,在本申请一些实施例中,第三计算节点一般为服务器,第一计算节点和第二计算节点一般为边缘设备。
经由上述计算节点训练得到的第一模型和第二模型就可以进一步用于推理过程中,以执行相关的目标任务。具体请参阅图12,图12为本申请实施例提供的数据处理方法的一个流程示意图,该方法具体可以包括如下步骤:
1201、计算机设备获取与目标任务相关的输入数据。
首先,计算机设备获取待处理的输入数据,该输入数据可以是图像数据,也可以是音频数据,还可以是文本数据,具体与待执行的目标任务相关,例如,当目标任务是基于图像的分类任务,那么输入数据就是指用于进行分类的图像数据。
1202、计算机设备通过训练后的第一模型对输入数据进行特征提取,以得到特征图。
之后,计算机设备通过训练后的第一模型对该输入数据进行特征提取,以得到该输入数据对应的特征图。
1203、计算机设备通过训练后的第二模型对特征图进行处理,以得到输出数据。
计算机设备通过训练后的第二模型特征图进行处理,以得到输出数据,其中,该训练后的第一模型的模型参数值和该训练后的第二模型的模型参数值由上述实施例所述的方法训练得到。
需要注意的是,在本申请实施例中,根据目标任务的不同,输入数据的类型也不同,这里对几种典型的目标任务的应用场景进行阐述:
1)目标任务是目标检测任务
目标检测任务一般针对图像中的目标物体的检测,在这种情况下,输入数据一般是指输入的图像,计算机设备首先利用训练后的第一模型对输入的图像进行特征提取,再利用训练后的第二模型对提取的特征图进行目标检测,以得到检测结果,即输出数据是检测结果。
2)目标任务是分类任务
一种实施例中,分类任务可以是针对图像进行的,在这种情况下,输入数据是指输入的图像,计算机设备首先利用训练后的第一模型对输入的图像进行特征提取,再利用训练后的第二模型对提取的特征图进行分类,输出分类结果,即输出数据是图像的分类结果。
另一种实施例中,分类任务除了可以是针对图像进行的,还可以是针对文本或音频,在这种情况下,输入数据就是指对应的文本数据或音频数据,输出数据则是文本的分类结果或音频的分类结果。
以上仅是针对几种场景的目标任务进行说明,在不同的目标任务中,输入数据和输出数据是与该目标任务相关的,具体此处不在示例。
在上述对应实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的计算节点。具体参阅图13,图13为本申请实施例提供的第一计算节点的一种结构示意图,该第一计算节点1300包括:训练模块1301、获取模块1302。其中,训练模块1301,用于在第一计算节点上第一模型(如,特征提取器)的第一模型参数值和第一计算节点上的第二模型(如,分类器)的第二模型参数值保持不变的情况下,采用该第一计算节点上的第一数据集对第一计算节点上的第三模型(如,域鉴别器,也可简称为鉴别器)进行训练,以得到该第一计算节点上的第三模型的第三模型参数值,其中,该第一模型参数值为第一计算节点对第一计算节点上的第一模型训练后得到的模型参数值,第二模型参数值为第一计算节点对第一计算节点上的第二模型训练后得到的模型参数取值。在本申请实施例中,第一模型用于对输入数据进行特征提取;第二模型用于基于第一模型提取出的特征执行目标任务,例如,目标任务可以是分类任务(如,目标检测任务、语义分割任务、语音识别任务等),也可以是回归任务,此处不做限定;第三模型用于鉴别由第一模型提取出的特征的源域。作为一种示例,根据源域的数据分布可以区分输入数据所位于的计算节点,例如,判断获取到的特征是来自源域设备,还是来自目标域设备。获取模块1302,用于接收第一聚合参数值,该第一聚合参数值是基于第三模型参数值和第四模型参数值得到,该第四模型参数值为第二计算节点上的第三模型的模型参数取值,该第二计算节点上的第三模型由该第二计算节点采用第二计算节点上的数据集(可称为第二数据集)训练得到。训练模块1301,还用于将原来的第三模型参数值更新为该第一聚合参数值,也就是将第一计算节点上第三模型的模型参数取值更新为第一聚合参数值,并在保持第一聚合参数值不变的情况,采用第一数据集对第一计算节点上的第一模型和第一计算节点上的第二模型再进行训练,以得到第一计算节点上的第一模型的第五模型参数值和第一计算节点上的第二模型的第六模型参数值。
在一种可能的设计中,该第一计算节点1300还可以包括迭代模块1303,该迭代模块1303,用于将第五模型参数值和第六模型参数值作为新的第一模型参数值和新的第二模型参数值,触发训练模块1301和获取模块1302重复执行各自的步骤,直至达到迭代终止条件,该迭代终止条件可以是达到预设的训练轮次,也可以是使得损失函数收敛,还可以是其他设定的训练终止条件,具体此处不做限定。
在一种可能的设计中,获取模块1302,具体用于:将第三模型参数值向第二计算节点发送,以使得第二计算节点将第三模型参数值和第四模型参数值进行聚合,以得到第一聚合参数值;之后,接收由该第二计算节点发送的该第一聚合参数值。
在一种可能的设计中,第一计算节点1300还包括发送模块1304,发送模块1304,用于将该第三模型参数值向该第二计算节点发送,以使得该第二计算节点将该第三模型参数值和该第四模型参数值进行聚合,以得到该第一聚合参数值;该获取模块1302,具体用于接收来自该第二计算节点的该第一聚合参数值。
在一种可能的设计中,发送模块1304还可以用于将更新得到的第一模型参数值和更新得到的第二模型参数值向该第二计算节点发送。
在一种可能的设计中,发送模块1304还可以用于将该第三模型参数值向第三计算节点发送,以使得该第三计算节点将该第三模型参数值以及来自该第二计算节点的该第四模型参数值进行聚合,以得到该第一聚合参数值;该获取模块1302,具体用于,以得到接收由该第三计算节点发送的该第一聚合参数值。
在一种可能的设计中,该发送模块1304,还可以用于:将更新得到的第一模型参数值和更新得到的第二模型参数值向第三计算节点发送。
需要说明的是,图13提供的第一计算节点1300中各模块/单元之间的信息交互、执行过程等内容,与本申请中图4至图11对应的方法实施例中第一计算节点执行的步骤基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例还提供一种计算节点,该计算节点可作为第二计算节点,具体参阅图14,图14为本申请实施例提供的第二计算节点的一种结构示意图,该第二计算节点1400包括:第一获取模块1401和训练模块1402,其中,第一获取模块1401,用于获取第二聚合参数值,该第二聚合参数值基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值得到,其中,每个第一计算节点各自采用自身上的第一数据集对自身上的第一模型进行训练,第一数据集可以是有标签的数据集。训练模块1402,用于在第二计算节点上的第一模型的模型参数取值为第二聚合参数值的情况下,采用第二计算节点上的第二数据集对第二计算节点上的第三模型进行训练,以得到第二计算节点上的第三模型的第四模型参数值,其中,第一模型用于对输入数据进行特征提取,第三模型用于鉴别由第一模型提取出的特征的源域。作为一种示例,根据源域的数据分布可以区分输入数据所位于的计算节点,例如,判断获取到的特征是来自源域设备,还是来自目标域设备。
在一种可能的设计中,该第二计算节点1400还可以包括迭代模块1404,该迭代模块1404,用于在第一计算节点基于第一聚合参数值对第一模型参数值和第二模型参数值进行了更新的情况下,触发第一获取模块1401和训练模块1402重复执行各自的步骤,直至达到迭代终止条件,该迭代终止条件可以是达到预设的训练轮次,也可以是使得损失函数收敛,还可以是其他设定的训练终止条件,具体此处不做限定。
在一种可能的设计中,该第二计算节点1400还可以包括第二获取模块1403,该第二获取模块1403用于:获取第一聚合参数值,该第一聚合参数值基于第三模型参数值以及第四模型参数值得到,第三模型参数值为第一计算节点保持第一模型参数值和第二模型参数值不变的情况下采用第一数据集对第一计算节点上的第三模型进行训练得到的模型参数取值,第二模型参数值为第一计算节点采用第一数据集对第一计算节点上的第二模型进行训练得到的模型参数取值,其中,第二模型用于基于第一模型提取出的特征执行目标任务,例如,目标任务可以是分类任务(如,目标检测任务、语义分割任务、语音识别任务等),也可以是回归任务,此处不做限定。
训练模块1402,具体用于将该第四模型参数值更新为该第一聚合参数值,并在保持该第四模型参数值为该第一聚合参数值不变的情况下,采用该第二数据集对该第二计算节点上的第一模型、第二模型进行训练,并更新该第二计算节点上的第一模型的模型参数值和该第二计算节点上的第二模型的模型参数值,即可得到该第二计算节点上的第一模型的第七模型参数值和该第二计算节点上的第二模型的第八模型参数值。
迭代模块1404,具体用于触发该第一获取模块1401、该训练模块1402和该第二获取模块1403重复执行各自的步骤,直至达到迭代终止条件。
在一种可能的设计中,第一获取模块1401,具体用于:接收由一个或多个该第一计算节点各自发送的更新的第一模型参数值,并将该第七模型参数值(即更新后的该第二计算节点上的第一模型的模型参数值)和每个更新的第一模型参数值进行聚合,以得到该第二聚合参数值。
在一种可能的设计中,该第二计算节点1400还包括执行模块1405,该执行模块1405用于:基于更新后的第一模型参数值,更新该第二聚合参数值;接收由一个或多个该第一计算节点发送的更新得到的第二模型参数值,并将每个该更新得到的第二模型参数值和最后一次更新得到的第八模型参数值(即更新后的该第二计算节点上的第二模型的模型参数值)进行聚合,以得到第四聚合参数值;根据该第二计算节点上的第一模型和该第二计算节点上的第二模型执行目标任务,其中,该第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值,该第二计算节点上的第二模型的模型参数取值为该第四聚合参数值。
在一种可能的设计中,该第一获取模块1401,还用于:向第三计算节点发送该第七模型参数值,并接收来自该第三计算节点的该第二聚合参数值,该第二聚合参数值由该第三计算节点对该第七模型参数值以及来自一个或多个该第一计算节点的每个更新的第一模型参数值聚合得到。
在一种可能的设计中,该执行模块1405,还可以用于:将最后一次更新得到的第八模型参数值向该第三计算节点发送,以使得该第三计算节点对该第八模型参数值以及从一个或多个该第一计算节点各自接收到的每个最后一次更新得到的第二模型参数值进行聚合,以得到第四聚合参数值;接收来自该第三计算节点的该第四聚合参数值;根据该第二计算节点上的第一模型、第二模型执行目标任务,其中,该第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值,该第二计算节点上的第二模型的模型参数取值为该第四聚合参数值。
需要说明的是,图14提供的第二计算节点1400中各模块/单元之间的信息交互、执行过程等内容,与本申请中图4至图11对应的方法实施例中第一计算节点执行的步骤基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例还提供一种计算机设备,具体参阅图15,图15为本申请实施例提供的计算机设备的一种结构示意图,该计算机设备1500包括:获取模块1501、特征提取模块1502以及处理模块1503,其中,获取模块1501,用于获取与目标任务相关的输入数据;特征提取模块1502,用于通过训练后的第一模型对该输入数据进行特征提取,以得到特征图;处理模块1503,用于通过训练后的第二模型对该特征图进行处理,以得到输出数据,其中,该训练后的第一模型的模型参数值和该训练后的第二模型的模型参数值可由上述图4至图11对应的模型训练方法训练得到。
需要说明的是,图15提供的计算机设备1500中各模块/单元之间的信息交互、执行过程等内容,与本申请中图12对应的方法实施例中计算机设备执行的步骤基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例还提供了一种设备,该设备可作为第一计算节点,也可作为第二计算节点,还可作为计算机设备,具体此处不做限定。请参阅图16,图16是本申请实施例提供的设备的一种结构示意图,为便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。当该设备1600作为第一计算节点时,该设备1600上可以部署有图13对应实施例中所描述的模块,用于实现图13对应实施例中第一计算节点1300的功能;当该设备1600作为第二计算节点时,该设备1600上可以部署有图14对应实施例中所描述的模块,用于实现图14对应实施例中第二计算节点1400的功能;当该设备1600作为计算机设备时,该设备1600上可以部署有图15对应实施例中所描述的模块,用于实现图15对应实施例中计算机设备1500的功能。具体的,设备1600由一个或多个服务器实现,设备1600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1622和存储器1632,一个或一个以上存储应用程序1642或数据1644的存储介质1630(例如一个或一个以上海量存储设备)。其中,存储器1632和存储介质1630可以是短暂存储或持久存储。存储在存储介质1630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对设备1600中的一系列指令操作。更进一步地,中央处理器1622可以设置为与存储介质1630通信,在设备1600上执行存储介质1630中的一系列指令操作。
设备1600还可以包括一个或一个以上电源1626,一个或一个以上有线或无线网络接口1650,一个或一个以上输入输出接口1658,和/或,一个或一个以上操作系统1641,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本申请实施例中,当设备1600作为第一计算节点时,中央处理器1622,用于执行图4至图11对应实施例中由第一计算节点执行的步骤。例如,中央处理器1622可以用于:在第一计算节点上第一模型(如,特征提取器)的第一模型参数值和第一计算节点上的第二模型(如,分类器)的第二模型参数值保持不变的情况下,采用该第一计算节点上的第一数据集对第一计算节点上的第三模型(如,域鉴别器,也可简称为鉴别器)进行训练,以得到该第一计算节点上的第三模型的第三模型参数值,其中,该第一模型参数值为第一计算节点对第一计算节点上的第一模型训练后得到的模型参数值,第二模型参数值为第一计算节点对第一计算节点上的第二模型训练后得到的模型参数取值。在本申请实施例中,第一模型用于对输入数据进行特征提取;第二模型用于基于第一模型提取出的特征执行目标任务,例如,目标任务可以是分类任务(如,目标检测任务、语义分割任务、语音识别任务等),也可以是回归任务,此处不做限定;第三模型用于鉴别由第一模型提取出的特征的源域。之后,接收第一聚合参数值,该第一聚合参数值是基于第三模型参数值和第四模型参数值得到,该第四模型参数值为第二计算节点上的第三模型的模型参数值,该第二计算节点上的第三模型由第二计算节点采用第二计算节点上的第二数据集训练得到。之后,将原来的第三模型参数值更新为该第一聚合参数值,也就是将第一计算节点上第三模型的模型参数取值更新为第一聚合参数值,并在保持第一聚合参数值不变的情况,采用第一数据集对第一计算节点上的第一模型和第一计算节点上的第二模型再进行训练,以得到第一计算节点上的第一模型的第五模型参数值和第一计算节点上的第二模型的第六模型参数值。最后,将第五模型参数值和第六模型参数值作为新的第一模型参数值和新的第二模型参数值,触发重复执行上述步骤,直至达到迭代终止条件,该迭代终止条件可以是达到预设的训练轮次,也可以是使得损失函数收敛,还可以是其他设定的训练终止条件,具体此处不做限定。
需要说明的是,中央处理器1622还可以用于执行与本申请中图4至图11对应的方法实施例中由第一计算节点执行的任意一个步骤,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例中,当设备1600作为第二计算节点时,中央处理器1622,用于用于执行图4至图11对应实施例中由第二计算节点执行的步骤。例如,中央处理器1622可以用于:获取第二聚合参数值,该第二聚合参数值基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值得到,其中,每个第一计算节点各自采用自身上的第一数据集对自身上的第一模型进行训练,第一数据集可以是有标签的数据集。之后,在第二计算节点上的第一模型的模型参数取值为第二聚合参数值的情况下,采用第二计算节点上的第二数据集对第二计算节点上的第三模型进行训练,以得到第二计算节点上的第三模型的第四模型参数值,其中,第一模型用于对输入数据进行特征提取,第三模型用于鉴别由第一模型提取出的特征的源域。最后触发重复执行上述步骤,直至达到迭代终止条件,该迭代终止条件可以是达到预设的训练轮次,也可以是使得损失函数收敛,还可以是其他设定的训练终止条件,具体此处不做限定。
需要说明的是,中央处理器1622还可以用于执行与本申请中图4至图11对应的方法实施例中由第二计算节点执行的任意一个步骤,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例中,当设备1600作为计算机设备时,中央处理器1622,用于用于执行图12对应实施例中由计算机设备执行的步骤。例如,中央处理器1622可以用于:获取待处理的输入数据,该输入数据与待执行的目标任务相关,例如,当目标任务是分类任务,那么输入数据就是指用于进行分类的数据。之后,通过训练后的第一模型对该输入数据进行特征提取,以得到特征图,并通过训练后的第二模型对特征图进行处理,以得到输出数据,其中,该训练后的第一模型的模型参数值和该训练后的第二模型的模型参数值由上述图4至图11中任一项所述的方法训练得到。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid statedisk,SSD))等。

Claims (33)

1.一种基于联邦迁移学习的模型训练方法,其特征在于,包括:
在第一计算节点上的第一模型参数值和第二模型参数值保持不变的情况下,所述第一计算节点采用所述第一计算节点上的第一数据集训练所述第一计算节点上的第三模型,以得到所述第一计算节点上的第三模型参数值,所述第一模型参数值、所述第二模型参数值、所述第三模型参数值分别为所述第一计算节点上的第一模型、第二模型、第三模型的模型参数取值,其中,所述第一模型用于对输入数据进行特征提取,所述第二模型用于基于所述第一模型提取出的特征执行目标任务,所述第三模型用于鉴别由所述第一模型提取出的特征的源域;
所述第一计算节点接收第一聚合参数值,所述第一聚合参数值基于所述第三模型参数值以及第四模型参数值得到,所述第四模型参数值为第二计算节点上的第三模型的模型参数取值,所述第二计算节点上的第三模型由所述第二计算节点采用所述第二计算节点上的第二数据集训练得到;
所述第一计算节点将所述第三模型参数值更新为所述第一聚合参数值,并在保持所述第三模型参数值为所述第一聚合参数值不变的情况下,采用所述第一数据集对所述第一计算节点上的第一模型和第二模型再进行训练,并更新所述第一模型参数值和所述第二模型参数值。
2.根据权利要求1所述的方法,其特征在于,所述第一计算节点接收第一聚合参数值,所述第一聚合参数值基于所述第三模型参数值以及第四模型参数值得到包括:
所述第一计算节点将所述第三模型参数值向所述第二计算节点发送,以使得所述第二计算节点将所述第三模型参数值和所述第四模型参数值进行聚合,以得到所述第一聚合参数值;
所述第一计算节点接收来自所述第二计算节点的所述第一聚合参数值。
3.根据权利要求1-2中任一项所述的方法,其特征在于,所述方法还包括:
所述第一计算节点将更新得到的第一模型参数值和更新得到的第二模型参数值向所述第二计算节点发送。
4.根据权利要求1所述的方法,其特征在于,所述第一计算节点接收第一聚合参数值,所述第一聚合参数值基于所述第三模型参数值以及第四模型参数值得到包括:
所述第一计算节点将所述第三模型参数值向第三计算节点发送,以使得所述第三计算节点将所述第三模型参数值以及来自所述第二计算节点的所述第四模型参数值进行聚合,以得到所述第一聚合参数值;
所述第一计算节点接收来自所述第三计算节点的所述第一聚合参数值。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述第一计算节点将更新得到的第一模型参数值和更新得到的第二模型参数值向所述第三计算节点发送。
6.一种基于联邦迁移学习的模型训练方法,其特征在于,包括:
第二计算节点获取第二聚合参数值,所述第二聚合参数值基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值得到,其中,每个第一计算节点上的第一模型由所述第一计算节点采用所述第一计算节点的第一数据集进行训练,所述第一模型用于对输入数据进行特征提取;
在所述第二计算节点上的第一模型的模型参数取值为所述第二聚合参数值的情况下,所述第二计算节点采用所述第二计算节点上的第二数据集对所述第二计算节点上的第三模型进行训练,以得到所述第二计算节点上的第三模型的第四模型参数值,其中,所述第三模型用于鉴别由所述第一模型提取出的特征的源域。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述第二计算节点获取第一聚合参数值,所述第一聚合参数值基于第三模型参数值以及所述第四模型参数值得到,所述第三模型参数值为所述第一计算节点采用所述第一数据集对所述第一计算节点上的第三模型进行训练得到的模型参数取值;
所述第二计算节点将所述第四模型参数值更新为所述第一聚合参数值,并在保持所述第四模型参数值为所述第一聚合参数值不变的情况下,采用所述第二数据集对所述第二计算节点上的第一模型、第二模型进行训练,并更新所述第二计算节点上的第一模型的模型参数值和所述第二计算节点上的第二模型的模型参数值。
8.根据权利要求7所述的方法,其特征在于,所述第二计算节点获取第一聚合参数值,所述第一聚合参数值基于第三模型参数值以及所述第四模型参数值得到包括:
所述第二计算节点接收由一个或多个所述第一计算节点各自发送的第三模型参数值;
所述第二计算节点将所述第四模型参数值和每个所述第三模型参数值进行聚合,以得到所述第一聚合参数值。
9.根据权利要求7或8所述的方法,其特征在于,所述第二计算节点获取第二聚合参数值,所述第二聚合参数值基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值得到包括:
所述第二计算节点接收由一个或多个所述第一计算节点各自发送的第一模型参数值,并将每个所述第一模型参数值和所述第二计算节点上的第一模型的模型参数值进行聚合,以得到所述第二聚合参数值。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
所述第二计算节点基于来自一个或多个所述第一计算节点的最后一次更新的所述第一模型参数值,最后一次更新所述第二聚合参数值;
所述第二计算节点接收由一个或多个所述第一计算节点发送的更新后的第二模型参数值,并将每个所述更新后的第二模型参数值和更新后的所述第二计算节点上的第二模型的模型参数值进行聚合,以得到第四聚合参数值;
所述第二计算节点根据所述第二计算节点上的第一模型、第二模型执行目标任务,其中,所述第二计算节点上的第一模型的模型参数取值为所述最后一次更新得到的第二聚合参数值,所述第二计算节点上的第二模型的模型参数取值为所述第四聚合参数值。
11.根据权利要求6所述的方法,其特征在于,所述第二计算节点获取第二聚合参数值,所述第二聚合参数值基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值得到包括:
所述第二计算节点接收由每个第一计算节点各自发送的第一模型参数值,并对接收到的每个所述第一模型参数值进行聚合,以得到所述第二聚合参数值。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
所述第二计算节点基于来自一个或多个所述第一计算节点的最后一次更新的所述第一模型参数值,最后一次更新所述第二聚合参数值;所述第二计算节点接收由每个第一计算节点各自发送的最后一次更新得到的第二模型参数值,对每个所述最后一次更新得到的第二模型参数值进行聚合,以得到第三聚合参数值;
所述第二计算节点根据所述第二计算节点上的第一模型、第二模型执行目标任务,其中,所述第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值,所述第二计算节点上的第二模型的模型参数取值为所述第三聚合参数值。
13.根据权利要求7所述的方法,其特征在于,所述第二计算节点获取第一聚合参数值,所述第一聚合参数值基于第三模型参数值以及所述第四模型参数值得到包括:
所述第二计算节点向第三计算节点发送所述第四模型参数值;
所述第二计算节点接收来自所述第三计算节点的第一聚合参数值,所述第一聚合参数值由所述第三计算节点对来自一个或多个所述第一计算节点的每个第三模型参数值和所述第四模型参数值聚合得到。
14.根据权利要求7所述的方法,其特征在于,所述第二计算节点获取第二聚合参数值,所述第二聚合参数值基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值得到包括:
所述第二计算节点向第三计算节点发送更新后的所述第二计算节点上的第一模型的模型参数值;
所述第二计算节点接收来自所述第三计算节点的所述第二聚合参数值,所述第二聚合参数值由所述第三计算节点对所述更新后的所述第二计算节点上的第一模型的模型参数值以及来自一个或多个所述第一计算节点的每个更新的第一模型参数值聚合得到。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
所述第二计算节点将更新后的所述第二计算节点上的第二模型的模型参数值向所述第三计算节点发送,以使得所述第三计算节点对所述更新后的所述第二计算节点上的第二模型的模型参数值以及从一个或多个所述第一计算节点各自接收到的每个最后一次更新得到的第二模型参数值进行聚合,以得到第四聚合参数值;
所述第二计算节点接收来自所述第三计算节点的所述第四聚合参数值;
所述第二计算节点根据所述第二计算节点上的第一模型、第二模型执行目标任务,其中,所述第二计算节点上的第一模型的模型参数取值为来自所述第三计算节点的最后一次更新得到的第二聚合参数值,所述第二计算节点上的第二模型的模型参数取值为所述第四聚合参数值。
16.根据权利要求6所述的方法,其特征在于,所述第二计算节点获取第二聚合参数值,所述第二聚合参数值基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值得到包括:
所述第二计算节点接收来自第三计算节点的所述第二聚合参数值,所述第二聚合参数值由所述第三计算节点对来自于一个或多个所述第一计算节点的每个第一模型参数值聚合得到。
17.根据权利要求16所述的方法,其特征在于,所述方法还包括:
所述第二计算节点接收来自所述第三计算节点的第三聚合参数值,并根据所述第二计算节点上的第一模型、第二模型执行目标任务,所述第三聚合参数值由所述第三计算节点对从每个第一计算节点各自接收到的最后一次更新得到的第二模型参数值聚合得到,其中,所述第二计算节点上的第一模型的模型参数取值为最后一次更新得到的第二聚合参数值,所述第二计算节点上的第二模型的模型参数取值为所述第三聚合参数值。
18.一种数据处理方法,其特征在于,包括:
获取与目标任务相关的输入数据;
通过训练后的第一模型对所述输入数据进行特征提取,以得到特征图;
通过训练后的第二模型对所述特征图进行处理,以得到输出数据,其中,所述训练后的第一模型的模型参数值和所述训练后的第二模型的模型参数值由权利要求1-17中任一项所述的方法训练得到。
19.根据权利要求18所述的方法,其特征在于,所述输入数据包括如下任意一项:
图像数据、音频数据或文本数据。
20.一种第一计算节点,其特征在于,包括:
训练模块,用于在所述第一计算节点上的第一模型参数值和第二模型参数值保持不变的情况下,采用所述第一计算节点上的第一数据集训练所述第一计算节点上的第三模型,以得到所述第一计算节点上的第三模型参数值,所述第一模型参数值、所述第二模型参数值、所述第三模型参数值分别为所述第一计算节点上的第一模型、第二模型、第三模型的模型参数取值,其中,所述第一模型用于对输入数据进行特征提取,所述第二模型用于基于所述第一模型提取出的特征执行目标任务,所述第三模型用于鉴别由所述第一模型提取出的特征的源域;
获取模块,用于接收第一聚合参数值,所述第一聚合参数值基于所述第三模型参数值以及第四模型参数值得到,所述第四模型参数值为第二计算节点上的第三模型的模型参数取值,所述第二计算节点上的第三模型由所述第二计算节点采用所述第二计算节点上的第二数据集训练得到;
所述训练模块,还用于将所述第三模型参数值更新为所述第一聚合参数值,并在保持所述第三模型参数值为所述第一聚合参数值不变的情况下,采用所述第一数据集对所述第一计算节点上的第一模型和第二模型再进行训练,并更新所述第一模型参数值和所述第二模型参数值。
21.根据权利要求20所述的第一计算节点,其特征在于,所述第一计算节点还包括发送模块,所述发送模块,用于将所述第三模型参数值向所述第二计算节点发送,以使得所述第二计算节点将所述第三模型参数值和所述第四模型参数值进行聚合,以得到所述第一聚合参数值;
所述获取模块,具体用于接收来自所述第二计算节点的所述第一聚合参数值。
22.根据权利要求20-21中任一项所述的第一计算节点,其特征在于,所述第一计算节点还包括发送模块,所述发送模块,用于:
将更新得到的第一模型参数值和更新得到的第二模型参数值向所述第二计算节点发送。
23.根据权利要求20所述的第一计算节点,其特征在于,所述第一计算节点还包括发送模块,所述发送模块,用于将所述第三模型参数值向第三计算节点发送,以使得所述第三计算节点将所述第三模型参数值以及来自所述第二计算节点的所述第四模型参数值进行聚合,以得到所述第一聚合参数值;
所述获取模块,具体用于接收来自所述第三计算节点的所述第一聚合参数值。
24.根据权利要求23所述的第一计算节点,其特征在于,所述发送模块,还用于:
将更新得到的第一模型参数值和更新得到的第二模型参数值向所述第三计算节点发送。
25.一种第二计算节点,其特征在于,包括:
第一获取模块,用于获取第二聚合参数值,所述第二聚合参数值基于一个或多个第一计算节点上各自训练后的第一模型的第一模型参数值得到,其中,每个第一计算节点上的第一模型由所述第一计算节点采用所述第一计算节点的第一数据集进行训练,所述第一模型用于对输入数据进行特征提取;
训练模块,用于在所述第二计算节点上的第一模型的模型参数取值为所述第二聚合参数值的情况下,采用所述第二计算节点上的第二数据集对所述第二计算节点上的第三模型进行训练,以得到所述第二计算节点上的第三模型的第四模型参数值,其中,所述第三模型用于鉴别由所述第一模型提取出的特征的源域。
26.根据权利要求25所述的第二计算节点,其特征在于,所述第二计算节点还包括第二获取模块,所述第二获取模块,用于获取第一聚合参数值,所述第一聚合参数值基于第三模型参数值以及所述第四模型参数值得到,所述第三模型参数值为所述第一计算节点采用所述第一数据集对所述第一计算节点上的第三模型进行训练得到的模型参数取值;
所述训练模块,还用于将所述第四模型参数值更新为所述第一聚合参数值,并在保持所述第四模型参数值为所述第一聚合参数值不变的情况下,采用所述第二数据集对所述第二计算节点上的第一模型、第二模型进行训练,并更新所述第二计算节点上的第一模型的模型参数值和所述第二计算节点上的第二模型的模型参数值。
27.根据权利要求26所述的第二计算节点,所述第一获取模块,具体用于:
接收由一个或多个所述第一计算节点各自发送的第一模型参数值,并将每个所述第一模型参数值和所述第二计算节点上的第一模型的模型参数值进行聚合,以得到所述第二聚合参数值。
28.根据权利要求27所述的第二计算节点,其特征在于,所述第二计算节点还包括执行模块,所述执行模块,用于:
基于来自一个或多个所述第一计算节点的最后一次更新的所述第一模型参数值,最后一次更新所述第二聚合参数值;
接收由一个或多个所述第一计算节点发送的更新后的第二模型参数值,并将每个所述更新后的第二模型参数值和更新后的所述第二计算节点上的第二模型的模型参数值进行聚合,以得到第四聚合参数值;
根据所述第二计算节点上的第一模型、第二模型执行目标任务,其中,所述第二计算节点上的第一模型的模型参数取值为所述最后一次更新得到的第二聚合参数值,所述第二计算节点上的第二模型的模型参数取值为所述第四聚合参数值。
29.根据权利要求26所述的第二计算节点,其特征在于,所述第一获取模块,具体还用于:
向第三计算节点发送更新后的所述第二计算节点上的第一模型的模型参数值;
接收来自所述第三计算节点的所述第二聚合参数值,所述第二聚合参数值由所述第三计算节点对所述更新后的所述第二计算节点上的第一模型的模型参数值以及来自一个或多个所述第一计算节点的每个更新的第一模型参数值聚合得到。
30.根据权利要求29所述的第二计算节点,其特征在于,还包括执行模块,所述执行模块,用于:
将更新后的所述第二计算节点上的第二模型的模型参数值向所述第三计算节点发送,以使得所述第三计算节点对所述更新后的所述第二计算节点上的第二模型的模型参数值以及从一个或多个所述第一计算节点各自接收到的每个最后一次更新得到的第二模型参数值进行聚合,以得到第四聚合参数值;
接收来自所述第三计算节点的所述第四聚合参数值;
根据所述第二计算节点上的第一模型、第二模型执行目标任务,其中,所述第二计算节点上的第一模型的模型参数取值为来自所述第三计算节点的最后一次更新得到的第二聚合参数值,所述第二计算节点上的第二模型的模型参数取值为所述第四聚合参数值。
31.一种计算机设备,其特征在于,包括:
获取模块,用于获取与目标任务相关的输入数据;
特征提取模块,用于通过训练后的第一模型对所述输入数据进行特征提取,以得到特征图;
处理模块,用于通过训练后的第二模型对所述特征图进行处理,以得到输出数据,其中,所述训练后的第一模型的模型参数值和所述训练后的第二模型的模型参数值由权利要求1-17中任一项所述的方法训练得到。
32.一种计算节点,包括处理器和存储器,所述处理器与所述存储器耦合,其特征在于,
所述存储器,用于存储程序;
所述处理器,用于执行所述存储器中的程序,使得所述计算节点执行如权利要求1-19中任一项所述的方法。
33.一种计算机可读存储介质,包括程序,当其在计算机上运行时,使得计算机执行如权利要求1-19中任一项所述的方法。
CN202110350001.9A 2021-03-31 2021-03-31 一种基于联邦迁移学习的模型训练方法及计算节点 Active CN113159283B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110350001.9A CN113159283B (zh) 2021-03-31 2021-03-31 一种基于联邦迁移学习的模型训练方法及计算节点
PCT/CN2022/082380 WO2022206498A1 (zh) 2021-03-31 2022-03-23 一种基于联邦迁移学习的模型训练方法及计算节点

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110350001.9A CN113159283B (zh) 2021-03-31 2021-03-31 一种基于联邦迁移学习的模型训练方法及计算节点

Publications (2)

Publication Number Publication Date
CN113159283A CN113159283A (zh) 2021-07-23
CN113159283B true CN113159283B (zh) 2023-03-31

Family

ID=76886083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110350001.9A Active CN113159283B (zh) 2021-03-31 2021-03-31 一种基于联邦迁移学习的模型训练方法及计算节点

Country Status (2)

Country Link
CN (1) CN113159283B (zh)
WO (1) WO2022206498A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113159283B (zh) * 2021-03-31 2023-03-31 华为技术有限公司 一种基于联邦迁移学习的模型训练方法及计算节点
CN114118437B (zh) * 2021-09-30 2023-04-18 电子科技大学 一种面向微云中分布式机器学习的模型更新同步方法
CN113989595B (zh) * 2021-11-05 2024-05-07 西安交通大学 一种基于阴影模型的联邦多源域适应方法及系统
CN114841361A (zh) * 2022-03-26 2022-08-02 华为技术有限公司 一种模型训练方法及其相关设备
CN116226784A (zh) * 2023-02-03 2023-06-06 中国人民解放军92578部队 基于统计特征融合的联邦域适应故障诊断方法
CN115987694B (zh) * 2023-03-20 2023-06-27 杭州海康威视数字技术股份有限公司 基于多域联邦的设备隐私保护方法、系统和装置
CN116340833B (zh) * 2023-05-25 2023-10-13 中国人民解放军海军工程大学 基于改进领域对抗式迁移网络的故障诊断方法
CN117011945B (zh) * 2023-10-07 2024-03-19 之江实验室 动作能力评估方法、装置、计算机设备及可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111724083A (zh) * 2020-07-21 2020-09-29 腾讯科技(深圳)有限公司 金融风险识别模型的训练方法、装置、计算机设备及介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11170320B2 (en) * 2018-07-19 2021-11-09 Adobe Inc. Updating machine learning models on edge servers
US20200134364A1 (en) * 2018-10-31 2020-04-30 Allstate Insurance Company Simultaneous Hyper Parameter and Feature Selection Optimization Using Evolutionary Boosting Machines
WO2020256732A1 (en) * 2019-06-21 2020-12-24 Siemens Aktiengesellschaft Domain adaptation and fusion using task-irrelevant paired data in sequential form
CN112182595B (zh) * 2019-07-03 2024-03-26 北京百度网讯科技有限公司 基于联邦学习的模型训练方法及装置
CN110516671B (zh) * 2019-08-27 2022-06-07 腾讯科技(深圳)有限公司 神经网络模型的训练方法、图像检测方法及装置
CN112434462A (zh) * 2020-10-21 2021-03-02 华为技术有限公司 一种模型的获取方法及设备
CN112348063A (zh) * 2020-10-27 2021-02-09 广东电网有限责任公司电力调度控制中心 一种物联网中基于联邦迁移学习的模型训练方法及装置
CN112257876B (zh) * 2020-11-15 2021-07-30 腾讯科技(深圳)有限公司 联邦学习方法、装置、计算机设备及介质
CN112288100B (zh) * 2020-12-29 2021-08-03 支付宝(杭州)信息技术有限公司 一种基于联邦学习进行模型参数更新的方法、系统及装置
CN113159283B (zh) * 2021-03-31 2023-03-31 华为技术有限公司 一种基于联邦迁移学习的模型训练方法及计算节点

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111724083A (zh) * 2020-07-21 2020-09-29 腾讯科技(深圳)有限公司 金融风险识别模型的训练方法、装置、计算机设备及介质

Also Published As

Publication number Publication date
CN113159283A (zh) 2021-07-23
WO2022206498A1 (zh) 2022-10-06

Similar Documents

Publication Publication Date Title
CN113159283B (zh) 一种基于联邦迁移学习的模型训练方法及计算节点
US20230196117A1 (en) Training method for semi-supervised learning model, image processing method, and device
CN111797893B (zh) 一种神经网络的训练方法、图像分类系统及相关设备
US10846567B2 (en) Scene understanding using a neurosynaptic system
CN107273782B (zh) 使用递归神经网络的在线动作检测
Oliva et al. A multilevel thresholding algorithm using electromagnetism optimization
CN112651511B (zh) 一种训练模型的方法、数据处理的方法以及装置
CN112990211B (zh) 一种神经网络的训练方法、图像处理方法以及装置
CN111507378A (zh) 训练图像处理模型的方法和装置
US20220215259A1 (en) Neural network training method, data processing method, and related apparatus
CN113705769A (zh) 一种神经网络训练方法以及装置
CN113807399B (zh) 一种神经网络训练方法、检测方法以及装置
CN113516227B (zh) 一种基于联邦学习的神经网络训练方法及设备
CN114912612A (zh) 鸟类识别方法、装置、计算机设备及存储介质
CN113139628A (zh) 样本图像的识别方法、装置、设备及可读存储介质
US10970331B2 (en) Determining contextual confidence of images using associative deep learning
CN111738403A (zh) 一种神经网络的优化方法及相关设备
CN113011568A (zh) 一种模型的训练方法、数据处理方法及设备
CN115511892A (zh) 一种语义分割模型的训练方法、语义分割方法及装置
Liu et al. Collaborating domain-shared and target-specific feature clustering for cross-domain 3d action recognition
WO2023231753A1 (zh) 一种神经网络的训练方法、数据的处理方法以及设备
CN117711001B (zh) 图像处理方法、装置、设备和介质
CN115661847B (zh) 表格结构识别及模型训练方法、装置、设备和存储介质
Qiuming et al. Decoupled 2S-AGCN Human Behavior Recognition Based on New Partition Strategy
CN117011579A (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
GR01 Patent grant
GR01 Patent grant