CN113033823A - 一种模型训练方法、系统及装置 - Google Patents

一种模型训练方法、系统及装置 Download PDF

Info

Publication number
CN113033823A
CN113033823A CN202110424366.1A CN202110424366A CN113033823A CN 113033823 A CN113033823 A CN 113033823A CN 202110424366 A CN202110424366 A CN 202110424366A CN 113033823 A CN113033823 A CN 113033823A
Authority
CN
China
Prior art keywords
matrix
model
training
output
gradient
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.)
Granted
Application number
CN202110424366.1A
Other languages
English (en)
Other versions
CN113033823B (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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology 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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202110424366.1A priority Critical patent/CN113033823B/zh
Publication of CN113033823A publication Critical patent/CN113033823A/zh
Application granted granted Critical
Publication of CN113033823B publication Critical patent/CN113033823B/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
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • Bioethics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本说明书涉及一种模型训练方法、系统和装置,能够用于数据隐私保护。该方法包括,各训练成员将自身持有的训练样本的特征数据输入至模型的第一部分,得到初始输出矩阵;接收标签预测值,基于训练样本的标签值以及所述标签预测值确定损失函数值;将所述损失函数值传输给所述服务器,以便服务器基于所述损失函数值在模型的第二部分中反向传播梯度,直到获取输出梯度矩阵;基于所述损失函数相对模型的第一部分中各层的输出数据的梯度,继续反向传播梯度,以对模型的第一部分的模型参数进行更新;基于更新后的模型的第一部分进行下一轮迭代更新,或者基于此确定最终模型的第一部分。

Description

一种模型训练方法、系统及装置
技术领域
本说明书涉及机器学习领域,特别涉及一种模型训练方法、系统及装置。
背景技术
在数据分析、数据挖掘、经济预测等领域,机器学习模型可被用来分析、发现潜在的数据价值。由于单个数据拥有方持有的数据可能是不完整的,由此难以准确地刻画目标,为了得到更好的模型预测结果,可以对不同数据拥有方持有的不同数据采用联邦学习模式进行模型训练。
因此,如何在联合学习过程中保证隐私数据安全的情况下兼顾训练效果成为有待解决的问题。
发明内容
本说明书实施例之一提供一种模型训练方法,所述方法由参与方中的任一训练成员实现,所述参与方包括多个训练成员以及服务器;其中,训练成员持有模型的第一部分以及训练样本,服务器持有模型的第二部分,所述模型的第二部分的输入层的各输入数据与所述模型的第一部分中至少两层的各输出数据分别对应;所述方法包括对模型参数进行多轮迭代更新,其中一轮迭代更新包括:将自身持有的训练样本的特征数据输入至模型的第一部分,得到初始输出矩阵;所述初始输出矩阵基于模型的第一部分中所述至少两层的输出数据生成;基于所述初始输出矩阵,确定并输出第一输出矩阵;接收标签预测值,基于训练样本的标签值以及所述标签预测值确定损失函数值;将所述损失函数值传输给所述服务器,以便服务器基于所述损失函数值在模型的第二部分中反向传播梯度,直到获取输出梯度矩阵;其中,所述输出梯度矩阵的元素包括损失函数相对所述初始输出矩阵中各元素的梯度;接收服务器返回的所述输出梯度矩阵,基于所述输出梯度矩阵确定所述损失函数相对模型的第一部分中所述至少两层的输出数据的梯度;基于所述损失函数相对模型的第一部分中所述至少两层的输出数据的梯度,继续反向传播梯度,以对模型的第一部分的模型参数进行更新;基于更新后的模型的第一部分进行下一轮迭代更新,或者基于此确定最终模型的第一部分。
本说明书实施例之一提供一种模型训练系统,所述系统布置于参与方中的任一训练成员处,所述参与方包括多个训练成员以及服务器;其中,训练成员持有模型的第一部分以及训练样本,服务器持有模型的第二部分,所述模型的第二部分的输入层的各输入数据与所述模型的第一部分中至少两层的各输出数据分别对应;所述系统用于对模型参数进行多轮迭代更新,所述系统包括初始输出矩阵获取模块、第一输出矩阵获取模块、损失函数值确定模块、传输模块、梯度计算模块、第一模型更新模块以及第一模型确定模块;在其中一轮迭代更新中:初始输出矩阵获取模块用于将自身持有的训练样本的特征数据输入至模型的第一部分,得到初始输出矩阵;所述初始输出矩阵基于模型的第一部分中所述至少两层的输出数据生成;第一输出矩阵获取模块用于基于所述初始输出矩阵,确定并输出第一输出矩阵;损失函数值确定模块用于接收标签预测值,基于训练样本的标签值以及所述标签预测值确定损失函数值;传输模块用于将所述损失函数值传输给所述服务器,以便服务器基于所述损失函数值在模型的第二部分中反向传播梯度,直到获取输出梯度矩阵;其中,所述输出梯度矩阵的元素包括损失函数相对所述初始输出矩阵中各元素的梯度;梯度计算模块用于接收服务器返回的所述输出梯度矩阵,基于所述输出梯度矩阵确定所述损失函数相对模型的第一部分中所述至少两层的输出数据的梯度;第一模型更新模块用于基于所述损失函数相对模型的第一部分中所述至少两层的输出数据的梯度,继续反向传播梯度,以对模型的第一部分的模型参数进行更新;第一模型确定模块用于基于更新后的模型的第一部分进行下一轮迭代更新,或者基于此确定最终模型的第一部分。
本说明书实施例之一提供一种隐私保护的模型训练装置,包括处理器,所述处理器布置于任一训练成员上,用于执行上述模型训练方法。
本说明书实施例之一提供一种模型训练方法,所述方法由参与方中的服务器实现,所述参与方包括多个训练成员以及服务器;其中,训练成员持有模型的第一部分以及训练样本,服务器持有模型的第二部分,所述模型的第二部分的输入层的各输入数据与所述模型的第一部分中至少两层的各输出数据分别对应;所述方法包括对模型参数进行多轮迭代更新,其中一轮迭代更新包括:接收聚合矩阵;所述聚合矩阵基于各训练成员的第一输出矩阵随机排序并按行拼接得到;训练成员的第一输出矩阵基于该训练成员的初始输出矩阵确定;利用模型的第二部分处理所述聚合矩阵得到标签预测值矩阵;所述标签预测值矩阵包括对应于各训练成员的标签预测值;输出所述标签预测值矩阵,以便各训练成员基于其持有的训练样本的标签值以及标签预测值确定损失函数值;接收训练成员传输的损失函数值,并基于所述损失函数值在模型的第二部分中反向传播梯度,以更新模型的第二部分的模型参数并获取输出梯度矩阵;所述输出梯度矩阵的元素包括损失函数相对训练成员的初始输出矩阵中各元素的梯度;向各训练成员返回所述输出梯度矩阵;基于更新后的模型的第二部分进行下一轮迭代更新,或者基于此确定最终模型的第二部分。
本说明书实施例之一提供一种模型训练系统,所述系统布设于参与方中的服务器处,所述参与方包括多个训练成员以及服务器;其中,训练成员持有模型的第一部分以及训练样本,服务器持有模型的第二部分,所述模型的第二部分的输入层的各输入数据与所述模型的第一部分中至少两层的各输出数据分别对应;所述系统用于对模型参数进行多轮迭代更新,所述系统包括聚合矩阵接收模块、标签预测值矩阵获取模块、标签预测值矩阵输出模块、第二模型更新模块、梯度矩阵输出模块以及第二模型确定模块,在其中一轮迭代更新中:聚合矩阵接收模块用于接收聚合矩阵;所述聚合矩阵基于各训练成员的第一输出矩阵随机排序并按行拼接得到;训练成员的第一输出矩阵基于该训练成员的初始输出矩阵确定;标签预测值矩阵获取模块用于利用模型的第二部分处理所述聚合矩阵得到标签预测值矩阵;所述标签预测值矩阵包括对应于各训练成员的标签预测值;标签预测值矩阵输出模块用于输出所述标签预测值矩阵,以便各训练成员基于其持有的训练样本的标签值以及标签预测值确定损失函数值;第二模型更新模块用于接收训练成员传输的损失函数值,并基于所述损失函数值在模型的第二部分中反向传播梯度,以更新模型的第二部分的模型参数并获取输出梯度矩阵;所述输出梯度矩阵的元素包括损失函数相对训练成员的初始输出矩阵中各元素的梯度;梯度矩阵输出模块用于向各训练成员返回所述输出梯度矩阵;第二模型确定模块用于基于更新后的模型的第二部分进行下一轮迭代更新,或者基于此确定最终模型的第二部分。
本说明书实施例之一提供一种隐私保护的模型训练装置,包括处理器,所述处理器布置于服务器上,用于执行上述隐私保护的模型训练方法。
本说明书实施例之一提供一种模型训练协助方法,由第三方设备实现,模型训练的参与方包括多个训练成员和服务器;所述方法包括协助参与方对模型参数进行多轮迭代更新,对其中一轮迭代更新的协助包括:随机生成多个筛选矩阵;所述筛选矩阵与训练成员的初始输出矩阵同维,其元素包括0和1;将筛选矩阵分发给训练成员;接收各训练成员的第一输出矩阵;将各训练成员的第一输出矩阵随机排序并按行拼接获得聚合矩阵,并记录排序信息;将所述聚合矩阵发送给所述服务器;接收所述服务器返回的标签预测值矩阵;基于所述排序信息确定对应于各训练成员的标签预测值,并发送给对应的训练成员。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的模型训练应用场景示意图;
图2是根据本说明书一些实施例所示的一个基于联邦学习进行模型参数更新的系统框图;
图3是根据本说明书一些实施例所示的模型训练方法中一轮迭代更新的示例性流程图;
图4是根据本说明书另一些实施例所示的一个基于联邦学习进行模型参数更新的系统框图;
图5是根据本说明书另一些实施例所示的模型训练方法中一轮迭代更新的示例性流程图;
图6是根据本说明书一些实施例所示的一个模型训练协助方法对应的系统框图;
图7是根据本说明书一些实施例所示的一个模型训练协助方法对应的示例性流程图;
图8是根据本说明书另一些实施例所示的一个模型训练协助方法对应的示例性交互流程图;
图9是根据本说明书的一些实施例所示的神经网络模型的示意图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是根据本说明书一些实施例所示的模型训练应用场景示意图。
如图1所示,场景100可以包括第一参与方110、第二参与方120、第三参与方130以及网络140。其中,参与方可以包括多个训练成员以及服务器。例如,第一参与方110可以为第一训练成员,包括处理设备110-1,存储设备110-2;第二参与方120可以为第二训练成员,包括处理设备120-1,存储设备120-2;第三参与方130可以为服务器,其包括处理设备130-1,存储设备130-2。应当理解,在一些实施例中,场景100中还可以包括更多的训练成员(如5个、6个…以至于N个)。
第一参与方110、第二参与方120均可以是带有数据获取、存储和/或发送功能的设备。在一些实施例中,第一参与方110、第二参与方120可以包括但不限于移动设备、平板电脑、笔记本电脑、台式电脑等或其任意组合。在一些实施例中,第一参与方110和第二参与方120可以接收来自第三参与方130的相关数据或发送相关数据。如第一参与方110、第二参与方120可以接收来自第三参与方的输出梯度矩阵。又例如,第一参与方110、第二参与方120可以发送损失函数值给第三参与方。
第一参与方和第二参与方的处理设备110-1和120-1可以进行数据和/或指令处理。处理设备110-1和120-1可以对数据进行计算,也可以执行相关算法和/或指令。例如,第一参与方和第二参与方的处理设备110-1和120-1可以基于自身持有的模型的第一部分处理自身持有的训练样本获得初始输出矩阵,并其进行处理后得到第一输出矩阵以传输给第三参与方。
第一参与方和第二参与方的存储设备110-2和120-2可以存储对应处理设备110-1和120-1执行使用的数据和/或指令,处理设备110-1和120-1可以通过执行或使用所述数据和/或指令以实现本说明书中的示例性方法。存储设备110-2和120-2可以分别用于存储训练样本;也可以存储指示第一参与方和第二参与方执行操作的相关指令。存储设备110-2和120-2还可以分别存储经处理设备110-1和120-1处理后数据。在一些实施例中,存储设备可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。
第三参与方130可以是带有数据处理、获取、存储和/或发送功能的设备,例如,云端服务器,终端处理设备等。在一些实施例中,第三参与方130可以接收来自第一参与方110和第二参与方120的相关数据。
第三参与方的存储设备130-2可以存储处理设备130-1执行使用的数据和/或指令,处理设备130-1可以通过执行或使用所述数据和/或指令以实现本说明书中的示例性方法。在一些实施例中,存储设备可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。
网络140可以促进信息和/或数据的交换。在一些实施例中,场景100(例如,第一参与方110、第二参与方120和第三参与方130)的一个或以上部件可以经由网络140向所述场景100中的其他有数据传输需求的部件发送信息和/或数据。例如,第二参与方120的处理设备120-1可以经由网络140从第三参与方130中获得模型的相关数据。在一些实施例中,网络140可以为任意形式的有线或无线网络,或其任意组合。
一些实施例中,场景100还可以包括第三方设备(图中未示出),用于协助多个参与方进行模型训练。
在经济、文化、教育、医疗、公共管理等各行各业拥有大量信息数据,对其进行例如数据分析、数据挖掘、以及趋势预测等的数据处理分析在越来越多场景中得到广泛应用。其中,通过数据合作的方式可以使多个数据拥有方获得更好的数据处理结果。例如,可以通过多方共享学习来获得更为准确的模型参数。
在一些实施例中,基于多方共享学习的方法可以应用于在保证各方数据安全的情况下,各方协同训练机器学习模型供多方使用的场景。在这个场景中,多个数据方拥有自己的数据以及完整的待训练模型,他们想共同使用彼此的数据来统一建模(例如,分类模型、线性回归模型、逻辑回归模型等),但并不想各自的数据(尤其是隐私数据)被泄露。例如,互联网储蓄机构A拥有一批用户数据,互联网储蓄机构B拥有另一批用户数据,基于A和B的用户数据确定的训练样本集可以训练得到性能更好的机器学习模型。A和B都愿意通过彼此的用户数据共同参与模型训练,但因为一些原因A和B不愿意自己的用户数据信息遭到泄露,或者至少不愿意让对方知道自己的用户数据信息。在一些实施例中,可以采用联邦学习的方法进行多方共享学习。联邦学习(Federated Learning)可以在多参与方或多计算结点之间开展高效率的机器学习。联邦学习可以使得多方数据在训练样本不出本地的情况下进行模型训练,只传递训练好的模型或者是梯度信息,这使得各方持有的训练样本的隐私性得到了保护。
为了进一步提高数据安全,在一些联邦学习场景中,联邦学习需要训练成员将模型数据进行加密处理并传输给服务器,对于层数较多的神经网络模型,加解密所耗费的时间较长,运算成本较大。
有鉴于此,可以采用分割学习的方式进行模型训练。分割学习方案是将所需训练的模型分割为两部分,持有训练样本的训练成员同时持有模型的第一部分,服务器持有模型的第二部分以此进行训练。以神经网络为例,假设该神经网络包括100个网络层,可以将该神经网络分割为包括前20个网络层的第一部分以及包括后80个网络层的第二部分。模型的第一部分和第二部分的划分还可以是其他形式,如第一部分包括模型的前15层,第二部分包括剩余的85层等。
在一些实施例中,模型的第一部分包含完整模型(即分割为两部分以前的原模型)的输入层,模型的第二部分包含完整模型的输出层,模型的第一部分最后一层的输出数据为模型的第二部分的输入,模型的第一部分中的除输入层以外的其余层以及第二部分中的除输出层以外的其余层则为完整模型的隐层(以下或称为计算层)。示例性的,模型的第一部分最后一层的输出数据为t*1的矩阵(或向量),则模型的第二部分可以接收这一t*1的矩阵并前向传播,得到完整模型的预测结果。在该场景的实施例中,训练成员和服务器只传输中间某一隐层(如神经网络的第20层)的输出信息,可以在一定程度上加强保护隐私数据的安全性,且避免了因数据加密产生的额外的运算成本。
在前述实施例的基础之上,在本说明书的又一些实施例中,可以基于模型的第一部分的计算层对服务器所持有模型的第二部分的输入层(即第二部分的第一计算层)进行扩充。具体的,可以将第一部分的两个或更多计算层的输出连接到第二部分的输入层中,即增加第二部分的输入层的输入端个数,以使得第二部分的输入层的各输入端能够对应接收所述模型的第一部分中至少两层的各输出数据。所述至少两层具体可以是2层~m层中的任一种,m为第一部分的计算层总数,所述至少两层可以选自m层计算层中的任一至少两层。示例性地,例如,假定第一部分的输入层(即第一部分的第一计算层)的输出数据为c1个,第二计算层的输出数据有c2个,第三计算层的输出数据有c3个,…,以此类推,最后一个计算层(第m层,即第一部分的输出层)的输出数据有cm个。将第一部分中的第一计算层和第二计算层的输出连接至第二部分的输入层,那么第二部分的输入层的输入数据个数为c1+c2个,且与第一部分的第一计算层和第二计算层的各输出数据一一对应。相比于前一种实施例分割学习模型的方式,采用本本实施例的分割学习方案,使得训练成员所持有的训练样本信息通过模型的第一部分全面、深层的前向传播,服务器可以更大限度地获得训练成员两层以上甚至全部计算层的输出信息,使模型更加准确。
图2是根据本说明书一些实施例所示的一个基于联邦学习进行模型参数更新的系统框图。
如图2所示,系统200布置在参与方中的任一训练成员上,系统200用于对模型参数进行多轮迭代更新,其可以包括初始输出矩阵获取模块210、第一输出矩阵获取模块220、损失函数值确定模块230、传输模块240、梯度计算模块250、第一模型更新模块260以及第一模型确定模块270。在其中一轮迭代更新中。
初始输出矩阵获取模块210用于将自身持有的训练样本的特征数据输入至模型的第一部分,得到初始输出矩阵;所述初始输出矩阵基于模型的第一部分中至少两层的输出数据生成。
第一输出矩阵获取模块220用于基于所述初始输出矩阵,确定并输出第一输出矩阵。
损失函数值确定模块230用于接收标签预测值,基于训练样本的标签值以及所述标签预测值确定损失函数值。
传输模块240用于将所述损失函数值传输给所述服务器,以便服务器基于所述损失函数值在模型的第二部分中反向传播梯度,直到获取输出梯度矩阵;其中,所述输出梯度矩阵的元素包括损失函数相对所述初始输出矩阵中各元素的梯度。
梯度计算模块250用于接收服务器返回的所述输出梯度矩阵,基于所述输出梯度矩阵确定所述损失函数相对模型的第一部分中所述至少两层的输出数据的梯度。
第一模型更新模块260用于基于所述损失函数相对模型的第一部分中所述至少两层的输出数据的梯度,继续反向传播梯度,以对模型的第一部分的模型参数进行更新。
第一模型确定模块270用于基于更新后的模型的第一部分进行下一轮迭代更新,或者基于此确定最终模型的第一部分。
在一些实施例中,第一输出矩阵获取模块220还用于:获取筛选矩阵;所述筛选矩阵与所述初始输出矩阵同维,其元素包括0和1;将所述初始输出矩阵与所述筛选矩阵按位相乘,获得所述第一输出矩阵。在一些实施例中,各训练成员的筛选矩阵的相同位置元素中有且仅有一个元素为1。在一些实施例中,第一输出矩阵获取模块220还用于:从第三方设备获取所述筛选矩阵;所述第三方设备用于生成各个训练成员的筛选矩阵并发送给对应的训练成员。
在一些实施例中,第一输出矩阵获取模块220还用于将所述第一输出矩阵输出给第三方设备,以便所述第三方设备将各训练成员的第一输出矩阵随机排序并按行拼接获得聚合矩阵、记录排序信息以及将所述聚合矩阵发送给所述服务器。
在一些实施例中,损失函数值确定模块230还用于从第三方设备接收所述标签预测值;所述第三方设备用于接收所述服务器返回的标签预测值矩阵、基于所述排序信息确定对应于各训练成员的标签预测值并发送给对应的训练成员。
在一些实施例中,所述系统200还可以包括第一联邦协同训练模块265,所述第一联邦协同训练模块265用于基于联邦学习算法,与其他参与方协同,对更新后的模型的第一部分的模型参数进行二次更新。
图3是根据本说明书一些实施例所示的模型训练方法中一轮迭代更新的示例性流程图。
其中,流程300中的一个或多个步骤可以由图1中任一训练成员执行。在一些实施例中,流程300可以进一步由系统200执行。在本说明书的实施例中,为了便于描述,以模型的第一部分中有3层连接至模型的第二部分的输入层,训练成员i在训练的第j轮迭代更新执行该流程300进行示例,其包括以下过程:
步骤310,将自身持有的训练样本的特征数据输入至模型的第一部分,得到初始输出矩阵;所述初始输出矩阵基于模型的第一部分中至少两层,如其中3层的输出数据生成。在一些实施例中,步骤310可以由初始输出矩阵生成模块210执行。
训练成员持有的模型的第一部分在训练开始前可以统一进行初始化,即各训练成员持有的模型的第一部分在训练开始前具有相同的初始模型参数;各训练成员也可以各自进行模型参数初始化获取初始参数不同的模型的第一部分。
在一些实施例中,在一轮迭代更新中,每个训练成员可以从自身持有的训练样本集中选出一个batch的训练样本对模型进行训练,每个batch的训练样本可以包括1条或多条训练样本,如100条。
在本实施例中,可以将模型的第一部分表示为Wc,训练成员i将自身持有的训练样本(如n个训练样本)的特征数据输入至模型的第一部分Wc进行前向传播,得到初始输出矩阵Lc,i。初始输出矩阵Lc,i基于模型的第一部分中至少两层的输出数据生成。示例性地,如模型的第一部分Wc的计算层共有m层计算层,将第1、2以及m层的输出数据组合在一起,得到初始输出矩阵Lc,i。例如,将第1层、第2层以及第m层相对同一训练样本的输出数据按列的方向拼接,进而对于一条训练样本可以得到一行拼接后的输出数据,n条训练样本对应的n行拼接后的输出数据可以进一步组成初始输出矩阵Lc,i。不难理解,初始输出矩阵Lc,i为一个n×(c1+c2+cm)的矩阵。
步骤320,基于所述初始输出矩阵,确定并输出第一输出矩阵。在一些实施例中,步骤320可以由第一输出矩阵获取模块220执行。
在一些实施例中,训练成员i可以获取筛选矩阵Mc,i,进而与其他训练成员协同,以筛选初始输出矩阵Lc,i中的元素。具体地,筛选矩阵Mc,i可以与初始输出矩阵Lc,i同维,其元素包括0和1。进一步地,将初始输出矩阵Lc,i与筛选矩阵Mc,i按位相乘,获得并输出第一输出矩阵Sc,i
在一些实施例中,筛选矩阵可以统一由其中一个训练成员或服务器生成。以共k个训练成员,且由其中的训练成员g生成筛选矩阵为例。第一训练成员可以基于初始输出矩阵的维度生成与之同维的随机矩阵Rc,1,Rc,2,…Rc,i…Rc,k,并在此基础上对随机矩阵中的相同位置元素进行比较,基于对比结果确定各训练成员对应的筛选矩阵。
在一些实施例中,各训练成员的筛选矩阵Mc,i的相同位置元素中有且仅有一个元素为1。具体地,训练成员g可以逐一将随机矩阵Rc,1,Rc,2,…Rc,i…Rc,k中每个位置的元素值进行比较,使得具有最大元素的随机矩阵该位置上的元素更改为1,其他随机矩阵在该位置上的元素相应改为0,进而生成k个筛选矩阵。例如,各随机矩阵中第一行第一列的元素中,随机矩阵Rc,i的元素值最大,则筛选矩阵Mc,i在该位置的元素为1,其他随机矩阵在该位置的元素均为零。在一些替代性实施例中,还可以设置为相同位置具有最小元素的随机矩阵在该位置上的元素更改为1,其他随机矩阵在该位置上的元素更改为0,以此生成筛选矩阵。
进一步地,训练成员g将筛选矩阵Mc,1,Mc,2,…Mc,i…Mc,k对应发送给各个训练成员,训练成员基于自身持有的初始输出矩阵与筛选矩阵按位相乘,以获得第一输出矩阵。例如,训练成员i获取筛选矩阵Mc,i后,将自身持有的初始输出矩阵Lc,i与筛选矩阵Mc,i按位相乘,获得第一输出矩阵Sc,i,并将第一输出矩阵Sc,i发送给服务器。服务器基于各训练成员上传的第一输出矩阵进行处理以获得对应的聚合矩阵。有关服务器获取聚合矩阵的更多描述可参见图5的相应说明,在此不再赘述。
可以理解,由于筛选矩阵Mc,1是一个由0,1构成的矩阵。因此,将自身持有的初始输出矩阵Lc,i与筛选矩阵Mc,i按位相乘获得第一输出矩阵Sc,i的过程可以理解为按筛选矩阵Mc,i的位置对初始输出矩阵Lc,i中的元素进行筛选的过程,其中,筛选矩阵Mc,i对应位置为0的位置在第一输出矩阵Sc,i中也为0。通过将初始输出矩阵Lc,i(即模型第一部分的输出)中的元素进行筛选,使得在能够保持训练顺利进行的前提下,减少有效信息传输,即使进行筛选处理后的输出数据泄露,攻击者也难以通过现有的信息获取隐私数据(如训练样本)相关特征,从而增加因隐私数据的安全性。
在一些实施例中,各训练成员的筛选矩阵Mc,i的相同位置元素中有且仅有一个元素为1。通过这样的方式,每轮训练中各训练成员上传的初始输出矩阵的同一位置有且仅有一个元素为非0元素。通过这样的设置,可以进一步减少每轮训练中传输的数据量,减少训练过程对于带宽及数据传输的限制。
在一些实施例中,还可以引入第三方设备(可信第三方),以替代训练成员g的上述功能。具体地,第三方设备用于生成各个训练成员的筛选矩阵,训练成员i可以基于第一输出矩阵获取模块220从第三方设备直接获取筛选矩阵Mc,i。采用第三方设备可以避免训练成员获取到其他训练成员的训练信息,从而提高训练过程的安全性。
进一步地,训练成员i获取到对应的筛选矩阵Mc,i后,将自身持有的初始输出矩阵Lc,i与筛选矩阵Mc,i按位相乘,获得第一输出矩阵Sc,i,并将第一输出矩阵Sc,i发送给第三方设备,以便所述第三方设备将各训练成员的第一输出矩阵随机排序并按行拼接获得聚合矩阵、记录排序信息以及将聚合矩阵发送给所述服务器。有关第三方设备处理的更多描述可参见图7、图8的相应描述,在此不再赘述。
需要说明的是,在矩阵传输时,可以只传输矩阵中的非零元素及其在矩阵中的位置编号,以有效降低通信量。接收方可以基于接收到的元素以及位置编号,恢复出与原矩阵同维的稀疏矩阵,其中未知元素用0元素代替。例如,筛选矩阵Mc,i以及第一输出矩阵Sc,i均为含有0元素的矩阵,在步骤320进行筛选矩阵Mc,i以及第一输出矩阵Sc,i传输的过程中,可仅传输非零元素及其在矩阵中的位置编号,省略对应0元素的位置,以进一步降低通信量。
步骤330,接收标签预测值,基于训练样本的标签值以及所述标签预测值确定损失函数值。在一些实施例中,步骤330可以由损失函数值确定模块330执行。
在一些实施例中,将第一输出矩阵Sc,i传输给所述服务器后,服务器基于各训练成员上传的第一输出矩阵Sc,i进行处理获得对应的聚合矩阵,进而将对应的聚合矩阵输入至其持有的模型的第二部分,得到模型标签预测值。在一些实施例中,可以将服务器持有的模型的第二部分表示为Ws,模型标签预测值表示为
Figure BDA0003029244720000101
训练成员i接收到的模型标签预测值
Figure BDA0003029244720000102
可以以矩阵或向量(或称为标签预测值子矩阵,简称为子矩阵)形式传输。子矩阵包括n行,与初始输出矩阵Lc,i的行一一对应,进而与n条训练样本一一对应。之后训练成员i利用所述n条训练样本标签数据和预测结果确定损失函数值。在一些实施例中,可以将训练样本标签数据表示为yi,计算得到的损失函数值表示为Lossi。在一些实施例中,根据模型的类型可以选择不同的损失函数,如将均方差损失函数或交叉熵损失函数作为损失函数等,在本说明书中不做限制。示例性地,
Figure BDA0003029244720000103
在一些实施例中,还可以引入第三方设备(可信第三方)进行步骤330的处理。具体地,训练成员i从第三方设备接收所述标签预测值;所述第三方设备用于接收所述服务器返回的标签预测值矩阵、基于所述排序信息确定对应于各训练成员的标签预测值并发送给对应的训练成员。有关第三方设备的更多描述可参见图7、图8的相应说明,在此不再赘述。
步骤340,将所述损失函数值传输给所述服务器,以便服务器基于所述损失函数值在模型的第二部分中反向传播梯度,直到获取输出梯度矩阵;其中,所述输出梯度矩阵的元素包括损失函数相对所述初始输出矩阵中各元素的梯度。在一些实施例中,步骤340可以由传输模块240执行。
损失函数值同样可以以矩阵或向量形式传输,矩阵具有n行,且与所述n条训练样本一一对应。在一些实施例中,服务器可以利用反向传播算法在第二部分中基于损失函数值得到输出梯度矩阵,同时更新第二部分的模型参数。
服务器可以从各个训练成员处以矩阵形式接收到对应训练成员的损失函数值,然后逐一将接收到的损失函数值,如Lossi,输入至模型中进行反向传播梯度,服务器基于所持有的模型的第二部分Ws得到输出梯度矩阵,在一些实施例中,输出梯度矩阵可以表示为Gs,输出梯度矩阵Gs中的元素包括损失函数值Lossi相对于初始输出矩阵Lc,i中各元素的梯度。
以图9所示的神经网络模型为例,其中包括三个网络层,共6个神经元。每个神经元处的运算与神经元6类似,进而可以使用以下两个公式来描述神经网络的前向传播过程:
z=f(y); (1)
yn=∑m∈in(n)(wm,nzm+bn)。 (2)
其中,y表示神经元的激活函数f(·)的输入数据,z表示该神经元的输出,对于模型输出层的神经元,z可以是模型对训练样本或待预测对象的预测结果;下标n或m表示神经元的序号,in(n)表示神经元n的前一层神经元的序号的集合,以图9为例,神经元4接收神经元1、神经元2以及神经元3的输出,in(4)={1,2,3}。wm,n表示神经元m映射到神经元n的权重,bn为神经元n对应的常数项。其中,wm,n以及bn组成了神经网络模型的模型参数,其取值可以通过训练获得。
通过前向传播,训练样本或待测试对象的特征数据可经神经网络模型的各网络层逐层处理,得到预测结果。
反向传播算法会对特定训练样本的预测结果与标签数据进行比较,确定网络的每个权重的更新幅度。也就是说,反向传播算法用于确定损失函数相对每个权重的变化情况(亦可称为梯度或误差导数),记为
Figure BDA0003029244720000111
以图9的示例性神经网络模型为例。首先,可以计算出损失函数值相对出输出神经元6的输出的梯度
Figure BDA0003029244720000112
当损失函数为均方差损失函数
Figure BDA0003029244720000113
时,
Figure BDA0003029244720000114
其中z6为预测结果,
Figure BDA0003029244720000115
为标签数据。后续则可以通过链式法则,计算出损失函数值相对神经元6与神经元5之间的权重w5,6的梯度以及损失函数值相对出输出神经元5的输出的梯度
Figure BDA0003029244720000116
Figure BDA0003029244720000117
以此类推,可以逐一求出损失函数值相对每个权重的梯度。
鉴于上述过程,服务器可以基于损失函数值Lossi进行反向传播梯度,直到计算出损失函数值相对初始输出矩阵中各元素的梯度,即输出梯度矩阵,与此同时,服务器还可以获得模型的第二部分Ws中每个模型参数(或权重)的梯度进而更新第二部分的模型参数。
步骤350,接收服务器返回的所述输出梯度矩阵,基于所述输出梯度矩阵确定所述损失函数相对模型的第一部分中所述至少两层中各层的输出数据的梯度。在一些实施例中,步骤350可以由梯度计算模块250执行。
可以理解的是,初始输出矩阵中的一行是将所述至少两层的输出数据按行拼接得到,因此,训练成员i可以基于原来的拼接顺序,以行为单位从输出梯度矩阵中提取出对应于同一训练样本的所述两层中各层的输出数据的梯度,以便进行反向传播。续前例,训练成员i可以从输出梯度矩阵的第3行中提取出分别损失函数分别对应于第1层、第2层以及第m层计算层各输出数据的梯度。
步骤360,基于所述损失函数相对模型的第一部分中所述至少两层的输出数据的梯度,继续反向传播梯度,以对模型的第一部分的模型参数进行更新。在一些实施例中,步骤360可以由第一模型更新模块260执行。
在一些实施例中,训练成员i可以基于损失函数值相对于第m层的输出数据的梯度从模型的第一部分Wc的第m层(即最后一层)开始,继续按照前述过程反向传播梯度,进而更新一次第一部分全部的模型参数。
在一些实施例中,训练成员i还可以在基于第m层的输出数据的梯度完成模型第一部分全部的参数更新后,继续基于损失函数值相对于其余对应层的输出数据的梯度反向传播,以进一步对模型第一部分的不同位置的模型参数进行更新。续前例,可以从第2层的输出数据的梯度从第一部分的第2层开始反向传播梯度,进而迭代更新一次模型的第一部分第1层到第2层之间模型参数。以此类推,还可以从不同的对应层迭代多次更新模型第一部分的不同位置的模型参数。
步骤370,基于更新后的模型的第一部分进行下一轮迭代更新,或者基于此确定最终模型的第一部分。在一些实施例中,步骤370可以由第一模型确定模块270执行。
在一些实施例中,第一模型确定模块270可以判断是否需要继续进行下一次迭代(即是否进行j+1轮迭代)。判断的标准可以是迭代次数是否已经达到预设迭代次数、更新后的模型是否满足预设的性能指标阈值等又或者是否收到来自服务器的终止训练的指示。若确定需要进行下一次迭代,训练成员则可基于当前次迭代过程更新后的模型的第一部分进行下一次迭代。换句话说,训练成员将在下一次迭代中将当前次迭代获得的更新后的模型的第一部分作为待训练的模型的第一部分进行下一轮迭代更新。若确定不需要进行下一次迭代,训练成员则可将当前次迭代过程中获取的更新后的模型的第一部分作为最终模型的第一部分。
需要说明的是,上述流程300是以训练成员i为例对第j轮模型迭代过程进行示例性说明。对于模型的任意其他迭代轮次,如第一轮、第二轮、…、第n轮,训练成员i均可使用如步骤310~370中的相同的方式进行实现,在此不再赘述。进一步地,上述一个或多个实施例中,训练成员i可以是训练成员{1,2,3…k}中的任意一个,其余训练成员亦可以采用如步骤310~370类似的方法执行。
在一些实施例中,流程300在基于损失函数反向传播对模型的第一部分进行更新后,还包括步骤365,基于联邦学习算法,与其他参与方协同,对更新后的模型的第一部分的模型参数进行二次更新。在一些实施例中,步骤365可以由第一联邦协同训练模块265执行。
在本说明书的实施例中,可以采用任意的联邦学习的方法实现各个训练成员之间对模型第一部分Wc的二次更新。示例性地,可以协同服务器(或者第三方设备或者训练成员中的任意一个)按如下步骤进行联邦学习:
步骤1、各训练成员将当前次迭代更新后的模型第一部分Wc的模型参数或梯度数据发送给服务器;
步骤2、服务器基于各训练成员上传的当前次迭代对应的模型第一部分Wc的模型参数或梯度数据进行聚合,如按位求和平均,得到聚合后的模型第一部分Wc
步骤3、服务器将聚合后的模型第一部分Wc下发给各个训练成员。
可以理解,经过训练成员之间的联邦训练后,各个训练成员所持有的Wc的是完全一致的,即完成了训练成员之间本地的模型二次更新。通过引入联邦学习的方法,训练成员本地可以进行深层次的模型更新,这使得模型训练的效率更高。
应当注意的是,上述有关流程300的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对上述步骤进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
图4是根据本说明书另一些实施例所示的一个基于联邦学习进行模型参数更新的系统框图。
如图4所示,系统400布置在参与方中的服务器上,系统400可以用于对模型进行多轮迭代更新,其包括聚合矩阵接收模块410、标签预测值矩阵获取模块420、标签预测值矩阵输出模块430、第二模型更新模块440、梯度矩阵输出模块450以及第二模型确定模块460。
聚合矩阵接收模块410,用于接收聚合矩阵;所述聚合矩阵基于各训练成员的第一输出矩阵随机排序并按行拼接得到;训练成员的第一输出矩阵基于该训练成员的初始输出矩阵确定。
标签预测值矩阵获取模块420,利用模型的第二部分处理所述聚合矩阵得到标签预测值矩阵;所述标签预测值矩阵包括对应于各训练成员的标签预测值。
标签预测值矩阵输出模块430,用于输出所述标签预测值矩阵,以便各训练成员基于其持有的训练样本的标签值以及标签预测值确定损失函数值。
第二模型更新模块440,接收训练成员传输的损失函数值,并基于所述损失函数值在模型的第二部分中反向传播梯度,以更新模型的第二部分的模型参数并获取输出梯度矩阵;所述输出梯度矩阵的元素包括损失函数相对训练成员的初始输出矩阵中各元素的梯度。
梯度矩阵输出模块450,用于向各训练成员返回所述输出梯度矩阵。
第二模型确定模块460,用于基于更新后的模型的第二部分进行下一轮迭代更新,或者基于此确定最终模型的第二部分。在一些实施例中,第一输出矩阵获取模块220还用于:获取筛选矩阵;所述筛选矩阵与所述初始输出矩阵同维,其元素包括0和1,各训练成员的筛选矩阵的相同位置元素中有且仅有一个元素为1;将所述初始输出矩阵与所述筛选矩阵按位相乘,获得所述第一输出矩阵。在一些实施例中,第一输出矩阵获取模块220还用于:从第三方设备获取所述筛选矩阵;所述第三方设备用于生成各个训练成员的筛选矩阵并发送给对应的训练成员。
在一些实施例中,聚合矩阵接收模块410还用于从第三方设备接收所述聚合矩阵;所述第三方设备用于将各训练成员的第一输出矩阵随机排序并按行拼接获得聚合矩阵、记录排序信息以及将所述聚合矩阵发送给所述服务器。
在一些实施例中,标签预测值矩阵输出模块430还用于向第三方设备输出所述标签预测值矩阵;所述第三方设备用于接收所述服务器返回的标签预测值矩阵、基于所述排序信息确定对应于各训练成员的标签预测值并发送给对应的训练成员。
在一些实施例中,所述系统400还包括第二联邦协同训练模块465,所述第二联邦协同训练模块465用于与各训练成员协同基于联邦学习算法,对各训练成员更新后的模型的第一部分的模型参数进行二次更新。
图5是根据本说明书另一些实施例所示的模型训练方法中一轮迭代更新的示例性流程图。
在本说明书的一些实施例中,还提供了一种模型训练方法,所述方法由参与方中的服务器实现,方法包括对模型参数进行多轮迭代更新,其中一轮迭代更新的流程500包括:
步骤510,接收聚合矩阵;所述聚合矩阵基于各训练成员的第一输出矩阵随机排序并按行拼接得到;训练成员的第一输出矩阵基于该训练成员的初始输出矩阵确定。在一些实施例中,步骤510由聚合矩阵接收模块410执行。
在一些实施例中,聚合矩阵接收模块410基于各训练成员上传的第一输出矩阵按行拼接,并随机打乱顺序得到。其中,各训练成员所上传的第一输出矩阵是基于自身持有的初始输出矩阵Lc,i与筛选矩阵Mc,i按位相乘得到的,有关第一输出矩阵Sc,i的更多描述可参见图3的相应描述,在此不再赘述。
进一步地,服务器接收到各训练成员{1,2,…,I,…k}上传的第一输出矩阵Sc,1,Sc,2,…Sc,i…Sc,k后,按行进行矩阵块聚合,得到聚合矩阵
Figure BDA0003029244720000147
具体地,可以用下式表示聚合矩阵
Figure BDA0003029244720000141
的生成过程:
Figure BDA0003029244720000142
可以理解,由于训练成员i所得的第一输出矩阵Sc,i为一个n×∑ci(如c1+c2+cm)的矩阵,因此聚合矩阵
Figure BDA0003029244720000148
为一个(n×k)×∑ci的矩阵(k为训练成员个数)。
在一些实施例中,聚合矩阵接收模块410还可以进一步基于所得的聚合矩阵
Figure BDA0003029244720000143
进行随机排序,以得到打乱位置的聚合矩阵,并记录相应的排序信息。如将Sc,1,Sc,2,…Sc,i…Sc,k中的任意位置进行交换,并记录交换后第一输出矩阵在聚合矩阵
Figure BDA0003029244720000149
中的位置信息。示例性地,排序信息可以简单记为{k,1,…2,…i}。
示例性地,在本说明书的实施例中,还可以使用位置转换矩阵N以打乱聚合矩阵
Figure BDA00030292447200001410
中第一输出矩阵Sc,1,Sc,2,…Sc,i…Sc,k的位置。在一些实施例中,可以生成k*k维单位矩阵I,并将I的列向量进行随机打乱得到位置转换矩阵N。进一步地,将位置转换矩阵N左乘聚合矩阵
Figure BDA0003029244720000145
以对聚合矩阵
Figure BDA0003029244720000146
中第一输出矩阵Sc,1,Sc,2,…Sc,i…Sc,k的位置进行变换。
即,
Figure BDA0003029244720000144
可以将
Figure BDA00030292447200001411
中的第一输出矩阵Sc,1,Sc,2,…Sc,i…Sc,k理解为矩阵块;此时,位置转换矩阵N仅对矩阵块之间的位置进行变换,不会对矩阵块之中的元素进行位置变换。示例性地,变换后的聚合矩阵S可以为[Sc,k,Sc,1,…Sc,2…Sc,i]T
因此,变换后的聚合矩阵仍然为一个(n×k)×∑ci的矩阵(k为训练成员个数)。
在一些替代性的实施例中,位置转换矩阵N也可以设置为一个非单位矩阵I的可逆矩阵。在该场景的实施例中,位置转换矩阵N会对第一输出矩阵Sc,1,Sc,2,…Sc,i…Sc,k中的元素进行缩放。在一些应用场景中,需要对某一个或几个训练成员的第一输出矩阵的元素进行放大/缩小,以增大/减小其在训练过程中的影响。例如,训练成员i的训练样本比其他训练成员的质量更高,可以适应性增大训练成员i对应Sc,i的权重(即对元素进行放大),以在后续训练过程中增大Sc,i对应元素的影响力,使得训练后的模型收敛更快。
需要说明的是,通过打乱第一输出矩阵Sc,1,Sc,2,…Sc,i…Sc,k的位置,可以使得聚合矩阵S减少数据集与隐层的一一对应关系;在此基础上,即使外界窃取到了聚合矩阵S,也无法得知聚合矩阵S中各部分应该与哪一个训练成员进行对应,也就无法知悉模型参数与数据集之间的关系,从而提高了数据隐私保护的能力。同时,将不同训练成员之间的数据进行混淆和分散,可以在各训练成员训练样本不均(非独立同分布数据集)时,避免了样本分布不均所导致的训练样本性能不佳以及不收敛的问题,有效提高了模型的训练效率。
在一些实施例中,还可以引入第三方设备(可信第三方)进行步骤510的处理,以服务器的上述功能。具体地,第三方设备用于将各训练成员的第一输出矩阵随机排序并按行拼接获得聚合矩阵、记录排序信息以及将所述聚合矩阵发送给所述服务器。聚合矩阵接收模块410仅需从第三方设备处接收聚合矩阵即可。采用第三方设备可以避免服务器获取到训练成员发送的第一输出矩阵,在第一输出矩阵经第三方设备进行乱序处理后,服务器端无法将所得的聚合矩阵中的数据(第一输出矩阵)与训练成员进行一一对应,从而提高了训练过程的安全性。有关第三方设备处理的更多描述可参见图7、图8的相应描述,在此不再赘述。
步骤520,利用模型的第二部分处理所述聚合矩阵得到标签预测值矩阵;所述标签预测值矩阵包括对应于各训练成员的标签预测值。在一些实施例中,步骤520可以由标签预测值矩阵获取模块420执行。
在步骤510获取到聚合矩阵S后,标签预测值矩阵获取模块420将聚合矩阵S输入至其持有的模型的第二部分,通过逐行前向传播,得到包含各个训练成员的各训练样本的预测值的标签预测值矩阵。在本说明书的实施例中,可以将服务器持有的模型的第二部分表示为Ws,标签预测值矩阵表示为
Figure BDA0003029244720000151
可以理解,由于步骤510中输入的聚合矩阵S是乱序排列后的,因此,服务器前向传播后输出的标签预测值矩阵
Figure BDA0003029244720000152
也是一个与聚合矩阵S相应乱序的矩阵。例如,输入的聚合矩阵S为[Sc,k,Sc,1,…Sc,2…Sc,i]T时,其对应生成的标签预测值矩阵表示为
Figure BDA0003029244720000153
即为[yk,y1,…y2…yi|T。关于前向传播以得到标签预测值矩阵的具体描述可以参见步骤320、步骤340及相关描述,在此不再赘述。
步骤530,输出所述标签预测值矩阵,以便各训练成员基于其持有的训练样本的标签值以及标签预测值确定损失函数值。在一些实施例中,步骤530可以由标签预测值矩阵输出模块430执行。
在本说明书的实施例中,在该场景的实施例中,服务器需要将标签预测值矩阵
Figure BDA0003029244720000154
中对应部分(如子矩阵)返回给步骤510中对应的训练成员,以确保损失函数值是基于同一训练样本的预测结果和标签数据确定。
在该场景的实施例中,可以基于步骤510中记录的排序信息将标签预测值矩阵
Figure BDA0003029244720000155
的顺序进行还原。在一些实施例中,基于步骤510中记录的交换后第一输出矩阵在聚合矩阵
Figure BDA0003029244720000156
中的位置信息对标签预测值矩阵
Figure BDA0003029244720000157
的顺序进行还原。例如,排序信息为{k,1,…2,…i},通过这一记录的排序信息可以适应性地将标签预测值矩阵
Figure BDA0003029244720000158
的对应项发送给对应的训练成员。
在一些实施例中,步骤510中采用位置转换矩阵N以打乱聚合矩阵
Figure BDA0003029244720000159
中第一输出矩阵Sc,1,Sc,2,…Sc,i…Sc,k的位置。在该场景的实施例中,可以获取位置转换矩阵N的逆矩阵N-1,通过逆矩阵N-1左乘对应的标签预测值矩阵
Figure BDA00030292447200001510
即可得到按顺序排列的标签预测值矩阵。优选地,当位置转换矩阵N为单位矩阵时,其矩阵的逆即为N矩阵的转置,此时,可以省去求解逆矩阵N-1的计算过程。
进一步地,各训练成员基于其持有的训练样本的标签值以及获得的标签预测值确定损失函数值。有关确定损失函数值的具体描述可以参见步骤340及相关描述,在此不再赘述。
在一些实施例中,步骤510由第三方设备进行执行。在该场景的实施例中,标签预测值矩阵输出模块430仅需将标签预测值矩阵发送给第三方设备(即步骤530由第三方设备执行),第三方设备进而将标签预测值矩阵中对应部分发送给对应的训练成员。有关第三方设备处理的更多描述可参见图7、图8的相应描述,在此不再赘述。
步骤540,接收训练成员传输的损失函数值,并基于所述损失函数值在模型的第二部分中反向传播梯度,以更新模型的第二部分的模型参数并获取输出梯度矩阵;所述输出梯度矩阵的元素包括损失函数相对训练成员的初始输出矩阵中各元素的梯度。在一些实施例中,步骤540可以由第二模型更新模块440执行。
在一些实施例中,有关基于所述损失函数值在模型的第二部分中反向传播梯度,以更新模型的第二部分的模型参数并获取输出梯度矩阵的更多描述可参见步骤320、步骤340及相关描述,在此不再赘述。
步骤550,向各训练成员返回所述输出梯度矩阵。在一些实施例中,步骤550可以由梯度矩阵输出模块450执行。
各训练成员收到输出梯度矩阵后可以在本地的模型的第一部分中继续反向传播梯度,进而得到损失函数值相对各模型参数的梯度,进而基于梯度信息更新本地的模型的第一部分的模型参数。关于反向传播算法的具体内容可以参见步骤340的相关说明,在此不再赘述。
步骤560,基于更新后的模型的第二部分进行下一轮迭代更新,或者基于此确定最终模型的第二部分。在一些实施例中,步骤560可以由第二模型确定模块460执行。
在一些实施例中,第二模型确定模块460可以判断是否需要继续进行下一次迭代(即是否进行j+1轮迭代)。判断的标准可以是迭代次数是否已经达到预设迭代次数、更新后的模型是否满足预设的性能指标阈值等又或者是否收到来自某训练成员的终止训练的请求。若确定需要进行下一次迭代,服务器则可基于当前次迭代过程更新后的模型的第二部分进行下一次迭代。若确定不需要进行下一次迭代,服务器则可将当前次迭代过程中获取的更新后的模型的第二部分作为最终模型的第二部分。
在一些实施例中,流程500在基于损失函数反向传播对模型的第一部分进行更新后,还包括步骤555,基于联邦学习算法,与其他参与方协同,对更新后的模型的第一部分的模型参数进行二次更新。在一些实施例中,步骤555可以由第二联邦协同训练模块465执行。
在本说明书的实施例中,可以采用任意的联邦学习的方法实现各个训练成员之间对模型第一部分Wc的二次更新。关于服务器协同二次更新第一部分的模型参数的更多描述可以参见图3步骤365的相关说明,在此不再赘述。
应当注意的是,上述有关流程500的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对上述步骤进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,流程500中的步骤550与步骤560可以并行执行。
图6是根据本说明书另一些实施例所示的一个模型训练协助方法对应的系统框图。
如图6所示,系统600布置在第三方设备上,第三方设备独立于参与方,系统600可以协助参与方对模型进行多轮迭代更新,其可以包括筛选矩阵生成模块610、筛选矩阵分发模块620、第一输出矩阵接收模块630、第一输出矩阵拼接模块640、聚合矩阵输出模块650以及标签预测值矩阵接收模块660以及标签预测值分发模块670。在其中一轮迭代更新的协助中。
筛选矩阵生成模块610,用于随机生成多个筛选矩阵;所述筛选矩阵与训练成员的初始输出矩阵同维,其元素包括0和1。在一些实施例中,各训练成员的筛选矩阵的相同位置元素中有且仅有一个元素为1。
筛选矩阵分发模块620,用于将筛选矩阵分发给训练成员。
第一输出矩阵接收模块630,用于接收各训练成员的第一输出矩阵。
第一输出矩阵拼接模块640,用于将各训练成员的第一输出矩阵随机排序并按行拼接获得聚合矩阵,并记录排序信息。
聚合矩阵输出模块650,用于将所述聚合矩阵发送给所述服务器。
标签预测值矩阵接收模块660,用于接收所述服务器返回的标签预测值矩阵。
标签预测值分发模块670,用于基于所述排序信息确定对应于各训练成员的标签预测值,并发送给对应的训练成员。
应当理解,图6所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,装置及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行装置,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和装置可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的装置及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
图7是根据本说明书另一些实施例所示的一个模型训练协助方法对应的示例性流程图。
步骤710,随机生成多个筛选矩阵;所述筛选矩阵与训练成员的初始输出矩阵同维,其元素包括0和1,各训练成员的筛选矩阵的相同位置元素中有且仅有一个元素为1。在一些实施例中,步骤710由筛选矩阵生成模块610执行。
筛选矩阵生成模块610可以基于训练成员的个数分别生成对应个数的筛选矩阵,且筛选矩阵与训练成员的初始输出矩阵同维(如初始输出矩阵Lc,i的维度为n*m,则生成的随机矩阵也为n*m的矩阵)。具体地,筛选矩阵生成模块610可以生成k个随机矩阵Rc,1,Rc,2,…Rc,i…Rc,k,且其中的元素为0和1。在一些实施例中,各筛选矩阵的相同位置元素中有且仅有一个元素为1,其余均为0。在一些替代性实施例中,k个随机矩阵中也可以设置有且仅有一个元素为0,其余均为1。
关于筛选矩阵的更多描述可参见图3的相关说明。
步骤720,将筛选矩阵分发给训练成员。在一些实施例中,步骤720由筛选矩阵分发模块620执行。
步骤730,接收各训练成员的第一输出矩阵。在一些实施例中,步骤730由第一输出矩阵接收模块630执行。
第一输出矩阵接收模块630接收各训练成员的第一输出矩阵。有关各训练成员上传的第一输出矩阵可参见步骤320的更多描述,在此不再赘述。
步骤740,将各训练成员的第一输出矩阵随机排序并按行拼接获得聚合矩阵,并记录排序信息。在一些实施例中,步骤740由第一输出矩阵拼接模块640执行。
在一些实施例中,第一输出矩阵拼接模块640可以基于各训练成员上传的第一输出矩阵按行拼接,并随机打乱顺序得到。其中,各训练成员所上传的第一输出矩阵是基于自身持有的初始输出矩阵Lc,i与筛选矩阵Mc,i按位相乘得到的,有关第一输出矩阵Sc,i的更多描述可参见图3的相应描述,在此不再赘述。
进一步地,第一输出矩阵拼接模块640接收到各训练成员{1,2,…,I,…k}上传的第一输出矩阵Sc,1,Sc,2,…Sc,i…Sc,k后,按行进行矩阵块聚合,得到聚合矩阵
Figure BDA0003029244720000184
具体地,可以用下式表示聚合矩阵
Figure BDA0003029244720000181
的生成过程:
Figure BDA0003029244720000182
可以理解,由于训练成员i所得的第一输出矩阵Sc,i为一个n×∑ci的矩阵,因此聚合矩阵
Figure BDA0003029244720000185
为一个(n×k)×∑ci的矩阵(k为训练成员个数)。
在一些实施例中,聚合矩阵接收模块410还可以进一步基于所得的聚合矩阵
Figure BDA0003029244720000183
进行随机排序,以得到打乱位置的聚合矩阵,并记录相应的排序信息。如将Sc,1,Sc,2,…Sc,i…Sc,k中的任意两个的位置进行交换,并记录交换后第一输出矩阵在聚合矩阵
Figure BDA0003029244720000186
中的位置信息。示例性地,若交换后的聚合矩阵为[Sc,k,Sc,1,…Sc,2…Sc,i]T,则可将排序信息可以简单记为{k,1,…2,…i}。
在一些实施例中,第一输出矩阵拼接模块640还可以使用位置转换矩阵N以打乱聚合矩阵
Figure BDA0003029244720000187
中第一输出矩阵Sc,1,Sc,2,…Sc,i…Sc,k的位置。有关聚合矩阵生成的更多描述可参见步骤510的相应说明,在此不再赘述。
步骤750,将所述聚合矩阵发送给所述服务器。在一些实施例中,步骤750可以由聚合矩阵输出模块650执行。
步骤760,接收所述服务器返回的标签预测值矩阵。在一些实施例中,步骤760可以由标签预测值矩阵接收模块660执行。
步骤770,基于所述排序信息确定对应于各训练成员的标签预测值,并发送给对应的训练成员。在一些实施例中,步骤770由标签预测值分发模块670执行。
标签预测值分发模块670需要将标签预测值矩阵
Figure BDA0003029244720000188
中对应部分返回给步骤730中第一输出矩阵对应的训练成员,以确保损失函数值是基于同一训练样本的预测结果和标签数据确定。
在该场景的实施例中,可以基于步骤740中记录的排序信息将标签预测值矩阵
Figure BDA0003029244720000191
的顺序进行还原。例如,排序信息为{k,1,…2,…i},通过这一记录的排序信息可以适应性地将标签预测值矩阵
Figure BDA0003029244720000192
的对应项发送给对应的训练成员。
在一些实施例中,步骤740中采用位置转换矩阵N以打乱聚合矩阵
Figure BDA0003029244720000193
中第一输出矩阵Sc,1,Sc,2,…Sc,i…Sc,k的位置。在该场景的实施例中,可以获取位置转换矩阵N的逆矩阵N-1,通过逆矩阵N-1左乘对应的标签预测值矩阵
Figure BDA0003029244720000194
即可得到按顺序排列的标签预测值矩阵。
可以理解,引入第三方设备(可信第三方)执行流程700,可以避免服务器获取到训练成员发送的第一输出矩阵,在第一输出矩阵经第三方设备进行乱序处理后,服务器端无法将所得的聚合矩阵中的数据(第一输出矩阵)与训练成员进行一一对应,从而提高了训练过程的安全性。
图8是根据本说明书另一些实施例所示的一个模型训练协助方法对应的示例性交互流程图。
在图8所示的流程800对应的实施场景中,训练成员i(图中101)可以代表训练成员中的任意一方;第三方设备102以及服务器103,其具体可包括如下过程:
步骤S1:第三方设备基于训练成员的数量生成筛选矩阵;
步骤S2:第三方设备将生成的筛选矩阵分发至多个训练成员;
步骤S3:训练成员基于自身持有的训练样本特征数据进行前向传播,得到初始输出矩阵,进而基于初始输出矩阵与获得的筛选矩阵确定第一输出矩阵;
步骤S4:训练成员将第一输出矩阵传输给第三方设备;
步骤S5:第三方设备基于第一输出矩阵拼接得到聚合矩阵;
步骤S6:第三方设备将得到的聚合矩阵发送给服务器;
步骤S7:服务器基于聚合矩阵前向传播获得标签预测值矩阵;
步骤S8:服务器将标签预测值矩阵返回给第三方设备;
步骤S9:第三方设备基于筛选矩阵确定各训练成员的标签预测值;
步骤S10:第三方设备将标签预测值传输给对应的训练成员;
步骤S11:训练成员基于标签预测值和自己持有的样本标签计算损失函数值;
步骤S12:训练成员将计算的损失函数值传输给服务器;
步骤S13:服务器基于损失函数值反向传播生成输出梯度矩阵,同时更新模型的第二部分;
步骤S14:服务器将梯度矩阵传输给训练成员;
步骤S15:训练成员基于输出梯度矩阵更新模型的第一部分。
本说明书实施例可能带来的有益效果包括但不限于:1)在分割学习的基础上,将训练成员多隐层进行聚合作为模型第二部分的输入,较大程度上保留了训练样本的原始信息,提高了模型准确性;2)训练成员之间采用联邦学习的方式进行二次训练,提高了训练成员本地模型收敛性,减少了训练的轮次;3)采用筛选矩阵对模型第一部分的输出进行稀疏化,减轻了通信压力;4)对第一输出矩阵的位置进行随机打乱,减少了训练样本与隐层数据之间的一一对应关系,提高了数据隐私保护的能力;5)引入第三方设备进行训练,避免服务器获得原始数据,提高了训练过程的安全性。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

