CN110321385A - 基于区块链的数据处理方法和数据处理装置 - Google Patents
基于区块链的数据处理方法和数据处理装置 Download PDFInfo
- Publication number
- CN110321385A CN110321385A CN201910584015.XA CN201910584015A CN110321385A CN 110321385 A CN110321385 A CN 110321385A CN 201910584015 A CN201910584015 A CN 201910584015A CN 110321385 A CN110321385 A CN 110321385A
- Authority
- CN
- China
- Prior art keywords
- block chain
- model coefficient
- model
- test
- coefficient
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供了一种基于区块链的数据处理方法,应用于区块链节点,包括:基于区块链上当前最新区块中的第一模型系数和本地数据集,训练得到与本区块链节点对应的第二模型系数;基于本地测试集对所述第二模型系数进行测试,得到第一测试结果;当第一测试结果符合第一预设条件时,将所述第二模型系数广播至其他区块链节点进行共识验证;当共识验证结果表明所述第二模型系数优于所述第一模型系数时,将所述第二模型系数作为更新的第一模型系数,基于所述第二模型系数创建新的区块并链入区块链;基于与本区块链节点对应的至少一个第二模型系数的第一测试结果和/或共识验证结果,对第一预设条件进行调整。本公开还提供了一种基于区块链的数据处理装置。
Description
技术领域
本公开涉及一种基于区块链的数据处理方法和数据处理装置。
背景技术
深度学习导致了人类历史上第三次人工智能的浪潮,且已被证明在计算机视觉、语音、语言处理等许多领域都有效。许多商业的人工智能的产品/服务已经可用,并使人们的生活更加美好。
人工智能模型的训练是人工智能研究领域的重要课题,越来越多的研究投入到该课题中。
发明内容
本公开的一个方面提供了一种基于区块链的数据处理方法,应用于区块链节点,包括:获取区块链上当前最新区块中的第一模型系数。基于第一模型系数和本地数据集,训练得到与本区块链节点对应的第二模型系数。基于本地测试集对第二模型系数进行测试,得到第一测试结果。当第一测试结果符合第一预设条件时,将第二模型系数广播至其他区块链节点,由其他区块链节点对第二模型系数进行共识验证,当共识验证结果表明第二模型系数优于第一模型系数时,将第二模型系数作为更新的第一模型系数,在区块链中创建包含更新的第一模型系数的新的区块。以及,基于与本区块链节点对应的至少一个第二模型系数的第一测试结果和/或共识验证结果,对第一预设条件进行调整。
可选地,上述基于本地测试集对第二模型系数进行测试,得到第一测试结果包括:基于本地测试集对与第二模型系数对应的模型进行测试,得到第一测试分数。上述第一预设条件包括:第一测试分数高于基于本区块链节点的本地测试集测试得到的与第一模型系数对应的测试分数,或者,第一测试分数高于本地测试阈值。上述基于与本区块链节点对应的至少一个第二模型系数的第一测试结果和/或共识验证结果,对第一预设条件进行调整包括:对于第一预设时间段内所得到的与本区块链节点对应的各第二模型系数的第一测试结果,如果符合第一预设条件的第一测试结果的占比低于第一阈值,降低本地测试阈值,如果符合第一预设条件的第一测试结果的占比高于第二阈值,提高本地测试阈值。以及,对于第二预设时间段内所得到的与本区块链节点对应的各第二模型系数的共识验证结果,如果表明所述第二模型系数优于所述第一模型系数的共识验证结果的占比低于第三阈值,提高本地测试阈值。
可选地,上述由其他区块链节点对第二模型系数进行共识验证包括:由其他区块链节点基于各自的本地测试集对与第二模型系数对应的模型分别进行测试,并根据测试结果返回投票结果。上述方法还包括:接收其他区块链节点返回的投票结果,当投票结果中赞成票的占比高于第四阈值时,共识验证结果表明第二模型系数优于所述第一模型系数。
可选地,上述方法还包括:接收其他区块链节点广播的与所述其他区块链节点对应的第二模型系数;当共识验证结果表明与本区块链节点对应的第二模型系数不优于第一模型系数时,基于所述与其他区块链节点对应的第二模型系数,将与本区块链节点对应的第二模型系数修正为第三模型系数;以及,基于所述第三模型系数和本地数据集,训练得到与本区块链节点对应的更新的第二模型系数。
可选地,在所述在区块链中创建包含更新的第一模型系数的新的区块之后,上述方法还包括:在本区块链节点的账户中增加第一数值。
本公开的另一方面提供了一种基于区块链的数据处理方法,应用于区块链节点,包括:接收其他区块链节点广播的第二模型系数,与其他接收到所述第二模型系数的区块链节点一同对所述第二模型系数进行共识验证,以及,当共识验证结果表明所述第二模型系数优于所述第一模型系数时,响应于广播所述第二模型系数的区块链节点创建新的区块的操作,将所述新的区块加入至本区块链节点对应的区块链中。其中,所述第二模型系数是广播所述第二模型系数的区块链节点基于自身的本地数据集和区块链上当前最新区块中的第一模型系数训练得到的,且广播所述第二模型系数的区块链节点基于自身的本地测试集对所述第二模型系数进行测试得到的第一测试结果符合第一预设条件。
可选地,上述与其他接收到所述第二模型系数的区块链节点一同对所述第二模型系数进行共识验证包括:基于本区块链节点的本地测试集对与所述第二模型系数对应的模型进行测试,得到第二测试结果;当第二测试结果符合第二预设条件时发出赞成票,当第二测试结果不符合第二预设条件时发出反对票;以及,当与其他接收到所述第二模型系数的区块链节点发出的投票结果中赞成票的占比高于第四阈值时,共识验证结果表明所述第二模型系数优于所述第一模型系数。上述方法还包括:基于本区块链节点发出的至少一个投票结果,对所述第二预设条件进行调整。
可选地,上述第二测试结果包括第二测试分数。上述第二预设条件包括:所述第二测试分数高于基于本区块链节点的本地测试集测试得到的与所述第一模型系数对应的测试分数,或者,所述第二测试分数高于本地投票阈值。上述基于本区块链节点发出的至少一个投票结果,对所述第二预设条件进行调整包括:如果第三预设时间段内本区块链节点连续发出的赞成票的数量高于第五阈值,提高所述本地投票阈值;以及,如果第四预设时间段内本区块链节点连续发出的反对票的数量高于第六阈值,降低所述本地投票阈值。
本公开的另一方面提供了一种基于区块链的数据处理装置,应用于区块链节点,包括获取模块、训练模块、测试模块、广播模块、区块链更新模块和调整模块。获取模块用于获取区块链上当前最新区块中的第一模型系数。训练模块用于基于所述第一模型系数和本地数据集,训练得到与本区块链节点对应的第二模型系数。测试模块用于基于本地测试集对所述第二模型系数进行测试,得到第一测试结果。广播模块用于当第一测试结果符合第一预设条件时,将所述第二模型系数广播至其他区块链节点,由其他区块链节点对所述第二模型系数进行共识验证。区块链更新模块用于当共识验证结果表明所述第二模型系数优于所述第一模型系数时,将所述第二模型系数作为更新的第一模型系数,在区块链中创建包含所述更新的第一模型系数的新的区块。以及,调整模块用于基于与本区块链节点对应的至少一个第二模型系数的第一测试结果和/或共识验证结果,对所述第一预设条件进行调整。
可选地,测试模块用于基于本地测试集对与所述第二模型系数对应的模型进行测试,得到第一测试分数。第一预设条件包括:第一测试分数高于基于本区块链节点的本地测试集测试得到的与第一模型系数对应的测试分数,或者,第一测试分数高于本地测试阈值。调整模块包括第一调节子模块和第二调节子模块。第一调节子模块用于对于第一预设时间段内所得到的与本区块链节点对应的各第二模型系数的第一测试结果,如果符合第一预设条件的第一测试结果的占比低于第一阈值,降低所述本地测试阈值,如果符合第一预设条件的第一测试结果的占比高于第二阈值,提高所述本地测试阈值。以及,第二调节子模块用于对于第二预设时间段内所得到的与本区块链节点对应的各第二模型系数的共识验证结果,如果表明所述第二模型系数优于所述第一模型系数的共识验证结果的占比低于第三阈值,提高所述本地测试阈值。
可选地,由其他区块链节点对所述第二模型系数进行共识验证包括:由其他区块链节点基于各自的本地测试集对与所述第二模型系数对应的模型分别进行测试,并根据测试结果返回投票结果。上述装置还包括共识验证模块,用于接收其他区块链节点返回的投票结果,当投票结果中赞成票的占比高于第四阈值时,共识验证结果表明所述第二模型系数优于所述第一模型系数。
可选地,上述装置还包括修正模块,用于接收其他区块链节点广播的与所述其他区块链节点对应的第二模型系数;当共识验证结果表明与本区块链节点对应的第二模型系数不优于第一模型系数时,基于所述与其他区块链节点对应的第二模型系数,将与本区块链节点对应的第二模型系数修正为第三模型系数;以及,基于所述第三模型系数和本地数据集,训练得到与本区块链节点对应的更新的第二模型系数。
可选地,上述装置还包括奖励模块,用于在区块链更新模块在区块链中创建包含更新的第一模型系数的新的区块之后,在本区块链节点的账户中增加第一数值。
本公开的另一方面提供了一种基于区块链的数据处理装置,应用于区块链节点,包括接收模块、共识验证模块和区块链更新模块。
接收模块用于接收其他区块链节点广播的第二模型系数。其中,所述第二模型系数基于所述其他区块链节点的本地数据集和区块链上当前最新区块中的第一模型系数训练得到,且所述第二模型系数基于所述其他区块链节点的本地测试集测试得到的第一测试结果符合第一预设条件。共识验证模块用于与其他接收到所述第二模型系数的区块链节点一同对所述第二模型系数进行共识验证。以及,区块链更新模块用于当共识验证结果表明所述第二模型系数优于所述第一模型系数时,响应于广播所述第二模型系数的区块链节点创建新的区块的操作,将所述新的区块加入至本区块链节点对应的区块链中。
可选地,共识验证模块包括测试子模块和投票子模块。测试子模块用于基于本地测试集对与所述第二模型系数对应的模型进行测试,得到第二测试结果。投票子模块用于当第二测试结果符合第二预设条件时发出赞成票,当第二测试结果不符合第二预设条件时发出反对票。其中,当与其他接收到所述第二模型系数的区块链节点发出的投票结果中赞成票的占比高于第四阈值时,共识验证结果表明所述第二模型系数优于所述第一模型系数。上述装置还包括调整模块,用于基于本区块链节点发出的至少一个投票结果,对所述第二预设条件进行调整。
可选地,第二测试结果包括第二测试分数。第二预设条件包括:第二测试分数高于基于本区块链节点的本地测试集测试得到的与所述第一模型系数对应的测试分数,或者,所述第二测试分数高于本地投票阈值。调整模块包括第一调节子模块和第二调节子模块,第一调节子模块用于在第三预设时间段内本区块链节点连续发出的赞成票的数量高于第五阈值时,提高所述本地投票阈值。第二调节子模块用于在第四预设时间段内本区块链节点连续发出的反对票的数量高于第六阈值时,降低所述本地投票阈值。
本公开的另一方面提供了一种计算机***,所述计算机***包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1A~图1B示意性示出了根据本公开实施例的基于区块链的数据处理方法和装置的应用场景;
图2示意性示出了根据本公开实施例的基于区块链的数据处理方法的流程图;
图3示意性示出了根据本公开实施例的区块链的示意图;
图4示意性示出了根据本公开另一实施例的基于区块链的数据处理方法的流程图;
图5A示意性示出了根据本公开实施例的区块链节点的测试精度的示意图;
图5B示意性示出了根据本公开另一实施例的区块链节点的测试精度的示意图;
图6A示意性示出了根据本公开另一实施例的基于区块链的数据处理方法的流程图;
图6B示意性示出了根据本公开另一实施例的基于区块链的数据处理方法的流程图;
图7示意性示出了根据本公开实施例的基于区块链的数据处理装置的框图;
图8示意性示出了根据本公开另一实施例的基于区块链的数据处理装置的框图;
图9示意性示出了根据本公开另一实施例的基于区块链的数据处理装置的框图;
图10示意性示出了根据本公开另一实施例的基于区块链的数据处理装置的框图;以及
图11示意性示出了根据本公开的实施例的适于实现上文描述的方法的计算机***的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行***使用或者结合指令执行***使用。
当前,人工智能研究人员/组织训练人工智能模型以解决特定问题。为了创建针对特定问题的人工智能模型,人工智能研究人员需要设计模型结构,获取大量数据,并花费大量计算资源来训练模型,训练过程通常需要持续很长时间(几个小时到几个月)。
人工智能模型的训练过程一般包括前馈评估、反向传播和权重更新。前馈评估将训练数据输入模型,计算与每个输入对应的模型输出,反向传播基于与每个输入对应的模型输出和真实结果来计算误差项,并基于误差项来进行权重更新,权重更新后再重复上述前馈评估和反向传播过程,直到训练集处理完毕。在训练过程结束时,基于验证集验证模型性能,并在模型性能不符合要求时调整模型超参数,重复上述训练过程和验证过程,直至模型性能达到期望,如模型预测误差收敛至期望值以下,即得到训练后的模型。最后利用测试集评估训练后的模型的泛化性。
通常情况下,由于各研究人员/组织的数据集(包括训练集和验证集等)的私密性,导致不同方使用数据集进行模型训练的过程也彼此隔离。例如,针对同一特定问题,不同研究人员/组织分别根据自己的数据集分别独立地对自己的模型进行训练。从社会层面来看,各方针对同一特定问题彼此隔离进行模型训练的方式,训练效率不高,浪费大量的资源来重复构建相同模型。
为改变上述各方彼此隔离进行模型训练的现状,可以利用多个节点的分布式训练来加速这个过程。分布式训练允许不同节点利用不同数据集在不同分区上并行训练相同模型的多个副本,各节点可以共享模型系数但无需共享数据集。并且为提高操作速度,各节点可以并行操作、异步发布模型系数更新、以及接收更新的模型系数。
本公开的实施例提供了一种基于区块链的数据处理方法和装置。该方法包括第二模型系数生成阶段、本地筛选阶段、共识验证阶段、区块链更新阶段和筛选条件调整阶段。在第二模型系数生成阶段,获取区块链上已有的最优模型系数,在此基础上训练生成第二模型系数。然后对该第二模型系数进行本地筛选,筛选出第一测试结果符合第一预设条件的第二模型系数进入到共识验证阶段。当共识验证结果表明新生成的第二模型系数优于当前区块链上已有的最优模型时,根据第二模型系数对区块链进行更新。在筛选条件调整阶段,基于本地筛选阶段的历史筛选结果和/或共识验证阶段的历史验证结果,对筛选条件进行自适应调节。
图1A~图1B示意性示出了根据本公开实施例的基于区块链的数据处理方法和装置的应用场景。需要注意的是,图1A~图1B所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图1A所示,该应用场景中包括多个电子设备101~107。电子设备101~107可以是个人电脑、网络服务器、数据库服务器等各种具有计算能力的电子设备,电子设备101~107所具有的计算能力可以相同或不同。
作为一种实施方式,电子设备101~107之间可以相互通信,构成区块链网络(blockchain network),每个电子设备可以作为组成该区块链网络中的一个区块链节点(node),当电子设备包括多个计算节点时,每个计算节点也可以作为组成区块链网络的区块链节点。该区块链网络可以用于训练针对特定问题的人工智能模型,各区块链节点共同维护针对特定问题的人工智能模型的区块链(blockchain)。
如图1B所示,区块链网络100可以对应于一个由多家医院110、120、130组成的社区(community),各医院所配备的服务器可以作为构成该区块链网络100中的区块链节点,不同区块链节点具有不同的本地数据集。多家医院110、120、130的服务器共同维护针对特定疾病的治愈率问题的人工智能模型的区块链,各医院的服务器利用各自的本地数据集对该人工智能模型进行训练,并通过区块链实现训练结果的共享和监督,以共同促进上述特定疾病的治愈率问题的解决。
应该理解,图1A~图1B中电子设备、区块链节点的数目仅仅是示意性的。根据实现需要,可以具有任意数目的电子设备和区块链节点。
图2示意性示出了根据本公开实施例的基于区块链的数据处理方法的流程图,该方法可以应用于区块链网络中的任一区块链节点。
如图2所示,该方法包括操作S201~S206。
在操作S201,获取区块链上当前最新区块中的第一模型系数。
其中,区块链是通过散列指针按时间顺序链接的区块(block)的分布式数据库。区块链的区块是按照时间顺序加入的,当满足预定条件时,区块链网络中的各区块链节点允许当前区块链节点创建区块并将该区块加入到区块链中,加入的区块作为该区块链上当前最新区块。在某一特定时刻,维护同一区块链的区块链节点从区块链上获取的当前最新区块是相同的。作为一种实施方式,请参阅图3。
图3示意性示出了根据本公开实施例的区块链的示意图。
如图3所示,区块链中的每个区块中包含了第一模型系数,初始区块(区块1)中除第一模型系数之外还包括模型定义和区块链优化目标。模型系数是模型本身所直接对应的参数集合,一个模型系数对应于多个参数,其中可以包括普通参数和超参数,是构建模型的绝对数据。各区块链节点可以从区块链的初始区块中获得模型定义和区块链优化目标并存在本地。在其他实施例中,区块的结构也可以与图3中所示的不同,可以向区块中添加其它元素或者删除图3中所示的元素。例如,模型定义及区块链优化目标可以放在每个区块中。此时,区块4为该区块链上当前最新区块,本区块链节点获取区块4中的第一模型系数。接着返回图2所示的方法。
在操作S202,基于所述第一模型系数和本地数据集,训练得到与本区块链节点对应的第二模型系数。
其中,本地数据集是指本区块链节点的本地数据集,可以包括训练集和验证集。本操作在所获得的第一模型系数的基础上,利用本地数据集进行训练,可以包括前文所述的训练过程和验证过程,也可以仅包括前文所述的训练过程,得到第二模型系数。相当于利用区块链网络中已有的训练成果,再结合本区块链节点的数据,得到第二模型系数。
在操作S203,基于本地测试集对所述第二模型系数进行测试,得到第一测试结果。
其中,第一测试结果是本区块链节点对于自身训练得到的与第二模型系数对应的模型的本地测试结果。
在操作S204,当第一测试结果符合第一预设条件时,将所述第二模型系数广播至其他区块链节点,由其他区块链节点对所述第二模型系数进行共识验证。
本操作利用第一预设条件先在区块链节点本地对训练得到的第二模型系数进行初步筛选,仅将本地测试结果符合第一预设条件的第二模型系数广播至其他区块链节点以进行共识验证。
在操作S205,当共识验证结果表明所述第二模型系数优于所述第一模型系数时,将所述第二模型系数作为更新的第一模型系数,在区块链中创建包含所述更新的第一模型系数的新的区块。
本操作将各区块链节点训练得到的更优的模型系数打包至新区块并链入区块链。在图3所示的实施例中,当共识验证结果表明第二模型系数优于区块4中的第一模型系数时,将第二模型系数作为更新的第一模型系数,依据更新的第一模型系数生成新的区块5(图中未示出),将区块5链至区块4,该区块5变成区块链上当前最新区块。各区块链节点从区块5中获取第一模型系数并进行训练,重复上述操作S201~S205。
在操作S206,基于与本区块链节点对应的至少一个第二模型系数的第一测试结果和/或共识验证结果,对所述第一预设条件进行调整。
本操作中,基于与本区块链节点对应的至少一个第二模型系数的第一测试结果对第一预设条件进行调整可以是:根据本区块链节点训练得到的一个或多个第二模型系数的本地测试结果是否符合第一预设条件的状况来对第一预设条件进行调整。基于与本区块链节点对应的至少一个第二模型系数的共识验证结果对第一预设条件进行调整可以是:对于本区块链节点训练得到的允许进行共识验证的一个或多个第二模型系数,根据该一个或多个第二模型系数的共识验证结果所表明的这一个或多个第二模型系数是否优于所述第一模型系数的状况来对第一预设条件进行调整。
可见,图2所示的方法具有如下有益效果:
第一,区块链网络中的各区块链节点可以在区块链网络当前已训练得到的最优模型系数的基础上,结合自身的数据集进行训练,得到第二模型系数。在经过共识验证确定第二模型系数优于区块链上当前最优模型系数时,将该第二模型系数作为新的最优模型系数形成新区块并链至区块链上。依据此方案,区块链网络中的各区块链节点在保持自身的数据集私密性的同时,对于针对同一问题的模型进行共同训练和监督,不断将训练得到的更优的模型系数放入区块链的新区块中,不断基于已有的最优模型系数训练得到更优的模型系数。区块链中保存了逐渐优化的模型系数,使得各区块链节点无需浪费时间做其它区块链节点已经完成的训练,能够节省计算资源,提高训练效率,共同促进模型的收敛。
第二,对于训练生成的第二模型系数,先依据第一预设条件在生成该第二模型系数的区块链节点本地进行初步筛选,将筛选出的第二模型系数进行广播和共识验证,减少带宽浪费,提高模型收敛速度。
第三,基于本区块链节点历史训练得到的第二模型系数的本地测试结果和/或共识验证结果的状况来调整第一预设条件,第一预设条件的调整又会影响本区块链节点新训练得到的第二模型系数的本地测试结果和/或共识验证结果的状况,形成基于反馈的自适应调节机制,第一预设条件的不断优化,使得区块链节点之间的信息共享和对带宽资源的占用趋于合理,以最大限度地提高模型的收敛效率。
在本公开的一个实施例中,上述操作S203基于本地测试集对所述第二模型系数进行测试,得到第一测试结果包括:基于本地测试集对与所述第二模型系数对应的模型进行测试,得到第一测试分数。第一预设条件包括:第一测试分数高于基于本区块链节点的本地测试集测试得到的与所述第一模型系数对应的测试分数,或者,第一测试分数高于本地测试阈值。
依据本实施例,一个区块链网络包括区块链节点P0、P1、P2和P3,区块链节点P1基于本地数据集和区块链上当前最新区块中的第一模型系数X1进行训练,得到与区块链节点P1对应的第二模型系数X21。该区块链节点P1利用本地测试集对该第二模型系数X21进行测试,得到第一测试分数。该区块链节点P1利用本地测试集对第一模型系数X1进行测试,得到参考测试分数。区块链节点P1先判断第一测试分数是否高于参考测试分数,如果是,直接可以确定第二模型系数X21符合第一预设条件,区块链节点P1将该第二模型系数X21广播至区块链节点P0、P2和P3进行共识验证。如果第一测试分数低于参考测试分数,则区块链节点P1进一步判断第一测试分数是否高于本地测试阈值,如果是,可以确定第二模型系数X21符合第一预设条件,区块链节点P1将该第二模型系数X21广播至区块链节点P0、P2和P3进行共识验证。如果第一测试分数低于本地测试阈值,确定第二模型系数X21不符合第一预设条件。上述过程中增加了第一测试分数和本地测试阈值的比较,通过本地测试阈值来进行更加灵活、有效的筛选。
在此基础上,上述操作S206基于与本区块链节点对应的至少一个第二模型系数的第一测试结果和/或共识验证结果,对所述第一预设条件进行调整包括:对于第一预设时间段内所得到的与本区块链节点对应的各第二模型系数的第一测试结果,如果符合第一预设条件的第一测试结果的占比低于第一阈值,降低所述本地测试阈值,如果符合第一预设条件的第一测试结果的占比高于第二阈值,提高所述本地测试阈值。以及,对于第二预设时间段内所得到的与本区块链节点对应的各第二模型系数的共识验证结果,如果表明所述第二模型系数优于所述第一模型系数的共识验证结果的占比低于第三阈值,提高所述本地测试阈值。
例如,区块链节点P1在第一预设时间段内执行多次上述从最新区块获取第一模型系数并基于该第一模型系数进行训练的操作,训练得到多个第二模型系数X211、X212和X213。利用区块链节点P1的本地测试集分别对各第二模型系数进行测试,得到:第二模型系数X211的本地测试精度为70%,第二模型系数X212的本地测试精度为78%,第二模型系数X213的本地测试精度为80%。
当区块链节点P1的本地测试阈值为85%时,第二模型系数X211、X212和X213的本地测试精度均低于该本地测试阈值,符合第一预设条件的第一测试结果的占比为0/3=0,低于第一阈值。说明当前的本地测试阈值偏高,导致区块链节点P1对本地训练得到的第二模型系数无法进行广播或广播的数量过少,其他区块链节点获取不到足够的该区块链节点P1的本地模型系数,缺失任一区块链节点的本地模型系数将会影响区块链网络整体的系数综合,进而影响模型的收敛效果。因此,在此情况下区块链节点P1应当适当降低本地测试阈值,以使得本地训练得到的模型系数能够一定程度地传递给其他区块链节点。
当区块链节点P1的本地测试阈值为40%时,第二模型系数X211、X212和X213的本地测试精度均高于该本地测试阈值,符合第一预设条件的第一测试结果的占比为3/3=100%,高于第二阈值。说明当前的本地测试阈值偏低,导致区块链节点P1每次训练得到的第二模型系数均会被广播出去,由其他区块链节点进行共识验证,过于频繁的通信会造成不必要的带宽浪费,降低训练效率。因此,在此情况下区块链节点P1应当适当提高本地测试阈值,以使得本地测试阈值能够起到有效的初步筛选作用。
还例如,区块链节点P1在第二预设时间段内执行多次上述从最新区块获取第一模型系数并基于该第一模型系数进行训练的操作,训练得到多个第二模型系数X211、X212、X213、X214和X215。其中,第二模型系数X214和X215的第一测试分数高于本地测试阈值,被广播至其他区块链节点进行共识验证。其他区块链节点对第二模型系数X214的共识验证结果表明第二模型系数X214不优于当前最新区块中的第一模型系数X1,其他区块链节点对第二模型系数X214的共识验证结果表明第二模型系数X214不优于当前最新区块中的第一模型系数X1。即表明第二模型系数优于第一模型系数的共识验证结果的占比为0/2=0,低于第三阈值。说明当前的本地测试阈值偏低,导致区块链节点P1广播出去的第二模型系数的性能较差,无法通过其他区块链节点的共识验证。因此,在此情况下区块链节点P1应当适当提高本地测试阈值,以使得本地测试阈值能够将性能较优的第二模型系数筛选出来。
在本公开的一个实施例中,在确定第二模型系数符合第一预设条件后,将该第二模型系数广播至其他区块链节点,由其他区块链节点对所述第二模型系数进行共识验证。其中,由其他区块链节点对所述第二模型系数进行共识验证可以包括:由其他区块链节点基于各自的本地测试集对与所述第二模型系数对应的模型分别进行测试,并根据各自的测试结果返回投票结果。可选地,投票结果可以只返回至广播第二模型系数的本区块链节点,也可以向包含广播第二模型系数的本区块链节点在内的各区块链节点广播。可选地,投票结果可以包括赞成票和反对票,根据本公开实施例的基于区块链的数据处理方法还包括:接收其他区块链节点返回的投票结果,当投票结果中赞成票的占比高于第四阈值时,共识验证结果表明本区块链节点训练得到的第二模型系数优于区块链第一模型系数,否则,共识验证结果表明本区块链节点训练得到的第二模型系数不优于所述第一模型系数。
进一步地,当最终的共识验证结果表明本区块链节点生成的第二模型系数不优于第一模型系数时,说明本区块链节点新生成的第二模型系数效果较差,不能将其存入区块链中,需要重新进行训练,为了使得后续训练能够得到较好的结果,不应当再在已生成的效果较差的第二模型系数的基础上进行继续训练,需要对已生成的效果较差的第二模型系数进行修正,然后再继续训练。在本公开的一个实施例中,根据本公开实施例的基于区块链的数据处理方法还包括:接收其他区块链节点广播的与所述其他区块链节点对应的第二模型系数,当共识验证结果表明与本区块链节点对应的第二模型系数不优于第一模型系数时,基于所述与其他区块链节点对应的第二模型系数,将与本区块链节点对应的第二模型系数修正为第三模型系数,以及,基于所述第三模型系数和本地数据集,训练得到与本区块链节点对应的更新的第二模型系数。本实施例通过其他区块链节点训练得到的模型系数对本区块链节点训练得到的效果较差的模型系数进行修正后再继续训练,各区块链节点在训练过程中可以相互借鉴共同促进,提高训练效率,节省训练时间。
此外,为了激励区块链网络中的各区块链节点都不断向着优化模型训练的目标进行训练,在本公开的一个实施例中,还可以设置奖励机制,即,在上述操作S205在区块链中创建包含所述更新的第一模型系数的新的区块之后,根据本公开实施例的基于区块链的数据处理方法还包括:在本区块链节点的账户(account)中增加第一数值。例如,区块链网络中可以预置奖励规则,在一个区块链节点生成的第二模型系数通过共识验证后该区块链节点产生新的区块时,向该区块链节点的账户中发放第一数值的数字货币奖励(reward),区块链节点可以利用各自账户的数字货币进行交易。
图4示意性示出了根据本公开另一实施例的基于区块链的数据处理方法的流程图,该方法可以应用于区块链网络中的任一区块链节点。
如图4所示,该方法包括操作S401~S403。
在操作S401,接收其他区块链节点广播的第二模型系数。
其中,第二模型系数是广播该第二模型系数的区块链节点基于自身的本地数据集和区块链上当前最新区块中的第一模型系数训练得到的,且该第二模型系数基于广播该第二模型系数的区块链节点的本地测试集测试得到的第一测试结果符合第一预设条件。也就是说,一个区块链节点在训练得到第二模型系数后,先利用自身的本地测试集对该第二模型系数进行测试得到第一测试结果,在第一测试结果符合第一预设条件时才将该第二模型系数广播出来。与图2所示的方法相比,图2所示的方法对区块链节点作为训练方所执行的操作进行说明,而图4所示的方法对区块链网络中的区块链节点作为投票方所执行的操作进行说明,二者相互对应,重复的部分不再赘述。
在操作S402,与其他接收到所述第二模型系数的区块链节点一同对所述第二模型系数进行共识验证。
在操作S403,当共识验证结果表明所述第二模型系数优于所述第一模型系数时,响应于广播所述第二模型系数的区块链节点创建新的区块的操作,将所述新的区块加入至本区块链节点对应的区块链中。
本操作中,当共识验证结果表明第二模型系数优于第一模型系数,即表明新训练得到的模型优于区块链上目前已有的最优模型时,包括本区块链节点在内的各区块链节点同意广播所述第二模型系数的区块链节点将该第二模型系数作为更新的第一模型系数,基于更新的第一模型系数进行新区块的产生和接入。并且响应于该广播所述第二模型系数的区块链节点创建新区块并加入区块链的操作,同样地将该新区块的副本加入各自对应的区块链,使得区块链网络中的各区块链节点对应的区块链保持一致,即区块链的最新的区块中保存当前得到的最优的模型系数,以供后续各区块链节点依据图2所示的方法在此基础上进行进一步训练,追求更优的训练结果。
可见,依据图4所示的方法,各区块链节点不仅可以作为训练方也可以作为投票方。各区块链节点在作为训练方时以区块链的最新区块中的模型系数为基础继续训练。各区块链节点在作为投票方时以获得更优化的模型系数为目标对其他区块链节点训练得到的模型系数进行共识验证,不断地将更优的模型系数放入区块链中。区块链中保存了逐渐优化的模型系数,使得各区块链节点不用再浪费时间来做其它区块链节点已经完成的训练,能够节省资源,提升训练效率,共同促进模型训练不断优化。在此过程中,由于被广播到区块链网络中的第二模型系数是经过本地筛选后的模型系数,未通过本地筛选的模型系数不会被广播到区块链网络中,能够节省不必要的带宽浪费,提高模型收敛效率。
在本公开的一个实施例中,上述操作S402与其他接收到所述第二模型系数的区块链节点一同对所述第二模型系数进行共识验证可以包括:对于本区块链节点,基于本区块链节点的本地测试集对与所述第二模型系数对应的模型进行测试,得到第二测试结果。当第二测试结果符合第二预设条件时发出赞成票,当第二测试结果不符合第二预设条件时发出反对票。对于除本区块链节点之外的接收到所述第二模型系数的任一区块链节点,同样在本地执行上述操作,对所述第二模型系数进行投票,即发出赞成票或反对票。当本区块链节点与其他接收到所述第二模型系数的区块链节点发出的总投票结果中赞成票的占比高于第四阈值时,共识验证结果表明所述第二模型系数优于所述第一模型系数,反之表明所述第二模型系数不优于所述第一模型系数。
优选地,根据本公开实施例的基于区块链的数据处理方法还可以包括:基于本区块链节点发出的至少一个投票结果,对所述第二预设条件进行调整。基于本区块链节点的投票状况调整本区块链节点的第二预设条件,第二预设条件的调整又会影响本区块链节点对新接收到的第二模型系数的投票结果,形成基于反馈的自适应调节机制,第二预设条件的不断优化,使得区块链网络对任一区块链节点训练得到的第二模型系数的共识验证不断趋于合理。
具体地,作为一个可选的实施例,所述第二测试结果可以包括第二测试分数。所述第二预设条件可以包括:所述第二测试分数高于基于本区块链节点的本地测试集测试得到的与所述第一模型系数对应的测试分数,或者,所述第二测试分数高于本地投票阈值。
依据本实施例,一个区块链网络包括区块链节点P0、P1、P2和P3。区块链节点P0、P2和P3接收到区块链节点P1训练得到的与区块链节点P1对应的第二模型系数X21后,以区块链节点P0为例,说明区块链节点P0、P2和P3中任一区块链节点所执行的操作。该区块链节点P0利用本地测试集对该第二模型系数X21进行测试,得到第二测试分数。该区块链节点P0利用本地测试集对第一模型系数X1进行测试,得到参考测试分数。区块链节点P0先判断第二测试分数是否高于参考测试分数,如果是,直接可以确定第二模型系数X21符合第二预设条件,区块链节点P0对该第二模型系数X21投出赞成票。如果第二测试分数低于参考测试分数,则区块链节点P0进一步判断第二测试分数是否高于本地投票阈值,如果是,可以确定第二模型系数X21符合第二预设条件,区块链节点P0对该第二模型系数X21投出赞成票。如果第二测试分数低于本地投票阈值,确定第二模型系数X21不符合第二预设条件,区块链节点P0对该第二模型系数X21投出反对票。上述过程中,由于第二测试分数和参考测试分数均是基于本地测试集测试得到的,如果仅通过比较第二测试分数和参考测试分数进行投票,容易出现投票僵局,即同一区块链节点始终发出同样的投票结果,进而无法得到合理的共识验证结果。因此,还增加了第二测试分数和本地投票阈值的比较,通过本地投票阈值来打破投票僵局,进行更加灵活、有效的投票。
图5A示意性示出了根据本公开实施例的区块链节点的测试精度的示意图。
图5B示意性示出了根据本公开另一实施例的区块链节点的测试精度的示意图。
在本例中,区块链网络中的区块链节点P0的计算能力高于其他区块链节点P1、P2和P3,区块链节点P0的训练速度超过其他区块链节点P1、P2和P3,区块链上当前最新区块中的第一模型系数是区块链节点P0训练得到的。图5A展示了区块链节点P0利用本地测试集对其他区块链节点P1、P2和P3广播的第二模型系数进行测试得到测试精度1、测试精度2和测试精度3随时间变化的曲线,以及,区块链节点P0利用本地测试集对第一模型系数进行测试得到参考测试精度随时间变化的曲线。可以看出,在图5A所示的情况下,如果区块链节点P0没有设置本地投票阈值或设置的本地投票阈值过高,区块链节点P0会对其他区块链节点P1、P2和P3广播的第二模型系数不断地发出反对票,使得其他区块链节点P1、P2和P3训练得到的第二模型系数无法进入区块链中,而区块链节点P0训练得到的第二模型系数不断被打包进入新的区块成为新的第一模型系数。导致基于区块链网络的分布式模型训练过程变为基于区块链节点P0单一的数据集训练得到的模型,使得训练得到的模型容易出现过拟合(overfitting),泛化性差。
为改变图5A所示的情况,为区块链节点P0设置合适的本地投票阈值。图5B展示了设置本地投票阈值后,区块链节点P0利用本地测试集对其他区块链节点P1、P2和P3广播的第二模型系数进行测试得到测试精度1、测试精度2和测试精度3随时间变化的曲线,以及,区块链节点P0利用本地测试集对第一模型系数进行测试得到参考测试精度随时间变化的曲线。可以看出,区块链节点P0利用本地投票阈值与测试精度1、测试精度2和测试精度3进行比较,并根据比较结果发出相应的投票结果,使得其他区块链节点P1、P2和P3训练得到的第二模型系数有机会进入区块链中。
在本公开的一个实施例中,如果本地投票阈值设置过低,在模型训练后期,各区块链节点的测试精度均高于本地投票阈值,此时各区块链节点都对其他区块链节点训练得到的第二模型系数发赞成票,区块链上生成大量可用性低的区块,导致模型容易收敛到局部最优,使得模型收敛速度降低甚至停止收敛,模型难以进一步提升。此时应适当提高区块链节点的本地投票阈值,给模型训练提供上升的空间。
则上述基于本区块链节点发出的至少一个投票结果,对所述第二预设条件进行调整具体可以包括:如果第三预设时间段内本区块链节点连续发出的赞成票的数量高于第五阈值,提高所述本地投票阈值;以及,如果第四预设时间段内本区块链节点连续发出的反对票的数量高于第六阈值,降低所述本地投票阈值。
下面参考图6A~6B,对根据本公开实施例的基于区块链的数据处理方法做进一步说明。
区块链网络中的每个区块链节点维护至少两个进程,进程0主要进行模型训练和参数更新,并自适应调节本地测试阈值,进程1主要进行投票,并自适应调整本地投票阈值。
图6A示意性示出了根据本公开另一实施例的基于区块链的数据处理方法的流程图,应用于任一区块链节点,对应于进程0所执行的操作。
如图6A所示,该方法包括操作S601~S612。
在操作S601,获取最新区块中的第一模型系数X1进行本地训练,得到第二模型系数X2。
在操作S602,对第二模型系数X2进行本地测试。
在操作S603,本地测试结果是否优于第一模型系数X1?如果否,执行操作S604,如果是,执行操作S605。
在操作S604,本地测试结果是否大于本地测试阈值?如果是,执行操作S605,如果否,执行操作S608。
在操作S605,向其他区块链节点广播第二模型系数X2。
在操作S606,其他区块链节点是否投票通过?如果是,执行操作S607,如果否,执行操作S610。
本操作中,其他区块链节点投票通过是指接收到的投票结果中赞成票的占比超过第四阈值。
在操作S607,基于第二模型系数X2生成新区块。
在操作S608,第一时间段内通过本地测试的次数是否低于第一阈值?如果是,执行操作S609,如果否,回到操作S601。
在操作S609,降低本地测试阈值,然后回到操作S601。
在操作S610,第二时间段内投票通过率是否低于第三阈值?如果是,执行操作S611,如果否,执行操作S612。
在操作S611,提高本地测试阈值,然后回到操作S601。
在操作S612,对第二模型系数X2进行参数综合,然后回到操作S602。
本操作中,基于第二模型系数X2和其他区块链节点广播的与其他区块链节点对应的第二模型系数可以得到修正因子Wr,根据修正因子Wr修正第二模型系数X2为:X2′=α×X2+(1-α)×Wr。可以根据需要调整影响因子α的值,如当区块链被其他区块链节点更新,产生了新的第一模型系数时,可以设置α为1。当区块链未被更新,即区块链中的第一模型系数被使用过,则可以设置α小于1,得到修正后的第二模型系数X2′。
图6B示意性示出了根据本公开另一实施例的基于区块链的数据处理方法的流程图,应用于任一区块链节点,对应于进程1所执行的操作。
如图6B所示,该方法包括操作S613~S622。
在操作S613,接收其他区块链节点的第二模型系数X2。
在操作S614,利用本地测试集对第二模型系数X2进行测试。
在操作S615,测试结果是否优于第一模型系数X1?如果是,执行操作S616,如果否,执行操作S619。
在操作S616,对第二模型系数X2发出赞成票。
在操作S617,判断第三时间段内连续发出赞成票的数量是否高于第五阈值?如果是,执行操作S618,如果否,回到操作S613。
在操作S618,提高本地投票阈值,然后回到操作S613。
在操作S619,测试结果是否大于本地投票阈值?如果是,执行操作S616,如果否,执行操作S620。
在操作S620,对第二模型系数X2发出反对票。
在操作S621,第四时间段内连续发出反对票的数量是否高于第六阈值?如果是,执行操作S622,如果否,回到操作S613。
在操作S622,降低本地投票阈值,然后回到操作S613。
图7示意性示出了根据本公开实施例的基于区块链的数据处理装置的框图,该基于区块链的数据处理装置700可以应用于区块链网络中的任一区块链节点,图7所示的装置在区块链节点作为训练方时发挥作用。
如图7所示,该基于区块链的数据处理装置700包括:获取模块710、训练模块720、测试模块730、广播模块740、区块链更新模块750和调整模块760。
获取模块710用于获取区块链上当前最新区块中的第一模型系数。
训练模块720用于基于所述第一模型系数和本地数据集,训练得到与本区块链节点对应的第二模型系数。
测试模块730用于基于本地测试集对所述第二模型系数进行测试,得到第一测试结果。
广播模块740用于当第一测试结果符合第一预设条件时,将所述第二模型系数广播至其他区块链节点,由其他区块链节点对所述第二模型系数进行共识验证。
区块链更新模块750用于当共识验证结果表明所述第二模型系数优于所述第一模型系数时,将所述第二模型系数作为更新的第一模型系数,在区块链中创建包含所述更新的第一模型系数的新的区块。
调整模块760用于基于与本区块链节点对应的至少一个第二模型系数的第一测试结果和/或共识验证结果,对所述第一预设条件进行调整。
图8示意性示出了根据本公开另一实施例的基于区块链的数据处理装置的框图,该基于区块链的数据处理装置800可以应用于区块链网络中的任一区块链节点,图8所示的装置在区块链节点作为训练方时发挥作用。
如图8所示,该基于区块链的数据处理装置800包括:获取模块810、训练模块820、测试模块830、广播模块840、区块链更新模块850和调整模块860。模块810~模块860分别具有与模块710~模块760对应相同的功能,重复的部分在此不再赘述。
在本公开的一个实施例中,测试模块830用于基于本地测试集对与所述第二模型系数对应的模型进行测试,得到第一测试分数。第一预设条件包括:第一测试分数高于基于本区块链节点的本地测试集测试得到的与第一模型系数对应的测试分数,或者,第一测试分数高于本地测试阈值。
调整模块860包括第一调节子模块861和第二调节子模块862。第一调节子模块861用于对于第一预设时间段内所得到的与本区块链节点对应的各第二模型系数的第一测试结果,如果符合第一预设条件的第一测试结果的占比低于第一阈值,降低所述本地测试阈值,如果符合第一预设条件的第一测试结果的占比高于第二阈值,提高所述本地测试阈值。以及,第二调节子模块862用于对于第二预设时间段内所得到的与本区块链节点对应的各第二模型系数的共识验证结果,如果表明所述第二模型系数优于所述第一模型系数的共识验证结果的占比低于第三阈值,提高所述本地测试阈值。
在本公开的一个实施例中,由其他区块链节点对所述第二模型系数进行共识验证包括:由其他区块链节点基于各自的本地测试集对与所述第二模型系数对应的模型分别进行测试,并根据测试结果返回投票结果。上述基于区块链的数据处理装置800还包括共识验证模块870,用于接收其他区块链节点返回的投票结果,当投票结果中赞成票的占比高于第四阈值时,共识验证结果表明所述第二模型系数优于所述第一模型系数。
在本公开的一个实施例中,上述基于区块链的数据处理装置800还包括修正模块880,用于接收其他区块链节点广播的与所述其他区块链节点对应的第二模型系数;当共识验证结果表明与本区块链节点对应的第二模型系数不优于第一模型系数时,基于所述与其他区块链节点对应的第二模型系数,将与本区块链节点对应的第二模型系数修正为第三模型系数;以及,基于所述第三模型系数和本地数据集,训练得到与本区块链节点对应的更新的第二模型系数。
在本公开的一个实施例中,上述基于区块链的数据处理装置800还包括奖励模块890,用于在区块链更新模块850在区块链中创建包含更新的第一模型系数的新的区块之后,在本区块链节点的账户中增加第一数值。
图9示意性示出了根据本公开另一实施例的基于区块链的数据处理装置的框图,该基于区块链的数据处理装置900可以应用于区块链网络中的任一区块链节点,图9所示的装置在区块链节点作为投票方时发挥作用。
如图9所示,该基于区块链的数据处理装置900包括接收模块910、共识验证模块920和区块链更新模块930。
接收模块910用于接收其他区块链节点广播的第二模型系数。其中,所述第二模型系数基于所述其他区块链节点的本地数据集和区块链上当前最新区块中的第一模型系数训练得到,且所述第二模型系数基于所述其他区块链节点的本地测试集测试得到的第一测试结果符合第一预设条件。共识验证模块920用于与其他接收到所述第二模型系数的区块链节点一同对所述第二模型系数进行共识验证。以及,区块链更新模块930用于当共识验证结果表明所述第二模型系数优于所述第一模型系数时,响应于广播所述第二模型系数的区块链节点创建新的区块的操作,将所述新的区块加入至本区块链节点对应的区块链中。
图10示意性示出了根据本公开另一实施例的基于区块链的数据处理装置的框图,该基于区块链的数据处理装置1000可以应用于区块链网络中的任一区块链节点,图10所示的装置在区块链节点作为投票方时发挥作用。
如图10所示,该基于区块链的数据处理装置1000包括接收模块1010、共识验证模块1020和区块链更新模块1030。模块1010~模块1030分别具有与模块910~模块930对应相同的功能,重复的部分在此不再赘述。
可选地,共识验证模块1020包括测试子模块1021和投票子模块1022。
测试子模块1021用于基于本地测试集对与所述第二模型系数对应的模型进行测试,得到第二测试结果。投票子模块1022用于当第二测试结果符合第二预设条件时发出赞成票,当第二测试结果不符合第二预设条件时发出反对票。其中,当与其他接收到所述第二模型系数的区块链节点发出的投票结果中赞成票的占比高于第四阈值时,共识验证结果表明所述第二模型系数优于所述第一模型系数。
上述基于区块链的数据处理装置1000还包括调整模块1040,用于基于本区块链节点发出的至少一个投票结果,对所述第二预设条件进行调整。
在本公开的一个实施例中,第二测试结果包括第二测试分数。第二预设条件包括:第二测试分数高于基于本区块链节点的本地测试集测试得到的与所述第一模型系数对应的测试分数,或者,所述第二测试分数高于本地投票阈值。调整模块1040包括第一调节子模块1041和第二调节子模块1042,第一调节子模块1041用于在第三预设时间段内本区块链节点连续发出的赞成票的数量高于第五阈值时,提高所述本地投票阈值。第二调节子模块1042用于在第四预设时间段内本区块链节点连续发出的反对票的数量高于第六阈值时,降低所述本地投票阈值。
需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块810、训练模块820、测试模块830、广播模块840、区块链更新模块850、调整模块860、共识验证模块870、修正模块880和奖励模块890中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块810、训练模块820、测试模块830、广播模块840、区块链更新模块850、调整模块860、共识验证模块870、修正模块880和奖励模块890中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块810、训练模块820、测试模块830、广播模块840、区块链更新模块850、调整模块860、共识验证模块870、修正模块880和奖励模块890中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
又例如,接收模块1010、共识验证模块1020、区块链更新模块1030和调整模块1040中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,接收模块1010、共识验证模块1020、区块链更新模块1030和调整模块1040中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,接收模块1010、共识验证模块1020、区块链更新模块1030和调整模块1040中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图11示意性示出了根据本公开的实施例的适于实现上文描述的方法的计算机***的框图。图11示出的计算机***仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图11所示,计算机***1100包括处理器1110和计算机可读存储介质1120。该计算机***1100可以执行根据本公开实施例的方法。
具体地,处理器1110例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1110还可以包括用于缓存用途的板载存储器。处理器1110可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质1120,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质1120可以包括计算机程序1121,该计算机程序1121可以包括代码/计算机可执行指令,其在由处理器1110执行时使得处理器1110执行根据本公开实施例的方法或其任何变形。
计算机程序1121可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序1121中的代码可以包括一个或多个程序模块,例如包括1121A、模块1121B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器1110执行时,使得处理器1110可以执行根据本公开实施例的方法或其任何变形。
根据本公开的实施例,获取模块810、训练模块820、测试模块830、广播模块840、区块链更新模块850、调整模块860、共识验证模块870、修正模块880和奖励模块890中的至少一个可以实现为参考图11描述的计算机程序模块,其在被处理器1110执行时,可以实现上文所述的基于区块链的数据处理方法。
根据本公开的实施例,接收模块1010、共识验证模块1020、区块链更新模块1030和调整模块1040中的至少一个可以实现为参考图11描述的计算机程序模块,其在被处理器1110执行时,可以实现上文所述的基于区块链的数据处理方法。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (10)
1.一种基于区块链的数据处理方法,应用于区块链节点,包括:
获取区块链上当前最新区块中的第一模型系数;
基于所述第一模型系数和本地数据集,训练得到与本区块链节点对应的第二模型系数;
基于本地测试集对所述第二模型系数进行测试,得到第一测试结果;
当第一测试结果符合第一预设条件时,将所述第二模型系数广播至其他区块链节点,由其他区块链节点对所述第二模型系数进行共识验证;
当共识验证结果表明所述第二模型系数优于所述第一模型系数时,将所述第二模型系数作为更新的第一模型系数,在区块链中创建包含所述更新的第一模型系数的新的区块;以及
基于与本区块链节点对应的至少一个第二模型系数的第一测试结果和/或共识验证结果,对所述第一预设条件进行调整。
2.根据权利要求1所述的方法,其中:
所述基于本地测试集对所述第二模型系数进行测试,得到第一测试结果包括:基于本地测试集对与所述第二模型系数对应的模型进行测试,得到第一测试分数;
所述第一预设条件包括:所述第一测试分数高于基于本区块链节点的本地测试集测试得到的与所述第一模型系数对应的测试分数,或者,所述第一测试分数高于本地测试阈值;
所述基于与本区块链节点对应的至少一个第二模型系数的第一测试结果和/或共识验证结果,对所述第一预设条件进行调整包括:
对于第一预设时间段内所得到的与本区块链节点对应的各第二模型系数的第一测试结果,如果符合第一预设条件的第一测试结果的占比低于第一阈值,降低所述本地测试阈值,如果符合第一预设条件的第一测试结果的占比高于第二阈值,提高所述本地测试阈值;以及
对于第二预设时间段内所得到的与本区块链节点对应的各第二模型系数的共识验证结果,如果表明所述第二模型系数优于所述第一模型系数的共识验证结果的占比低于第三阈值,提高所述本地测试阈值。
3.根据权利要求1所述的方法,其中:
由其他区块链节点对所述第二模型系数进行共识验证包括:由其他区块链节点基于各自的本地测试集对与所述第二模型系数对应的模型分别进行测试,并根据测试结果返回投票结果;
所述方法还包括:接收其他区块链节点返回的投票结果,当投票结果中赞成票的占比高于第四阈值时,共识验证结果表明所述第二模型系数优于所述第一模型系数。
4.根据权利要求1所述的方法,还包括:
接收其他区块链节点广播的与所述其他区块链节点对应的第二模型系数;
当共识验证结果表明与本区块链节点对应的第二模型系数不优于第一模型系数时,基于所述与其他区块链节点对应的第二模型系数,将与本区块链节点对应的第二模型系数修正为第三模型系数;以及
基于所述第三模型系数和本地数据集,训练得到与本区块链节点对应的更新的第二模型系数。
5.根据权利要求1所述的方法,其中,在所述在区块链中创建包含所述更新的第一模型系数的新的区块之后,所述方法还包括:
在本区块链节点的账户中增加第一数值。
6.一种基于区块链的数据处理方法,应用于区块链节点,包括:
接收其他区块链节点广播的第二模型系数,其中,所述第二模型系数基于所述其他区块链节点的本地数据集和区块链上当前最新区块中的第一模型系数训练得到,且所述第二模型系数基于所述其他区块链节点的本地测试集测试得到的第一测试结果符合第一预设条件;
与其他接收到所述第二模型系数的区块链节点一同对所述第二模型系数进行共识验证;以及
当共识验证结果表明所述第二模型系数优于所述第一模型系数时,响应于广播所述第二模型系数的区块链节点创建新的区块的操作,将所述新的区块加入至本区块链节点对应的区块链中。
7.根据权利要求6所述的方法,其中:
所述与其他接收到所述第二模型系数的区块链节点一同对所述第二模型系数进行共识验证包括:
基于本地测试集对与所述第二模型系数对应的模型进行测试,得到第二测试结果;
当第二测试结果符合第二预设条件时发出赞成票,当第二测试结果不符合第二预设条件时发出反对票;以及
当与其他接收到所述第二模型系数的区块链节点发出的投票结果中赞成票的占比高于第四阈值时,共识验证结果表明所述第二模型系数优于所述第一模型系数;
所述方法还包括:基于本区块链节点发出的至少一个投票结果,对所述第二预设条件进行调整。
8.根据权利要求7所述的方法,其中:
所述第二测试结果包括第二测试分数;
所述第二预设条件包括:所述第二测试分数高于基于本区块链节点的本地测试集测试得到的与所述第一模型系数对应的测试分数,或者,所述第二测试分数高于本地投票阈值;
所述基于本区块链节点发出的至少一个投票结果,对所述第二预设条件进行调整包括:
如果第三预设时间段内本区块链节点连续发出的赞成票的数量高于第五阈值,提高所述本地投票阈值;以及
如果第四预设时间段内本区块链节点连续发出的反对票的数量高于第六阈值,降低所述本地投票阈值。
9.一种基于区块链的数据处理装置,应用于区块链节点,包括:
获取模块,用于获取区块链上当前最新区块中的第一模型系数;
训练模块,用于基于所述第一模型系数和本地数据集,训练得到与本区块链节点对应的第二模型系数;
测试模块,用于基于本地测试集对所述第二模型系数进行测试,得到第一测试结果;
广播模块,用于当第一测试结果符合第一预设条件时,将所述第二模型系数广播至其他区块链节点,由其他区块链节点对所述第二模型系数进行共识验证;
区块链更新模块,用于当共识验证结果表明所述第二模型系数优于所述第一模型系数时,将所述第二模型系数作为更新的第一模型系数,在区块链中创建包含所述更新的第一模型系数的新的区块;以及
调整模块,用于基于与本区块链节点对应的至少一个第二模型系数的第一测试结果和/或共识验证结果,对所述第一预设条件进行调整。
10.一种基于区块链的数据处理装置,应用于区块链节点,包括:
接收模块,用于接收其他区块链节点广播的第二模型系数,其中,所述第二模型系数基于所述其他区块链节点的本地数据集和区块链上当前最新区块中的第一模型系数训练得到,且所述第二模型系数基于所述其他区块链节点的本地测试集测试得到的第一测试结果符合第一预设条件;
共识验证模块,用于与其他接收到所述第二模型系数的区块链节点一同对所述第二模型系数进行共识验证;以及
区块链更新模块,用于当共识验证结果表明所述第二模型系数优于所述第一模型系数时,响应于广播所述第二模型系数的区块链节点创建新的区块的操作,将所述新的区块加入至本区块链节点对应的区块链中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910584015.XA CN110321385B (zh) | 2019-06-28 | 2019-06-28 | 基于区块链的数据处理方法和数据处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910584015.XA CN110321385B (zh) | 2019-06-28 | 2019-06-28 | 基于区块链的数据处理方法和数据处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110321385A true CN110321385A (zh) | 2019-10-11 |
CN110321385B CN110321385B (zh) | 2021-12-24 |
Family
ID=68121514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910584015.XA Active CN110321385B (zh) | 2019-06-28 | 2019-06-28 | 基于区块链的数据处理方法和数据处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110321385B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110879827A (zh) * | 2019-10-23 | 2020-03-13 | 联想(北京)有限公司 | 一种基于区块链网络的信息处理方法及设备 |
CN112418433A (zh) * | 2020-10-30 | 2021-02-26 | 联想(北京)有限公司 | 一种模型训练方法、装置及设备 |
CN113239635A (zh) * | 2021-06-16 | 2021-08-10 | 中国银行股份有限公司 | 一种模型评价方法及装置 |
EP4075348A1 (en) * | 2021-04-14 | 2022-10-19 | Siemens Aktiengesellschaft | Quality control of a machine learning model |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107590738A (zh) * | 2017-08-24 | 2018-01-16 | 阿里巴巴集团控股有限公司 | 选择共识节点的处理方法、装置及服务器 |
US20180101560A1 (en) * | 2016-10-07 | 2018-04-12 | International Business Machines Corporation | Establishing overlay trust consensus for blockchain trust validation system |
CN108229943A (zh) * | 2018-01-19 | 2018-06-29 | 阿里巴巴集团控股有限公司 | 区块链余额的调整方法及装置、电子设备 |
CN108491266A (zh) * | 2018-03-09 | 2018-09-04 | 联想(北京)有限公司 | 基于区块链的数据处理方法、装置及电子设备 |
CN109088722A (zh) * | 2018-10-08 | 2018-12-25 | 深圳投时科技有限公司 | 区块链节点演进方法及区块链节点 |
CN109194508A (zh) * | 2018-08-27 | 2019-01-11 | 联想(北京)有限公司 | 基于区块链的数据处理方法和装置 |
CN109194510A (zh) * | 2018-08-27 | 2019-01-11 | 联想(北京)有限公司 | 基于区块链的数据处理方法和装置 |
CN109672202A (zh) * | 2018-12-24 | 2019-04-23 | 浙江工业大学 | 一种基于区块链技术的储能***自动需求响应方法 |
US20190123580A1 (en) * | 2017-10-23 | 2019-04-25 | Sigora International Inc. | Management of a power-distribution system |
US20190182254A1 (en) * | 2017-12-07 | 2019-06-13 | International Business Machines Corporation | Enforcing compute equity models in distributed blockchain |
-
2019
- 2019-06-28 CN CN201910584015.XA patent/CN110321385B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180101560A1 (en) * | 2016-10-07 | 2018-04-12 | International Business Machines Corporation | Establishing overlay trust consensus for blockchain trust validation system |
CN107590738A (zh) * | 2017-08-24 | 2018-01-16 | 阿里巴巴集团控股有限公司 | 选择共识节点的处理方法、装置及服务器 |
US20190123580A1 (en) * | 2017-10-23 | 2019-04-25 | Sigora International Inc. | Management of a power-distribution system |
US20190182254A1 (en) * | 2017-12-07 | 2019-06-13 | International Business Machines Corporation | Enforcing compute equity models in distributed blockchain |
CN108229943A (zh) * | 2018-01-19 | 2018-06-29 | 阿里巴巴集团控股有限公司 | 区块链余额的调整方法及装置、电子设备 |
CN108491266A (zh) * | 2018-03-09 | 2018-09-04 | 联想(北京)有限公司 | 基于区块链的数据处理方法、装置及电子设备 |
CN109194508A (zh) * | 2018-08-27 | 2019-01-11 | 联想(北京)有限公司 | 基于区块链的数据处理方法和装置 |
CN109194510A (zh) * | 2018-08-27 | 2019-01-11 | 联想(北京)有限公司 | 基于区块链的数据处理方法和装置 |
CN109088722A (zh) * | 2018-10-08 | 2018-12-25 | 深圳投时科技有限公司 | 区块链节点演进方法及区块链节点 |
CN109672202A (zh) * | 2018-12-24 | 2019-04-23 | 浙江工业大学 | 一种基于区块链技术的储能***自动需求响应方法 |
Non-Patent Citations (1)
Title |
---|
王醒等: "基于信誉值创建数字资产的区块链***", 《信息网络安全》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110879827A (zh) * | 2019-10-23 | 2020-03-13 | 联想(北京)有限公司 | 一种基于区块链网络的信息处理方法及设备 |
CN110879827B (zh) * | 2019-10-23 | 2023-07-25 | 联想(北京)有限公司 | 一种基于区块链网络的信息处理方法及设备 |
CN112418433A (zh) * | 2020-10-30 | 2021-02-26 | 联想(北京)有限公司 | 一种模型训练方法、装置及设备 |
EP4075348A1 (en) * | 2021-04-14 | 2022-10-19 | Siemens Aktiengesellschaft | Quality control of a machine learning model |
CN113239635A (zh) * | 2021-06-16 | 2021-08-10 | 中国银行股份有限公司 | 一种模型评价方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110321385B (zh) | 2021-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110321385A (zh) | 基于区块链的数据处理方法和数据处理装置 | |
Pique et al. | Triple Helix and the evolution of ecosystems of innovation: the case of Silicon Valley | |
US11334817B2 (en) | Blockchain-based data processing method, apparatus, and electronic device thereof | |
Fonseca et al. | A matheuristic for transfer synchronization through integrated timetabling and vehicle scheduling | |
CN109194508A (zh) | 基于区块链的数据处理方法和装置 | |
Zhong et al. | A differential evolution algorithm with dual populations for solving periodic railway timetable scheduling problem | |
US10965466B2 (en) | Estimable proof-of-work for blockchain | |
CN109194510A (zh) | 基于区块链的数据处理方法和装置 | |
Li et al. | Calibrating cellular automata based on landscape metrics by using genetic algorithms | |
Aziz et al. | Smart optimization for mega construction projects using artificial intelligence | |
Alonso et al. | Modelling land use and transport policies to measure their contribution to urban challenges: The case of Madrid | |
CN109344959A (zh) | 神经网络训练方法、神经网络***和计算机*** | |
CN108090788A (zh) | 基于时间信息集成模型的广告转化率预估方法 | |
Chondrodima et al. | Particle swarm optimization and RBF neural networks for public transport arrival time prediction using GTFS data | |
CN109508807A (zh) | 彩票用户活跃度预测方法、***及终端设备、存储介质 | |
Geertman et al. | Spatial‐temporal specific neighbourhood rules for cellular automata land‐use modelling | |
Nesmachnow et al. | Exact and evolutionary algorithms for synchronization of public transportation timetables considering extended transfer zones | |
CN115081920A (zh) | 考勤签到调度管理方法、***、设备及存储介质 | |
Salazar et al. | Fair-fate: Fair federated learning with momentum | |
CN110503320A (zh) | 疫苗资源配置方法、装置及存储介质 | |
Rodriguez-Lopez et al. | Technological and social networks of a pastoralist artificial society: Agent-based modeling of mobility patterns | |
Giupponi et al. | Integrated modelling of social-ecological systems for climate change adaptation | |
Markofsky et al. | Use Cases and Methods of Virtual ADAS/ADS Calibration in Simulation | |
Easterling et al. | Emergent properties of scale in global environmental modeling-are there any? | |
Bar-Massada | Immigration rates and species niche characteristics affect the relationship between species richness and habitat heterogeneity in modeled meta-communities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |