舒志鴻,沈蘇彬
(1.南京郵電大學 計算機學院,江蘇 南京 210046;2.南京郵電大學 通信與網絡技術國家工程研究中心,江蘇 南京 210046)
隨著互聯(lián)網以及移動終端技術的持續(xù)發(fā)展,智能手機等移動設備已經成為人們生活中不可或缺的組成部分,并在與用戶交互的過程中產生了大量的數(shù)據。使用機器學習算法對這些數(shù)據進行深度分析可以幫助服務商充分了解用戶,為用戶提供更好的服務。傳統(tǒng)的機器學習策略要求移動設備將數(shù)據上傳到云服務器或數(shù)據中心進行處理[1],然而,數(shù)據隱私和安全問題越來越受到社會及公眾的重視,例如歐盟在2018年推出的《通用數(shù)據保護條例》[2]中明確規(guī)定數(shù)據的收集和存儲必須在消費者同意的條件下進行。在這種趨勢下,傳統(tǒng)方法或將不再適用。
為了解決該問題,Google[3]提出了一種分布式的機器學習方法,稱為聯(lián)邦學習(FL)。在FL中,客戶端在本地訓練自己的局部模型,然后僅僅將局部模型的參數(shù)發(fā)送到服務器進行聚合,以更新全局模型。FL重復上述過程直到全局模型收斂或達到所需的訓練準確率為止。區(qū)別于典型的分布式機器學習,F(xiàn)L的一個關鍵特征是數(shù)據的異質性,即:
(1)非獨立同分布(Non-IID):移動設備上的本地數(shù)據集取決于用戶的使用情況,因此任意客戶端的本地數(shù)據分布都無法代表全局數(shù)據的分布。
(2)不平衡:用戶使用服務或應用程序的頻率不同,造成客戶端上的數(shù)據量存在差異。
由于模型參數(shù)的龐大以及移動設備有限的通信帶寬,通信成本成為制約FL發(fā)展的主要因素之一[4]。為了應對這一挑戰(zhàn),McMahan等人[5]提出了目前廣為使用的FL算法聯(lián)邦平均(federated averaging,F(xiàn)edAvg),他們以平均的方式聚合各個參與方的局部模型以更新全局模型,并通過增加聚合期間局部模型的訓練次數(shù),減少通信開銷。這項研究考慮了客戶端上數(shù)據量的差異,但卻假設全局數(shù)據平衡分布,即在所有客戶端收集到的數(shù)據中各個類別的樣本數(shù)量分布是均衡的。
然而在許多實際應用中都存在全局數(shù)據不平衡的情況,例如欺詐檢測[6]、圖像識別[7]等。而Duan等人[8]通過進一步的研究表明,F(xiàn)edAvg在全局數(shù)據不平衡時的表現(xiàn)不佳。
該文主要研究全局數(shù)據不平衡時FL通信效率的優(yōu)化,在FedAvg的基礎上提出了一種基于數(shù)據分布加權聚合的FL算法(federated learning with data distribution weighted aggregation,F(xiàn)LDWA)。FLDWA通過客戶端的本地數(shù)據分布與平衡分布之間的海林格距離衡量本地數(shù)據的平衡程度,并將相關信息發(fā)送至FL服務器。然后,F(xiàn)L服務器據此為客戶端執(zhí)行加權聚合,從而在全局數(shù)據不平衡時更加高效地提取局部模型的信息。
在公開數(shù)據集MNIST[9]上使用多種不同的設置進行了仿真實驗,以驗證所提出方法的正確性和有效性,該數(shù)據集已被廣泛用于FL的相關研究中。實驗結果表明,在不平衡的MNIST上,F(xiàn)LDWA可以有效提升FL的通信效率。
優(yōu)化FL在全局數(shù)據不平衡時的通信效率,一個直接的想法是解決全局數(shù)據不平衡問題。在本節(jié)中,從不平衡數(shù)據上的機器學習以及聯(lián)邦學習兩個角度介紹和分析相關的一些研究。
(1)不平衡數(shù)據上的機器學習。
數(shù)據不平衡主要是指數(shù)據集中某些類的樣本數(shù)量遠大于另一些類。一般將樣本數(shù)量非常多的類稱為多數(shù)類,樣本數(shù)量較少的則稱為少數(shù)類[10]。該問題可以通過修改訓練數(shù)據或調整學習策略加以解決[11]。前者旨在刪除部分多數(shù)類(欠采樣)或生成部分少數(shù)類(過采樣)樣本使數(shù)據分布重新達到平衡狀態(tài),文獻[12]提出了一種基于聚類的欠采樣方法,通過K均值聚類算法對多數(shù)類進行了聚類,并用聚類中心代替同簇數(shù)據。Chawla等人[13]提出了合成少數(shù)類過采樣技術(SMOTE),通過對少數(shù)類進行分析并結合線性插值的方法生成新的少數(shù)類樣本。調整學習策略的方法則致力于對損失函數(shù)進行修改從而削弱算法對少數(shù)類的偏見,最受歡迎的方案是代價敏感學習[14]。該方法增加了少數(shù)類樣本的誤分類成本從而提高了對少數(shù)類的關注。文獻[15]中使用了再縮放技術對代價敏感學習進行改善,使其能夠適用于多分類任務。
然而,上述方法不適用于FL。FL數(shù)據僅能夠被其擁有者所訪問,導致采樣的方法難以實現(xiàn)。并且由于無從獲取整體數(shù)據的分布情況,調整學習策略的解決方案僅能在局部使用,這將導致各個用戶的局部模型不一致。
(2)聯(lián)邦學習。
通信效率的優(yōu)化一直是FL的主要研究方向之一。McMahan等人[16]提出了結構化更新和粗略更新,通過稀疏化和編碼技術實現(xiàn)了傳輸參數(shù)的縮小。文獻[17]對模型參數(shù)進行了有損壓縮,并且通過在訓練過程中刪除固定數(shù)量激活單元的方法進一步簡化了參數(shù)的復雜度,實現(xiàn)了通信開銷的優(yōu)化,從而擴展了文獻[16]中的研究。雖然壓縮模型參數(shù)的方法擁有極強的泛用性,但會導致準確性的犧牲。
Chen等人[18]將神經網絡分為深層和淺層,并以不同的頻率更新它們的參數(shù),同時根據參數(shù)的時效性調整了聚合策略,實現(xiàn)了通信成本的降低。Liu等人[19]設計了一種具有客戶端-邊緣-云的分層FL系統(tǒng),通過各層之間的協(xié)作減少了資源的消耗。Yao等人[20]將最大均值差異(MMD)引入損失函數(shù)中,通過最小化局部模型和全局模型的MMD損失,減少了算法所需的通信回合。然而,上述工作沒有考慮到全局數(shù)據不平衡對FL的影響。
目前只有少數(shù)研究關注全局數(shù)據不平衡問題。Duan等人[8]通過數(shù)據擴充減輕單個客戶端的不平衡程度,并且在服務器與客戶端之間設置中介,根據客戶端數(shù)據分布的Kullback-Leibler距離重新安排它們的協(xié)作訓練。該方法引入了不可忽視的存儲和時間開銷,這可能會成為應用的限制。
與上述的研究相比,筆者更加關注方法的普適性,致力于在盡量避免額外的成本或犧牲的情況下,提升全局數(shù)據不平衡時FL的通信效率。
通常,F(xiàn)L包含兩個主要的實體,即客戶端和服務器??蛻舳薻(k=1,2,…,K)持有一個私有的本地數(shù)據集Dk,并在Dk上最小化損失函數(shù)fk(w)以訓練局部模型。令D=∪k∈KDk表示全局數(shù)據集,|D|和|Dk|分別表示全局數(shù)據集以及客戶端k上的本地數(shù)據集的數(shù)據量。則FL的優(yōu)化目標定義為:
(1)
其中,F(xiàn)(w)為全局模型的損失函數(shù),定義如下:
(2)
在FL中,服務器收集所有局部模型的模型參數(shù),并通過將它們聚合以更新全局模型。所以,F(xiàn)L的性能在很大程度上取決于聚合策略。目前廣泛使用的聚合策略是由FedAvg算法[5]中提出的平均聚合,其具體實現(xiàn)由式(3)給出:
(3)
在對不平衡數(shù)據集進行分類操作時,算法為了提高分類精度,會傾向于將多數(shù)類分類正確,從而對少數(shù)類產生偏見。所以對于同一個機器學習任務,通常使用分布更加平衡的訓練數(shù)據得到的模型質量也會更高。
由于數(shù)據隔離的原因,F(xiàn)L無法直接使用全局數(shù)據進行訓練,而是通過聚合局部模型達到學習的目的。當全局數(shù)據不平衡時,由于FL的本地數(shù)據集具有非獨立同分布的特點,各個客戶端的本地數(shù)據在分布平衡程度上出現(xiàn)差異,導致訓練出來的局部模型質量也會有所差異。由式(3)可知,F(xiàn)edAvg算法中的聚合策略僅根據客戶端上的數(shù)據量確定相應局部模型的權重。這可能并不合理,因為數(shù)據分布更為平衡的客戶端通常會訓練出質量更高的局部模型,應該在聚合時具有更高的權重。
本節(jié)提出的數(shù)據分布加權聚合的聯(lián)邦學習(FLDWA)方法在FedAvg的基礎上加入了對數(shù)據分布的考慮。量化了每個FL本地數(shù)據集的平衡程度,據此調整了聚合策略,從而更加有效地提取局部模型的信息。此外,只要本地數(shù)據集不發(fā)生變化,其平衡程度也不會改變。所以在算法的執(zhí)行過程中,客戶端只需首次與服務器通信時將相關信息上傳即可。
(1)本地數(shù)據集平衡程度的量化。
使用海林格距離對本地數(shù)據集的平衡程度進行量化。在概率論和統(tǒng)計理論中,海林格距離被用來度量兩個概率分布的相似程度[21]。設兩個離散概率分布分別為U=(u1,u2,…,un)和V=(v1,v2,…,vn),則它們之間的海林格距離定義為:
(4)
于是,本地數(shù)據集的平衡程度可以通過計算其與平衡數(shù)據集的海林格距離來刻畫。平衡數(shù)據集是指各類別樣本數(shù)量分布均衡的數(shù)據集,但目前還沒有研究指出各類別樣本需要滿足何種數(shù)量關系才能定義為均衡,該文不解決此問題。由此,定義了一個基準數(shù)據集Db作為平衡數(shù)據集的替代。在基準數(shù)據集中,各個類別的樣本數(shù)量嚴格遵循1∶1∶…∶1的規(guī)律。
本地數(shù)據集與基準數(shù)據集的海林格距離越小,表示兩者的相似度越高,也即該數(shù)據集的平衡程度越高。值得注意的是,海林格距離與相似度是負相關的,為了便于后續(xù)的計算以及更為直觀地表示平衡程度,需要對其進行轉換??紤]到海林格距離滿足柯西-施瓦茲不等式,所以其具有如下性質:
0≤H(U,V)≤1
(5)
最終,使用式(6)所示的Bk表征本地數(shù)據集Dk的平衡情況,稱為平衡度。它是通過將式(7)計算出的本地數(shù)據集與基準數(shù)據集之間的海林格距離關于其值域進行翻轉后得到的:
Bk=1-Hk
(6)
Hk=H(Pk,Pb)
(7)
其中,Pk和Pb分別為本地數(shù)據集Dk與基準數(shù)據集Db上的概率分布。
(2)局部模型的聚合策略。
在FedAvg中,聚合策略僅根據客戶端的數(shù)據量進行加權,其權重為:
(8)
在此基礎上加入了對客戶端上本地數(shù)據分布的考慮。為此,將上節(jié)中得到的平衡度通過歸一化的方法轉化為權重的形式。具體計算方式為:
(9)
FLDWA通過結合上述兩種權重得到最終的綜合權重??紤]到隨著實際情況的變化,兩種權重會對綜合權重產生不同的影響,所以定義了影響因子eq和es表示它們對綜合權重的影響程度。雖然數(shù)據量和平衡度都會對局部模型的質量產生作用,但是權重計算的是客戶端在某個因素上的相對差距。例如數(shù)據量相同的多個客戶端,通過式(8)計算出的權重也是相同的,此時可以僅使用由式(9)所確定的平衡度權重進行加權,因為數(shù)據量對局部模型質量的影響不存在差異。
(10)
(11)
基于此,將式(3)的聚合策略改寫為:
(12)
文中實驗是在MNIST數(shù)據集上進行的。該數(shù)據集共包含60 000張訓練圖像和10 000張測試圖像。測試圖像中,不同類別對應的圖像數(shù)量在892到1 135之間,為了構造出分布平衡的測試集,隨機刪除了一些圖像,最后使所有類別對應的圖像數(shù)量都為892張。
采用多層感知機(multilayer perceptron,MLP)和卷積神經網絡(convolutional neural networks,CNN)兩種模型來評估文中的研究,其網絡結構與文獻[5]中使用的模型保持一致。同時,選擇FedAvg作為基準算法進行對比,該算法目前已用于眾多FL實際應用中[22]。
為了對FLDWA進行測試和評估,設計了兩組實驗。第一組實驗探究了本地數(shù)據集的平衡程度對算法的影響,第二組實驗則對比了FLDWA與基準算法在多種不同設置下的表現(xiàn)。實驗中所有結果皆為10次獨立實驗的平均值。
(1)本地數(shù)據集的平衡程度對算法的影響。
該實驗為對照實驗,分為正常組和不平衡組。從MNIST中抽取了4個數(shù)據量相同的子集作為本地數(shù)據集分發(fā)給客戶端,正常組中4個本地數(shù)據集都是平衡數(shù)據集,不平衡組中則含有一個極度不平衡的本地數(shù)據集,其僅持有一個類別的數(shù)據樣本。
圖1顯示了FLDWA和基準算法在正常組和不平衡組使用CNN模型達到98%準確率所需的通信回合??梢钥闯觯=M中FLDWA與FedAvg的性能相同,因為相同的客戶端數(shù)據分布并未對算法產生影響,此時可以將FedAvg視為FLDWA的一種特例。在不平衡組中,兩種算法所需的通信回合都出現(xiàn)了增長,但FedAvg需要額外30%的回合才能達到目標準確率。這表明使用平衡度低的本地數(shù)據集訓練的局部模型質量較低,由于FedAvg在聚合時對所有局部模型一視同仁,因此其性能明顯低于FLDWA。
圖1 兩種算法達到目標準確率所需通信回合對比
圖2顯示了FLDWA中的聚合權重。FLDWA為數(shù)據不平衡的客戶端4分配了很小的權重,限制了其在聚合時的影響力,其他平衡的客戶端被分配以較高的權重??梢园l(fā)現(xiàn),F(xiàn)LDWA能夠準確識別本地數(shù)據集的平衡度為其分配合適的權重,更加有效地聚合各方的信息。
圖2 FLDWA中客戶端的聚合權重
(2)FLDWA與FedAvg的對比。
在該實驗中,分別使用MLP和CNN模型對FLDWA和基準算法進行了對比,并且根據客戶端上數(shù)據量是否相同,每種模型又分別進行了兩組實驗。構造客戶端數(shù)據時,為了反映出FL數(shù)據非獨立同分布的特點,在保證全局數(shù)據不平衡的前提下,隨機控制本地數(shù)據集中的類別個數(shù)以及各個類別樣本的數(shù)量,并且使得任何本地數(shù)據集之間都不存在相同的樣本。
圖3比較了兩種算法在不同設置下的性能表現(xiàn)。可以觀察到,F(xiàn)LDWA在各種設置下都以較少的通信回合達到了同樣的準確率,并且在相同的通信回合中,其準確率均優(yōu)于基線算法。這充分證實了FLDWA的聚合策略更為高效,有助于生成性能更好的全局模型。另一方面,(a)(c)兩組實驗中,客戶端的數(shù)據量是相同的,此時FLDWA的聚合權重僅與本地數(shù)據集的平衡度有關。這也表明根據平衡度進行全局模型的聚合可以取得良好的效果,是一種有效的方法。
圖3 不同實驗設置下的測試集準確率和通信回合的關系
表1中列出了不同的設置下(對應于圖3中的(a),(b),(c),(d))使用兩種算法達到目標準確率所需的通信回合(MLP模型目標準確率為93%,CNN模型則是98%),以及FLDWA相較基線算法的通信回合減少率??梢杂^察到在(a)組實驗的設置下,F(xiàn)LDWA達到目標準確率平均需要118輪通信回合,而傳統(tǒng)的FedAvg則需要大約143輪才能取得同樣的效果,從而降低了17.4%的通信成本。盡管實驗設置不盡相同,但在(b),(c),(d)三組實驗上均可以得出類似的結論,所提出的算法分別將通信成本降低了15.6%、14.6%和15.8%。這證實了在全局數(shù)據不平衡時,F(xiàn)LDWA具有更高的通信效率,并且對于不同的數(shù)據量情況和不同的機器學習模型都具有很好的魯棒性。
表1 不同設置下FedAvg和FLDWA達到目標 準確率所需的通信回合以及以FedAvg 為基準的通信回合的減少率
此外,作為對比和補充,也對FLDWA在全局數(shù)據平衡時的表現(xiàn)進行了評估。實驗結果在表2中進行了展示。
表2 全局數(shù)據平衡時FedAvg和FLDWA達到 目標準確率所需的通信回合
從數(shù)據中可以看出在全局數(shù)據平衡時,兩種算法達到目標準確率所需的通信回合差異較小,F(xiàn)LDWA僅帶來了微弱的提升。這可能歸因于全局數(shù)據平衡時,雖然也可能會出現(xiàn)分布不平衡的本地數(shù)據集,但是該數(shù)據集中缺失或冗余的信息恰好與其他本地數(shù)據集對應的部分互補,于是局部模型通過平均聚合能夠獲得很好的調整。同時這也表明,F(xiàn)LDWA同樣適用于全局數(shù)據平衡任務,并且在多數(shù)情況下表現(xiàn)出優(yōu)于FedAvg的通信效率。
該文提出了一種基于數(shù)據分布加權聚合的FL算法FLDWA,旨在提升FL在全局數(shù)據不平衡時的通信效率。該算法基于海林格距離對客戶端的本地數(shù)據分布平衡程度進行了量化,并據此重新確定了其在FL聚合時的權重,使算法在更少的通信回合內收斂或達到目標準確率。實驗結果表明,與流行的FL算法FedAvg相比,該方法有效降低了通信成本,并且在采用不同的機器學習模型和本地數(shù)據集大小時都有著很好的表現(xiàn),具有較強的泛用性。
在接下來的工作中,將對該算法進行擴展,結合同態(tài)加密、安全多方計算等技術進一步為FL提供更強大的安全保證。此外,可能存在惡意節(jié)點向FL服務器發(fā)送錯誤的模型更新信息,從而降低FL的性能。如何檢測和避免惡意攻擊也是接下來重點關注的研究方向。