Claims (17)

1.一种模型训练方法,所述方法由参与方中的任一训练成员实现,所述参与方包括多个训练成员以及服务器;其中,所述训练成员持有模型的第一部分以及训练样本,所述服务器持有模型的第二部分,所述模型的第二部分的输入层的各输入数据与所述模型的第一部分中至少两层的各输出数据分别对应;所述方法包括对模型参数进行多轮迭代更新,其中一轮迭代更新包括:
将自身持有的训练样本的特征数据输入至模型的第一部分,得到初始输出矩阵;所述初始输出矩阵基于模型的第一部分中所述至少两层的输出数据生成;
基于所述初始输出矩阵,确定并输出第一输出矩阵;
接收标签预测值,基于训练样本的标签值以及所述标签预测值确定损失函数值;
将所述损失函数值传输给所述服务器,以便服务器基于所述损失函数值在模型的第二部分中反向传播梯度,直到获取输出梯度矩阵;其中,所述输出梯度矩阵的元素包括损失函数相对所述初始输出矩阵中各元素的梯度;
接收服务器返回的所述输出梯度矩阵,基于所述输出梯度矩阵确定所述损失函数相对模型的第一部分中所述至少两层的输出数据的梯度;
基于所述损失函数相对模型的第一部分中所述至少两层的输出数据的梯度,继续反向传播梯度,以对模型的第一部分的模型参数进行更新;
基于更新后的模型的第一部分进行下一轮迭代更新,或者基于此确定最终模型的第一部分。
2.如权利要求1所述的方法,其中,基于所述初始输出矩阵,确定第一输出矩阵,包括:
获取筛选矩阵;所述筛选矩阵与所述初始输出矩阵同维,其元素包括0和1;
将所述初始输出矩阵与所述筛选矩阵按位相乘,获得所述第一输出矩阵。
3.如权利要求2所述的方法,其中,各训练成员的筛选矩阵的相同位置元素中有且仅有一个元素为1。
4.如权利要求2所述的方法,其中,所述获取筛选矩阵包括:从第三方设备获取所述筛选矩阵;所述第三方设备用于生成各个训练成员的筛选矩阵并发送给对应的训练成员。
5.如权利要求1所述的方法,其中,输出第一输出矩阵,包括将所述第一输出矩阵输出给第三方设备,以便所述第三方设备将各训练成员的第一输出矩阵随机排序并按行拼接获得聚合矩阵、记录排序信息以及将所述聚合矩阵发送给所述服务器。
6.如权利要求5所述的方法,其中,所述接收标签预测值,包括:从第三方设备接收所述标签预测值;所述第三方设备用于接收所述服务器返回的标签预测值矩阵、基于所述排序信息确定对应于各训练成员的标签预测值并发送给对应的训练成员。
7.如权利要求1所述的方法,其中,所述一轮迭代更新包括还包括:
与其他参与方协同基于联邦学习算法,对更新后的模型的第一部分的模型参数进行二次更新。
8.一种模型训练系统,所述系统布置于参与方中的任一训练成员处,所述参与方包括多个训练成员以及服务器;其中,所述训练成员持有模型的第一部分以及训练样本,所述服务器持有模型的第二部分,所述模型的第二部分的输入层的各输入数据与所述模型的第一部分中至少两层的各输出数据分别对应;所述系统用于对模型参数进行多轮迭代更新,所述系统包括初始输出矩阵获取模块、第一输出矩阵获取模块、损失函数值确定模块、传输模块、梯度计算模块、第一模型更新模块以及第一模型确定模块;在其中一轮迭代更新中:
初始输出矩阵获取模块用于将自身持有的训练样本的特征数据输入至模型的第一部分,得到初始输出矩阵;所述初始输出矩阵基于模型的第一部分中所述至少两层的输出数据生成;
第一输出矩阵获取模块用于基于所述初始输出矩阵,确定并输出第一输出矩阵;
损失函数值确定模块用于接收标签预测值,基于训练样本的标签值以及所述标签预测值确定损失函数值;
传输模块用于将所述损失函数值传输给所述服务器,以便服务器基于所述损失函数值在模型的第二部分中反向传播梯度,直到获取输出梯度矩阵;其中,所述输出梯度矩阵的元素包括损失函数相对所述初始输出矩阵中各元素的梯度;
梯度计算模块用于接收服务器返回的所述输出梯度矩阵,基于所述输出梯度矩阵确定所述损失函数相对模型的第一部分中所述至少两层的输出数据的梯度;
第一模型更新模块用于基于所述损失函数相对模型的第一部分中所述至少两层的输出数据的梯度,继续反向传播梯度,以对模型的第一部分的模型参数进行更新;
第一模型确定模块用于基于更新后的模型的第一部分进行下一轮迭代更新,或者基于此确定最终模型的第一部分。
9.一种模型训练装置,包括处理器,所述处理器用于执行如权利要求1-7中所述模型训练方法。
10.一种模型训练方法,所述方法由参与方中的服务器实现,所述参与方包括多个训练成员以及服务器;其中,所述训练成员持有模型的第一部分以及训练样本,所述服务器持有模型的第二部分,所述模型的第二部分的输入层的各输入数据与所述模型的第一部分中至少两层的各输出数据分别对应;所述方法包括对模型参数进行多轮迭代更新,其中一轮迭代更新包括:
接收聚合矩阵;所述聚合矩阵基于各训练成员的第一输出矩阵随机排序并按行拼接得到;训练成员的第一输出矩阵基于该训练成员的初始输出矩阵确定;
利用模型的第二部分处理所述聚合矩阵得到标签预测值矩阵;所述标签预测值矩阵包括对应于各训练成员的标签预测值;
输出所述标签预测值矩阵,以便各训练成员基于其持有的训练样本的标签值以及标签预测值确定损失函数值;
接收训练成员传输的损失函数值,并基于所述损失函数值在模型的第二部分中反向传播梯度,以更新模型的第二部分的模型参数并获取输出梯度矩阵;所述输出梯度矩阵的元素包括损失函数相对训练成员的初始输出矩阵中各元素的梯度;
向各训练成员返回所述输出梯度矩阵;
基于更新后的模型的第二部分进行下一轮迭代更新,或者基于此确定最终模型的第二部分。
11.如权利要求10所述的方法,其中,所述接收聚合矩阵,包括从第三方设备接收所述聚合矩阵;
所述第三方设备用于将各训练成员的第一输出矩阵随机排序并按行拼接获得聚合矩阵、记录排序信息以及将所述聚合矩阵发送给所述服务器。
12.如权利要求11所述的方法,其中,所述输出所述标签预测值矩阵,包括向第三方设备输出所述标签预测值矩阵;
所述第三方设备用于接收所述服务器返回的标签预测值矩阵、基于所述排序信息确定对应于各训练成员的标签预测值并发送给对应的训练成员。
13.如权利要求10所述的方法,其中,所述其中一轮迭代更新包括还包括:
与各训练成员协同基于联邦学习算法,对各训练成员更新后的模型的第一部分的模型参数进行二次更新。
14.一种模型训练系统,所述系统布设于参与方中的服务器处,所述参与方包括多个训练成员以及服务器;其中,训练成员持有模型的第一部分以及训练样本,服务器持有模型的第二部分,所述模型的第二部分的输入层的各输入数据与所述模型的第一部分中至少两层的各输出数据分别对应;所述系统用于对模型参数进行多轮迭代更新,所述系统包括聚合矩阵接收模块、标签预测值矩阵获取模块、标签预测值矩阵输出模块、第二模型更新模块、梯度矩阵输出模块以及第二模型确定模块,在其中一轮迭代更新中:
聚合矩阵接收模块用于接收聚合矩阵;所述聚合矩阵基于各训练成员的第一输出矩阵随机排序并按行拼接得到;训练成员的第一输出矩阵基于该训练成员的初始输出矩阵确定;
标签预测值矩阵获取模块用于利用模型的第二部分处理所述聚合矩阵得到标签预测值矩阵;所述标签预测值矩阵包括对应于各训练成员的标签预测值;
标签预测值矩阵输出模块用于输出所述标签预测值矩阵,以便各训练成员基于其持有的训练样本的标签值以及标签预测值确定损失函数值;
第二模型更新模块用于接收训练成员传输的损失函数值,并基于所述损失函数值在模型的第二部分中反向传播梯度,以更新模型的第二部分的模型参数并获取输出梯度矩阵;所述输出梯度矩阵的元素包括损失函数相对训练成员的初始输出矩阵中各元素的梯度;
梯度矩阵输出模块用于向各训练成员返回所述输出梯度矩阵;
第二模型确定模块用于基于更新后的模型的第二部分进行下一轮迭代更新,或者基于此确定最终模型的第二部分。
15.一种模型训练装置,包括处理器,所述处理器用于执行如权利要求10-13中所述模型训练方法。
16.一种模型训练协助方法,由第三方设备实现,模型训练的参与方包括多个训练成员和服务器;所述方法包括协助参与方对模型参数进行多轮迭代更新,对其中一轮迭代更新的协助包括:
随机生成多个筛选矩阵;所述筛选矩阵与训练成员的初始输出矩阵同维,其元素包括0和1;
将筛选矩阵分发给训练成员;
接收各训练成员的第一输出矩阵;
将各训练成员的第一输出矩阵随机排序并按行拼接获得聚合矩阵,并记录排序信息;
将所述聚合矩阵发送给所述服务器;
接收所述服务器返回的标签预测值矩阵;
基于所述排序信息确定对应于各训练成员的标签预测值,并发送给对应的训练成员。
17.如权利要求16所述的方法,所述多个筛选矩阵中的相同位置元素中有且仅有一个元素为1。
CN202110424366.1A 2021-04-20 2021-04-20 一种模型训练方法、系统及装置 Active CN113033823B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110424366.1A CN113033823B (zh) 2021-04-20 2021-04-20 一种模型训练方法、系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110424366.1A CN113033823B (zh) 2021-04-20 2021-04-20 一种模型训练方法、系统及装置

