CN114372589A - 一种联邦学习方法及相关装置 - Google Patents

一种联邦学习方法及相关装置 Download PDF

Info

Publication number
CN114372589A
CN114372589A CN202111651216.0A CN202111651216A CN114372589A CN 114372589 A CN114372589 A CN 114372589A CN 202111651216 A CN202111651216 A CN 202111651216A CN 114372589 A CN114372589 A CN 114372589A
Authority
CN
China
Prior art keywords
node
training
parameter
slave
chain
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.)
Pending
Application number
CN202111651216.0A
Other languages
English (en)
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.)
Yuanguang Software Co Ltd
Original Assignee
Yuanguang Software 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 Yuanguang Software Co Ltd filed Critical Yuanguang Software Co Ltd
Priority to CN202111651216.0A priority Critical patent/CN114372589A/zh
Publication of CN114372589A publication Critical patent/CN114372589A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种联邦学习方法及相关装置,该方法是由从链中的训练节点执行,从链中包括若干从链节点,从链节点与主链中的主链节点能够进行交互,从链节点包括训练节点和共识节点,该方法包括:训练节点获取第一训练算法;确定第一类数据和第一初始参数,利用第一训练算法、第一类数据和第一初始参数进行模型训练,以获得第一本地参数;将第一本地参数上链至从链分布式账本,以利用从链中的共识节点对第一本地参数进行共识验证;将通过共识验证的第一本地参数确定为目标本地参数,并将目标本地参数上传至主链节点。本申请所提供的方法可以实现提高联邦学习的可靠性和稳定性。

Description

