System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及联邦学习,特别涉及一种基于区块链的半异步联邦学习方法。
技术介绍
1、联邦学习作为一种新兴的分布式机器学习技术,旨在通过多个参与者合作学习一个共享的模型,而不需要交换各自的数据,使得其在各个领域得到了广泛的应用。在联邦学习领域,存在多种技术实现方式,其中同步和异步联邦学习是两种主要的策略。传统的同步联邦学习需要所有参与设备在每轮更新中同步提交自己的模型更新,这种方式虽然可以保证模型的一致性,但设备的计算能力和网络通信能力的差异导致了处理速度的不一致,从而影响整体的训练效率。
2、异步联邦学习提供了一种解决上述问题的方法,允许设备按照自己的节奏进行训练,并在准备好时向中心服务器发送更新。这种方法可以更好地处理设备间的异构性和数据的非iid特性,因为它不需要所有设备同时完成训练即可进行模型更新。然而,异步联邦学习也面临着自己的挑战,例如模型过时性的影响。服务器端在聚合模型时,可能会收到较“过时”的梯度或参数更新。这些“过时”的更新可能会对全局模型的方向产生干扰,影响训练的稳定性和效果。
3、此外,安全性问题也是现有技术中的一个重要考虑。在开放网络环境中,参与训练的设备可能遭受恶意攻击,恶意设备可能故意发送错误或有偏差的更新,破坏全局模型的学习过程。现有的联邦学习机制对这种攻击的防御能力有限,需要更有效的安全机制来确保训练过程的可靠性和模型的整体质量。
技术实现思路
1、为解决上述技术问题,本专利技术提供了一种基于区块链的半异步联邦学习方法,以达到在
2、为达到上述目的,本专利技术的技术方案如下:
3、一种基于区块链的半异步联邦学习方法,包括如下步骤:
4、步骤1,由任务发布者创建一个全局模型a发布到区块链网络,并根据预设的初始参数对其进行初始化;
5、步骤2,客户端从区块链网络提取全局模型a并在本地数据上训练,生成更新后的模型参数;客户端将这些模型参数打包上传至区块链网络;智能合约接收后自动聚合各客户端的模型参数,生成新的全局模型b,并将其打包到新区块中;同时客户端还将各自的基本信息均保存至同一个聚类轮次文件中,为后续的聚类分组提供基础数据;
6、步骤3,采用ndp-kmeans聚类算法,根据聚类轮次文件中保存的客户端的基本信息进行聚类分组;分组完成后,将全局模型b分发到各个客户端组;
7、步骤4,组内客户端使用全局模型b在本地数据上进行模型更新,训练的同时,将客户端基本信息记录至不同聚类轮次文件中;对于模型偏移程度不超过阈值的组,则该组客户端的本地模型使用异步更新方式与当前全局模型聚合更新,并重新分发给当前组内的客户端;若某个组内客户端的本地模型偏移程度超过阈值,则将所有组的客户端停止训练,且不进行模型聚合,直接将所有组客户端的本地模型同步更新为当前全局模型,并根据当前最新的聚类轮次文件再次对所有的客户端执行聚类分组,再创建新的聚类轮次文件;
8、步骤5,在每一轮模型更新完成后,将最新的全局模型打包成一个区块,并将其上传至区块链网络;最新的区块被上传至区块链网络后,所有参与节点通过共识机制对最新区块的有效性进行验证,并就此达成一致;达成共识后,区块将被正式添加至区块链网络中,成为系统中唯一认可的模型版本;这个最新的全局模型将供客户端组在下一轮的训练中使用;
9、步骤6,循环执行步骤4和步骤5,直到全局模型收敛,达到预期的性能指标,或者训练过程达到预设的最大轮次。
10、上述方案中,步骤2中,客户端的基本信息包括计算能力时间开销、通信能力时间开销以及模型偏移程度;
11、客户端在收到全局模型后记为时间,模型开始训练时间为,模型结束训练时间,将模型打包上传至区块链网络的时间为,为客户端所花费的总时间,包括计算能力时间开销和通信能力时间开销;为客户端训练模型所花费的时间,即计算能力时间开销;
12、模型偏移程度通过比较全局模型和客户端本地模型的范数来体现,范数是模型参数向量之间的差异度量,计算方式为:
13、;
14、其中,表示客户端本地模型与全局模型之间的范数,即两个模型之间的差异程度,<mi>x</mi><mi>=[</mi><msub><mi>x</mi><mn>1</mn></msub><mi>,</mi><msub><mi>x</mi><mn>2</mn></msub><mi>,</mi><msub><mi>x</mi><mn>3</mn></msub><mi>,</mi><mi>…</mi><mi>,</mi><msub><mi>x</mi><mi>n</mi></msub><mi> ]</mi>表示客户端模型的参数向量,<mi>y</mi><mi>=[</mi><msub><mi>y</mi><mn>1</mn></msub><mi>,</mi><msub><mi>y</mi><mn>2</mn></msub><mi>,</mi><msub><mi>y</mi><mn>3</mn></msub><mi>,</mi><mi>…</mi><mi>,</mi><msub><mi>y</mi><mi>n</mi></msub><mi>]</mi>表示全局模型的参数向量,n是参数向量的维度。
15、上述方案中,步骤3的具体方法如下:
16、step1:使用客户端训练时保存的基本信息作为聚类数据集,聚类数据集由客户端的计算能力时间开销、通信能力时间开销以及模型偏移程度组成;
17、step2:定义客户端对象的密度,使用自然邻居来计算密度,自然邻居通过自适应搜索最近邻和记录反向邻居信息得到;
18、step3:使用基于邻居的距离来计算自然密度峰之间的图距离,图距离结合了客户端本文档来自技高网...
【技术保护点】
1.一种基于区块链的半异步联邦学习方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种基于区块链的半异步联邦学习方法,其特征在于,步骤2中,客户端的基本信息包括计算能力时间开销、通信能力时间开销以及模型偏移程度;
3.根据权利要求1所述的一种基于区块链的半异步联邦学习方法,其特征在于,步骤3的具体方法如下:
4.根据权利要求1所述的一种基于区块链的半异步联邦学习方法,其特征在于,Step2的具体过程如下:
5.根据权利要求1所述的一种基于区块链的半异步联邦学习方法,其特征在于,Step3的具体过程如下:
6.根据权利要求1所述的一种基于区块链的半异步联邦学习方法,其特征在于,Step5的具体过程如下:
7.根据权利要求2所述的一种基于区块链的半异步联邦学习方法,其特征在于,步骤4中,模型偏移程度的阈值区间表示为,μ为范数的均值,σ为范数的标准差。
8.根据权利要求1所述的一种基于区块链的半异步联邦学习方法,其特征在于,步骤4中,对于模型偏移程度不超过阈值的组,该组客户端的本地模型将使用异
9.根据权利要求1所述的一种基于区块链的半异步联邦学习方法,其特征在于,步骤4中,所有组客户端的本地模型同步更新时,正常客户端的权重通过以下方式计算:
10.根据权利要求1所述的一种基于区块链的半异步联邦学习方法,其特征在于,在模型训练过程中,识别恶意客户端的步骤如下:
...【技术特征摘要】
1.一种基于区块链的半异步联邦学习方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种基于区块链的半异步联邦学习方法,其特征在于,步骤2中,客户端的基本信息包括计算能力时间开销、通信能力时间开销以及模型偏移程度;
3.根据权利要求1所述的一种基于区块链的半异步联邦学习方法,其特征在于,步骤3的具体方法如下:
4.根据权利要求1所述的一种基于区块链的半异步联邦学习方法,其特征在于,step2的具体过程如下:
5.根据权利要求1所述的一种基于区块链的半异步联邦学习方法,其特征在于,step3的具体过程如下:
6.根据权利要求1所述的一种基于区块链的半异步联邦学习方法,其特征在于,step5的具体过...
【专利技术属性】
技术研发人员:王金龙,杨兴涛,刘镇宇,赵浩然,赵小琪,翟伟伟,张媛媛,熊晓芸,孟凡云,王超,
申请(专利权)人:青岛理工大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。