CN113379039A - 一种模型训练的方法、系统及装置 - Google Patents
一种模型训练的方法、系统及装置 Download PDFInfo
- Publication number
- CN113379039A CN113379039A CN202110752427.7A CN202110752427A CN113379039A CN 113379039 A CN113379039 A CN 113379039A CN 202110752427 A CN202110752427 A CN 202110752427A CN 113379039 A CN113379039 A CN 113379039A
- Authority
- CN
- China
- Prior art keywords
- list
- model
- data
- training
- elements
- 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
Links
- 238000012549 training Methods 0.000 title claims abstract description 280
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000005540 biological transmission Effects 0.000 claims abstract description 172
- 239000011159 matrix material Substances 0.000 claims abstract description 61
- 230000002776 aggregation Effects 0.000 claims description 38
- 238000004220 aggregation Methods 0.000 claims description 38
- 238000003860 storage Methods 0.000 claims description 24
- 238000012512 characterization method Methods 0.000 claims description 11
- 238000012163 sequencing technique Methods 0.000 claims 2
- 238000006116 polymerization reaction Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 13
- 238000010801 machine learning Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 27
- 238000013527 convolutional neural network Methods 0.000 description 26
- 238000004364 calculation method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 239000012634 fragment Substances 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000011176 pooling Methods 0.000 description 4
- 230000000644 propagated effect Effects 0.000 description 4
- 239000004576 sand Substances 0.000 description 4
- 238000012216 screening Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000007418 data mining Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000010977 jade Substances 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书涉及一种模型的训练方法、系统及装置,可用于机器学习过程中的隐私数据保护,所述方法由参与方中的任一训练成员实现,包括:基于自身持有的训练样本进行模型训练,获得模型数据列表;从模型数据列表中的一个或多个卷积核对应的子矩阵中选取若干子矩阵,并确定所选子矩阵在模型数据列表中的第一位置信息;从模型数据列表中除卷积核对应的子矩阵以外的元素中选取若干非卷积核元素,并确定反映选取的非卷积核元素在模型数据列表中的第二位置信息;确定包括第一位置信息以及第二位置信息的传输数据列表,并将其上传至服务器;获取服务器下发的模型数据更新列表,并基于模型数据更新列表进行本地模型更新。
Description
技术领域
本说明书一个或多个实施例涉及多方协同模型训练,特别涉及一种模型训练的方法、系统及装置。
背景技术
在数据分析、数据挖掘、经济预测等领域,联邦学习可以在保证多方数据安全的情况下,协同训练机器学习模型供多方共同使用的场景。但是,联邦学习在应用于模型计算量大、参数多的情况时,需要传输的模型参数也会随之增大,这会使得联邦学习过程中数据传输量大,因而通讯传输的压力较大。
因此,有必要提出一种模型训练方法以降低联邦学习过程中的传输压力。
发明内容
本说明书一个方面提供一种模型的训练方法,所述方法由参与方中的任一训练成员实现,其中,所述参与方包括多个训练成员以及服务器;各个参与方持有结构相同的待训练模型,所述待训练模型包括一个或多个卷积层,每个卷积层包括一个或多个卷积核;所述方法包括对待训练模型进行多轮迭代更新,其中一轮迭代更新包括:基于自身持有的训练样本进行模型训练,获得模型数据列表;从所述模型数据列表中的一个或多个卷积核对应的子矩阵中选取一个或多个子矩阵,并确定选取的子矩阵在所述模型数据列表中的第一位置信息;从所述模型数据列表中除卷积核对应的子矩阵以外的元素中选取一个或多个非卷积核元素,并确定选取的非卷积核元素在所述模型数据列表中的第二位置信息;确定传输数据列表,所述传输数据列表至少基于选取的一个或多个子矩阵以及选取的非卷积核元素确定;确定传输数据位置列表,所述传输数据位置列表至少基于所述第一位置信息以及所述第二位置信息确定;将所述传输数据列表以及所述传输数据位置列表上传至服务器,以使所述服务器进行模型数据聚合;获取服务器下发的模型数据更新列表,并基于所述模型数据更新列表进行本地模型更新,将更新后的本地模型作为待训练模型进行下一次训练,或者基于此确定最终模型。
本说明书另一个方面提供一种模型的训练方法系统,所述系统置于参与方中的任一训练成员设备处,其中,所述参与方包括多个训练成员以及服务器;各个参与方持有结构相同的待训练模型,所述待训练模型包括一个或多个卷积层,每个卷积层包括一个或多个卷积核;所述系统用于对待训练模型进行多轮迭代更新,所述系统包括:模型数据列表获取模块,用于在一轮迭代更新中基于自身持有的训练样本进行模型训练,获得模型数据列表;第一位置信息确定模块,用于在一轮迭代更新中从所述模型数据列表中的一个或多个卷积核对应的子矩阵中选取一个或多个子矩阵,并确定选取的子矩阵在所述模型数据列表中的第一位置信息;第二位置信息确定模块,用于在一轮迭代更新中从所述模型数据列表中除卷积核对应的子矩阵以外的元素中选取一个或多个非卷积核元素,并确定选取的非卷积核元素在所述模型数据列表中的第二位置信息;传输数据列表确定模块,用于在一轮迭代更新中确定传输数据列表,所述传输数据列表至少基于选取的一个或多个子矩阵以及选取的非卷积核元素确定;传输数据位置列表确定模块,用于在一轮迭代更新中确定传输数据位置列表,所述传输数据位置列表至少基于所述第一位置信息以及所述第二位置信息确定;上传模块,用于在一轮迭代更新中将所述传输数据列表以及所述传输数据位置列表上传至服务器,以使所述服务器进行模型数据聚合;模型更新模块,用于在一轮迭代更新中获取服务器下发的模型数据更新列表,并基于所述模型数据更新列表进行本地模型更新,将更新后的本地模型作为待训练模型进行下一次训练,或者基于此确定最终模型。
本说明书另一个方面提供一种模型训练装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现所述模型训练的方法。
本说明书另一个方面提供一种模型的训练方法,所述方法由参与方中的服务器实现,其中,所述参与方包括多个训练成员以及服务器;各个参与方持有结构相同的待训练模型,所述待训练模型包括一个或多个卷积层,每个卷积层包括一个或多个卷积核;所述方法包括对待训练模型进行多轮迭代更新,其中一轮迭代更新包括:接收各训练成员上传的传输数据列表以及传输数据位置列表;所述传输数据列表基于训练成员从其模型数据列表中选取的一个或多个子矩阵以及一个或多个非卷积核元素确定,所述一个或多个子矩阵与一个或多个卷积核对应;所述传输数据位置列表基于第一位置信息和第二位置信息确定,所述第一位置信息为训练成员选取的子矩阵在其模型数据列表中的位置信息,所述第二位置信息为训练成员选取的非卷积核元素在其模型数据列表中的位置信息;基于各传输数据列表得到模型数据总列表;基于各传输数据位置列表得到位置数据总列表;基于所述模型数据总列表以及所述位置数据总列表确定模型数据聚合列表;向各训练成员分别返回所述模型数据聚合列表中的至少部分元素,使得各训练成员进行本地模型更新。
本说明书另一个方面提供一种模型的训练系统,所述系统置于参与方中的服务器处,其中,所述参与方包括多个训练成员以及服务器;各个参与方持有结构相同的待训练模型,所述待训练模型包括一个或多个卷积层,每个卷积层包括一个或多个卷积核;所述系统用于对模型参数进行多轮迭代更新,所述系统包括:数据接收模块,用于在一轮迭代更新中接收各训练成员上传的传输数据列表以及传输数据位置列表;所述传输数据列表基于训练成员从其模型数据列表中选取的一个或多个子矩阵以及一个或多个非卷积核元素确定,所述一个或多个子矩阵与一个或多个卷积核对应;所述传输数据列表基于第一位置信息和第二位置信息确定,所述第一位置信息为训练成员选取的子矩阵在其模型数据列表中的位置信息,所述第二位置信息为训练成员选取的非卷积核元素在其模型数据列表中的位置信息;模型数据总列表获取模块,用于在一轮迭代更新中基于各传输数据列表得到模型数据总列表;位置数据总列表获取模块,用于在一轮迭代更新中基于各传输数据位置列表得到位置数据总列表;模型数据聚合列表确定模块,用于在一轮迭代更新中基于所述模型数据总列表以及所述位置数据总列表确定模型数据聚合列表;数据传输模块,用于在一轮迭代更新中向各训练成员分别返回所述模型数据聚合列表中的至少部分元素,使得各训练成员进行本地模型更新。
本说明书另一个方面提供一种模型训练装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现所述模型训练的方法。
附图说明
本说明书将以示例性实施例的方式进一步描述,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书的一些实施例所示的进行模型更新系统的示例性应用场景图;
图2是根据本说明书的一些实施例所示的卷积神经网络(CNN)示意图;
图3是根据本说明书一些实施例所示的进行模型参数更新的系统框图;
图4是根据本说明书的一些实施例所示的进行模型参数更新的示例性流程图;
图5是根据本说明书另一些实施例所示进行模型参数更新的系统框图;
图6是根据本说明书的另一些实施例所示的进行模型参数更新的示例性流程图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本说明书中所使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
在经济、文化、教育、医疗、公共管理等各行各业拥有大量信息数据,对其进行例如数据分析、数据挖掘、以及趋势预测等的数据处理分析在越来越多的场景中得到了广泛应用。其中,通过数据合作的方式可以使多个数据拥有方获得更好的数据处理结果。例如,可以通过联邦学习综合多个数据拥有方的数据来获得性能更好的模型参数。
在一些实施例中,联邦学习可以应用于在保证各方数据安全的情况下,各方协同训练机器学习模型供多方使用的场景。在这个场景中,多个数据方(如图1中的第一方110、第二方120和第三方130)拥有自己的数据,他们想共同使用彼此的数据来统一建模(例如,分类模型、线性回归模型、逻辑回归模型、神经网络模型等),但并不想各自的数据(尤其是隐私数据)被泄露。例如,互联网储蓄机构A拥有一批用户数据,银行B拥有另一批用户数据,基于A和B的用户数据确定的训练样本集可以训练得到性能更好的机器学习模型。A和B都愿意通过彼此的用户数据共同参与模型训练,但因为一些原因A和B不愿意自己的用户数据信息遭到泄露,或者至少不愿意让对方知道自己的用户数据信息。一种典型的联合学习可以是基于联邦学习的模型训练。
图1是根据本说明书的一些实施例所示的基于联邦学习进行模型更新或训练的示例性应用场景图。
需要注意的是,图1仅作为示例性的说明,图1中训练成员的数量可以为两方,在其他实施例中,还可以包括第三方训练成员、第四方训练成员以至第N方训练成员等。
在一些实施例中,场景100包括第一方110、第二方120、第三方130以及网络140。其中,第一方110可以理解为第一方训练成员,包括处理设备110-1,存储设备110-2;第二方120可以理解为第二方训练成员,包括处理设备120-1,存储设备120-2;第三方130包括处理设备130-1,存储设备130-2。在一些实施例中,第三方130可以是训练成员,包含训练样本。在另一些实施例中,第三方130也可以是公共服务器,不包含训练样本,仅进行计算和数据存储,例如基于各训练成员提供的传输数据列表以及传输数据位置列表以获取对应的模型数据聚合列表。
第一方110、第二方120均可以是带有数据获取、存储和/或发送功能的设备。在一些实施例中,第一方110、第二方120可以包括但不限于移动设备、平板电脑、笔记本电脑、台式电脑等或其任意组合。在一些实施例中,第一方110和第二方120可以接收来自第三方130的相关数据。例如,第一方110可以接收来自第三方的下发的模型数据更新列表。
第一方和第二方的处理设备110-1和120-1可以进行数据和/或指令处理。处理设备110-1和120-1可以对数据进行计算,也可以执行相关算法和/或指令。例如,第一方110的处理设备110-1可以接收来自第三方130的下发的模型数据更新列表,并基于模型数据更新列表进行本地模型更新。
第一方和第二方的存储设备110-2和120-2可以存储对应处理设备110-1和120-1执行使用的数据和/或指令,处理设备110-1和120-1可以通过执行或使用所述数据和/或指令以实现本说明书中的示例性方法。存储设备110-2和120-2可以分别用于存储多轮迭代生成的模型数据列表;也可以存储第一方和第二方各自持有的训练样本。在一些实施例中,存储设备110-2和存储设备120-2也可以是一个存储设备,其中,第一方和第二方只能从该存储设备中获取自己存储的数据。在一些实施例中,存储设备可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。
第三方130可以是带有数据获取、存储和/或发送功能的设备,例如,云端服务器,终端处理设备等。在一些实施例中,第三方130可以接收来自第一方110和第二方120的相关数据。例如,第三方130可以接收来自第一方110的上传的与传输数据列表以及传输数据位置列表。
第三方的存储设备130-2可以存储处理设备130-1执行使用的数据和/或指令,处理设备130-1可以通过执行或使用所述数据和/或指令以实现本说明书中的示例性方法。存储设备130-2可以用于存储模型数据聚合列表;也可以存储指示第一方和第二方执行操作的相关指令。在一些实施例中,存储设备可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。
网络140可以促进信息和/或数据的交换。在一些实施例中,场景100的一个或以上部件可以经由网络140向所述场景100中的其他有数据传输需求的部件发送信息和/或数据。例如,第一方110的处理设备110-1可以通过网络140接收第三方130的处理设备130-1下发的模型数据更新列表。在一些实施例中,网络140可以为任意形式的有线或无线网络,或其任意组合。
在一些实施例中,基于联邦学习的模型训练常应用于模型计算量大、参数多的情况,这会对训练过程中的通讯传输产生较大的压力。因此,在采用联邦学习进行模型训练的应用场景中,往往需要采用一定的方法降低传输过程中的通讯压力。
在一些实施例中,采用联邦学习进行模型的每一次迭代更新的过程中,可以采用参数选择机制对模型梯度矩阵或者是模型参数矩阵进行压缩。具体地,参数选择机制是将参数(如梯度值或者是模型参数)按照一定的传输比例提取一部分参数传至服务器,这能大幅度地降低总传输量。
在一些实施场景中,联邦学习联合训练的模型是卷积神经网络模型(CNN),如图2所示为一个典型的卷积神经网络(CNN)示意图。图中,卷积神经网络包括1,2,…,n个卷积层以及全连接层。每个卷积层中包括多个卷积核,每个卷积核对应于一个子矩阵,子矩阵的元素即为卷积核的元素。这一子矩阵通常设置为低维方形矩阵(例如3*3,5*5等维度的矩阵),其作用是将输入的图像进行特征提取和转化。
在以卷积神经网络(CNN)进行联邦学习的过程中,如果采用参数选择机制对部分参数进行选择,则会出现以下问题:1)由于每一个卷积核对应的子矩阵的元素有限,如果采用较小的传输比例参数对参数进行提取,提取出的部分参数容易出现卷积核对应的子矩阵元素全为0的情况,极大降低了模型的收敛速度;2)如果采用较大传输比例参数对参数进行提取,则对通讯压力的改善并不明显;3)采用参数选择机制破坏了卷积核对应子矩阵的原始结构,也就丧失了卷积核原有的处理功能,如破坏或降低对输入的图像矩阵的特征提取能力,降低了模型精度。
有鉴于此,在本说明书涉及的一个或多个实施例中,涉及一种模型训练方法,该方法是以卷积核对应的子矩阵作为一个整体单元进行参数筛选,从而保全了CNN模型中各个卷积核的处理能力。可以理解,不同的训练成员可以上传不同的卷积核(如某一个或多个完整的卷积核)。如此设置不仅可以避免元素全部元素为0的情况,从而保证了模型的收敛速度;也可以保留卷积核的处理能力,保证了不同的训练成员可以持有个性化的本地模型,增加了各训练成员对非独立同分布(Non-IID)数据集的适应能力。
为了便于理解本说明书技术内容,在详细阐述本说明书技术方案之前,先对卷积神经网络(CNN)的一般结构进行说明。
图2是根据本说明书的一些实施例所示的卷积神经网络(CNN)示意图。
为方便理解,本说明书中的一个或者多个实施例将具体结合图2所示的CNN模型进行说明。如图2所示的CNN模型中共有n个卷积层,每个卷积层中又设置有若干卷积核,且每个卷积层中的卷积核的数量可以不同。例如,图2中的第一卷积层中有4个卷积核,第二卷积层中有6个卷积核,第三卷积层有6个卷积核。在本说明书的一个或多个实施例中,以卷积核对应的子矩阵示例性地设置为3*3矩阵进行说明。可以理解,卷积核对应的子矩阵可以是任意的其他的方阵(如7*7,11*11,17*17等等),每一卷积层中的卷积核规模可以不同,本说明书在此不做限制。
每一卷积层中的卷积核可以按照卷积层中的排列顺序进行编号。如图2中的第一卷积层中有4个卷积层,其对应编号分别为1-1、1-2、1-3、1-4,其中,符号“-”之前的数字表示卷积层数,“-”之后的数字表示卷积核在该卷积层中的次序。又例如,图2中的第二卷积层中有6个卷积层,其对应编号可以依次设置为2-1、2-2、2-3、2-4、2-5、2-6。类似地,第三卷积层中有6个卷积层,依次编号为3-1、3-2、3-3、3-4、3-5、3-6。
在本说明书涉及的一个或多个实施例中,模型数据列表包括所有卷积核对应的子矩阵以及全连接层的元素。由于每一卷积层包含的卷积核数量可以不同,每个卷积核的规模也可以不同,卷积层与全连接层的参数规模也可以不同,因此,模型数据列表并不是一个严格数学意义上的矩阵。在一些实施例中,模型数据列表可以分区块完整存储各个卷积核对应的子矩阵以及全连接层的参数。例如,模型数据列表可以将各层按照矩阵“行”的方向顺序排列。具体地,第一行可以对应第一卷积层,第一“行”分块存储有第一卷积层的1-1、1-2、1-3、1-4这4个卷积核对应的子矩阵将2-1、2-2、2-3、2-4、2-5、2-6这6个卷积核对应的子矩阵分块存储在列表的第二“行”,...将全连接层的元素排至最后一“行”。在一些实施例中,也可以将各层按照“列”的方向顺序进行排列。
在本说明书一个或多个实施例中提及的第一位置稀疏列表指的是需要上传的卷积核作为一个整体在模型数据列表中的位置(即第一位置信息),如1-1卷积核在模型数据列表中的位置为第一行第一列。同理,第二稀疏列表指的是需要上传的非卷积核元素在模型数据列表中位置信息(如选中的全连接层中的元素在全连接层中的位置信息)。在一些实施例中,第二位置稀疏列表可以是一个严格意义上的矩阵,其维度与全连接层维度相同(如3行×256列),其每一个元素与全连接层的元素一一对应。
下面以图2中所示的210为例说明卷积核(卷积核1-1为例)对应子矩阵对图像数据的处理过程。在210中,输入的图像已经被转化为图像矩阵,经过卷积核对应子矩阵对图像矩阵中的同维度子矩阵中的元素进行卷积计算(如,对应元素相乘求和),得到包括一个元素的卷积结果。如图2所示,输入图像中的所选中的一个3*3矩阵大小的图像经过卷积核对应子矩阵(3*3矩阵)进行卷积计算后,得到的是一个输出后的元素,如此反复遍历输入图像的所有元素,得到了卷积核1-1对应的输出。而第一卷积层中有4个卷积核,每个卷积核对应的子矩阵都会对输入的图像进行如此地处理,得到对应的输出数据,即可以得到4个通道输出的数据(亦可看作图像数据)。对于第二卷积层而言,其输入即为第一卷积层输出的图像(如4个通道输出的图像数据),第二卷积层按照上述方式对输入的若干图像按照卷积核对应的子矩阵依次进行卷积运算,即可得到第二卷积层对应的输出图像。如此反复直至最后一层卷积层(即第n层卷积层)。全连接层与最后一层卷积层(即第n层卷积层)的所有通道输出的图像数据的元素全部连接。在一些实施例中,全连接层可以仅有一层。在一些实施例中,全连接层也可以有多层,多层全连接层中后一层中的所有神经元与前一层的所有神经元相连。
以上实施例中训练样本示例性地设置为图像数据。在一些替代性实施例中,训练样本还可以包括但不限于图像数据、文本数据、视频数据和音频数据等一种或多种的组合。
需要说明的是,图2所示的CNN网络仅作为示例,并不应被看作是对本说明书涉及模型的限制。在一些其他CNN中,卷积层与卷积层、卷积层与全连接层之间还可以设置有一个或者多个池化层。本领域技术人员可以任意地在如图2所示的卷积层之间增加一个或多个池化层,或者将全连接层可以替换为其他的前馈网络,类似这样的变化,依然在本说明书的保护范围内。由于池化层不具有模型参数,因此池化层的存在并不影响模型数据列表的规模。
图3是根据本说明书一些实施例所示的一个进行模型参数更新的系统框图。
在一些实施例中,系统300布置在参与方中的任一训练成员上,以实现模型参数的多轮迭代更新。其中,参与方包括多个训练成员以及服务器,系统可以包括模型数据列表获取模块310,第一位置信息确定模块320,第二位置信息确定模块330,传输数据列表确定模块340,传输数据位置列表确定模块350,上传模块360,模型更新模块370。
模型数据列表获取模块310,用于在一轮迭代更新中基于自身持有的训练样本进行模型训练,获得模型数据列表;
第一位置信息确定模块320,用于在一轮迭代更新中从模型数据列表中的一个或多个卷积核对应的子矩阵中选取一个或多个子矩阵,并确定反映选取的子矩阵在模型数据列表中的第一位置信息;
第二位置信息确定模块330,用于在一轮迭代更新中从模型数据列表中除卷积核对应的子矩阵以外的元素中选取一个或多个非卷积核元素,并确定反映选取的非卷积核元素在模型数据列表中的第二位置信息;
传输数据列表确定模块340,用于在一轮迭代更新中确定传输数据列表,传输数据列表至少基于选取的一个或多个子矩阵以及选取的非卷积核元素确定;
传输数据位置列表确定模块350,用于在一轮迭代更新中确定传输数据位置列表,传输数据位置列表至少基于第一位置信息以及第二位置信息确定;
上传模块360,用于在一轮迭代更新中将传输数据列表以及传输数据位置列表上传至服务器,以使服务器进行模型数据聚合;
模型更新模块370,用于在一轮迭代更新中获取服务器下发的模型数据更新列表,并基于模型数据更新列表进行本地模型更新,将更新后的本地模型作为待训练模型进行下一次训练,或者基于此确定最终模型。
在一些实施例中,第一位置信息确定模块320还用于分别从模型数据列表中的各卷积层中的一个或多个卷积核对应的子矩阵中选取一个或多个子矩阵。在一些实施例中,第一位置信息确定模块320进一步用于:对每一个卷积层,确定第一选取比例,基于第一选取比例以及卷积层中卷积核的个数确定第一选取个数;获取卷集层中各个卷积核对应的子矩阵的第一表征值;将各第一表征值进行排序,基于第一选取个数选出排序在前的若干第一表征值对应的子矩阵。在一些实施例中,第一表征值包括范数值;排序为降序排序;第一选取比例与迭代次数负相关。在一些实施例中,所述第一位置信息通过第一位置稀疏列表表征;第一位置稀疏列表包含与各卷积层对应的行或列,其中每一行或列中的元素与对应卷积层中的各卷积核对应;第一位置稀疏列表中,与选取的一个或多个子矩阵对应的卷积核位置对应的元素为1,其余元素为0。
在一些实施例中,第二位置信息确定模块330进一步用于:确定第二选取比例,基于第二选取比例以及模型数据列表中除卷积核对应的子矩阵以外的元素的数量确定第二选取个数;将模型数据列表中除卷积核对应的子矩阵以外的元素进行排序,基于第二选取个数选出排序在前的若干元素作为选取的一个或多个非卷积核元素。在一些实施例中,上述元素的排序可以基于绝对值降序排序;且第二选取比例与迭代次数负相关。
在一些实施例中,待训练模型还包括全连接层,选取的非卷积核元素来自全连接层;所述第二位置信息通过第二位置稀疏列表表征;第二位置稀疏列表包含与全连接层对应的矩阵,矩阵中的元素与全连接层的模型参数对应;第二位置稀疏列表中,与选取的一个或多个非卷积核元素位置对应的元素为1,其余元素为0。
在一些实施例中,上传模块360上传给服务器的还包括当前次迭代的训练样本数量;其中,至少将传输数据列表以及传输数据位置列表以密文形式上传给服务器。
在一些实施例中,所述传输数据列表包括选取的一个或多个子矩阵以及选取的非卷积核元素;所述第一位置信息通过第一位置稀疏列表表征,所述第二位置信息通过第二位置稀疏列表表征;所述传输数据位置列表包括所述第一位置稀疏列表以及所述第二位置稀疏列表;或者,所述传输数据列表包括当前次迭代的训练样本数量分别与选取的一个或多个子矩阵、以及选取的非卷积核元素的乘积;所述传输数据位置列表包括当前次迭代的训练样本数量分别与所述第一位置稀疏列表、以及所述第二位置稀疏列表的乘积。
在一些实施例中,模型数据列表中的元素为模型参数;服务器下发的模型数据更新列表包括与传输数据列表中的元素位置对应的聚合模型参数;此时,模型更新模块370还用于,将模型数据列表中的相应元素替换为模型数据更新列表中的聚合模型参数,得到更新后的本地模型。
在一些实施例中,模型数据列表中的元素为梯度数据;服务器下发的模型数据更新列表包括与传输数据列表中的元素位置对应的聚合梯度数据。在该场景的实施例中,模型更新模块370还用于:将模型数据列表中的相应元素替换为模型数据更新列表中的聚合梯度数据;基于替换后的模型数据列表中的元素确定与各模型参数分别对应的调参量;将待训练模型在当前次迭代中的原模型参数减去对应的调参量,得到更新后的本地模型。
应当理解,本说明书一个或多个实施中的所述系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于处理设备及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。
在本说明书中,约定按以下方式表示:
对于联邦学习模型训练,包括多个参与方,参与方包括至少一个服务器和k个训练成员(如训练成员1、2、3、…、k),训练成员是指参与联邦学习模型训练的数据持有者,其中,训练成员i的训练样本(集合)的特征数据为Xi,标签为Yi,其中,i={1,2,3...k}。
在说明书中,各训练成员具有结构相同的待训练模型,因此各训练成员具有相同结构和规模的模型数据列表,假定待训练模型具有1个卷积层以及全连接层,则训练成员i的卷积层记为Ci,s,s是卷积层1,2,...,l的任意一个,全连接层即为Ci,f,f是...表示全连接层,第一角标i代表模型数据列表对应的训练成员i。
需要说明的是,在本说明书的一个或多个实施例中,模型数据列表包括卷积核元素和非卷积核元素。非卷积核元素是指模型数据列表中除卷积核对应的子矩阵以外的元素。在一些实施例中,非卷积核元素可以是全连接层的元素,也可以是其他网络的元素。
下面,以训练成员i为例对流程400的具体实施过程进行示例性说明,可以理解,训练成员i可以是训练成员1、2、3、…、k中的任意一个。应当理解,模型数据列表中的元素可以是模型参数也可以是模型梯度。
图4是根据本说明书的一些实施例所示的进行模型参数更新的示例性流程图;在一些实施例中,流程400可以由各训练成员(如第一方110的处理设备)执行。
步骤410,基于自身持有的训练样本进行模型训练,获得模型数据列表。在一些实施例中,步骤410可以由模型数据列表获取模块310完成。
首先,训练成员i可以获取本地样本数据集中一定数据量的样本数据ni。其中,ni是指训练成员每次迭代中用于进行模型训练的训练样本数量。在一些实施例中,ni可以为100,200,300等。不难理解,不同训练成员的ni所包含的训练样本数量可以相同,也可以不同;或者同一训练成员在不同迭代轮次中的训练样本数量可以相同,也可以不同。对于任一训练样本,训练成员i可以基于待训练模型对训练样本中的特征数据xi进行前向传播,得到预测标签
之后,根据计算得到的预测标签以及训练成员i的训练数据中的标签yi之间的误差,计算得到损失函数Li,进而利用反向传播算法得到梯度元素列表其中,反向传播是指误差通过输出层,向隐层、输入层逐层反传,依次确定各层的模型参数的修正值(或梯度)。其中,梯度元素列表包含训练得到的多个梯度元素,且梯度元素列表的梯度元素与模型参数一一对应,每个梯度元素反映模型参数的修正方向(增加或减小)以及修正量。在一些实施例中,可以将梯度元素列表作为所述模型数据列表
在一些实施例中,还可以进一步地,基于梯度元素列表进行对当前轮的原模型参数进行更新,即可得到本地初步更新的模型参数列表并将所述模型参数列表作为所述模型数据列表具体地,本地初步更新的模型参数列表可以表示为:
其中,γi表示训练成员i预先设置好的学习率,可以理解,不同训练成员的预设学习率γi可以相同,也可以不同。
在一些实施例中,当当前轮为首轮迭代更新时(即第一轮迭代更新时),各训练成员可以基于与其他参与方约定或共识确定的待训练模型的结构,并初始化生成模型参数。各训练成员的模型参数可以是不同的,如各训练成员可以在本地自行随机化生成模型参数。在一些实施例中,各训练成员的初始化模型参数也可以是相同的,如由服务器或某训练成员生成待训练模型的初始化模型参数,并分发给其他各训练成员。
步骤420,从所述模型数据列表中的一个或多个卷积核对应的子矩阵中选取一个或多个子矩阵,并确定选取的子矩阵在所述模型数据列表中的第一位置信息。在一些实施例中,步骤420由第一位置信息确定模块320完成。
在一些实施例中,第一位置信息确定模块320可以基于步骤410中确定的模型数据列表随机选取若干个卷积核对应的子矩阵,并对应将选取的卷积核对应的子矩阵在模型数据列表中的位置形成第一位置稀疏列表以此表征第一位置信息。在一些实施例中,第一位置稀疏列表的维度与模型数据列表的维度完全一致。在第一位置稀疏列表中,将选中卷积核位置对应子矩阵的全体元素设置为1,其余元素设置为0。位置对应的元素是指与选中卷积核所包含元素在模型数据列表中的位置相对应(如相同)的元素。以图2所示的卷积神经网络进行具体说明,图2所示卷积神经网络共有3个卷积层,每个卷积层中分别有4个、6个、6个卷积核,卷积核的大小均为3*3的矩阵,按照上述方式,该卷积神经网络对应生成的第一位置稀疏列表可以是一个包含(3×3)×(4+6+6)=144个元素的列表,其中,第一“行”(从上到下)包括按“列”(从左到右)排布的4个3×3的子矩阵,第二“行”(从上到下)包括按“列”(从左到右)排布的6个3×3的子矩阵,第三“行”(从上到下)包括按“列”(从左到右)排布的6个3×3的子矩阵。进一步地,将第一位置稀疏列表中的被选取的卷积核对应子矩阵位置对应的元素全部置为1,其余元素置为0。承上例,假设选取的卷积核对应的子矩阵为1-1,2-5这两个卷积核,则将第一位置稀疏列表中第一“行”的第一个子矩阵以及第二“行”第五个子矩阵的元素置1,其余元素置0。
在本说明书的一个或多个实施例中,是以卷积核对应的子矩阵为整体进行选取,因此,可以将卷积核对应的子矩阵视为整体,以形成对应的第一位置稀疏列表此时,第一位置稀疏列表的行数或者列数与各卷积层的层数对应,对应的列或行中的元素与对应卷积层中的卷积核的数量对应。例如,第一位置稀疏列表的列数等于卷积层的层数,每列中元素的数量与各层卷积核的数量相等。仍然以图2所示的卷积神经网络进行具体说明,图2所示卷积神经网络共有3个卷积层,每个卷积层中分别有4个、6个、6个卷积核,按照上述方式,该卷积神经网络对应生成的第一位置稀疏列表可以是一个3列的列表(列数与卷积层相等);每列中的元素数量分别为4个、6个、6个。1-2卷积核对应第一位置稀疏列表第1列第2行的元素,以此类推。进一步地,将第一位置稀疏列表中的选取的卷积核对应的元素置为1,其余元素置为0。承上例,假设选取的卷积核对应的子矩阵为1-1,2-5这两个卷积核,则将第一位置稀疏列表中第1列第1行的元素、第2列第5行的这两个元素置为1,其余元素均置为0。可以理解,采用本实施例的方式,第一位置稀疏列表的维度更小,这可以进一步压缩传输的数据量。
需要说明的是,本领域技术人员可以对本说明书涉及的方案进行适应性的变换。例如,将模型中的各卷积层按行排列或者按列排列;又例如,各异性地设置选择出的子矩阵对应位置的在第一位置稀疏列表中的元素值(如将选出卷积核对应的元素设置为2,3,4...)。类似这样的变化,依然在本说明书涉及的保护范围内。
在一些实施例中,可以在每个卷积层选择一个或多个卷积核对应的子矩阵进行上传。进一步可以采用第一表征值对每个卷积层中的卷积核对应的子矩阵进行评估,并进一步筛选出对模型影响较大的子矩阵进行上传。具体地,对训练成员i任意的卷积层Wi,s(s是1,2,...,1卷积层中的任意一个),包括以下子步骤1~3:
步骤1)确定第一选取比例βi,s,基于第一选取比例βi,s以及卷积层中卷积核的个数确定第一选取个数。
各训练成员的第一选取比例βi,s可以是不同的,如各训练成员可以在本地自行随机化生成第一选取比例。在一些实施例中,第一选取比例也可以是相同的,如由服务器或某训练成员生成第一选取比例,并分发给其他各训练成员。在一些实施例中,同一训练成员中不同卷积层对应的第一选取比例可以是不同的,如βi,s、和βi,s-1可以设置为不同的参数。
在一些实施例中,第一选取比例还可以是一个与迭代次数负相关的可变数。例如,对于第m次迭代的卷积层Wi,s的第一选取比例(ρ为值小于1的衰减系数)。代表卷积层Wi,s的m次迭代的第一选取比例,代表卷积层Wi,s前一次迭代的第一选取比例,m代表当前迭代的次数。通过这样的设置,使得训练成员i在每次迭代训练中上传至服务器的卷积核的数量会随着迭代次数增加而逐次减小。这样既能保证模型收敛的稳定性,又能在模型经过多次迭代更新稳定之后大幅地降低传输量。不难理解,第一选取比例β还可以按照其他方式设置以实现与迭代次数的负相关,本说明书对此不做限制。例如:
进一步地,基于第一选取比例βi,s与卷积层(如Wi,s)中卷积核的个数的乘积,即可确定第一选取个数。在一些实施例中,当乘积不是一个整数时,可以采用诸如取整的方式获取到对应的第一选取个数。例如,可以采用四含五入,向上取整,向下取整等方式,本说明书在此不做限制。
步骤2)获取卷集层Wi,s中各个卷积核对应的子矩阵的第一表征值。第一表征值可以是用来衡量卷积核数值对模型影响大小的指标。在一些实施例中,第一表征值可以包括范数值。示例性的,第一表征值可以设置为2-范数,2-范数是对卷积核对应子矩阵中的所有元素的平方求和后再开方,可以整体地衡量整个卷积核中的元素的取值大小水平。可以认为,卷积核元素的整体取值越大,其对模型的影响也越大。在一些其他替代性实施例中,还可以采用其他方式计算第一表征值,如采用平方和、加权求和、绝对值求和、1-范数、无穷范数等方式进行第一表征值的计算,类似这样的方式,依然在本说明书的范围内。
步骤3)将各第一表征值进行排序,基于第一选取个数选出排序在前的若干第一表征值对应的子矩阵。在一些实施例中,当采用2-范数作为第一表征值时,排序方式可以设置为降序排列。可以理解,卷积核对应子矩阵的2-范数越大,其中元素的整体绝对值越大,对模型进行迭代更新时的影响越大,那么这些子矩阵对于模型参数更新更重要,应当优先上传。
步骤430,从所述模型数据列表中除卷积核对应的子矩阵以外的元素中选取一个或多个非卷积核元素,并确定选取的非卷积核元素在所述模型数据列表中的第二位置信息。在一些实施例中,步骤430由第二位置信息确定模块430完成。
在一些实施例中,选取的非卷积核元素包含来自于卷积层以外的元素。在一些实施例中,模型除了卷积层以外只包含全连接层,此时,第二位置稀疏矩阵可以设置为与全连接层的维度完全一致。例如,全连接层的维度为3×9的参数矩阵,则第二位置稀疏矩阵也可以设置为3×9的矩阵。在第二位置稀疏矩阵中,与选取的非卷积核元素在全连接层参数矩阵中的位置相同的元素为1,其余元素为0。例如,在全连接层参数矩阵中的第2行第1个元素、第3行第5个元素被选取,则第二位置稀疏矩阵中的第2行第1个元素与第3行第5个元素均为1,其余元素为0。
在一些实施例中,第二位置信息确定模块430还可以根据非卷积核元素绝对值的大小进行筛选,选取部分非卷积核元素进行上传。具体地,对训练成员i任意的非卷积层Wi,f(f是1,2,...,k个全连接层中的任意一个),包括以下子步骤11~12所示:
步骤11)确定第二选取比例ai,f,基于第二选取比例ai,f以及模型数据列表中除卷积核对应的子矩阵以外的元素的数量确定第二选取个数。可以理解,不同训练成员的第二选取比例可以是相同的,也可以是不同的。
在一些实施例中,与第一选取比例类似,第二选取比例ai,f也可以是一个与迭代次数负相关的可变数。有关于比例系数与迭代次数负相关的具体设置可以参见子步骤1的相应描述,在此不再赘述。
进一步地,基于第二选取比例αi,f与非卷积层(如Wi,f)中元素个数的乘积,即可确定第二选取个数。在一些实施例中,当所得乘积不是一个整数时,可以采用诸如取整的方式获取到对应的第一选取个数。例如,可以采用四含五入,向上取整,向下取整等方式,本说明书在此不做限制。
步骤12)将所述模型数据列表中除卷积核对应的子矩阵以外的元素进行排序,基于所述第二选取个数选出排序在前的若干元素作为选取的一个或多个非卷积核元素。可以理解,非卷积核元素的绝对值越大,对于模型参数更新更重要,应当优先上传。
步骤440,确定传输数据列表,所述传输数据列表至少基于选取的一个或多个子矩阵以及选取的非卷积核元素确定。在一些实施例中,步骤440由传输数据列表确定模块340完成。
在一些实施例中,所述传输数据列表包括选取的一个或多个子矩阵以及选取的非卷积核元素。具体的,传输数据列表确定模块340可以基于步骤420中选择的卷积核对应的子矩阵中的元素、步骤430选择的非卷积核元素进行拼接,形成传输数据列表传输数据列表可以是将选中的所有元素按行或者按列的方向排列。示例性地,传输数据列表可以将卷积核对应子矩阵的元素按顺序排成一“行”,将全连接层的元素排成另一“行”。
步骤450,确定传输数据位置列表,所述传输数据位置列表至少基于所述第一位置信息以及所述第二位置信息确定。在一些实施例中,步骤450可以由传输数据位置列表确定模块350完成。
在一些实施例中,第一位置信息通过第一位置稀疏列表表征,第二位置信息通过第二位置稀疏列表表征,则传输数据位置列表包括第一位置稀疏列表以及第二位置稀疏列表。具体的,传输数据位置列表可以第一位置稀疏列表以及第二位置稀疏列表按行或者按列进行拼接的结果,其与模型数据列表的维度一致。例如,模型数据列表按列的方式依次排布各个卷积层的子矩阵以及全连接层的元素,则第一位置稀疏列表以及第二位置稀疏列表也按照列的方式进行拼接,得到拼接后的传输数据位置列表。具体地,假设第一位置稀疏列表有9列,第二位置稀疏列表有3列,则拼接后的传输数据位置列表共有12列。
步骤460,将所述传输数据列表以及所述传输数据位置列表上传至服务器,以使所述服务器进行模型数据聚合。在一些实施例中,步骤460可以由上传模块360完成。
在一些实施例中,上传模块360还可以将当前次迭代的训练样本数量ni上传给服务器。
在一些实施例中,上传模块360所传输的传输数据列表以及传输数据位置列表的是以密文的形式发送的。所述密文形式包括但不限于同态加密、秘密分享等多种形式。进一步地,服务器对所有训练成员上传的密文形式的传输数据列表[Di]、传输数据位置列表直接进行运算或进行解密后运算,得到模型数据总列表以及位置数据总列表,进而计算模型数据聚合列表。有关模型数据总列表以及位置数据总列表的计算参见图6的相应描述,此处不再赘述。
步骤470,获取服务器下发的模型数据更新列表,并基于所述模型数据更新列表进行本地模型更新,将更新后的本地模型作为待训练模型进行下一次训练,或者基于此确定最终模型。在一些实施例中,步骤470可以由模型更新模块370完成。
在一些实施例中,模型数据列表中的元素为模型参数,则服务器下发给训练成员i的模型数据更新列表包括与传输数据列表中的元素位置对应的聚合模型参数。在本说明书的一个或多个实施例中,训练成员i对应的模型数据更新列表用表示,表示服务器端的聚合模型参数,第二脚标表示训练成员i对应的部分。在该场景的实施例中,模型更新模块370直接将当前迭代(m轮迭代)模型数据列表中的相应元素替换为模型数据更新列表中的聚合模型参数,得到更新后的本地模型。具体地,可以按照下式计算:
在一些实施例中,模型数据列表中的元素还可以为梯度数据(即梯度列表为中的元素)。在该场景的实施例中,服务器下发的模型数据更新列表即为与传输数据列表中的元素位置对应的聚合梯度数据。在本说明书的一个或多个实施例中,训练成员i对应的聚合梯度数据亦可用表示,表示服务器端的聚合模型参数,第二脚标表示训练成员i对应的部分。在该场景的实施例中,模型更新模块370直接将当前迭代(m轮迭代)的将所述模型数据列表中的相应元素替换为模型数据更新列表中的聚合梯度数据。具体地,可以按照下式计算:
进一步地,训练成员i基于更新后的模型数据列表中的元素确定与各模型参数分别对应的调参量。
在完成本轮模型的更新后,模型更新模块370可以获取当前迭代轮数m,判断m是否小于设定阈值,若是,则确定进行下一轮迭代更新,同时将当前轮的模型作为下一轮迭代更新的模型。其中,设定阈值可以是一个预先设定好的正整数,用以表征迭代轮数的上限(如设定阈值可以是5、10、100等任意取值)。当迭代轮数m不小于设定阈值时,可以确定终止迭代,并通知各训练成员将目前获得的模型作为最终模型。
图5是根据本说明书另一些实施例所示进行模型参数更新的系统框图。
在一些实施例中,系统500布置在参与方中的服务器上,用于对模型参数进行多轮迭代更新。其中,所述参与方包括多个训练成员以及服务器,各个参与方持有结构相同的待训练模型,所述待训练模型包括一个或多个卷积层,每个卷积层包括一个或多个卷积核;所述系统用于对待训练模型进行多轮迭代更新,系统500可以包括:
数据接收模块510,用于接收各训练成员上传的传输数据列表以及传输数据位置列表;所述传输数据列表基于训练成员从其模型数据列表中选取的一个或多个子矩阵以及一个或多个非卷积核元素确定,所述一个或多个子矩阵与一个或多个卷积核对应;所述传输数据列表基于第一位置信息和第二位置信息确定,所述第一位置信息为训练成员选取的子矩阵在其模型数据列表中的位置信息,所述第二位置信息为训练成员选取的非卷积核元素在其模型数据列表中的位置信息;
模型数据总列表获取模块520,用于在一轮迭代更新中基于各传输数据列表得到模型数据总列表;
位置数据总列表获取模块530,用于在一轮迭代更新中基于各传输数据位置列表得到位置数据总列表;
模型数据聚合列表确定模块540,用于在一轮迭代更新中基于所述模型数据总列表以及所述位置数据总列表确定模型数据聚合列表;
数据传输模块550,用于在一轮迭代更新中向各训练成员分别返回所述模型数据聚合列表中的至少部分元素,使得各训练成员进行本地模型更新。
在一些实施例中,第一位置信息通过第一位置稀疏列表表征,第二位置信息通过第二位置稀疏列表表征;模型数据总列表为各传输数据列表按位求和的结果,位置数据总列表为各传输数据位置列表按位求和的结果。
在一些实施例中,数据接收模块510还用于,接收各训练成员上传的当前次迭代的训练样本数量。在该场景的实施例中,模型数据总列表获取模块520还用于,将各个训练成员的当前次迭代的训练样本数量与其传输数据列表相乘,得到多个第一乘积列表;将各第一乘积列表按位求和,得到所述模型数据总列表;位置数据总列表获取模块530还用于,将各个训练成员的当前次迭代的训练样本数量与其传输数据位置列表相乘,得到多个第二乘积列表;将各第二乘积列表按位求和,得到所述位置数据总列表。
在一些实施例中,模型数据聚合列表为模型数据总列表中的子矩阵、与非卷积核元素分别与位置数据总列表中对应元素相除的结果。
在一些实施例中,数据传输模块550还用于,对于任一训练成员,基于该训练成员的传输数据位置列表从所述模型数据聚合列表中选取对应位置的元素,并返回给该训练成员。
需要注意的是,以上对于处理设备及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。
图6是根据本说明书的另一些实施例所示的进行模型参数更新的示例性流程图。流程600可以由服务器执行(如由系统500执行),其包括:
步骤610,接收各训练成员上传的传输数据列表以及传输数据位置列表。在一些实施例中,步骤610可以由数据接收模块510执行。
以m轮迭代为例,数据接收模块510可以接收训练成员1,2,...,k上传的传输数据列表以及传输数据位置列表 所述传输数据列表基于训练成员从其模型数据列表中选取的一个或多个子矩阵以及一个或多个非卷积核元素确定,所述一个或多个子矩阵与一个或多个卷积核对应;所述传输数据列表基于第一位置信息和第二位置信息确定,所述第一位置信息为训练成员选取的子矩阵在其模型数据列表中的位置信息,所述第二位置信息为训练成员选取的非卷积核元素在其模型数据列表中的位置信息。在一些实施例中,所述第一位置信息通过第一位置稀疏列表表征,所述第二位置信息通过第二位置稀疏列表表征。有关传输数据列表以及传输数据位置列表的更多细节可以参见图4及其相关描述,此处不再赘述。
在一些实施例中,数据接收模块510还可以接收各训练成员上传的当前次迭代的训练样本数量。
步骤620,基于各传输数据列表得到模型数据总列表。在一些实施例中,步骤620可以由模型数据总列表获取模块520执行。
在一些实施例中,各训练成员上传的可以是传输数据列表的明文数据。此时,模型数据总列表获取模块520可以基于各训练成员上传的传输数据列表 中的参数直接进行按位求和,进而得到第m轮的模型数据总列表其中,按位是指按照各训练成员的传输数据列表的参数在该训练成员模型数据列表中的位置。模型数据总列表获取模块520可以基于各训练成员上传的传输数据列表确定对应传输数据列表中各参数在该训练成员的模型数据列表中的位置,进而将各训练成员上传的传输数据列表中位置相同的参数进行按位求和。为简单示例,模型数据总列表按照下式表示:
在一些实施例中,各训练成员上传的是传输数据列表可以是以密文的形式发送的。所述密文形式包括但不限于同态加密、秘密分享等多种形式。
以秘密分享为例,在该场景的实施例中,传输数据列表可以通过将模型数据列表中未被选中的元素置0得到,即此时数据传输列表与模型数据列表同维,且元素一一对应。各训练成员(如训练成员i)可以将自身获得的传输数据列表进行拆分,得到多个(如k个)秘密分片,将k-1个秘密分片发送给其他k-1个训练成员,同时获得来自其他k-1个训练成员的秘密分片,再基于自身获得的传输数据列表的保留秘密分片与来自其他k-1个训练成员的秘密分片进行融合(如按位累加)得到密文形式的融合结果,将融合结果传输给服务器。服务器对所有训练成员上传的密文形式的融合结果进行求和,进而得到明文数据下的模型数据总列表
在一些实施例中,各参与成员(如训练成员i)还可以采用同态加密的方式对自身获得的传输数据列表进行加密。具体地,由可信第三方或者是参与成员的一方生成一组秘钥对<pk,sk>,这一组秘钥对由所有参与成员持有,但不被服务器所知悉。各训练成员上传的传输数据列表均用这一组秘钥对进行加密(如使用其中的公钥进行同态加密),而后上传服务器,类似的,服务器从各训练成员接收其他同态加密的传输数据列表,而后基于各训练成员的传输数据位置列表对密态的传输数据列表进行按位求和得到密文数据下的模型数据总列表最后将密态的模型数据总列表中的部分元素下发给各训练成员,各训练成员利用私钥对密态的模型数据总列表中的所述部分元素解密,得到明文数据下的模型数据更新列表。
步骤630,基于各传输数据位置列表得到位置数据总列表。在一些实施例中,步骤630可以由位置数据总列表获取模块530执行。
在一些实施例中,各训练成员上传的是传输数据位置列表的明文数据。此时,位置数据总列表获取模块530可以基于各训练成员上传的传输数据位置列表 中的参数的明文数据直接进行按位求和,进而得到第m轮的位置数据总列表具体地,位置数据总列表可以按照下式进行计算:
与传输数据列表类似,训练成员上传的传输数据位置列表也可以是以密文的形式发送的,加密状态下位置数据总列表的计算过程与模型数据总列表的计算类似,具体可参见步骤620的说明,在此不再赘述。在一些实施例中,可以只将传输数据列表加密传输,传输数据位置列表可以明文传输。
需要说明的是,在一些实施例中,步骤610还可以接收各个训练成员上传的训练样本数量。在该场景的实施例中,在步骤620中基于各传输数据列表得到模型数据总列表时,还可以采用如下的方式进行计算:1)将各个训练成员的当前次迭代的训练样本数量与其传输数据列表相乘(即与列表中的每个元素相乘),得到多个第一乘积列表;2)将各第一乘积列表按位求和,得到所述模型数据总列表。此时,模型数据总列表可以按照下式进行计算:
在该场景的实施例中,在步骤630中计算位置数据总列表时,也需要相应地将各个训练成员的当前次迭代的训练样本数量与其传输数据位置列表相乘(即与列表中的每个元素相乘),得到多个第二乘积列表;将各第二乘积列表按位求和,得到所述位置数据总列表,具体地,可以按下式进行计算:
在一些实施例中,也可以由各训练成员在本地完成第一乘积列表和第二乘积列表的计算,将第一乘积列表和第二乘积列表作为最终的传输数据列表以及传输数据位置列表上传给服务器。
可以理解,上述方式相当于是在各训练成员对传输数据列表以及传输数据位置列表用训练样本数量做了一次加权。通过这样的方式,可以使得每次迭代中提供训练样本更多的训练成员提交的数据占据更大的权重比例,进而提高模型的准确性。
步骤640,基于所述模型数据总列表以及所述位置数据总列表确定模型数据聚合列表。在一些实施例中,步骤640可以由模型数据聚合列表确定模块540执行。
模型数据聚合列表确定模块540可以基于模型数据总列表中的子矩阵、与非卷积核元素分别与位置数据总列表中对应元素相除的结果。具体地,对于非卷积核元素,可以将模型数据总列表中的非卷积核元素与位置数据总列表中对应的元素按位置进行相除,得到对应元素的结果。
对于子矩阵,其在位置数据总列表中对应的可以是一个元素,也可以是一个同维的子矩阵且元素值相同。当模型数据聚合列表中的子矩阵在位置数据总列表中对应的是一个元素时,可以用该元素去除该子矩阵中的每一个元素,得到模型数据聚合列表中对应子矩阵的元素。当模型数据聚合列表中的子矩阵在位置数据总列表中对应的是一个子矩阵时,可以如同非卷积核元素的计算方式,直接按位相除得到模型数据聚合列表中对应子矩阵的元素。
步骤650,向各训练成员分别返回模型数据聚合列表中的至少部分元素,使得各训练成员进行本地模型更新。在一些实施例中,步骤650可以由数据传输模块550执行。
数据传输模块550可以将模型数据聚合列表中的至少部分元素下发给各训练成员进行本地数据的更新。具体的,数据传输模块550可以将模型数据聚合列表中与各训练成员的传输数据列表中的元素位置相同的元素下发给各训练成员。所下发的数据即为步骤470中训练成员i得到的模型数据更新列表在一些实施例中,训练成员i对应的模型数据更新列表可以按照下式进行计算:
以上步骤610~650是以训练成员上传的模型数据列表中的元素可以为模型参数,也可以为梯度数据。有关训练成员基于下发的部分元素进行本地模型更新的更多描述可参见步骤470的相应描述,在此不再赘述。
本说明书实施例可能带来的有益效果包括但不限于:1)以卷积核对应的子矩阵作为一个整体单元进行筛选,保留了CNN模型中各个卷积核的处理能力,保证了模型精度;2)各个训练成员可以持有个性化的本地模型,增加了各训练成员对非独立同分布(Non-IID)的训练数据的适应能力;3)训练成员采用从模型数据列表中选择部分数据上传给服务器,减少了传输数据的大小,降低了通讯压力;4)采用第一表征值(如范数值)对卷积核对应的子矩阵进行筛选,获得更加优质的卷积核,在提高模型收敛速度的同时,进一步降低了每轮迭代数据传输压力。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
Claims (23)
1.一种模型的训练方法,所述方法由参与方中的任一训练成员实现,其中,所述参与方包括多个训练成员以及服务器;各个参与方持有结构相同的待训练模型,所述待训练模型包括一个或多个卷积层,每个卷积层包括一个或多个卷积核;所述方法包括对待训练模型进行多轮迭代更新,其中一轮迭代更新包括:
基于自身持有的训练样本进行模型训练,获得模型数据列表;
从所述模型数据列表中的一个或多个卷积核对应的子矩阵中选取一个或多个子矩阵,并确定选取的子矩阵在所述模型数据列表中的第一位置信息;
从所述模型数据列表中除卷积核对应的子矩阵以外的元素中选取一个或多个非卷积核元素,并确定选取的非卷积核元素在所述模型数据列表中的第二位置信息;
确定传输数据列表,所述传输数据列表至少基于选取的一个或多个子矩阵以及选取的非卷积核元素确定;
确定传输数据位置列表,所述传输数据位置列表至少基于所述第一位置信息以及所述第二位置信息确定;
将所述传输数据列表以及所述传输数据位置列表上传至服务器,以使所述服务器进行模型数据聚合;
获取服务器下发的模型数据更新列表,并基于所述模型数据更新列表进行本地模型更新,将更新后的本地模型作为待训练模型进行下一次训练,或者基于此确定最终模型。
2.根据权利要求1所述的方法,其中,所述从所述模型数据列表中的一个或多个卷积核对应的子矩阵中选取一个或多个子矩阵,包括:
分别从所述模型数据列表中的各卷积层中的一个或多个卷积核对应的子矩阵中选取一个或多个子矩阵。
3.根据权利要求2所述的方法,其中,所述分别从所述模型数据列表中的各卷积层中的一个或多个卷积核对应的子矩阵中选取一个或多个子矩阵,包括对每个卷积层:
确定第一选取比例,基于所述第一选取比例以及所述卷积层中卷积核的个数确定第一选取个数;
获取所述卷集层中各个卷积核对应的子矩阵的第一表征值;
将各第一表征值进行排序,基于所述第一选取个数选出排序在前的若干第一表征值对应的子矩阵。
4.根据权利要求3所述的方法,所述第一表征值包括范数值;所述排序为降序排序;所述第一选取比例与迭代次数负相关。
5.根据权利要求1所述的方法,其中,所述第一位置信息通过第一位置稀疏列表表征;所述第一位置稀疏列表包含与各卷积层对应的行或列,其中每一行或列中的元素与对应卷积层中的各卷积核对应;
所述第一位置稀疏列表中,与选取的一个或多个子矩阵对应的卷积核位置对应的元素为1,其余元素为0。
6.根据权利要求1所述的方法,其中,所述从所述模型数据列表中除卷积核对应的子矩阵以外的元素中选取一个或多个非卷积核元素,包括:
确定第二选取比例,基于所述第二选取比例以及所述模型数据列表中除卷积核对应的子矩阵以外的元素的数量确定第二选取个数;
将所述模型数据列表中除卷积核对应的子矩阵以外的元素进行排序,基于所述第二选取个数选出排序在前的若干元素作为选取的一个或多个非卷积核元素。
7.根据权利要求6所述的方法,所述排序为基于绝对值降序排序;所述第二选取比例与迭代次数负相关。
8.根据权利要求1所述的方法,其中,所述待训练模型还包括全连接层,所述选取的非卷积核元素来自全连接层;
所述第二位置信息通过第二位置稀疏列表表征;所述第二位置稀疏列表包含与所述全连接层对应的矩阵,所述矩阵中的元素与全连接层的模型参数对应;
所述第二位置稀疏列表中,与选取的一个或多个非卷积核元素位置对应的元素为1,其余元素为0。
9.根据权利要求1所述的方法,上传给服务器的还包括当前次迭代的训练样本数量;其中,至少将传输数据列表以及传输数据位置列表以密文形式上传给服务器。
10.根据权利要求1所述的方法,所述第一位置信息通过第一位置稀疏列表表征,所述第二位置信息通过第二位置稀疏列表表征;
所述传输数据列表包括选取的一个或多个子矩阵以及选取的非卷积核元素;所述传输数据位置列表包括所述第一位置稀疏列表以及所述第二位置稀疏列表;或者,
所述传输数据列表包括当前次迭代的训练样本数量分别与选取的一个或多个子矩阵、以及选取的非卷积核元素的乘积;所述传输数据位置列表包括当前次迭代的训练样本数量分别与所述第一位置稀疏列表、以及所述第二位置稀疏列表的乘积。
11.根据权利要求1所述的方法,所述模型数据列表中的元素为模型参数;服务器下发的模型数据更新列表包括与传输数据列表中的元素位置对应的聚合模型参数;
所述基于所述模型数据更新列表进行本地模型更新,包括:将所述模型数据列表中的相应元素替换为模型数据更新列表中的聚合模型参数,得到更新后的本地模型。
12.根据权利要求1所述的方法,所述模型数据列表中的元素为梯度数据;服务器下发的模型数据更新列表包括与传输数据列表中的元素位置对应的聚合梯度数据;
所述基于所述模型数据更新列表进行本地模型更新,包括:
将所述模型数据列表中的相应元素替换为模型数据更新列表中的聚合梯度数据;
基于替换后的模型数据列表中的元素确定与各模型参数分别对应的调参量;
将待训练模型在当前次迭代中的原模型参数减去对应的调参量,得到更新后的本地模型。
13.一种模型的训练系统,所述系统置于参与方中的任一训练成员处,其中,所述参与方包括多个训练成员以及服务器;各个参与方持有结构相同的待训练模型,所述待训练模型包括一个或多个卷积层,每个卷积层包括一个或多个卷积核;所述系统用于对待训练模型进行多轮迭代更新,所述系统包括:
模型数据列表获取模块,用于在一轮迭代更新中基于自身持有的训练样本进行模型训练,获得模型数据列表;
第一位置信息确定模块,用于在一轮迭代更新中从所述模型数据列表中的一个或多个卷积核对应的子矩阵中选取一个或多个子矩阵,并确定选取的子矩阵在所述模型数据列表中的第一位置信息;
第二位置信息确定模块,用于在一轮迭代更新中从所述模型数据列表中除卷积核对应的子矩阵以外的元素中选取一个或多个非卷积核元素,并确定选取的非卷积核元素在所述模型数据列表中的第二位置信息;
传输数据列表确定模块,用于在一轮迭代更新中确定传输数据列表,所述传输数据列表至少基于选取的一个或多个子矩阵以及选取的非卷积核元素确定;
传输数据位置列表确定模块,用于在一轮迭代更新中确定传输数据位置列表,所述传输数据位置列表至少基于所述第一位置信息以及所述第二位置信息确定;
上传模块,用于在一轮迭代更新中将所述传输数据列表以及所述传输数据位置列表上传至服务器,以使所述服务器进行模型数据聚合;
模型更新模块,用于在一轮迭代更新中获取服务器下发的模型数据更新列表,并基于所述模型数据更新列表进行本地模型更新,将更新后的本地模型作为待训练模型进行下一次训练,或者基于此确定最终模型。
14.一种模型训练装置,包括存储介质和处理器,所述存储介质用于存储计算机指令,所述处理器用于执行计算机指令以实现如权利要求1-12中任一项所述的训练方法。
15.一种模型的训练方法,所述方法由参与方中的服务器实现,其中,所述参与方包括多个训练成员以及服务器;各个参与方持有结构相同的待训练模型,所述待训练模型包括一个或多个卷积层,每个卷积层包括一个或多个卷积核;所述方法包括对待训练模型进行多轮迭代更新,其中一轮迭代更新包括:
接收各训练成员上传的传输数据列表以及传输数据位置列表;所述传输数据列表基于训练成员从其模型数据列表中选取的一个或多个子矩阵以及一个或多个非卷积核元素确定,所述一个或多个子矩阵与一个或多个卷积核对应;所述传输数据位置列表基于第一位置信息和第二位置信息确定,所述第一位置信息为训练成员选取的子矩阵在其模型数据列表中的位置信息,所述第二位置信息为训练成员选取的非卷积核元素在其模型数据列表中的位置信息;
基于各传输数据列表得到模型数据总列表;
基于各传输数据位置列表得到位置数据总列表;
基于所述模型数据总列表以及所述位置数据总列表确定模型数据聚合列表;
向各训练成员分别返回所述模型数据聚合列表中的至少部分元素,使得各训练成员进行本地模型更新。
16.根据权利要求15所述的方法,所述第一位置信息通过第一位置稀疏列表表征,所述第二位置信息通过第二位置稀疏列表表征;所述模型数据总列表为各传输数据列表按位求和的结果,所述位置数据总列表为各传输数据位置列表按位求和的结果。
17.根据权利要求15所述的方法,所述方法还包括:接收各训练成员上传的当前次迭代的训练样本数量。
18.根据权利要求17所述的方法,所述基于各传输数据列表得到模型数据总列表,包括:
将各个训练成员的当前次迭代的训练样本数量与其传输数据列表相乘,得到多个第一乘积列表;
将各第一乘积列表按位求和,得到所述模型数据总列表。
19.根据权利要求17所述的方法,所述基于所述各传输数据位置列表得到位置数据总列表,包括:
将各个训练成员的当前次迭代的训练样本数量与其传输数据位置列表相乘,得到多个第二乘积列表;
将各第二乘积列表按位求和,得到所述位置数据总列表。
20.根据权利要求16或18或19所述的方法,所述模型数据聚合列表为模型数据总列表中的子矩阵、与非卷积核元素分别与位置数据总列表中对应元素相除的结果。
21.根据权利要求15所述的方法,所述向各训练成员分别返回所述模型数据聚合列表中的至少部分元素,包括,对于任一训练成员:
基于该训练成员的传输数据位置列表从所述模型数据聚合列表中选取对应位置的元素,并返回给该训练成员。
22.一种模型的训练系统,所述系统置于参与方中的服务器处,其中,所述参与方包括多个训练成员以及服务器;各个参与方持有结构相同的待训练模型,所述待训练模型包括一个或多个卷积层,每个卷积层包括一个或多个卷积核;所述系统用于对待训练模型进行多轮迭代更新,所述系统包括:
数据接收模块,用于在一轮迭代更新中接收各训练成员上传的传输数据列表以及传输数据位置列表;所述传输数据列表基于训练成员从其模型数据列表中选取的一个或多个子矩阵以及一个或多个非卷积核元素确定,所述一个或多个子矩阵与一个或多个卷积核对应;所述传输数据列表基于第一位置信息和第二位置信息确定,所述第一位置信息为训练成员选取的子矩阵在其模型数据列表中的位置信息,所述第二位置信息为训练成员选取的非卷积核元素在其模型数据列表中的位置信息;
模型数据总列表获取模块,用于在一轮迭代更新中基于各传输数据列表得到模型数据总列表;
位置数据总列表获取模块,用于在一轮迭代更新中基于各传输数据位置列表得到位置数据总列表;
模型数据聚合列表确定模块,用于在一轮迭代更新中基于所述模型数据总列表以及所述位置数据总列表确定模型数据聚合列表;
数据传输模块,用于在一轮迭代更新中向各训练成员分别返回所述模型数据聚合列表中的至少部分元素,使得各训练成员进行本地模型更新。
23.一种模型训练装置,包括存储介质和处理器,所述存储介质用于存储计算机指令,所述处理器用于执行计算机指令以实现权利要求14-19中任一项所述训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110752427.7A CN113379039B (zh) | 2021-07-02 | 2021-07-02 | 一种模型训练的方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110752427.7A CN113379039B (zh) | 2021-07-02 | 2021-07-02 | 一种模型训练的方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113379039A true CN113379039A (zh) | 2021-09-10 |
CN113379039B CN113379039B (zh) | 2022-05-17 |
Family
ID=77581013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110752427.7A Active CN113379039B (zh) | 2021-07-02 | 2021-07-02 | 一种模型训练的方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113379039B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113708982A (zh) * | 2021-10-28 | 2021-11-26 | 华中科技大学 | 一种基于群体学习的服务功能链部署方法及系统 |
CN114386336A (zh) * | 2022-03-22 | 2022-04-22 | 成都飞机工业(集团)有限责任公司 | 一种基于多方3d打印数据库联合训练的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200125739A1 (en) * | 2018-10-19 | 2020-04-23 | International Business Machines Corporation | Distributed learning preserving model security |
CN111931950A (zh) * | 2020-09-28 | 2020-11-13 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习进行模型参数更新的方法及系统 |
CN112465043A (zh) * | 2020-12-02 | 2021-03-09 | 平安科技(深圳)有限公司 | 模型训练方法、装置和设备 |
CN113010305A (zh) * | 2021-02-08 | 2021-06-22 | 北京邮电大学 | 部署在边缘计算网络中的联邦学习系统及其学习方法 |
CN113033823A (zh) * | 2021-04-20 | 2021-06-25 | 支付宝(杭州)信息技术有限公司 | 一种模型训练方法、系统及装置 |
-
2021
- 2021-07-02 CN CN202110752427.7A patent/CN113379039B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200125739A1 (en) * | 2018-10-19 | 2020-04-23 | International Business Machines Corporation | Distributed learning preserving model security |
CN111931950A (zh) * | 2020-09-28 | 2020-11-13 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习进行模型参数更新的方法及系统 |
CN112465043A (zh) * | 2020-12-02 | 2021-03-09 | 平安科技(深圳)有限公司 | 模型训练方法、装置和设备 |
CN113010305A (zh) * | 2021-02-08 | 2021-06-22 | 北京邮电大学 | 部署在边缘计算网络中的联邦学习系统及其学习方法 |
CN113033823A (zh) * | 2021-04-20 | 2021-06-25 | 支付宝(杭州)信息技术有限公司 | 一种模型训练方法、系统及装置 |
Non-Patent Citations (1)
Title |
---|
戴彦等: "新一代人工智能在智能电网中的应用研究综述", 《电力建设》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113708982A (zh) * | 2021-10-28 | 2021-11-26 | 华中科技大学 | 一种基于群体学习的服务功能链部署方法及系统 |
CN114386336A (zh) * | 2022-03-22 | 2022-04-22 | 成都飞机工业(集团)有限责任公司 | 一种基于多方3d打印数据库联合训练的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113379039B (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111931950B (zh) | 一种基于联邦学习进行模型参数更新的方法及系统 | |
CN112396191B (zh) | 一种基于联邦学习进行模型参数更新的方法、系统及装置 | |
CN113011587B (zh) | 一种隐私保护的模型训练方法和系统 | |
CN110969250B (zh) | 一种神经网络训练方法及装置 | |
CN113379039B (zh) | 一种模型训练的方法、系统及装置 | |
CN110880036A (zh) | 神经网络压缩方法、装置、计算机设备及存储介质 | |
US20220391778A1 (en) | Online Federated Learning of Embeddings | |
KR102562320B1 (ko) | 비트 연산 기반의 뉴럴 네트워크 처리 방법 및 장치 | |
CN112288100A (zh) | 一种基于联邦学习进行模型参数更新的方法、系统及装置 | |
CN111460528B (zh) | 一种基于Adam优化算法的多方联合训练方法及系统 | |
Devaraj et al. | An efficient framework for secure image archival and retrieval system using multiple secret share creation scheme | |
CN112990476B (zh) | 一种基于联邦学习进行模型参数更新的方法、系统及装置 | |
CN113033823B (zh) | 一种模型训练方法、系统及装置 | |
JP6819355B2 (ja) | レコメンデーション生成 | |
CN114611720B (zh) | 联邦学习模型训练方法、电子设备及存储介质 | |
CN115496204B (zh) | 一种跨域异质场景下的面向联邦学习的评测方法及装置 | |
CN115438225B (zh) | 视频文本互检方法及其模型训练方法、装置、设备、介质 | |
EP4099609A1 (en) | Computational network conversion for fully homomorphic evaluation | |
CN112734104A (zh) | 一种融合双生成器双判别器的生成对抗网络和自编码器的跨域推荐方法 | |
Tateishi et al. | Continuous Analog of Accelerated OS‐EM Algorithm for Computed Tomography | |
CN111931947B (zh) | 一种用于分布式模型训练的训练样本重组方法及系统 | |
CN117709497A (zh) | 对象信息预测方法、装置、计算机设备和存储介质 | |
CN114819076A (zh) | 网络蒸馏方法、装置、计算机设备、存储介质 | |
CN113722760B (zh) | 一种隐私保护的模型训练方法和系统 | |
Chiang | Volley revolver: A novel matrix-encoding method for privacy-preserving neural networks (inference) |
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 |