一种联邦学习方法及相关装置
技术领域
本申请涉及联邦学习技术领域,特别是涉及一种联邦学习方法及相关装置。
背景技术
为了实现快速学习获得机器学习模型,Google人工智能实验室提出了联邦学习架构,具体是用于实现使得多个分散的客户端和一个中心服务器能够协作学习一个机器学习模型,用于提高训练获得机器学习模型的效率。但是,现有的联邦学习架构中,却存在分散客户端之间的协作非常依赖中心服务器,即存在对中心服务器依赖性过大的问题,一旦中心服务器出现故障或被恶意攻击,则会直接导致不能生成准确的机器学习模型,甚至于导致不能生成机器学习模型,故急需一种可以解决上述技术问题的技术方案。
发明内容
本申请主要解决的技术问题是提供一种联邦学习方法及相关装置,降低对于某一个服务器或电子设备的依赖性,可以实现提高联邦学习的可靠性和稳定性。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种联邦学习方法,所述方法是由从链中的训练节点执行,所述从链中包括若干从链节点,所述从链节点与主链中的主链节点能够进行交互,所述从链节点包括训练节点和共识节点,所述方法包括:
所述训练节点获取第一训练算法;
确定第一类数据和第一初始参数,利用所述第一训练算法、所述第一类数据和所述第一初始参数进行模型训练,以获得第一本地参数;
将所述第一本地参数传输至所述共识节点,以利用所述从链中的所述共识节点对所述第一本地参数进行共识验证;
将通过所述共识验证的所述第一本地参数确定为目标本地参数,并将所述目标本地参数上传至主链节点。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种联邦学习方法,所述方法是由从链中的共识节点执行,所述从链中包括若干从链节点,所述从链节点与主链中的主链节点可以进行交互,所述从链节点包括训练节点和共识节点,所述方法包括:
共识节点接收到训练节点发送的待验证的第一本地参数;
对所述第一本地参数执行共识验证;
将通过所述共识验证的所述第一本地参数输出为目标本地参数,并将所述目标本地参数上链至从链分布式账本。
为解决上述技术问题,本申请采用的又一个技术方案是:提供一种联邦学习方法,所述方法是由主链中的主链节点执行,所述主链节点与从链中的从链节点可以进行交互,所述从链包括若干从链节点,所述从链节点与主链中的主链节点进行交互,所述从链节点包括训练节点和共识节点,所述方法包括:
主链节点获取第一预设数量的从链节点上传的目标本地参数;
基于所述第一预设数量的目标本地参数聚合得到第一全局参数;
输出所述第一全局参数。
为解决上述技术问题,本申请采用的又一个技术方案是:提供一种电子设备,所述电子设备包括处理器以及与所述处理器耦接的存储器;其中,
所述存储器用于存储计算机程序;
所述处理器用于运行所述计算机程序以执行如上任意一项所述的方法。
为解决上述技术问题,本申请采用的又一个技术方案是:提供一种计算机可读存储介质,所述计算机可读存储介质存储有能够被处理器运行的计算机程序,所述计算机程序用于实现如上任一项所述的方法。
本申请的有益效果是:区别于现有技术的情况,本申请所提供的联邦学习方法,由从链中的训练节点执行,且从链中包括若干从链节点,从链节点与主链中的主链节点能够进行交互,从链节点包括训练节点和共识节点;通过设置训练节点获取第一训练算法,从链节点确定第一类数据和第一初始参数,利用第一训练算法、第一类数据和第一初始参数进行模型训练,以获得第一本地参数;将第一本地参数上链至从链分布式账本,以利用从链中的共识节点对第一本地参数进行共识验证;然后将通过共识验证的第一本地参数确定为目标本地参数,并将目标本地参数上传至主链节点,通过利用从链中的若干训练节点和共识节点配合实现快速获得安全可靠的目标本地参数,并设置从链中各个从链节点与主链中的主链节点进行交互,从而将目标本地参数上传至主链节点,通过设置从链中的从链节点和主链节点能够进行交互,并利用从链和主链各自的信息一致性特点,降低联邦学习过程中对于某一个服务器或电子设备的依赖性,进一步提高了联邦学习的可靠性和稳定性,起到了良好的技术效果。
附图说明
图1为本申请一种联邦学习***一实施例中的结构示意图;
图2为本申请一种联邦学习方法一实施例中的流程示意图;
图3为本申请一种联邦学习方法另一实施例中的流程示意图;
图4为本申请一种联邦学习方法一实施例中的流程示意图;
图5为本申请一种联邦学习方法另一实施例中的流程示意图;
图6为本申请一种联邦学习方法又一实施例中的流程示意图;
图7为本申请一种联邦学习方法一实施例中的流程示意图;
图8为本申请一种联邦学习一实施例中的流程示意图;
图9为本申请一种联邦学习方法另一实施例中的流程示意图;
图10为本申请一种联邦学习方法又一实施例中的流程示意图;
图11为本申请一种联邦学习方法一实施例中流程示意图;
图12为本申请一种电子设备一实施例中的结构示意图;
图13为本申请一种计算机可读存储介质一实施例结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了便于理解本申请所提供的技术方案,在此首先阐述本申请方案中所涉及到的联邦学习概念。联邦学习是通过利用多个分散的客户端能够协作学习一个机器学习模型,同时将客户端的训练数据和训练所得的机器学习模型的至少部分参数保存在本地,并上传至中心服务器,再由中心服务器进行聚合得到总体参数的学习方法。而本申请所提供的联邦学习方法则是通过构建包括主链和从链的联邦学习***,利用区块链结构的信息一致性的特点,实现降低联邦学习过程中对于某一个服务器或电子设备的依赖性,进一步提高了联邦学习的可靠性和稳定性。
首先,为了便于理解本申请所提供的技术方案,首先阐述本申请所提供的联邦学习***。请参见图1,图1为本申请一种联邦学习***一实施例中的结构示意图。
在当前实施例中,本申请所提供的联邦学习***100包括能够进行交互的从链A和主链B。其中,从链A是用于训练获得目标本地参数的区块链结构,从链A包括若干从链节点(图1所示意的A1至Am)。从链节点包括训练节点和共识节点,即可以理解为按照各个从链节点在当前轮次中所执行的功能,将当前从链A中各个从链节点划分为训练节点和共识节点。主链B是用于执行聚合从链A训练所得的目标本地参数从而获得全局参数的联盟链结构,主链B包括若干主链节点。
进一步地从链节点可以是终端设备、传感器、穿戴设备等可以执行训练功能的电子设备中的任意一种,且同一个从链A中所包括的从链节点可以是不同类型的设备,在此不做限定。如,同一个从链A中所包括的若干从链节点各自的设备类型可以包括终端设备、对讲设备、传感器和穿戴设备。每个从链节点和从链节点所对应的用户均有各自的私钥和公钥,其中,从链节点的公钥的哈希值可以作为用来标识其身份的ID和/或该从链节点的钱包账户地址。
如上所述,按照每一轮从链节点所执行的功能,可以将从链节点分类为训练节点和共识节点。其中,训练节点是用于执行训练获得目标本地参数的从链节点,共识节点是用于对训练节点训练所得的本地参数进行共识验证的从链节点。需要说明的是,在不同轮次的联邦学习过程中,训练节点和共识节点均是动态变化,如某一从链节点在第一轮训练中作为共识节点进行执行共识验证功能,在下一轮次或其他轮次,该从链节点不可以作为共识节点执行共识验证功能。如图1所示意的A1至An代指的是当前轮次从链A中的训练节点,An+1至Am代指的是当前轮次从链A中的共识节点,An+1至Am构成了共识委员会101。
进一步地,需要说明的是,从链A中的各个从链节点在执行当前轮次的联邦学习的过程时,首先需要明确自身在当前训练轮次中的功能。具体的,在执行当前轮次的联邦学习时,从链节点可以通过竞选获得执行共识验证的资格。
每个主链节点可以与从链A中的至少部分从链节点进行数据交互,主链节点所对应的设备类型包括服务器设备和电脑设备。可以理解的是,主链节点在其他实施例中,还可以为其他类型的设备,在此不一一列举。如图1,图1中所示意的B1至Bk代指的是主链B中的主链节点。
进一步地,训练节点用于训练获得第一本地参数,还用于将通过共识验证的第一本地参数确定为目标本地参数,并将目标本地参数上传至主链节点,共识节点用于对训练节点训练所得的第一本地参数进行共识验证。在其他实施例中,还可以设置是通过共识节点将目标本地参数上传至主链节点,具体依据实际设置为准。
请参见图2,图2为本申请一种联邦学习方法一实施例中的流程示意图。在当前实施例中,本申请所提供的方法是由从链中的训练节点执行。如上所述,从链中包括若干从链节点,从链节点与主链中的主链节点能够进行交互,从链节点包括训练节点和共识节点。在当前实施例中,本申请所提供的方法包括步骤S210至S240。
S210:训练节点获取第一训练算法。
在执行联邦学习时,从链中的每个训练节点首先需要获取训练机器学习模型所需的第一训练算法。其中,第一训练算法可以是预先存储至每个从链节点中,然后在训练节点需要执行联邦学习进行模型训练以获得目标本地参数时,训练节点可以是直接从自身的存储区中获取第一训练算法。在另一实施例中,第一训练算法也可以是在执行联邦学习之前,由主链中的主链节点下发至从链节点,在该实施例中,从链中的训练节点在执行联邦学习时,首先是自主链中的主链节点获取得到第一训练算法。
进一步地,当主链和从链当前轮次所需训练的机器学习模型和上一轮次所训练的机器学习模型是相同的,且第一训练算法是由主链节点下发给从链节点时,则可以设置当前轮次中的各个从链节点无需每个从主链节点处获取第一训练算法,对应的,主链节点也无需向从链节点下发第一训练算法,用以节省执行联邦学习所需要的时间成本。
其中,第一训练算法包括梯度下降算法。可以理解的是,在其他实施例中,第一训练算法还可以根据联邦学习所需要训练的机器学习模型的类型和功能进行调整,在其他实施例中,第一训练算法还可以包括其他类型算法,具体依据实际设置为准,在此不一一列举。
进一步地,在一实施例中,训练节点在每一轮次执行联邦学习进行模型训练之前,即训练节点在执行步骤S210之前,还会进一步确定自身在当前轮次中所需要执行的功能为训练获得目标本地参数。具体地,每个从链节点需要基于从链中所广播的共识节点选取结果确定自身是否被选取为共识节点,如若判断的得到当前的共识节点选取结果中不包括自身,则该从链节点会自动确定为训练节点,用于执行训练获得目标本地参数的功能,然后再执行当前实施例中所述的步骤S210至步骤S240。其中,共识节点选取结果可以包括当前轮次所选取的所有共识节点的身份标识信息。
在另一实施例中,也可以是共识节点选取结果也可以是仅仅包括对应某一个从链节点的共识选取结果。在该实施例中,可以设置会分别为每个参与竞选的从链节点生成共识节点选取结果,然后将所生成的共识节点选取结果在从链中广播,以使得从链中的各个从链节点获知该从链节点是否成功选取为共识节点,进而确定得到各个从链节点在当前轮次的联邦学习中所执行的功能。
S220:确定第一类数据和第一初始参数,利用第一训练算法、第一类数据和第一初始参数进行模型训练,以获得第一本地参数。
训练节点在获取到第一训练算法之后,进一步确定第一类数据和第一初始参数。其中,第一类数据为训练节点在当前轮联邦学习中进行模型训练所使用的数据。第一类数据可以为训练节点自身存储的数据中的至少部分。具体地,可以设置供用户自行选择第一类数据,即向用户开放选择第一类数据的端口,用户可以选择将训练节点中所存储的所有数据均用于模型训练,用户也可以根据自身的需求在自身所存储的数据中选取部分进行模型训练。用户为各个从链节点的拥有者,对应的会为用户下发操作密钥用于进行用户身份的验证,从链节点可以基于用户输入的操作密钥判断当前用户是否有权限更改该从链节点的设置参数,判断用户是否有权限选取第一类数据。第一初始参数为进行模型训练时所需的初始值,第一初始参数可以是由主链节点在下发第一训练算法时一起下发至从链节点的,也可以是预先设定被存储至从链节点的初始默认值。对应的,当所需训练的机器学习模型类型不同时,可以对应为不同的机器学习模型设置不同的第一初始参数。
在本申请所提供的技术方案中,在利用第一训练算法、第一类数据和第一初始参数进行模型训练获得一个本地机器学习模型,然后判断当前所得的本地机器学习模型是否可以使得对目标的损失函数达到最小值,若当前所得的本地机器学习模型可以使得对目标的损失函数为最小值,则确定当前本地机器学习模型为第一本地机器学习模型,并将第一本地机器学习模型输出;反之,则继续循环训练直至获得损失函数最小的本地机器学习模型。
进一步地,第一类数据包括有标签数据和/或无标签数据。其中,有标签数据为标明所包括的目标信息的数据,如,有标签数据包括:标明所包括的人物和建筑物的图像、账单截图和购物清单截图等。无标签数据则是没有任何标注信息的数据。需要说明的是,在此并不限定有标签数据和无标签数据的具体类型,可以包括图像数据、声音数据和视频数据等。
更进一步地,在一实施例中,当所确定的第一类数据同时包括有标签数据和无标签数据时,则从链节点在执行上述步骤S220时,则从链节点是基于第一初始参数,并利用第一训练算法分别对有标签数据和无标签数据分别进行模型训练,从而获得第一本地参数。在利用第一训练算法对有标签数据进行模型训练,并多次进行循环迭代直至获得损失函数最小的第二本地机器学习模型并输出,然后将第二本地机器学习模型的参数输出为第二本地参数。同理,在利用第一训练算法对无标签数据进行模型训练,并进行多次循环迭代直至获得损失函数最小的第三本地机器学习模型并输出,然后将第三本地机器学习模型的参数输出为第三本地参数。在获得第二本地参数和第三本地参数之后,进一步将第二本地参数和第三本地参数的均值输出为第一本地参数。
在另一实施例中,当所确定的第一类数据同时包括有标签数据和无标签数据时,则从链节点在执行上述步骤S220时,从链节点是基于第一初始参数,并利用第一训练算法分别对有标签数据和无标签数据分别进行模型训练,并同步进行循环迭代,每一次循环结束后,会进一步求取对有标签数据和对无标签数据分别进行模型训练所得的两个本地机器学习模型的损失函数之和,并将损失函数之和最小的两个本地机器学习模型聚合获得第一本地机器学习模型,将第一本地机器学习模型的参数输出为第一本地参数。
在确定第一类数据和第一初始参数之后,进一步利用第一训练算法、第一类数据和第一初始参数进行模型训练,以获得第一本地参数。其中,第一本地参数为训练节点进行模型训练所得到的第一本地机器学习模型的模型参数。
在本申请所提供的技术方案中,本地机器学习模型代指从链节点训练所得的机器学习模型,第一本地机器学习模型用于代指从链节点训练所得的、损失函数值最小的机器学习模型,每个从链节点训练所得的第一本地机器学习模型适用于对该从链节点所存储的数据执行损失函数最小的机器学习过程;初始全局机器学习模型是用于代指主链节点基于各个目标本地参数聚合所得的机器学习模型,第一全局机器学习模型是用于代指某一主链节点训练所得的、且损失函数最小的全局机器学习模型,第一全局机器学习模型是适用于对该主链节点所存储的数据进行机器学习,也适用于对各个从链节点所存储的数据执行损失函数最小的机器学习过程。从链节点在训练得到第一本地机器学习模型,会将第一本地机器学习模型的第一本地参数上传至共识节点,以进行共识验证。故在训练获得第一本地机器学习模型之后,进一步提取得到第一本地机器学习模型所对应的第一本地参数,然后执行下述步骤S230。其中,第一本地参数是第一本地机器学习模型中的常量参数。如,训练得到的某个第一本地机器学习模型为f(x)=ax3+bx2+cx+d,则对应的第一本地参数包括a、b、c和d。
进一步地,在一实施例中,上述步骤S220中的利用第一训练算法、第一类数据和第一初始参数进行模型训练,以获得第一本地参数,进一步包括:利用第一训练算法、第一类数据和第一初始参数,在云端模拟机上进行模型训练,以获得第一本地参数。其中,云端模拟机是利用软件模拟的、且具备所有硬件功能的***,可以理解为***中的一个虚拟***。在当前实施例中,通过设置从链节点在云端模拟机上执行模型训练,可以较好地减少从链节点的运行计算的压力,减少对于从链节点的资源的耗用。
S230:将第一本地参数传输至共识节点,以利用从链中的共识节点对第一本地参数进行共识验证。
在训练节点得到第一本地参数之后,进一步将所得的第一本地机器学习模型所对应的第一本地参数传输至共识节点。其中,共识节点为当前轮次联邦学习中竞选获得共识验证资格的从链节点,在此对于从链中所选定的共识节点的数量不做任何限定,共识节点的数量具体可以根据实际需求进行调整设置。
具体地,训练节点可以是通过在从链内进行广播,实现将第一本地参数传输至各个共识节点,进而利用从链中各个共识节点对第一本地参数进行共识验证。在另一实施例中,训练节点还可以通过将所得的第一本地参数上传至从链所对应的分布式账本,使得各个共识节点通过访问从链所对应的分布式账本进而获得第一本地参数。在又一实施例中,训练节点还可以通过将所得的第一本地参数直接发送至各个共识节点,以利用从链中的各个共识节点对第一本地参数进行共识验证。
需要说明的是,由于从链中各个训练节点中所包括的数据量不同,并且各个训练节点的性能和运算能力皆可能存在差距,各个训练节点训练得到第一本地模型所需的时长是各不相同的,故各个训练节点在训练获得第一本地参数之后,则会立刻分别将各自所得的第一本地参数传输至共识节点,以将自身进行联邦学习的时长降到最低。
S240:将通过共识验证的第一本地参数确定为目标本地参数,并将目标本地参数上传至主链节点。
训练节点在将所得的第一本地参数上传至共识节点,且该第一本地参数通过了从链中各个共识节点的共识验证之后,共识节点会将通过验证的第一本地参数输出至各个从链节点。在当前实施例中,当训练节点获取到自身所对应的、且通过共识验证的第一本地参数之后,进一步将该通过共识验证的第一本地参数确定为目标本地参数,然后训练节点会进一步将该目标本地参数上传至主链节点。
进一步地,训练节点可以是通过自身直接将目标本地参数上传至自身可以进行交互的主链节点处,以利用主链中各个主链节点的信息一致性使得主链中各个主链节点均获得该目标本地采纳数。
在另一实施例中,还可以设置训练节点通过一个上传节点将目标本地参数上传至主链节点。其中,上传节点为从链中专门用于执行与主链节点进行交互的从链节点,上传节点可以是从链中任意一个从链节点。需要说明的是,上传节点可以同时也是某个执行训练功能的训练节点或是某个执行共识验证功能的共识节点。
进一步地,为了更好地实现公平公正性,可以设置训练节点不上传自身的目标本地参数至主链节点,可以设置是由共识节点上传各个训练节点所对应的目标本地参数至主链节点。在另一实施例中,还可以基于每轮的联邦学习为每个训练节点动态设置上传节点。请结合上述图1,如,可以将各个从链节点前后循环,按照ID编号顺序将后一个训练节点设置为前一个训练节点的上传节点,将最后一个训练节点设置为第一个训练节点的上传节点。还可以是按照首尾对应循环,将最后一个从链节点设置为第一个从链节点的上传节点,将倒数第二个从链节点设置为第二个训练节点的上传节点。如,在上一轮次中,设置从链节点Am为训练节点A1的上传节点,从链节点Am-1为训练节点A2的上传节点,从链节点Am-2为训练节点A3的上传节点,依次类;在当前轮次中,可以对应动态循环设置Am为训练节点A2的上传节点,在下一轮次中,可以对应动态设置Am为训练节点A3的上传节点,依次类推,如若从链节点的数量为奇数,则将可以随机为剩余的最后一个从链节点设置对应的上传节点。
进一步地,将目标本地参数上传至主链节点,包括:利用主链节点的公钥对目标本地参数进行数字签名,并将签名后的目标本地参数通过自身或从链中的上传节点上传至主链节点。其中,上传节点为从链中用于与主链节点进行交互的节点。在当前实施例中,在将目标本地参数上传至主链节点时,通过利用主链节点的公钥对目标本地参数进行数字签名,并设置主链节点在接收到目标本地参数需要利用私钥进行验证,且只有在验证成功后方可实质读取到从链节点所发送的目标本地参数,实现在传输目标本地参数过程中提供利用主链节点公钥签名方式,即便在传输目标本地参数的过程,出现不具备权限的节点或设备获取被主链节点签名了的目标本地参数,由于不具备权限的节点或设备是没有主链节点的私钥,不具备权限的节点或设备仍然是无法解析获取到目标本地参数的,保护目标本地参数的安全性,进而较好地实现保护从链节点用于训练获得目标本地参数的数据的安全性。
本申请图1所对应的实施例中提供的联邦学习方法,由从链中的训练节点执行,且从链中包括若干从链节点,从链节点与主链中的主链节点能够进行交互,从链节点包括训练节点和共识节点;通过设置训练节点获取第一训练算法,从链节点确定第一类数据和第一初始参数,利用第一训练算法、第一类数据和第一初始参数进行模型训练,以获得第一本地参数;将第一本地参数上链至从链分布式账本,以利用从链中的共识节点对第一本地参数进行共识验证;然后将通过共识验证的第一本地参数确定为目标本地参数,并将目标本地参数上传至主链节点,通过利用从链中的若干训练节点和共识节点配合实现快速获得安全可靠的目标本地参数,并设置从链中各个从链节点与主链中的主链节点进行交互,从而将目标本地参数上传至主链节点,通过设置从链中的从链节点和主链节点能够进行交互,并利用从链和主链各自的信息一致性特点,降低联邦学习过程中对于某一个服务器或电子设备的依赖性,进一步提高了联邦学习的可靠性和稳定性。
请参见图3,图3为本申请一种联邦学习方法另一实施例中的流程示意图。在当前实施例中,本申请所提供的方法包括步骤S301至步骤S307。
S301:训练节点获取第一训练算法。
步骤S301与上述步骤S210相同,具体可以参见上文对应部分的阐述,在此不再重复。
进一步地,在当前实施例中,在步骤S301之前,本申请所提供的方法还包括:向当前所在区域的主链节点发送从链加入请求,以获得主链节点下发的从链ID和CA证书。
在本申请所提供的技术方案中,设置有从链准入机制,以便电子设备可以根据所设置的准入机制加入至当前从链,从而可以执行联邦学习。在本申请所提供的技术方案中,会预先按照地理位置划分得到若干地理区域,并对应在每个地理区域中设置有多个可以进行交互的主链节点,不同的地理区域之间的主链节点是可以进行数据交互的,且每个地理区域内的从链节点至少可以与当前地理区域内的主链节点进行交互。如可以在每个地理区域中设置第三预设数量的主链节点,属于这个区域内的电子设备可以通过向该地理区域内的任意一个主链节点发送从链加入请求,以获得主链节点下发的从链ID和CA(CertificateAuthority)证书。其中,需要说明的是,CA证书在当前实施例中,可以是由CA中心通过主链节点下发至从链节点的,CA证书是用于完成安全通信的证书。
进一步地,对于每个从链节点在加入从链之前,是通过向当前所在区域的主链节点发送从链加入请求,需要由主链中的超出第一预设比例的主链节点审核确定得到该从链节点符合所设置的从链节点的准入机制后,则主链节点会为从链节点下发对应的从链ID和CA证书。其中,第一预设比例可以是根据实际的需求进行设置调整的,在此不一一列举。
进一步地,在另一实施例中,每个从链节点需要获得主链中超出所有的主链节点的审批之后,方可获得主链节点下发的从链ID和CA证书。
S302:确定第一类数据和第一初始参数,利用第一训练算法、第一类数据和第一初始参数进行模型训练,以获得第一本地参数。
在当前实施例中,步骤S302与上文步骤S220相同,具体可以参见上文对应实施例中的阐述。同时,在当前实施例中,从链节点获得第一本地参数之后,并在将第一本地参数传输至共识节点之前,本申请所提供的方法还包括下述步骤S303。
S303:计算第一本地参数的第一哈希值,并存储第一哈希值。
从链节点在训练获得第一本地参数之后,从链节点会进一步对所得的第一本地参数进行哈希运算,进而获得第一哈希值,并存储第一本地参数所对应的第一哈希值。其中,第一哈希值是用于判断通过共识验证的目标本地参数是否被篡改的依据,具体是利用SHA-256算法对第一本地参数进行哈希运算获得第一哈希值。
进一步地,从链节点可以是将第一哈希值存储至自身的存储区中,第一哈希值用于在后续对上传至主链节点的目标本地参数的验证,以判断目标本地参数是否存在被篡改的风险。更进一步地,当从链节点内设置有数字钱包时,从链节点还可以是将第一哈希值存储至数字钱包中。再进一步地,从链节点还可以是将第一哈希值存储至自身的区块链分布式账本中。
在另一实施例中,从链节点还可以是将第一哈希值在从链内上链存储。当该第一本地参数通过共识节点的共识验证成为目标参数之后,上传节点进一步基于第一哈希值验证目标本地参数是否存在被篡改风险。具体地,上传节点可以通过对从链的分布式账本进行访问,即可获得与目标本地参数相对应的第一本地参数的第一哈希值,然后基于所获得的第一哈希值判断目标本地参数是否被篡改。
S304:将第一本地参数传输至共识节点,以利用从链中的共识节点对第一本地参数进行共识验证。
在当前实施例中,步骤S304与上文的步骤S230相同,具体可以参见上文对应部分的阐述;且为了避免被从链节点所生的第一本地参数在上传至共识节点进行验证的过程中被篡改,故在当前实施例中,在确定目标本地参数之后,并在将目标本地参数上传至主链节点之前,本申请所提供的方法还包括步骤S305至步骤S307,用以避免通过共识验证、且被篡改了的第一本地参数上传至主链节点。
S305:计算目标本地参数的第二哈希值。
在当前实施例中,从链节点在获取到通过共识验证的目标本地参数之后,进一步对所获得的目标本地参数进行哈希运算,进而计算获得目标本地参数的第二哈希值。
S306:判断第二哈希值与第一哈希值是否相等。
在求得的目标本地参数的第二哈希值之后,进一步获取目标本地参数所对应的第一本地参数的第一哈希值。然后判断第二哈希值与第一哈希值是否相等。如若判断得到第二哈希值等于第一哈希值,则执行下述步骤S307。
S307:若是,则执行将目标本地参数上传至主链节点的步骤。
在判断得到第二哈希值与第一哈希值相等时,则从链节点会进一步执行目标本地参数上传至主链节点的步骤。
进一步地,若判断得到第二哈希值不等于第一哈希值,则不执行将目标本地参数上传至主链节点的步骤,并重新执行利用第一训练算法、第一类数据和第一初始参数进行模型训练获得第一本地参数的步骤。具体地是,在判断得到第二哈希值不等于第一哈希值时,则可以将最新一次训练所得的第一本地参数输出为第一初始参数,利用第一训练算法和第一类数据,进一步进行循环训练获得新的第一本地参数。
需要说明的是,在其他实施例中,还可以是设置是由从链中的上传节点执行上传目标本地参数至主链节点这一步骤。则对应的,可以设置是由上传节点执行计算目标本地参数的第二哈希值,并判断第二哈希值与第一哈希值是否相等的步骤。并在判断得到第二哈希值与第一哈希值相等时,继续执行将目标本地参数上传至主链节点的步骤。反之,如若上传节点判断得到第二哈希值与第一哈希值不相等时,则会进一步将判断结果在从链内进行广播,以使得对应的训练节点获知目标本地参数被篡改,进而使得对应的训练节点重新以自身所得的最新的第一本地参数为第一初始参数,并利用第一训练算法和第一类数据进行模型训练获得第一本地参数的步骤。
在图3所对应的实施例中,通过判断第二哈希值与第一哈希值是否相等,并基于判断结果确定是否执行将目标本地参数上传至主链节点的步骤,可以保障从链节点每次上传的目标本地参数始终透明、不可篡改、可靠的,未被恶意更改来给全局参数训练投毒。
进一步地,本申请所提供的联邦学习方法还包括:接收到主链节点发送的全局参数之后,利用全局参数更新目标本地机器学习模型。
请参见图4,图4为本申请一种联邦学习方法一实施例中的流程示意图。在当前实施例中,本申请所提供的方法是由从链中的共识节点执行。如上所述从链中包括若干从链节点,从链节点与主链中的主链节点可以进行交互。按照每个从链节点在当前轮次的联邦学习过程中所执行的功能进行划分,从链节点包括训练节点和共识节点。其中,该方法包括步骤S410至步骤S430。
S410:共识节点接收到训练节点发送的待验证的第一本地参数。
从链中的训练节点在训练得到第一本地参数之后,训练节点会将训练所得的第一本地参数传输至共识节点,共识节点在接收到训练节点发送的待验证的第一本地参数之后,对待验证的第一本地参数进行共识验证。
如上所述,训练节点是通过广播的方式将第一本地参数传输至各个共识节点。从链中的每个共识节点在接收训练节点广播的待验证的第一本地参数之后,则会分别执行下述步骤S420。
进一步地,需要说明的是,在本申请所提供的技术方案中,共识节点在执行步骤S410之前,还需要通过在从链内竞选获得共识验证的资格,从而成为当前轮次的共识节点。其中,从链节点竞选成为当前轮次联邦学习的过程的共识节点的流程,具体可以参见图5及其所对应的实施例中所述的方法。
进一步地,需要说明的是,由于本申请所提供的技术方案中,在从链中设置有多个共识节点,且对共识节点的数量不做任何限定,且并不限定每一轮联邦学习中共识节点的数量是相等的,从链中共识节点的数量在一轮联邦学习中选取共识节点时可以进行设置调整。
进一步地,在另一实施例中,由于从链中的各个从链节点之间具有信息一致性的特点,故在此也不限定共识节点一定是自训练节点处获得待验证的第一本地参数,在当前实施例中,共识节点可以是基于节点间信息一致性特点自其他共识节点处获取到该待验证第一本地参数。
如,当本申请多个共识节点中设置有一个领导节点,则会可以设置由共识节点中的领导节点获取各个训练节点传输的第一本地参数,然后由领导节点将所接收到的第一本地参数传输给各个共识节点。具体地,领导节点将训练节点传输的第一本地参数(w)和训练节点竞选共识节点的过程中所生成的证明和随机数(证明:π,随机数:seede)打包成候选区块。然后,向从链中共识节点广播该候选区块,以使得共识节点可以获取到该候选区块,并对候选区块中所包括的第一本地参数(w)执行共识验证。
S420:对第一本地参数执行共识验证。
共识节点对所接收到的第一本地参数执行共识验证,用以判断第一本地参数是否为训练节点基于自身存储的合法数据训练获得的。
进一步地,由于从链中各个训练节点训练获得第一本地参数的时间不是一致的,故共识节点可以同时接收到多个第一本地参数。当共识节点同时接收到多个对应不同训练节点的第一本地参数时,共识节点可以同时分别对所接收到的多个第一本地参数分别执行共识验证过程,以分别判断各个第一本地参数是否为对应训练节点基于自身存储的合法数据训练获得的。
进一步地,步骤S420对第一本地参数执行共识验证,包括:调用随机函数中的Verify函数校验第一本地参数,以判断第一本地参数是否为训练节点基于自身存储的合法数据训练获得。
在本申请所提供的技术方案中,在选取获得多个共识节点之后,还会进一步在共识委员会中确定领导节点。共识节点接收到候选区块后,调用VRF的验证(verify)函数对该区块的选取证明校验是否正确。
具体地,共识节点在接收到待验证的第一本地参数之后,共识节点会基于跟随第一本地参数被传输过来的选取证明的哈希值,利用领导节点的公钥验证选取证明是否是基于原始的第一本地参数生成的。若是,则判断得到当前的第一本地参数是训练节点基于合法数据训练获得。
如接上述例子,领导节点将训练节点传输的第一本地参数(w),以及该训练节点竞选共识节点的过程中所生成的选取证明和随机数(选取证明:π,随机数:seede)打包成候选区块,然后向从链中共识节点广播该候选区块,共识节点在收到候选区块后,会将候选区块中的选取证明(π)转化为哈希值,即对候选区块中的选取证明进行哈希运算得到VRF_proof_to_hash(π)。校验VRF_verify(PK,w,π,seede)=True/False,利用领导节点的公钥来检验选取证明π是否是基于原始参数w产生的证明,即检验VRF_hash(SK,w)是否等于VRF_proof_to_hash(π),输出是否合法。若合法,则该候选区块通过共识验证成为有效区块,即确定该第一本地参数是基于自身所存储的合法数据训练获得。其中,SK为该从链节点在竞选共识节点的过程中所生成的验证私钥,PK为领导节点的公钥。
S430:将通过共识验证的第一本地参数输出为目标本地参数,并将目标本地参数传输至上传节点。
在共识节点完成对从链节点上传的第一本地参数的共识验证,且判断得到第一本地参数为训练节点基于自身存储的合法数据训练获得之后,共识节点会将通过共识验证的第一本地参数输出为目标本地参数,然后将目标本地参数传输至上传节点。其中,上传节点为将目标本地参数上传至主链节点的从链节点。进一步地,上传节点可以为该目标本地参数所对应的训练节点、或其他任意一个从链节点,具体在此不做限定,以实际设置为准。进一步地,共识节点可以是通过广播的形式,将目标本地参数传输至上传节点。
在另一实施例中,共识节点还会用于将目标本地参数上链至从链分布式账本,以使得从链中的上传节点可以获取到该目标本地参数。
在又一实施例中,当在多个共识节点中设置领导节点时,则共识节点在完成对目标本地参数的共识验证之后,共识节点还用于将目标本地参数传输至领导节点,进而通过领导节点将目标本地参数传输至上传节点。
更进一步地,将目标本地参数传输至上传节点,进一步包括:利用领导节点对目标本地参数进行签名,并将经过领导节点签名后的目标本地参数传输至上传节点。其中,领导节点是由从链中各个共识节点在多个共识节点中投票选取得到的。具体是利用领导节点的公钥对目标本地参数进行签名,获得签名后的目标本地参数。在当前实施例中,通过利用领导节点对目标本地参数进行签名,实现更好地保护目标本地参数的安全性。
进一步地,本申请所提供的联邦学习方法还包括:基于共识验证的结果,对所接收到的各个第一本地参数所对应的训练节点的当前轮训练进行评分,并将评分的结果与训练节点关联存储至从链分布式账本。在当前实施例中,为了更好地评价各个训练节点的训练工作,各个共识节点还会根据共识验证的结果对各个训练节点进行评分。
更进一步地,是以验证目标本地参数有效的准确度作为评分标准。每个训练节点的所得的评分总和是所有共识节点的打分的中位值或均值。等新一轮训练开始时,会考虑前面一轮训练时结合各个训练节点的得分,来从中选择新的共识节点,并组成新一轮联邦学***公正性。
在本申请所提供的技术方案中,考虑到本案所确定的共识节点是运用于联盟链中,而本申请所提供的技术方案中从链所使用的场景中存在边缘客户端的数量大、网络不稳定、轻量存储和计算能力等因素,现有技术中的PoW、DPoS、PoS常使用的选取共识节点的算法通常共识耗时长,成本较高。而本申请为了解决上述技术问题,是通过对分布式Raft算法进行改进,使本申请中应用于联邦学习过程中的共识节点的选取更加有效和低成本,并具有一定的容错性。选取共识节点的方法简述为:自从链中随机选取一定数量的从链节点作为共识节点组成某一轮训练的共识委员会。
进一步地,为了保证所有参与者的公平性,本申请所提供的技术方案中,还使用可验证的随机函数在每个回合中生成领导者,成为所选取的共识节点的领导节点,用于保证了所有参与者的公平性,且在此过程中无需消耗大量的计算资源。
具体过程简述为:在选举共识节点的时候通过使用二项分布来根据每个共识候选节点(也可以理解为从链中每个从链节点)的权重计算出每个候选节点的概率。根据每个共识候选节点的概率去选举新一轮联邦学***性,这里概率计算使用随机可验证函数(Verifiable RandomFunction,VRF)生成的随机数来进行。其中,共识候选节点的权重可以理解为:从链节点在上一轮联邦学习过程中所得的本地第一本地机器学习模型的准确度评分。
进一步地,请参见图5,图5为本申请一种联邦学习方法另一实施例中的流程示意图。在当前实施例中,着重阐述的是从链节点选取成为共识节点的过程,需要说明的是,图5所对应的实施例中所阐述的各个方法步骤为每个希望竞选共识节点的从链节点均会执行的。在当前实施例中,本申请所提供的联邦学习方法包括步骤S501至步骤S505。
S501:基于预设的安全参数生成辅助全局参数。
从链节点在竞选成为共识节点时,首先会基于预设的安全参数,利用概率算法生成辅助全局参数。其中,安全参数是从链中各个从链节点共有的、且是预先设置的用于生成辅助全局参数的参数。在另一实施例中,安全参数也可以是每一轮联邦学习执行之前由用户或主链节点为各个从链节点统一下发的。
如,在一实施例中,从链节点的预设的安全参数是1λ,则从链节点可以通过调用概率算法,基于预设的安全参数生成获得一些公共的辅助全局参数,公式如下:ParamGen(1λ)→pp。其中,pp为辅助全局参数,ParamGen是所调用的概率算法。
S502:基于辅助全局参数生成验证公钥和验证私钥。
意欲参与竞选成为共识节点的从链节点基于各自所生成的辅助全局参数,进一步利用密钥生成算法生成验证密钥和验证私钥。其中,验证密钥和验证私钥是用于在竞选成功后,对训练节点所上传的第一本地参数执行共识验证的过程中。
例如,在一实施例中,基于辅助全局参数生成验证密钥和验证私钥的公式如下:KeyGen(pp)→(PKi,SKi)。其中,KeyGen代指的是密钥生成算法,输入的是辅助全局参数pp,是利用PK和SK分别代指所生成的验证公钥和验证私钥,下标i代指的是从链节点的标识号。
S503:对当前训练轮次信息、上一轮联邦学习过程中的随机数、上一轮联邦学习所得的第一全局参数、本轮训练所需共识节点的数量进行签名计算求得随机数。
从链节点在获得辅助全局参数、验证公钥和验证密钥之后,从链节点还会进一步计算求得随机数。其中,当前训练轮次信息是指的是当前所执行的联邦学习的轮次,如,对于同一个机器学习模型,当前是第三次执行联邦学习过程,则对应的当前轮次信息为3。上一轮联邦学习过程中的随机数指的是:该训练节点在上一轮联邦学习过程中,竞选共识节点时所生成的随机数。上一轮联邦学习所得的第一全局参数为:上一轮联邦学习时,主链中各个主链节点最终聚合所得的、并发送至从链中各个从链节点的第一全局参数。本轮训练所需共识节点的数量是指的所设定的当前轮次联邦学习过程中所需要的共识节点的数量。
进一步地,需要说明的是,在执行步骤S503之前,本申请所提供的方法还包括:利用随机生成器算法生成初始随机数。对应的,如若当前是执行的是对某个机器学习模型的第一轮次联邦学习过程,则可以直接将初始随机数输出为随机数。如若当前执行的是某个机器学习模型的第一轮联邦学习过程,则会直接将所得的初始随机数输出为该从链节点在当前轮次中的随机数。
具体地,随机数的计算公式如下:
Figure BDA0003446584770000141
其中,seed0表示是初始随机数,也可以理解为初始化随机种子,即第一轮训练的随机数,seede表示的是当前轮次的随机数。epoch代指的是轮次信息,epoch=1标识的是第一轮次,epoch≥1标识的是第二轮及以上轮次。
Figure BDA0003446584770000142
表示上一轮联邦学习过程中共识节点所选择的领导节点(Leader)的私钥签名。
e表示的是当前训练轮次信息,用于代指当前对于同一个机器学习模型进行联邦学习的轮次。
seede-1表示上一轮训练时选取共识节点时计算所得的随机数。
Figure BDA0003446584770000151
表示上一轮联邦学习所得的第一全局参数。
τ表示预先设定的本轮联邦学习过程中所需选取的共识节点的数量,且可以设置在对同一个机器学习模型进行的不同轮次联邦学习的过程时,所需选取的共识节点的数量可以是不同的,即每一轮联邦学习过程中所需要的共识节点的数量是可以根据需求进行调整的。
进一步地,在另一实施例中,由于计算随机数的信息都来自链上,所有从链节点都会计算得到相同的随机数。这个随机数在每一轮迭代训练时都会不断更新,不可能被攻击者预测,也不可能被其控制,使得联邦学习的共识验证更为安全可靠。
进一步地,还可以在每一轮共识过程中,根据随机种子公布一个可验证的随机函数VRF。即在当前实施例中,根据预先设定的,***根据前一轮次所生成的随机数公布一个随机函数。在本申请所提供的技术方案中,从链中的从链节点中会预留一个接口,用于调用随机函数VRF。该随机函数VRF可以是存储于从链节点可以访问的存储区域即可,以便训练节点在计算随机数时可以调用。
S504:基于验证私钥和随机数计算求得哈希结果。
进一步地,具体是每个(意欲参与共识的)从链节点调用哈希函数,基于验证私钥和随机数计算求得哈希结果。
如,从链中的从链节点可以是调用VRF_Hash(.)函数,并以自身在上述步骤S502中所得的验证私钥和步骤S503中所确定的随机数作为输入,输出一个哈希值,记为hash=VRF_val(SK,Se)。
进一步地,在另一实施例中,在基于随机数和验证私钥,利用随机可验证函数生成哈希结果的同时,本申请所提供的方法还包括:基于验证私钥和随机数计算选取证明。具体地,是调用VRF的Prove函数(即VRF_proof(·)),以其自身在上述步骤所得的验证私钥和随机数作为输入,输出一个选取证明π,记为π=VRF_proof(SK,Se)。
S505:对哈希结果进行归一化处理,并基于归一化处理结果确定选取结果。
从链节点将各自计算得到的哈希结果进行归一化处理,并将归一化处理所得的归一化结果与比对阈值进行比较,并基于比较结果确定自身的选取结果。如果归一化结果小于或等于比对阈值,则该从链节点就可以私密地知道自己被选中作为共识节点;反之,则得知自身没有被选取为共识节点。
进一步地,比对阈值可以是每一轮中预先设定的。
进一步地,在另一实施例中,比对阈值还可以是基于从链节点在上一轮联邦学习过程中获得的奖励、从链中各个从链节点所得的奖励之和期望选取的共识节点个数计算求得。
进一步地,请参见图6,图6为本申请一种联邦学习方法又一实施例中的流程示意图,在当前实施例中,上述步骤S505对哈希结果进行归一化处理,并基于归一化处理结果确定选取结果,进一步包括步骤S601至步骤S603。
S601:从链节点对哈希结果进行归一化处理得到归一化结果。
具体是利用公式
Figure BDA0003446584770000161
对哈希结果计算求得归一化结果d。其中,d也表示难度值=最大目标值/当前目标值(也可以将d的求解公式理解为:哈希结果与2的哈希结果长度次方),d∈[0,1),hashlen表示hash算法的输出的哈希结果的长度(也可以理解为哈希结果的位数)。
进一步地,从链节点对哈希结果经进行归一化处理的过程,也可以理解为是将哈希结果转换至区间[0,1)中间的值的过程。
用λ标识设定的阈值。进一步地,设定的阈值可以是通过构造二项分布函数计算得出,即执行下述步骤S602。
S602:基于从链节点在上一轮联邦学习过程中获得的奖励、从链中各个从链节点所得的奖励之和期望选取的共识节点个数,利用二项分布算法构建该从链节点的二项分布。
其中,所构建的二项分布记为下述公式:
Figure BDA0003446584770000162
其中,所构建的该二项分布表示某一从链节点i经过多次抽签被抽中为共识节点的概率。
其中:B(.)表示二项分布算法(binominal distribution algorithm)。
m表示每个从链节点(从链节点i)在上一轮联邦学习过程中获得的奖励。进一步地,这里m是将从链节点所获得的奖励标准整数化后的值,具体是基于标准整数化公式计算求得。
标准整数化公式如下:
Figure BDA0003446584770000163
其中,
Figure BDA0003446584770000164
是上一轮联邦学***均值,
Figure BDA0003446584770000165
是上一轮联邦学***均值
Figure BDA0003446584770000166
和标准差
Figure BDA0003446584770000167
并利用上述标准整数化公式对8.6进行标准化后求得的第一处理值为10。
R=∑ri表示在一轮训练中,参与的所有从链节点的奖励和。
k表示本轮模型训练中期望选择出来的共识节点个数。例如,当某一从链节点mi=10,k=4表示该从链节点允许抽签10次,其中有4根签写成“被选中”,也就是说有4次可能被抽中成为共识节点。
τ表示有效的奖励值,所有“有效”,指的是在上一轮模型训练中对第一全局参数有实际贡献的从链节点。
Figure BDA0003446584770000171
表示抽签一次被抽取为共识节点的概率。
S603:确定二项分布的累积概率密度曲线,并基于累积概率密度曲线和归一化结果确定选取结果。
在完成二项分布的构建之后,进一步确定该当前所构建的二项分布的累积概率密度曲线:
Figure BDA0003446584770000172
每个从链节点从0到ri次进行抽签,将每次抽签的概率累加,记为该从链节点被抽中的概率。最后,基于所确定的二项分布的累积概率密度曲线和哈希结果归一化处理d的归一化结果,确定自身是否竞选成为共识节点。
具体地,如若归一化结果d满足d<f(j),则记j=0,表示此次竞选共识节点该从链节点没选中;如果上述曲线中存在j满足f(j)≤d<f(j+1),记录此时j的取值,并进一步判断当前的j是否大于零。如果判断得到,使得f(j)≤d<f(j+1)成立的j>0,则该从链节点成功竞选成为当前轮次联邦学习过程中的共识节点。进一步地,从链节点在成功抽取成为共识节点时,该共识节点则会向其他从链节点公布自身的哈希结果、选取证明和使得公式f(j)≤d<f(j+1)成立的j。其中,j是代表该从链节点抽签次数。
在另一实施例中,并基于累积概率密度曲线和归一化结果确定选取结果,即是判断哈希结果归一化处理所得的归一化结果是否属于设定的阈值的所在区间,具体也可以理解为是需要判断以下公式是否成立的过程:
Figure BDA0003446584770000173
其中,设定的阈值λ对应的区间范围如下:
Figure BDA0003446584770000174
判断归一化结果d是否在该设定的阈值范围内;若在该范围内,则表示当前从链节点被选中为本轮次的联邦学习的共识节点,若不在该范围内,则表示当前从链节点没有被选中为共识节点。
进一步地,本申请所提供的技术方案中,在选取共识节点之后还会进一步在所选取的共识节点中选举唯一领导节点(Leader节点)。
首先,根据上述方法在从链中的若干从链节点中选取出多个共识节点,并由所选取的多个共识节点组成当前轮次联邦学习过程的共识委员会。然后,这些共识节点可以各自自主向从链中所有从链节点发起选举自己成为领导节点的请求,以请求其他的从链节点为自己投票。然后等待设定时间,在此期间由各个从链节点选择进行领导节点投票选举。在一定时间内(由计时器计数),得到票数最多的共识节点将成为当前轮次联邦学习过程的领导节点。领导节点具有向从链中的其他从链节点发出指令的功能,比如某一个从链节点上传第一本地参数,且该第一本地参数通过共识委员会中的共识节点的共识验证,被确定为目标本地参数,则领导节点此时用于向从链中其他各个从链节点发送进行账本同步的指令,以使得从链中的各个从链节点将该目标本地参数保存至自身的分布式账本。
更进一步地,如若在选取领导节点的过程中,经过对共识节点所得的票数统计确定:出现两个(或多个)共识节点所获得的票数相等,则本申请所提供的方法还包括:对票数相等的多个共识节点再次发起新一轮的投票选举过程。新一轮投票选举过程中获得票数最多的共识节点成为领导共识节点。
更进一步地,在另一实施例中,如若在选取领导节点的过程中,经过对共识节点所得的票数统计确定:出现两个(或多个)共识节点所获得的票数相等,则可以进一步结合各个共识节点的评分和/或所获得的奖励,确定最终的领导节点。具体地,是将评分最高和/或所获得的奖励最多的共识节点确定为当前轮次联邦学习中的领导节点。
具体地,本申请所提供的技术方案是通过优化传统RAFT共识来完成对第一本地参数的共识验证。
为了进一步激励从链中各个从链节点可以积极参与联邦学习,本申请所提供的联邦学习还设置有激励机制。具体地,请参见图7,图7为本申请一种联邦学习方法一实施例中的流程示意图。在当前实施例中,本申请所提供的联邦学习方法是由从链中的上传节点执行,上传节点为从链中用于上传第一本地参数至主链中的主链节点的从链节点,从链中的从链节点包括若干训练节点和若干共识节点。本申请所提供的方法包括步骤S710至步骤S730。
S710:上传节点获取待上传的第一本地参数和待验证的第一本地参数。
在执行联邦学习的过程中,当某一个第一本地参数通过共识委员会的共识验证之后,用于执行上传功能的上传节点还会获取待上传的第一本地参数和待验证的第一本地参数,然后执行下述步骤S720。
其中,待上传的第一本地参数为经过若干共识节点共识验证的第一本地参数,也可以理解为上述各个实施例中所述的目标本地参数;待验证的第一本地参数为没有经过共识验证的第一本地参数。需要说明的是,在本申请所提供的技术方案中,根据预先设定,上传节点可以为从链中任意一个从链节点。如在一实施例中,可以预先设定由训练目标本地参数的训练节点执行上传目标本地参数至主链节点。在另一实施例中,也可以预先设定由共识节点中任意一个执行上传目标本地参数至主链节点。在又一实施例中,也可以设置是由从链中除去训练得到目标本地参数的从链节点以外的任意一个从链节点作为上传节点,用于执行上传目标本地参数至主链节点的功能。
S720:比较待上传的第一本地参数和待验证的第一本地参数,以判断第一本地参数是否被篡改。
上传节点在获取到待上传的第一本地参数和待验证的第一本地参数之后,进一步比较待上传的第一本地参数和待验证的第一本地参数。
进一步地,在一实施例中,上传节点可以是直接比较待上传的第一本地参数(目标本地参数)和待验证的第一本地参数,判断两者是否相同,若相同,则判断得到第一本地参数没有被篡改,将待上传的第一本地参数上传至主链节点;反之,若比较得到两者不同,则判断得到当前第一本地参数被篡改,则会执行下述步骤S730。
在另一实施例中,还可以是通过对所获取的待上传的第一本地参数和待验证的第一本地参数分别进行哈希运算。对待验证的第一本地参数进行哈希运算获得第一哈希值,对待上传的第一本地参数进行哈希运算获得第二哈希值,然后比较第一哈希值是否等于第二哈希值,若是,则表示当前待上传第一本地参数没有被篡改,将待上传的第一本地参数上传至主链节点;反之,若第一哈希值不等于第二哈希值,则表示当前待上传的第一本地参数被篡改,并执行下述步骤S730。
更进一步地,待验证的第一本地参数的第一哈希值,可以是训练节点在训练得到第一本参数,且在将第一本地参数传输至共识节点之前,由训练该第一本地参数的训练节点执行哈希运算的过程获得第一哈希值,并将第一哈希值存储至自身存储区或在从链内上链存储。然后在执行上述步骤S720时获取该第一哈希值,并与计算所得的第二哈希值进行比对。
S730:若是,则确定第一训练节点符合处理条件,并根据预设处理策略扣除第一训练节点的数字代币。
其中,第一训练节点为训练得到第一本地参数的训练节点。上传节点若判断得到第一本地参数被篡改,则确定训练得到该待上传的第一本地参数的训练节点(即第一训练节点)符合处理条件。在确定第一训练节点符合处理条件之后,进一步根据预设处理策略扣除该第一训练节点的数字代币。
在一实施例中,预设处理策略为:对符合处理条件的第一训练节点扣除预设数量的数字代币。在当前实施例中,会对符合处理条件的第一训练节点扣除相同的数字代币。
在另一实施例中,预设处理策略为:结合第一训练节点训练获得第一本地参数所耗用的时间,确定对符合处理条件的第一训练节点的数字代币的扣除量。其中,数字代币的扣除量与训练获得第一本地参数所耗用的时间正相关,当符合处理条件的第一训练节点训练获得第一本地参数所耗用的时间越长,则对应扣除越多的数字代币;反之,当符合处理条件的第一训练节点训练获得第一本地参数所耗用的时间越短,则对应扣除越少的数字代币。
本申请在图7所对应的实施例中,通过设置有奖惩机制,具体为每个与从链节点绑定的用户设置有一个账户,该账户用于接收和发送数字代币。若从链节点发送正确的目标本地参数或对第一全局参数提供足够贡献的目标本地参数则奖励数字代币;反之,若发送恶意参数则惩罚数字代币。并在一些实施例中,设置奖励的数字代币的数量也与每个从链节点上传目标本地参数到主链的时间有正相关,上传越快,则奖励的数字代币越多,可以形成激励生态闭环,促进全局参数(全局机器学习模型)训练优化。
请参见图8,图8为本申请一种联邦学习一实施例中的流程示意图,在当前实施例中,在当前实施例中,本申请所提供的联邦学习方法是由主链中的主链节点执行,主链节点与从链中的从链节点可以进行交互,从链包括若干从链节点,从链节点与主链中的主链节点进行交互。按照每一轮联邦学习过程中各个从链节点所执行的功能进行划分,从链节点包括训练节点和共识节点。本申请所提供的方法包括步骤S810至步骤S830。
S810:主链节点获取第一预设数量的从链节点上传的目标本地参数。
主链节点在执行本申请所提供的联邦学习方法时,主链节点首先需要获取第一预设数量的从链节点上传的目标本地参数。其中,第一预设数量可以是预先根据需求进行设置以及进行调整。
进一步地,主链节点获取第一预设数量的从链节点上传的本地参数之前,该方法还包括:自从链中所有的从链节点中随机选取第一预设数量的从链节点。
在一实施例中,当与当前主链配合执行联邦学习的从链中所包括的训练节点的总数量较大时,为了提高联邦学习的效率,用户可以根据从链中所包括的训练节点总数量调整第一预设数量。例如,在一实施例中,当从链中所包括的从链节点的总数量为10000时,可以设置第一数量为1000。
在另一实施例中,当从链中所包括的从链节点的总数量为100时,可以对应将第一预设数量设置为100。即在一些实施例中,也可以设置第一预设数量等于从链中包括的从链节点的数量,即设置主链节点获取从链中所包括的所有从链节点上传的目标本地参数,然后基于所获取的目标本地参数执行下述步骤S820。
进一步地,主链节点是自从链中随机确定第一预设数量的从链节点,然后获取所确定的第一预设数量的从链节点所上传的目标本地参数。需要说明的是,通常是等待所选取的第一预设数量的从链节点都上传本地参数之后,主链中的主链节点才会进行聚合。其中,主链节点至少包括服务器。
在另一实施例中,主链节点还可以是基于从链节点的准确度(或评分)排名,抽取准确度(或评分)排名靠前的第一预设数量个从链节点,然后基于所抽取的第一预设数量个从链节点所上传的目标本地参数执行下述步骤S820。
S820:基于第一预设数量的目标本地参数聚合得到第一全局参数。
主链节点在获取第一预设数量的目标本地参数之后,进一步将第一预设数量的目标本地参数聚合得到第一全局参数。第一全局参数所对应的第一全局机器学习模型可将整个训练数据集上的损失函数(即所有从链节点和/或所有主链节点上的数据的并集)最小化。
进一步地,主链节点聚合第一预设数量的目标本地参数得到第一全局参数之后,需要经过在主链内广播,以经过主链内各个主链节点共识确认一致性后得到唯一一个第一全局参数,然后执行输出第一全局参数的步骤,以将该第一全局参数反馈给从链节点,并触发下一轮学习迭代。其中,不同的从链节点的第一本地参数的聚合是通过智能合约来完成参数聚合。
进一步地,在步骤S820基于第一预设数量的目标本地参数聚合得到第一全局参数之后,本申请所提供的方法还包括:将第一全局参数上传至主链分布式账本中存储。在该实施例中,通过将第一全局参数上传至主链分布式账本可以实现使得主链中各个主链节点都可以通过,访问主链分布式账本获得该第一全局参数,也较好地避免第一全局参数被篡改。
S830:输出第一全局参数。
在聚合得到第一全局参数之后,进一步将第一全局参数输出。
进一步地,输出第一全局参数,包括:将第一全局参数输出至各个主链节点和/或各个从链节点。
进一步地,主链节点可以是将第一全局参数输出至主链中各个主链节点处。更进一步地,主链节点还可以是将第一全局参数输出至主链中各个主链节点和从链中各个从链节点处。
具体地,主链节点可以通过广播的方式将第一全局参数输出至主链中各个主链节点和/或从链所包括的各个从链节点处。
在当前实施例中,通过设置包括若干主链节点的主链与从链进行配合,实现避免对于单一服务器的依赖。本申请所提供的技术方案中,由于主链和从链一样,均具有信息一致性,在任意一个主链节点在聚合得到第一全局参数时,即会输出至主链内各个主链节点,从而实现使得主链中各个主链节点的信息保持一致性,这样在任意一个主链节点出现故障时,依然可以稳定配合从链完成联邦学习,获得第一全局参数并输出,提高了联邦学习的安全可靠性。
请参见图9,图9为本申请一种联邦学习方法另一实施例中的流程示意图。在当前实施例中,本申请所提供的方法包括步骤S901至步骤S904。
S901:主链节点获取第一预设数量的从链节点上传的目标本地参数。
当前实施例中的步骤S901与上文所述的步骤S810相同,具体可以参见上文对应部分的阐述,在此不重复。在当前实施例中,为了使得所得的第一全局参数更为准确,使得第一全局参数的损失函数值更小,故上述步骤S820基于第一预设数量的目标本地参数聚合得到第一全局参数,在当前实施例中进一步包括步骤S902至步骤S903。
S902:基于目标本地参数聚合得到初始全局参数。
在获取第一预设数量的从链节点上传的目标本地参数之后,主链节点首先还会基于所获取的第一预设数量的目标本地参数进行聚合,并将聚合所得输出为初始全局参数。其中,在当前实施例中,初始全局参数为基于目标本地参数聚合所得的全局参数。
从链节点训练得到第一本地参数后,可以是通过TCP协议通信发送给主链节点进行聚合。在当前实施例中,可以是对目标本地参数执行加权聚合获得初始全局参数。其中,加权系数与两个因素有关,一是各个从链节点所具备的数据量占总训练数据量的比例,二是目标本地参数所对应的本地机器学习模型的准确度。其中,目标本地参数所对应的本地机器学习模型的准确度可以是利用公共验证集验证得到。
其中,聚合后全局参数的计算公式具体如下:
Figure BDA0003446584770000211
其中:
Figure BDA0003446584770000212
表示编号为i的从链节点所存储的本地数据量(每个从链节点用于训练目标本地参数的训练数据的总量),
Figure BDA0003446584770000213
表示的是所有从链节点中用于训练目标本地参数的训练数据的总量。
Figure BDA0003446584770000221
表示编号为i的从链节点所得的目标本地参数所对应的本地机器学习模型在验证数据集上运行的准确度,
Figure BDA0003446584770000222
表示编号为i至A的从链节点各自所得的目标本地参数所对应的本地机器学习模型在验证数据集上运行的准确度总和。
D1:A表示从编号1开始到编号为A的所有从链节点集合。
α表示权重系数,可以根据需求进行调整。
S903:基于初始全局参数和自身所存储的第二类数据进行循环训练,以获得第一全局参数。
在聚合得到初始全局参数之后,主链节点进一步基于初始全局参数和自身所存储的第二类数据,并利用第二训练算法进行循环训练,以获得第一全局参数。其中,第二训练算法包括梯度下降算法,第二类数据为主链节点所存储的数据。在当前实施例中,训练得到第一本地参数的第一类数据类型包括无标签数据,对应的第二类数据的类型包括有标签数据。
进一步地,在其他实施例中,第二类数据的类型还可以包括无标签数据。
其中,第一全局参数为循环训练中所得的损失函数值最小的全局参数。
S904:输出第一全局参数。
步骤S904与上述步骤S830相同,可以对应参见上文对应部分阐述。
图9所对应的实施例中,基于随机抽取的第一预设数量的目标本地参数确定初始全局参数,然后基于初始全局参数和主链节点自身所存储的第二类数据训练获得全局参数,确定该全局参数的损失函数是否为最小,即确定该全局参数是否为最优全局参数,若是则输出为第一全局参数并结束当前循环;若否,则再次基于当前次的全局参数对自身所存储的第二类数据进行训练获得新一次的全局参数,以此类推,循环迭代,直至输出损失函数最小的全局参数,并将损失函数的最小的全局参数输出为第一全局参数,并同步至各个主链节点和从链各个从链节点。
另外,在图9所对应的实施例中,参与机器学习模型训练的带标签数据被存放在主链节点端中,而大量的无标签数据却存放在从链节点中,即带标签的监督学习过程和无标签的无监督学习过程将分别在主链节点端和从链节点进行,可以较好地提高机器学习模型的准确度,提高训练的效率。
进一步地,接图9所对应的实施例中,各个从链节点接收到由附近主链节点发送来的第一全局参数后,从链节点会进一步将该第一全局参数(第一全局机器学习模型)在其本地测数据集上进行模型检测/评估。其中,评估所得的模型准确度可以输出作为该从链节点在此轮(epoch)模型训练的奖励依据。同时,该第一全局参数将作为下一轮从链节点执行再一轮训练的联邦学习过程,如此迭代循环以训练多轮。
需要说明的是,每个从链节点所存储的本地数据拆分为两部分:第一类数据和测试数据。其中,第一类通常占比较大,用作训练数据,用来训练本地参数和/或用于模型构建,测试数据用来验证更新好的第一全局参数是否准确。
请参见图10,图10为本申请一种联邦学习方法又一实施例中的流程示意图。在当前实施例中,上述步骤S902基于所述第一预设数量的目标本地参数聚合得到初始全局参数,进一步包括步骤S1001至步骤S1002。
S1001:确定第一预设数量的从链节点各自的第一权重。
其中,第一权重是主链中各个主链节点基于从链节点所存储的数据信息和历史业务能力确定的。每个主链节点对于各个从链节点的权重取舍是相同的,如若不同的主链节点关于权重无法统一意见时,则会默认取权重的平均值作为第一权重。
S1002:按照第一权重,对每个本地参数进行聚合得到初始全局参数。
在确定各个从链节点各自的第一权重之后,进一步按照第一权重,对每个本地参数进行聚合得到初始全局参数。
进一步地,在主链节点一端,本申请所提供的联邦学习方法还包括:
向目标区域中的从链节点下发第一训练算法。其中,主链节点可以是通过广播的形式或点对点通信方式向从链节点下发第一训练算法。第一训练算法为从链节点用于训练得到本地参数的算法。第一训练算法包括梯度下降算法。
主链节点获取第一预设数量的从链节点上传的目标本地参数之后,本申请所提供的联邦学习方法还包括:主链节点根据本地参数中预设元组的哈希值,验证从链节点的身份。具体地,主链节点是基于所接收到的本地参数中预设元组的哈希值验证从链节点的身份。其中,预设元组的哈希值包括UUID,预设元组里面包含有<从链节点地址、参数字节大小、参数类型、从链节点ID>。
基于第一预设数量的目标本地参数聚合得到第一全局参数之后,该联邦学习方法还包括:根据各个目标本地参数对第一全局参数的贡献,分别对第一预设数量的从链节点进行评分和执行预设奖惩处理。
其中,预设奖惩处理中的奖励的数字代币的数量与每个从链节点上传目标本地参数到主链节点的时间正相关。
进一步地,当从链中所包括的从链节点数量大于第一预设数量时,则主链节点在获得第一全局参数之后,主链节点还用于求取第一预设数量的目标本地参数的贡献值的均值。主链节点在求取得到贡献值的均值之后,进一步将均值确定为第二本地参数的贡献值,并基于第二本地参数的贡献值,分别对每个第二本地参数关联的从链节点执行预设奖惩处理。其中,第二本地参数为主链节点所接收到的除目标本地参数以外的第一本地参数。
请参见图11,图11为本申请一种联邦学习方法一实施例中流程示意图。在当前实施例中,着重展示的是联邦学习***中各个节点交互的示意图。具体地,本申请所提供的方法如下:
1.主链节点下发第一训练算法至从链节点。
2.从链节点获取第一训练算法。
3.从链节点确定第一类数据和第一初始参数,利用第一训练算法、第一类数据和第一初始参数进行模型训练,获得第一本地参数。
4.将第一本地参数传输至共识节点。
5.共识节点对第一本地参数进行共识验证。
6.共识节点将通过共识验证的第一本地参数输出为目标本地参数。
7.共识节点将目标本地参数传输至从链节点。
8.从链节点将目标本地参数传输至主链节点。
9.主链节点获取第一预设数量的从链节点上传的目标本地参数。
需要说明的是,在一些实施例中,当执行上传目标本地参数至主链节点是从链中的上传节点时,则该步骤可以理解为获取第一预设数量的目标本地参数,且第一预设数量的目标本地参数为不同的训练节点训练得到。
10.基于第一预设数量的目标本地参数聚合得到第一全局参数。
11.输出第一全局参数至各个主链节点和/或从链节点。
在本申请所提供的技术方案中,用区块链技术增强机器学习模型训练阶段的数据和模型安全性,将每个时间段、每次迭代所得的参数(这里的参数包括第一本地参数、目标本地参数、第一全局参数和初始参数)与迭代过程中所得的其他结果自动上传至对应的数据区块中,并在各个节点间快速同步,实现共享,降低传输成本。同时,区块链的不可篡改与哈希链式相连的特点,使训练所得的第一全局参数(即训练所得的全局机器学习模型)在存储阶段拥有保障敏感数据的安全性。
请参见图12,图12为本申请一种电子设备一实施例中的结构示意图。在当前实施例中,本申请所提供的电子设备1200包括处理器1201以及与处理器1201耦接的存储器1202。电子设备1200可以执行图2至图11及其对应的任意一个实施例中所述的方法。
其中,存储器1202包括本地储存(图未示),且用于存储有计算机程序,计算机程序被执行时可以实现图2至图11及其所对应的任意一个实施例中所述的方法。
处理器1201与存储器1202耦接,处理器1201用于运行计算机程序,以执行如上图2至图11及其对应的任意一个实施例中所述的方法。进一步地,在一些实施例中,电子设备可包括移动终端、车载终端、摄像头、电脑终端、计算机、具备计算存储能力的图像采集设备、服务器等中的任意一种,也可以包括其他任何具有计算处理功能的设备。
参见图13,图13为本申请一种计算机可读存储介质一实施例结构示意图。该计算机可读存储介质1300存储有能够被处理器运行的计算机程序1301,该计算机程序1301用于实现如上图2至图11及其对应的任意一个实施例中所描述的方法。具体地,上述计算机可读存储介质1300可以是存储器、个人计算机、服务器、网络设备,或者U盘等其中的一种,具体在此不做任何限定。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (20)

