智能制造[1]是实现工业体系转型升级的新一代工业技术,随着工业互联网的发展,传统制造产业逐渐向智能工厂和智能制造方向快速发展,机器学习被广泛应用于工业制造领域.根据欧盟在2018年出台的《通用数据保护协议》,各工厂之间的数据不可以直接共享使用,且各企业或工厂之间出于竞争关系也会导致数据资源无法整合和共享[2].Mcmahan等为解决以上问题,提出了联邦学习[3].联邦学习技术其本质是分布式机器学习[4],即将机器学习训练所需的数据存储及模型训练的过程都迁移到本地用户.因此,联邦学习可以十分巧妙地解决工业制造领域数据无法共享的问题.降低通信成本是优化联邦学习的热门研究方向之一[5].本研究提出一种基于云、边、端架构的联邦学习算法[6-8],首先将行业模型下发到设备端,设备端训练本地模型,然后上传到边缘端进行模型聚合,经多次迭代后,上传到云端进行全局模型聚合.本地模型在边缘端的多次融合,可提高局部模型的精度,减少联邦学习的通信轮次,降低边缘端与云端之间的通信成本.目前,工厂设备毫秒级的数据采集会导致短时间内产生大量的新增数据样本,如何将新增数据样本融合到原行业联合模型中又是一个新的问题.经典的联邦学习算法须要让新增数据样本和原数据样本进行重复训练,从而更新行业联合模型,但是这样会大大增加训练时间,且各工厂端不均衡的数据量会导致模型发生倾斜.针对以上问题,本研究改进经典联邦学习算法,通过联邦增量学习算法[9-10]计算设备端数据权重值和模型影响度,修改模型加权聚合策略,从而可以持续优化行业联合模型,并防止模型发生倾斜.1 研究基础1.1 联邦学习原理联邦学习的核心思想是即使将训练所需的全部数据分开存储,也能够联合训练机器学习模型,即一种具有隐私保护的分布式机器学习技术.联邦学习架构如图1所示.联邦学习主要包括模型训练和全局模型融合两部分,其一次迭代的流程如下.10.13245/j.hust.239498.F001图1联邦学习架构图a.所有参与设备下载全局模型ωt-1,其中t为通信轮次.b.设备ki(i=1,2,⋯,K)训练本地模型ωt,k.c.所有参与设备将本地模型上传到中心服务器.d.中心服务器根据接收到的本地模型参数进行加权聚合,得到新的全局模型.1.2 边缘计算在联邦学习中的应用边缘计算是指在靠近数据的一端,采用具有一定的算力、通信和存储能力的服务器,并提供相应的服务.由于云中心服务器的计算能力有限,云中心端与设备端之间的通信次数较大,因此减少联邦学习过程的通信成本是一个难题.文献[3]为减少通信成本,提出增加参与设备端的设备数量,同时提出全局模型聚合之前在本地进行多次更新,虽然此算法相比经典联邦学习算法可以减少较多的通信次数,但是与云服务器之间的通信次数还是比较频繁.基于边缘计算的分层联邦学习架构[8]相比于经典联邦学习模型增加了边缘端,其中边缘端的主要作用是模型聚合和更新.参与设备的本地模型首先在边缘端加权聚合,多次迭代之后,提高局部模型的精度,再由边缘端上传到云服务器进行全局模型聚合,从而减少边缘端与云端之间的模型参数交互次数,减轻云服务器的压力,降低联邦学习的通信成本.基于边缘计算的联邦学习主要包括本地模型训练、边缘模型聚合和全局模型聚合,一次迭代的流程如下.a.所有参与设备下载ωt-1.b.ki训练ωt,k.c.ki上传本地模型到边缘端.d.边缘端sj(j=1,2,⋯,S)接收设备上传的模型,进行模型聚合和更新,边缘聚合可表示为ωe,s=nkinωt,ki,式中:ωe,s为边缘全局模型;nki为设备ki的总数据量;n为所有设备的总数据量 .e.多次迭代后,所有边缘端将聚合更新后的模型上传到云服务器.f.云服务器根据接收到的模型参数加权聚合,得到新的全局模型ωt,有ωt=nsjNωe,sj,式中:N为云端所有的数据量;nsj为边缘端sj的总数据量.2 分层联邦增量学习架构和方案2.1 整体架构和方案实施流程在工业制造领域背景下,本研究提出分层联邦增量学习方案,主要分为云端、设备端和边缘端,其宏观架构图和方案实施流程如图2所示.图中序号①~⑦代表方案实施流程,在设备端采集本地训练数据后,依次为分发全局模型、设备端下载本地模型、训练本地模型、上传本地模型到边缘端、聚合边缘模型、上传边缘本地模型到云端、聚合全局模型.10.13245/j.hust.239498.F002图2整体方案架构图增量学习模块作用于整个联邦学习过程,持续优化行业联合模型,如图3所示.10.13245/j.hust.239498.F003图3全局模型持续优化图分层联邦增量学习主要分为两个模块:首先是原数据样本训练过程,然后是增量样本训练过程.对于原数据样本,联邦学习训练过程如下:a.设备缓存全局模型ωt-1;b.设备训练本地模型ωt,k,并上传到边缘端;c.边缘端计算设备的数据权重值,并使用双曲正切激活函数得出模型参数系数占比;d.修改聚合策略,多次迭代得到边缘全局模型并计算设备的模型影响度∂t-1,k;e.所有的边缘端边缘全局模型上传到云服务器,云服务器计算边缘端数据权重值ps,并使用双曲正切激活函数得出模型参数系数占比γts,修改聚合策略,多次迭代得到全局模型ωt.新增一次数据样本,联邦学习训练过程如下:a.新增数据监控模块持续监控设备新增数据样本Ik,当全局模型得到更新,计算此时新增样本占比Wk和新增样本模型影响度∂t,k;b.根据新的全局模型,训练设备新增数据样本的ωt,k';c.为了使∂t,k越大的设备所占的模型聚合加权越大,且增幅程度降低,使用双曲正切函数作为增量衰减函数得到θt,k;d.根据θt,k,修改聚合策略,得到新增边缘全局模型;e.上传新增边缘全局模型,加权聚合得到新增数据全局模型;f.最终,修正ωt,并下发到设备端,准备下一次的增量学习.2.2 分层联邦学习目前各学者在联邦学习通信效率的优化策略上采用了优化联邦学习算法、压缩模型、分层联邦学习架构等方案[11],这些方案在一定程度上降低了通信成本、减少了整体训练次数、提高了通信效率.但是分层联邦学习训练架构只适用于特定的场景对象,本研究采用的联邦学习背景是工业制造领域,此领域可适用于分层联邦学习架构[12].本研究联邦学习架构分为云端、边缘端和设备端,其部署情况和作用分别为如下.a.设备端工厂中的数控设备部署在设备端,数控设备包括机械臂、码垛机器人、数控铣床、自动导向车等.作用是下载最新的行业联合模型、训练本地模型、监控并存储新增数据样本.b.边缘端边缘服务器部署在边缘端,即每个工厂顶端,作用是计算边缘端设备数据权重值和模型影响度、加权聚合本地模型并更新边缘全局模型.c.云端云服务器部署在云端,作用是存储和下发行业联合模型、加权聚合边缘全局模型并更新行业联合模型.2.3 增量学习意义和算法目前在工业制造领域,数控设备数据采集方式逐渐趋向于开放式数控系统接口采集[13],在训练行业联合模型过程中,会产生大量的新增数据样本.当新增数据样本时,原行业联合模型的准确率往往会变得较低,如何使模型对原数据样本和新增数据样本都有较高的准确率成为一个问题.经典的联邦学习算法只能对新增数据和原数据进行重复学习,这不仅会增加时间成本,还存在着模型无法聚敛的可能.因此,本研究采用增量学习算法,通过计算新增样本占比和新增样本的模型影响度、修改模型加权聚合系数,加快新增数据与原模型的融合,持续优化行业联合模型,使行业联合模型越来越接近于问题的最优解.新增数据监控模块持续工作于整个流程,设备端根据样本池中的原数据样本训练本地模型的同时,将新增数据样本放入样本池中,当得到新的行业联合模型,停止新增数据样本加入样本池,删除原数据样本,然后根据新的行业联合模型对新增数据样本进行训练,再将新增数据样本放入样本池中,当得到新的行业联合模型,停止新增数据加入样本池,删除原新增样本数据,周而复始,如图4所示.10.13245/j.hust.239498.F004图4增量模式图计算k新增样本占比Wk,有Wk=|Ik|/|Dk|,式中Dk为设备当前的数据量.根据∂t-1,k,计算新增样本的模型影响度∂t,k,有∂t,k=Wk∂t-1,k.模型影响度即为参与设备端在完成一次边缘全局模型聚合,本地数据样本对模型性能的影响,在一定程度上反映了本地数据样本的价值.为了使∂t,k越大的设备端,所占的模型聚合加权越大,且增幅程度降低,使用双曲正切函数作为增量衰减函数,有θt,k=tanh(∂t-1,k).模型影响度可以确定边缘本地模型对聚合操作的贡献,区分边缘本地模型的利用价值,解决新增数据样本可能导致的偏离问题最优解.因此,提出新增数据样本的边缘全局模型聚合加权公式,即ωe,s'=∑i=1Knki'n'θt,kiωt,ki',式中:n'为所有设备的新增总数据量;nki'为设备k的新增总数据量.新增边缘全局模型上传到云中心服务器,计算新增全局模型,有ωt'=∑j=1Snsj'N'ωe,sj',式中:nsj'为边缘端的新增总数据量;N'为云端的新增数据量.最后根据新增全局模型和原全局模型,加权聚合修正全局模型,有Nωt+N'ωt'N+N'→ωt.在增量学习过程中,全局模型不断更新和修正.每次得到新的全局模型后,云端将全局模型下发到设备端,然后再对新增数据样本训练,经过一系列的加权聚合,持续修正行业联合模型.2.4 数据不均衡优化算法由于各工厂设备端的差异,因此不同工厂的训练数据量存在严重不均衡的情况[14-15].为了解决数据不均衡问题,本方案在设备端和边缘端平衡数据量的差异.2.4.1 设备端的数据均衡算法首先,计算设备的数据量占所在边缘端的数据权重值pki,有pki=nki/n.为了使数据权重值大的设备所占的聚合加权越大,且增幅程度衰减,本方案结合双曲正切函数得出模型参数系数占比γki,有γki=tanh(1-pki).更改边缘端的加权聚合策略,得到ωe,sj=nkinγkiωt,ki.2.4.2 边缘端的数据均衡算法边缘端的数据均衡算法和设备端的数据均衡算法相同.首先,计算边缘端的数据量占比所有边缘端数据量总数的权重值psj,有psj=nsj/N.为了使数据权重值大的边缘端所占的聚合加权越大,且增幅程度衰减,本方案结合双曲正切函数得出模型参数系数占比γsj,有γsj=tanh(1-psj).更改边缘端的加权聚合策略,得到全局模型ωt=∑j=1SnsjNγsjωe,sj.3 实验及结果3.1 实验环境和实验数据描述运行实验服务器配置为:Intel(R) Xeon(R) Gold 6240 CPU @ 2.60GHz,36 GiB内存,Ubuntu 18.04.1 64位操作系统.开发语言及依赖包版本为:Python3.6,torch1.10.2,torchvision0.2.1.为了使实验具有权威性,选取CIFAR-10数据集,此数据集共包括6×104份数据,由5×104份训练数据和1×104份测试数据组成.数据集划分为5个训练块和1个测试块,每个块包括1×104份数据.3.2 分层联邦学习实验实验模拟1个云端、5个边缘端、500个设备端,每个边缘端管理100个设备端.每个边缘端随机分配1个训练块和一个测试块,每个设备端随机分配100份训练数据和100份测试数据.在正式实验前,对参与联合训练的设备端比例系数F进行实验测试,确定设备端参与数量,以确保方案的高效率和高性能.根据参考文献[12]确定边缘端聚合次数为50次.此次实验固定云端聚合次数为10次,自变量为F,因变量为训练时间、训练集准确率和测试集准确率.表1中训练总时间、训练集准确率和测试集准确率的值都是经过10次重复实验得出的平均值.10.13245/j.hust.239498.T001表1参与比例对模型性能的影响F云端聚合次数训练总时间/s训练集准确率/%测试集准确率/%0.110657.79858.5852.310.3101 999.16259.1152.510.6104 010.97859.3052.551.01011 894.95859.1452.42从表1可直观看出:随着F的增加,训练集准确率和测试集准确率都有所增高,但是时间也在大幅度增加.当F=1.0时,训练总时间增加,但准确率却降低,猜测是由于参与设备过多,造成冗余,因此影响方案的准确率.综上所述,选取F=0.1,保证了方案的准确率且提高了模型的训练效率.在确定了F值后,固定中心服务器聚合次数为20次,对比分层联邦学习算法和FedAvg算法的训练集和测试集准确率.从表2中可得出结论:分层联邦增量学习算法在训练集和测试集的准确率相比于FedAvg分别提高了12.34%和5.36%.10.13245/j.hust.239498.T002表2不同算法在云端聚合20次的准确率算法F云端聚合次数训练集准确率/%测试集准确率/%FedAvg0.12050.9048.18本文算法0.12063.2453.54图5为不同算法训练集和测试集准确率详细变化,虽然分层联邦增量学习算法提高了准确率,但存在边缘端聚合的过程,增加了模型训练时间.10.13245/j.hust.239498.F0051—FedAvg算法训练集;2—本文算法训练集;3—FedAvg算法测试集;4—本文算法测试集(下同).图5 同次数云端聚合的准确率变化此次实验固定模型训练时间,即经过相同的训练时间,对比分层联邦增量学习算法和FedAvg算法的准确率.图6展示两种算法经过用时2 500 s模型训练后,训练集的准确率变化图,FedAvg算法在1 000 s以内的模型训练准确率较高,出现此情况是因为模型训练时间较短,模型在云端聚合的次数较少,在此后的时间,分层联邦增量学习算法的模型训练准确率明显高于FedAvg算法.10.13245/j.hust.239498.F006图6相同时间两种算法云端聚合的准确率变化由以上两个实验得出结论:无论是固定中心服务器的聚合次数,还是固定模型训练时间,分层联邦增量学习算法都优于FedAvg算法,从而降低了联邦学习的通信时间和成本.3.3 增量学习实验为了使实验结果更显著,增量学习实验设置1个边缘端,100个设备端,F=0.1,且本地模型在边缘端的聚合次数为10次,在云端聚合20次,增量学习的实验数据使用3.2节划分的数据.首先随机选取3个训练块作为原数据样本进行训练;当训练结束得到新的行业联合模型时,随机选取1个训练块作为新增数据样本进行训练;当再次更新行业联合模型时,把最后1个训练块作为新增数据样本投入到更新后的行业联合模型中进行训练.随着新增样本次数的增加,模型准确率如图7所示,由实验结果可以得到:每次新增数据样本训练结束,行业联合模型的准确率会稳步升高,说明了新的行业联合模型具备了处理原数据样本和新增数据样本的能力.增量学习模块可持续优化行业联合模型且防止了行业联合模型发生倾斜.10.13245/j.hust.239498.F007图7模型准确率随新增样本次数的变化以下实验为云边端三层架构下增量和非增量连邦学习的效率对比,实验配置同增量学习实验.非增量算法须要将新增数据和原数据一起重新训练,而增量算法只须训练新增数据,再与原模型融合.从图8可得出结论:当模型达到相同的准确率时,增量算法实验所需时间比非增量算法实验所需时间少,且准确率相差不大.10.13245/j.hust.239498.F008图8云边端架构下增量和非增量算法的实验效率对比3.4 数据不均衡实验为了验证本文算法可解决数据不均衡的问题,实验设置5个边缘端,500个设备端,每个边缘端管理100个设备端,F=0.1,本地模型在边缘端的聚合次数为30次,在云端聚合20次,实验数据使用3.2节划分的数据集.本次实验采用三种不同的数据划分方式如图9所示,第一种是给设备端划分均衡数据,如蓝色线为给各端划分1,1,1,1,1份数据量的结果,第二种和第三种是给设备端划分不均衡数据,其中第二种(橙色线)为给各端划分1,3,2,4,1份数据量的结果,第三种(绿色线)为给各端划分1,5,1,1,1份数据量的结果.10.13245/j.hust.239498.F009图9数据不均衡对比实验由图9可见:在各端数据存在不均衡的情况下,使用本文算法,得出行业联合模型的准确率相差不大.证明了此算法可解决分层联邦增量学习中数据不均衡的问题.4 结语本文算法在经典联邦学习算法的基础上,增加了边缘端和增量学习算法.在工业领域背景下,存在分层联邦学习架构,可使用边缘计算缓解中心服务器的压力,减少参与设备端与中心服务器之间的交互次数,降低通信成本.在增量学习过程中,计算模型影响度,更改聚合策略,更新和修正行业联合模型,持续优化行业联合模型,保证了模型对原数据和新增数据的处理能力.

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读