本发明涉及区块链,特别涉及一种基于区块链的分布式集成学习方法。
背景技术:
1、区块链是一种分布式数据存储技术,通过共识协议与激励机制在不可靠的点对点网络中确保所有节点上数据副本的一致性。共识协议是区块链的基石,其设计在根本上决定了区块链系统的性能特征,包括吞吐量、一致性、可扩展性和稳健性。目前,工作量证明(pow)协议是最流行的共识协议之一。在基于pow的系统中,矿工通过寻找一个使区块的哈希值低于目标值的随机数来产生新区块。但是挖矿过程消耗大量能源,并且这些能源大部分浪费在无意义的哈希计算中。
2、目前,pow协议的可持续性问题的解决方案分为两种:一种是减少共识过程的计算量。另一种是有用工作量证明(pouw)协议。后者将有实际用途的计算任务用作计算量证明,从而满足第三方的算力需求。现有的pouw协议主要采用机器学习与优化任务作为有用工作量证明。前沿研究也将联邦学习与区块链共识结合,将pow系统中的矿池改造成竞争机器学习训练奖励的矿工集群,通过fedavg算法将各矿池的模型聚合为一个全局模型。
3、在上述采用机器学习与联邦学习的pouw协议中,大多数基于机器学习的pouw方案选择单一模型作为获胜模型并丢弃其余的模型,这不可避免地导致算力利用率低下。至于现有的基于联邦学习的共识机制,尽管模型由数据持有者以分布式方式进行训练,但由于模型通常由一个或若干个中心节点聚合,导致这些协议的稳健性受制于中心节点。因此需要一种技术,在去中心化的区块链网络中聚合各节点的算力。
技术实现思路
1、发明目的:针对现有pouw协议中算力利用率低下、去中心化程度不足的问题,本发明目的在于设计一种由迷你块、集成块和关键块构成的三层区块链结构,以及基于区块链的分布式集成学习方法,提高区块链网络的算力利用率,同时避免在模型聚合过程中引入中心节点,最大化区块链的去中心化程度。
2、技术方案:为实现上述发明目的,本发明采用如下技术方案:
3、本发明第一方面提供一种使能分布式集成学习任务执行的三层区块链结构,包括:
4、迷你块(miniblock),每个迷你块对应一个唯一的基模型,包含机器学习模型参数的标识符、模型所有者的标识符、上一个关键块的哈希、机器学习任务哈希、时间戳。
5、集成块(ensemble block),包含集成模型在验证数据集上的性能指标、模型集成者的标识符、所集成基模型对应迷你块的哈希、机器学习任务哈希、时间戳。
6、关键块(key block),包含上一个关键块的哈希、机器学习任务哈希、出块矿工标识符、最优集成模型在测试数据集上的性能指标、关键块产生的时间戳、承载交易数据的哈希树的根哈希、随机数、任务队列、各参与排名的集成块的哈希以及其性能指标。
7、本发明第二方面提供一种使能分布式集成学习任务执行的三层区块链结构生成方法,包括以下步骤:
8、矿工在训练数据集上完成基模型训练后,产生并广播迷你块;每个迷你块对应一个唯一的基模型,包含机器学习模型参数的标识符、模型所有者的标识符、上一个关键块的哈希、机器学习任务哈希和时间戳;
9、矿工聚合基模型并在验证数据集上进行性能评估后,产生并广播集成块;每个集成块包含集成模型在验证数据集上的性能指标、模型集成者的标识符、所集成基模型对应迷你块的哈希、机器学习任务哈希和时间戳;
10、矿工评估收集到的集成模型在测试数据集上的性能指标后,选出最优集成模型,产生并广播关键块;所述关键块包含上一个关键块的哈希、机器学习任务哈希、出块矿工标识符、最优集成模型在测试数据集上的性能指标、关键块产生的时间戳、承载交易数据的哈希树的根哈希、随机数、任务队列、各参与排名的集成块的哈希以及其性能指标。
11、本发明第三方面提供一种基于区块链的分布式集成学习方法,包括以下步骤:
12、步骤①:任务发布者提前准备训练、验证、测试数据集,并通过区块链交易发布机器学习任务,任务中包含这三个数据集的哈希值以及实现基模型训练、模型集成、性能评估的脚本。
13、步骤②:矿工验证任务信息,并将其转发给其他矿工。
14、步骤③:当矿工产生上一个关键块或者从其他矿工处收到有效的上一个关键块后,从任务发布者处下载训练数据集。下载完成后,矿工开始训练基模型,产生迷你块并将其广播。
15、步骤④:任务发布者公开验证数据集,矿工收到该消息后开始聚合基模型并在验证数据集上评估其性能,产生集成块并将其广播。
16、步骤⑤:任务发布者公开测试数据集,矿工收到该消息后开始评估收集到的集成模型在测试数据集上的性能指标,选出最优集成模型,计算关键块哈希,产生关键块并将其广播。
17、步骤⑥:任务发布者从关键块中获取最佳集成模型的性能指标及相应的基模型参数,通过聚合基模型,获得一个具有理想性能的集成模型。
18、优选地,在本发明的一个实施例中,用户通过区块链交易发布的机器学习任务中,包含一笔用作训练费用的交易,该交易将训练费用转入一个虚拟地址。
19、优选地,在本发明的一个实施例中,产生关键块与迷你块的矿工会获得奖励,任务发布者的训练费用平均分配给所有生成被获胜集成模型使用的基模型的矿工,同时通过新生成的通证奖励生成关键块的矿工。
20、可选地,在本发明的一个实施例中,矿工可以将本地的私有数据与任务发布者提供的公有训练数据一并用于基模型训练,从而提高基模型质量并改善集成模型的质量。
21、优选地,在本发明的一个实施例中,通过bagging算法聚合基模型得到集成模型。
22、本发明第四方面提供一种计算机系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序/指令,所述计算机程序/指令被处理器执行时实现前述方法的步骤。
23、本发明第五方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述方法的步骤。
24、本发明第六方面提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现前述方法的步骤。
25、本发明提供的基于区块链的分布式集成学习方法具有以下有益效果:
26、(1)本发明通过设计三层区块链结构,将分布式集成学习流程嵌入到三种区块的产生、验证与传播过程中,从而在区块链中实现分布式集成学习任务的执行。
27、(2)本发明相比于现有的基于机器学习的pouw协议,实现了集成学习过程在区块链网络中自动化、分布式执行,通过聚合由多个矿工训练的基模型形成具有更好性能的集成模型;通过允许矿工使用私有数据进一步提高基模型与集成模型的质量。
28、(3)本发明相比于联邦学习证明机制,不需要由矿池管理员聚合基模型,可以在公链上运作,去中心化程度更高。
29、(4)本发明通过设计激励机制鼓励矿工参与维护区块链、训练模型、集成模型和评估模型,从而使基于本发明的区块链稳健、可持续地运行。
30、(5)本发明所产生的集成模型性能随着区块链中使用私有数据训练基模型的矿工数量的增加而提高。
31、本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
1.一种使能分布式集成学习任务执行的三层区块链结构,其特征在于,包括:
2.一种使能分布式集成学习任务执行的三层区块链结构生成方法,其特征在于,包括以下步骤:
3.一种基于区块链的分布式集成学习方法,其特征在于,包括以下步骤:
4.根据权利要求3所述的基于区块链的分布式集成学习方法,其特征在于,用户通过区块链交易发布的机器学习任务中,包含一笔用作训练费用的交易,该交易将训练费用转入一个虚拟地址。
5.根据权利要求3所述的基于区块链的分布式集成学习方法,其特征在于,产生关键块与迷你块的矿工会获得奖励,任务发布者的训练费用平均分配给所有生成被获胜集成模型使用的基模型的矿工,同时通过新生成的通证奖励生成关键块的矿工。
6.根据权利要求3所述的基于区块链的分布式集成学习方法,其特征在于,矿工将本地的私有数据与任务发布者提供的公有训练数据一并用于基模型训练。
7.根据权利要求3所述的基于区块链的分布式集成学习方法,其特征在于,通过bagging算法聚合基模型得到集成模型。
8.一种计算机系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现根据权利要求2-7任一项所述方法的步骤。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现根据权利要求2-7任一项所述方法的步骤。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现根据权利要求2-7任一项所述方法的步骤。
