CN111639368A - 一种基于区块链的增量学习分布式计算方法、系统和节点 - Google Patents
一种基于区块链的增量学习分布式计算方法、系统和节点 Download PDFInfo
- Publication number
- CN111639368A CN111639368A CN202010492253.0A CN202010492253A CN111639368A CN 111639368 A CN111639368 A CN 111639368A CN 202010492253 A CN202010492253 A CN 202010492253A CN 111639368 A CN111639368 A CN 111639368A
- Authority
- CN
- China
- Prior art keywords
- block chain
- data
- model
- model training
- migration
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种区块链的技术领域,揭露了一种基于区块链的增量学习分布式计算方法,包括:数据采集装置对用户数据进行采集;服务器发起基于增量学习的模型训练请求,将用户数据基于数据并行优化策略划分为多个子数据集;任务分配服务器基于多层并行模型训练方法,将模型训练内容划分为多个模型训练任务计算层,并将模型训练任务计算层发布到区块链中;各区块链节点接收任务分配服务器发布的多个模型训练任务计算层,基于区块链投票规则进行模型的训练;区块链根据所划分的任务计算层级顺序,将各区块链节点中所存储的模型训练结果组合为最终计算结果。本发明还提出一种增量学习分布式计算系统以及一种区块链节点。本发明实现了增量学习的计算。
Description
技术领域
本发明涉及区块链的技术领域,尤其涉及一种基于区块链的增量学习分布式计算方法、系统和节点。
背景技术
随着互联网、物联网等科学技术的迅速发展,人类产生数据的速度急剧增长。大量的商业决策、生产活动都依赖于数据,通过一定的手段从这些数据当中挖掘所需要的信息是当今研究的热门课题。机器学习是利用数据价值的关键技术,通过对海量已知案例数据的学习,机器学习能从中找出人类难以发现的规律,实现对未来的预测。
传统的机器学习计算中,为了对用户数据进行价值发掘,企业或机构需要收集、存储、处理海量用户数据信息,并在中心化封闭的数据平台进行算法的执行,这对模型需求方的计算、存储能力提出了较高的要求,同时由于信息产生、更新的速度进一步加快,训练完成所得的模型无法有效整合新的增量数据信息,从而面临模型泛化能力逐渐下降的风险。
同时对于数据生产者的用户而言,个人信息被大量采集使用,除了需要承受隐私数据被恶意采用的风险,其个人数据当中所蕴含的信息红利全部被企业或机构所获取,用户无法从中获取任何收益。
鉴于此,在避免模型泛化能力下降以及用户无法控制个人数据价值的流转的同时,如何提高机器学习模型的计算能力,有效减少中心化服务端的压力,成为本领域技术人员亟待解决的问题。
发明内容
本发明提供一种基于区块链的增量学习分布式计算方法、系统和节点,通过利用分布式计算技术来提高机器学习内容的计算速度,同时采用区块链与增量学习相结合的方式,能有效解决传统机器学习算法中的模型泛化能力下降以及用户无法控制个人数据价值的流转的问题,同时有效减少中心化服务端的压力。
为实现上述目的,本发明提供的一种基于区块链的增量学习分布式计算方法,包括:
数据采集装置接收用户发起的数据采集请求,并对用户数据进行采集,同时将采集到的数据存放到存储器中,存储器在收到用户数据后,服务器基于椭圆曲线数字签名算法为用户生成私钥和公钥,并将公钥广播至各个区块链节点;
所述服务器发起基于增量学习的模型训练请求,用户接受所述模型训练请求后,服务器将用户数据基于数据并行优化策略划分为多个子数据集,并将各子数据集使用私钥进行签名,同时将所述子数据集分别发布到各个区块链中;
各区块链节点利用公钥对子数据集的消息签名进行验证,签名正确则将所述子数据集写入区块链节点中,并基于默尔克树对子数据集进行存储,反之则丢弃;
任务分配服务器基于多层并行模型训练方法,将模型训练内容划分为多个模型训练任务计算层,并将模型训练任务计算层发布到区块链中;
各区块链节点接收任务分配服务器发布的多个模型训练任务计算层,根据所提出的一种动态数据迁移策略对所述区块链节点所存储的子数据集进行数据迁移,并基于区块链投票规则进行各区块链节点间模型的训练;
区块链节点将模型训练结果使用区块链单链进行存储,区块链根据增量学习模型训练内容所划分的层级顺序,将各区块链节点中所存储的模型训练结果进行组合,所组合得到的模型即为最终模型训练结果。
可选地,所述椭圆曲线数字签名算法为:
选取一个大于3的素数p,在有限域Ep上随机选取一条椭圆曲线Ep(a,b):y2=x3+ax+b,其中a,b满足(4a3+27b2)mod p≠0,取Ep(a,b)的一个生成元G,Ep(a,b)和G作为公开参数,服务器随机为用户选取d作为私钥,并计算Q=dG,将Q作为用户的公钥。
可选地,所述将用户数据基于数据并行优化策略划分为多个子数据集,并将各子数据集使用私钥进行签名,包括:
将样本数据进行随机打乱,并使用ShuffleSplit迭代器进行指定子数据集中样本数量的划分,从而将用户数据均分为多个样本数量相同的子数据集;
对多个子数据集进行编码命名,利用用户私钥对多个子数据集进行签名,并将所述子数据集分别发布到各个区块链中,所述利用用户私钥对多个子数据集进行签名的具体方法为:
(1)随机选择一个整数k;
(4)计算第i个子数据集编码值mi的哈希值H(mi),将得到的比特串转化为整数ei;
(5)计算si=k-1(ei+dri)mod n,若si=0,则转(1);
(6)(ri,si)为服务器对第i个数据集的签名;
其中:
G为椭圆曲线Ep(a,b)的一个生成元;
n为划分得到子数据集的个数;
d为用户私钥。
可选地,所述利用公钥对子数据集的消息签名进行验证的具体方法为:
(1)验证ri,si是[1,n-1]之间的整数;
(2)计算第i个子数据集H(mi)并将其转换为整数ei;
(4)计算u1=eiwi mod n,u2=riwi mod n;
(5)计算X=u1G+u2Q;
(7)当且仅当vi=ri时,签名通过验证;
其中:
G为椭圆曲线Ep(a,b)的一个生成元;
n为划分得到子数据集的个数;
d为用户公钥。
可选地,所述基于多层并行模型训练方法,将模型训练内容划分为多个模型训练任务计算层,包括:
根据数据的m个特征变量分为M个TGR任务层(TGR1.1~TGR1.M),这些TGR任务层负责计算相应特征变量的信息熵、自分解信息、信息增益以及信息增益率等;
划分出TNS任务层(TNS1~TNSM),TNS任务层根据M个TGR任务层的计算结果,负责找到所述增量学习模型的最佳分裂特征,并分裂当前增量学习模型的一个树节点,在树节点分裂后,TNS任务层的中间结果被发送到TN计算层,所述TN计算层并行计算所述增量学习模型的下一级分裂点。
可选地,所述根据所提出的一种动态数据迁移策略对所述区块链节点所存储的子数据集进行数据迁移,并基于区块链投票规则进行各区块链节点间模型的训练,包括:
由于区块链节点中各模型的训练进度不同,对于增量学习初始模型h0,在时刻t-1时所存在的最新模型表示为ht-1,所有区块链节点均有权查验当前最新模型ht-1的模型参数,然后分别利用所存储的子数据集进行模型的更新,且在数据更新过程中基于本发明所提出的动态数据迁移策略,在不同的区块链节点间进行数据迁移处理,详细地,已完成模型训练的区块链节点接收未完成模型训练区块链节点所发送的迁移数据,由于所有区块链节点共享所有信息,已完成模型训练的区块链节点根据所接收的迁移学习进行部分模型训练,并将模型训练结果发送给上述未完成模型训练的区块链节点;
区块链节点分别将更新模型的参数打包上传至数据池中,各个节点对其他节点的模型进行投票,投票票数最高的节点模型即为共识模型,以完成更新,同时由于该区块链节点作为t时刻的模型更新者,利用自身数据对模型训练做出了贡献,基于智能合约,数据价值转移到了模型需求方,所以智能合约的执行结果为其余区块链节点支付费用S给当前区块链节点,用户也因此获得一定收益,且其余区块链节点继续进行模型的更新投票,直到所有区块链节点中的模型完成训练;
所述投票规则为:
其中:
XA为区块链节点A中所存储的子数据集;
yA为在区块链节点A中,增量学习模型目标函数值;
可选地,所述动态迁移数据策略为:
1)实时计算每个区块链节点需要迁移的样本数量,并将ΔNk={Δn1,...Δnm}表示为所有区块链节点上的迁移数据数量的集合,Δnj<0表示需要迁入的样本数量,Δnj>0表示需要迁出的样本数量,所述迁移数据数量的计算公式为:
其中:
nj为区块链节点j中的样本数量;
2)计算在数据迁移之后,各区块链节点新的模型训练时间:
因此,整个区块链在执行数据迁移前后的训练时间标准差为:
同时本发明定义区块链的工作负载均衡为:
其中:
其中:
M为整个区块链节点增量学习模型训练过程中,需要进行动态数据迁移操作的次数;
cm为两个区块链节点间迁移一个数据样本的通信成本;
Δni为区块链节点i需要进行数据迁移的样本数量;
4)根据上述制定的数据迁移策略,查找具有最佳迁移匹配的区块链节点进行数据迁移,所述最佳迁移匹配节点的迁移数据量为min(nin,nout),其中:
|nin|≈|nout|
其中:
nin为进行数据迁入的区块链节点Lin所需迁入的样本数量;
nout为进行数据迁出的区块链节点Lout所需迁出的样本数量;
同时分别查找具有max(nin)和max(|nout|)的节点,当max(nin)>max(|nout|),则将|nout|个样本数量从Lout区块链节点迁移到Lin区块链节点;当max(nin)<max(|nout|),则将|nin|个样本数量从Lout区块链节点迁移到Lin区块链节点,并继续为Lout区块链节点找到其他匹配的区块链迁入节点。
此外,为实现上述目的,本发明还提供一种区块链节点,所述节点包括:
信息接收单元,用于接收子数据集和模型训练任务计算层;
内容存储单元,用于对所接收的信息以及增量学习模型的计算结果进行存储;
模型计算单元,用于根据所接收到子数据集合模型训练任务计算层,基于区块链投票规则进行增量学习模型的计算;
结果组合单元,用于根据增量学习训练内容所划分的层级顺序,将各区块链节点中所存储的模型训练结果进行组合。
此外,为实现上述目的,本发明还提供一种基于区块链的增量学习分布式计算系统,所述系统包括:
多个所述区块链节点;
数据采集装置,用于接收用户发起的数据采集请求,并对用户数据进行采集;
存储器,用于对采集到的用户数据进行存储;
服务器,用于发起基于增量学习的模型训练请求,并椭圆曲线数字签名算法为用户生成私钥和公钥;
任务分配处理器,用于基于多层并行模型训练方法,将模型训练内容划分为多个模型训练任务计算层,并将模型训练任务计算层发布到区块链中。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有增量学习分布式计算程序指令,所述增量学习分布式计算程序指令可被一个或者多个处理器执行,以实现如上所述的基于区块链的增量学习分布式计算方法的步骤。
本发明所述增量学习算法是指在给定数据流上学习所得到的一系列模型的算法,其中hi模型仅取决于hi-1和最近的几个实例,因此所述增量学习算法能在资源有限的设备上进行无尽学习,同时保留了模型学习过程中已经学到的“知识”,不会出现灾难性遗忘,相较于传统机器学习算法,对模型训练设备的要求不高。
相对于现有技术,本发明提出一种基于区块链的增量学习分布式计算方法、系统和节点,该技术具有以下优势:
首先,现有增量学习技术过于依赖硬件资源,在不同的硬件环境下,同一种增量学习算法会表现出具有较大差异的算法准确率和算法执行时间,因此本发明采用区块链中去中心化的思想,对增量学习模型训练所需的数据使用多个区块链节点进行存储,并在区块链节点中进行增量学习模型的训练,由于任意区块链节点的权利和义务都是均等的,因此基于区块链技术的增量学习算法将极大减少了硬件资源对增量学习算法的影响;
但是在区块链公有链中,每一个区块链节点都能获得完整的数据备份,当数据量过于巨大的时候,区块链将会产生性能不足的问题,如需要寻找区块链节点中的某一个样本数据时,该区块链节点会先导出所有的历史样本数据进行遍历,鉴于此,本发明基于数据并行优化策略将总数据集均分为多个子数据集,每个子数据集有相似的样本数据分布,分别存储在不同的区块链节点中,同时为加快区块链中增量学习算法模型的训练速度,以缓解区块链节点的服务压力,本发明依据数据的m个特征变量划分m个TGR任务层(TGR1.1~TGR1.m),这些TGR任务层负责计算相应特征变量的信息熵、自分解信息、信息增益以及信息增益率等,且同时划分出增量学习任务计算层(TNS1~TNSM),所述增量学习任务计算层将增量学习中的计算任务按照任务进度进行划分,得到若干增量学习子计算任务,每个子计算任务在各自区块链节点中进行模型的训练更新,对每个区块链节点中更新得到的参数,依据本发明所提出的基于0-1损失函数的投票机制进行投票,当所述0-1损失函数值为0时,则说明可以正确预测,此时为所更新的模型参数投票,反之则不投票,并认为获得票数最多的模型参数得到其他区块链节点的共识,该区块链节点则因此完成增量学习模型子计算任务,其他区块链节点则继续进行模型的训练更新以及投票过程,直到所有区块链节点完成模型的训练,并将所得模型参数按照任务进行组合,得到最终的增量学习模型训练结果;例如,对于在线随机森林增量模型,TNS任务层根据m个TGR任务层的计算结果,负责找到所述在线随机森林增量模型的最佳分裂特征,并分裂当前在线随机森林增量模型的一个树节点,在树节点分裂后,TNS任务层的中间结果被发送到TN计算层,所述TN计算层并行计算所述在线随机森林增量模型的下一级分裂点,同时选取除分裂特征外的其他特征,构成其他特征子集,并根据TNS任务层的中间结果为其他特征子集生成新的TGR任务层,通过重复该步骤,直到无法选取特征,并将所有已分裂的树节点进行组合,以得到最终的在线随机森林增量模型,由于区块链的去中心化思想,各区块链节点不存在运算资源不足的问题,因此相较于现有技术,能极大加快学习算法模型的训练速度,从而减少区块链的服务压力;
且针对各区块链节点完成模型训练任务速度不同,为保证各区块链节点在任意时刻都在进行模型训练,本发明提出了一种区块链间的动态数据迁移策略,通过实时计算每个区块链节点需要迁移的样本数量,从而得到整个区块链的动态数据迁移策略ΔNk={Δn1,...Δnm},Δnj<0表示需要迁入的样本数量,Δnj>0表示需要迁出的样本数量,同时根据所得动态数据迁移策略,计算整个区块链在执行数据迁移前后的训练时间标准差σT,并定义区块链的工作负载均衡为
本发明令θB为工作负载的阈值,一般设置为0.8,当时,说明所述区块链并未达到工作负载均衡,并需要进行数据迁移操作,详细地,详细地,已完成模型训练的区块链节点接收未完成模型训练区块链节点所发送的迁移数据,由于所有区块链节点共享所有信息,已完成模型训练的区块链节点根据所接收的迁移学习进行部分模型训练,并将模型训练结果发送给上述未完成模型训练的区块链节点;
由于现有数据迁移技术并未考虑到数据迁移过程中带来的通信成本问题,本发明通过建立一个动态数据迁移通信成本模型其中M为整个区块链节点增量学习模型训练过程中,需要进行动态数据迁移操作的次数,为第k次迁移中,迁出数据的区块链集合,cm为两个区块链节点间迁移一个数据样本的通信成本,Δni为区块链节点i需要进行数据迁移的样本数量,从而在的情况下,首选具有最小数据迁移通信成本的策略ΔNk。
附图说明
图1为本发明一实施例提供的一种基于区块链的增量学习分布式计算方法的流程示意图;
图2为本发明一实施例提供的基于区块链的增量学习分布式计算系统的内部结构示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在避免模型泛化能力下降以及用户无法控制个人数据价值的流转的同时,如何提高机器学习模型的计算能力,有效减少中心化服务端的压力,本发明提供一种基于区块链的增量学习分布式计算方法、系统和节点。参照图1所示,为本发明一实施例提供的基于区块链的增量学习分布式计算方法、系统和节点的流程示意图。
在本实施例中,基于区块链的增量学习分布式计算方法包括:
S1、数据采集装置接收用户发起的数据采集请求,并对用户数据进行采集,同时将采集到的数据存放到存储器中,存储器在收到用户数据后,服务器基于椭圆曲线数字签名算法为用户生成私钥和公钥,并将公钥广播至各个区块链节点。
本发明所述数据采集装置接收用户发起的数据采集请求,从而对用户数据进行采集,同时将所采集到的数据存放到存储器中;
进一步地,所述存储器在收到用户数据后,服务器基于椭圆曲线数字签名算法为用户生成私钥和公钥,在本发明实施例中,所述私钥d和公钥Q的生成方式如下:
选取一个大于3的素数p,在有限域Ep上随机选取一条椭圆曲线Ep(a,b):y2=x3+ax+b,其中a,b满足(4a3+27b2)mod p≠0,取Ep(a,b)的一个生成元G,Ep(a,b)和G作为公开参数,服务器随机为用户选取d作为私钥,并计算Q=dG,将Q作为用户的公钥。
所述基于椭圆曲线数字签名算法生成的私钥仅有用户可以掌握,所述公钥被服务器广播至各个区块链节点,区块链节点接收用户的公钥,并将其存储在有效地址列表中以备查验用户签名的信息。
S2、所述服务器发起基于增量学习的模型训练请求,用户接受所述模型训练请求后,服务器将用户数据基于数据并行优化策略划分为多个子数据集,并将各子数据集使用私钥进行签名,同时将所述子数据集分别发布到各个区块链中。
进一步地,所述服务器发起基于增量学习的模型训练请求,用户接受所述模型训练请求后,服务器基于数据并行优化策略对数据进行划分,从而将用户数据划分为多个子数据集,以减少区块链分布式环境中的数据通信开销,所述数据并行优化策略如下所述:
假设用户数据X的大小为N,并且每条样本记录中都有M个特征变量和一个模型目标变量,即y1~yM为输入特征变量,yA为模型目标变量,在本发明所述数据并行优化策略中,对于用户数据X,本发明将样本数据进行随机打乱,并使用ShuffleSplit迭代器进行指定子数据集中样本数量的划分,如可将用户数据X均分为n个样本数量相同的子数据集。
通过采用上述数据并行优化策略,所述用户数据可以根据特征变量划分为多个子数据集,且各个数据集在模型训练中不存在数据依赖和通信关系。
进一步地,所述服务器对多个子数据集进行编码命名,利用用户私钥对多个子数据集进行签名,并将所述子数据集分别发布到各个区块链中,所述利用用户私钥对多个子数据集进行签名的具体方法为:
(1)随机选择一个整数k;
(4)计算第i个子数据集编码值mi的哈希值H(mi),将得到的比特串转化为整数ei;
(5)计算si=k-1(ei+dri)mod n,若si=0,则转(1);
(6)(ri,si)为服务器对第i个数据集的签名。
其中:
G为椭圆曲线Ep(a,b)的一个生成元;
n为划分得到子数据集的个数;
d为用户私钥。
S3、各区块链节点利用公钥对子数据集的消息签名进行验证,签名正确则将所述子数据集写入区块链节点中,并基于默尔克树对子数据集进行存储,反之则丢弃。
各区块链节点利用上述所得公钥对子数据集的消息签名进行验证,所述对签名进行验证的具体方法:
(1)验证ri,si是[1,n-1]之间的整数;
(2)计算第i个子数据集H(mi)并将其转换为整数ei;
(4)计算u1=eiwi mod n,u2=riwi mod n;
(5)计算X=u1G+u2Q;
(7)当且仅当vi=ri时,签名通过验证。
其中:
G为椭圆曲线Ep(a,b)的一个生成元;
n为划分得到子数据集的个数;
d为用户公钥。
对于签名验证正确的子数据集,所述区块链节点则将该数据集写入未存储数据的区块链节点中,基于默克尔树结构对子数据集进行存储,并对签名验证错误的子数据集进行丢弃。
S4、任务分配服务器基于多层并行模型训练方法,将模型训练内容划分为多个模型训练任务计算层,并将模型训练任务计算层发布到区块链中。
由于在增量学习算法模型中,存在一些相互独立的模型训练内容,本发明所述任务分配服务器基于多层并行模型训练方法,将模型训练内容划分为多个模型训练任务计算层,并将所划分的多个模型训练任务计算层发布到区块链中;
在本发明的一个实施例中,对于在线随机森林增量模型,由于各个在线随机森林模型中各个元决策树是通过对各个训练子集独立训练而构建的,各决策树之间不存在逻辑依赖和数据依赖,因此本发明对所述在线随机森林增量模型进行如下训练内容的划分:
1)首先本发明将依据用户数据的m个特征变量分为M个TGR任务层(TGR1.1~TGR1.M),这些TGR任务层负责计算相应特征变量的信息熵、自分解信息、信息增益以及信息增益率等;
2)划分出TNS任务层(TNS1~TNSM),TNS任务层根据M个TGR任务层的计算结果,负责找到所述在线随机森林增量模型的最佳分裂特征,并分裂当前在线随机森林增量模型的一个树节点,在树节点分裂后,TNS任务层的中间结果被发送到TN计算层,所述TN计算层并行计算所述在线随机森林增量模型的下一级分裂点。假设y1是当前阶段的最佳分裂特征,y1的取值范围是{v01,v02,v03},则第一个树节点由特征y1构成,并且生成3个子节点,所发送的中间结果包括分裂特征的信息和各个取值{v01,v02,v03}所对应的数据索引列表;
3)选取除分裂特征外的其他特征,构成其他特征子集,并根据TNS任务层的中间结果为其他特征子集生成新的TGR任务层,并重复上述步骤,直到无法分裂特征。
S5、各区块链节点接收任务分配服务器发布的多个模型训练任务计算层,根据本发明所提出的一种动态数据迁移策略对所述区块链节点所存储的子数据集进行数据迁移,并基于区块链投票规则进行各区块链节点间模型的训练。
区块链中的各区块链节点接收任务分配服务器所发布的多个模型训练任务层,根据上述区块链节点中所存储的子数据集,各区块链节点进行模型训练任务的训练;
同时,由于各区块链节点完成模型训练任务速度不同,为保证各区块链节点在任意时刻都在进行模型训练,本发明提出一种区块链间的动态数据迁移策略,从而在模型训练过程中基于数据迁移策略动态执行数据迁移过程;所述动态数据迁移策略的数据迁移流程为:
1)实时计算每个区块链节点需要迁移的样本数量,并将ΔNk={Δn1,...Δnm}表示为所有区块链节点上的迁移数据数量的集合,Δnj<0表示需要迁入的样本数量,Δnj>0表示需要迁出的样本数量,所述迁移数据数量的计算公式为:
其中:
nj为区块链节点j中的样本数量;
2)计算在数据迁移之后,各区块链节点新的模型训练时间:
因此,整个区块链在执行数据迁移前后的训练时间标准差为:
同时本发明定义区块链的工作负载均衡为:
其中:
其中:
M为整个区块链节点增量学习模型训练过程中,需要进行动态数据迁移操作的次数;
cm为两个区块链节点间迁移一个数据样本的通信成本;
Δni为区块链节点i需要进行数据迁移的样本数量。
4)根据上述制定的数据迁移策略,查找具有最佳迁移匹配的区块链节点进行数据迁移,所述最佳迁移匹配节点的迁移数据量为min(nin,nout),其中:
|nin|≈|nout|
其中:
nin为进行数据迁入的区块链节点Lin所需迁入的样本数量;
nout为进行数据迁出的区块链节点Lout所需迁出的样本数量。
同时分别查找具有max(nin)和max(|nout|)的节点,当max(nin)>max(|nout|),则将|nout|个样本数量从Lout区块链节点迁移到Lin区块链节点;当max(nin)<max(|nout|),则将|nin|个样本数量从Lout区块链节点迁移到Lin区块链节点,并继续为Lout区块链节点找到其他匹配的区块链迁入节点。
结合所述动态数据迁移策略,本发明通过设定一个投票机制,进行如下的基于区块链的增量学习分布式模型训练:
由于区块链节点中各模型的训练进度不同,对于增量学习初始模型h0,在时刻t-1时所存在的最新模型表示为ht-1,所有区块链节点均有权查验当前最新模型ht-1的模型参数,然后分别利用所存储的子数据集进行模型的更新,且在数据更新过程中基于本发明所提出的动态数据迁移策略,在不同的区块链节点间进行数据迁移处理,详细地,已完成模型训练的区块链节点接收未完成模型训练区块链节点所发送的迁移数据,由于所有区块链节点共享所有信息,已完成模型训练的区块链节点根据所接收的迁移学习进行部分模型训练,并将模型训练结果发送给上述未完成模型训练的区块链节点;
由于本发明采用增量学习算法,对于给定若干数据集,各区块链节点训练得到一系列模型,hi模型仅取决于hi-1,因此所述区块链节点能在资源有限的设备上进行无尽学习,同时保留了模型学习过程中已经学到的“知识”,不会出现灾难性遗忘,相较于传统机器学习算法,对模型训练设备的要求不高,且能保证模型的实时更新,防止模型随着数据的产生而面临过时的风险。
区块链节点分别将更新模型的参数打包上传至数据池中,各个节点对其他节点的模型进行投票,投票票数最高的节点模型即为共识模型,以完成更新,同时由于该区块链节点作为t时刻的模型更新者,利用自身数据对模型训练做出了贡献,基于智能合约,数据价值转移到了模型需求方,所以智能合约的执行结果为其余区块链节点支付费用S给当前区块链节点,用户也因此获得一定收益,且其余区块链节点继续进行模型的更新投票,直到所有区块链节点中的模型完成训练;
所述投票规则为:
其中:
XA为区块链节点A中所存储的子数据集;
yA为在区块链节点A中,增量学习模型目标函数值;
S6、区块链节点将模型训练结果使用区块链单链进行存储,区块链根据增量学习模型训练内容所划分的层级顺序,将各区块链节点中所存储的模型训练结果进行组合,所组合得到的模型即为最终模型训练结果。
进一步地,区块链节点将其中的模型训练结果保存为区块,其中,由于单链存储具有不可逆性,能够对区块进行溯源,相较于其他存储方式具有更高的安全性,因此本发明将区块以单链的形式进行存储;
同时,区块链根据增量学习内容所划分的层级顺序,将各区块链节点中所存储的模型训练结果进行组合,由于各区块链节点对任务计算层中的计算结果进行了身份认证,因此相较于传统机器学习过程,具有更高的数据安全性。
下面通过一个仿真实验来说明本发明的具体实施方式,并对发明的算法进行测试。本发明所述仿真实验部署在一个分布式计算集群中,该集群由30个高性能计算节点构建,并且每个集群都分别配置了Intel Xeon Nehalem EX CPU和48GB主内存,每个Nehalem-EX处理器在一个支持16个线程和24MB缓存的单芯片内有8个内核。本发明所述仿真实验基于Nehalem-EX处理器的数量以及数据量的大小进行对照实验,分别测试传统机器学习计算方法与本发明所述基于区块链的增量学习分布式计算方法的算法准确度与执行时间,在本发明仿真实验中,所述传统机器学习算法为决策树算法。
当样本数据量为100000时,在Nehalem-EX处理器的数量分别为2,8,16的情况下,决策树算法计算方法的算法准确度分别为0.65,0.70,0.78,算法的执行时间分别为91.21s,72.14s以及54.39s;本发明所述基于区块链的增量学习分布式计算方法的算法准确度分别为0.70,0.75,0.79,算法执行时间分别为62.77s,51.46s以及42.31s;
当样本数据量为700000时,在Nehalem-EX处理器的数量分别为2,8,16的情况下,决策树算法计算方法的算法准确度分别为0.72,0.78,0.85,算法的执行时间分别为929.74s,628.19s以及386.32s;本发明所述基于区块链的增量学习分布式计算方法的算法准确度分别为0.78,0.81,0.89,算法执行时间分别为454.23s,346.21s以及307.35s;
根据所述仿真实验结果,本发明所述基于区块链的增量学习分布式计算方法相较于传统机器学习计算方法,算法执行效率有了明显提高,且受中心化服务端配置的影响较小;同时本发明所述基于区块链的增量学习分布式计算方法相较于传统机器学习计算方法能提高算法准确度。
发明还提供一种基于区块链的增量学习分布式计算系统。参照图2所示,为本发明一实施例提供的基于区块链的增量学习分布式计算系统的内部结构示意图。
在本实施例中,所述基于区块链的增量学习分布式计算系统1至少包括数据采集装置11、存储器12、服务器13、任务分配处理器14,通信总线15,以及网络接口16。
其中,数据采集装置11可以是PC(Personal Computer,个人电脑),或者是智能手机、平板电脑、便携计算机等终端设备,也可以是一种服务器等。
存储器12至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器12在一些实施例中可以是基于区块链的增量学习分布式计算系统1的内部存储单元,例如该基于区块链的增量学习分布式计算系统1的硬盘。存储器12在另一些实施例中也可以是基于区块链的增量学习分布式计算系统1的外部存储设备,例如基于区块链的增量学习分布式计算系统1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器12还可以既包括基于区块链的增量学习分布式计算系统1的内部存储单元也包括外部存储设备。存储器12不仅可以用于存储安装于基于区块链的增量学习分布式计算系统1的应用软件及各类数据,例如基于区块链的增量学习分布式计算程序指令的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
服务器13在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器12中存储的程序代码或处理数据,例如执行基于区块链的增量学习分布式计算程序指令01等。
任务分配处理器14用于基于多层并行模型训练方法,将模型训练内容划分为多个模型训练任务计算层,并将模型训练任务计算层发布到区块链中
通信总线15用于实现这些组件之间的连接通信。
网络接口16可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该系统1与其他电子设备之间建立通信连接。
可选地,该系统1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在基于区块链的增量学习分布式计算系统1中处理的信息以及用于显示可视化的用户界面。
图2仅示出了具有组件11-16以及基于区块链的增量学习分布式计算程序指令的基于区块链的增量学习分布式计算系统1,本领域技术人员可以理解的是,图1示出的结构并不构成对基于区块链的增量学习分布式计算系统1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
在图2所示的装置1实施例中,存储器12中存储有基于区块链的增量学习分布式计算程序指令;服务器13执行存储器12中存储的基于区块链的增量学习分布式计算程序指令时实现如下步骤:
步骤一、数据采集装置接收用户发起的数据采集请求,并对用户数据进行采集,同时将采集到的数据存放到存储器中,存储器在收到用户数据后,服务器基于椭圆曲线数字签名算法为用户生成私钥和公钥,并将公钥广播至各个区块链节点。
本发明所述数据采集装置接收用户发起的数据采集请求,从而对用户数据进行采集,同时将所采集到的数据存放到存储器中;
进一步地,所述存储器在收到用户数据后,服务器基于椭圆曲线数字签名算法为用户生成私钥和公钥,在本发明实施例中,所述私钥d和公钥Q的生成方式如下:
选取一个大于3的素数p,在有限域Ep上随机选取一条椭圆曲线Ep(a,b):y2=x3+ax+b,其中a,b满足(4a3+27b2)mod p≠0,取Ep(a,b)的一个生成元G,Ep(a,b)和G作为公开参数,服务器随机为用户选取d作为私钥,并计算Q=dG,将Q作为用户的公钥。
所述基于椭圆曲线数字签名算法生成的私钥仅有用户可以掌握,所述公钥被服务器广播至各个区块链节点,区块链节点接收用户的公钥,并将其存储在有效地址列表中以备查验用户签名的信息。
步骤二、所述服务器发起基于增量学习的模型训练请求,用户接受所述模型训练请求后,服务器将用户数据基于数据并行优化策略划分为多个子数据集,并将各子数据集使用私钥进行签名,同时将所述子数据集分别发布到各个区块链中。
进一步地,所述服务器发起基于增量学习的模型训练请求,用户接受所述模型训练请求后,服务器基于数据并行优化策略对数据进行划分,从而将用户数据划分为多个子数据集,以减少区块链分布式环境中的数据通信开销,所述数据并行优化策略如下所述:
假设用户数据X的大小为N,并且每条样本记录中都有M个特征变量和一个模型目标变量,即y1~yM为输入特征变量,yA为模型目标变量,在本发明所述数据并行优化策略中,对于用户数据X,本发明将样本数据进行随机打乱,并使用ShuffleSplit迭代器进行指定子数据集中样本数量的划分,如可将用户数据X均分为n个样本数量相同的子数据集。
通过采用上述数据并行优化策略,所述用户数据可以根据特征变量划分为多个子数据集,且各个数据集在模型训练中不存在数据依赖和通信关系。
进一步地,所述服务器对多个子数据集进行编码命名,利用用户私钥对多个子数据集进行签名,并将所述子数据集分别发布到各个区块链中,所述利用用户私钥对多个子数据集进行签名的具体方法为:
(1)随机选择一个整数k;
(4)计算第i个子数据集编码值mi的哈希值H(mi),将得到的比特串转化为整数ei;
(5)计算si=k-1(ei+dri)mod n,若si=0,则转(1);
(6)(ri,Si)为服务器对第i个数据集的签名。
其中:
G为椭圆曲线Ep(a,b)的一个生成元;
n为划分得到子数据集的个数;
d为用户私钥。
步骤三、各区块链节点利用公钥对子数据集的消息签名进行验证,签名正确则将所述子数据集写入区块链节点中,并基于默尔克树对子数据集进行存储,反之则丢弃。
各区块链节点利用上述所得公钥对子数据集的消息签名进行验证,所述对签名进行验证的具体方法:
(1)验证ri,si是[1,n-1]之间的整数;
(2)计算第i个子数据集H(mi)并将其转换为整数ei;
(4)计算u1=eiwi mod n,u2=riwi mod n;
(5)计算X=u1G+u2Q;
(7)当且仅当vi=ri时,签名通过验证。
其中:
G为椭圆曲线Ep(a,b)的一个生成元;
n为划分得到子数据集的个数;
d为用户公钥。
对于签名验证正确的子数据集,所述区块链节点则将该数据集写入未存储数据的区块链节点中,基于默克尔树结构对子数据集进行存储,并对签名验证错误的子数据集进行丢弃。
步骤四、任务分配服务器基于多层并行模型训练方法,将模型训练内容划分为多个模型训练任务计算层,并将模型训练任务计算层发布到区块链中。
由于在增量学习算法模型中,存在一些相互独立的模型训练内容,本发明所述任务分配服务器基于多层并行模型训练方法,将模型训练内容划分为多个模型训练任务计算层,并将所划分的多个模型训练任务计算层发布到区块链中;
在本发明的一个实施例中,对于在线随机森林增量模型,由于各个在线随机森林模型中各个元决策树是通过对各个训练子集独立训练而构建的,各决策树之间不存在逻辑依赖和数据依赖,因此本发明对所述在线随机森林增量模型进行如下训练内容的划分:
1)首先本发明将依据用户数据的m个特征变量分为M个TGR任务层(TGR1.1~TGR1.M),这些TGR任务层负责计算相应特征变量的信息熵、自分解信息、信息增益以及信息增益率等;
2)划分出TNS任务层(TNS1~TNSM),TNS任务层根据M个TGR任务层的计算结果,负责找到所述在线随机森林增量模型的最佳分裂特征,并分裂当前在线随机森林增量模型的一个树节点,在树节点分裂后,TNS任务层的中间结果被发送到TN计算层,所述TN计算层并行计算所述在线随机森林增量模型的下一级分裂点。假设y1是当前阶段的最佳分裂特征,y1的取值范围是{v01,v02,v03},则第一个树节点由特征y1构成,并且生成3个子节点,所发送的中间结果包括分裂特征的信息和各个取值{v01,v02,v03}所对应的数据索引列表;
3)选取除分裂特征外的其他特征,构成其他特征子集,并根据TNS任务层的中间结果为其他特征子集生成新的TGR任务层,并重复上述步骤,直到无法分裂特征。
步骤五、各区块链节点接收任务分配服务器发布的多个模型训练任务计算层,根据本发明所提出的一种动态数据迁移策略对所述区块链节点所存储的子数据集进行数据迁移,并基于区块链投票规则进行各区块链节点间模型的训练。
区块链中的各区块链节点接收任务分配服务器所发布的多个模型训练任务层,根据上述区块链节点中所存储的子数据集,各区块链节点进行模型训练任务的训练;
同时,由于各区块链节点完成模型训练任务速度不同,为保证各区块链节点在任意时刻都在进行模型训练,本发明提出一种区块链间的动态数据迁移策略,从而在模型训练过程中基于数据迁移策略动态执行数据迁移过程;所述动态数据迁移策略的数据迁移流程为:
1)实时计算每个区块链节点需要迁移的样本数量,并将ΔNk={Δn1,..Δnm}表示为所有区块链节点上的迁移数据数量的集合,Δnj<0表示需要迁入的样本数量,Δnj>0表示需要迁出的样本数量,所述迁移数据数量的计算公式为:
其中:
nj为区块链节点j中的样本数量;
2)计算在数据迁移之后,各区块链节点新的模型训练时间:
因此,整个区块链在执行数据迁移前后的训练时间标准差为:
同时本发明定义区块链的工作负载均衡为:
其中:
其中:
M为整个区块链节点增量学习模型训练过程中,需要进行动态数据迁移操作的次数;
cm为两个区块链节点间迁移一个数据样本的通信成本;
Δni为区块链节点i需要进行数据迁移的样本数量。
4)根据上述制定的数据迁移策略,查找具有最佳迁移匹配的区块链节点进行数据迁移,所述最佳迁移匹配节点的迁移数据量为min(nin,nout),其中:
|nin|≈|nout|
其中:
nin为进行数据迁入的区块链节点Lin所需迁入的样本数量;
nout为进行数据迁出的区块链节点Lout所需迁出的样本数量。
同时分别查找具有max(nin)和max(|nout|)的节点,当max(nin)>max(|nout|),则将|nout|个样本数量从Lout区块链节点迁移到Lin区块链节点;当max(nin)<max(|nout|),则将|nin|个样本数量从Lout区块链节点迁移到Lin区块链节点,并继续为Lout区块链节点找到其他匹配的区块链迁入节点。
结合所述动态数据迁移策略,本发明通过设定一个投票机制,进行如下的基于区块链的增量学习分布式模型训练:
由于区块链节点中各模型的训练进度不同,对于增量学习初始模型h0,在时刻t-1时所存在的最新模型表示为ht-1,所有区块链节点均有权查验当前最新模型ht-1的模型参数,然后分别利用所存储的子数据集进行模型的更新,且在数据更新过程中基于本发明所提出的动态数据迁移策略,在不同的区块链节点间进行数据迁移处理,详细地,已完成模型训练的区块链节点接收未完成模型训练区块链节点所发送的迁移数据,由于所有区块链节点共享所有信息,已完成模型训练的区块链节点根据所接收的迁移学习进行部分模型训练,并将模型训练结果发送给上述未完成模型训练的区块链节点;
由于本发明采用增量学习算法,对于给定若干数据集,各区块链节点训练得到一系列模型,hi模型仅取决于hi-1,因此所述区块链节点能在资源有限的设备上进行无尽学习,同时保留了模型学习过程中已经学到的“知识”,不会出现灾难性遗忘,相较于传统机器学习算法,对模型训练设备的要求不高,且能保证模型的实时更新,防止模型随着数据的产生而面临过时的风险。
区块链节点分别将更新模型的参数打包上传至数据池中,各个节点对其他节点的模型进行投票,投票票数最高的节点模型即为共识模型,以完成更新,同时由于该区块链节点作为t时刻的模型更新者,利用自身数据对模型训练做出了贡献,基于智能合约,数据价值转移到了模型需求方,所以智能合约的执行结果为其余区块链节点支付费用S给当前区块链节点,用户也因此获得一定收益,且其余区块链节点继续进行模型的更新投票,直到所有区块链节点中的模型完成训练;
所述投票规则为:
其中:
XA为区块链节点A中所存储的子数据集;
yA为在区块链节点A中,增量学习模型目标函数值;
步骤六、区块链节点将模型训练结果使用区块链单链进行存储,区块链根据增量学习模型训练内容所划分的层级顺序,将各区块链节点中所存储的模型训练结果进行组合,所组合得到的模型即为最终模型训练结果。
进一步地,区块链节点将其中的模型训练结果保存为区块,其中,由于单链存储具有不可逆性,能够对区块进行溯源,相较于其他存储方式具有更高的安全性,因此本发明将区块以单链的形式进行存储;
同时,区块链根据增量学习内容所划分的层级顺序,将各区块链节点中所存储的模型训练结果进行组合,由于各区块链节点对任务计算层中的计算结果进行了身份认证,因此相较于传统机器学习过程,具有更高的数据安全性。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有基于区块链的增量学习分布式计算程序指令,所述基于区块链的增量学习分布式计算程序指令可被一个或多个处理器执行,以实现如下操作:
接收用户发起的数据采集请求,并对用户数据进行采集,同时将采集到的数据存放到服务器中,服务器在收到用户数据后,基于椭圆曲线数字签名算法为用户生成私钥和公钥,并将公钥广播至各个区块链节点;
发起基于增量学习的模型训练请求,用户接受所述模型训练请求后,服务器将用户数据基于数据并行优化策略划分为多个子数据集,并将各子数据集使用私钥进行签名,同时将所述子数据集分别发布到各个区块链中;
各区块链节点利用公钥对子数据集的消息签名进行验证,签名正确则将所述子数据集写入区块链节点中,并基于默尔克树对子数据集进行存储,反之则丢弃;
基于多层并行模型训练方法,将模型训练内容划分为多个模型训练任务计算层,并将模型训练任务计算层发布到区块链中;
区块链节点接收任务分配服务器发布的多个模型训练任务计算层,根据本发明所提出的一种动态数据迁移策略对所述区块链节点所存储的子数据集进行数据迁移,并基于区块链投票规则进行各区块链节点间模型的训练;
将模型训练结果使用区块链单链进行存储,区块链根据增量学习模型训练内容所划分的层级顺序,将各区块链节点中所存储的模型训练结果进行组合,所组合得到的模型即为最终模型训练结果。
本发明计算机可读存储介质具体实施方式与上述基于区块链的增量学习分布式计算系统和方法各实施例基本相同,在此不作累述。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于区块链的增量学习分布式计算方法,其特征在于,所述方法包括:
数据采集装置接收用户发起的数据采集请求,并对用户数据进行采集,同时将采集到的数据存放到存储器中,存储器在收到用户数据后,服务器基于椭圆曲线数字签名算法为用户生成私钥和公钥,并将公钥广播至各个区块链节点;
所述服务器发起基于增量学习的模型训练请求,用户接受所述模型训练请求后,服务器将用户数据基于数据并行优化策略划分为多个子数据集,并将各子数据集使用私钥进行签名,同时将所述子数据集分别发布到各个区块链中;
各区块链节点利用公钥对子数据集的消息签名进行验证,签名正确则将所述子数据集写入区块链节点中,并基于默尔克树对子数据集进行存储,反之则丢弃;
任务分配服务器基于多层并行模型训练方法,将模型训练内容划分为多个模型训练任务计算层,并将模型训练任务计算层发布到区块链中;
各区块链节点接收任务分配服务器发布的多个模型训练任务计算层,根据所提出的一种动态数据迁移策略对所述区块链节点所存储的子数据集进行数据迁移,并基于区块链投票规则进行各区块链节点间模型的训练;
区块链节点将模型训练结果使用区块链单链进行存储,区块链根据增量学习模型训练内容所划分的层级顺序,将各区块链节点中所存储的模型训练结果进行组合,所组合得到的模型即为最终模型训练结果。
2.如权利要求1所述的基于区块链的增量学习分布式计算方法,其特征在于,所述椭圆曲线数字签名算法为:
选取一个大于3的素数p,在有限域Ep上随机选取一条椭圆曲线Ep(a,b):y2=x3+ax+b,其中a,b满足(4a3+27b2)mod p≠0,取Ep(a,b)的一个生成元G,Ep(a,b)和G作为公开参数,服务器随机为用户选取d作为私钥,并计算Q=dG,将Q作为用户的公钥。
3.如权利要求2所述的基于区块链的增量学习分布式计算方法,其特征在于,所述将用户数据基于数据并行优化策略划分为多个子数据集,并将各子数据集使用私钥进行签名,包括:
将样本数据进行随机打乱,并使用ShuffleSplit迭代器进行指定子数据集中样本数量的划分,从而将用户数据均分为多个样本数量相同的子数据集;
对多个子数据集进行编码命名,利用用户私钥对多个子数据集进行签名,并将所述子数据集分别发布到各个区块链中,所述利用用户私钥对多个子数据集进行签名的具体方法为:
(1)随机选择一个整数k;
(4)计算第i个子数据集编码值mi的哈希值H(mi),将得到的比特串转化为整数ei;
(5)计算si=k-1(ei+dri)mod n,若si=0,则转(1);
(6)(ri,si)为服务器对第i个数据集的签名;
其中:
G为椭圆曲线Ep(a,b)的一个生成元;
n为划分得到子数据集的个数;
d为用户私钥。
5.如权利要求4所述的基于区块链的增量学习分布式计算方法,其特征在于,所述基于多层并行模型训练方法,将模型训练内容划分为多个模型训练任务计算层,包括:
根据数据的m个特征变量分为M个TGR任务层(TGR1.1~TGR1.M),这些TGR任务层负责计算相应特征变量的信息熵、自分解信息、信息增益以及信息增益率;
划分出TNS任务层(TNS1~TNSM),TNS任务层根据M个TGR任务层的计算结果,负责找到所述增量学习模型的最佳分裂特征,并分裂当前增量学习模型的一个树节点,在树节点分裂后,TNS任务层的中间结果被发送到TN计算层,所述TN计算层并行计算所述增量学习模型的下一级分裂点。
6.如权利要求5所述的基于区块链的增量学习分布式计算方法,其特征在于,所述根据所提出的一种动态数据迁移策略对所述区块链节点所存储的子数据集进行数据迁移,并基于区块链投票规则进行各区块链节点间模型的训练,包括:
由于区块链节点中各模型的训练进度不同,对于增量学习初始模型h0,在时刻t-1时所存在的最新模型表示为ht-1,所有区块链节点均有权查验当前最新模型ht-1的模型参数,然后分别利用所存储的子数据集进行模型的更新,且在数据更新过程中基于本发明所提出的动态数据迁移策略,在不同的区块链节点间进行数据迁移处理,详细地,已完成模型训练的区块链节点接收未完成模型训练区块链节点所发送的迁移数据,由于所有区块链节点共享所有信息,已完成模型训练的区块链节点根据所接收的迁移学习进行部分模型训练,并将模型训练结果发送给上述未完成模型训练的区块链节点;
区块链节点分别将更新模型的参数打包上传至数据池中,各个节点对其他节点的模型进行投票,投票票数最高的节点模型即为共识模型,以完成更新,同时由于该区块链节点作为t时刻的模型更新者,利用自身数据对模型训练做出了贡献,基于智能合约,数据价值转移到了模型需求方,所以智能合约的执行结果为其余区块链节点支付费用S给当前区块链节点,用户也因此获得一定收益,且其余区块链节点继续进行模型的更新投票,直到所有区块链节点中的模型完成训练;
所述投票规则为:
其中:
XA为区块链节点A中所存储的子数据集;
yA为在区块链节点A中,增量学习模型目标函数值;
7.如权利要求6所述的基于区块链的增量学习分布式计算方法,其特征在于,所述动态迁移数据策略为:
1)实时计算每个区块链节点需要迁移的样本数量,并将ΔNk={Δn1,...Δnm}表示为所有区块链节点上的迁移数据数量的集合,Δnj<0表示需要迁入的样本数量,Δnj>0表示需要迁出的样本数量,所述迁移数据数量的计算公式为:
其中:
nj为区块链节点j中的样本数量;
2)计算在数据迁移之后,各区块链节点新的模型训练时间:
因此,整个区块链在执行数据迁移前后的训练时间标准差为:
同时本发明定义区块链的工作负载均衡为:
其中:
其中:
M为整个区块链节点增量学习模型训练过程中,需要进行动态数据迁移操作的次数;
cm为两个区块链节点间迁移一个数据样本的通信成本;
Δni为区块链节点i需要进行数据迁移的样本数量;
4)根据上述制定的数据迁移策略,查找具有最佳迁移匹配的区块链节点进行数据迁移,所述最佳迁移匹配节点的迁移数据量为min(nin,nout),其中:
|nin|≈|nout|
其中:
nin为进行数据迁入的区块链节点Lin所需迁入的样本数量;
nout为进行数据迁出的区块链节点Lout所需迁出的样本数量;
同时分别查找具有max(nin)和max(|nout|)的节点,当max(nin)>max(|nout|),则将|nout|个样本数量从Lout区块链节点迁移到Lin区块链节点;当max(nin)<max(|nout|),则将|nin|个样本数量从Lout区块链节点迁移到Lin区块链节点,并继续为Lout区块链节点找到其他匹配的区块链迁入节点。
8.一种区块链节点,其特征在于,所述节点包括:
信息接收单元,用于接收子数据集和模型训练任务计算层;
内容存储单元,用于对所接收的信息以及增量学习模型的计算结果进行存储;
模型计算单元,用于根据所接收到子数据集合模型训练任务计算层,基于区块链投票规则进行增量学习模型的计算;
结果组合单元,用于根据增量学习训练内容所划分的层级顺序,将各区块链节点中所存储的模型训练结果进行组合。
9.一种基于区块链的增量学习分布式计算系统,其特征在于,所述系统包括:
多个如权利要求8所述区块链节点;
数据采集装置,用于接收用户发起的数据采集请求,并对用户数据进行采集;
存储器,用于对采集到的用户数据进行存储;
服务器,用于存储所采集到的用户数据,发起基于增量学习的模型训练请求,并椭圆曲线数字签名算法为用户生成私钥和公钥;
任务分配处理器,用于基于多层并行模型训练方法,将模型训练内容划分为多个模型训练任务计算层,并将模型训练任务计算层发布到区块链中。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有增量学习分布式计算程序指令,所述增量学习分布式计算程序指令可被一个或者多个处理器执行,以实现如权利要求1至7中任一项所述的一种基于区块链的增量学习分布式计算方法、系统和节点的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010492253.0A CN111639368A (zh) | 2020-06-03 | 2020-06-03 | 一种基于区块链的增量学习分布式计算方法、系统和节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010492253.0A CN111639368A (zh) | 2020-06-03 | 2020-06-03 | 一种基于区块链的增量学习分布式计算方法、系统和节点 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111639368A true CN111639368A (zh) | 2020-09-08 |
Family
ID=72330657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010492253.0A Withdrawn CN111639368A (zh) | 2020-06-03 | 2020-06-03 | 一种基于区块链的增量学习分布式计算方法、系统和节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111639368A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187749A (zh) * | 2020-09-16 | 2021-01-05 | 广东工业大学 | 一种基于智能合约的生产交易管理方法及其系统 |
CN112269794A (zh) * | 2020-09-16 | 2021-01-26 | 连尚(新昌)网络科技有限公司 | 一种基于区块链的进行违规预测的方法与设备 |
CN112861115A (zh) * | 2021-01-26 | 2021-05-28 | 周应凤 | 基于区块链安全认证的加密策略调用方法及云认证服务器 |
CN113010609A (zh) * | 2020-12-23 | 2021-06-22 | 上海海鼎信息工程股份有限公司 | 一种应用于门店经营的差异化同步方法及系统 |
CN113486713A (zh) * | 2021-06-02 | 2021-10-08 | 广州林猫自然科技有限公司 | 一种红外相机动物图像识别训练集最佳组合的构建方法 |
CN113592649A (zh) * | 2021-07-28 | 2021-11-02 | 北京易华录信息技术股份有限公司 | 一种数据资产价值确定方法、装置及电子设备 |
CN113626827A (zh) * | 2021-07-29 | 2021-11-09 | 西安电子科技大学 | 一种智能合约漏洞检测方法、系统、设备、介质、终端 |
CN113688421A (zh) * | 2021-08-26 | 2021-11-23 | 杭州金智塔科技有限公司 | 基于隐私保护的预测模型更新方法及装置 |
CN114356540A (zh) * | 2021-10-30 | 2022-04-15 | 腾讯科技(深圳)有限公司 | 一种参数更新方法、装置、电子设备和存储介质 |
WO2022089198A1 (en) * | 2020-10-29 | 2022-05-05 | International Business Machines Corporation | Blockchain for artificial intelligence training |
CN114692894A (zh) * | 2022-04-02 | 2022-07-01 | 南京大学 | 一种支持动态增加和删除用户数据的机器学习模型的实现方法 |
CN112988893B (zh) * | 2021-03-15 | 2023-05-12 | 中国联合网络通信集团有限公司 | 基于区块链的信息管理方法、系统、区块链节点及介质 |
CN117112369A (zh) * | 2023-10-19 | 2023-11-24 | 凌雄技术(深圳)有限公司 | 一种基于区块链的设备管理SaaS系统 |
CN117113429A (zh) * | 2023-08-14 | 2023-11-24 | 中国船舶集团有限公司第七〇九研究所 | 一种分布式的虚假态势数据辨伪方法及分布式系统 |
-
2020
- 2020-06-03 CN CN202010492253.0A patent/CN111639368A/zh not_active Withdrawn
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112269794A (zh) * | 2020-09-16 | 2021-01-26 | 连尚(新昌)网络科技有限公司 | 一种基于区块链的进行违规预测的方法与设备 |
CN112187749B (zh) * | 2020-09-16 | 2023-01-17 | 广东工业大学 | 一种基于智能合约的生产交易管理方法及其系统 |
CN112187749A (zh) * | 2020-09-16 | 2021-01-05 | 广东工业大学 | 一种基于智能合约的生产交易管理方法及其系统 |
WO2022089198A1 (en) * | 2020-10-29 | 2022-05-05 | International Business Machines Corporation | Blockchain for artificial intelligence training |
CN113010609A (zh) * | 2020-12-23 | 2021-06-22 | 上海海鼎信息工程股份有限公司 | 一种应用于门店经营的差异化同步方法及系统 |
CN113010609B (zh) * | 2020-12-23 | 2023-05-16 | 上海海鼎信息工程股份有限公司 | 一种应用于门店经营的差异化同步方法及系统 |
CN112861115B (zh) * | 2021-01-26 | 2022-07-12 | 广东星蓝区块链技术有限公司 | 基于区块链安全认证的加密策略调用方法及云认证服务器 |
CN112861115A (zh) * | 2021-01-26 | 2021-05-28 | 周应凤 | 基于区块链安全认证的加密策略调用方法及云认证服务器 |
CN112988893B (zh) * | 2021-03-15 | 2023-05-12 | 中国联合网络通信集团有限公司 | 基于区块链的信息管理方法、系统、区块链节点及介质 |
CN113486713A (zh) * | 2021-06-02 | 2021-10-08 | 广州林猫自然科技有限公司 | 一种红外相机动物图像识别训练集最佳组合的构建方法 |
CN113592649A (zh) * | 2021-07-28 | 2021-11-02 | 北京易华录信息技术股份有限公司 | 一种数据资产价值确定方法、装置及电子设备 |
CN113626827A (zh) * | 2021-07-29 | 2021-11-09 | 西安电子科技大学 | 一种智能合约漏洞检测方法、系统、设备、介质、终端 |
CN113688421A (zh) * | 2021-08-26 | 2021-11-23 | 杭州金智塔科技有限公司 | 基于隐私保护的预测模型更新方法及装置 |
CN113688421B (zh) * | 2021-08-26 | 2024-08-02 | 杭州金智塔科技有限公司 | 基于隐私保护的预测模型更新方法及装置 |
CN114356540A (zh) * | 2021-10-30 | 2022-04-15 | 腾讯科技(深圳)有限公司 | 一种参数更新方法、装置、电子设备和存储介质 |
CN114692894A (zh) * | 2022-04-02 | 2022-07-01 | 南京大学 | 一种支持动态增加和删除用户数据的机器学习模型的实现方法 |
CN117113429A (zh) * | 2023-08-14 | 2023-11-24 | 中国船舶集团有限公司第七〇九研究所 | 一种分布式的虚假态势数据辨伪方法及分布式系统 |
CN117113429B (zh) * | 2023-08-14 | 2024-05-14 | 中国船舶集团有限公司第七〇九研究所 | 一种分布式的虚假态势数据辨伪方法及分布式系统 |
CN117112369B (zh) * | 2023-10-19 | 2024-03-01 | 凌雄技术(深圳)有限公司 | 一种基于区块链的设备管理SaaS系统 |
CN117112369A (zh) * | 2023-10-19 | 2023-11-24 | 凌雄技术(深圳)有限公司 | 一种基于区块链的设备管理SaaS系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111639368A (zh) | 一种基于区块链的增量学习分布式计算方法、系统和节点 | |
CN110084377B (zh) | 用于构建决策树的方法和装置 | |
Prakash et al. | Coded computing for distributed graph analytics | |
CN109040341B (zh) | 智能合约地址的生成方法、装置、计算机设备及可读存储介质 | |
CN108519981B (zh) | 一种跨链智能合约合作可能性评估方法 | |
CN110825349A (zh) | 随机数生成方法、区块链节点、系统及介质 | |
JP7328237B2 (ja) | コンピュータにより実施される投票処理およびシステム | |
CN108200208B (zh) | 基于云计算的物流区块链共识算法 | |
CN106681688A (zh) | 一种基于minhash的集合相似度计算方法和系统 | |
Guo et al. | LightFed: An efficient and secure federated edge learning system on model splitting | |
CN111414589B (zh) | 基于区块链的作品原创审核方法、装置及设备 | |
CN112613601B (zh) | 神经网络模型更新方法、设备及计算机存储介质 | |
CN114282678A (zh) | 一种机器学习模型的训练的方法以及相关设备 | |
CN113807415A (zh) | 联邦特征选择方法、装置、计算机设备和存储介质 | |
CN115659417A (zh) | 审计日志存储方法、验证方法、装置和计算机设备 | |
CN114036581A (zh) | 基于神经网络模型的隐私计算方法 | |
Sun et al. | Public data integrity auditing without homomorphic authenticators from indistinguishability obfuscation | |
WO2021052033A1 (zh) | 数据调用方法、装置、设备及计算机可读存储介质 | |
CN115544026B (zh) | 数据存储方法、装置、电子设备和存储介质 | |
CN112346826A (zh) | 一种基于区块链的深度学习分布式计算方法及系统 | |
CN109684856B (zh) | 一种针对MapReduce计算的数据保密方法及系统 | |
CN113923218B (zh) | 编解码插件分布式部署方法、装置、设备及介质 | |
CN113704624B (zh) | 基于用户分流的策略推荐方法、装置、设备及介质 | |
CN112417478B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN113918517A (zh) | 多类型文件集中管理方法、装置、设备及存储介质 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200908 |