Publications (2)

Publication Number Publication Date
CN113033823A true CN113033823A (zh) 2021-06-25
CN113033823B CN113033823B (zh) 2022-05-10

Family

ID=76457007

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110424366.1A Active CN113033823B (zh) 2021-04-20 2021-04-20 一种模型训练方法、系统及装置

Country Status (1)

Country Link
CN (1) CN113033823B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113379039A (zh) * 2021-07-02 2021-09-10 支付宝(杭州)信息技术有限公司 一种模型训练的方法、系统及装置
CN113570041A (zh) * 2021-07-29 2021-10-29 中国地质大学(北京) 一种神经网络以及利用该神经网络压制海上光纤拖缆地震数据噪声的方法
CN114330673A (zh) * 2022-03-15 2022-04-12 支付宝(杭州)信息技术有限公司 一种对业务预测模型进行多方联合训练的方法及装置
CN114723069A (zh) * 2022-04-15 2022-07-08 支付宝(杭州)信息技术有限公司 参数更新方法、装置和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451855A (zh) * 2017-07-13 2017-12-08 南京师范大学 一种图构建与l1正则矩阵分解联合学习的推荐方法
CN110955907A (zh) * 2019-12-13 2020-04-03 支付宝(杭州)信息技术有限公司 一种基于联邦学习的模型训练方法
CN111898764A (zh) * 2020-06-23 2020-11-06 华为技术有限公司 联邦学习的方法、装置和芯片
CN111931950A (zh) * 2020-09-28 2020-11-13 支付宝(杭州)信息技术有限公司 一种基于联邦学习进行模型参数更新的方法及系统
US20210073677A1 (en) * 2019-09-06 2021-03-11 Oracle International Corporation Privacy preserving collaborative learning with domain adaptation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451855A (zh) * 2017-07-13 2017-12-08 南京师范大学 一种图构建与l1正则矩阵分解联合学习的推荐方法
US20210073677A1 (en) * 2019-09-06 2021-03-11 Oracle International Corporation Privacy preserving collaborative learning with domain adaptation
CN110955907A (zh) * 2019-12-13 2020-04-03 支付宝(杭州)信息技术有限公司 一种基于联邦学习的模型训练方法
CN111898764A (zh) * 2020-06-23 2020-11-06 华为技术有限公司 联邦学习的方法、装置和芯片
CN111931950A (zh) * 2020-09-28 2020-11-13 支付宝(杭州)信息技术有限公司 一种基于联邦学习进行模型参数更新的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陶攀等: "基于深度学习的医学计算机辅助检测方法研究", 《生物医学工程学杂志》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113379039A (zh) * 2021-07-02 2021-09-10 支付宝(杭州)信息技术有限公司 一种模型训练的方法、系统及装置
CN113379039B (zh) * 2021-07-02 2022-05-17 支付宝(杭州)信息技术有限公司 一种模型训练的方法、系统及装置
CN113570041A (zh) * 2021-07-29 2021-10-29 中国地质大学(北京) 一种神经网络以及利用该神经网络压制海上光纤拖缆地震数据噪声的方法
CN113570041B (zh) * 2021-07-29 2024-05-10 中国地质大学(北京) 一种神经网络以及利用该神经网络压制海上光纤拖缆地震数据噪声的方法
CN114330673A (zh) * 2022-03-15 2022-04-12 支付宝(杭州)信息技术有限公司 一种对业务预测模型进行多方联合训练的方法及装置
CN114723069A (zh) * 2022-04-15 2022-07-08 支付宝(杭州)信息技术有限公司 参数更新方法、装置和电子设备

