一种分组解决数据异构联邦学习方法

文档序号:36330611发布日期:2023-12-10 06:31阅读:42来源:国知局
本发明属于人工智能机器学习领域,涉及一种分组解决数据异构联邦学习方法。
背景技术
::1、随着高新科技、人工智能(artificial intelligence,ai)和云计算的快速发展,联邦学习(federated learning,fl)从2016年谷歌团队提出以后,已经在近几年快速的发展,并广泛运用于物联网(internet of things,iot)领域,医院、银行等行业数据分析。与传统的分布式机器学习将本地数据上传到中央服务器,再由中央服务器进行训练不同。联邦学习利用全局模型更新参数并将其分发到各数据源,在本地直接利用本地设备的数据资源训练,结束之后再上传训练的结果参数即可。2、在联邦学习模型的框架训练中,本地设备收到云端服务器下发的初始化之后的训练参数,在本地做梯度下降更新之后的模型参数再上传至中央服务器进行加权平均,重复迭代直至整个模型收敛。这种只交换模型参数不直接交换本地设备的数据资源的训练方法,不仅可以保障本地数据的隐私安全,还减少了本地设备和中央服务器之间的通信负载。保护数据隐私有很好的表现,但在面对数据异构时,模型的收敛速度和精度往往达不到想要的结果。处理非独立同分布的数据(non-iid)时,本地设备之间因为数据的差异导致在训练时往往会有收敛方向不一致,如果数据相差特别大的话,可能会导致权重发散,最终影响模型收敛。这大大加重了本地设备和云服务器之间的通信负载。这种情况会对整个系统造成无法承担的网络带宽负担。在解决这些问题方面,大多数解决方案是处理非独立同分布数据,再参与整体的模型训练。例如,可以探索一些针对非iid数据的联邦学习算法,以解决“权重发散”问题,提高模型的准确率。此外,对于网络带宽负担问题,可以研究网络优化技术,或在实验中比较不同通信轮次对系统性能的影响,从而找到更有效的通信策略。3、为了提高fl处理异构数据的模型精度,一些模型优化技术和个性化联邦学习被相继提出,但是在提升模型精度的同时也引入了大量额外的开销。同时,如果将本地模型的数据暴露也会造成数据隐私安全问题。因此,在如何提高联邦学习模型处理non-iid数据并且同时保证数据隐私是当前研究的热点内容。4、卷积神经网络(cnn)是深度学习中常用的算法,可以分为卷积层(convolutionallayer)主要作用是提取特征。池化层(max pooling layer)主要作用是下采样,确保不损坏识别的结果。全连接层(fully connected layer)主要作用是分类。可以和其他深度学习框架很好的兼容,因此在人工智能,深度学习中运用广泛。技术实现思路1、针对上述联邦学习的问题,本发明提出一种基于cnn神经网络和k-means算法分组训练的联邦学习工作流构建方法,在数据预处理阶段采用keras深度学习模型库中所提供的预训练模型对数据进行处理提取数据的中的特征图。再应用传统的联邦学习训练模型进行训练。以解决联邦学习训练异构数据,模型性收敛速度慢,通信带宽大的问题。2、本发明解决技术问题所采用的技术方案:3、本发明提出基于cnn神经网络和k-means算法分组解决数据异构联邦学习方法主要分为两个过程:4、数据预处理阶段,将数据源进过cnn模型处理后进行特征提取,根据k-means算法k-means算法对各个设备进行聚类分组。5、联邦学习模型训练阶段,根据数据预处理阶段处理好的分组设备,由云端服务器下发的全局训练的参数,在本地和云端选择设备进行迭代训练。6、1.在数据预处理阶段:7、步骤(1)提取数据的特征图和哈希值,用加权平均的方法计算出特征图和哈希值的平均数。8、步骤(2)初始化数据结构,采用cnn神经网络模型对数据进行预处理,存储设备的平均特征值图和平均值哈希值9、步骤(3)构造一个输出向量有维度的|lshf|函数,用来确保p-stable lsh函数族计算出来的哈希值是经过函数加密的。10、步骤(4)将p-stable lsh函数族中每个lsh函数应用于各个设备的平均特征图,并对其进行哈希编码。11、步骤(5)保存第i个设备的特征图和哈希值。12、步骤(6)使用k-means算法,根据每个设备的特征图的哈希值,将所有的设备聚类成k组。13、2.在本地训练阶段:14、步骤(1)初始化本地设备;15、步骤(2)随机选择k个的本地设备做梯度下降训练;16、步骤(3)将计算之后的梯度下降训练后的本地模型上传到云端服务器。17、3.在云端训练阶段:18、步骤(1)用模型初始化参数w0初始化云端服务器上的全局模型;19、步骤(2)使用随机函数从每个设备分组中选择一个设备;20、步骤(3)将全局模型分派到所选定的设备;21、步骤(4)云端服务器接收所有选定本地设备的梯度下降训练后的本地模型,进行聚合,更新全局模型。22、进一步的,基于k-means算法的核心是将给定的数据划分k个簇(k是超参数),并且给每个样本数据对应的中心点,具体过程如下:23、a、对于k-means算法用xi代表第i个样本,ci是xi所属的簇,代表簇对应的中心点,m是样本总数。24、b、数据预处理,主要是标准化和异常点过滤。25、c、随机选择k个中心,记为26、d、定义损失函数:27、e、令t=0,1,2,…为迭代步数,重复如下步骤直到损失函数τ收敛:对每一个样本xi,将其分配到距离中心最近的点对每一个类中心k,重新计算该类的中心k-means算法最核心的部分就是先固定中心点,调整每个样本所属的类别来减少τ;再固定每个样本的类别,调整中心点继续减小τ。两个过程交替循环,τ单调递减直到最(极)小值,中心点和样本划分的类别同时收敛。28、在本地训练阶段;总体详细步骤为:假设本地的设备总数是n,在t轮开始时训练,随机选择k个设备参与模型的训练聚合。随机选择的k个本地设备的第i个设备包含的样本总数为di,在第t轮本地训练之后,每个设备的本地更新模型如下:29、30、其中和代表第i个设备的当前和更新后的本地模型参数,η是模型训练的学习率,是第i个设备模型在第轮所产生的梯度。为了减少通信的次数和通信负载,每个参与模型的设备更新后的模型参数上传到云端聚合。31、在云端训练聚合部分,步骤(4)云端收集到设备更新的模型之后使用联邦平均算法更新全局模型:32、33、其中,wt和wt+1代表第t轮的当前和更新后的全局模型参数,表示在第t轮所有k个设备上传的本地模型变化值的加权平均数,di为第i个设备包含的样本总数,表示第i本地设备在t+1轮训练模型的变化值。34、本发明的有益效果:35、提出根据cnn神经网络模型对数据提取特征分组训练的联邦学习方法,在解决联邦学习中数据异构问题提供了新的方案。数据预处理阶段根据特征的情况运用k-means算法对数据进行分组处理,经过相关步骤实验可知能够有效地稳定全局模型的收敛方向,加快整个模型的通信开销和收敛速度。36、在传统的联邦学习算法基础上加入了lsh函数族对本地设备所提取的特征图进行编码处理,然后把根据特征图所计算的哈希值发送到云端服务器进行数据处理。进一步减少了本地设备数据的参与训练,保障了本地设备的隐私。37、本发明所提出的步骤不仅有效的加快了全局收敛速度,而且实现了更高的模型推理速度,为后续联邦学习数据异构提供了新的方法。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1