1.一种联邦学习方法,其特征在于,所述方法是由从链中的训练节点执行,所述从链中包括若干从链节点,所述从链节点与主链中的主链节点能够进行交互,所述从链节点包括训练节点和共识节点,所述方法包括:
所述训练节点获取第一训练算法;
确定第一类数据和第一初始参数,利用所述第一训练算法、所述第一类数据和所述第一初始参数进行模型训练,以获得第一本地参数;
将所述第一本地参数传输至所述共识节点,以利用所述从链中的所述共识节点对所述第一本地参数进行共识验证;
将通过所述共识验证的所述第一本地参数确定为目标本地参数,并将所述目标本地参数上传至主链节点。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一本地参数传输至所述共识节点之前,所述方法还包括:
计算所述第一本地参数的第一哈希值,并存储所述第一哈希值;
所述将所述目标本地参数上传至主链节点之前,所述方法还包括:
计算所述目标本地参数的第二哈希值;
判断所述第二哈希值与所述第一哈希值是否相等;
若是,则执行所述将所述目标本地参数上传至主链节点的步骤。
3.根据权利要求2所述的方法,其特征在于,若所述第二哈希值不等于所述第一哈希值,则不执行所述将所述目标本地参数上传至主链节点的步骤,并重新执行所述利用所述第一训练算法、所述第一类数据和所述第一初始参数进行模型训练获得第一本地参数的步骤。
4.根据权利要求1所述的方法,其特征在于,所述利用所述第一训练算法、所述第一类数据和所述第一初始参数进行模型训练,以获得第一本地参数,进一步包括:
利用所述第一训练算法、所述第一类数据和所述第一初始参数,在云端模拟机上进行模型训练,以获得所述第一本地参数。
5.根据权利要求1所述的方法,其特征在于,所述获取第一训练算法之前,所述方法还包括:
向当前所在区域的主链节点发送从链加入请求,以获得所述主链节点下发的从链ID和CA证书。
6.根据权利要求1所述的方法,其特征在于,所述将所述目标本地参数上传至主链节点,包括:
利用主链节点的公钥对所述目标本地参数进行数字签名,并将签名后的所述目标本地参数通过自身或所述从链中的上传节点上传至主链节点,其中,所述上传节点为所述从链中用于与所述主链节点进行交互的节点。
7.一种联邦学习方法,其特征在于,所述方法是由从链中的共识节点执行,所述从链中包括若干从链节点,所述从链节点与主链中的主链节点可以进行交互,所述从链节点包括训练节点和共识节点,所述方法包括:
共识节点接收到训练节点发送的待验证的第一本地参数;
对所述第一本地参数执行共识验证;
将通过所述共识验证的所述第一本地参数输出为目标本地参数,并将所述目标本地参数传输至上传节点。
8.根据权利要求7所述的方法,其特征在于,所述对所述第一本地参数执行共识验证,包括:
调用随机函数中的Verify函数校验所述第一本地参数,以判断所述第一本地参数是否为所述训练节点基于自身存储的合法数据训练获得。
9.根据权利要求7至8任意一项所述的方法,其特征在于,所述方法还包括:
基于所述共识验证的结果,对所接收到的各个所述第一本地参数所对应的训练节点的当前轮训练进行评分,并将所述评分的结果与所述训练节点关联存储至所述从链分布式账本。
10.根据权利要求7所述的方法,其特征在于,所述将所述目标本地参数传输至上传节点,包括:
利用领导节点对所述目标本地参数进行签名,并将经过所述领导节点签名后的所述目标本地参数传输至所述上传节点,其中,所述领导节点是由所述从链中各个所述共识节点投票选取的,所述上传节点为将所述目标本地参数上传至所述主链节点的从链节点。
11.一种联邦学习方法,其特征在于,所述方法是由主链中的主链节点执行,所述主链节点与从链中的从链节点可以进行交互,所述从链包括若干从链节点,所述从链节点与主链中的主链节点进行交互,所述从链节点包括训练节点和共识节点,所述方法包括:
主链节点获取第一预设数量的从链节点上传的目标本地参数;
基于所述第一预设数量的目标本地参数聚合得到第一全局参数;
输出所述第一全局参数。
12.根据权利要求11所述的方法,其特征在于,所述基于所述第一预设数量的目标本地参数聚合得到第一全局参数,所述方法还包括:
基于所述目标本地参数聚合得到初始全局参数;
基于所述初始全局参数和自身所存储的第二类数据进行循环训练,以获得所述第一全局参数,其中,所述第一全局参数为所述循环训练中所得的损失函数值最小的全局参数。
13.根据权利要求12所述的方法,其特征在于,所述基于所述第一预设数量的目标本地参数聚合得到初始全局参数,进一步包括:
确定所述第一预设数量的从链节点各自的第一权重,其中,所述第一权重是所述主链中各个所述主链节点基于所述从链节点所存储的数据信息和历史业务能力确定的;
按照所述第一权重,对每个所述本地参数进行聚合得到所述初始全局参数。
14.根据权利要求11至12任意一项所述的方法,其特征在于,所述基于所述第一预设数量的目标本地参数聚合得到第一全局参数之后,所述方法还包括:
将所述第一全局参数上传至主链分布式账本中存储;
输出所述第一全局参数,进一步包括:将所述第一全局参数输出至各个所述主链节点和/或各个所述从链节点。
15.根据权利要求11至12任意一项所述的方法,其特征在于,所述方法还包括:
向目标区域中的所述从链节点下发第一训练算法,所述第一训练算法为所述从链节点用于训练得到所述本地参数的算法。
16.根据权利要求11至12任意一项所述的方法,其特征在于,所述主链节点获取第一预设数量的从链节点上传的目标本地参数之后,所述方法还包括:
所述主链节点根据所述本地参数中预设元组的哈希值,验证所述从链节点的身份。
17.根据权利要求11至12任意一项所述的方法,其特征在于,所述基于所述第一预设数量的目标本地参数聚合得到第一全局参数之后,所述方法还包括:
根据各个所述目标本地参数对所述第一全局参数的贡献,分别对所述第一预设数量的从链节点进行评分和执行预设奖惩处理;其中,预设奖惩处理中的奖励与每个所述从链节点上传所述目标本地参数到所述主链节点的时间正相关。
18.一种联邦学习***,其特征在于,所述***包括能够进行交互的主链和从链,其中,所述从链包括若干从链节点,所述从链节点包括训练节点和共识节点,所述主链包括若干主链节点;
所述训练节点用于训练获得第一本地参数,所述共识节点用于对所述训练节点训练所得的所述第一本地参数进行共识验证,所述训练节点还用于将通过所述共识验证的第一本地参数确定为目标本地参数,并将所述目标本地参数上传至所述主链节点;
所述主链节点能够与所述从链中至少一个所述从链节点进行交互,所述主链节点用于获取第一预设数量的所述从链节点上传的目标本地参数,并基于第一预设数量的目标本地参数聚合得到第一全局参数,并输出所述第一全局参数。
19.一种电子设备,其特征在于,所述电子设备包括处理器以及与所述处理器耦接的存储器;其中,
所述存储器用于存储计算机程序;
所述处理器用于运行所述计算机程序以执行权利要求1至17任意一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有能够被处理器运行的计算机程序,所述计算机程序用于实现权利要求1至17任一项所述的方法。
CN202111651216.0A 2021-12-30 2021-12-30 一种联邦学习方法及相关装置 Pending CN114372589A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111651216.0A CN114372589A (zh) 2021-12-30 2021-12-30 一种联邦学习方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111651216.0A CN114372589A (zh) 2021-12-30 2021-12-30 一种联邦学习方法及相关装置

