張紅艷 張玉 曹燦明
摘 要:
聯(lián)邦學(xué)習(xí)是一種不通過(guò)中心化的數(shù)據(jù)訓(xùn)練就能獲得機(jī)器學(xué)習(xí)模型的系統(tǒng),源數(shù)據(jù)不出本地,降低了隱私泄露的風(fēng)險(xiǎn),同時(shí)本地也獲得優(yōu)化訓(xùn)練模型。但是由于各節(jié)點(diǎn)之間的身份、行為、環(huán)境等不同,導(dǎo)致不平衡的數(shù)據(jù)分布可能引起模型在不同設(shè)備上的表現(xiàn)出現(xiàn)較大偏差,從而形成數(shù)據(jù)異構(gòu)問(wèn)題。針對(duì)上述問(wèn)題,提出了基于節(jié)點(diǎn)優(yōu)化的數(shù)據(jù)共享模型參數(shù)聚類(lèi)算法,將聚類(lèi)和數(shù)據(jù)共享同時(shí)應(yīng)用到聯(lián)邦學(xué)習(xí)系統(tǒng)中,該方法既能夠有效地減少數(shù)據(jù)異構(gòu)對(duì)聯(lián)邦學(xué)習(xí)的影響,也加快了本地模型收斂的速度。同時(shí),設(shè)計(jì)了一種評(píng)估全局共享模型收斂程度的方法,用于判斷節(jié)點(diǎn)聚類(lèi)的時(shí)機(jī)。最后,采用數(shù)據(jù)集EMNIST、CIFAR-10進(jìn)行了實(shí)驗(yàn)和性能分析,驗(yàn)證了共享比例大小對(duì)各個(gè)節(jié)點(diǎn)收斂速度、準(zhǔn)確率的影響,并進(jìn)一步分析了當(dāng)聚類(lèi)與數(shù)據(jù)共享同時(shí)應(yīng)用到聯(lián)邦學(xué)習(xí)前后各個(gè)節(jié)點(diǎn)的準(zhǔn)確率。實(shí)驗(yàn)結(jié)果表明,當(dāng)引入數(shù)據(jù)共享后各節(jié)點(diǎn)的收斂速度以及準(zhǔn)確率都有所提升,而當(dāng)聚類(lèi)與數(shù)據(jù)共享同時(shí)引入到聯(lián)邦學(xué)習(xí)訓(xùn)練后,與FedAvg算法對(duì)比,其準(zhǔn)確度提高10%~15%,表明了該方法針對(duì)聯(lián)邦學(xué)習(xí)數(shù)據(jù)異構(gòu)問(wèn)題上有著良好的效果。
關(guān)鍵詞:聯(lián)邦學(xué)習(xí);數(shù)據(jù)共享;聚類(lèi);全局共享模型收斂;數(shù)據(jù)異構(gòu)
中圖分類(lèi)號(hào):TP18?? 文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2024)03-011-0713-08
doi:10.19734/j.issn.1001-3695.2023.07.0296
Effective method to solve problem of data heterogeneity in federated learning
Zhang Hongyan1,Zhang Yu1,Cao Canming2
(1.College of Information Science & Technology,Zhengzhou Normal University,Zhengzhou 450044,China;2.School of Computer Science & Technology,Tiangong University,Tianjin 300387,China)
Abstract:Federated learning is a framework for obtaining machine learning models without centralized data training,reducing the risk of privacy leakage while also obtaining optimized training models locally.However,the identity,behavior,environment,etc.between nodes are different,resulting in unbalanced data distribution,which may cause a large deviation in the performance of the model on different devices,resulting in data heterogeneity.Aiming at the above problems,this paper proposed a federated learning algorithm for data sharing clustering based on node optimization method that applied clustering and data sharing to fede-rated learning system at the same time,which could effectively reduce the impact of data heterogeneity on federated learning and accelerate the convergence of local models.At the same time,it designed method to assess the convergence of the global shared model to determine the timing of node clustering nodes.Finally,this paper used the EMNIST and CIFAR-10 datasets for experiments and performance analysis to compare the effects of the size of the shared scale on the convergence speed and accuracy of each node,and to compare the accuracy of clustering and data sharing before and after the application of federated learning.Experimental results show that the convergence speed and accuracy of each node are improved when data sharing is introduced,and the accuracy is increased by about 10%~15% when clustering and data sharing are introduced into federated learning training at the same time,indicating that this method has a good effect on the heterogeneous problem of federated learning data.
Key words:federated learning;data sharing;clustering;global shared model convergence;data heterogeneity
0 引言
近年來(lái),云計(jì)算、物聯(lián)網(wǎng)和機(jī)器學(xué)習(xí)高速發(fā)展,廣泛應(yīng)用于智慧城市、智慧安防等領(lǐng)域。海量異構(gòu)數(shù)據(jù)聚合在云平臺(tái)上,通過(guò)各類(lèi)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)算法對(duì)數(shù)據(jù)進(jìn)行分析,挖掘數(shù)據(jù)隱藏的知識(shí)信息。然而,隨著數(shù)據(jù)和用戶(hù)隱私的關(guān)聯(lián)度越發(fā)密切,把全部源數(shù)據(jù)聚合到中心節(jié)點(diǎn)再進(jìn)行模型訓(xùn)練的方法存在較大的隱私泄露風(fēng)險(xiǎn)[1~3]。因此,谷歌于 2017 年提出聯(lián)邦學(xué)習(xí)[4],旨在無(wú)須通過(guò)中心化的數(shù)據(jù)訓(xùn)練就能獲得機(jī)器學(xué)習(xí)模型。各數(shù)據(jù)提供方在本地進(jìn)行數(shù)據(jù)訓(xùn)練,把參數(shù)等隱私無(wú)關(guān)信息發(fā)送給參數(shù)服務(wù)器進(jìn)行全局調(diào)優(yōu),再把優(yōu)化后的模型應(yīng)用到本地,以實(shí)現(xiàn)在不提供原始數(shù)據(jù)的情況下獲取全局的數(shù)據(jù)“知識(shí)”。聯(lián)邦學(xué)習(xí)是典型的非聚合式數(shù)據(jù)共享方法,源數(shù)據(jù)不出本地,降低了隱私泄露的風(fēng)險(xiǎn),同時(shí)本地也獲得優(yōu)化訓(xùn)練模型[5]。
但是由于各節(jié)點(diǎn)的身份、所處環(huán)境的差異,導(dǎo)致由各節(jié)點(diǎn)之間產(chǎn)生的數(shù)據(jù)集可能存在很大的差異性,訓(xùn)練樣本并不是均勻隨機(jī)地分布在不同的數(shù)據(jù)節(jié)點(diǎn)間的,不平衡的數(shù)據(jù)分布可能導(dǎo)致模型在不同設(shè)備上表現(xiàn)出較大偏差,從而形成聯(lián)邦學(xué)習(xí)數(shù)據(jù)異構(gòu)問(wèn)題[6~9]。所以在進(jìn)行聯(lián)邦學(xué)習(xí)訓(xùn)練前,如何選取有效的數(shù)據(jù)集進(jìn)行數(shù)據(jù)處理是一個(gè)重要的問(wèn)題。在聯(lián)邦學(xué)習(xí)算法研究過(guò)程中,文獻(xiàn)[4]提出的FedAvg是目前最常用的聯(lián)邦學(xué)習(xí)優(yōu)化算法,其根據(jù)各個(gè)節(jié)點(diǎn)內(nèi)數(shù)據(jù)量與全體節(jié)點(diǎn)總數(shù)據(jù)量的比值作為權(quán)重聚合不同節(jié)點(diǎn)發(fā)送的參數(shù),但這種簡(jiǎn)單的加權(quán)平均的方式難以處理數(shù)據(jù)異構(gòu)問(wèn)題?;贔edAvg聯(lián)邦平均算法,目前有很多關(guān)于解決數(shù)據(jù)異構(gòu)問(wèn)題的研究,主要有兩種思路[3]:a)通過(guò)優(yōu)化中心服務(wù)端的模型聚合的方法降低數(shù)據(jù)不平衡帶來(lái)的影響;b)通過(guò)優(yōu)化本地模型的更新過(guò)程。在基于中心服務(wù)端聚合的優(yōu)化方面: FedAvgM[10]通過(guò)引入動(dòng)量的方法緩解數(shù)據(jù)異構(gòu)對(duì)聯(lián)邦平均算法的影響;文獻(xiàn)[11]提出分層聚合的方式,將模型訓(xùn)練分為基礎(chǔ)層與個(gè)性層兩層,其中基礎(chǔ)層由不同節(jié)點(diǎn)共同訓(xùn)練,而個(gè)性層是由本地訓(xùn)練,個(gè)性層能夠有效地減少數(shù)據(jù)異構(gòu)在不同節(jié)點(diǎn)之間的差異。在基于本地節(jié)點(diǎn)優(yōu)化的算法方面:由于不同節(jié)點(diǎn)上的數(shù)據(jù)是非獨(dú)立同分布的,并且節(jié)點(diǎn)之間不能夠直接通信與數(shù)據(jù)交流,本地模型訓(xùn)練時(shí)不能夠得到其他節(jié)點(diǎn)中的信息,所以本地訓(xùn)練很可能受到本地節(jié)點(diǎn)中的數(shù)據(jù)影響,其模型的更新方向很難被掌控。為了解決上述問(wèn)題,文獻(xiàn)[12]通過(guò)創(chuàng)建一個(gè)在所有節(jié)點(diǎn)設(shè)備之間全局共享的數(shù)據(jù)子集,節(jié)點(diǎn)設(shè)備基于共享數(shù)據(jù)與私有數(shù)據(jù)進(jìn)行模型訓(xùn)練,以改進(jìn)對(duì)非獨(dú)立同分布數(shù)據(jù)的訓(xùn)練。
由于non-IID 數(shù)據(jù)的存在,聯(lián)邦學(xué)習(xí)的效率、準(zhǔn)確性和通信成本等都受到了很大的影響。已有很多學(xué)者針對(duì)此進(jìn)行研究。例如:文獻(xiàn)[7]使用全局模型的知識(shí)來(lái)約束局部模型的偏置問(wèn)題,防止那些與全局模型訓(xùn)練方向相差太大的局部模型發(fā)生“客戶(hù)漂移”現(xiàn)象,進(jìn)一步增加設(shè)備之間的通信代價(jià);文獻(xiàn)[8]引入K-center方法,提出了一種基于模型梯度相似性對(duì)設(shè)備進(jìn)行周期性聚合分組的方法,但很容易引入巨量的通信開(kāi)銷(xiāo);文獻(xiàn)[13]提出了一種新的算法FedProx,在各個(gè)用戶(hù)之間設(shè)置局部損失函數(shù),有效減少數(shù)據(jù)異構(gòu)對(duì)聯(lián)邦學(xué)習(xí)的影響。針對(duì)移動(dòng)終端設(shè)備上數(shù)據(jù)分布的不平衡性,文獻(xiàn)[14]提出一種自平衡框架;文獻(xiàn)[15]提出一種基于精餾的半監(jiān)督聯(lián)邦學(xué)習(xí)算法,能在移動(dòng)設(shè)備間交換局部模型的輸出,降低了通信成本;文獻(xiàn)[16,17]對(duì)面向非獨(dú)立同分布數(shù)據(jù)的聯(lián)邦學(xué)習(xí)研究進(jìn)展進(jìn)行了綜述,并指出了目前的研究方向。
由于本地節(jié)點(diǎn)優(yōu)化與優(yōu)化中心服務(wù)端的模型聚合相比更容易操作且便捷,所以本文基于本地節(jié)點(diǎn)優(yōu)化的算法,提出了基于節(jié)點(diǎn)優(yōu)化的數(shù)據(jù)共享聚類(lèi)的聯(lián)邦學(xué)習(xí)算法,引入聚類(lèi)[14]算法與數(shù)據(jù)共享技術(shù)[8]到聯(lián)邦學(xué)習(xí)算法,有效減少數(shù)據(jù)異構(gòu)對(duì)于聯(lián)邦學(xué)習(xí)的影響。該算法首先利用數(shù)據(jù)共享,節(jié)點(diǎn)利用共享數(shù)據(jù)與本地?cái)?shù)據(jù)訓(xùn)練收斂后,依據(jù)各個(gè)節(jié)點(diǎn)上傳的模型參數(shù)尋得相似節(jié)點(diǎn)進(jìn)行聚類(lèi)操作,隨后在各個(gè)類(lèi)別中分別進(jìn)行聚合。
本文的主要貢獻(xiàn)包括三個(gè)方面:
a)數(shù)據(jù)共享。引入數(shù)據(jù)共享技術(shù)到聯(lián)邦學(xué)習(xí)節(jié)點(diǎn)初始化,各節(jié)點(diǎn)按照指定的共享比例將數(shù)據(jù)放置共享數(shù)據(jù)池,節(jié)點(diǎn)本地訓(xùn)練時(shí)并入共享數(shù)據(jù)池中的數(shù)據(jù)進(jìn)行本地訓(xùn)練,并研究節(jié)點(diǎn)數(shù)據(jù)共享比例對(duì)聯(lián)邦學(xué)習(xí)的準(zhǔn)確度和收斂速度的影響。
b)動(dòng)態(tài)判斷模型收斂。通過(guò)對(duì)于聯(lián)邦學(xué)習(xí)收斂的研究,提出了動(dòng)態(tài)判斷模型收斂算法。該算法能夠反映出各個(gè)節(jié)點(diǎn)的收斂程度,其目是為模型參數(shù)聚類(lèi)做準(zhǔn)備,當(dāng)各節(jié)點(diǎn)的模型收斂,此刻本地模型參數(shù)能夠很好地表現(xiàn)本地?cái)?shù)據(jù)的分布情況。該算法提高了模型參數(shù)聚類(lèi)的效果。
c)節(jié)點(diǎn)聚類(lèi)。通過(guò)節(jié)點(diǎn)的層次聚類(lèi)解決數(shù)據(jù)異構(gòu)問(wèn)題帶來(lái)的影響。首先聯(lián)邦學(xué)習(xí)達(dá)到模型收斂條件后,判斷各個(gè)節(jié)點(diǎn)數(shù)據(jù)之間的相似度,進(jìn)行層次聚類(lèi)。針對(duì)不同簇類(lèi)的用戶(hù)分別進(jìn)行聚合操作,并在數(shù)據(jù)集EMNIST和CIFAR10上作出了評(píng)估。實(shí)驗(yàn)結(jié)果表明,本文算法能夠有效減少數(shù)據(jù)異構(gòu)對(duì)聯(lián)邦學(xué)習(xí)的影響,并且優(yōu)與對(duì)比方案。
1 理論基礎(chǔ)
1.1 經(jīng)典聯(lián)邦學(xué)習(xí)及其存在的問(wèn)題
聯(lián)邦學(xué)習(xí)是一種新型分布式機(jī)器學(xué)習(xí)技術(shù),聯(lián)邦學(xué)習(xí)中各個(gè)數(shù)據(jù)的擁有者(個(gè)人/企業(yè)/機(jī)構(gòu))的自有數(shù)據(jù)不會(huì)離開(kāi)本地,通過(guò)聯(lián)邦學(xué)習(xí)系統(tǒng)中加密機(jī)制下的參數(shù)交換聯(lián)合建立一個(gè)全局的共享模型,建好的模型在各自區(qū)域只為本地的目標(biāo)中心服務(wù)。該系統(tǒng)中全局共享模型的數(shù)據(jù)與訓(xùn)練存儲(chǔ)在各個(gè)節(jié)點(diǎn)上,中心服務(wù)端統(tǒng)籌聯(lián)合訓(xùn)練。聯(lián)邦學(xué)習(xí)與分布式機(jī)器學(xué)習(xí)不同的是由于節(jié)點(diǎn)之間存在地理、時(shí)間分布的差異,聯(lián)邦學(xué)習(xí)通常要處理非獨(dú)立同分布(non-IID)的數(shù)據(jù)[15,16]。聯(lián)邦學(xué)習(xí)的訓(xùn)練過(guò)程通常需要循環(huán)以下四個(gè)步驟,如圖1所示,設(shè)聯(lián)邦學(xué)習(xí)各個(gè)節(jié)點(diǎn)與中心服務(wù)端的通信次數(shù)為t,具體步驟如下:
a)系統(tǒng)初始化。首先各個(gè)節(jié)點(diǎn)從中心服務(wù)端下載全局共享模型參數(shù)θt,初始化本地模型參數(shù)。
b)局部計(jì)算。各節(jié)點(diǎn)根據(jù)自有的數(shù)據(jù)進(jìn)行本地訓(xùn)練,當(dāng)達(dá)到預(yù)定的訓(xùn)練次數(shù)時(shí),將本地模型參數(shù)與訓(xùn)練前下載的全局共享模型參數(shù)作差求出模型參數(shù)的梯度,并上傳至中心服務(wù)端,以用于全局共享模型的一次更新。如式(1)所示,設(shè)節(jié)點(diǎn)數(shù)據(jù)為Di,通過(guò)梯度下降法得到本地訓(xùn)練參數(shù)與θt作差,求出全局共享模型下降梯度。
Δθt+1i=SGDk(θt,Di)-θt i=1,…,m(1)
c)中心聚合。中心服務(wù)端隨機(jī)抽取節(jié)點(diǎn),并接收各節(jié)點(diǎn)上傳的模型參數(shù)梯度,中心服務(wù)端對(duì)這些模型參數(shù)梯度值進(jìn)行聚合操作。式(2)表示中心服務(wù)端模型參數(shù)梯度聚合,中心服務(wù)端將抽樣的節(jié)點(diǎn)模型參數(shù)梯度Δθt+1i加權(quán)平均,并與上一輪聚合后模型參數(shù)θt相加,更新全局模型參數(shù)θt+1。
d)模型更新。中心服務(wù)端根據(jù)聚合后的結(jié)果對(duì)全局模型進(jìn)行一次更新,并將聚合后的模型參數(shù)回傳給抽樣節(jié)點(diǎn),各節(jié)點(diǎn)更新本地模型,并開(kāi)啟下一輪的本地訓(xùn)練。重復(fù)執(zhí)行上述步驟直至通信次數(shù)達(dá)到t。
θt+1=θt+∑mi=1|Di||D|Δθt+1i(2)
聯(lián)邦學(xué)習(xí)中通信負(fù)載[17]是聯(lián)邦學(xué)習(xí)發(fā)展道路上難以忽視的一道障礙。隨著深度學(xué)習(xí)的不斷發(fā)展,神經(jīng)網(wǎng)絡(luò)模型的深度不斷加深,深度學(xué)習(xí)網(wǎng)絡(luò)模型參數(shù)也隨之增多。比如 CNN[18]可能需要訓(xùn)練上百萬(wàn)個(gè)參數(shù),在聯(lián)邦學(xué)習(xí)中每一次更新過(guò)程需要更新上百萬(wàn)個(gè)參數(shù)。其次,聯(lián)邦學(xué)習(xí)的訓(xùn)練放置在各個(gè)節(jié)點(diǎn)中,中心服務(wù)端依靠網(wǎng)絡(luò)與各節(jié)點(diǎn)進(jìn)行信息交互,更新節(jié)點(diǎn)模型參數(shù)。其中,網(wǎng)絡(luò)通信[19]的狀態(tài)也可能導(dǎo)致很高的通信成本,比如不穩(wěn)定的網(wǎng)絡(luò)情況、參數(shù)上傳和下載過(guò)程中速度不一致都會(huì)導(dǎo)致整個(gè)算法的模型訓(xùn)練成本過(guò)大。
為了解決上述問(wèn)題,本文采用上傳模型參數(shù)梯度,而非整個(gè)模型參數(shù)。更新本地模型需將全局共享模型參數(shù)賦值到本地,該過(guò)程中有很多值是無(wú)須傳遞的,對(duì)于通信會(huì)造成不小的壓力。而本地模型僅僅需要了解其模型變化的方向,就能夠調(diào)整本地模型參數(shù)。因此各節(jié)點(diǎn)只需接收模型參數(shù)梯度,就能夠減少通信所帶來(lái)的一部分壓力,并且與傳遞整個(gè)全局模型的效果是一樣的。
此外,聯(lián)邦學(xué)習(xí)中存在數(shù)據(jù)異構(gòu)難題。聯(lián)邦學(xué)習(xí)節(jié)點(diǎn)中的數(shù)據(jù)通常以non-IID的方式在網(wǎng)絡(luò)中生成和存儲(chǔ)在本地,跨設(shè)備的節(jié)點(diǎn)持有的數(shù)據(jù)數(shù)量很可能分布不均勻。而目前現(xiàn)有的機(jī)器學(xué)習(xí)優(yōu)化算法針對(duì)的數(shù)據(jù)是獨(dú)立同分布的,這些算法對(duì)于聯(lián)邦學(xué)習(xí)不能適用。其次,數(shù)據(jù)異構(gòu)也會(huì)導(dǎo)致節(jié)點(diǎn)本身的模型參數(shù)僅僅適用于本身私有的數(shù)據(jù),使節(jié)點(diǎn)局部模型的準(zhǔn)確率高于全局共享模型[19~22]。
FedAvg[4]是目前最常用的聯(lián)邦學(xué)習(xí)優(yōu)化算法,其本質(zhì)思想是中心服務(wù)端聚合操作為線(xiàn)性求和,求得均值,用于全局共享模型的一次更新。并未對(duì)聯(lián)邦學(xué)習(xí)的數(shù)據(jù)異構(gòu)進(jìn)行處理,導(dǎo)致傳統(tǒng)聯(lián)邦學(xué)習(xí)中的全局共享模型并不能有效地泛化各個(gè)節(jié)點(diǎn)。
1.2 算法改進(jìn)思想
1)模型參數(shù)聚類(lèi)
真實(shí)環(huán)境中聯(lián)邦學(xué)習(xí)各個(gè)節(jié)點(diǎn)的數(shù)據(jù)存在著一定的獨(dú)立性、差異性。設(shè)想聯(lián)邦學(xué)習(xí)中存在具有相同工作和相似環(huán)境的一類(lèi)節(jié)點(diǎn),該類(lèi)節(jié)點(diǎn)所產(chǎn)生和存儲(chǔ)的數(shù)據(jù)往往相似度很高。例如節(jié)點(diǎn)A經(jīng)常旅游,該節(jié)點(diǎn)設(shè)備中存儲(chǔ)的圖片,風(fēng)景照將會(huì)占絕大部分,而另一個(gè)節(jié)點(diǎn)B與A有著相同的愛(ài)好,節(jié)點(diǎn)A、B設(shè)備中存儲(chǔ)的數(shù)據(jù)將會(huì)有著很高的相似度。在上述例子中,倘若想要對(duì)各個(gè)節(jié)點(diǎn)劃分類(lèi)別,傳統(tǒng)的機(jī)器學(xué)習(xí)采取的方法通常是對(duì)現(xiàn)有大量數(shù)據(jù)進(jìn)行聚類(lèi)操作。但在聯(lián)邦學(xué)習(xí)中基于對(duì)節(jié)點(diǎn)數(shù)據(jù)隱私的考慮,節(jié)點(diǎn)中的數(shù)據(jù)不能上傳到中心服務(wù)端,因此不能根據(jù)數(shù)據(jù)的特征對(duì)節(jié)點(diǎn)分類(lèi)。
基于以上分析,聚類(lèi)在聯(lián)邦學(xué)習(xí)中不能直接聚類(lèi)節(jié)點(diǎn)中的數(shù)據(jù)[23],而是聚類(lèi)節(jié)點(diǎn)的模型參數(shù),其意義在于尋找相似的模型參數(shù),如同尋找相似的節(jié)點(diǎn)。根據(jù)模型參數(shù)進(jìn)行聚類(lèi),尋得相似節(jié)點(diǎn)分類(lèi)聚合,在減少數(shù)據(jù)異構(gòu)對(duì)聯(lián)邦學(xué)習(xí)造成影響的同時(shí)也保護(hù)了節(jié)點(diǎn)數(shù)據(jù)的隱私。本文采用層次聚類(lèi)[14]用于聯(lián)邦學(xué)習(xí)訓(xùn)練,主要原因是該方法的距離規(guī)則更加容易被定義,限制程度較小。層次聚類(lèi)的過(guò)程如下:
a)初始化。首先將每個(gè)個(gè)體C={c1,c2,…,cm}看作一個(gè)初始聚類(lèi)簇。
b)合并。遍歷每個(gè)聚類(lèi)簇,找出最近的兩個(gè)聚類(lèi)簇c*i=ci∪cj進(jìn)行合并,合并后化為一個(gè)新的個(gè)體。該過(guò)程不斷重復(fù)進(jìn)行,最終達(dá)到預(yù)設(shè)的簇類(lèi)個(gè)數(shù)。
2)采用數(shù)據(jù)共享進(jìn)行訓(xùn)練
聯(lián)邦學(xué)習(xí)系統(tǒng)是面向多節(jié)點(diǎn)的模型訓(xùn)練系統(tǒng),各個(gè)節(jié)點(diǎn)在參與訓(xùn)練時(shí),數(shù)據(jù)不會(huì)發(fā)送給其他節(jié)點(diǎn)或中心服務(wù)器,而是將數(shù)據(jù)保留在本地。中心服務(wù)器通過(guò)對(duì)節(jié)點(diǎn)發(fā)送的本地模型更新進(jìn)行整合,最終完成共享模型的訓(xùn)練。在節(jié)點(diǎn)進(jìn)行本地模型訓(xùn)練時(shí),由于設(shè)備間計(jì)算能力的差異,各個(gè)客戶(hù)端完成計(jì)算的時(shí)間不同,而現(xiàn)有機(jī)器學(xué)習(xí)任務(wù)一般默認(rèn)數(shù)據(jù)遵循獨(dú)立同分布的假設(shè)。在聯(lián)邦學(xué)習(xí)中,不同節(jié)點(diǎn)設(shè)備之間的數(shù)據(jù)極有可能不滿(mǎn)足該假設(shè),各個(gè)節(jié)點(diǎn)中的部分異常數(shù)據(jù)會(huì)對(duì)共享模型造成破壞,造成模型精度的降低。
為了解決聯(lián)邦學(xué)習(xí)中數(shù)據(jù)分布影響聯(lián)邦學(xué)習(xí)效果的問(wèn)題,本文采用了一種小部分共享數(shù)據(jù)的方法[8]。具體地,在訓(xùn)練初始階段,對(duì)參與聯(lián)邦學(xué)習(xí)的每個(gè)節(jié)點(diǎn)設(shè)備,按照共享比例抽取共享數(shù)據(jù),放置共享數(shù)據(jù)池中,節(jié)點(diǎn)模型訓(xùn)練之初從共享數(shù)據(jù)池中隨機(jī)采樣部分?jǐn)?shù)據(jù)分發(fā)給各個(gè)節(jié)點(diǎn)設(shè)備。節(jié)點(diǎn)設(shè)備基于共享數(shù)據(jù)與私有數(shù)據(jù)進(jìn)行模型訓(xùn)練。
2 系統(tǒng)架構(gòu)與設(shè)計(jì)方案
本章首先闡述本文的系統(tǒng)架構(gòu),將數(shù)據(jù)共享引入到聯(lián)邦學(xué)習(xí)中,并在節(jié)點(diǎn)訓(xùn)練之初收集共享數(shù)據(jù),隨后進(jìn)行本地訓(xùn)練;其次,提出判斷聯(lián)邦學(xué)習(xí)收斂的兩個(gè)條件,即最大風(fēng)險(xiǎn)函數(shù)梯度與平均風(fēng)險(xiǎn)函數(shù)梯度值,用于聯(lián)邦學(xué)習(xí)參數(shù)聚類(lèi);最后,當(dāng)滿(mǎn)足模型收斂條件時(shí)進(jìn)行模型參數(shù)聚類(lèi),即不同類(lèi)別的節(jié)點(diǎn)分別進(jìn)行聚合,并給出了判斷節(jié)點(diǎn)分類(lèi)的理論基礎(chǔ)。
2.1 系統(tǒng)架構(gòu)
物理層面上,聯(lián)邦學(xué)習(xí)系統(tǒng)一般由數(shù)據(jù)持有方和中心服務(wù)器組成。各數(shù)據(jù)持有方的本地?cái)?shù)據(jù)數(shù)量或特征數(shù)或許并不足以支持一次成功的模型訓(xùn)練,因此需要其他數(shù)據(jù)持有方的支持。而聯(lián)邦學(xué)習(xí)中心服務(wù)器的工作是收集從各數(shù)據(jù)持有方收集到的梯度,并在服務(wù)器內(nèi)進(jìn)行聚合操作后返回新的梯度。在一次聯(lián)邦學(xué)習(xí)的合作建模過(guò)程中,數(shù)據(jù)持有方對(duì)本地?cái)?shù)據(jù)的訓(xùn)練僅發(fā)生在本地,以保護(hù)數(shù)據(jù)隱私,迭代產(chǎn)生的梯度脫敏后作為交互信息,代替本地?cái)?shù)據(jù)上傳給第三方受信任的服務(wù)器,等待服務(wù)器返回聚合后的參數(shù)再對(duì)模型進(jìn)行更新。
在大規(guī)模邊緣節(jié)點(diǎn)設(shè)備參與的聯(lián)邦學(xué)習(xí)中,雖然參與方的本地?cái)?shù)據(jù)為non-IID,但如果使用層次聚類(lèi)算法[14]根據(jù)參與方數(shù)據(jù)分布的向量對(duì)參與方進(jìn)行聚類(lèi),在使用一個(gè)合理類(lèi)簇值的前提下,隨著迭代次數(shù)增加,層級(jí)聚類(lèi)的收斂性會(huì)保證數(shù)據(jù)分布相近的節(jié)點(diǎn)逐漸被劃分進(jìn)同一個(gè)聚類(lèi),即每個(gè)聚類(lèi)內(nèi)部的數(shù)據(jù)分布會(huì)向IID趨近。當(dāng)節(jié)點(diǎn)的數(shù)量達(dá)到一定規(guī)模,每個(gè)節(jié)點(diǎn)都能找到其所屬的聚類(lèi),且每個(gè)聚類(lèi)的參與方數(shù)量都能達(dá)到一定規(guī)模?;诟骶垲?lèi)中心,本文算法就能對(duì)總體訓(xùn)練數(shù)據(jù)的分布有更多的把控。此外,同一聚類(lèi)中參與方的數(shù)據(jù)分布更接近IID。
聚類(lèi)聯(lián)邦學(xué)習(xí)系統(tǒng)架構(gòu)中包括節(jié)點(diǎn)和中心服務(wù)器兩類(lèi)成員。節(jié)點(diǎn)收到全局模型后,提供部分?jǐn)?shù)據(jù)存放在共享數(shù)據(jù)池,如算法1所示,同時(shí)將共享數(shù)據(jù)池中的數(shù)據(jù)加載到本地?cái)?shù)據(jù)中,隨后使用本地?cái)?shù)據(jù)進(jìn)行模型訓(xùn)練,得到梯度信息后上傳到中心服務(wù)器,由中心服務(wù)器進(jìn)行聚類(lèi)。并且中心服務(wù)器負(fù)責(zé)收集從節(jié)點(diǎn)發(fā)送來(lái)的信息,并對(duì)其加權(quán)平均,然后更新全局模型信息,再把全局模型發(fā)送給各個(gè)參與方開(kāi)始新的全局訓(xùn)練周期。該系統(tǒng)架構(gòu)如圖2所示。
2.2 聯(lián)邦學(xué)習(xí)的數(shù)據(jù)共享
為了保護(hù)節(jié)點(diǎn)數(shù)據(jù)的隱私,聯(lián)邦學(xué)習(xí)中數(shù)據(jù)生成和存儲(chǔ)在本地。在這種情況下,每個(gè)節(jié)點(diǎn)的數(shù)據(jù)都是相互獨(dú)立的,這使得本地訓(xùn)練出的模型僅僅適用于節(jié)點(diǎn)本身的數(shù)據(jù),泛化能力很差,局部模型容易出現(xiàn)欠擬合。本地模型參數(shù)上傳到中心服務(wù)端聚合,聚合后的全局共享模型更新本地模型雖然能夠在一定程度上減少欠擬合,但卻面臨著全局共享模型準(zhǔn)確率會(huì)低于局部模型的問(wèn)題。
為了解決上述問(wèn)題,本文提出了聯(lián)邦學(xué)習(xí)數(shù)據(jù)共享技術(shù)。為了平衡保護(hù)節(jié)點(diǎn)數(shù)據(jù)隱私和提高全局共享模型之間的矛盾,僅需上傳小部分?jǐn)?shù)據(jù)就能夠達(dá)到提高全局共享模型準(zhǔn)確率的目的。該方法在抽樣的節(jié)點(diǎn)中抽取一部分共享數(shù)據(jù)存放到共享數(shù)據(jù)池中。在節(jié)點(diǎn)模型訓(xùn)練之初,將共享數(shù)據(jù)池中的數(shù)據(jù)并入到本地節(jié)點(diǎn)數(shù)據(jù)中,其目的是解決節(jié)點(diǎn)之間的數(shù)據(jù)差異較大使得聯(lián)邦學(xué)習(xí)全局共享模型并不能有效泛化節(jié)點(diǎn)的問(wèn)題。由于每個(gè)節(jié)點(diǎn)都共享一部分?jǐn)?shù)據(jù),這樣能夠很大程度上減少各個(gè)節(jié)點(diǎn)數(shù)據(jù)之間的差異,提高本地模型的泛化能力。本文設(shè)計(jì)了各個(gè)節(jié)點(diǎn)數(shù)據(jù)的分配,如算法1所示。首先,模型傳入本地?cái)?shù)據(jù)集Di,設(shè)置超參數(shù)分享比例share,然后將節(jié)點(diǎn)所分配到的數(shù)據(jù)分為訓(xùn)練集data_train、驗(yàn)證集data_eval,以及共享數(shù)據(jù)集data_share三部分。其中共享數(shù)據(jù)集按照共享比例share將數(shù)據(jù)拆分出來(lái),之后存放到共享數(shù)據(jù)池中。在本地模型訓(xùn)練之初,將共享數(shù)據(jù)池的數(shù)據(jù)并入到各個(gè)節(jié)點(diǎn)的訓(xùn)練集中。
算法1 各個(gè)節(jié)點(diǎn)數(shù)據(jù)的分配
輸入:數(shù)據(jù)集Di;節(jié)點(diǎn)id;分享比例share;訓(xùn)練集比例train_frac。
輸出:節(jié)點(diǎn)數(shù)據(jù)的訓(xùn)練集data_train;驗(yàn)證集data_eval;共享數(shù)據(jù)集data_share。
初始化:本地client加載本地?cái)?shù)據(jù)。
N_Share=length(Di)×share
N_Train=(length(Di)-N_share)×train_frac
N_Eval=length(Di)-N_train-N_share
data_train,data_eval,data_share=split(Di,[N_Share,N_Train,N_Eval])
return data_train,data_eval,data_share
2.3 聯(lián)邦學(xué)習(xí)節(jié)點(diǎn)本地模型收斂評(píng)估
聯(lián)邦學(xué)習(xí)節(jié)點(diǎn)數(shù)據(jù)的非獨(dú)立同分布是造成模型效果不如傳統(tǒng)的機(jī)器學(xué)習(xí)的原因之一[3]。非獨(dú)立同分布使得聯(lián)邦學(xué)習(xí)產(chǎn)生模型異構(gòu)、數(shù)據(jù)異構(gòu)等問(wèn)題,都有可能影響各節(jié)點(diǎn)的模型收斂時(shí)間。本文根據(jù)節(jié)點(diǎn)模型參數(shù)相似性劃分類(lèi)別,要求聚類(lèi)操作只有在節(jié)點(diǎn)模型收斂下才能進(jìn)行。因?yàn)橹挥性谑諗繝顟B(tài)下的節(jié)點(diǎn)模型參數(shù)才能最準(zhǔn)確地反映節(jié)點(diǎn)數(shù)據(jù)的分布情況。
基于上述分析,本文提出了一種評(píng)估聯(lián)邦學(xué)習(xí)訓(xùn)練是否收斂的方法,用于解決節(jié)點(diǎn)之間因過(guò)早分區(qū)而導(dǎo)致聚類(lèi)效果降低的問(wèn)題。該方法計(jì)算全局模型收斂程度,進(jìn)而判斷節(jié)點(diǎn)聚類(lèi)的時(shí)機(jī)。首先,由于中心服務(wù)端需要統(tǒng)籌多個(gè)節(jié)點(diǎn),所以聯(lián)邦學(xué)習(xí)判斷收斂不能由單個(gè)節(jié)點(diǎn)的收斂決定整個(gè)模型收斂。其次,當(dāng)整個(gè)模型趨近于收斂時(shí),所有節(jié)點(diǎn)的模型參數(shù)梯度都應(yīng)趨近于0。因此,本文提出了平均風(fēng)險(xiǎn)函數(shù)值和最大風(fēng)險(xiǎn)函數(shù)值
兩個(gè)參數(shù)用于判斷聯(lián)邦學(xué)習(xí)收斂。平均風(fēng)險(xiǎn)函數(shù)值能夠反映出所有節(jié)點(diǎn)模型訓(xùn)練的狀況。此外,
若節(jié)點(diǎn)群中最大的風(fēng)險(xiǎn)函數(shù)值符合預(yù)設(shè)條件,自然風(fēng)險(xiǎn)函數(shù)較低的節(jié)點(diǎn)也已經(jīng)收斂。只有兩個(gè)參數(shù)都滿(mǎn)足預(yù)設(shè)的條件時(shí),聯(lián)邦學(xué)習(xí)訓(xùn)練才達(dá)到收斂。
當(dāng)聯(lián)邦學(xué)習(xí)在通信k與k-1次中的平均風(fēng)險(xiǎn)函數(shù)值mean之差在0~ε1,則滿(mǎn)足本地模型訓(xùn)練收斂條件之一,如式(4)所示。
當(dāng)條件式(4)(6)都被滿(mǎn)足時(shí),表明聯(lián)邦學(xué)習(xí)已經(jīng)收斂,就可以對(duì)節(jié)點(diǎn)本地模型參數(shù)進(jìn)行聚類(lèi)。
2.4 模型參數(shù)聚類(lèi)
本文在2.2節(jié)中將數(shù)據(jù)共享引入到聯(lián)邦學(xué)習(xí)中,一定程度上減少了節(jié)點(diǎn)之間的差異。為了能進(jìn)一步減少節(jié)點(diǎn)差異,進(jìn)而降低數(shù)據(jù)異構(gòu)對(duì)聯(lián)邦學(xué)習(xí)的影響,本文引入聚類(lèi)方法。該方法在節(jié)點(diǎn)集群中尋找到具有相似特征的節(jié)點(diǎn),并在聚類(lèi)后將不同類(lèi)簇的節(jié)點(diǎn)集群分別進(jìn)行聯(lián)邦學(xué)習(xí)訓(xùn)練。此外,本文使用余弦相似性[18]作為聚類(lèi)的分類(lèi)標(biāo)準(zhǔn)。首先將數(shù)據(jù)進(jìn)行物理上的變形、旋轉(zhuǎn)等操作,其目的是使本地節(jié)點(diǎn)數(shù)據(jù)之間產(chǎn)生角度差異;其次使用余弦相似性,將具有角度相似的節(jié)點(diǎn)劃分到同一類(lèi)簇。
下面以節(jié)點(diǎn)集群二分類(lèi)為例,說(shuō)明如何聚類(lèi)以及判斷相似節(jié)點(diǎn)之間是否已經(jīng)分到同一分區(qū)之中。
證明的推導(dǎo)過(guò)程如下:假設(shè)2≤k≤m,m表示節(jié)點(diǎn)總個(gè)數(shù)。
I:{1,…,m},i→I(i)→φI(i)(7)
其中:I表示所有客戶(hù)端所具有數(shù)據(jù)的集合??蛻?hù)端i所對(duì)應(yīng)的數(shù)據(jù)為I(i),將i與I(i)的數(shù)據(jù)映射關(guān)系命名為φI(i)。假設(shè)節(jié)點(diǎn)集群為二分類(lèi),兩個(gè)種類(lèi)分別用c1、c2表示,c1∪c2={1,…,m},并且每組分類(lèi)不能為空,即c1≠,c2≠。
I(i)≠I(mǎi)(j) i∈c1,j∈c2(8)
m個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)被分配到兩個(gè)區(qū)域內(nèi)分別是φ1、φ2。Di表示數(shù)據(jù)集映射φI(i)與數(shù)據(jù)標(biāo)簽y之間關(guān)系映射。
Di~φI(i)(x,y)(9)
設(shè)每個(gè)節(jié)點(diǎn)都具有風(fēng)險(xiǎn)函數(shù)ri(θ),用來(lái)衡量模型擬合效果。風(fēng)險(xiǎn)函數(shù)越低表示模型擬合的效果越好。
ri(θ)=∑x∈Dilθ(f(xi),yi)(10)
如果每個(gè)節(jié)點(diǎn)上的數(shù)據(jù)足夠大,它越接近于真實(shí)的風(fēng)險(xiǎn)值。
RI(i)(θ)=∫x,ylθ(f(x),y)dφI(i)(x,y)(11)
ri(θ)≈RI(i)(θ)(12)
為了演示,假設(shè)式(11)是相等的。式(12)表示聯(lián)邦學(xué)習(xí)聚合函數(shù),把抽樣節(jié)點(diǎn)的風(fēng)險(xiǎn)函數(shù)進(jìn)行聚合,求出全局模型參數(shù)。但當(dāng)節(jié)點(diǎn)劃分為兩類(lèi)時(shí),式(12)應(yīng)拆分為兩部分,分別表示不同分類(lèi)的模型參數(shù)聚合。a1表示分到區(qū)域φ1的抽樣節(jié)點(diǎn)模型參數(shù),a2表示分到區(qū)域φ2的抽樣節(jié)點(diǎn)模型參數(shù),如式(14)所示。式(15)(16)分別表示對(duì)應(yīng)類(lèi)別的聚合。
F(θ)=∑mi=1|Di||D|ri(θ)(13)
F(θ)=a1R1(θ)+a2R2(θ)(14)
a1=∑i,I(i)=1|Di||D|(15)
a2=∑i.I(i)=2|Di||D|(16)
在式(1)中,求出在每次訓(xùn)練之后模型參數(shù)梯度。當(dāng)聯(lián)邦學(xué)習(xí)訓(xùn)練達(dá)到穩(wěn)定點(diǎn)θ*,該點(diǎn)表示聯(lián)邦學(xué)習(xí)收斂。如果對(duì)分類(lèi)后的聚合函數(shù)式(13)進(jìn)行求導(dǎo),得出的結(jié)果應(yīng)該接近0得出式(17)。此時(shí)聯(lián)邦學(xué)習(xí)收斂狀態(tài)下模型參數(shù)的梯度變化應(yīng)為0。
2.5 基于數(shù)據(jù)共享和參數(shù)聚類(lèi)的聯(lián)邦學(xué)習(xí)
本節(jié)結(jié)合2.1~2.3節(jié)內(nèi)容,闡述基于數(shù)據(jù)共享和參數(shù)聚類(lèi)的聯(lián)邦學(xué)習(xí)的整體架構(gòu),如圖3所示。
算法2給出了本文算法框架。首先,指定本地節(jié)點(diǎn)的數(shù)量m、每輪通信中節(jié)點(diǎn)本地訓(xùn)練次數(shù)n、節(jié)點(diǎn)與中心服務(wù)端之間的通信次數(shù)rounds,以及用于判斷聯(lián)邦學(xué)習(xí)收斂的超參數(shù)ε1,ε2≥0等。然后進(jìn)行算法的初始化:本地節(jié)點(diǎn)ci,i={1,…,m}節(jié)點(diǎn)集群本地模型θi,i=1,…,m,設(shè)置用于存儲(chǔ)聚類(lèi)集合C。
a)節(jié)點(diǎn)集群首先下載中心服務(wù)端的全局模型θ*,并更新本地模型參數(shù),然后將共享池中的數(shù)據(jù)并入到本地?cái)?shù)據(jù)中形成新的數(shù)據(jù)集Di,最后新的數(shù)據(jù)集Di與更新后的模型參數(shù)θi一起傳入到本地模型進(jìn)行訓(xùn)練。當(dāng)本地訓(xùn)練達(dá)到規(guī)定的訓(xùn)練次數(shù)n時(shí),將此時(shí)的模型參數(shù)θi與中心服務(wù)端全局模型參數(shù)θ*作差求出模型參數(shù)梯度值Δθi,并回傳到中心服務(wù)端。
b)在中心服務(wù)端中計(jì)算上傳節(jié)點(diǎn)集群最大風(fēng)險(xiǎn)函數(shù)值maxk和平均風(fēng)險(xiǎn)函數(shù)值meank。如果滿(mǎn)足式(4)(6),表示絕大多數(shù)的本地訓(xùn)練結(jié)果已經(jīng)開(kāi)始收斂,并已達(dá)到平穩(wěn)點(diǎn)θ*,執(zhí)行步驟c);否則繼續(xù)執(zhí)行傳統(tǒng)的聯(lián)邦學(xué)習(xí)訓(xùn)練,抽取節(jié)點(diǎn)進(jìn)行聚合,聚合后的值賦值到節(jié)點(diǎn)集群中,然后節(jié)點(diǎn)繼續(xù)執(zhí)行步驟a),不進(jìn)行聚類(lèi)操作。
c)在滿(mǎn)足式(4)(6)的前提下,則執(zhí)行2.3節(jié)描述的余弦相似性。使用式(19)計(jì)算出每?jī)蓚€(gè)節(jié)點(diǎn)之間的余弦值并存放到m×m的余弦矩陣αi,j中。
d)將步驟c)計(jì)算的余弦矩陣αi,j傳入到式(21)聚類(lèi),計(jì)算出節(jié)點(diǎn)集群中角度最相似的兩個(gè)類(lèi)別分別是c1、c2,C=c1∪c2。
c1,c2←Aggmin(max αi,j)c1∪c2=c,i∈c1,j∈c2(21)
e)不同的節(jié)點(diǎn)類(lèi)別分別進(jìn)行聚合。及分別聚合在種類(lèi)c1、c2中的節(jié)點(diǎn)模型參數(shù)梯度。聚合后的模型參數(shù)θ*i i∈c1、θ*i i∈c2返回到對(duì)應(yīng)種類(lèi)的節(jié)點(diǎn)集群中。然后繼續(xù)執(zhí)行步驟a)。
重復(fù)執(zhí)行上述步驟直至節(jié)點(diǎn)與中心服務(wù)端的通信次數(shù)達(dá)到rounds,聯(lián)邦學(xué)習(xí)訓(xùn)練結(jié)束。
3 實(shí)驗(yàn)和分析
3.1 數(shù)據(jù)集
本文實(shí)驗(yàn)部分采用CIFAR-10、EMNIST兩種數(shù)據(jù)集。CIFAR-10包含像素為32×32,60 000張RGB圖片,其中50 000個(gè)訓(xùn)練集以及10 000個(gè)測(cè)試集,共有10個(gè)類(lèi)別,每個(gè)類(lèi)別包含6 000張圖片。EMNIST是對(duì)MNIST數(shù)據(jù)集的擴(kuò)充,包含byclass、ByMerge、balanced、digits、letters五種類(lèi)別。本文采用byclass,其中包含像素為28×28的814 255張圖片,一共有62個(gè)類(lèi)別。
由于聯(lián)邦學(xué)習(xí)的分布式環(huán)境設(shè)置,導(dǎo)致不同數(shù)據(jù)節(jié)點(diǎn)的地理位置可能不同,用戶(hù)的使用習(xí)慣存在差異,從而影響數(shù)據(jù)的分布。所以聯(lián)邦學(xué)習(xí)中不同數(shù)據(jù)節(jié)點(diǎn)間是非獨(dú)立同分布的,任何一個(gè)數(shù)據(jù)節(jié)點(diǎn)都不能代表整個(gè)數(shù)據(jù)集的分布。
為了實(shí)驗(yàn)更加高效,聯(lián)邦學(xué)習(xí)訓(xùn)練之前需模擬真實(shí)的聯(lián)邦學(xué)習(xí)的網(wǎng)絡(luò)環(huán)境,即將數(shù)據(jù)集分割為非獨(dú)立同分布并分發(fā)到各個(gè)節(jié)點(diǎn)中。因此本文采用了Dirichlet狄利克雷分布概率密度[24]函數(shù),應(yīng)用到整體數(shù)據(jù),利用其產(chǎn)生隨機(jī)概率,將數(shù)據(jù)分發(fā)到各個(gè)節(jié)點(diǎn)中。
首先統(tǒng)計(jì)每個(gè)類(lèi)別的總數(shù)量,然后采用Dirichlet狄利克雷分布概率密度函數(shù)將每一個(gè)種類(lèi)依據(jù)節(jié)點(diǎn)數(shù)量劃分分割比例,將每一個(gè)類(lèi)別按照種類(lèi)分割比例分發(fā)到每個(gè)節(jié)點(diǎn)中。
定義一個(gè)連續(xù)向量X。
以EMINST數(shù)據(jù)集為例,向Dirichlet概率密度函數(shù)傳入?yún)?shù)62類(lèi)別、10個(gè)節(jié)點(diǎn)ID。將每個(gè)種類(lèi)依照Dirichlet函數(shù)生成分割比例,然后按照分割比例將每個(gè)種類(lèi)的數(shù)據(jù)劃分為10份,并隨機(jī)分配到10個(gè)節(jié)點(diǎn),達(dá)到將數(shù)據(jù)集分割為非獨(dú)立同分布的目的。EMNIST中的訓(xùn)練集每個(gè)種類(lèi)都具有814 255張圖片。圖4表示數(shù)據(jù)被劃分后在每個(gè)節(jié)點(diǎn)的分布情況,橫坐標(biāo)表示數(shù)據(jù)集的類(lèi)別,縱坐標(biāo)表示類(lèi)別總數(shù)。10種顏色分別代表10個(gè)節(jié)點(diǎn),每個(gè)柱表示同一類(lèi)別在不同節(jié)點(diǎn)的分布情況(見(jiàn)電子版)。
3.2 數(shù)據(jù)共享對(duì)學(xué)習(xí)準(zhǔn)確率的影響
本文將數(shù)據(jù)共享技術(shù)引入到聯(lián)邦學(xué)習(xí)。以EMNIST數(shù)據(jù)集為例,通過(guò)實(shí)驗(yàn)證明數(shù)據(jù)共享引入聯(lián)邦學(xué)習(xí)中能夠有效提高聯(lián)邦學(xué)習(xí)的準(zhǔn)確性。
圖5是共享比例對(duì)于模型準(zhǔn)確率的影響。星號(hào)標(biāo)記折線(xiàn)表示共享數(shù)據(jù)比例0.2,×號(hào)標(biāo)記折線(xiàn)表示共享數(shù)據(jù)比例0.1,圓形標(biāo)記折線(xiàn)表示共享數(shù)據(jù)比例0.3,虛線(xiàn)表示共享數(shù)據(jù)比例0。根據(jù)圖5中所展示的內(nèi)容,本文從兩個(gè)角度分析共享比例對(duì)于聯(lián)邦學(xué)習(xí)的影響:a)引入數(shù)據(jù)共享對(duì)聯(lián)邦學(xué)習(xí)性能的影響;b)共享數(shù)據(jù)比例的增加對(duì)于聯(lián)邦學(xué)習(xí)性能的影響。
在圖5中,當(dāng)聯(lián)邦學(xué)習(xí)引入數(shù)據(jù)共享技術(shù)與未引入數(shù)據(jù)共享技術(shù)時(shí),主要有三點(diǎn)區(qū)別:首先,虛線(xiàn)所代表的數(shù)據(jù)共享比例為0的精度曲線(xiàn)明顯低于數(shù)據(jù)共享后模型;其次,虛線(xiàn)的收斂是在通信次數(shù)為15次前后,而其他三類(lèi)的通信次數(shù)只在10輪前后;最后,隨著共享比例的增加,最初訓(xùn)練的精度往往也會(huì)增加。以上三點(diǎn)表明數(shù)據(jù)共享技術(shù)既能夠增加模型收斂時(shí)間,又能夠提高模型的準(zhǔn)確度。
隨著共享數(shù)據(jù)比例增加對(duì)于聯(lián)邦學(xué)習(xí)的影響,從圖中能夠看出兩點(diǎn):首先,共享數(shù)據(jù)比例增加并不會(huì)提高模型的準(zhǔn)確率,當(dāng)共享比例在0.2~0.3,模型最終的準(zhǔn)確率非常接近,而在共享比例0.2很明顯要高于0.1;其次,隨著共享比例的增加,會(huì)提高初始訓(xùn)練準(zhǔn)確率,這樣會(huì)加快模型的收斂速度?;谝陨戏治?,數(shù)據(jù)共享能夠加快模型收斂速度,有效提高模型的準(zhǔn)確率,但并不是隨著共享比例的增加,就會(huì)使得模型準(zhǔn)確率無(wú)限上漲。
3.3 參數(shù)聚類(lèi)的有效性
圖6(a)(b)分別表示數(shù)據(jù)集CIFAR-10和EMNIST模型參數(shù)聚類(lèi),
圖右上角顯示當(dāng)前分類(lèi)的節(jié)點(diǎn)ID。圖中的曲線(xiàn)區(qū)域部分表示所有節(jié)點(diǎn)模型準(zhǔn)確度從大到小依次繪制在區(qū)域上,而曲線(xiàn)中的實(shí)線(xiàn)部分表示所有節(jié)點(diǎn)模型準(zhǔn)確度的平均值。圖中繪制的黑線(xiàn)(見(jiàn)電子版),標(biāo)志著聯(lián)邦學(xué)習(xí)的節(jié)點(diǎn)模型收斂并滿(mǎn)足聚類(lèi)條件式(4)(6)。
從圖6能夠明顯看出,當(dāng)經(jīng)過(guò)黑線(xiàn)之后,本地模型的準(zhǔn)確度有明顯的提高。這表明當(dāng)聯(lián)邦學(xué)習(xí)節(jié)點(diǎn)的本地模型收斂,經(jīng)過(guò)聚類(lèi)操作可使模型準(zhǔn)確率得到顯著提升。主要原因在于:首先聚類(lèi)之前不同節(jié)點(diǎn)之間的數(shù)據(jù)存在很大差異,其次中心服務(wù)端聚合數(shù)并不能夠檢測(cè)出節(jié)點(diǎn)模型之間的差異性與相似性,而是通過(guò)暴力聚合,使得聚合后的模型并不能泛化不同節(jié)點(diǎn)之間的數(shù)據(jù)。聚類(lèi)操作能夠識(shí)別出不同類(lèi)別的節(jié)點(diǎn)分別進(jìn)行聚合,在同一類(lèi)簇中的節(jié)點(diǎn)具有的數(shù)據(jù)分布大致相同,本地模型參數(shù)的梯度變化也大致相同,使得全局模型的聚合函數(shù)能夠更好地統(tǒng)籌類(lèi)簇中節(jié)點(diǎn)本地模型梯度變化。如圖5所示,在CIFAR-10與EMNIST兩個(gè)數(shù)據(jù)集中經(jīng)過(guò)聚類(lèi)操作后,準(zhǔn)確率都有10%的提高。
3.4 基于數(shù)據(jù)共享和聚類(lèi)的聯(lián)邦學(xué)習(xí)
圖7、8分別記錄著CIFAR-10、EMNIST兩種數(shù)據(jù)集在是否引入共享數(shù)據(jù),是否進(jìn)行聚類(lèi),最終各個(gè)本地模型的準(zhǔn)確率。分別用藍(lán)線(xiàn)、綠線(xiàn)、粉線(xiàn)、紅線(xiàn)、黑線(xiàn)(見(jiàn)電子版)表示聯(lián)邦平均算法[5]、模型參數(shù)聚類(lèi)、共享數(shù)據(jù)10%模型參數(shù)聚類(lèi)、共享數(shù)據(jù)20%模型參數(shù)聚類(lèi)、共享數(shù)據(jù)30%模型參數(shù)聚類(lèi)。
從圖7、8中可以看出,藍(lán)線(xiàn)所代表的傳統(tǒng)聯(lián)邦學(xué)習(xí)平均模型準(zhǔn)確率在0.6左右,綠線(xiàn)表示的模型參數(shù)聚類(lèi)準(zhǔn)確率在0.6~0.7,粉線(xiàn)所代表共享數(shù)據(jù)10%聚類(lèi)聯(lián)邦的模型準(zhǔn)確率在0.7左右。但是其中圖6有8個(gè)節(jié)點(diǎn)的準(zhǔn)確率低于黑線(xiàn)與紅線(xiàn),而在圖7有5個(gè)節(jié)點(diǎn)。黑線(xiàn)與紅線(xiàn)分別表示模型參數(shù)聚類(lèi)中共享數(shù)據(jù)20%與30%,其模型的準(zhǔn)確率均分布在0.7~0.8,并且黑線(xiàn)與紅線(xiàn)分布大致相同。
從對(duì)圖7、8的分析能夠得出,無(wú)共享無(wú)聚類(lèi)的聯(lián)邦學(xué)習(xí)的模型準(zhǔn)確率是最低的,僅僅0.6左右。
在同時(shí)使用non-IID數(shù)據(jù)時(shí),當(dāng)聯(lián)邦學(xué)習(xí)引入聚類(lèi)和共享數(shù)據(jù)技術(shù),準(zhǔn)確率與FedAvg算法相比提高10%以上。原因在于:首先數(shù)據(jù)共享能夠加快模型收斂,提高模型準(zhǔn)確率,在一定程度上減少因節(jié)點(diǎn)之間的數(shù)據(jù)差異導(dǎo)致聚合后全局模型泛化能力低的問(wèn)題;其次當(dāng)引入聚類(lèi)之后在針對(duì)節(jié)點(diǎn)數(shù)據(jù)異構(gòu)的問(wèn)題上,提出不同類(lèi)別的節(jié)點(diǎn)分別進(jìn)行聚合。該方法在數(shù)據(jù)共享的基礎(chǔ)上能夠進(jìn)一步減少數(shù)據(jù)之間的差異,提高全局模型泛化能力和準(zhǔn)確率。
3.5 性能對(duì)比
為了評(píng)估本文方法的性能,在兩個(gè)數(shù)據(jù)集上將本文算法與四個(gè)對(duì)照方法進(jìn)行了比較,實(shí)驗(yàn)結(jié)果如表1所示。
表1展示了本文算法與四種對(duì)照方法在模型準(zhǔn)確度方面的比較結(jié)果。從表1可以觀察到,與四種對(duì)照方法相比,本文算法當(dāng)同時(shí)采用數(shù)據(jù)共享與模型聚類(lèi)的non-IID的情況下都取得最好的模型準(zhǔn)確度。以EMNIST為例,當(dāng)共享比例在20%時(shí),本文算法比FedAvg、FedProx、SCAFFOLD(基于數(shù)據(jù)共享的方法)[21]、K-center(基于數(shù)據(jù)聚類(lèi)的方法)[22]分別高出8.4%、7.78%、7.54%、3.45%。此外在數(shù)據(jù)結(jié)構(gòu)復(fù)雜的數(shù)據(jù)集CIFAR-10上,本文算法對(duì)比四種對(duì)照算法都獲得了模型上的提升,這充分說(shuō)明了面對(duì)復(fù)雜結(jié)構(gòu)的實(shí)際任務(wù),本文算法會(huì)更加有效。
4 結(jié)束語(yǔ)
本文提出了一種將聚類(lèi)與數(shù)據(jù)共享同時(shí)引入到聯(lián)邦學(xué)習(xí)的算法,能夠有效減少數(shù)據(jù)異構(gòu)對(duì)于聯(lián)邦學(xué)習(xí)的影響,加快各節(jié)點(diǎn)本地模型收斂速率。在EMNIST、CIFAR-10數(shù)據(jù)集上的實(shí)驗(yàn)效果比聯(lián)邦平均算法FedAvg的精確度高出10%~15%。
本文實(shí)驗(yàn)驗(yàn)證了數(shù)據(jù)共享對(duì)于聯(lián)邦學(xué)習(xí)有著顯著提高,但是并未對(duì)共享數(shù)據(jù)進(jìn)行加密處理。未來(lái)可以考慮對(duì)共享的數(shù)據(jù)進(jìn)行加密處理,這樣能夠進(jìn)一步提高用戶(hù)數(shù)據(jù)的隱私安全。
參考文獻(xiàn):
[1]王健宗,孔令煒,黃章成,等.聯(lián)邦學(xué)習(xí)算法綜述[J].大數(shù)據(jù),2020,6(6):64-82.(Wang Jianzong,Kong Lingwei,Huang Zhangcheng,et al.A survey of federal learning algorithms[J].Big Data,2020,6(6):64-82.)
[2]張鵬程,魏芯淼,金惠穎.移動(dòng)邊緣計(jì)算下基于聯(lián)邦學(xué)習(xí)的動(dòng)態(tài)QoS優(yōu)化[J].計(jì)算機(jī)學(xué)報(bào),2021,44(12):2431-2446.(Zhang Pengcheng,Wei Xinmiao,Jin Huiying.Dynamic QoS optimization based on federated learning in mobile edge computing[J].Journal of Computer,2021,44(12):2431-2446.)
[3]梁鋒,羊恩躍,潘微科,等.基于聯(lián)邦學(xué)習(xí)的推薦系統(tǒng)綜述[J].中國(guó)科學(xué):信息科學(xué),2022,52(5):713-741.(Liang Feng,Yang Enyue,Pan Weike,et al.Review of recommendation systems based on federated learning[J].Chinese Science:Information Science,2022,52(5):713-741.)
[4]McMahan B,Moore E,Ramage D,et al.Communication-efficient learning of deep networks from decentralized data[C]//Proc of the 20th International Conference on Artificial Intelligence and Statistics.[S.l.]:PMLR,2017:1273-1282.
[5]劉艷,王田,彭紹亮,等.基于邊緣的聯(lián)邦學(xué)習(xí)模型清洗和設(shè)備聚類(lèi)方法[J].計(jì)算機(jī)學(xué)報(bào),2021,44(12):2515-2528.(Liu Yan,Wang Tian,Peng Shaoliang,et al.Edge-based federated learning model cleaning and equipment clustering method[J].Journal of Computer,2021,44(12):2515-2528.)
[6]劉藝璇,陳紅,劉宇涵,等.聯(lián)邦學(xué)習(xí)中的隱私保護(hù)技術(shù)[J].軟件學(xué)報(bào),2022,33(3):1057-1092.(Liu Yixuan,Chen Hong,Liu Yuhan,et al.Privacy-preserving techniques in federated learning[J].Journal of Software,2022,33(3):1057-1092.)
[7]Karimireddy S P,Kale S,Mohri M,et al.SCAFFOLD:stochastic controlled averaging for on-device federated learning[C]//Proc of the 37th International Conference on Machine Learning.[S.l.]:JMLR.org,2020:5132-5143.
[8]Wang Hao,Kaplan Z,Niu Di,et al.Optimizing federated learning on non-IID data with reinforcement learning[C]//Proc of IEEE Confe-rence on Computer Communications.Piscataway,NJ:IEEE Press,2020:1698-1707.
[9]李尤慧子,殷昱煜,高洪皓,等.面向隱私保護(hù)的非聚合式數(shù)據(jù)共享綜述[J].通信學(xué)報(bào),2021,42(6):195-212.(Li Youhuizi,Yin Yuyu,Gao Honghao,et al.A survey of non-aggregate data sharing for privacy protection[J].Journal of Communications,2021,42(6):195-212.)
[10]Hsu T M H,Qi Hang,Brown M.Measuring the effects of non-identical data distribution for federated visual classification[EB/OL].(2019-09-13).https://arxiv.org/abs/1909.06335.
[11]Arivazhagan M G,Aggarwal V,Singh A K,et al.Federated learning with personalization layers [EB/OL].(2019-12-02).https://arxiv.org/abs/1912.00818.
[12]Zhao Yue,Li Meng,Lai Liangzhen,et al.Federated learning with non-IID data[EB/OL].(2018-06-02).https://arxiv.org/abs/1806.00582.
[13]Li Tian,Sahu A K,Zaheer M,et al.Federated optimization in heterogeneous networks [EB/OL].(2020-04-21).https://arxiv.org/abs/1812.06127.
[14]Duan Moming,Liu Duo,Chen Xianzhang,et al.Self-balancing federated learning with global imbalanced data in mobile systems[J].IEEE Trans on Parallel and Distributed Systems,2020,32(1):59-71.
[15]Itahara S,Nishio T,Koda Y,et al.Distillation-based semi-supervised federated learning for communication-efficient collaborative training with non-IID private data[J].IEEE Trans on Mobile Computing,2023,22(1):191-205.
[16]郭桂娟,田暉,皮慧娟,等.面向非獨(dú)立同分布數(shù)據(jù)的聯(lián)邦學(xué)習(xí)研究進(jìn)展[J].小型微型計(jì)算機(jī)系統(tǒng),2023,44(11):2442-2449.(Guo Guijuan,Tian Hui,Pi Huijuan,et al.Progress in research on federated learning for non-independent and co-distributed data[J].Journal of Chinese Computer System,2023,44(11):2442-2449.)
[17]Zhu Hangyu,Xu Jinjin,Liu Shiqing,et al.Federated learning on non-IID data:a survey[J].Neurocomputing,2021,465:371-390.
[18]Sattler F,Muller K R,Samek W.Clustered federated learning:model-agnostic distributed multi-task optimization under privacy constraints[J].IEEE Trans on Neural Networks and Learning Systems,2021,32(8):3710-3722.
[19]Sattler F,Wiedemann S,Müller K R,et al.Robust and communication-efficient federated learning from non-IID data[J].IEEE Trans on Neural Networks and Learning Systems,2019,31(9):3400-3413.
[20]Konecˇny J,McMahan H B,Yu F X,et al.Federated learning:strategies for improving communication efficiency[EB/OL].(2016-10-18).https://doi.org/10.485501/arxiv.1610.05492.
[21]史鼎元,王晏晟,鄭鵬飛,等.面向企業(yè)數(shù)據(jù)孤島的聯(lián)邦排序?qū)W習(xí)[J].軟件學(xué)報(bào),2021,32(3):669-688.(Shi Dingyuan,Wang Yancheng,Zheng Pengfei,et al.Federated ranking learning for enterprise data islands[J].Journal of Software,2021,32(3):669-688.)
[22]蘆效峰,廖鈺盈,Pietro L,等.一種面向邊緣計(jì)算的高效異步聯(lián)邦學(xué)習(xí)機(jī)制[J].計(jì)算機(jī)研究與發(fā)展,2020,57(12):2571-2582.(Lu Xiaofeng,Liao Yuying,Pietro L,et al.An efficient asynchronous federated learning mechanism for edge computing[J].Journal of Computer Research and Development,2020,57(12):2571-2582.)
[23]李少波,楊磊,李傳江,等.聯(lián)邦學(xué)習(xí)概述:技術(shù)、應(yīng)用及未來(lái)[J].計(jì)算機(jī)集成制造系統(tǒng),2022,28(7):2119-2138.(Li Shaobo,Yang Lei,Li Chuanjiang,et al.Overview of federal learning:technology,applications and the future[J].Computer-Integrated Manufacturing,2022,28(7):2119-2138.)
[24]Wojke N,Bewley A.Deep cosine metric learning for person re-identification[C]//Proc of IEEE Winter Conference on Applications of Computer Vision.Piscataway,NJ:IEEE Press,2018:748-756.
[25]Ng K W,Tian Guoliang,Tang Manlai.Dirichlet and related distributions:theory,methods and applications[M].[S.l.]:Wiley,2011.
[26]Krizhevsky A,Sutskever I,Hinton G E.ImageNet classification with deep convolutional neural networks[J].Communications of the ACM,2022,60(6):84-90.