1.一种基于联盟链的可信联邦学习方法,其特征在于,包括以下几个步骤:步骤S1、模型请求者进行联邦学习任务初始化;
步骤S2、参与训练的客户端利用本地数据在本地训练模型并压缩梯度;
步骤S3、客户端将稀疏化的模型梯度上传给区块链节点;
步骤S4、区块链节点验证客户端的事务,并转发给其他区块链节点;
步骤S5、区块链共识阶段选出领导人节点和共识委员会;
步骤S6、区块发布阶段,领导人节点计算本轮的训练结果后打包和发布区块;
步骤S7、客户端从区块链中下载全局模型。
2.对于权利要求1所述的基于联盟链的可信联邦学习方法,其特征在于,步骤S1是任务请求者发布联邦学习任务,初始化联邦学习模型以及客户端训练的参数。
3.对于权利要求1所述的基于联盟链的可信联邦学习方法,其特征在于,步骤S2是客户端从与其绑定的共识节点下载最新的全局模型,然后用全局模型替代本地模型参数,使用本地隐私数据集进行训练,并且进行梯度压缩,具体步骤如下:(1)客户端采用小批量梯度下降(Mini‑Batch Gradient Descent,MBGD)进行训练,计算公式为(2)梯度压缩能够有效防止梯度泄露,并且可以降低通信压力,提高系统整体通信效率,本发明采用梯度稀疏化来实现梯度压缩,梯度压缩的过程如下:客户端节点i完成第k轮训 练 后 ,得 到 本 轮 梯 度 将 与 残 差 梯 度 相 加 ,即然后将累积残差的每层梯度按照绝对值大小进行排序,以压
缩率C选出每层梯度 的压缩阈值 对于第l层网络,将绝对值小于 的梯度值累积到本地残差梯度中,然后置为0。
4.对于权利要求1所述的基于联盟链的可信联邦学习方法,其特征在于,步骤S3为客户端训练完成后,客户端节点以交易的形式上传元数据、压缩后的本地模型梯度至共识节点,其中, 是客户端i该轮联邦学习提交的本地模型梯度。
5.对于权利要求1所述的基于联盟链的可信联邦学习方法,其特征在于,步骤S4为共识节点接收到客户端节点的交易后,使用客户端的公钥验证其数字签名,确认身份后转发该交易至其他区块链节点,并进行参数质量评分。
6.对于权利要求1所述的基于联盟链的可信联邦学习方法,其特征在于,步骤S5为根据基于双因子贡献的共识机制选出共识委员会节点,模型贡献最高的若干个共识节点组成共识委员会,其中行为贡献最高的节点成为本轮的领导人节点,为了降低系统的中心化程度,在选举领导人节点时加入了节点冷却机制,即已经当选为领导人的节点,在之后的几轮中不能再当选为领导人节点。
7.对于权利要求1所述的基于联盟链的可信联邦学习方法,其特征在于,步骤S6领导人节点生成新区块,领导人节点将本轮的全部合法交易打包成新区块,区块头中保存前一个区块的哈希值、当前区块的哈希值、时间戳、领导人的公钥、领导人的数字签名和本轮的全局梯度。
8.对于权利要求1所述的基于联盟链的可信联邦学习方法,其特征在于,步骤S7为客户端下载区块,继续训练,接收到新区块的区块链节点将其转发给与其绑定的所有客户端节点,客户端下载后根据其中的全局梯度更新本地模型,并开始下一轮训练。