張 珉 梁美玉 薛 哲 管澤禮 潘圳輝 趙澤華
聯(lián)邦學習[1]使大量客戶端能夠在不損害數(shù)據(jù)隱私的情況下實現(xiàn)對機器學習模型的協(xié)作訓練.在聯(lián)邦學習設置中,參與的客戶端通常部署在各種環(huán)境中,或者由不同的用戶或機構(gòu)擁有[2-3].因此,每個客戶端本地數(shù)據(jù)的分布可能有很大差異(即數(shù)據(jù)異構(gòu)性).
這種在聯(lián)邦學習中參與設備之間的數(shù)據(jù)非獨立同分布(Non-Independently and Identically Distributed, Non-IID)使聯(lián)邦學習的模型優(yōu)化具有挑戰(zhàn)性[4-6].每個客戶端在自己的本地數(shù)據(jù)上訓練模型,優(yōu)化各自的局部目標.然而,局部收斂點可能無法較好地符合全局模型的目標(即在中央服務器上的聚合學習后的模型).因此,客戶端模型經(jīng)常偏離理想的全局優(yōu)化點,過擬合其局部目標.當產(chǎn)生客戶端漂移現(xiàn)象時,全局聚合模型的性能會受到影響.
目前學者們已提出許多針對聯(lián)邦學習中數(shù)據(jù)異質(zhì)性問題的解決方案,包括FedProx[7]、SCAFFOLD(Stochastic Controlled Averaging for Federated Lear-ning)[8]、FedDC(Federated Learning Algorithm with Local Drift Decoupling and Correction)[9]和FedIR[10].這些方法引入局部優(yōu)化約束,限制局部模型更新時與全局模型之間的差異.另外一些方法,包括Fed-Nova[11]、FedMA(Federated Matched Averaging)[12]、FedAvgM(Federated Averaging with Server Momen-tum)[13]和CCVR(Classifier Calibration with Virtual Representations)[14],改進全局聚合階段,使全局模型接近全局最優(yōu).還有一些方法引入共享數(shù)據(jù)集的方式,如FedRep(Federated Representation Learning)[15]和FedMix(Federated Mixup)[16],使客戶端本地模型除了學習本地數(shù)據(jù)的分布特征以外,還學習部分共享數(shù)據(jù)的分布特征.盡管上述方法在性能上有一定提升,但仍無法解決客戶端上數(shù)據(jù)分布異質(zhì)性帶來的因客戶端模型漂移而導致的全局模型性能下降問題.
首先,在局部訓練階段或全局聚合階段引入約束的方法,雖然限制局部模型和全局模型在訓練時更接近,但在抑制漂移的同時,也固有地限制本地模型的收斂潛力,使本地模型在每輪通信中學習到的信息較少,抑制本地模型的學習能力.因此相比經(jīng)典的基線方法[17],許多當前的聯(lián)邦學習優(yōu)化算法并不能在不同的數(shù)據(jù)Non-IID設置中提供穩(wěn)定的性能改進.其次,引入共享數(shù)據(jù)集的方式雖然使各客戶端學到相同的數(shù)據(jù)分布特征,但這種方式從根本上違背聯(lián)邦學習分布式訓練以及保護客戶端本地數(shù)據(jù)隱私的初衷.
在集中訓練范式中,網(wǎng)絡的泛化能力已得到較好研究[18],目的是對抗模型過擬合的問題.即使在訓練數(shù)據(jù)和測試數(shù)據(jù)符合相似數(shù)據(jù)分布的標準設置中,如果未采取預防措施,模型仍會對訓練數(shù)據(jù)過擬合.當訓練數(shù)據(jù)和測試數(shù)據(jù)分布不同時,這種效應會進一步增強.因此學者們引入各種正則化技術(shù),加強在訓練過程中的學習通用性和保持適當?shù)臏y試性能.同樣,在聯(lián)邦學習中,客戶端本地數(shù)據(jù)分布存在異質(zhì)性,導致局部模型更新過程中產(chǎn)生相互沖突的優(yōu)化目標,降低整體的模型性能.因此,在存在數(shù)據(jù)異構(gòu)性時,提高模型的通用性應是主要關注的問題之一.在訓練期間提高本地學習模型的通用性將緩解本地客戶端模型受異質(zhì)數(shù)據(jù)的影響程度,使客戶端的優(yōu)化目標更接近整體的優(yōu)化目標.
受模型正則化方法[19]的啟發(fā),本文考慮降低聯(lián)邦學習中異質(zhì)數(shù)據(jù)分布帶來的影響,提出基于結(jié)構(gòu)增強的異質(zhì)數(shù)據(jù)聯(lián)邦學習模型正則優(yōu)化算法(Regularization Optimization Algorithm for Heterogeneous Data Federated Learning Model Based on Structure Enhancement, FedSER).在客戶端利用異質(zhì)的本地數(shù)據(jù)進行訓練時,以結(jié)構(gòu)化的方式采樣子網(wǎng)絡.使用不同的增強數(shù)據(jù)訓練不同的子網(wǎng)絡學習增強表示,促進本地模型的通用性,得到的客戶端模型具有更強的泛化性能,可對抗本地數(shù)據(jù)異質(zhì)帶來的客戶端漂移問題,從而提升全局聚合模型的性能.在各種聯(lián)邦設置的多個數(shù)據(jù)集上的實驗表明,FedSER可達到較優(yōu)的全局模型精度.
聯(lián)邦學習是一種分布式機器學習范式,可在不泄露數(shù)據(jù)隱私的情況下協(xié)作多方客戶端進行機器學習模型的訓練.FedAvg(Federated Averaging)[17]是聯(lián)邦學習提出的最初解決方案,其思想是在服務器端生成初始化的全局模型并下發(fā)給各個客戶端節(jié)點,客戶端節(jié)點利用全局模型初始化自己的本地模型,并使用隨機梯度下降算法(Stochastic Gradient Descent, SGD)在本地數(shù)據(jù)集上進行多個輪次的迭代訓練,各客戶端基于本地數(shù)據(jù)集訓練的本地模型上傳給服務器端節(jié)點,服務器端根據(jù)各客戶端數(shù)據(jù)量大小對本地模型加權(quán)平均,聚合新的全局模型.然而在現(xiàn)實場景中,參與聯(lián)邦訓練的客戶端節(jié)點可能是不同的用戶設備或機構(gòu)[20],由于用戶使用習慣不同或機構(gòu)用戶群體不同等原因,客戶端上的本地數(shù)據(jù)存在數(shù)據(jù)Non-IID的情況.Li等[6]通過實驗證實傳統(tǒng)的FedAvg在數(shù)據(jù)Non-IID下面臨全局模型收斂緩慢、模型性能偏離最優(yōu)解等問題.
為了解決聯(lián)邦學習中由于數(shù)據(jù)Non-IID導致的全局模型精度下降問題,現(xiàn)有研究工作[21-31]可大致總結(jié)為兩個方向:1)通過數(shù)據(jù)增強的方式,對客戶端節(jié)點的本地數(shù)據(jù)集進行數(shù)據(jù)增強,或通過部分共享數(shù)據(jù)集,降低數(shù)據(jù)分布之間的異質(zhì)程度.2)通過對訓練過程添加約束,限制客戶端本地模型與全局模型相差過大.Yoon等[16]提出FedMix,通過一種現(xiàn)象級但簡單的數(shù)據(jù)增強方法Mixup[25],對異質(zhì)的本地數(shù)據(jù)進行數(shù)據(jù)增強,不需要在設備之間直接共享本地原始數(shù)據(jù),在數(shù)據(jù)高度Non-IID的聯(lián)邦設置下,FedMix在聯(lián)邦學習的基準數(shù)據(jù)集上表現(xiàn)出顯著的改進性能.Collins等[15]為了緩解不同本地數(shù)據(jù)分布的異質(zhì)程度,提出FedRep,對每個客戶端上的本地數(shù)據(jù)進行特征映射,將映射結(jié)果上傳服務器,由服務器整合映射結(jié)果,將整合后的結(jié)果再下發(fā)給各客戶端,客戶端在執(zhí)行本地模型更新時,先基于公共的數(shù)據(jù)映射數(shù)據(jù)集進行訓練,再基于其本地數(shù)據(jù)集進行訓練.
然而,通過節(jié)點間共享數(shù)據(jù)映射緩解數(shù)據(jù)異質(zhì)性程度的方法仍在本質(zhì)上暴露本地的數(shù)據(jù)特征,存在隱私泄露的風險.Li等[7]提出FedProx,在本地訓練過程中增加本地模型與全局模型之間的約束,構(gòu)建本地模型與全局模型的差異作為懲罰項約束,并加入本地模型訓練的損失函數(shù)中,使本地模型與全局模型更接近,緩解本地模型的漂移問題,得到聚合性能更好的全局模型.Gao等[9]提出FedDC,使用局部漂移變量,彌補局部模型與全局模型之間的差異,在參數(shù)水平施加一致性約束.Li等[26]提出MOON(Model Contrastive Federated Learning),為了處理客戶端之間數(shù)據(jù)分布的異構(gòu)性,利用模型間的相似性,采用對比學習[27]的方法,將局部模型盡可能相似于全局模型,縮小與上一輪訓練中局部模型的相似性,以此限制局部客戶端模型的優(yōu)化方向,與全局模型更一致,解決客戶端之間的數(shù)據(jù)分布異構(gòu)問題.
然而上述方法未考慮各個客戶端異構(gòu)性的數(shù)據(jù)分布,直接強制本地模型與全局模型趨同,雖然在一定程度上抑制本地模型漂移,但也客觀限制本地模型的學習能力,不具有較好的通用性.
深度神經(jīng)網(wǎng)絡在訓練中容易出現(xiàn)對訓練樣本過擬合的情況,導致訓練的模型泛化能力不佳.通常采用對訓練樣本進行數(shù)據(jù)增強或在網(wǎng)絡梯度中添加噪聲等方式以緩解過擬合現(xiàn)象[32],提高訓練模型的通用性.梯度增強[19]是一種對深度神經(jīng)網(wǎng)絡進行正則化的方法,通過網(wǎng)絡本身產(chǎn)生有意義的梯度偏差,而不僅僅是添加隨機噪聲.假設訓練樣本為一幅圖像,一個具有良好通用性的網(wǎng)絡應對其隨機變換(如隨機旋轉(zhuǎn)、隨機裁剪等)后的圖像識別為同一圖像.梯度增強利用變換的訓練樣本對一組子網(wǎng)絡的表示進行正則化,這些子網(wǎng)絡是根據(jù)網(wǎng)絡寬度(即每層的信道數(shù))從整個網(wǎng)絡中隨機采樣,子網(wǎng)絡以權(quán)重共享的方式進行訓練,完成后得到最終的全網(wǎng)絡表示.通過子網(wǎng)絡從不同的轉(zhuǎn)換中學到不同的表示,得到泛化性更好、通用性更強的全網(wǎng)絡表示.
現(xiàn)有的直接對客戶端更新加以限制的方法雖然減輕客戶端漂移的程度,使本地更新更接近于全局模型,但也阻礙本地模型充分學習少量異構(gòu)甚至同質(zhì)數(shù)據(jù)的能力.對于本地客戶端數(shù)據(jù)分布異質(zhì)性未知的聯(lián)邦學習來說,限制本地模型的學習能力并不理想.
本文提出基于結(jié)構(gòu)增強的異質(zhì)數(shù)據(jù)聯(lián)邦學習模型正則優(yōu)化算法(FedSER),整體框架如圖1所示.FedSER包括客戶端模型更新和服務器聚合兩部分.服務器負責協(xié)調(diào)整個聯(lián)邦訓練過程中模型的分發(fā)和聚合,客戶端基于本地數(shù)據(jù)更新本地模型.為了緩解客戶端模型漂移問題,采用模型結(jié)構(gòu)化增強的方式訓練本地模型.
圖1 FedSER框架圖
聯(lián)邦學習不同于傳統(tǒng)分布式機器學習集中收集數(shù)據(jù)的工作模式,其數(shù)據(jù)產(chǎn)生于客戶端本地,不同客戶端的本地數(shù)據(jù)集之間的數(shù)據(jù)分布通常服從Non-IID.FedSER的目的是緩解由于不同客戶端本地數(shù)據(jù)分布異質(zhì)導致的客戶端模型漂移問題,得到聚合后性能有所保證的全局模型.
定義Non-IID 分別從客戶端i、j中抽取服從分布(x,y)~Pi(x,y)和(x,y)~Pj(x,y)的數(shù)據(jù)樣本,如果
Pi(x,y)≠Pj(x,y),
稱客戶端i和客戶端j的本地數(shù)據(jù)是服從Non-IID.
在客戶端本地數(shù)據(jù)服從Non-IID的情況下,傳統(tǒng)的聯(lián)邦學習算法往往面臨模型精度損失的問題.每個客戶端在自己的本地數(shù)據(jù)上訓練模型,優(yōu)化各自的局部目標,假設參與聯(lián)邦學習的每個客戶端k上擁有本地數(shù)據(jù)集Dk,數(shù)據(jù)樣本個數(shù)為nk,則第k個客戶端的經(jīng)驗損失函數(shù)為:
fk(θ)=Ε(x,y)~Dk[lk(θ;(x,y))],
其中,(x,y)~Dk表示客戶端k上的數(shù)據(jù)集服從數(shù)據(jù)分布Dk,θ表示神經(jīng)網(wǎng)絡參數(shù),lk通常表示交叉熵損失.然而,由于不同客戶端上的數(shù)據(jù)服從Non-IID,即
Di(x,y)≠Dj(x,y),
客戶端上的局部收斂點不能較好地符合全局模型的目標,因此,客戶端模型偏離理想的全局優(yōu)化點,過擬合其局部目標.若最終目標是優(yōu)化如下函數(shù):
其中,F(θ)表示全局損失函數(shù),fk(θ)表示客戶端k的損失函數(shù),n表示全部樣本數(shù)量,nk表示客戶端k的樣本數(shù)量,則當產(chǎn)生客戶端漂移現(xiàn)象時,全局聚合模型的性能會受到影響.
面對由于不同客戶端上Non-IID數(shù)據(jù)帶來的全局模型精度損失問題,本文提出利用子網(wǎng)絡梯度增強的方法,對客戶端模型進行結(jié)構(gòu)正則化訓練,得到通用性更強的客戶端模型,抵抗異質(zhì)的局部數(shù)據(jù)分布帶來的局部客戶端漂移問題.具體來說,為了得到泛化效果更優(yōu)的局部模型,訓練本地模型時,先基于本地數(shù)據(jù)對局部模型進行訓練后,對局部模型的全網(wǎng)絡按結(jié)構(gòu)采樣不同的子網(wǎng)絡,再使用經(jīng)過增強變換的數(shù)據(jù)樣本對子網(wǎng)絡重新訓練,重新訓練的子網(wǎng)絡可以學到變換后的表示.這樣,更大的子網(wǎng)絡總是以權(quán)重共享的方式訓練更小的子網(wǎng)絡,因此可利用在更小的子網(wǎng)絡中學到的表示.經(jīng)過多輪迭代訓練,得到具有多樣化表示的完整網(wǎng)絡.
在每次迭代訓練中,使用原始數(shù)據(jù)訓練全網(wǎng)絡,這與常規(guī)訓練過程相同.再對n個子網(wǎng)絡進行采樣,其中n表示采樣子網(wǎng)絡的個數(shù).使用經(jīng)過增強變換的數(shù)據(jù)對子網(wǎng)絡進行訓練,使子網(wǎng)絡學到更通用的增強數(shù)據(jù)表示.最后利用累積全網(wǎng)絡和子網(wǎng)絡的損失更新模型的權(quán)值.客戶端模型的損失函數(shù)定義為
其中,Fθ表示全網(wǎng)絡模型,Fθωi表示采樣寬度為ωi的子網(wǎng)絡,Ti(·)表示對輸入執(zhí)行的變換操作(如分辨率縮放),μ表示n個子網(wǎng)絡上的交叉熵損失LCE和KL散度損失LKD求和之間的平衡參數(shù).每個子網(wǎng)絡的寬度ωi是從下界α和1.0(全寬)之間的均勻分布中采樣.本地客戶端模型結(jié)構(gòu)增強算法的偽代碼如算法1所示.
算法1客戶端模型結(jié)構(gòu)增強算法
輸入全局網(wǎng)絡模型F(θ),訓練樣本{x,y},
隨機變換T,子網(wǎng)絡個數(shù)n,
子網(wǎng)絡寬度下界α
輸出本地模型Fk(θ)
function ClientRegularization(Fk(θ),x)
訓練全網(wǎng)絡
前向傳播:outputf=Fθ(x)
計算損失:lossf=criterion(output,y)
正則化子網(wǎng)絡
for 子網(wǎng)絡i從1 ~n
固定批歸一化層的均值和方差
使用經(jīng)過變換的訓練樣本進行前向傳播:
outputi=subneti(Ti(x))
使用軟標簽outputf計算子網(wǎng)絡的損失:
lossi=criterion(outputi,outputf)
end for
機會致病菌:正常情況下,大多數(shù)大腸桿菌是非常安分守己的,它們不但不會給動物的身體健康帶來危害,反而還能競爭性抵御致病菌的進攻,同時還能幫助合成維生素K2,與畜禽是互利共生的關系。只有在機體抵抗力降低等特殊情況下,這些平日里的 “良民”才會興風作浪,移居到腸道意外的地方,造成相應部位的感染或全身播撒性感染。因此,大部分大腸桿菌通常被看做機會致病菌。
計算梯度,反向傳播
end function
以這種結(jié)構(gòu)正則化方式訓練的增強客戶端模型會具有更好的模型通用性,對于聯(lián)邦學習中不同客戶端上數(shù)據(jù)分布異質(zhì)的場景,客戶端模型的通用性更強意味著模型對異質(zhì)的數(shù)據(jù)分布具有一定的魯棒性,緩解客戶端模型的漂移現(xiàn)象,在全局模型聚合時可得到聚合后性能更優(yōu)的全局模型.另外,子網(wǎng)絡的訓練是通過增強之后的數(shù)據(jù),使用數(shù)據(jù)增強的方式訓練子網(wǎng)絡,可在一定程度上平衡不同節(jié)點間數(shù)據(jù)分布的差異,提高最終模型的表現(xiàn).
基于上述的本地模型結(jié)構(gòu)增強的優(yōu)化方法,本文面向聯(lián)邦學習中的數(shù)據(jù)異質(zhì)性場景,提出FedSER.FedSER設計為一種基于FedAvg的簡單有效的方法,旨在局部訓練中得到泛化性更強的客戶端模型,抵抗由于本地異質(zhì)數(shù)據(jù)分布帶來的客戶端模型漂移現(xiàn)象,緩解全局模型聚合時的性能下降程度.
正式訓練前,在服務器端進行全局模型參數(shù)的初始化,并下發(fā)給所有的客戶端,對其本地模型進行初始化.參與聯(lián)邦訓練的客戶端首先基于本地數(shù)據(jù)集完成一輪前向傳播,再根據(jù)網(wǎng)絡寬度隨機采樣n個子網(wǎng)絡,由隨機變換后的增強樣本對每個子網(wǎng)絡進行表示增強的訓練,完成本地模型的正則優(yōu)化,上傳本輪更新的模型梯度給服務器,由服務器聚合全部更新的本地模型,完成全局模型的更新,不斷迭代,直至達到全局模型收斂.
FedSER具體步驟如算法2所示.
算法 2FedSER
輸入聯(lián)邦通訊輪次T,客戶端本地的批大小B,
每輪參與通訊的客戶端數(shù)量K,
客戶端本地更新輪次E,學習率η
輸出全局聯(lián)邦模型θglobal
服務器端執(zhí)行
for 輪次t從 0 ~T- 1
將全局模型參數(shù)θglobal傳給每個客戶端k
for 客戶端k∈K
end for
end for
returnθglobal
客戶端執(zhí)行
使用全局模型參數(shù)θ初始化本地模型θk
for 迭代次數(shù)e從0 ~E-1
for 每個本地數(shù)據(jù)集批次b={x,y}
Fk(θ)←ClientRegularization(Fk(θ),x)
end for
將Fk(θ)回傳到服務器
end for
由于FedSER對FedAvg只進行輕量級修改,在本地模型訓練過程中對模型進行結(jié)構(gòu)化正則訓練操作,使得到的本地模型對異質(zhì)數(shù)據(jù)具有更好的通用性.FedSER對于聯(lián)邦聚合方面未有所改動,因此可輕松集成其它基于服務器端聚合時優(yōu)化的算法,實現(xiàn)優(yōu)化方法的即插即用.
本文在CIFAR-10、CIFAR-100、ImageNet-200這3個聯(lián)邦學習常用的數(shù)據(jù)集上進行實驗.CIFAR-10數(shù)據(jù)集包含10類,50 000個訓練樣本和10 000個測試樣本.CIFAR-100數(shù)據(jù)集包含100類,50 000個訓練樣本和10 000個測試樣本.ImageNet-200數(shù)據(jù)集包含200類,每類有500個訓練樣本、50個驗證樣本和50個測試樣本.
在CIFAR-10數(shù)據(jù)集上,采用卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network, CNN)作為基礎的編碼器,包括2個5×5的卷積層,2×2的最大池化層以及2個全連接層,以ReLU函數(shù)作為激活函數(shù).
在CIFAR-100數(shù)據(jù)集上,采用ResNet-50作為基礎的編碼器.
對于所有的數(shù)據(jù)集,采用兩層的MLP(Multi-layer Perceptron)作為映射頭,映射頭的輸出維度默認設置為256.為了公平起見,所有的對比算法和FedSER采用相同的模型架構(gòu).
本文選用如下對比算法:FedProx[7],FedDC[9],FedMix[16],FedAvg[17],MOON[26].評價指標采用準確率(Accuracy).
采用狄利克雷分布生成類間的Non-IID數(shù)據(jù)劃分,設有C個類別標簽,K個客戶端,每個類別標簽的樣本按不同比例劃分在不同的客戶端上.設矩陣X∈Rc×k表示類別標簽分布矩陣,其行向量xc∈Rk表示類別c在不同客戶端上的概率分布向量,該隨機向量在服從的狄利克雷分布pc~Dir(β)中采樣,使客戶端k上c類實例數(shù)的比例為pc,k,其中,Dir(β)表示具有濃度參數(shù)為β的狄利克雷分布(β默認為0.5).基于上述劃分策略,每個客戶端在一些類上可能只有少量數(shù)據(jù)或無數(shù)據(jù).將客戶端數(shù)量默認設置為10,每類在各個客戶端上的數(shù)據(jù)分布可視化如圖2所示.
(a)CIFAR-10 (b)CIFAR-100 (c)ImageNet-200
實驗平臺為4個RTX-2080Ti GPU,采用PyTorch作為機器學習訓練庫.對所有算法采用SGD優(yōu)化器,學習率設為0.01,SGD的權(quán)值衰減設置為0.000 01,動量設置為0.9.
對于FedProx、MOON和FedSER,均有超參數(shù)μ平衡其增加的損失項,因此對所有算法都采取最優(yōu)μ值,FedProx中μ=0.000 1,MOON中μ=1.0,FedSER中μ=1.75.在FedSER中,采樣子網(wǎng)絡的個數(shù)n=2,采樣寬度下界α=0.8.
各算法在3個數(shù)據(jù)集上的準確率對比如表1所示,表中C=16表示客戶端數(shù)量為16,
表1 各算法在3個數(shù)據(jù)集上的準確率對比
C=64×0.25(100)
表示客戶端總數(shù)為64,每次選取25%的客戶端參與訓練,總通訊輪次為100.
由表1可見,在具有數(shù)據(jù)異質(zhì)的聯(lián)邦場景下,FedAvg準確率最低,每種對模型加以正則優(yōu)化的方法都能在一定程度上緩解數(shù)據(jù)異質(zhì)性帶來的精度損失問題.特別地,FedSER在每個數(shù)據(jù)集上都性能最佳.在CIFAR-10數(shù)據(jù)集上,當客戶端數(shù)量為16時,相比FedAvg,FedSER有2.9%的準確率提升,相比性能表現(xiàn)次佳的MOON,FedSER也有1.7%的準確率提升.當隨機采樣64個客戶端中的25%參與聯(lián)邦訓練時,相比表現(xiàn)次優(yōu)的FedMix,FedSER有3.3%的準確率提升.
在CIFAR100數(shù)據(jù)集上,客戶端數(shù)量設置為16時,相比性能次優(yōu)的MOON,FedSER提升1.7%的準確率.在客戶端數(shù)量為32時,相比表現(xiàn)次優(yōu)的FedMix,FedSER提升1.8%的準確率.在ImageNet-200數(shù)據(jù)集上,相比在兩種設置下均為表現(xiàn)次佳的MOON,FedSER仍有約2%的準確率提升.這是由于直接對客戶端更新加以限制的方法雖然減輕客戶端漂移的程度,使本地更新更接近于全局模型,但也阻礙本地模型充分學習少量異構(gòu)甚至同質(zhì)數(shù)據(jù)的能力.
在數(shù)據(jù)Non-IID的設置下對所有算法進行性能對比分析.隨著數(shù)據(jù)異質(zhì)性程度的降低,客戶端漂移帶來的影響應變得不那么顯著,在CIFAR-100數(shù)據(jù)集上對比各算法的準確率,具體如表2所示.由表可見,所有算法在非數(shù)據(jù)異質(zhì)性下性能均有所提升,但相比Non-IID數(shù)據(jù)下的實驗結(jié)果,FedProx、MOON和FedMix在沒有數(shù)據(jù)異質(zhì)的情況下性能提升是有限的,只有1%~2%的準確率提升,而FedSER在兩種設置下準確率提升約3.8%.這是由于FedProx等在優(yōu)化本地模型時強制其與全局模型的優(yōu)化方向接近,阻礙本地模型充分學習少量異質(zhì)數(shù)據(jù)甚至同質(zhì)數(shù)據(jù)分布的能力.而FedSER從結(jié)構(gòu)而非數(shù)據(jù)的角度進行優(yōu)化,使本地模型學習到的表示更通用,從而緩解數(shù)據(jù)異質(zhì)帶來的影響,因此具有更好的泛化性和通用性.
表2 各算法在CIFAR-100測試集上的準確率對比
首先分析不同的數(shù)據(jù)異質(zhì)性程度對算法性能的影響.選取客戶端的數(shù)量為16時,在CIFAR-100數(shù)據(jù)集上,具體消融實驗結(jié)果如表3所示.
表3 數(shù)據(jù)異質(zhì)性程度不同時的準確率對比
所有實驗參數(shù)設置與3.3節(jié)實驗設置相同,只有數(shù)據(jù)分布Dir(β)有所改變,β值越小表示數(shù)據(jù)分布的異質(zhì)性越強.從表3中結(jié)果可看出,在不同數(shù)據(jù)異質(zhì)性設置下,FedSER具有穩(wěn)定的最優(yōu)性能,有較明顯的精度提升,并且隨數(shù)據(jù)同質(zhì)性增強,精度提升最明顯.
下面分析每輪通信中不同的本地迭代次數(shù)對算法性能的影響.設置每輪通信中本地迭代次數(shù)E=10,20,30.在CIFAR-100數(shù)據(jù)集上,各算法的準確率對比如表4所示.由表可見,隨著每輪中E的增加,大部分算法性能均有所提升,FedProx在E=20時表現(xiàn)最佳.FedSER在不同的本地訓練輪次中的實驗結(jié)果均最優(yōu),說明FedSER帶來的全局模型性能提升在不同的聯(lián)邦場景的設置下具有一定的魯棒性.
表4 本地訓練輪次不同時的準確率對比
需要指出的是,每輪通信中在本地訓練的輪次越多,越能使模型學到更多知識,越能提升性能.但在聯(lián)邦學習中,客戶端往往是計算和存儲資源有限的邊緣,一味通過增加本地訓練輪次的方法以提升模型性能會導致客戶端的計算代價急劇上升,違背聯(lián)邦學習的資源約束限制,并且通過這種方式帶來的性能提升是有限的.
最后,分析本地模型正則化時采樣不同的子網(wǎng)絡個數(shù)對算法性能的影響,當采樣子網(wǎng)絡的個數(shù)n=1,2,3,4時,在CIFAR-100數(shù)據(jù)集上選取16個參與客戶端,各算法準確率對比如圖3所示.子網(wǎng)絡個數(shù)選取不同主要影響客戶端模型經(jīng)過不同子網(wǎng)絡增強訓練后的泛化程度,實驗結(jié)果表明選取不同的子網(wǎng)絡個數(shù)都可在不同程度上提升算法性能.在n=2時,算法性能最佳,這是因為當采樣子網(wǎng)絡個數(shù)過少時,對客戶端模型的正則優(yōu)化不夠,客戶端漂移現(xiàn)象仍然存在;當子網(wǎng)絡個數(shù)過多時,會導致優(yōu)化后的客戶端模型泛化性更強,但不能充分學習本地數(shù)據(jù)分布特征.因此,n=2是一個綜合性能更優(yōu)的選擇,既通過子網(wǎng)絡的增強訓練避免客戶端的漂移,又能較好地擬合本地數(shù)據(jù)分布,得到總體性能最優(yōu)的模型性能.
圖3 子網(wǎng)絡個數(shù)不同時的準確率對比
本文面向聯(lián)邦學習中由于數(shù)據(jù)異質(zhì)性帶來的全局模型性能損失問題,提出基于結(jié)構(gòu)增強的異質(zhì)數(shù)據(jù)聯(lián)邦學習模型正則優(yōu)化算法(FedSER).基于本地模型結(jié)構(gòu)正則化的方法,在客戶端利用異質(zhì)的本地數(shù)據(jù)進行訓練時,以結(jié)構(gòu)化的方式采樣子網(wǎng)絡,使用不同的增強數(shù)據(jù)訓練不同的子網(wǎng)絡學習增強表示,促進本地模型的通用性,得到的客戶端模型具有更強的泛化性,可對抗本地數(shù)據(jù)異質(zhì)帶來的客戶端漂移現(xiàn)象,提升全局聚合模型的性能.FedSER是在客戶端層面做出的改進,今后將考慮結(jié)合聯(lián)邦學習中的通信資源約束,在全局模型聚合層面上做出優(yōu)化和探索.