陳瑞鋒,謝在鵬,朱曉瑞,屈志昊
(河海大學(xué) 計(jì)算機(jī)與信息學(xué)院,南京 211100) E-mail:zaipengxie@hhu.edu.cn
近年來(lái),智能手機(jī)、平板電腦、可穿戴設(shè)備等移動(dòng)設(shè)備逐漸成為人們?nèi)粘I畹慕M成部分.這些移動(dòng)設(shè)備通常裝備了種類豐富的傳感器,可感知諸如圖像、聲音、加速度等數(shù)據(jù).隨著這些設(shè)備的普及,諸如運(yùn)動(dòng)檢測(cè)[1]、圖像識(shí)別[2-4]、自然語(yǔ)言處理[5]等移動(dòng)互聯(lián)網(wǎng)應(yīng)用逐漸流行.這些應(yīng)用通常基于機(jī)器學(xué)習(xí)模型對(duì)用戶提交的感知數(shù)據(jù)進(jìn)行處理并返回處理結(jié)果.理想情況下,用于處理用戶數(shù)據(jù)的機(jī)器學(xué)習(xí)模型可使用來(lái)自不同用戶的大量標(biāo)記數(shù)據(jù)進(jìn)行訓(xùn)練以提高模型的表達(dá)性能和泛化性能.然而出于隱私與安全原因,用戶經(jīng)常不愿意上傳這些數(shù)據(jù).
針對(duì)此問(wèn)題,谷歌[6]提出了聯(lián)邦學(xué)習(xí)用于解決機(jī)器學(xué)習(xí)模型訓(xùn)練的數(shù)據(jù)需求與用戶數(shù)據(jù)隱私保護(hù)之間的矛盾.聯(lián)邦學(xué)習(xí)是一種分布式機(jī)器學(xué)習(xí)框架,能夠在滿足用戶隱私與數(shù)據(jù)安全的同時(shí)有效利用數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí)模型訓(xùn)練.具體而言,聯(lián)邦學(xué)習(xí)利用移動(dòng)設(shè)備(工作節(jié)點(diǎn))本地計(jì)算能力和數(shù)據(jù)訓(xùn)練機(jī)器學(xué)習(xí)模型,然后將訓(xùn)練后的模型參數(shù)在服務(wù)器端聚合并作為下一輪本地訓(xùn)練的初始參數(shù),迭代上述過(guò)程直至達(dá)到最終模型達(dá)到最好的泛化性能.由于所有用戶數(shù)據(jù)都只用于本地模型訓(xùn)練,聯(lián)邦學(xué)習(xí)充分保護(hù)了用戶隱私與數(shù)據(jù)安全.
盡管具有上述優(yōu)點(diǎn),聯(lián)邦學(xué)習(xí)在實(shí)現(xiàn)時(shí)經(jīng)常面臨以下問(wèn)題[6-8]:1)由于多個(gè)工作節(jié)點(diǎn)上可用的計(jì)算、通信資源以及數(shù)據(jù)量通常不同,因此工作節(jié)點(diǎn)完成每輪本地訓(xùn)練后提交模型參數(shù)的時(shí)間存在差異.這會(huì)造成參數(shù)服務(wù)器因等待慢節(jié)點(diǎn)上傳參數(shù)而延長(zhǎng)訓(xùn)練時(shí)間(即落跑者問(wèn)題[9]);2)由于多個(gè)工作節(jié)點(diǎn)上的數(shù)據(jù)通常不能服從相同概率分布,這會(huì)造成不同工作節(jié)點(diǎn)的本地模型收斂方向均與參數(shù)服務(wù)器不一致,從而降低了整體訓(xùn)練速度.
為解決上述問(wèn)題,現(xiàn)有工作提出了基于指數(shù)滑動(dòng)平均的聯(lián)邦學(xué)習(xí)方法[9-15].具體而言,參數(shù)服務(wù)器在接收到某個(gè)工作節(jié)點(diǎn)發(fā)來(lái)的神經(jīng)網(wǎng)絡(luò)參數(shù)(權(quán)重)后,參數(shù)服務(wù)器將保存的平均權(quán)重與工作節(jié)點(diǎn)發(fā)來(lái)的權(quán)重加權(quán)平均以得到新的平均權(quán)重,并將此權(quán)重返回給工作節(jié)點(diǎn).由于參數(shù)服務(wù)器不再需要等待收集完所有工作節(jié)點(diǎn)相同版本的參數(shù)后進(jìn)行聚合,因而解決了落跑者問(wèn)題,提高了訓(xùn)練速度.加權(quán)平均的策略將由非獨(dú)立用分布數(shù)據(jù)訓(xùn)練的模型參數(shù)聚合成一個(gè)全局泛化能力更強(qiáng)的模型參數(shù),從而緩解了非獨(dú)立用分布數(shù)據(jù)的影響.但是使用指數(shù)滑動(dòng)平均聚合也存在指數(shù)滑動(dòng)平均方法并不能主動(dòng)控制版本差距問(wèn)題[9]:1)快節(jié)點(diǎn)頻繁提交權(quán)重會(huì)造成聚合后的模型參數(shù)偏離其他節(jié)點(diǎn)上模型的收斂方向;2)慢節(jié)點(diǎn)滯后提交的參數(shù)會(huì)阻礙參數(shù)服務(wù)器模型的收斂,并且此影響無(wú)法完全消除.這些問(wèn)題會(huì)顯著影響參數(shù)服務(wù)器上模型的收斂速度.此外,當(dāng)訓(xùn)練節(jié)點(diǎn)差距過(guò)大時(shí),甚至?xí)?dǎo)致模型不收斂.上述問(wèn)題的主要原因在于指數(shù)滑動(dòng)平均只保存了一個(gè)全局平均權(quán)重,導(dǎo)致工作節(jié)點(diǎn)提交的參數(shù)一旦被聚合到參數(shù)服務(wù)器平均權(quán)重中,就不能對(duì)這個(gè)權(quán)重做任何修改,只能等待之后的每次更新所占比例下降.
針對(duì)指數(shù)滑動(dòng)平均聚合更新方式的不足,本文設(shè)計(jì)并實(shí)現(xiàn)了一種異步聯(lián)邦學(xué)習(xí)聚合更新算法(FederatedWeight Profileand VersionAware,F(xiàn)edWPVA):一種基于權(quán)重摘要(Weight Profile)和更新版本感知(Version Aware)的異步聯(lián)邦學(xué)習(xí)聚合更新方法,其解決了因工作節(jié)點(diǎn)訓(xùn)練速度差異而導(dǎo)致的模型收斂速度降低問(wèn)題.具體而言,權(quán)重摘要保留了工作節(jié)點(diǎn)最新權(quán)重,并且所有工作節(jié)點(diǎn)所占權(quán)重比例相同.首先所有保存了所有工作節(jié)點(diǎn)最新權(quán)重作為權(quán)重摘要,從而保留了完整的聚合信息.權(quán)重摘要通過(guò)每個(gè)工作節(jié)點(diǎn)只能更新自身摘要部分,限制了快節(jié)點(diǎn)高頻更新對(duì)整體權(quán)重的影響,降低可以推動(dòng)參數(shù)服務(wù)器上的模型更快地收斂.版本感知是參數(shù)服務(wù)器對(duì)權(quán)重摘要的版本進(jìn)行記錄,使得參數(shù)服務(wù)器聚合時(shí)可以根據(jù)工作節(jié)點(diǎn)不同的版本確定不同的加權(quán)比例.同時(shí),當(dāng)整體版本差距過(guò)大時(shí),通過(guò)全局更新方式將慢節(jié)點(diǎn)中使用的舊權(quán)重更新到最新權(quán)重,從而提高慢節(jié)點(diǎn)的更新效率,使參數(shù)服務(wù)器上的模型更快的收斂.
本工作的主要貢獻(xiàn)如下:
1)本文所提出的異步聯(lián)邦學(xué)習(xí)聚合更新方法消除了過(guò)時(shí)權(quán)重對(duì)全局權(quán)重的影響,解決了現(xiàn)有指數(shù)滑動(dòng)平均算法的問(wèn)題.針對(duì)版本差異,當(dāng)工作節(jié)點(diǎn)間版本差距過(guò)大時(shí)使用主動(dòng)更新機(jī)制同步更新所有工作節(jié)點(diǎn),當(dāng)版本差距較小時(shí),使用完全的不同節(jié)點(diǎn)版本來(lái)對(duì)權(quán)重進(jìn)行加權(quán)聚合解決了版本差距問(wèn)題.
2)本文在兩個(gè)典型數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)評(píng)估,在數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,將基準(zhǔn)算法、FedWPVA在MNIST數(shù)據(jù)集中訓(xùn)練相同個(gè)訓(xùn)練輪次,對(duì)比基準(zhǔn)算法,使用相同訓(xùn)練輪次,F(xiàn)edWPVA將損失值平均降低了14.45%,CIFAR-10數(shù)據(jù)集損失平均降低了7.26%.
近年來(lái),聯(lián)邦學(xué)習(xí)參數(shù)服務(wù)器上的聚合更新機(jī)制被廣泛關(guān)注[10-24],這些工作主要分為基于聯(lián)邦平均算法(Federated Averaging,F(xiàn)edAvg)和基于指數(shù)滑動(dòng)平均(Exponential Moving Average).
原始的聯(lián)邦平均算法[6,16,17]將每輪訓(xùn)練的所有工作節(jié)點(diǎn)的權(quán)重進(jìn)行加權(quán)平均.需要等待最慢的工作節(jié)點(diǎn).針對(duì)比問(wèn)題,F(xiàn)edProx[18]利用參數(shù)服務(wù)器調(diào)整不同性能工作節(jié)點(diǎn)上本地訓(xùn)練所需輪次,減少快節(jié)點(diǎn)與慢節(jié)點(diǎn)的差距,并且限制本地多輪訓(xùn)練時(shí)的工作節(jié)點(diǎn)對(duì)參數(shù)服務(wù)器發(fā)來(lái)的權(quán)重做過(guò)多的更改,將修改范圍限制在一定范圍,減少了快節(jié)點(diǎn)對(duì)參數(shù)服務(wù)器的影響,使得模型收斂性更好.然而FedProx直接將工作節(jié)點(diǎn)權(quán)重對(duì)應(yīng)位置進(jìn)行加權(quán)平均的做法減低了收斂.針對(duì)比問(wèn)題,聯(lián)邦匹配平均[19](Federated Matched Averaging,F(xiàn)edMA)聯(lián)邦匹配平均算法認(rèn)為之前的,基于神經(jīng)網(wǎng)絡(luò)參數(shù)的置換不變性,在對(duì)多個(gè)節(jié)點(diǎn)進(jìn)行平均前,先對(duì)其進(jìn)行匹配,再進(jìn)行加權(quán)平均,使每次模型聚合更加有效,增加了模型的收斂性.上述同步聯(lián)邦學(xué)習(xí)方法都能取得一定的成效,但是受限于聯(lián)邦平均算法的框架,不能完全解決落跑者問(wèn)題.隨著工作節(jié)點(diǎn)規(guī)模的擴(kuò)大,落跑者問(wèn)題將更加嚴(yán)重,同步的策略也可能導(dǎo)致網(wǎng)絡(luò)擁塞.
指數(shù)滑動(dòng)平均的聚合更新策略[20,21]在通信延遲較高且異構(gòu)的情況下,效率較高,在聯(lián)邦學(xué)習(xí)中也有也廣受關(guān)注[9-15],使用指數(shù)滑動(dòng)平均的方式,即工作節(jié)點(diǎn)完成本地固定輪次更新后發(fā)送到參數(shù)服務(wù)器,參數(shù)服務(wù)器將這個(gè)更新權(quán)重與參數(shù)服務(wù)器保留的平均權(quán)重做加權(quán)聚合.通過(guò)指數(shù)滑動(dòng)平均的聚合更新策略,可以避免參數(shù)服務(wù)器對(duì)慢節(jié)點(diǎn)的等待,每次收到工作節(jié)點(diǎn)的更新都可以與參數(shù)服務(wù)器保留的權(quán)重以固定權(quán)重加權(quán)求和.
但是不同工作節(jié)點(diǎn)發(fā)送的權(quán)重的版本不同,以固定加權(quán)比例會(huì)降低收斂性能,在參考文獻(xiàn)[9]中,對(duì)指數(shù)滑動(dòng)平均算法的加權(quán)比例進(jìn)行改進(jìn),根據(jù)工作節(jié)點(diǎn)的不用版本,使用不用的比例,當(dāng)工作節(jié)點(diǎn)與參數(shù)服務(wù)器版本差距較小時(shí),加權(quán)比例取更大的值,當(dāng)版本差距較大時(shí),減少加權(quán)比例的值,通過(guò)這種加權(quán)的策略來(lái)減少慢節(jié)點(diǎn)梯度延遲造成的影響.
針對(duì)指數(shù)滑動(dòng)平均策略版本差距大的問(wèn)題,參考文獻(xiàn)[11]提出了對(duì)損失函數(shù)增加懲罰項(xiàng)的策略,并且針對(duì)相對(duì)慢節(jié)點(diǎn)動(dòng)態(tài)的提高本地訓(xùn)練中的學(xué)習(xí)率,降低慢節(jié)點(diǎn)的學(xué)習(xí)率,從而降低工作節(jié)點(diǎn)間權(quán)重的差異,增加整體收斂速度.針對(duì)神經(jīng)網(wǎng)絡(luò),參考文獻(xiàn)[12]提出了一種以不同頻率更新DNN網(wǎng)絡(luò)不同層次的訓(xùn)練方式來(lái)提高整個(gè)模型收斂速度的策略,由于神經(jīng)網(wǎng)絡(luò)中淺層神經(jīng)網(wǎng)絡(luò)一般代表了不同數(shù)據(jù)集的常規(guī)特征,深層神經(jīng)網(wǎng)絡(luò)代表了特定數(shù)據(jù)集的特定特征,所以在這篇論文中通過(guò)更高的頻率更新淺層神經(jīng)網(wǎng)絡(luò),來(lái)提高模型在不同分布的數(shù)據(jù)集上泛化能力,通過(guò)這種策略可以使用更少的通信量更新更多的輪次,從而提高模型的收斂速度.
針對(duì)指數(shù)滑動(dòng)平均策略收斂速度慢的問(wèn)題,針對(duì)神經(jīng)網(wǎng)絡(luò)的實(shí)際情況,參考文獻(xiàn)[13]結(jié)合了同步與異步,認(rèn)為神經(jīng)網(wǎng)絡(luò)不同層可以通過(guò)使用不同的更新策略提高模型收斂速度,多個(gè)工作節(jié)點(diǎn)間的同一神經(jīng)網(wǎng)絡(luò)層使用同步更新,而層與層之間使用異步的策略進(jìn)行更新,類似參考文獻(xiàn)[12]這種策略可以降低每次通信代價(jià),從而提高模型的收斂速度.
上述工作均在指數(shù)滑動(dòng)平均策略的基礎(chǔ)上做出了改進(jìn),緩解了指數(shù)滑動(dòng)平均快慢節(jié)點(diǎn)差距的問(wèn)題,但是沒(méi)有有效的利用工作節(jié)點(diǎn)上傳來(lái)的權(quán)重信息,參數(shù)服務(wù)器只保留了一個(gè)平均權(quán)重信息,沒(méi)有解決快節(jié)點(diǎn)頻繁提交權(quán)重造成聚合后的模型參數(shù)偏離其他節(jié)點(diǎn)上模型的收斂方向,以及慢節(jié)點(diǎn)滯后提交的參數(shù)阻礙參數(shù)服務(wù)器模型的收斂的問(wèn)題.不能消除過(guò)時(shí)權(quán)重對(duì)參數(shù)服務(wù)器的影響;對(duì)版本差距的控制也不夠靈活、主動(dòng).
針對(duì)指數(shù)滑動(dòng)平均策略快節(jié)點(diǎn)頻繁提交權(quán)重造成聚合后的模型參數(shù)偏離其他節(jié)點(diǎn)上模型的收斂方向,以及慢節(jié)點(diǎn)滯后提交的參數(shù)阻礙參數(shù)服務(wù)器模型的收斂、版本控制不夠靈活、主動(dòng)的問(wèn)題,本文提出了一種基于權(quán)重摘要(Weight Profile)和更新版本感知(Version Aware)的異步聯(lián)邦學(xué)習(xí)聚合更新方法.
基于權(quán)重摘要的聚合方式通過(guò)參數(shù)服務(wù)器保留完整工作節(jié)點(diǎn)的最新權(quán)重,實(shí)現(xiàn)每次更新可以完全替換掉之前舊權(quán)重的影響,使得整體更新更加有效.基于版本感知的更新機(jī)制分別在版本差距較小時(shí)使用完全的版本加權(quán)策略提高快節(jié)點(diǎn)的快節(jié)點(diǎn)的所占比例,以及版本差距較大時(shí)的全局更新策略保證聯(lián)邦學(xué)習(xí)內(nèi)部版本差距的控制.下面的分別討論FedWPVA方法的權(quán)重摘要的聚合算法、以及版本感知更新策略.
3.1.1 基于指數(shù)滑動(dòng)平均的聚合問(wèn)題分析
如圖1所示,假設(shè),在聯(lián)邦學(xué)習(xí)系統(tǒng)中,存在n個(gè)工作節(jié)點(diǎn),一個(gè)參數(shù)服務(wù)器.
圖1 異步聯(lián)邦學(xué)習(xí)系統(tǒng)架構(gòu)Fig.1 Asynchronous federated learning architecture
1)工作節(jié)點(diǎn)端
每個(gè)工作節(jié)點(diǎn)中都有可用于訓(xùn)練的本地?cái)?shù)據(jù),并且數(shù)據(jù)分不平衡、非獨(dú)立同分布.參數(shù)服務(wù)器不可以直接操作數(shù)據(jù),通過(guò)聚合工作節(jié)點(diǎn)訓(xùn)練的模型的范式不斷迭代.
(1)
?i∈[n],其中i是本地?cái)?shù)據(jù)集i的采樣.即每次本地訓(xùn)練都是從本地?cái)?shù)據(jù)中采樣部分?jǐn)?shù)據(jù)作為本輪訓(xùn)練數(shù)據(jù),由于數(shù)據(jù)非獨(dú)立同分布,i≠j,?i≠?j,因此,不同設(shè)備的數(shù)據(jù)集有不同的期望,即Ef(W;i)≠Ef(W;j),?i≠j.
2)參數(shù)服務(wù)器端
指數(shù)滑動(dòng)平均的聚合策略為本地訓(xùn)練固定輪次后,將自身神經(jīng)網(wǎng)絡(luò)參數(shù)發(fā)送給參數(shù)服務(wù)器,并等待最新的神經(jīng)網(wǎng)絡(luò)參數(shù),當(dāng)接收到參數(shù)過(guò)后使用指數(shù)滑動(dòng)平均的方式聚合成新的權(quán)重,如公式(2)所示:
(2)
其中Wk+τ為參數(shù)服務(wù)器在聚合時(shí)的保留權(quán)重,Wki為工作節(jié)點(diǎn)i上傳到服務(wù)器的權(quán)重,ki為第i個(gè)工作節(jié)點(diǎn)權(quán)重的更新版本,工作節(jié)點(diǎn)使用指數(shù)系數(shù)η得到下一輪服務(wù)器最新的權(quán)重Wk+τ+1,并將其發(fā)送給發(fā)來(lái)權(quán)重的工作節(jié)點(diǎn),工作節(jié)點(diǎn)將當(dāng)接到參數(shù)服務(wù)器發(fā)來(lái)的權(quán)重時(shí)將繼續(xù)訓(xùn)練重復(fù)上述過(guò)程.
3)問(wèn)題分析
但是在指數(shù)滑動(dòng)平均聚合策略下,快節(jié)點(diǎn)頻繁更新,慢節(jié)點(diǎn)更新滯后,當(dāng)慢節(jié)點(diǎn)完成一輪訓(xùn)練得到Wki時(shí),參數(shù)服務(wù)器上的最新權(quán)重Wk+τ,其中μ=k+τ-ki,μ為此次更新工作節(jié)點(diǎn)與參數(shù)服務(wù)器版本差距,當(dāng)版本差距過(guò)大時(shí),此次更新對(duì)參數(shù)服務(wù)器整體權(quán)重?zé)o效甚至產(chǎn)生負(fù)面效果,如果參數(shù)服務(wù)器中接收了一個(gè)權(quán)重延遲的更新Wd,這個(gè)產(chǎn)生負(fù)面影響的權(quán)重將合并到參數(shù)服務(wù)器的最新權(quán)重中,并且造成的影響只能通過(guò)之后的多次更新來(lái)減少其影響,經(jīng)過(guò)τ輪更新,這個(gè)負(fù)面影響的更新 仍保留Wdητ,并不會(huì)完全消失,即使滑動(dòng)平均策略使用版本差距加權(quán)來(lái)減少梯度延遲更新所占的更新比例,但是仍然會(huì)有部分梯度延遲聚合到整體權(quán)重中,并且在之后的聚合過(guò)程中,這個(gè)聚合到參數(shù)服務(wù)器的不良更新會(huì)同樣被當(dāng)作最新權(quán)重獲得跟其他權(quán)重相同的加權(quán)比例,并且隨著節(jié)點(diǎn)規(guī)模擴(kuò)大,產(chǎn)生的慢節(jié)點(diǎn)的概率也相應(yīng)增高,并且快節(jié)點(diǎn)與慢節(jié)點(diǎn)在參數(shù)服務(wù)器的平均權(quán)重中所占比例差距會(huì)隨著設(shè)備異構(gòu)增大而增大,這與聯(lián)邦學(xué)習(xí)優(yōu)化目標(biāo)最小化平均損失不符,這種聚合策略更加偏向了快節(jié)點(diǎn)的數(shù)據(jù)分布.
圖2 指數(shù)滑動(dòng)平均更新策略Fig.2 Exponential moving average strategy
3.1.2 FedWPVA聚合機(jī)制
基于權(quán)重摘要的聚合方式保留了完整的工作節(jié)點(diǎn)的最新權(quán)重,假設(shè)t時(shí)刻權(quán)重摘要其中代表1號(hào)工作節(jié)點(diǎn)保存了t版本的摘要再參數(shù)服務(wù)器.假設(shè)下一個(gè)時(shí)刻1號(hào)節(jié)點(diǎn)發(fā)來(lái)了更新權(quán)重摘要將更新一號(hào)節(jié)點(diǎn)對(duì)應(yīng)位置,通過(guò)這種方式,節(jié)點(diǎn)更新時(shí)可以完全去除過(guò)時(shí)更新權(quán)重,快節(jié)點(diǎn)的頻繁更新只能更新自身權(quán)重,使得慢節(jié)點(diǎn)的梯度延遲可以在下一次有效更新中去除.并且由于每個(gè)參數(shù)服務(wù)器的參數(shù)都單獨(dú)存儲(chǔ),而不是簡(jiǎn)單聚合在一起.
FedWPVA通過(guò)這種策略實(shí)現(xiàn)了保留所有節(jié)點(diǎn)最新權(quán)重,而沒(méi)有采用指數(shù)滑動(dòng)平均的策略,本策略雖然提高了參數(shù)服務(wù)器存儲(chǔ)壓力,但是當(dāng)慢節(jié)點(diǎn)進(jìn)行更新時(shí)可以將之前梯度延遲造成的不良影響完全消除,并且可以有效限制快節(jié)點(diǎn)的頻繁更新,使之不能通過(guò)頻繁的更新使整體權(quán)重嚴(yán)重偏向快節(jié)點(diǎn)訓(xùn)練數(shù)據(jù),提高了模型整體收斂性能.在本策略中如果碰到與圖2相同的網(wǎng)絡(luò)狀況,3個(gè)節(jié)點(diǎn)在參數(shù)服務(wù)器保留的比例是一致的.
在本策略中,在使用3.1節(jié)圖2相同假設(shè)的情況下,F(xiàn)edWPVA可以保證每個(gè)節(jié)點(diǎn)在聚合存儲(chǔ)時(shí)擁有相同的權(quán)重,使得FedWPVA不會(huì)偏向快節(jié)點(diǎn)的數(shù)據(jù)分布,當(dāng)落后的權(quán)重更新時(shí),F(xiàn)edWPVA可以完全去除落后權(quán)重的影響,如圖3所示.
圖3 FedWPVA聚合策略 Fig.3 FedWPVA aggregation strategy
根據(jù)上述思路,在算法1中,假設(shè)在一個(gè)異步聯(lián)邦學(xué)習(xí)下有一個(gè)參數(shù)服務(wù)器,隨機(jī)選擇n個(gè)工作節(jié)點(diǎn),在初始化階段參數(shù)服務(wù)器分發(fā)給工作節(jié)點(diǎn)神經(jīng)網(wǎng)絡(luò)、初始神經(jīng)網(wǎng)絡(luò)參數(shù),本地訓(xùn)練輪次等參數(shù).之后進(jìn)入聚合更新階段,當(dāng)工作節(jié)點(diǎn)完成指定次數(shù)迭代將會(huì)把自身節(jié)點(diǎn)編號(hào)id、神經(jīng)網(wǎng)絡(luò)參數(shù)w上傳到參數(shù)服務(wù)器,第1行中,參數(shù)服務(wù)器將此權(quán)重存儲(chǔ)到節(jié)點(diǎn)標(biāo)號(hào)對(duì)應(yīng)位置serverw[id],若節(jié)點(diǎn)所在位置已經(jīng)存在值,則進(jìn)行覆蓋,在第2行中,計(jì)算所有已知節(jié)點(diǎn)最新權(quán)重的平均值wlatest作為下一輪迭代的初始值,第3行中,send函數(shù)用于向工作節(jié)點(diǎn)發(fā)送更新權(quán)重,需要兩個(gè)參數(shù):工作節(jié)點(diǎn)id和發(fā)送權(quán)重wlatest,本算法中將最新權(quán)重的平均值wlatest發(fā)送給節(jié)點(diǎn)編號(hào)id.
3.2.1 基于指數(shù)滑動(dòng)平均的更新問(wèn)題分析
指數(shù)滑動(dòng)平均方法的更新策略只是將聚合后的權(quán)重發(fā)送給本次更新的工作節(jié)點(diǎn),并不能控制版本差距所造成的影響.在每次聚合更新過(guò)程中,指數(shù)滑動(dòng)平均策略中參數(shù)服務(wù)器保存的平均權(quán)重是由不同版本的權(quán)重組成的,但是在更新時(shí)使用了相同的權(quán)重與工作節(jié)點(diǎn)傳來(lái)的新權(quán)重加權(quán)平均,當(dāng)快節(jié)點(diǎn)與慢節(jié)點(diǎn)版本差距過(guò)大時(shí),指數(shù)滑動(dòng)平均策略不能夠?qū)Π姹静罹嘧鲋鲃?dòng)干涉,造成上述快節(jié)點(diǎn)、慢節(jié)點(diǎn)兩個(gè)問(wèn)題更加嚴(yán)重且不可控,從而降低了模型收斂性能.如公式(2)所示,當(dāng)工作節(jié)點(diǎn)版本與參數(shù)服務(wù)器平均版本差距過(guò)大時(shí),降低模型的收斂性能.從公式中可以看出,一旦權(quán)重合并到參數(shù)服務(wù)器平均權(quán)重內(nèi),再次與其他權(quán)重加權(quán)時(shí)獲得相同的加權(quán)比例,這是相對(duì)不夠靈活的.
算法1.FedWPVA參數(shù)服務(wù)器聚合算法
輸入:節(jié)點(diǎn)id,節(jié)點(diǎn)權(quán)重w
輸出:聚合后的參數(shù)wlatest
1.serverw[id]←w;//存儲(chǔ)w的權(quán)重
2.wlatest←mean(serverw);//計(jì)算均值
3.send(id,wlatest);//將計(jì)算的均值發(fā)回
3.2.2 FedWPVA版本控制更新機(jī)制
基于3.1.2節(jié)的FedWPVA聚合策略,如果不對(duì)版本進(jìn)行感知,通過(guò)上述過(guò)程,本結(jié)構(gòu)下的參數(shù)服務(wù)器所做的聚合方式下,各個(gè)工作節(jié)點(diǎn)的更新如公式(3)所示:
(3)
FedWPVA通過(guò)參數(shù)服務(wù)器簡(jiǎn)單記錄個(gè)節(jié)點(diǎn)最新的參數(shù)版本,使參數(shù)服務(wù)器能夠記錄聯(lián)邦學(xué)習(xí)中的參數(shù)版本差距情況,針對(duì)由于設(shè)備異構(gòu)導(dǎo)致的快節(jié)點(diǎn)版本高、慢節(jié)點(diǎn)版本低的問(wèn)題,使用參數(shù)服務(wù)器保存了存儲(chǔ)的對(duì)應(yīng)不同工作節(jié)點(diǎn)的最新權(quán)重版本信息,當(dāng)整體版本差距較大時(shí),使用主動(dòng)更新機(jī)制將使慢節(jié)點(diǎn)追上快節(jié)點(diǎn)的版本,使下一次慢節(jié)點(diǎn)的更新更加有效.當(dāng)版本差距不大時(shí),在聚合時(shí)使用根據(jù)版本差距加權(quán)的策略對(duì)聚合時(shí)的所有權(quán)重按照版本信息加權(quán)聚合成最新權(quán)重.
1)FedWPVA加權(quán)聚合機(jī)制
FedWPVA方法的基礎(chǔ)結(jié)構(gòu)雖然有效限制了快節(jié)點(diǎn)的頻繁更新,有限的在慢節(jié)點(diǎn)提供有效更新后能夠剔除之前權(quán)重延遲的不利影響,但當(dāng)數(shù)據(jù)集的分布非獨(dú)立同分布程度低時(shí),嚴(yán)重的限制快節(jié)點(diǎn)也會(huì)拖慢整體訓(xùn)練速度,引入加權(quán)機(jī)制可以更好的根據(jù)不同的數(shù)據(jù)實(shí)際情況,決定加全局和的超參數(shù)來(lái)適配不同的實(shí)際情況,可以在聚合時(shí)根據(jù)不同節(jié)點(diǎn)上提供的最新版本,與參數(shù)服務(wù)器記錄的當(dāng)前最新版本,根據(jù)版本差距,增加版本差距較小的更新的節(jié)點(diǎn)的權(quán)重,減少版本差距較大的節(jié)點(diǎn)的權(quán)重.
在3.2節(jié)中新提出的機(jī)制中,由參數(shù)服務(wù)器記錄了用戶節(jié)點(diǎn)的版本信息,這根據(jù)不同版本加權(quán)賦值提供了前提條件,同樣基于上小結(jié)提出的結(jié)構(gòu),可以在聚合時(shí)加入對(duì)版本的考慮,進(jìn)一步減少慢節(jié)點(diǎn)存留在整個(gè)系統(tǒng)的影響,不同于傳統(tǒng)的加權(quán)平均機(jī)制策略,參數(shù)服務(wù)器加全局聚合只考慮參數(shù)服務(wù)器保存的整體權(quán)重以及傳來(lái)的節(jié)點(diǎn)梯度的版本差距做加權(quán)聚合,F(xiàn)edWPVA的加權(quán)聚合策略將考慮參數(shù)服務(wù)器保存的所有的節(jié)點(diǎn)的版本差距與最新版本的差距進(jìn)行加權(quán)聚合,并且隨著最新版本的遞增,服務(wù)器上存儲(chǔ)的各個(gè)節(jié)點(diǎn)的權(quán)重所占比例也是動(dòng)態(tài)改變的.
如公式(4)所示,p(i)代表了權(quán)重摘要標(biāo)號(hào)為i的節(jié)點(diǎn)比例,α為版本比例超參數(shù),α∈(0,1).
(4)
為了權(quán)重期望保持不變,需要對(duì)其進(jìn)行歸一化.如公式(5)所示,P(i)代表實(shí)際加權(quán)所占權(quán)重.
(5)
結(jié)合上述公式,可以看出,F(xiàn)edWPVA算法中的加權(quán)覺(jué)和機(jī)制更加靈活,它可以給權(quán)重摘要上每一個(gè)權(quán)重一個(gè)合適的權(quán)重進(jìn)行聚合,如公式(6)所示:
(6)
2)FedWPVA主動(dòng)更新機(jī)制
FedWPVA存儲(chǔ)結(jié)構(gòu)提出的存儲(chǔ)結(jié)構(gòu)雖然可以使得等待慢節(jié)點(diǎn)更新替換掉梯度延遲的權(quán)重,完全去除之前梯度延遲的影響,但是在設(shè)備異構(gòu)嚴(yán)重的環(huán)境下,如果存在大量延遲節(jié)點(diǎn),即使慢節(jié)點(diǎn)完成了一次更新,還會(huì)因?yàn)橛?jì)算此次更新的權(quán)重相對(duì)參數(shù)服務(wù)器最新梯度差距過(guò)大成為無(wú)效甚至有害的權(quán)重,所以必須要控制FedWPVA系統(tǒng)下的整體版本差距,當(dāng)系統(tǒng)版本差距過(guò)大時(shí),由參數(shù)服務(wù)器向工作節(jié)點(diǎn)推送最新的梯度,從而使慢節(jié)點(diǎn)的下一次更新相對(duì)有效,提高系統(tǒng)的收斂速度.本文中,將版本存儲(chǔ)、控制交由參數(shù)服務(wù)器控制.
假設(shè)t時(shí)刻權(quán)重摘要=
vthreshold=「2nlog2n+1?
(7)
假設(shè)本輪選擇了n個(gè)工作節(jié)點(diǎn),每個(gè)工作節(jié)點(diǎn)都有自身不變的id編號(hào),每次工作節(jié)點(diǎn)上傳自身權(quán)重時(shí),發(fā)送自身節(jié)點(diǎn)id和權(quán)重w.send函數(shù)接收目標(biāo)節(jié)點(diǎn)id列表、權(quán)重在參數(shù)w,將權(quán)重發(fā)送到目標(biāo)節(jié)點(diǎn)上,服務(wù)器保存所有工作節(jié)點(diǎn)的最新權(quán)重值serverw,每次節(jié)點(diǎn)更新都只會(huì)更新serverw[id],在參數(shù)服務(wù)器中保存所有工作節(jié)點(diǎn)的最新版本號(hào)到serverver,serverver可以單獨(dú)存儲(chǔ)所有接收到得工作節(jié)點(diǎn)的最新值,版本號(hào)初始化為1,每次發(fā)生更新后自增1,當(dāng)前最新版本號(hào)記錄為versionlatest,未使用加權(quán)策略時(shí),最新的權(quán)重使用serverw中保存的所有工作節(jié)點(diǎn)的最新值得平均數(shù)作為本次得出的最新結(jié)果wlatest,檢測(cè)所有節(jié)點(diǎn)版本是否落后最新版本之和是否超過(guò)了版本差距限制gap,當(dāng)超過(guò)版本差距限制時(shí),參數(shù)服務(wù)器將發(fā)送最新權(quán)重到所有節(jié)點(diǎn)all_node,否則只發(fā)送更新到本次接收得工作節(jié)點(diǎn).綜上,F(xiàn)edWPVA方法完整算法流程如算法2所示.
算法2.參數(shù)服務(wù)器完整算法
輸入:節(jié)點(diǎn)id,節(jié)點(diǎn)權(quán)重w
輸出:聚合后的參數(shù)wlatest
1.versionlatest←1;//初始化版本為1
2.versionlatest←versionlatest+1;//版本累加
3.serverw[id]←w;//存儲(chǔ)w的權(quán)重
4.serverver[id]←versionlatest;//更新節(jié)點(diǎn)版本號(hào)
8. |send(id,wlatest);//版本差距較小不需要全局更新
9.else
10. |send(all_node,wlatest);//版本差距大需要全局更新
在本章中為了驗(yàn)證FedWPVA算法在實(shí)際應(yīng)用上的表現(xiàn),本文通過(guò)集群模擬實(shí)驗(yàn)的方式進(jìn)行了實(shí)驗(yàn)驗(yàn)證,操作系統(tǒng)環(huán)境為Ubuntu 20.04.1 LTS,整個(gè)實(shí)驗(yàn)基于分布式機(jī)器學(xué)習(xí)框架Parallel-SGD,在集群環(huán)境下進(jìn)行試驗(yàn),共8個(gè)工作節(jié)點(diǎn),為了模擬設(shè)備異構(gòu)每個(gè)工作節(jié)點(diǎn)占用8-16GB內(nèi)存,根據(jù)公式(7),帶入節(jié)點(diǎn)數(shù)目為8,計(jì)算得出vthreshold=49.
數(shù)據(jù)集分別使用的MNIST[22,23]、CIFAR-10[24]兩個(gè)數(shù)據(jù)集,并且對(duì)前兩個(gè)數(shù)據(jù)集在分發(fā)給不同節(jié)點(diǎn)前進(jìn)行了非獨(dú)立同分布處理,其中MNIST數(shù)據(jù)集包含60000個(gè)用于訓(xùn)練的示例和10000個(gè)用于測(cè)試的示例,每個(gè)實(shí)例均為28×28的單通道圖片,擁有10個(gè)不同類別.CIFAR-10數(shù)據(jù)集包含50000個(gè)用于訓(xùn)練的示例和10000個(gè)用于測(cè)試的示例,每個(gè)實(shí)例均為32×32的RGB通道圖片,擁有10個(gè)不同類別,所有數(shù)據(jù)集在分配到不同工作節(jié)點(diǎn)時(shí)均使之符合非獨(dú)立同分布.
在神經(jīng)網(wǎng)絡(luò)模型方面,其中MNIST采用全連接的神經(jīng)網(wǎng)絡(luò),共有4層.CIFAR-10數(shù)據(jù)集采用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練.為了比較說(shuō)明訓(xùn)練速度,本文比較為相同訓(xùn)練輪次的形況下,不同實(shí)驗(yàn)設(shè)置的損失值變化情況展示不同策略下的聯(lián)邦學(xué)習(xí)收斂性能.實(shí)驗(yàn)分別使用上述提及的兩個(gè)數(shù)據(jù)集,使用相同的學(xué)習(xí)率、損失函數(shù)等實(shí)驗(yàn)設(shè)置依次對(duì)比使用FedWPVA基礎(chǔ)結(jié)構(gòu)對(duì)比基于指數(shù)滑動(dòng)平均的異步聯(lián)邦學(xué)習(xí)、為了驗(yàn)證更新機(jī)制的效果,對(duì)比更新是否使用更新機(jī)制的區(qū)別,最后使用完整的FedWPVA算法對(duì)比基于指數(shù)滑動(dòng)平均的異步聯(lián)邦學(xué)習(xí),查看整體收斂情況.由于MNIST相較于CIFAR-10更容易收斂,本文對(duì)MNIST訓(xùn)練20個(gè)輪次,對(duì)CIFAR-10訓(xùn)練60個(gè)輪次.
在對(duì)照實(shí)驗(yàn)方面,我們使用了基于指數(shù)滑動(dòng)平均的異步聯(lián)邦學(xué)習(xí)Afed(Asynchronous Federated Learning)和2020年的相關(guān)改進(jìn)算法Aed_Hinge(Asynchronous Federated Optimization + Hinge)[9],該算法基于指數(shù)滑動(dòng)平均的異步聯(lián)邦學(xué)習(xí)進(jìn)行了改進(jìn),當(dāng)接受工作節(jié)點(diǎn)的更新時(shí),如果版本差距達(dá)到一定限制,降低本次更新中落后節(jié)點(diǎn)的加權(quán)權(quán)重.
我們首先測(cè)試了基于指數(shù)滑動(dòng)平均的異步聯(lián)邦學(xué)習(xí)Afed、Aed_Hinge、FedWPVA在MNIST數(shù)據(jù)集上損失下降的不同,Aed_Hinge、FedWPVA在相同輪次損失函數(shù)上都相較傳統(tǒng)異步聯(lián)邦學(xué)習(xí)更快下降,如圖4所示,其中Aed_Hinge算法對(duì)比Afed算法在MNIST數(shù)據(jù)集上損失平均降低了3.95%,F(xiàn)edWPVA對(duì)比算法對(duì)比Afed算法在MNIST數(shù)據(jù)集上損失平均降低了14.45%.從圖4中可以看出FedWPVA算法收斂速度較快,其中Afed_Hing算法在早期版本差距不顯著時(shí)幾乎與Afed保持一致,當(dāng)后期差距更加顯著時(shí)Afed_Hing與Afed逐漸拉開(kāi)差距,F(xiàn)edWPVA算法較為穩(wěn)定全程超過(guò)了Afed、Afed_Hing算法.
圖4 Afed、Afed_Hinge、FedWPVA在MNIST數(shù)據(jù)集上訓(xùn)練效率Fig.4 Afed、Afed_Hinge、FedWPVAtraining efficiency on the MNIST dataset
之后我們測(cè)試了基于指數(shù)滑動(dòng)平均的異步聯(lián)邦學(xué)習(xí)Afed、Aed_Hinge、FedWPVA在CIFAR-10數(shù)據(jù)集上損失下降的不同,Aed_Hinge、FedWPVA在相同輪次損失函數(shù)上都相較傳統(tǒng)異步聯(lián)邦學(xué)習(xí)更快下降,如圖5所示,其中Aed_Hinge算法對(duì)比Afed算法在CIFAR-10數(shù)據(jù)集上損失平均降低了4.00%,F(xiàn)edWPVA對(duì)比算法對(duì)比Afed算法在CIFAR-10數(shù)據(jù)集上損失平均降低了7.26%.從圖5中可以看出FedWPVA算法收斂速度較快,其中Afed在訓(xùn)練中期損失下降變慢是由于快滿節(jié)點(diǎn)版本差距拉大,由于慢節(jié)點(diǎn)的更新降低了模型整體收斂性能,Afed_Hing算法由于對(duì)慢節(jié)點(diǎn)進(jìn)行了權(quán)重懲罰,可以一定程度上緩解中后期的收斂速度慢的問(wèn)題,但是FedWPVA由于其權(quán)重摘要和更新版本感知機(jī)制在實(shí)驗(yàn)后期效果對(duì)比Afed_Hing算法效果更加明顯.
圖5 Afed、Afed_Hinge、FedWPVA在CIFAR-10數(shù)據(jù)集上訓(xùn)練效率Fig.5 Afed、Afed_Hinge、FedWPVA training efficiency on the MNIST dataset
基于指數(shù)滑動(dòng)平均的異步聯(lián)邦學(xué)習(xí),在實(shí)際使用時(shí)會(huì)出現(xiàn)聚合比例偏向快節(jié)點(diǎn)、慢節(jié)點(diǎn)過(guò)時(shí)權(quán)重不能被及時(shí)消除等聚合問(wèn)題,當(dāng)慢節(jié)點(diǎn)與快節(jié)點(diǎn)版本差距拉大時(shí),指數(shù)滑動(dòng)平均策略更新策略對(duì)版本差距的處理也不夠靈活.本文通過(guò)基于權(quán)重摘要的聚合策略和版本感知的更新策略,其中權(quán)重摘要通過(guò)保留工作節(jié)點(diǎn)最新權(quán)重,并且所有工作節(jié)點(diǎn)所占權(quán)重比例相同.權(quán)重摘要通過(guò)每個(gè)工作節(jié)點(diǎn)只能更新自身摘要部分,限制了快節(jié)點(diǎn)高頻更新對(duì)整體權(quán)重的影響,可以推動(dòng)參數(shù)服務(wù)器上的模型更快地收斂.版本感知是參數(shù)服務(wù)器對(duì)權(quán)重摘要的版本進(jìn)行記錄,使得參數(shù)服務(wù)器聚合時(shí)可以根據(jù)工作節(jié)點(diǎn)不同的版本確定不同的加權(quán)比例.同時(shí),當(dāng)整體版本差距過(guò)大時(shí),通過(guò)全局更新方式將慢節(jié)點(diǎn)中使用的舊權(quán)重更新到最新權(quán)重,從而提高慢節(jié)點(diǎn)的更新效率,使參數(shù)服務(wù)器上的模型更快的收斂.
綜上所述,F(xiàn)edWPVA算法解決了因工作節(jié)點(diǎn)訓(xùn)練速度差異而導(dǎo)致的模型收斂速度降低問(wèn)題.提高了異步聯(lián)邦學(xué)習(xí)訓(xùn)練效率.