Also Published As

Publication number Publication date
CN113033823B (zh) 2022-05-10

Similar Documents

Publication Publication Date Title
CN113033823B (zh) 一种模型训练方法、系统及装置
CN113011587B (zh) 一种隐私保护的模型训练方法和系统
CN111931950B (zh) 一种基于联邦学习进行模型参数更新的方法及系统
US11354539B2 (en) Encrypted data model verification
US11816226B2 (en) Secure data processing transactions
CN112989368B (zh) 多方联合进行隐私数据处理的方法及装置
CN111931216B (zh) 一种基于隐私保护的方式获取联合训练模型的方法及系统
CN112199702A (zh) 一种基于联邦学习的隐私保护方法、存储介质及系统
CN112541593B (zh) 基于隐私保护的联合训练业务模型的方法及装置
Li et al. Optimizing privacy-preserving outsourced convolutional neural network predictions
CN111079939B (zh) 基于数据隐私保护的机器学习模型特征筛选方法及装置
WO2023174018A1 (zh) 一种纵向联邦学习方法、装置、系统、设备及存储介质
Tahiri et al. New color image encryption using hybrid optimization algorithm and Krawtchouk fractional transformations
Joshi et al. A novel neural network approach for digital image data encryption/decryption
CN114491629A (zh) 一种隐私保护的图神经网络训练方法及系统
Kumar et al. A GRU and chaos-based novel image encryption approach for transport images
CN113379039B (zh) 一种模型训练的方法、系统及装置
CN115496204A (zh) 一种跨域异质场景下的面向联邦学习的评测方法及装置
Li et al. Privacy-preserving classification of personal data with fully homomorphic encryption: an application to high-quality ionospheric data prediction
CN111523674A (zh) 模型训练方法、装置及系统
CN117034307A (zh) 数据加密方法、装置、计算机设备和存储介质
Deng et al. Non-interactive and privacy-preserving neural network learning using functional encryption
CN117634633A (zh) 用于联邦学习的方法和联邦学习系统
CN111931947B (zh) 一种用于分布式模型训练的训练样本重组方法及系统
CN111523675A (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