1.一种基于区块链的去中心化联邦学习数据共享方法,其特征在于,应用于区块链、联邦学习框架、星际文件系统以及数据共享参与者之间,所述方法包括如下步骤:数据处理:每个数据拥有者对本地数据集进行数据摘要计算,得到包括数据类型、数据格式和数据量的数据摘要;
区块链注册:每个数据拥有者作为节点、基于其节点ID和数据摘要注册至区块链;
共享小组构建:作为联邦学习请求者的节点向区块链发起数据共享请求,基于数据共享请求中指定数据摘要的向量表示、根据向量相似度从区块链中选取节点作为联邦学习训练者,基于联邦学习请求者和联邦学习训练者构建共享小组,共享小组内每个节点向其它节点发送小组注册信息,小组注册信息包括节点的公钥和数据摘要;
数据共享:联邦学习请求者通过区块链将初始模型广播至各联邦学习训练者,共享小组内每个节点进行迭代模型训练直至得到最终的全局模型,其中,在每轮模型训练时,基于共识机制将共享小组内所有节点划分为委员会节点和非委员会节点,并根据节点在当前轮次输出训练后本地模型的质量、选取一个委员会节点为委员会主节点,委员会主节点对所有节点当前轮次的本地模型梯度进行聚合,得到当前轮次的全局模型梯度,本地模型梯度中添加有差分隐私噪声,委员会节点基于全局模型的质量对当前轮次全局模型进行验证审批后,委员会主节点将签名后全局模型以及全局模型质量广播至共享小组内其它所有节点、并发送至星际文件系统;
基于数据共享请求中指定数据摘要的向量表示、根据向量相似度从区块链中选取节点作为联邦学习训练者,包括如下步骤:基于数据共享请求中指定数据摘要、区块链构建向量空间模型,向量空间模型用于对数据摘要进行特征提取、输出数据摘要的向量表示;
通过向量空间模型计算数据共享请求中指定数据摘要的向量表示,并遍历区块链中其它节点、计算其它每个节点数据摘要的向量表示,基于余弦相似度计算数据共享请求中指定数据摘要与其它每个节点数据摘要的向量相似度,将向量相似度满足阈值的其它节点作为联邦学习训练者;
其中,对于两个 维向量 和 ,相似性系数定义为 ,
向量相似度计算公式如下:
;
根据节点在当前轮次输出训练后本地模型的质量、选取一个委员会节点为委员会主节点,包括如下步骤:对于共享小组内每个节点,对所述节点在当前轮次输出的本地模型梯度添加差分隐私噪声、得到添加差分隐私噪声的本地模型梯度,基于本地模型梯度、通过平均绝对误差计算所述节点在当前轮次输出本地模型的质量,得到本地模型质量,通过节点的密钥对分别对本地模型梯度和本地模型质量加密,基于其节点ID、加密后本地模型梯度、加密后本地模型质量、声誉值、角色标识、事务标识以及时间戳构建节点的模型事务,并将模型事务广播至共享小组内其它节点;
对于所有委员会节点,依次选取一个委员会节点为领导节点,基于领导节点的数据量、本地模型质量以及所有委员会节点的本地模型质量,计算领导节点的验证工作质量,选取验证工作质量最小的领导节点作为委员会主节点;
对于节点 ,基于添加差分隐私噪声的本地模型梯度、通过平均绝对误差计算所述节点在当前轮次输出本地模型的质量时,本地模型质量 的计算公式如下:,
其中, 是节点 本地数据集内样本数量, 是样本对应的真实值, 是本地模式输出的预测值, 为真实值与预测值的差值, 是节点 添加差分隐私噪声后的本地模型梯度;
对于领导节点 ,计算领导节点的验证工作质量时,验证工作质量 的计算公式如下:,
其中,是节点 的数据量,是委员会节点的总数, 是节点 本地模型的质量,表示节点 对全局模型贡献的权重参数,表示委员会节点 的数据量, 是节点 添加差分隐私噪声后的本地模型梯度;
每轮模型训练时,委员会主节点对当前轮次的本地模型梯度进行聚合,包括如下步骤:委员会主节点接收其它所有节点的模型事务后,对各节点模型事务中加密后本地模型梯度以及加密后本地模型质量进行解密,得到每个节点的本地模型梯度和本地模型质量;
基于所有节点的本地模型梯度进行聚合,得到在当前轮次的全局模型梯度,对全局模型梯度添加差分隐私噪声,得到添加有差分隐私噪声的全局模型梯度,基于全局模型梯度、通过平均绝对误差计算全局模型的质量,得到全局模型质量;
委员会主节点基于其密钥对对全局模型梯度以及全局模型质量进行加密,并基于其节点ID、加密后全局模型梯度、加密后全局模型质量、事务标识以及时间戳构建模型事务,并将模型事务发送至其它每个委员会节点;
其中,基于所有节点的本地模型梯度、通过FedAvg聚合方法进行聚合,得到在当前轮次的全局模型梯度,全局模型梯度 计算公式如下:,
其中, 是学习率,是联邦学习训练者的数量, 是作为联邦学习训练者的节点 输出的本地模型梯度;
基于全局模型梯度,更新后全局模型表达式如下:
,
其中, 表示更新后全局模型, 表示更新前全局模型;
每轮模型训练时,委员会节点基于全局模型的质量对当前轮次全局模型进行验证审批,包括如下步骤:委员会节点接收到委员会主节点发送的模型事务后,对模型事务中加密后全局模型梯度以及加密后全局模型质量进行解密,得到在当前轮次的全局模型梯度以及全局模型质量,并将解析得到全局模型质量作为待验证质量;
基于各委员会节点的数据量以及在当前轮次的本地模型质量、通过平均绝对误差计算全局模型的质量,得到全局模型质量作为对比质量;
将待验证质量与对比质量进行比对,如果待验证质量与对比质量之间的差值在预定范围内,验证审批通过,并向委员会主节点返回验证结果;
其中,基于各委员会节点的数据量以及在当前轮次的本地模型质量、通过平均绝对误差计算全局模型的质量时,对于委员会节点 、全局模型质量的计算公式如下:,
是委员会节点的总数,是节点 的数据量大小, 是委员会节点 的本地模型质量。
2.根据权利要求1所述的基于区块链的去中心化联邦学习数据共享方法,其特征在于,基于联邦学习请求者和联邦学习训练者构建共享小组后,通过区块链为共享小组内每个节点分配一个初始化的声誉值;
对应的,在每轮模型训练时,基于当前轮次全局模型的质量计算每个节点对模型训练的准确度贡献,并结合预定义的声誉机制更新节点的声誉值,将声誉值小于阈值的节点从共享小组删除。
3.根据权利要求1或2所述的基于区块链的去中心化联邦学习数据共享方法,其特征在于,对于每个数据拥有者,本地数据集中数据包括文本数据和图片数据,每个数据拥有者对本地数据集进行数据摘要计算,包括如下步骤:按照预定的尺寸对图片数据剪裁,按照预定的格式对文本数据进行格式转换,得到预处理后本地数据集;
基于预处后本数据集构建数据摘要,数据摘要包括本地数据集中数据的数据类型、数据格式以及数据量。
4.根据权利要求1所述的基于区块链的去中心化联邦学习数据共享方法,其特征在于,每轮模型训练时,基于当前轮次全局模型的质量计算每个节点对模型训练的准确度贡献,并结合预定义的声誉机制更新节点的声誉值,包括如下步骤:基于全局模型的质量计算全局模型的损失值,对于第 次全局聚合后的全局模型的损失值,损失值 的计算公式如下:,
其中, 表示全局模型 对应的全局模型质量,是共享小组中所有节点的总数, 是节点 的数据量大小, 是节点 第 次全局聚合前本地模型对应的本地模型质量;
对于第次节点 和委员会主节点 交互时全局模型的损失值 计算如下:,
其中, 是第t次全局聚合时、委员会主节点 仅接收节点 的本地模型梯度更新后的全局模型 对应的全局模型质量,是节点 的数据量大小, 是节点第 次全局聚合前所训练本地模型的本地模型质量, 是第t次全局聚合前节点所训练本地模型的本地模型质量;
第次节点 和委员会主节点 交互时,节点 的对全局模型准确度贡献 的计算公式如下:,
基于声誉机制中如下公式判定节点 对全局模型准确度贡献是积极共享还是消极共享:,
当 节点的准确度贡献 时,认定 ,表示高评价结果,而当 节点的准确度贡献 时,认定 表示低评价结果,并基于声誉机制中如下声誉更新规则对节点的声誉值进行更新:
,
其中,表示声誉值,是整数,且 , 表示最高信誉, 表示所有节点的平均声誉值。