Publications (1)

Publication Number Publication Date
CN114372589A true CN114372589A (zh) 2022-04-19

Family

ID=81141710

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111651216.0A Pending CN114372589A (zh) 2021-12-30 2021-12-30 一种联邦学习方法及相关装置

Country Status (1)

Country Link
CN (1) CN114372589A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114844653A (zh) * 2022-07-04 2022-08-02 湖南密码工程研究中心有限公司 基于联盟链的可信联邦学习方法
CN115796275A (zh) * 2023-01-05 2023-03-14 成都墨甲信息科技有限公司 基于区块链的联邦学习方法、装置、电子设备及存储介质
TWI818708B (zh) * 2022-09-02 2023-10-11 英業達股份有限公司 驗證模型更新的方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114844653A (zh) * 2022-07-04 2022-08-02 湖南密码工程研究中心有限公司 基于联盟链的可信联邦学习方法
TWI818708B (zh) * 2022-09-02 2023-10-11 英業達股份有限公司 驗證模型更新的方法
CN115796275A (zh) * 2023-01-05 2023-03-14 成都墨甲信息科技有限公司 基于区块链的联邦学习方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109426567B (zh) 一种区块链的节点部署和选举方法
CN114372589A (zh) 一种联邦学习方法及相关装置
US10965466B2 (en) Estimable proof-of-work for blockchain
CN108933656B (zh) 在线作品投票方法及装置、计算机设备、可读存储介质
JP7340628B2 (ja) ブロックチェーンに基づくサービス情報処理方法、装置及び可読記憶媒体
CN111090892A (zh) 一种基于vrf和门限签名的区块链共识方法和装置
US11157899B1 (en) System and method for bootstrapping a separate proof of work chain
CN110855432B (zh) 基于可验证随机函数分配验证者奖励的异步bft&amp;dpos共识机制
CN110611701A (zh) 一种基于区块链的参数配置和交易处理方法
CN110928951A (zh) 一种基于区块链的数据共享及仲裁方法
CN112651830B (zh) 应用于电力资源共享网络的区块链共识方法
Xu et al. μDFL: A secure microchained decentralized federated learning fabric atop IoT networks
CN110445603A (zh) 一种去中心化随机数生成方法
Bashar et al. Contextualizing consensus protocols in blockchain: A short survey
CN115499129A (zh) 一种多模信任跨链共识方法、***、介质、设备及终端
CN110990790B (zh) 一种数据处理方法及设备
US11354629B1 (en) Controlling initiation of a blockchain election using a burn quota
CN111046439A (zh) 一种基于区块链的智能合约任务可验证方法和***
CN114422146A (zh) 一种区块链主节点匿名排序方法
Hsueh et al. EPoW: Solving blockchain problems economically
CN114169670A (zh) 一种区块链两阶段共识方法、装置、设备和介质
US11290280B1 (en) Cryptocurrency mining using a single-leader election algorithm
CN114372588A (zh) 一种共识节点的选取方法及相关装置
CN114358324A (zh) 一种具有奖惩机制的联邦学习方法及相关装置
CN116595094A (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