1.一种基于区块链的联邦学习方法,其特征在于,所述方法包括:通过分布式账本平台,建立联邦学习区块链网络;所述联邦学习区块链网络中每个边缘终端对应区块链节点,所述边缘终端中存储本地模型和本地数据库,所述边缘终端根据所述本地数据库训练所述本地模型时,得到当前迭代次数对应的本地模型参数和对应的本地梯度,并且通过智能合约上传至区块链节点的状态数据库;通过智能合约向边缘终端发送上传本地梯度的提案,以使边缘终端根据所述状态数据库中的本地梯度,生成关于所述本地梯度的交易,并写入新的区块;接收边缘终端发送的聚合智能合约调用请求,使得边缘终端根据所述聚合智能合约调用请求获取新的区块中的本地梯度,并进行梯度聚合,得到聚合梯度;采用随机梯度算法进行本地模型更新和全局模型更新;边缘终端根据所述聚合智能合约调用请求获取新的区块中的本地梯度,包括:根据本轮迭代的所述聚合梯度,确定边缘终端的梯度熵值,以及根据所述梯度熵值确定各个边缘终端的本地梯度的选择概率,根据所述选择概率获取新的区块中的本地梯度。
2.根据权利要求1所述的方法,其特征在于,所述根据本轮迭代的所述聚合梯度,确定边缘终端的梯度熵值,包括:根据本轮迭代的所述聚合梯度,确定边缘终端的梯度熵值为:其中,E i,t (g(W i,t ))表示梯度熵值,p(w i )是根据所述本地梯度与所述聚合梯度的比值得到的,g(W i,t )表示本地梯度,w i 本地模型参数。
3.根据权利要求2所述的方法,其特征在于,根据所述梯度熵值确定各个边缘终端的本地梯度的选择概率,包括:根据所述梯度熵值确定贡献评估值,根据所述贡献评估值确定各个边缘终端的本地梯度的选择概率;所述贡献评估值为:其中,St表示进行梯度聚合的边缘终端的数量,C i,t 表示贡献评估值。
4.根据权利要求1所述的方法,其特征在于,所述采用随机梯度算法进行本地模型更新和全局模型更新包括:确定联邦学习区块链网络可用的边缘终端和不可用的边缘终端;可用的边缘终端采用随机梯度算法进行全局模型更新;不可用的边缘终端在恢复通讯后通过智能合约在区块链上查找并接收最新的全局模型,并且根据最新的全局模型更新本地模型。
5.根据权利要求4所述的方法,其特征在于,可用的边缘终端采用随机梯度算法进行全局模型更新;不可用的边缘终端在恢复通讯后通过智能合约在区块链上查找并接收最新的全局模型,并且根据最新的全局模型更新本地模型包括:可用的边缘终端采用随机梯度算法进行全局模型更新为:其中,W t 表示第t次迭代训练中的全局模型参数,W t+1 表示第t+1次迭代训练中的全局模型参数,e i 表示第i个边缘终端,η表示学习率, 在第t次迭代训练中的聚合梯度;不可用的边缘终端在恢复通讯后通过智能合约在区块链上查找并接收最新的全局模型,并且根据最新的全局模型更新本地模型为:其中,W i,old 表示第i个边缘终端的本地最近一个的模型参数,W new 表示边缘终端在恢复通讯后接收最新的聚合结果,α i (t)表示权重系数。
6.一种基于区块链的联邦学习装置,其特征在于,所述装置包括:网络模块,用于通过分布式账本平台,建立联邦学习区块链网络;所述联邦学习区块链网络中每个边缘终端对应区块链节点,所述边缘终端中存储本地模型和本地数据库,所述边缘终端根据所述本地数据库训练所述本地模型时,得到当前迭代次数对应的本地模型参数和对应的本地梯度,并且通过智能合约上传至区块链节点的状态数据库;梯度生成模块,用于通过智能合约向边缘终端发送上传本地梯度的提案,以使边缘终端根据所述状态数据库中的本地梯度,生成关于所述本地梯度的交易,并写入新的区块;梯度聚合模块,用于接收边缘终端发送的聚合智能合约调用请求,使得边缘终端根据所述聚合智能合约调用请求获取新的区块中的本地梯度,并进行梯度聚合,得到聚合梯度;全局更新模块,用于采用随机梯度算法进行本地模型更新和全局模型更新;所述网络模块还用于根据本轮迭代的所述聚合梯度,确定边缘终端的梯度熵值,以及根据所述梯度熵值确定各个边缘终端的本地梯度的选择概率,根据所述选择概率获取新的区块中的本地梯度。
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。