一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于区块链和联邦学习的地震数据模型共享方法

2023-02-06 15:43:09 来源:中国专利 TAG:


1.本发明涉及地震勘探技术与人工智能技术的交叉领域,具体涉及人工智能研究领域中的联邦学习与区块链技术,尤其涉及一种基于区块链和联邦学习的地震数据模型共享方法。


背景技术:

2.现如今,传统地震勘探行业数据壁垒严重,由于行业竞争、用户隐私、数据安全和复杂的管理规程等,使得各方很难积极主动的彼此共享数据用来训练模型。另一方面,处于数据安全考虑也对地震勘探行业数据的收集和处理提出了严格的约束和控制要求。在这样的法律环境下,随着时间的推移,在不同组织间收集和分享数据将会变得越来越困难。更加重要的是,某些高度敏感的数据的拥有者也会极力反对无限制地计算和使用这些数据。在这种情况下,数据拥有者只允许这些数据保存在自己手中,进而会形成各自孤立的数据孤岛,而训练人工智能应用模型所需要的数据量都是非常庞大的。人们发现满足这样规模的数据量是难以甚至无法达到的,因此,高质量、大数量的训练数据通常是很难获得。
3.为了解决上述问题,联邦学习技术应运而生,联邦学习的核心思想即“数据不动,模型动”,各方可以在本地训练自己已有的数据集,不必将所有数据集中到一个中心存储点就能够训练机器学习模型。每一个拥有数据源的组织训练一个模型,之后让各个组织在各自的模型上彼此交流沟通,最终通过模型聚合得到一个全局模型。为了确保用户隐私和数据安全,各组织间交换模型信息的过程将会被重重加密,使得没有组织能够猜测到其他任何组织的隐私数据内容。
4.然而该项技术并非完美无缺,它同样存在以下问题:
5.(1)参与方彼此之间通信不稳定,传统采用中心化结构容易发生单点故障,导致模型训练不能正常进行,整体系统不稳定。而分布式结构容易被恶意节点攻击,导致数据泄露。
6.(2)不同参与方拥有的数量不同的训练样本,恶意节点可能故意只训练少量样本信息,容易导致模型训练产生偏差,损害整个联邦学习系统或者模型性能,甚至使得联邦训练模型失败,另一方面各参与方的数据分布可能不是独立同分布的。
7.(3)联邦学习参与方之间缺少一种激励机制,从而鼓励参与方使用更多的本地数据参与模型训练。
8.而区块链技术的产生为联邦学习进一步发展提供了很大的契机,区块链本质可以看作一个分布式账本,人人都拥有争夺记账的权利,记账人可以记账完毕后给其他人过目,其他人同意后更新自己的本地账本.该账本只允许添加,不允许删除。区块链同样也可以看作一种数据结构,是一个线性的链表,由交易、区块、链构成,交易可以看作此账本状态的改变,区块记录一段时间发生的所有交易和状态结果,链则是由区块的发生顺序串联而成,是整个账本状态变化的日志。如果把区块链作为一个状态机,则每次交易就是试图改变一次状态,而每次共识生成的区块,就是参与者对于区块中交易导致状态改变的结果进行确认。
区块链内部节点采用分布式网络通信,各节点身份相同,都有争夺记账的权利,不需要额外第三方机构参与,具有天然的去中心化功能。节点之间可以通过相应的共识协议来达成共识确定最终交易出块节点,并且利用密码学机制来保证区块内容的不可篡改、可追溯性和隐私保护性。同时区块链网络具有鲁棒性,可以忍受部分异常节点的存在,抵御恶意节点的攻击。
9.区块链虽然集众多优点于一身,但仍存在以下缺点:
10.(1)区块链本身不能直接存储大量数据,区块链网络中的大量信息需要写入数据库中进行存储。
11.(2)如何根据具体的业务场景设计分布式共识协议,避免产生分叉。
12.(3)区块链系统的交易的吞吐量较低。
13.(4)传统的链式结构适用的业务场景单一,索引效率低。


技术实现要素:

