黃聿辰,趙彥超,郝江山,陳 兵
(南京航空航天大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,南京 210000)
聯(lián)邦學(xué)習(xí)已經(jīng)成為現(xiàn)代大規(guī)模分布式機器學(xué)習(xí)中的一個重要方向.聯(lián)邦學(xué)習(xí)與傳統(tǒng)的集中式學(xué)習(xí)不同,集中式學(xué)習(xí)使用存儲在中央服務(wù)器中的大型數(shù)據(jù)集對模型進行訓(xùn)練,而在聯(lián)邦學(xué)習(xí)中,訓(xùn)練數(shù)據(jù)可以分布在大量的客戶端上[1],比如電話、網(wǎng)絡(luò)傳感器、醫(yī)院或者各類邊緣設(shè)備[2],然后通過服務(wù)器聚合成完整的全局模型,而不用傳輸用戶數(shù)據(jù),從而保護了用戶的隱私信息.
聯(lián)邦學(xué)習(xí)本地通常采用的神經(jīng)網(wǎng)絡(luò),其處理各種計算機視覺任務(wù)非常有效.一般來說,在訓(xùn)練過程中,神經(jīng)網(wǎng)絡(luò)都包含所有數(shù)據(jù)樣本.然而,在聯(lián)邦學(xué)習(xí)的環(huán)境中,各個客戶端數(shù)據(jù)樣本量和樣本類別都處于變化之中,即數(shù)據(jù)異構(gòu)[3].這更類似于生物系統(tǒng)在現(xiàn)實世界中的學(xué)習(xí)方式.在這種情況下,各個客戶端神經(jīng)網(wǎng)絡(luò)只能訓(xùn)練各自保有的數(shù)據(jù)集.因此中心服務(wù)器系統(tǒng)面臨的主要問題是當(dāng)神經(jīng)網(wǎng)絡(luò)權(quán)值適應(yīng)新的任務(wù)時,可以保持對于先前學(xué)習(xí)到的數(shù)據(jù)的識別能力.
聯(lián)邦學(xué)習(xí)優(yōu)化的關(guān)鍵挑戰(zhàn)是數(shù)據(jù)分布的異構(gòu)性.由于參與聯(lián)邦學(xué)習(xí)的各個邊緣設(shè)備所處實際物理環(huán)境的不同,能為聯(lián)邦學(xué)習(xí)框架提供的數(shù)據(jù)各不相同,這種不同的數(shù)據(jù)分布會導(dǎo)致邊緣設(shè)備在本地訓(xùn)練過程中產(chǎn)生模型偏移.采用這類模型進行聚合,生成的全局模型無法在全類別數(shù)據(jù)集上有優(yōu)異表現(xiàn).最常用的FedAvg[4]通過在與服務(wù)器通信之前對可用客戶端執(zhí)行多個本地更新來解決通信瓶頸,即增加本地訓(xùn)練輪數(shù),增大本地訓(xùn)練計算時間在總體任務(wù)中的時間占比,從而減少通信開銷占比.雖然它在某些應(yīng)用中取得了成功,但是該方案未充分考慮聯(lián)邦學(xué)習(xí)實際應(yīng)用場景,即各個客戶端數(shù)據(jù)異構(gòu),在多輪的本地訓(xùn)練過程中,模型偏移隨著迭代而不斷加深,導(dǎo)致采用平均算法聚合的全局模型在全類別數(shù)據(jù)集上性能大幅下降,因此數(shù)據(jù)異構(gòu)[5]仍是聯(lián)邦學(xué)習(xí)的一個活躍研究領(lǐng)域.
FedAdp[6]考慮了局部模型與全局模型的余弦相似角[7],在聚合過程中按照相似程度賦予權(quán)重,該方案一定程度上抑制了局部模型偏移,但是與FedProx相似,僅僅是直接做了全局模型趨同,未能結(jié)合各個客戶端異構(gòu)性的數(shù)據(jù)分布.FEDC[8]提出對運算效率低下的客戶端進行低權(quán)重聚合,以保證全局模型的性能,但是該方案未考慮各個客戶端數(shù)據(jù)集信息量,即運算效率較低的客戶端的數(shù)據(jù)集對全局模型收斂的重要性未被考慮.Huang[9]提出一種結(jié)合本地訓(xùn)練精度與訓(xùn)練頻率信息進行加權(quán)的聚合方式,可以幫助服務(wù)器選擇更好的模型進行聚合,但是該權(quán)重設(shè)置屬于啟發(fā)式方案,并沒有對其收斂性進行證明.
因此,由于數(shù)據(jù)異構(gòu)造成的局部模型偏移問題極大的引起了全局聚合模型識別性能的下降,針對該問題,本文提出了面向數(shù)據(jù)異構(gòu)情況下的聯(lián)邦學(xué)習(xí)局部模型偏移的性能優(yōu)化方案.由于神經(jīng)網(wǎng)絡(luò)在對數(shù)據(jù)集的訓(xùn)練過程中,通常僅有部分參數(shù)對數(shù)據(jù)的特征進行擬合,而另外一部分參數(shù)在訓(xùn)練過程中所起到的作用較小,該現(xiàn)象也稱為神經(jīng)網(wǎng)絡(luò)的過參數(shù)化.其中梯度變化量體現(xiàn)了該參數(shù)在模型訓(xùn)練過程中起到的作用,積極擬合數(shù)據(jù)特征的相關(guān)參數(shù)會在訓(xùn)練中產(chǎn)生更多梯度變化量.利用上述結(jié)論,本方案在聯(lián)邦學(xué)習(xí)本地訓(xùn)練過程中,在其損失函數(shù)上添加待訓(xùn)練模型與剩余各個客戶端模型參數(shù)之間的差值二范數(shù),即將本地待訓(xùn)練模型與其余客戶端模型參數(shù)作差并求其二范數(shù),用剩余客戶端的模型梯度增益對應(yīng)作為二范數(shù)每個參數(shù)位置的權(quán)重系數(shù),將該整體形成懲罰項,在優(yōu)化過程中,對新構(gòu)建的損失函數(shù)進行梯度下降優(yōu)化,從而保證了所有客戶端的模型在本地訓(xùn)練過程中,依然保持著對其他客戶端數(shù)據(jù)分布的擬合能力,有效抑制局部模型偏移.所有參與聯(lián)邦學(xué)習(xí)的客戶端都能保持對其余所有客戶端數(shù)據(jù)分布的識別能力,將這些客戶端的梯度更新進行聚合,生成的全局模型性能有所保證.
本文主要貢獻有:
1)通過增加本地待訓(xùn)練模型與其余客戶端模型參數(shù)差值的二范數(shù),并在該二范數(shù)上添加模型梯度權(quán)重,將整體作為本地訓(xùn)練懲罰項,抑制本地模型對各自數(shù)據(jù)集的模型偏移,來達到提升全局模型識別精度的效果.
2)在不改變聚合方式的情況下,有效解決了數(shù)據(jù)異構(gòu)的問題,使得模型框架更好的適配實際應(yīng)用環(huán)境,實現(xiàn)了優(yōu)化框架的即插即用.
3)對于提出的優(yōu)化方案進行了系統(tǒng)的證明,從理論上保證了收斂性和收斂速度.
大規(guī)模機器學(xué)習(xí)對數(shù)據(jù)中心服務(wù)器的性能需求非常巨大,因此眾多分布式學(xué)習(xí)方案應(yīng)運而生.隨著手機、傳感器等邊緣計算設(shè)備算力的增長和普及,以及將數(shù)據(jù)移動到數(shù)據(jù)中心的通信開銷較為龐大的問題,在分布式設(shè)備組成的網(wǎng)絡(luò)中進行各自的本地學(xué)習(xí)來進行統(tǒng)計模型生成的方案變得越來越有吸引力.這個方案被稱為聯(lián)邦學(xué)習(xí),它需要解決隱私、數(shù)據(jù)設(shè)備異構(gòu)以及大規(guī)模分布式網(wǎng)絡(luò)通信開銷等新問題.
最近提出的一些優(yōu)化方法,對上述問題提出了不少有創(chuàng)意的解決方案.如Boyd[10]所提方案以及小批量優(yōu)化方法[11].在大型網(wǎng)絡(luò)中,允許不精確的本地更新來平衡通信與計算,和在一個小部分集合的設(shè)備組之間進行即時通信.Fedpaq[12]提出了一種周期平均和量化功能的高效通信聯(lián)邦學(xué)習(xí)方法,它通過多任務(wù)學(xué)習(xí)框架為每個設(shè)備學(xué)習(xí)獨立但是相關(guān)的模型并進行周期性更新和發(fā)送.盡管該方法在理論上有保證,但這種方法并不能推廣到所有問題上.在非凸設(shè)置下,一種基于平均原始局部隨機梯度下降(SGD)更新的方法[13],實驗證明性能良好.SkewScout[14]提出了通過本地訓(xùn)練輪數(shù)的限制來控制局部模型偏移的程度,從而提升全局模型的識別精度,但是該方案僅僅考慮了模型性能,并未考慮在聯(lián)邦學(xué)習(xí)實際應(yīng)用場景中,通信開銷也是一個重要的問題,壓縮本地訓(xùn)練輪數(shù)會導(dǎo)致通信開銷占比顯著增大,從而導(dǎo)致計算與數(shù)據(jù)傳輸比例大幅減小.IFCA[15]通過按照模型參數(shù)相似程度進行簇劃分,在各個簇內(nèi)進行模型共享,從而使得簇內(nèi)模型更新方向的一致性,抑制簇內(nèi)模型偏移.該方案提升了簇間的全局聚合模型性能,但是該方案在實驗過程中發(fā)現(xiàn),需要每輪訓(xùn)練過程中保持較高的客戶端參與率,否則各個簇內(nèi)客戶端數(shù)量不夠,無法保持該方案的優(yōu)化效果,但是聯(lián)邦學(xué)習(xí)實際應(yīng)用場景中,邊緣設(shè)備的不可用性也是需要考慮的一部分因素.
盡管,最近的一些工作[16,17]探索了數(shù)據(jù)異構(gòu)環(huán)境下的收斂性保證問題,但他們要求所有設(shè)備參與每一輪通信,這在現(xiàn)實聯(lián)邦學(xué)習(xí)網(wǎng)絡(luò)中往往是不可行的.還有一些啟發(fā)式方法旨在通過共享本地設(shè)備數(shù)據(jù)或服務(wù)器端代理數(shù)據(jù)來解決數(shù)據(jù)異構(gòu)[18,19].如Liam[20]該作者通過各個客戶端將自己本地數(shù)據(jù)進行多維度映射,并在該過程中保存數(shù)據(jù)特征,然后將映射結(jié)果傳輸給服務(wù)器,由服務(wù)器對所有客戶端上報數(shù)據(jù)進行整合,再下發(fā)給各個客戶端,客戶端進行本地訓(xùn)練時,先在服務(wù)器下發(fā)的多個客戶端映射數(shù)據(jù)集上進行訓(xùn)練,然后在本地數(shù)據(jù)集上進行訓(xùn)練,從而減少數(shù)據(jù)異構(gòu)帶來的全局性能損失.該方案的全局模型性能較高,但是即使對客戶端數(shù)據(jù)進行的映射操作,依然存在暴露本地數(shù)據(jù)的行為.
因此,這些方法是不現(xiàn)實的.除了增加網(wǎng)絡(luò)帶寬負擔(dān)之外,根據(jù)模型權(quán)重推測出數(shù)據(jù)分布[21]的方式違反了聯(lián)邦學(xué)習(xí)的隱私保護要求.將各個客戶端的數(shù)據(jù)進行周期性局部分享的方式[22]則需要詳細地生成或收集此類局部輔助數(shù)據(jù),計算開銷較大,局部輔助數(shù)據(jù)生成難度較大.
除了數(shù)據(jù)上的異構(gòu)性之外,系統(tǒng)上的異構(gòu)性也是聯(lián)邦學(xué)習(xí)中的一個關(guān)鍵問題.由于硬件(CPU、內(nèi)存)、網(wǎng)絡(luò)連接(3G、4G、5G、WIFI)和功率(電池水平)的變化,系統(tǒng)屬性也有所不同.這些系統(tǒng)級的異構(gòu)性極大地引發(fā)了諸如掉隊和容錯等問題.在異構(gòu)網(wǎng)絡(luò)中,聯(lián)邦學(xué)習(xí)優(yōu)化的一種策略是忽略不受約束的設(shè)備,即在訓(xùn)練框架中,放棄聚合無法完成一定訓(xùn)練輪數(shù)的設(shè)備所提供的梯度更新信息[23].然而,這會對收斂產(chǎn)生負面影響,因為它減少了有助于訓(xùn)練的有效設(shè)備的數(shù)量,如果被丟棄的設(shè)備具有特定的數(shù)據(jù)特征,則會在全局模型收斂的過程中產(chǎn)生偏差.
最接近本文的工作的是Prox[24],該文章的作者提出的FedProx算法,就像本文的算法一樣,也使用參數(shù)差值的二范數(shù)作為懲罰項.然而,與本文的算法不同的是,在FedProx中,懲罰項是各向同性的,其直接將本地模型與全局模型更新方向進行同步,并未考慮全局模型本身已經(jīng)是各個局部模型在本地異構(gòu)數(shù)據(jù)上的模型偏移之后的聚合結(jié)果,所以此時的全局模型更新方向并不能代表最優(yōu)解方向.Ohad[25]提高了處理二次目標的收斂速度,證明了其可以通過提升數(shù)據(jù)容量大小,從而達到加速收斂.最近的一項工作[26]證明了FedAvg變體的對數(shù)據(jù)異構(gòu)的收斂速度,它還為實踐中已知的一種現(xiàn)象提供了一個理論解釋,即當(dāng)局部迭代次數(shù)過高時全局性能會下降,因為在數(shù)據(jù)異構(gòu)情況下,過多的本地迭代會導(dǎo)致局部模型偏移,所以之后的全局聚合模型無法在全類別數(shù)據(jù)集上有優(yōu)異性能.
本節(jié)將詳細介紹聯(lián)邦學(xué)習(xí)中存在的數(shù)據(jù)異構(gòu)問題帶來的影響,分為兩個小節(jié)對系統(tǒng)建模以及問題定義進行介紹.
在概率論與統(tǒng)計學(xué)中,獨立同分布(Independent and identically distributed,縮寫為IID)是指一組隨機變量中每個變量的概率分布都相同,且這些隨機變量互相獨立.
在機器學(xué)習(xí)任務(wù)中,訓(xùn)練數(shù)據(jù)集的獨立同分布是常規(guī)假設(shè),常用的標準數(shù)據(jù)集如MNIST,共包含6萬張圖片,分為10類,每一類6千張圖片,即均勻劃分,在集中式訓(xùn)練過程中,每一個mini-batch都是均分采樣,符合獨立同分布的假設(shè).
但是在聯(lián)邦學(xué)習(xí)實際應(yīng)用場景中,由于邊緣設(shè)備本地所包含數(shù)據(jù)集各不相同,各客戶端數(shù)據(jù)集Dk,其中k為客戶端編號.Di∪Dj=0或者Di∩Dj→0,即客戶端數(shù)據(jù)的樣本交集為0或者交集很少.在這種數(shù)據(jù)分布下,本地客戶端的訓(xùn)練會產(chǎn)生模型更新的偏移,如圖1所示.
圖1 模型更新偏移Fig.1 Model update offset
因此,參與訓(xùn)練的各個客戶端本地模型更新的聚合方向與全局理論最優(yōu)解方向不一致,就會導(dǎo)致最終生成全局模型識別精度的下降.
為了修正本地模型對各自數(shù)據(jù)集在訓(xùn)練過程中產(chǎn)生的模型偏移,即保證模型在本地訓(xùn)練過程中,能減少模型在其余客戶端模型關(guān)鍵參數(shù)位置的變化.該問題可以表述為:
θi為客戶端i的本地待訓(xùn)練模型.θk為其余客戶端模型,其中k為除i以外的客戶端.Gk為其余客戶端本地更新梯度增益,用來標識其余客戶端模型的關(guān)鍵參數(shù),使得關(guān)鍵參數(shù)在客戶端i的本地優(yōu)化過程中得到更高的權(quán)重,從而保留該參數(shù)的更新方向.
數(shù)學(xué)表述為:
argminθiL(θi)+λ∑k∈S(θi-θk)Gk(θi-θk)
(1)
將該參數(shù)作為懲罰項加入到本地訓(xùn)練過程中的損失函數(shù)中進行梯度下降優(yōu)化,在優(yōu)化過程中就可以使得每一個客戶端在本地進行模型的訓(xùn)練與更新的同時,保持其余客戶端的模型更新方向,使得每一個客戶端都不會產(chǎn)生對自己本地數(shù)據(jù)分布的嚴重模型偏移,從而在后續(xù)的全局聚合中,能夠有效提高生成的全局模型對于全類數(shù)據(jù)集的識別精度.
該章節(jié)介紹了優(yōu)化方案在本地的實現(xiàn)過程,算法的整體流程,以及對優(yōu)化方案的理論證明.
神經(jīng)網(wǎng)絡(luò)對于數(shù)據(jù)樣本的訓(xùn)練普遍存在過參數(shù)化現(xiàn)象,即對于某些特定數(shù)據(jù)分布的樣本集合,神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元參數(shù)只有部分對于該數(shù)據(jù)分布的擬合起到作用,可將其稱為關(guān)鍵參數(shù).因此在各個客戶端本地訓(xùn)練過程中,應(yīng)當(dāng)減少對于其余客戶端關(guān)鍵參數(shù)的更新,從而保證各個客戶端本地訓(xùn)練完畢之后對于其余客戶端數(shù)據(jù)依然可以有效識別.
本文通過限制局部更新使其接近其余客戶端模型,在局部子問題中添加一個約束項.客戶端不僅僅最小化常規(guī)局部損失函數(shù)Ls,而是使用以下新構(gòu)建損失函數(shù)Lt, s進行約束更新:
Lt, s(θ)=Ls(θ)+λ∑j∈S(θ-θt-1,j)Gt-1,j(θ-θt-1,j)
(2)
其中,Ls(θ)為客戶端集合,S為客戶端集合,t為全局訓(xùn)練輪數(shù),j為其余客戶端標識,θt-1,j為上一輪全局訓(xùn)練的各個客戶端模型,其中j∈S,Gt-1,j為上一輪全局訓(xùn)練的各個客戶端梯度,其中j∈S.用本地模型與、其余客戶端模型參數(shù)作差并取其二范數(shù),在該值各個參數(shù)位置用模型梯度作為權(quán)重,將其加入損失函數(shù)進行SGD,可以減少訓(xùn)練過程中其余客戶端關(guān)鍵參數(shù)位置的變化幅度,從而保留其余客戶端信息量.
本文將該優(yōu)化方案簡稱為FedOC.維護FedOC所需的歷史數(shù)據(jù)的存儲和傳輸,存在數(shù)據(jù)量大以及數(shù)據(jù)傳輸成本高的問題.然而,通過對損失函數(shù)的計算整合,可以避免這些潛在的問題.損失函數(shù)Lt,s可以被重新整理為:
(3)
即應(yīng)用多項式乘法規(guī)則,將兩個多項式逐個相乘,其中常數(shù)C為θt-1,j和Gt-1,j兩個項的相乘結(jié)果,因為這兩個項為上一輪運算結(jié)果,因此其結(jié)果為常數(shù),故用常數(shù)C表示.
服務(wù)器只需要維護并向邊緣設(shè)備傳輸除θ之外的2個與θ維度相同的元素:
ut-1=∑j∈S(Gt-1,j),vt-1=∑j∈S(Gt-1,j)θt-1,j
(4)
按照公式(3),每個客戶端本地訓(xùn)練過程,僅需要公式(4)的兩個模型系數(shù)即可.
需要注意的是,該方案只需要從邊緣設(shè)備發(fā)送與本地梯度相關(guān)的聚合信息到服務(wù)器.在隱私性方面,它與經(jīng)典的FedAvg算法沒有區(qū)別.圖2給出了框架結(jié)構(gòu)圖.
圖2 局部模型偏移抑制框架Fig.2 Local model offset suppression framework
3.2.1 算法流程
算法.局部模型偏移抑制(FedOC)
輸入:K為客戶端總數(shù);T為全局通信輪數(shù);θ為訓(xùn)練模型;N為所有客戶端訓(xùn)練樣本總數(shù);nk為客戶端k的樣本數(shù)量;
1.ForkinKdo:
2. 服務(wù)器發(fā)送訓(xùn)練模型θ給客戶端k
4.服務(wù)器側(cè)運算參數(shù)u0,v0
5.End for;
6.Fort=0…T-1 do:
7. 服務(wù)器隨機選擇的K子集kt
8.服務(wù)器向kt發(fā)送全局模型θt,參數(shù)ut,vt
9.本地客戶端優(yōu)化新構(gòu)建損失函數(shù)
10.θt+1,j=argminθFk(θ)
11.=L(θ)+λθTutθ-2λθTvt+C
12.客戶端上傳本地梯度Gt,j
13.服務(wù)器接收各個客戶端上傳梯度,生成本地模型
14.運算新一輪的ut+1,vt+1
16.End for;
3.2.2 算法描述
正式訓(xùn)練之前,進行預(yù)訓(xùn)練的數(shù)據(jù)收集,由參與聯(lián)邦學(xué)習(xí)訓(xùn)練的客戶端首先完成1輪初步訓(xùn)練,并上傳各自訓(xùn)練梯度,由服務(wù)器進行對應(yīng)模型更新.在正式的聯(lián)邦學(xué)習(xí)訓(xùn)練過程中,服務(wù)器選擇客戶端集合的任意子集參與本輪聯(lián)邦學(xué)習(xí)訓(xùn)練,并向子集中的客戶端傳遞預(yù)訓(xùn)練過程中所有客戶端上報的參數(shù)θ0,u0,v0,各個參與本輪訓(xùn)練的客戶端用指定參數(shù)構(gòu)建損失函數(shù),完成SGD優(yōu)化,上傳本輪更新梯度,由服務(wù)器更新對應(yīng)本地模型和全局模型,并運算出下一輪需要提供給客戶端進行損失函數(shù)構(gòu)建的參數(shù)進行下發(fā),不斷迭代,直到訓(xùn)練達到全局輪數(shù)為止.
最后,由于FedOC只對FedAvg進行輕量級修改,僅僅在本地訓(xùn)練過程中采用了新構(gòu)建的損失函數(shù)進行優(yōu)化,對于聚合方面并未有所改動.因此可以使用在FedAvg成立的推理過程,并且使FedOC輕松地集成到現(xiàn)有的系統(tǒng)中.特別是,本文提出,FedAvg是FedOC的一個特殊情況,即λ=0.
3.3.1 定義,假設(shè)以及定理介紹
接下來對框架的收斂性以及收斂速度進行證明,首先,將介紹一些定義,假設(shè)和定理.
定義1.(光滑性)函數(shù)f具有Lipschitz連續(xù)梯度,其中常數(shù)L>0(即f是L-平滑的):
(5)
定義2.(強凸性)函數(shù)f是μ強凸的,其中μ>0
(6)
該定義旨在允許本地客戶在靈活地執(zhí)行訓(xùn)練,以便每個本地目標都可以收斂.局部計算與通信的數(shù)量可以通過調(diào)整局部迭代的數(shù)量來調(diào)整,即更多的局部迭代表明更精確的局部解.
此外,本文介紹以下假設(shè):
假設(shè)1.目標函數(shù)f(x)是有界的,即最優(yōu)解的有界性minf(θ)=f(θ*)>-∞.
假設(shè)1顯然滿足,因為目標函數(shù)f(x)存在一個最小值.
假設(shè)2中關(guān)于隨機梯度平方范數(shù)的條件是常規(guī)的.與隨機梯度的期望的假設(shè)相比,這是一個更加合理的假設(shè).
(7)
假設(shè)3確保了局部梯度的可估計性.
3.3.2 定理以及其證明
結(jié)合上述定義和假設(shè),本文將繼續(xù)介紹并在后續(xù)證明了一些有用的定理.
定理1.根據(jù)定義3,新構(gòu)建本地損失函數(shù)具有γ-不確定解,因此可得:
(8)
其中c為客戶端數(shù)量.
證明:
對于定理1,即全局梯度的有界性.
根據(jù)定義3可得:
全局梯度可表示為:
將級數(shù)展開可得:
根據(jù)假設(shè)2,得證:
證明完畢.
定理2.根據(jù)定義2,如果f(x)是μ-強凸,則:
(9)
證明:
對于定理2,即本地損失相比于最優(yōu)解的有界性.
由于根據(jù)強凸函數(shù)線性結(jié)合的性質(zhì)可得,新構(gòu)建損失函數(shù)同樣為μ-強凸.
定義:
令Γ′(θ′)=0
可得:
因此可得:
帶入公式可得:
整理結(jié)果,得證:
證明完畢.
定理3.根據(jù)定義1,定義2,定義3,假設(shè)2,以及假設(shè)3,可得,在T輪全局迭代之后,FedOC收斂于全局最優(yōu)解模型θ*.
(10)
證明:
對于定理3,即FedOC收斂于全局最優(yōu)解模型θ*,全局損失的穩(wěn)定下降.
根據(jù)定義1,可得:
根據(jù)假設(shè)3,可得:
不等式兩邊同時減去:
得證:
證明完畢.
定理4.根據(jù)定理3結(jié)果可得,全局輪數(shù)可由相關(guān)常數(shù)提供有界性保證,即:
(11)
其中ξ為初始損失與最優(yōu)損失差值的線性相關(guān)值.
證明:
根據(jù)定理3的結(jié)果,即:
令t+1=T,1-2μησ=q
存在常數(shù)ξ,使得:
不等號兩邊取對數(shù),并令:
可得:
等式兩邊同時除以logq,
得證:
證明完畢.
本節(jié)介紹了優(yōu)化方案所采用的實驗設(shè)置,各項對比實驗、消融實驗和實驗結(jié)果的分析.
本文的算法框架基于開源pytorch框架,采用RTX2080作為模型運算單元,并且實現(xiàn)了FedProx,sharedata兩種框架進行對比實驗.在聯(lián)邦學(xué)習(xí)實際應(yīng)用場景中,各個邊緣設(shè)備算力參差不齊,因此選擇對算力要求相對較低的全連接網(wǎng)絡(luò)作為訓(xùn)練模型.
采用MNIST,FMNIST,CIFAR10這3種常用數(shù)據(jù)集進行實驗.訓(xùn)練樣本為50000個,測試樣本為10000個.實際訓(xùn)練過程中由于MNIST和FMNIST的樣本維度為(28,28,1)而CIFAR10為(32,32,3),因此為了方便模型進行數(shù)據(jù)輸入,將CIFAR10所有樣本數(shù)據(jù)進行灰度化.這樣僅需在模型輸入階段將輸入維度由784修改為1024即可.
首先將客戶端設(shè)置為100,在MNIST,FMNIST,CIFAR10這3種數(shù)據(jù)集上進行與FedProx,sharedata的對比實驗.各個客戶端在訓(xùn)練開始之前,隨機分配總類別的其中3種,每一種類別隨機選取3000個樣本,形成總計9000個,3大類的數(shù)據(jù)異構(gòu)分布場景.
實驗過程中,對數(shù)據(jù)分布不斷做隨機劃分,進行多次實驗,選取平均值作為實驗結(jié)果.
客戶端數(shù)量和數(shù)據(jù)集的不同都會對實驗結(jié)果產(chǎn)生影響,因此設(shè)計了相關(guān)對比實驗.消融實驗為未采用優(yōu)化方案的常規(guī)FedAvg和采用了優(yōu)化方案的FedOC進行對比.
4.2.1 客戶端數(shù)量,數(shù)據(jù)集對比實驗
客戶端數(shù)量為100的3種數(shù)據(jù)集下的各個優(yōu)化方案對比實驗結(jié)果見圖3.可以發(fā)現(xiàn),各個優(yōu)化算法在CIFAR10數(shù)據(jù)集上的表現(xiàn)相對MNIST,FMNIST要略差一些,這是由于CIFAR10的數(shù)據(jù)樣本相對復(fù)雜,簡單的全連接網(wǎng)絡(luò)對于其特征的擬合沒有對于MNIST以及FMNIST那么完善.
圖3 客戶端數(shù)量為100且在3種數(shù)據(jù)集下對比實驗Fig.3 Comparative experiments on three datasets with 100 clients
分析整體實驗結(jié)果得出結(jié)論,共享數(shù)據(jù)的優(yōu)化方案在各個數(shù)據(jù)集上的表現(xiàn),都要優(yōu)于其他兩個優(yōu)化方案.這是因為共享數(shù)據(jù)方案使得聯(lián)邦學(xué)習(xí)系統(tǒng)擁有趨于獨立同分布的數(shù)據(jù)集分布,因此模型可以在訓(xùn)練中充分擬合數(shù)據(jù)特征而不會產(chǎn)生局部模型偏移,更加接近集中式學(xué)習(xí)方案,從而提升識別精度.通常,數(shù)據(jù)共享型優(yōu)化方案可以作為其他優(yōu)化方案的目標值.但是由于聯(lián)邦學(xué)習(xí)對于隱私保護的需求,這類對客戶端樣本信息進行公開或者部分公開的做法并不嚴謹.
再將客戶端數(shù)量調(diào)整為200進行實驗,觀察各優(yōu)化算法在客戶端數(shù)量變化之后的性能,實驗結(jié)果如圖4所示.
圖4 客戶端數(shù)量為200且在3種數(shù)據(jù)集下對比實驗Fig.4 Comparative experiments on three datasets with 200 clients
根據(jù)實驗結(jié)果得出結(jié)論,客戶端數(shù)量增加之后,各個優(yōu)化手段在3種數(shù)據(jù)集上的識別精度都有所提升.在實驗室環(huán)境中,公共數(shù)據(jù)集樣本種類有限,隨著客戶端數(shù)量增加,隨機分發(fā)數(shù)據(jù)時,擁有相同種類甚至同一樣本的客戶端數(shù)量會成比例上升,各個客戶端的數(shù)據(jù)異構(gòu)性產(chǎn)生弱化,因此隨著客戶端數(shù)量上升,全局模型擬合能力會隨之提升.
將本方案與現(xiàn)有方案FedProx進行比較,可以看出,在識別精度方面,要優(yōu)于FedProx 5個百分點.FedProx 在本地損失函數(shù)上僅添加了本地待訓(xùn)練模型參數(shù)與當(dāng)前全局輪數(shù)下發(fā)的全局模型的差值二范數(shù),此時的全局模型是由上一輪的各個本地客戶端模型按照平均算法聚合生成的,然而各個本地模型因為其數(shù)據(jù)異構(gòu)性質(zhì),會產(chǎn)生較大的局部模型偏移,采用該本地模型進行聚合生成的全局模型和理論全局模型最優(yōu)解存在差異,籠統(tǒng)地將本地待優(yōu)化模型參數(shù)與全局模型參數(shù)做同步的方案并不精確,只是在各向同性上抑制了本地客戶端的偏移,而FedOC充分考慮各個客戶端在本地訓(xùn)練過程中其余客戶端的更新方向,因此在最終的識別精度上FedOC也要更高.
4.2.2 消融實驗
該小節(jié)實驗中加入了未采用任何針對非獨立同分布數(shù)據(jù)集進行優(yōu)化的常規(guī)FedAvg訓(xùn)練框架作為消融實驗進行對比,用戶數(shù)為100,3種數(shù)據(jù)集對比實驗結(jié)果如圖5所示.
圖5 客戶端數(shù)量為100且在3種數(shù)據(jù)集下消融實驗Fig.5 Ablation experiments on three datasets with 100 clients
用戶數(shù)為200,3種數(shù)據(jù)集對比實驗結(jié)果如圖6所示.
圖6 客戶端數(shù)量為200且在3種數(shù)據(jù)集下消融實驗Fig.6 Ablation experiments on three dataset with 200 clients
可以看出,未采用優(yōu)化手段的FedAvg識別精度上升緩慢,這是由于局部模型偏移引起的全局模型更新方向偏移,最終遠離理論全局最優(yōu)解方向,因此識別性能提升緩慢.
4.2.3 結(jié)果分析
1)本方案不涉及客戶端數(shù)據(jù)的共享,在隱私保護方面與常規(guī)FedAvg相同,可采用所有適用于FedAvg的隱私保護方案.
2)本方案僅僅對FedAvg進行輕量化改造,并未對聚合過程進行變化,僅在本地訓(xùn)練過程中對損失函數(shù)進行優(yōu)化,因此適用于FedAvg以及其變體場景,實現(xiàn)即插即用.
3)本方案充分考慮系統(tǒng)中所有客戶端的數(shù)據(jù)分布,并在訓(xùn)練中保持其更新方向,因此在全局模型性能上優(yōu)于如FedProx等現(xiàn)有算法.
4)常規(guī)FedAvg算法在非獨立同分布數(shù)據(jù)集上性能較差,模型偏移導(dǎo)致其收斂緩慢.實驗中其余優(yōu)化算法均可在規(guī)定全局訓(xùn)練輪數(shù)中收斂.
5)在訓(xùn)練總樣本類別固定的情況下,增加系統(tǒng)內(nèi)客戶端數(shù)量,可以提升數(shù)據(jù)分布相似性濃度,從而提高全局模型性能.
表1為實驗對比數(shù)據(jù).
表1 實驗對比數(shù)據(jù)Table 1 Experimental comparision data
本文主要提升了聯(lián)邦學(xué)習(xí)在數(shù)據(jù)異構(gòu)條件下的全局模型性能.基于局部梯度信息量來保存各個客戶端上對擬合起重要作用的關(guān)鍵模型參數(shù),從而抑制本地客戶端模型訓(xùn)練時的模型偏移.雖然本地訓(xùn)練過程中加入了額外的懲罰項,并且服務(wù)器端需要進行梯度的矩陣運算,一定程度上延長了訓(xùn)練時間,但是全局模型性能的提升是顯著的.下一步可以考慮在矩陣運算部分進行輕量化,以提升訓(xùn)練效率.