14.本发明的目的在于克服上述技术的缺点,并且利用上述技术各自的优点,取长补短,通过将区块链与联邦学习两种技术融合在一起,本发明提供了一种基于区块链和联邦学习的地震数据模型共享方法,以解决在多目标监控的情况下,利用联邦学习技术来实现地震模型的共享和本地隐私数据保护,利用区块链技术实现模型可追溯、用户激励和去中心化机制,将二者优势结合在一起取长补短,搭建一个不需要中心化节点的地震模型共享平台。
15.为实现上述目的,本发明提供了如下的技术方案:
16.第一方面,在本发明提供的一个实施方案中,提供了一种基于区块链和联邦学习的地震数据模型共享方法,包括以下步骤:
17.基于数据溯源区块链已有的共享地震模型,共享地震模型需求方节点向区块链发送需共享的地震模型请求;
18.本地地震模型节点根据所述地震模型请求检索区块链的历史记录,若所述地震模型请求要求的训练的地震数据共享模型在已有的区块链历史记录中被训练过,则将该节点缓存的模型作为结果返回给地震模型需求方节点;
19.基于新建的地震模型共享任务进行模型数据共享,若地震模型需求方节点所要求的多方数据共享模型任务未被训练过,则产生新的地震模型训练共享请求,并将与所述地震模型训练共享请求相关的本地地震模型节点选择出来进行联邦学习;
20.将联邦学习得到的模型返回给地震模型需求方节点,并将训练的模型结果上传到区块链。
21.作为本发明的进一步方案,所述基于区块链和联邦学习的地震数据模型共享方法,还包括区块链中链的结构,所述链的结构为将原始区块分为主块和微块,每一轮竞争出块产生一个主块和多个微块;其中,所述主块用于索引和记录模型共享训练任务或者模型溯源,微块用于记录与主块模型相关的共享模型权重参数。
22.作为本发明的进一步方案,每个微块包含两类交易,一类为验证签名通过的用于模型更新权重参数交易,另一类为签名不通过的模型权重参数交易,产生的第一个微块与主块相连。
23.作为本发明的进一步方案,所述主块包含模型共享训练交易和模型溯源交易中的一种,主块打包交易时根据实际的模型共享任务查询已有区块链,若已有区块链中存在相同的训练模型,则产生模型溯源主块,否则产生模型训练主块。
24.作为本发明的进一步方案,若地震模型需求方节点所要求的多方数据共享模型任务未被训练过,则产生新的地震模型训练共享请求,则生成地震模型溯源交易来记录检索到的有关该地震模型的主块和微块位置信息并记录到新生成的主块中;
25.将区块链中对应该任务的最终训练完毕的微块信息打包生成新的微块连接在新生成的主块,最终微块中的地震模型权重信息返回给地震模型需求方节点。
26.作为本发明的进一步方案,所述基于区块链和联邦学习的地震数据模型共享方法中,未检索到与新的地震模型共享需求相同的模型时进行地震模型共享训练任务,地震模型共享训练包括以下步骤:
27.使用docker、k8s技术部署地震模型训练分布式集群,针对不同地震数据的存储和本地地震模型权重的训练;
28.其中,本地地震模型节点用于完成基本的数据存储、数据清洗、数据预处理在内的数据操作,本地地震模型节点还用于开发针对不同数据集类型的算法接口,完成相应算法在对应数据集的测试,调节相应的超参数,为进行联邦学习时提供地震模型性能。
29.作为本发明的进一步方案,所述基于区块链和联邦学习的地震数据模型共享方法中,所有节点通过使用pki密钥管理体系结构进行分布式节点身份注册,分发公私密钥信息,进入联邦区块链学习网络;其中,pki密钥管理体系由数字证书、身份信息公私钥、证书颁发机构、证书撤销列表四部分组成,用于不同成员节点之间身份的验证。
30.作为本发明的进一步方案,所述基于区块链和联邦学习的地震数据模型共享方法还包括:本地地震模型权重训练节点,利用本地地震数据集,进行本地模型训练;本地地震模型权重训练节点用于在本地利用已有的本地地震数据集进行地震模型训练,向区块链系统中与其通讯的验证地震模型权重节点传递所训练好的权重信息。
31.作为本发明的进一步方案,所述基于区块链和联邦学习的地震数据模型共享方法还包括:验证地震模型权重节点进行模型参数验证,其中,验证地震模型权重节点用于对进行通讯的本地地震模型训练节点所广播过来的地震模型参数进行有效性验证,并将验证结果打包成新的交易并签名后,广播给相通讯的打包交易出块节点,由打包交易出块节点完成最终的审核。
32.作为本发明的进一步方案,所述基于区块链和联邦学习的地震数据模型共享方法还包括:打包交易出块节点完成最终地震模型权重共享交易汇总,并广播自己打包的区块;其中,打包交易出块节点用于接受相通讯的验证地震模型权重节点广播过来的地震模型权重参数交易,将自接受到的交易广播给其他打包交易出块节点,并接受其它打包交易出块节点广播的交易,将最终交易队列进行签名验证,将所有交易打包到一个区块中。
33.作为本发明的进一步方案,所述基于区块链和联邦学习的地震数据模型共享方法还包括:区块验证,全局参数更新,记录模型训练信息;其中,各本地地震模型权重训练节点、验证地震模型权重节点、打包交易出块节点在确定接受最终块后,进行块的验证,验证无误后将其加到各自本地区块链中,完成上链,并使用相应的联邦学习权重聚合算法更新相应的本地全局参数模型。
34.第二方面,本发明还提供了一种地震数据模型共享和溯源方法,采用上述基于区块链和联邦学习的地震数据模型共享方法进行地震数据模型共享和溯源。
35.第三方面,本发明还提供了一种基于权益证明共识协议的模型训练激励机制和筛选系统恶意节点的方法,采用上述基于区块链和联邦学习的地震数据模型共享方法执行模型训练激励机制以及进行系统恶意节点的筛选。
36.第四方面,本发明还提供了一种主块与侧块相结合的全新的区块链结构,基于上述基于区块链和联邦学习的地震数据模型共享方法得到区块链结构。
37.第五方面,本发明还提供了一种基于上述基于区块链和联邦学习的地震数据模型共享方法的线上人工智能学习算法模型的去中心化激励平台。
38.第六方面,在本发明提供的又一个实施方案中,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器加载并执行所述计算机程序时实现基于区块链和联邦学习的地震数据模型共享方法的步骤。
39.第七方面,在本发明提供的再一个实施方案中,提供了一种存储介质,存储有计算机程序,所述计算机程序被处理器加载并执行时实现所述基于区块链和联邦学习的地震数据模型共享方法的步骤。
40.本发明提供的技术方案,具有如下有益效果:
41.本发明提供的一种基于区块链和联邦学习的地震数据模型共享方法,利用联邦学习技术来实现地震模型的共享和本地隐私数据保护,利用区块链技术实现模型可追溯、用户激励和去中心化机制,将二者优势结合在一起取长补短,搭建一个不需要中心化节点的地震模型共享平台。
42.通过将区块链与联邦学习两种技术融合在一起,首先利用区块链技术提供一种有关地震模型共享的基于权益证明的共识协议,将出块奖励与参与方模型的正确率挂钩,同时对训练模型优秀的参与方给予更多奖励,奖励由参与方训练样本多少决定,这样一方面解决参与方的参与度问题,也在整体使得促进各方更好的训练模型,提高整体的模型性能,解决联邦学习参与方缺少激励机制的问题,同时也避免区块链分叉。另一方面区块链具有不可变性和可跟踪性,是联邦学习中防止恶意攻击的有效工具。
43.每个参与方对其本地模型所做的即时更新,都可以链接到区块链提供的分布式账本上,以便对这些模型更新进行审计。每一个模型更新,无论是本地权重还是梯度,都可以追溯到单个参与方并与之关联,这有助于检测篡改尝试和恶意模型替换。筛选出恶意节点后可加入到系统所有节点中的黑名单中,提升整体系统的鲁棒性。另外模型的权重更新是通过加密的方式上传到区块,只有系统注册的节点才有权进行查看,并通过区块链不可篡改性保证模型权重的完整性。
44.最后采用一种新的区块链式结构,分为主块、微块,主块主要负责存储模型共享交易请求和模型溯源请求,而微块与主块相连存储与该主块相关的模型训练信息或者模型溯源信息,方便在下次有新的模型共享需求时可以快速检索区块链信息,获取最新的模型训练信息。最终基于上述创新搭建一个基于联邦学习和区块链的数据模型共享平台,可以在该平台快速发布最新的模型共享任务和模型溯源请求。
45.本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
46.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。在附图中:
47.图1为本发明的基于区块链与联邦学习的数据模型共享整体系统流程图。
48.图2为本发明的区块链及主块与微块的链状结构示意图。
49.图3为本发明的基于区块链与联邦学习的多方数据共享逻辑架构图。
50.图4为本发明的多方节点本地模型训练过程具体流程图。
51.图5为本发明的基于联邦学习与区块链的地震模型效果示意图中进行联邦学习参数聚合之前的模型前后重构的对比图。
52.图6为本发明的基于联邦学习与区块链的地震模型效果示意图中进行联邦学习模型参数聚合后的图片重构对比图。
53.图7为本发明的基于联邦学习与区块链的地震图像聚类分析图中进行联邦学习参数聚合之前的地震数据聚类图像。
54.图8为本发明的基于联邦学习与区块链的地震图像聚类分析图中执行参数聚合后的本地地震数据聚类图像。
55.图9为本发明的深度学习共享模型去中心化激励平台的参数设置界面。
56.图10为本发明的深度学习共享模型去中心化激励平台最终训练结果界面。
具体实施方式
57.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
58.在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
59.下面将结合本发明示例性实施例中的附图,对本发明示例性实施例中的技术方案进行清楚、完整地描述,显然,所描述的示例性实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
60.为解决传统地震勘探行业数据壁垒严重问题,本发明利用并且利用区块链和和联邦学习技术各自的优点,取长补短,通过将区块链与联邦学习两种技术融合在一起,本发明提出了一种基于区块链和联邦学习相结合的地震数据模型共享的方法,还提出了一种新的地震数据模型共享和溯源方法,并再此基础上,提出基于权益证明共识协议的模型训练激励机制和筛选系统恶意节点的方法和采用一种新的主块与侧块相结合的全新的区块链结构,并且开发了线上人工智能学习算法模型的去中心化激励平台。
61.本发明公开了一种基于区块链和联邦学习相结合的地震数据模型共享的方法,首先利用区块链与联邦学习结合提出一种新的地震模型共享和溯源方案,打破了传统地震勘探行业长期面临的数据壁垒等问题,真正达到数据不出本地,共同训练全局地震模型提升整体模型性能的效果,为传统地震行业增砖添瓦,使得本地在不需要共享各自本地数据,不泄露隐私的前提下,提升自己本地地震模型的性能。其次,还提出一种基于pos共识协议的模型训练激励机制和筛选系统恶意节点的方法,诚实节点的所获取的奖励数量由其本地地震训练数据集大小所决定。这既激励参与方更好的训练模型也使得整体的联邦学习的模型性能得到增强,并且基于区块链的联邦数据模型共享可以有效防范系统中的恶意节点或者中心化数据中心单点故障导致的系统不稳定,提升了系统的健壮性。另外,采用一种新的主块与侧块相结合的全新的区块链结构,加快了数据模型共享溯源的效率,并且开发了线上基于深度学习共享模型的去中心化激励平台,可以在线上部署新的地震模型共享任务并且进行地震模型共享溯源,并且同时也可以完成各本地地震模型节点算法的同步。
62.具体地,下面结合附图,对本技术实施例作进一步阐述。
63.参见图1所示,本发明的一个实施例提供一种基于区块链和联邦学习的地震数据模型共享方法,该基于区块链和联邦学习的地震数据模型共享方法具体包括如下步骤:
64.基于数据溯源区块链已有的共享地震模型,共享地震模型需求方节点向区块链发送需共享的地震模型请求;
65.本地地震模型节点根据所述地震模型请求检索区块链的历史记录,若所述地震模型请求要求的训练的地震数据共享模型在已有的区块链历史记录中被训练过,则将该节点缓存的模型作为结果返回给地震模型需求方节点;
66.基于新建的地震模型共享任务进行模型数据共享,若地震模型需求方节点所要求的多方数据共享模型任务未被训练过,则产生新的地震模型训练共享请求,并将与所述地震模型训练共享请求相关的本地地震模型节点选择出来进行联邦学习;
67.将联邦学习得到的模型返回给地震模型需求方节点,并将训练的模型结果上传到区块链。
68.参见图1所示,图1为基于区块链与联邦学习的数据模型共享整体系统流程图,该图先从整体描述了整个系统的运作流程,该系统主要分为两大主线,一条主线为数据溯源区块链中已有的共享地震模型,地震模型需求方节点向区块链发送想要共享的地震模型请求,本地地震模型节点会负责检索区块链的历史记录,若该请求者要求的训练的地震数据共享模型在已有的区块链历史记录中被训练过,则只需要将该节点缓存的模型作为结果返回给地震模型需求方节点。另一条主线为对新的地震模型共享任务进行模型数据共享。若地震模型需求方节点所要求的多方数据共享模型任务没有被训练过,则产生新的地震模型训练共享请求,并将与该请求相关的本地地震模型节点选择出来进行联邦学习,将最后联邦学习得到的模型返回给地震模型需求方节点,并将最后训练的模型结果上传到区块链。
69.该基于区块链和联邦学习相结合的地震数据模型共享的方法,具体包括以下步骤:
70.1)区块链中链的结构
71.所述链的结构为将原始区块分为主块和微块,每一轮竞争出块产生一个主块和多个微块;其中,所述主块用于索引和记录模型共享训练任务或者模型溯源,微块用于记录与
主块模型相关的共享模型权重参数。
72.其中,每个微块包含两类交易,一类为验证签名通过的用于模型更新权重参数交易,另一类为签名不通过的模型权重参数交易,产生的第一个微块与主块相连;所述主块包含模型共享训练交易和模型溯源交易中的一种,主块打包交易时根据实际的模型共享任务查询已有区块链,若已有区块链中存在相同的训练模型,则产生模型溯源主块,否则产生模型训练主块。
73.2)模型溯源
74.首先当系统中地震模型需求方节点检索发现新的地震模型共享请求所涉及到的地震模型存在已有的区块链中时,此时系统将生成地震模型溯源交易来记录检索到的有关该地震模型的主块和微块位置信息并记录到新生成的主块中。
75.然后将区块链中对应该任务的最终训练完毕的微块信息打包,生成新的微块连接在新生成的主块之后,将最终微块中的地震模型权重信息返回给地震模型需求方节点。
76.最终将此次地震模型溯源生成的新的主块和微块广播到系统中其他本地地震模型节点,验证信息无误后,添加到已有的区块链中,并且标记版本号,方便后续再有新的同样地震模型共享任务可以根据最新的版本号来进行检索。
77.3)本地地震模型节点
78.当区块链系统中没有检索到与新的地震模型共享需求相同的模型时,此时将会进行新的共享地震模型的训练任务,地震模型共享训练的具体步骤如下:
79.首先使用docker、k8s等技术部署地震模型训练分布式集群,实现针对不同地震数据的存储和本地地震模型权重的训练。本地地震模型节点可以完成基本的数据存储、数据清洗、数据预处理等相关数据操作,并且本地地震模型节点也可以开发各种针对不同数据集类型的算法接口,完成相应算法在对应数据集的测试,调节相应的超参数,为进行联邦学习时提供更好的地震模型性能。
80.4)节点身份注册
81.系统中所有节点将通过使用pki密钥管理体系结构实现分布式节点身份注册,分发公私密钥信息,进入联邦区块链学习网络,pki密钥管理体系主要由数字证书、身份信息公私钥、证书颁发机构、证书撤销列表四部分组成,主要为了实现不同成员节点之间身份的验证。
82.在身份注册并且验证完毕后,地震模型需求方节点首先会根据其模型共享内容生成相应的地震模型共享交易,并打包生成新的主块,本地地震模型节点的地震模型训练过程中的产生的微块则连接在该主块之后。
83.对于每轮本地地震模型训练各节点设备竞争产生微块的具体过程,首先在每轮产生微块时,参与此次本地地震模型训练节点的设备都会被随机初始化三种身份,这三种身份分别履行不同的职责。
84.5)本地地震模型权重训练节点,利用本地地震数据集,进行本地模型训练。
85.该节点主要负责在本地利用已有的本地地震数据集进行地震模型训练,向区块链系统中与其通讯的验证地震模型权重节点传递所训练好的权重信息。
86.与其通讯的验证地震模型权重节点系统随机分配,每个本地地震模型权重训练节点只随机分配一个与其通讯的验证地震模型权重节点。同理,验证地震模型权重节点可以
验证多个本地地震模型权重训练节点。
87.6)验证地震模型权重节点进行模型参数验证。
88.该节点主要负责对与其通讯的本地地震模型训练节点所广播过来的地震模型参数进行有效性验证,并将最终的验证结果打包成新的交易并签名后,广播给与其通讯的打包交易出块节点,最终由打包交易出块节点完成最终的审核。
89.7)打包交易出块节点完成最终地震模型权重共享交易汇总,并广播自己打包的区块。
90.该节点主要负责接受与其通讯的验证地震模型权重节点广播过来的地震模型权重参数交易,将自己接受到的交易广播给其他打包交易出块节点,同时自己接受其它打包交易出块节点广播的交易,将最终交易队列进行签名验证,将所有交易打包到一个区块中。
91.最终自己打包的区块广播给其它打包交易出块节点并接受其它打包交易出块节点广播的区块,根据相对应的共识协议确定最终出块权,所有打包交易出块节点再将最终共识协议选出的认可区块广播给与其通信的验证地震模型权重节点与本地地震模型权重训练节点进行块的验证。
92.8)区块验证,全局参数更新,记录模型训练信息。
93.各本地地震模型权重训练节点、验证地震模型权重节点、打包交易出块节点在确定接受最终块后,进行块的验证,验证无误后将其加到各自本地区块链中,完成上链,并且使用相应的联邦学习权重聚合算法更新相应的本地全局参数模型。
94.最终自此一轮微块的全局参数更新结束,后面微块的操作执行相同的更新流程,直到满足模型的更新的阈值,此时该共享任务结束,将最新的微块模型权重信息返回给模型需求方节点,并将此过程中生成的微块于记录模型共享信息请求的主块添加到区块链网络中,方便后续模型的溯源。
95.参见图2所示,本发明所运行的具体的区块链结构即每个类型区块中所包含的基本信息和交易类型。对于主块而言,主要包含地震模型溯源交易和地震模型训练交易。其中,所述地震模型溯源交易主要包含内容为系统会根据地震模型需求方节点其独一无二的身份id生成一项检索交易,该交易内容包括身份 id和数据模型内容所在主块微块等信息来记录对地震数据模型的溯源。所述地震模型训练交易为当系统检索到地震模型需求方节点所发起的地震数据模型共享请求不能在已有的区块链系统中检索到,此时将生成地震模型训练交易,该交易主要记录地震模型需求方节点要共享的数据模型的基本任务内容,方便后面本地地震模型节点根据相应任务需求结合自己相应的本地数据集进行模型训练。
96.对于微块而言,主要包含有效地震模型参数验证交易和无效地震模型参数验证交易在内的有关具体模型内容的相关交易信息。所述有效地震模型参数验证交易主要包括验证地震模型权重节点中身份核验通过的有效的交易,该交易包含本地地震模型权重训练节点的训练信息和参数信息,并且这些交易经过验证地震模型权重节点验证后被投赞成和反对的验证地震模型权重节点信息和打包交易出块节点的签名信息。
97.所述无效地震模型参数验证交易中主要包括验证地震模型权重节点签名身份没有通过的交易,由于验证签名身份没有通过最终打包交易出块节点的检验,因此怀疑交易内容可能发生改变,因此该交易中的本地地震模型权重信息不能用来全局参数的更新。
98.在本发明的一些实施例中,还提供了一种地震数据模型共享和溯源方法,采用上
述基于区块链和联邦学习的地震数据模型共享方法进行地震数据模型共享和溯源;所述地震数据模型共享和溯源方法主要包含地震模型的溯源和地震模型共享两大过程,其中,地震模型溯源过程:
99.当系统中本地地震模型节点检索发现新的地震模型共享请求存在已有的区块链中时,此时系统将生成地震模型溯源交易来记录检索到的有关该地震模型的主块和微块位置信息记录到新生成的主块中;
100.将区块链中对应该任务的最终训练完毕的微块节点信息打包,生成新的微块连接在新生成的主块之后,将最终微块中的地震模型权重返回给地震模型需求方节点;
101.将此次溯源请求生成的新的主块和微块广播到系统中其他本地地震模型节点验证信息无误后,添加到已有的区块链中,并且标记版本号,方便后续再有新的同样地震模型共享任务可以根据最新的版本号来进行检索。
102.当区块链系统中没有检索到与新的地震模型共享需求相同的模型时,此时将会进行新的共享地震模型的训练任务,整体逻辑框架如图3,地震模型共享训练的具体步骤如下:
103.首先使用docker、k8s等技术部署实际地震模型训练场景中的分布式集群,各集群节点利用mysql、mongodb等数据库技术,tensorflow、pytorch等算法开源框架完成相应的数据管理、智能算法接口,实现针对不同地震数据的存储和本地地震模型权重的训练,并通过相应的ssh服务进行节点之间的通信连接来搭建区块链网络。在本地地震模型集群节点可以完成基本的数据存储、数据清洗、数据预处理等相关数据操作,并且本地也可以开发各种针对不同数据集类型的算法接口,诸如无监督学习用于提取潜在特征降维后聚类的cae,dae、 vae等,或者有监督学习算法常见的神经网络算法针对计算机视觉的任务的cnn 和针对自然语言处理的rnn,可以同时在本地完成相应算法在对应地震数据集的测试,调节相应的超参数,为进行联邦学习时提供更好的模型性能;
104.在各本地地震模型节点使用docker等容器化技术部署完成后,将通过使用 pki密钥管理体系结构实现分布式节点身份注册,分发公私密钥信息,进入联邦区块链学习网络,pki密钥管理体系主要由数字证书、身份信息公私钥、证书颁发机构、证书撤销列表四部分组成,主要为了实现不同地震模型节点之间身份的验证;
105.在身份注册并且验证完毕后,地震数据模型需求节点会通过所连接的本地地震模型节点首先会根据其地震模型共享内容生成相应的地震模型训练交易,并打包生成新的主块,模型训练过程中的产生的微块则连接在该主块之后。
106.如图4所示,图4是每轮地震模型训练时各本地地震模型节点设备竞争产生微块的具体过程:首先在每轮产生微块时,参与此次地震模型训练的节点设备都会被随机初始化三种身份,这三种身份分别履行不同的职责。
107.在本发明的实施例中,对于本地地震模型权重训练节点,主要负责利用本地已有的地震数据集进行地震模型训练,其具体的工作职责如下:
108.首先确定系统中与其通信的地震模型权重验证节点和打包地震模型权重交易出块节点,默认都只有一个,系统初始化的时候随机分配;
109.本地地震模型权重训练节点进行本地地震模型参数更新,载入当前最新的微块中的全局地震模型参数,初始化为空,利用本地地震训练集训练得到训练地震模型参数,打包
地震模型训练交易并且用自己的密钥对交易签名后传播给与其通讯的地震。
110.在本发明的实施例中,对于验证地震模型权重节点,主要负责验证与其通讯的本地地震模型权重训练节点中实际模型参数的有效性,其具体的工作职责如下:
111.验证地震模型权重节点首先要确定与其通讯的打包交易出块节点,方便后续将验证过的地震模型参数交易传送给指定打包交易出块节点;
112.验证地震模型权重节点将接受与其相连的来自不同本地模型权重训练节点的模型参数交易按照接受的时间从小到大排列,生成最终的未被验证的地震模型参数交易队列;
113.各个验证地震模型权重节点将接收到地震模型参数交易互相广播,每个验证地震模型权重节点本地将收到独一份的来自本地地震模型权重训练节点和其它验证地震模型权重节点传播过来的交易,然后将其按照接受的时间大小进行排序,各个验证地震模型权重节点将得到最终未被验证的本地地震模型节点所训练得参数交易队列;
114.验证地震模型权重节点将各自最终的交易队列获取后,验证签名和地震模型交易参数的有效性,对于本地地震模型权重训练节点所训练得到的模型参数有效性的验证方法为验证地震模型权重节点先使用自己本地的测试集验证得到模型正确率然后将其于自己本地训练集训练模型在测试集得到的正确率行对比,若小于给定的阈值,则可认为该地震模型参数交易有效,否则则认为该交易无效;
115.最终验证地震模型权重节点将自己验证过后的地震模型参数交易发送给与自己相关联的打包地震模型参数交易出块节点。
116.在本发明的实施例中,对于打包地震模型参数交易出块节点,主要负责接受验证地震模型权重节点传递过来的地震模型参数交易,并验证交易的合法性并且打包生成区块,其具体职责如下:
117.打包地震模型参数交易出块节点将接受与其相连的来自不同验证地震模型权重节点的待审核交易,按照接受的时间从小到大排列,生成最终的未被审核的地震模型参数交易。
118.打包地震模型参数交易出块节点再将自己接受到的地震模型参数交易广播给其它出块节点,接下来打包地震模型参数交易出块节点同样对其接收到的验证地震模型参数节点的待审核交易和其它打包地震模型参数交易出块节点的广播交易按照时间从小到大排序,确定最终要审核的最终地震模型参数交易队列, 并按照核验交易签名有效性分成有效交易和无效交易两类。
119.将上述两类交易打包区块中,随机选取随机值开始挖矿,当打包地震模型参数交易出块节点算出符合相应难度值成功获得区块时,将自己获得得区块传播给其他出块节点。
120.在本发明的实施例中,各打包地震模型参数交易出块节点在确定最终块的身份时,将与自己通讯的验证地震模型参数节点和打包地震模型参数交易出块节点通知,让他们将该区块添加到自己系统的区块链上,等待其它所有节点验证。
121.此时各本地地震模型权重训练节点、验证地震模型权重节点、打包地震模型参数交易出块节点在确定最终块后,接下来处理区块中验证地震模型权重节点签名通过的验证的本地地震模型权重训练的交易,即验证和反对的数量,判断该本地地震模型权重训练的
交易的权重是否能用于全局参数的更新。本地地震模型权重训练的交易被验证地震模型权重节点验证赞成多于反对的本地地震模型权重训练的交易才可以被用来全局模型参数的更新,并给予对应本地地震模型权重训练奖励,奖励为训练样本数量*单位奖励,以此激励参与方更好的使用更多的样本数据集训练。
122.全局参数更新在各本地地震模型节点进行,各本地模型节点获取自己本地区块链中对应改地震模型共享任务中的所有本地地震模型权重训练的所有节点模型参数信息,并且本地各自采用fedavg联邦学习算法进行权重的聚合,将所有验证通过的本地地震模型权重参数训练节点的对应权重取平均作为新的全局参数的权重。
123.自此一轮微块的全局参数更新结束,后面微块的操作执行相同的更新流程,直到满足模型的更新的阈值,此时该地震模型共享任务结束,将最新的微块模型权重信息返回给数据请求方,并将此过程中生成的微块与记录模型共享信息请求的主块添加到区块链网络中,方便后续模型的溯源。
124.为了更加方便后续该系统的使用,本发明通过利用django css js等前后端框架组合搭建了区块链 联邦学习地震数据模型共享平台,可以通过平台的交互方便进行最新本地地震模型节点模型算法的更新和地震模型共享任务的发布和溯源,其界面如图6所示。
125.在本发明的实施例中,针对数值仿真结果,此次地震模型共享任务利用各分布式集群共同训练卷积自编码器地震数据模型,最终完成全局模型的参数训练,最后各节点可以用最终训练的全局模型进行地震数据的潜在特征提取,最终完成对本地地震数据集更好的进行聚类分析。
126.在本发明的实施例中,分布式系统节点本地模型训练时,每个本地地震模型节点通过选取自己的本地地震数据集,采用地震模型训练任务中所事先规定好的卷积自编码器神经网络模型结构作为此次的共享地震网络模型。
127.如图所示为其中一个节点在进行第一个微块训练时,提交的本地地震模型参数的具体重构图,第一行图片为输入的本地地震样本数据图,第二行为对应的本地自编码器模型训练提取特征重构后的数据图,可以看出只是进行本地模型训练,由于样本量较少,模型并不是能很好的提取该类数据的潜在特征。图 6为该节点进行所有模型权重聚合使用最新全局模型参数模型的进行重构后的图像,从图中可以看出,在聚合各节点参数后,模型的泛化性能明显提高,并且重构的图像算是信息明显减少,这说明当前的自编码器网络可以很好的提取该类地震数据图像的潜在特征,该节点用训练好的全局网络提取出来的潜在特征进行聚类分析,如7所示为客户端节点聚类之前的模型效果图,图8所示,当前客户端节点在使用聚合后的自编码器模型提取的潜在特征后对数据进行聚类分析的效果示意图,可以很清楚看该自编码器降维后的数据特征可以很好用来进行聚类分析,最终实现在不泄露本地数据隐私的前提下,进行多方节点模型的共同训练,达到更好的模型效果。
128.如图7所示为该地震模型平台全局模型参数设置的初始化界面,对于全局参数的设置方面,可以根据具体业务需求可以选择参与本地训练的客户端节点数量,根据具体业务模型共享需求选择具体的应用数据集并且选择合适的算法模型,最下方区块链信息展示当前区块链系统的基本信息。对于具体的客户端节点设置,可以控制客户端的算力,模拟不同应用场景设备算力不同的情况。设置每个节点用来训练的本地训练集数量,通过状态属性展示当前客户端节点在线或者离线,准确率、损失表明在此次联邦学习结束后各客户端
在使用最终全局参数在测试集训练得到的正确率和损失函数。奖励为此轮区块各客户端所得到的出块奖励,区块高度为此时系统区块链的长度等。
129.如图8所示为该模型模拟执行以此地震数据模型共享后的示意图,该图模拟mnist数据集的基于区块链的联邦学习模型共享,客户端节点数量为6,采用的训练模型为cnn,此次任务发放奖励1000,训练进度展示此次的训练过程的可视化时间,最右侧展示各客户端的用全局模型训练参数训在测试集的正确率,以及本轮所获得出块奖励,客户端4节点为本轮的出块者,因此奖励相应多于其它节点
130.在一个实施例中,在本发明的实施例中还提供了一种计算机设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行所述的基于区块链和联邦学习的地震数据模型共享方法,该处理器执行指令时实现上述各方法实施例中的步骤。
131.在本发明的一个实施例中还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述基于区块链和联邦学习的地震数据模型共享方法的步骤。
132.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。
133.综上所述,本发明提供的基于区块链和联邦学习的地震数据模型共享方法,通过将区块链与联邦学习两种技术融合在一起,首先利用区块链技术提供一种有关地震模型共享的基于权益证明的共识协议,将出块奖励与参与方模型的正确率挂钩,同时对训练模型优秀的参与方给予更多奖励,奖励由参与方训练样本多少决定,这样一方面解决参与方的参与度问题,也在整体使得促进各方更好的训练模型,提高整体的模型性能,解决联邦学习参与方缺少激励机制的问题,同时也避免区块链分叉。另一方面区块链具有不可变性和可跟踪性,是联邦学习中防止恶意攻击的有效工具。每个参与方对其本地模型所做的即时更新,都可以链接到区块链提供的分布式账本上,以便对这些模型更新进行审计。每一个模型更新,无论是本地权重还是梯度,都可以追溯到单个参与方并与之关联,这有助于检测篡改尝试和恶意模型替换。筛选出恶意节点后可加入到系统所有节点中的黑名单中,提升整体系统的鲁棒性。另外模型的权重更新是通过加密的方式上传到区块,只有系统注册的节点才有权进行查看,并通过区块链不可篡改性保证模型权重的完整性。
134.最后采用一种新的区块链式结构,分为主块、微块,主块主要负责存储模型共享交易请求和模型溯源请求,而微块与主块相连存储与该主块相关的模型训练信息或者模型溯源信息,方便在下次有新的模型共享需求时可以快速检索区块链信息,获取最新的模型训练信息。最终基于上述创新搭建一个基于联邦学习和区块链的数据模型共享平台,可以在该平台快速发布最新的模型共享任务和模型溯源请求。
135.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献