修涵文,李賀,曹榮強(qiáng)*,萬萌,李凱,王彥棡
1.中國科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心,北京 100083
2.中國科學(xué)院大學(xué),計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,北京 100049
隨著數(shù)字化技術(shù)進(jìn)入高速發(fā)展期,大數(shù)據(jù)和人工智能等技術(shù)迎來爆發(fā)式發(fā)展。然而,數(shù)據(jù)在實(shí)踐中通常分散在不同的各方之間形成數(shù)據(jù)孤島[1]。由于越來越多的隱私問題和數(shù)據(jù)保護(hù)法規(guī)[2],各方無法將其私人數(shù)據(jù)發(fā)送到集中式服務(wù)器以訓(xùn)練模型。為了應(yīng)對上述挑戰(zhàn),聯(lián)邦學(xué)習(xí)[3]成為一個(gè)重要的機(jī)器學(xué)習(xí)領(lǐng)域,它可以使多方能夠在不交換本地?cái)?shù)據(jù)的情況下共同訓(xùn)練機(jī)器學(xué)習(xí)模型。目前,聯(lián)邦學(xué)習(xí)已被廣泛應(yīng)用到醫(yī)學(xué)成像[4],物體檢測[5]和語音識(shí)別[6]等領(lǐng)域。
分布式機(jī)器學(xué)習(xí)[7-10]將訓(xùn)練數(shù)據(jù)或模型參數(shù)分布在各個(gè)計(jì)算或存儲(chǔ)節(jié)點(diǎn),利用中心服務(wù)器對節(jié)點(diǎn)進(jìn)行調(diào)度,加速模型的訓(xùn)練。盡管聯(lián)邦學(xué)習(xí)和分布式機(jī)器都是在處理分散的數(shù)據(jù)和模型,但存在背景需求、優(yōu)化假設(shè)等差異。前者是在數(shù)據(jù)中心/集群范圍內(nèi)的分布式,側(cè)重于并行處理,以集群規(guī)模的擴(kuò)展提高模型訓(xùn)練速度和計(jì)算吞吐率。后者則更多地面向地理的分布式,側(cè)重于關(guān)注加強(qiáng)隱私保護(hù)、異構(gòu)問題處理和個(gè)性化學(xué)習(xí)。異構(gòu)問題是聯(lián)邦學(xué)習(xí)的關(guān)鍵問題,直接決定了聯(lián)邦學(xué)習(xí)模型的訓(xùn)練時(shí)長和收斂效果[11-12]。
本文結(jié)合聯(lián)邦學(xué)習(xí)的現(xiàn)狀,針對聯(lián)邦學(xué)習(xí)各類方法關(guān)鍵詞在谷歌學(xué)術(shù)查找近三年國際期刊會(huì)議論文,對關(guān)鍵詞收集到的最新一年論文的相關(guān)工作部分進(jìn)行引文部分的二次檢索。將兩種方式整理出的論文綜合發(fā)表時(shí)間、引用量、方法代表性等考量因素,從中選取論文25 篇進(jìn)行討論。按照是否解決模型異構(gòu)問題對聯(lián)邦學(xué)習(xí)進(jìn)行分類并整理聯(lián)邦學(xué)習(xí)方法,歸納這些方法對設(shè)備異構(gòu)、數(shù)據(jù)異構(gòu)問題的解決能力,并分析各種方法的優(yōu)缺點(diǎn)。
本文的組織結(jié)構(gòu)如下:第1節(jié)介紹聯(lián)邦學(xué)習(xí)架構(gòu)和異質(zhì)性問題;第2節(jié)介紹本文對聯(lián)邦學(xué)習(xí)分類方法;第3節(jié)和第4節(jié)按照模型分類分別詳述單一全局模型和個(gè)性化學(xué)習(xí)模型的聯(lián)邦學(xué)習(xí)方法;第5 節(jié)對聯(lián)邦學(xué)習(xí)算法的現(xiàn)狀、存在的問題、未來發(fā)展趨勢做出探討;最后進(jìn)行總結(jié)。
本節(jié)首先闡述了聯(lián)邦學(xué)習(xí)架構(gòu)和典型的聯(lián)邦學(xué)習(xí)訓(xùn)練流程,之后對聯(lián)邦學(xué)習(xí)存在的異構(gòu)問題作出區(qū)分,闡述了聯(lián)邦學(xué)習(xí)三種異構(gòu)問題的定義及其引發(fā)的問題。
聯(lián)邦學(xué)習(xí)是一種機(jī)器學(xué)習(xí)架構(gòu),在這種架構(gòu)中,許多客戶端在中央服務(wù)器的協(xié)調(diào)下相互協(xié)作訓(xùn)練模型,同時(shí)保持訓(xùn)練數(shù)據(jù)分散。聯(lián)邦學(xué)習(xí)體現(xiàn)了集中數(shù)據(jù)收集和最小化數(shù)據(jù)的原則,可以減輕傳統(tǒng)的集中式機(jī)器學(xué)習(xí)帶來的許多系統(tǒng)隱私風(fēng)險(xiǎn)和成本。
在典型的聯(lián)邦學(xué)習(xí)架構(gòu)中,服務(wù)器或服務(wù)提供商重復(fù)以下步驟進(jìn)行訓(xùn)練[3]:
(1)下載全局模型:每個(gè)被選中的客戶端下載服務(wù)器端模型的權(quán)重和一個(gè)訓(xùn)練程序。
(2)訓(xùn)練本地模型:客戶端在本地?cái)?shù)據(jù)上執(zhí)行訓(xùn)練程序計(jì)算模型的更新。
(3)上傳本地模型:客戶端訓(xùn)練完畢之后向服務(wù)器發(fā)送本地模型的更新。
圖1 聯(lián)邦學(xué)習(xí)架構(gòu)圖Fig.1 Federated learning architecture diagram
(4)聚合模型更新:服務(wù)器收集并聚合客戶端的更新。為了提高效率,一旦有足夠數(shù)量的客戶端報(bào)告了結(jié)果,掉隊(duì)者可能會(huì)被丟棄。
由于聯(lián)邦學(xué)習(xí)中的客戶端分散在各地、各個(gè)機(jī)構(gòu),不同的客戶端有著不同算力的設(shè)備、不同數(shù)量的訓(xùn)練數(shù)據(jù)、不同架構(gòu)的模型。復(fù)雜的異構(gòu)環(huán)境對設(shè)備與數(shù)據(jù)統(tǒng)一的分布式學(xué)習(xí)方法形成了挑戰(zhàn),是聯(lián)邦學(xué)習(xí)的特異性問題。本節(jié)針對聯(lián)邦學(xué)習(xí)中的異構(gòu)問題[11]進(jìn)行分類,如表1所示。異構(gòu)問題主要有:
表1 聯(lián)邦學(xué)習(xí)異構(gòu)問題Table 1 Federated learning heterogeneity problems
(1)設(shè)備異構(gòu):客戶端設(shè)備在存儲(chǔ)、計(jì)算和通信能力方面存在差異,導(dǎo)致技術(shù)實(shí)現(xiàn)和模型設(shè)計(jì)問題。任務(wù)調(diào)度因設(shè)備而異,導(dǎo)致服務(wù)器很難在一輪更新結(jié)束時(shí)同步地接入所有客戶端,一部分客戶端甚至?xí)驗(yàn)檩^差的通信環(huán)境直接退出學(xué)習(xí),進(jìn)而延長全局模型的訓(xùn)練時(shí)間,甚至是訓(xùn)練失敗。
(2)數(shù)據(jù)異構(gòu):客戶端本地?cái)?shù)據(jù)非獨(dú)立同分布,導(dǎo)致數(shù)據(jù)要求問題。數(shù)據(jù)異構(gòu)容易導(dǎo)致模型不穩(wěn)定和緩慢的收斂[12],并導(dǎo)致次優(yōu)甚至更差的模型性能[13]。
(3)模型異構(gòu):根據(jù)其應(yīng)用場景或優(yōu)化目標(biāo)的不同,各個(gè)客戶端設(shè)備所需要的模型不一致,導(dǎo)致模型設(shè)計(jì)問題。出于隱私考慮,客戶端可能不愿意分享模型細(xì)節(jié)。因此,模型異構(gòu)問題會(huì)使聯(lián)邦學(xué)習(xí)的靈活性和隱私保護(hù)受限。
由于不同參與方的數(shù)據(jù)量和分布都是不同的,為每個(gè)客戶端提供合適的差異化模型結(jié)構(gòu),提高客戶端本地?cái)?shù)據(jù)的預(yù)測準(zhǔn)確性已經(jīng)成為近期的研究熱點(diǎn)[14-16]。本文從模型的角度出發(fā),將現(xiàn)有的各種聯(lián)邦學(xué)習(xí)方法劃分成學(xué)習(xí)單一全局模型和學(xué)習(xí)個(gè)性化模型兩類,如圖2 所示,具體闡述如下:
圖2 聯(lián)邦學(xué)習(xí)方法分類Fig.2 Categorization of federated learning
●學(xué)習(xí)單一全局模型:
學(xué)習(xí)單一全局模型是指通過機(jī)器學(xué)習(xí)方法對全局模型進(jìn)行優(yōu)化,得到泛化性能高的全局模型,以便進(jìn)一步在客戶端上進(jìn)行微調(diào)。本文按照提升模型訓(xùn)練質(zhì)量的方法將學(xué)習(xí)單一全局模型的聯(lián)邦學(xué)習(xí)方法分類如下:
(1)修改客戶端局部目標(biāo),使局部模型與全局模型在一定程度上一致;
(2)數(shù)據(jù)擴(kuò)充,引入公共數(shù)據(jù)集或合成數(shù)據(jù),以幫助在客戶端或服務(wù)器上構(gòu)建更平衡的數(shù)據(jù)分布;
(3)優(yōu)化模型聚合,改進(jìn)服務(wù)器處的模型聚合機(jī)制;
(4)聯(lián)邦元學(xué)習(xí),對多個(gè)學(xué)習(xí)任務(wù)進(jìn)行訓(xùn)練,以生成具有高度適應(yīng)性的模型;
●學(xué)習(xí)個(gè)性化模型:
學(xué)習(xí)個(gè)性化模型是指為每個(gè)客戶端或者任務(wù)數(shù)據(jù)相似的一組客戶端定制學(xué)習(xí)模型。本文按照與機(jī)器學(xué)習(xí)框架結(jié)合的方法將學(xué)習(xí)個(gè)性化模型的聯(lián)邦學(xué)習(xí)方法分類如下:
(1)聯(lián)邦多任務(wù)學(xué)習(xí),同時(shí)解決多個(gè)相關(guān)任務(wù),使模型能夠挖掘任務(wù)之間的共性和差異;
(2)聯(lián)邦聚類,將客戶群體分組為具有相似數(shù)據(jù)分布的簇,為每個(gè)簇學(xué)習(xí)個(gè)性化模型;
(3)聯(lián)邦知識(shí)蒸餾,將聯(lián)邦學(xué)習(xí)的全局模型作為教師模型,將個(gè)性化模型作為學(xué)生模型,使得復(fù)雜全局模型中的“知識(shí)”遷移到簡單個(gè)性化模型當(dāng)中;
學(xué)習(xí)單一全局模型要求所有客戶端共用一個(gè)全局模型結(jié)構(gòu),每個(gè)客戶端可以做出適應(yīng)本地?cái)?shù)據(jù)的調(diào)整以緩解數(shù)據(jù)異構(gòu)的問題。
在一些場景中,用戶希望得到泛化能力強(qiáng)的全局模型,而客戶端只是作為數(shù)據(jù)提供方,就需要用到學(xué)習(xí)單一全局模型的方法。這類方法簡單易行,通常只需要在原本的聯(lián)邦學(xué)習(xí)框架內(nèi)的目標(biāo)函數(shù)上增加懲罰項(xiàng),或者增補(bǔ)客戶端的數(shù)據(jù)集,一般不需要改變總體學(xué)習(xí)框架。
以下從修改客戶端的局部目標(biāo)、數(shù)據(jù)擴(kuò)充、模型聚合、聯(lián)邦元學(xué)習(xí)四個(gè)方面來介紹學(xué)習(xí)單一全局模型的方法(見表2)。
表2 聯(lián)邦學(xué)習(xí)方法比較Table 2 Comparison of federated learning methods
修改客戶端的局部目標(biāo)是指在客戶端的局部目標(biāo)中,加入正則項(xiàng)或著控制變量等,以使客戶端的局部目標(biāo)與全局模型目標(biāo)距離更近。FedAvg[3]中服務(wù)器平均聚合客戶端模型更新值。這種方法在獨(dú)立同分布數(shù)據(jù)集上表現(xiàn)很好,但在非獨(dú)立同分布數(shù)據(jù)上,客戶端局部最優(yōu)彼此遠(yuǎn)離,最終會(huì)導(dǎo)致客戶端更新的平均值遠(yuǎn)離真正的全局最優(yōu)[28]。為了緩解這種情況,修改客戶端的局部目標(biāo)是一種簡單易行的方法,可以迫使局部最優(yōu)向全局最優(yōu)靠近。
FedProx[28]擴(kuò)展FedAvg 算法,提出在局部目標(biāo)中加入對前一步權(quán)重的二次懲罰項(xiàng)進(jìn)行正則化。在局部訓(xùn)練期間,局部模型更新會(huì)一直受到近端項(xiàng)的限制,提高了全局模型收斂的穩(wěn)定性。另外,F(xiàn)edProx 允許每個(gè)參與的設(shè)備執(zhí)行可變的訓(xùn)練輪數(shù),這緩解了聯(lián)邦學(xué)習(xí)的設(shè)備異構(gòu)問題。
MOON[29]將全局模型表示與本地模型表示之間的對比損失作為正則化項(xiàng)約束本地模型的更新,其核心思想是利用模型表示之間的相似性來修正個(gè)體的局部訓(xùn)練。Ditto[30]將本地模型與全局模型的歐氏距離作為正則化項(xiàng),鼓勵(lì)個(gè)性化模型向全局最優(yōu)模型靠近。同時(shí),Ditto 通過改變正則化項(xiàng)的系數(shù)權(quán)重,可以控制模型在個(gè)性化和魯棒性之間的權(quán)衡。Scaffold[31]為局部模型和全局模型引入控制變量,利用局部控制變量與全局控制變量之間的差值來糾正局部訓(xùn)練中的梯度??刂谱兞康淖饔妙愃朴谡齽t化項(xiàng),同樣起到約束本地模型更新方向的作用。
數(shù)據(jù)擴(kuò)充是指各個(gè)客戶端共享一部分私有數(shù)據(jù)或使用人工數(shù)據(jù),擴(kuò)充客戶端上的數(shù)據(jù)集以使本地?cái)?shù)據(jù)靠近獨(dú)立同分布的數(shù)據(jù)集。在本地訓(xùn)練過程中,客戶端無法從其他客戶端獲取樣本,因此學(xué)習(xí)到的本地模型不能充分代表缺失類別中的某些模式或樣本,這種數(shù)據(jù)異構(gòu)會(huì)對聯(lián)邦學(xué)習(xí)的模型收斂產(chǎn)生不利影響。為了緩解數(shù)據(jù)異構(gòu)造成的影響,最自然的想法是,擴(kuò)充一定的數(shù)據(jù)以靠近獨(dú)立同分布的數(shù)據(jù)集。
數(shù)據(jù)擴(kuò)充的一類方法是設(shè)置公共據(jù)集進(jìn)行數(shù)據(jù)共享。FedMD[32]將本地模型在公共數(shù)據(jù)集上預(yù)測矢量的平均值作為新的訓(xùn)練標(biāo)簽,在本地模型繼續(xù)進(jìn)行訓(xùn)練。公共數(shù)據(jù)集的設(shè)置,可以減輕客戶端之間的數(shù)據(jù)異構(gòu)性,從而獲得一個(gè)效果更好的全局模型。然而,這類工作的公共數(shù)據(jù)的分布很重要,提取公共數(shù)據(jù)集需要預(yù)估樣本的分布情況,這在一些場景中十分困難。更重要的是,設(shè)置公共數(shù)據(jù)集可能會(huì)違反聯(lián)邦學(xué)習(xí)的隱私規(guī)則,這會(huì)使得聯(lián)邦學(xué)習(xí)失去它原本的應(yīng)用意義。
數(shù)據(jù)擴(kuò)充的另一類方法是使用人工合成的數(shù)據(jù)集。通過深度學(xué)習(xí)方法從非數(shù)據(jù)集信息(如模型信息、數(shù)據(jù)噪聲等)產(chǎn)生新數(shù)據(jù)進(jìn)行共享,保證了客戶端的數(shù)據(jù)隱私。FED-ZDA[19]在不訪問客戶端數(shù)據(jù)的情況下,對共享模型信息使用數(shù)據(jù)增強(qiáng)合成新數(shù)據(jù),以補(bǔ)充未充分表示的樣本。FED-ZDA分別探索了在客戶端生成合成樣本的Fed-ZDAC[33]以及在服務(wù)器端生成合成樣本的FedZDAS[33],兩種方式均緩解了數(shù)據(jù)異構(gòu)性問題,實(shí)現(xiàn)了更好的性能。由于FEDZDA 生成的數(shù)據(jù)質(zhì)量高度依賴共享模型性能,而共享模型性能隨著通信輪次的增加而增加,因此此方法中選擇開始數(shù)據(jù)增強(qiáng)的時(shí)刻十分重要。VHL[34]使用客戶端從共享的純噪聲中生成的虛擬同構(gòu)數(shù)據(jù)集進(jìn)行聯(lián)邦學(xué)習(xí)。該虛擬同構(gòu)數(shù)據(jù)集滿足不包含私有信息和可分離兩個(gè)條件。在具體的學(xué)習(xí)過程中,VHL 通過在所有客戶端之間共享一個(gè)獨(dú)立于私有數(shù)據(jù)集的虛擬同構(gòu)數(shù)據(jù)集,矯正私有數(shù)據(jù)的異構(gòu)分布。另外,它通過匹配源域和目標(biāo)域的條件分布[35]緩解虛擬數(shù)據(jù)集帶來的分布漂移這一不利影響。
優(yōu)化模型聚合是指改進(jìn)服務(wù)器端的模型融合機(jī)制,以增強(qiáng)全局模型的泛化能力。針對解決客戶端異構(gòu)問題,除了3.1中通過在客戶端調(diào)整局部模型在參數(shù)空間上與全局模型的偏差來調(diào)整本地訓(xùn)練,另一個(gè)互補(bǔ)的角度是從服務(wù)器端提高模型聚合的效果。FedAvg中對客戶的模型向量平均聚合的方式不能充分利用客戶端之間的信息。為了解決這個(gè)問題,研究人員提出了各種新穎的模型融合機(jī)制。
FedAdp[36]根據(jù)客戶端的貢獻(xiàn)自適應(yīng)地在每一輪中計(jì)算聚合全局模型的權(quán)重。每個(gè)客戶端數(shù)據(jù)分布不同,對全局模型聚合的貢獻(xiàn)不同,且數(shù)據(jù)分布與梯度信息之間存在隱式聯(lián)系。服務(wù)器通過計(jì)算每個(gè)客戶端上傳的模型梯度之間兩兩的相似度,定量地度量客戶端的貢獻(xiàn),得到每個(gè)客戶端模型在聚合時(shí)的權(quán)重,優(yōu)化了平均聚合的聚合方式。
FEDBE[37]將貝葉斯模型集成到聯(lián)邦學(xué)習(xí)中。服務(wù)端首先根據(jù)本地訓(xùn)練的模型構(gòu)建模型的分布,并采樣得到多個(gè)模型。在聚合階段時(shí),使用集成學(xué)習(xí)的方法將采樣得到的模型對數(shù)據(jù)進(jìn)行預(yù)測。將預(yù)測結(jié)果作為教師模型的軟標(biāo)簽,單一的全局模型作為學(xué)生模型,進(jìn)而以知識(shí)蒸餾的方式將多個(gè)采樣模型聚合為一個(gè)全局模型。
PFNM[38]是使用一種貝葉斯非參數(shù)(Bayesian nonparametric,BNP)的神經(jīng)網(wǎng)絡(luò)聯(lián)邦學(xué)習(xí)框架。在訓(xùn)練過程中,每個(gè)客戶端在本地?cái)?shù)據(jù)上訓(xùn)練局部模型,中心服務(wù)器在收到客戶端的局部模型后,利用貝塔-伯努利[39]過程將局部模型與全局模型進(jìn)行匹配,得到新的全局模型。聚合過程只依賴于本地模型參數(shù)本身,可以在只執(zhí)行一輪通信的情況下,生成效果更優(yōu)的全局神經(jīng)網(wǎng)絡(luò)模型。
聯(lián)邦元學(xué)習(xí)是指在聯(lián)邦學(xué)習(xí)中,通過元學(xué)習(xí)算法,訓(xùn)練一個(gè)泛化能力強(qiáng)的全局模型(或元學(xué)習(xí)器),使得客戶端能夠快速適應(yīng)自身的數(shù)據(jù)集,降低模型在不同客戶端上表現(xiàn)的差異。元學(xué)習(xí)希望模型獲取一種“學(xué)會(huì)學(xué)習(xí)”的能力,使其可以在獲取已有“知識(shí)”的基礎(chǔ)上快速學(xué)習(xí)新的任務(wù)。元學(xué)習(xí)場景可以與聯(lián)邦學(xué)習(xí)相結(jié)合,本地客戶端的學(xué)習(xí)可以看作是數(shù)據(jù)較少的小樣本學(xué)習(xí),服務(wù)器上的全局模型可以看作是泛化能力強(qiáng)的元模型。服務(wù)器上的元模型在少樣本的客戶端上微調(diào)個(gè)性化模型,以緩解客戶端的數(shù)據(jù)異構(gòu)問題。
Per-FedAvg[40]將聯(lián)邦學(xué)習(xí)與元學(xué)習(xí)模型MAML[41]相結(jié)合,其目標(biāo)是找到一個(gè)在所有客戶端之間共享的初始點(diǎn),以使當(dāng)前客戶端通過執(zhí)行少量幾次梯度下降便可適應(yīng)本地?cái)?shù)據(jù)集。Per-FedAvg 在保留了聯(lián)邦學(xué)習(xí)體系結(jié)構(gòu)的基礎(chǔ)上,通過元學(xué)習(xí)結(jié)構(gòu)為每個(gè)客戶端提供了個(gè)性化的模型。另外,該方法從理論上證明了算法的收斂性,并使用黑森矩陣(Hessian Matrix)來代替二階偏導(dǎo),減少了訓(xùn)練時(shí)間。
PFL[42]采用梯度矯正方法為每個(gè)邊緣設(shè)備定制個(gè)性化模型。將每個(gè)客戶端與不同的任務(wù)關(guān)聯(lián),在不同的任務(wù)上學(xué)習(xí)一個(gè)元模型,每輪訓(xùn)練中動(dòng)態(tài)修改客戶端損失函數(shù),使得生成的元模型對每個(gè)客戶端都是相對無偏差的。q-MAML[43]將q-FFL 算法與元學(xué)習(xí)算法MAML 相結(jié)合,使用q-FFL 中的目標(biāo)函數(shù)和權(quán)重更新全局模型參數(shù),使得損失函數(shù)值較高的客戶端在目標(biāo)函數(shù)中具有較高的相對權(quán)重從而促進(jìn)模型在各個(gè)設(shè)備間的表現(xiàn)更加公平。ARUBA[44]把在線凸優(yōu)化(Online Convex Optimization)和序列預(yù)測算法相結(jié)合,將元學(xué)習(xí)視為在線學(xué)習(xí)一系列損失。ARUBA 通過學(xué)習(xí)一個(gè)在線鏡像下降的正則化項(xiàng)來確定參數(shù)空間中哪些方向需要更新,并且提供了一個(gè)動(dòng)態(tài)調(diào)整學(xué)習(xí)率方法,是一種簡單的無需調(diào)整步長的方法。
學(xué)習(xí)個(gè)性化模型并不要求所有客戶端共有一個(gè)全局模型結(jié)構(gòu),而是允許每個(gè)客戶端或者有相似數(shù)據(jù)一類客戶端根據(jù)自己的數(shù)據(jù)和任務(wù)特征生成本方獨(dú)特的個(gè)性化模型。需要注意的是,本文討論的學(xué)習(xí)個(gè)性化模型,和已經(jīng)提出的個(gè)性化聯(lián)邦學(xué)習(xí)[14]有所區(qū)別。學(xué)習(xí)個(gè)性化模型指的是客戶端在模型層面上會(huì)有不同的架構(gòu)。而個(gè)性化聯(lián)邦學(xué)習(xí)的含義更加廣泛,只要在客戶端將全局模型在自己數(shù)據(jù)上進(jìn)行的微調(diào),即便模型架構(gòu)相同,但模型參數(shù)改變,也可以算作個(gè)性化聯(lián)邦學(xué)習(xí)。
當(dāng)客戶端數(shù)據(jù)、模型、性能差異較大時(shí),即便是泛化性能高的全局模型也很難在把握整體的同時(shí)又照顧到這種差異。這時(shí)具有相似訓(xùn)練環(huán)境的客戶端之間的協(xié)同合作,可能是在異構(gòu)環(huán)境下的聯(lián)邦學(xué)習(xí)中取得良好表現(xiàn)的關(guān)鍵。還有一些客戶端出于隱私考量,不愿意公開自己的模型結(jié)構(gòu),如果能在模型異構(gòu)的情況下進(jìn)行聯(lián)邦學(xué)習(xí),可以更好地保護(hù)客戶端的隱私。
以下從聯(lián)邦多任務(wù)學(xué)習(xí)、聯(lián)邦聚類、聯(lián)邦蒸餾學(xué)習(xí)三個(gè)方面來介紹學(xué)習(xí)個(gè)性化模型的方法。
聯(lián)邦多任務(wù)學(xué)習(xí)是指在聯(lián)邦學(xué)習(xí)框架下將設(shè)備本地?cái)?shù)據(jù)集上的學(xué)習(xí)問題視為一項(xiàng)單獨(dú)的任務(wù),而不是單個(gè)數(shù)據(jù)集的一個(gè)劃分,允許具有相似數(shù)據(jù)的客戶端之間的成對協(xié)作。在多任務(wù)學(xué)習(xí)中,一個(gè)模型同時(shí)解決多個(gè)相關(guān)任務(wù),使得模型可以挖掘任務(wù)之間的共性和差異,提高模型的泛化性能。
MOCHA[45]將聯(lián)邦多任務(wù)學(xué)習(xí)定義為懲罰優(yōu)化問題,其中懲罰項(xiàng)對任務(wù)之間的關(guān)系進(jìn)行建模??紤]到聯(lián)邦學(xué)習(xí)的特性,MOCHA在多任務(wù)學(xué)習(xí)的基礎(chǔ)上解決聯(lián)邦學(xué)習(xí)通信、掉隊(duì)和容錯(cuò)相關(guān)問題。由于它為每個(gè)任務(wù)生成一個(gè)模型,所有客戶端都必須參與每一輪,因此該算法不適用于跨設(shè)備的聯(lián)邦學(xué)習(xí)。MOCHA 的另一個(gè)缺點(diǎn)是,復(fù)雜的懲罰項(xiàng)導(dǎo)致算法只能學(xué)習(xí)簡單的模型,比如線性模型或預(yù)先訓(xùn)練的模型的線性組合。
FedAMP[15]提出采用聯(lián)邦注意力傳遞消息的新方法,促進(jìn)相似的客戶端進(jìn)行更多協(xié)作。在算法運(yùn)行時(shí),F(xiàn)edAMP不使用云服務(wù)器上的單個(gè)全局模型進(jìn)行協(xié)作,而是在云服務(wù)器上為每個(gè)客戶端維護(hù)個(gè)性化的云模型,并且將每個(gè)客戶端的個(gè)性化模型作為消息傳遞給模型參數(shù)相似的個(gè)性化云模型。此外,F(xiàn)edAMP通過其接收的所有消息的加權(quán)組合來更新每個(gè)客戶端的個(gè)性化云模型。這自適應(yīng)地促進(jìn)了客戶之間的成對協(xié)作,并顯著提高了協(xié)作的有效性。
聯(lián)邦聚類是在聯(lián)邦學(xué)習(xí)中使用聚類算法將擁有相似數(shù)據(jù)的客戶端進(jìn)行聚合,再通過客戶端選擇算法抽取具有代表性的客戶端進(jìn)行訓(xùn)練,兩者可以交替迭代進(jìn)行。這種將擁有相似數(shù)據(jù)的客戶端進(jìn)行聚合的方式,會(huì)學(xué)習(xí)出多個(gè)個(gè)性化模型,相比單一全局模型對客戶端的異質(zhì)性適應(yīng)更好。
聯(lián)邦聚類按照其聚類的時(shí)間可以劃分為一次性聚類和迭代式聚類。一次性聚類將任務(wù)聚類和參數(shù)學(xué)習(xí)分為了兩個(gè)階段,而迭代式聚類交替進(jìn)行任務(wù)聚類和參數(shù)學(xué)習(xí)。聯(lián)邦聚類按照其對簇結(jié)構(gòu)的潛在假設(shè),可分為簇間知識(shí)共享聚類和簇間不共享聚類。以下將按照這兩類劃分方式梳理典型的聯(lián)邦聚類算法。
Ghosh[46]等人采用的是一次性聚類和簇間不共享。該方法需要事先指定聚類簇的個(gè)數(shù)K,服務(wù)器端運(yùn)行K-means[47]算法將客戶端進(jìn)行聚類,接著對每個(gè)類單獨(dú)運(yùn)行傳統(tǒng)聯(lián)邦學(xué)習(xí)算法。這種一次性聚類算法操作簡單,但把任務(wù)聚類和模型參數(shù)學(xué)習(xí)分為了兩個(gè)階段,可能得不到最優(yōu)解。
CFL[48]采用的是迭代式聚類和簇間不共享。在每輪迭代時(shí),服務(wù)器都會(huì)根據(jù)客戶端的模型參數(shù)相似度進(jìn)行一次簇劃分,同一個(gè)簇共享模型參數(shù)的變化量,這樣既能使每個(gè)客戶端訓(xùn)練一個(gè)性化模型,又能讓數(shù)據(jù)相似的客戶端相互促進(jìn)。該論文的亮點(diǎn)是簇的個(gè)數(shù)可以隨著迭代變化,無需提前指定簇個(gè)數(shù)。缺點(diǎn)是它采用了集中式聚類算法,中心服務(wù)器必須識(shí)別所有客戶端的聚類身份,導(dǎo)致中心服務(wù)器計(jì)算開銷較大,不適用于大型模型架構(gòu)或擁有大量用戶的應(yīng)用程序。
IFCA[49]采用的是迭代式聚類和簇間共享。其基本思想是服務(wù)器在估計(jì)簇劃分和最小化損失函數(shù)之間交替進(jìn)行學(xué)習(xí),并通過梯度下降優(yōu)化客戶端聚類的模型參數(shù)。具體來說,每個(gè)簇內(nèi)的客戶端都共享一組簇內(nèi)模型參數(shù)平均值。在每輪迭代過程中,服務(wù)器都會(huì)通過最小化損失函數(shù)的方式為各客戶端重新估計(jì)其所屬的簇,以及重新計(jì)算新簇對應(yīng)的模型參數(shù)平均值。該算法是簇間共享型,先使所有客戶端訓(xùn)練數(shù)據(jù)學(xué)習(xí)一個(gè)共享表示,再運(yùn)行聚類算法為每個(gè)簇學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的最后一層,可以互相補(bǔ)充學(xué)習(xí)到的領(lǐng)域相關(guān)的信息。
聯(lián)邦知識(shí)蒸餾將本地客戶端模型看作學(xué)生模型,服務(wù)器模型或者除了本地客戶端之外的其他客戶端的總和看作教師模型,將分類分?jǐn)?shù)或邏輯向量輸出表示為知識(shí)。聯(lián)邦知識(shí)蒸餾將復(fù)雜教師網(wǎng)絡(luò)的知識(shí)提取到簡單學(xué)生網(wǎng)絡(luò)中,不需要教師網(wǎng)絡(luò)和學(xué)生模型一致,可以給客戶端提供更大程度的靈活性。
一種典型的方法是利用樣本數(shù)據(jù)信息或者代理數(shù)據(jù)集來最小化來自教師模型和學(xué)生模型的邏輯向量輸出。FD[50]計(jì)算每個(gè)客戶端上各類別輸出的平均值,利用全局各類別平均輸出指導(dǎo)本地客戶端的學(xué)習(xí)。FedDF[51]中聯(lián)邦學(xué)習(xí)服務(wù)器構(gòu)造幾個(gè)不同的原型模型,每個(gè)原型模型表示具有相同模型架構(gòu)的客戶端。每輪迭代時(shí),客戶端首先利用本地?cái)?shù)據(jù)更新模型參數(shù)并將更新后的參數(shù)發(fā)送給服務(wù)端。服務(wù)端將接收到的模型參數(shù)取平均后,在無標(biāo)簽的公共數(shù)據(jù)集上生成用于訓(xùn)練服務(wù)器的每個(gè)學(xué)生模型的邏輯向量輸出。對每一種架構(gòu)的模型都進(jìn)行一次集成蒸餾得到聚合模型參數(shù)。
上述方法的一個(gè)主要限制在于其對代理數(shù)據(jù)集的依賴,使得代理數(shù)據(jù)集的選擇在蒸餾性能中起著關(guān)鍵作用。FEDGEN[16]避免了代理數(shù)據(jù)集,采用無數(shù)據(jù)的方式進(jìn)行知識(shí)蒸餾。該算法要求客戶端能夠提供給服務(wù)器端自己樣本標(biāo)簽的分布,也就是客戶端共享樣本標(biāo)簽。服務(wù)器端根據(jù)全局的樣本標(biāo)簽的分布,學(xué)習(xí)一個(gè)從樣本標(biāo)簽到樣本的映射,這樣生成的樣本是符合全局的數(shù)據(jù)分布的。之后各個(gè)客戶端可以利用新生成的樣本進(jìn)行知識(shí)蒸餾。
本文從聯(lián)邦學(xué)習(xí)的模型異構(gòu)問題出發(fā)。按照模型架構(gòu)為單一全局模型還是個(gè)性化模型將聯(lián)邦學(xué)習(xí)方法進(jìn)行分類。單一全局模型無法解決客戶端模型異構(gòu)性問題,而個(gè)性化聯(lián)邦學(xué)習(xí)可以直接解決該問題,結(jié)合第3節(jié)和第4節(jié)的討論并對比表2 不同聯(lián)邦學(xué)習(xí)方法,詳細(xì)討論如下:
(1)學(xué)習(xí)單一全局模型的方法可以在服務(wù)器端獲得泛化性能強(qiáng)大的全局模型。該方法往往只需要對聯(lián)邦學(xué)習(xí)框架進(jìn)行局部修改,容易實(shí)現(xiàn)。該方法在訓(xùn)練前就固定好了客戶端模型結(jié)構(gòu),模型靈活性有限,客戶端可以在獲得全局模型參數(shù)之后在本地?cái)?shù)據(jù)上進(jìn)行微調(diào),以滿足數(shù)據(jù)異質(zhì)環(huán)境學(xué)習(xí)需求。
(2)學(xué)習(xí)個(gè)性化模型可以在客戶端獲得個(gè)性化的模型。該方法通常需要結(jié)合其他深度學(xué)習(xí)方法,在整體架構(gòu)上進(jìn)行改變,相對更復(fù)雜。學(xué)習(xí)個(gè)性化模型的方法靈活性較高,可以適用于客戶端模型架構(gòu)不同的情況,提高客戶端對聯(lián)邦學(xué)習(xí)的參與意愿。
(3)解決數(shù)據(jù)異構(gòu)問題的方法偏多,這是由于數(shù)據(jù)異構(gòu)問題直接決定了聯(lián)邦學(xué)習(xí)算法是否收斂、模型是否穩(wěn)定,從數(shù)據(jù)異構(gòu)問題出發(fā)可以顯著提高聯(lián)邦學(xué)習(xí)的性能,是科研人員非常關(guān)注的一個(gè)方向。尋找數(shù)據(jù)同質(zhì)化場景應(yīng)用聯(lián)邦學(xué)習(xí)或者研究適用特定應(yīng)用領(lǐng)域的數(shù)據(jù)分布的模型,是未來提升聯(lián)邦學(xué)習(xí)的性能的有效方法之一。
(4)解決設(shè)備異構(gòu)問題的方法偏少,這是因?yàn)榇蟛糠謱?shí)驗(yàn)室很難模擬真實(shí)環(huán)境中的設(shè)備異構(gòu)性如網(wǎng)絡(luò)連接性和客戶端設(shè)備的可用性等諸多場景。針對設(shè)備異構(gòu)的基準(zhǔn)測試不成熟。2022 年提出的FedScale[52]是自動(dòng)化的、可擴(kuò)展的、易于部署的大規(guī)模評估平臺(tái),相信在一些的易于測試的評估標(biāo)準(zhǔn)出現(xiàn)之后,未來會(huì)有更多針對真實(shí)環(huán)境中設(shè)備異構(gòu)問題的解決方案。
(5)目前聯(lián)邦學(xué)習(xí)測試時(shí)使用的專用數(shù)據(jù)集少,所用的數(shù)據(jù)集大多是MNIST、CIFAR-10/100 這類通用機(jī)器學(xué)習(xí)數(shù)據(jù)集。研究人員未來可以選擇如移動(dòng)設(shè)備拍攝的圖片、語音內(nèi)容等一些有現(xiàn)實(shí)意義、非獨(dú)立同分布的數(shù)據(jù)集對聯(lián)邦學(xué)習(xí)方法進(jìn)行測試,以實(shí)現(xiàn)全面而準(zhǔn)確的聯(lián)邦學(xué)習(xí)評估。
本文提出了一種聯(lián)邦學(xué)習(xí)劃分方法,將聯(lián)邦學(xué)習(xí)方法分為單一全局模型和個(gè)性化模型。系統(tǒng)梳理了各類方法采用的數(shù)據(jù)集、是否解決三種異構(gòu)問題,以及方法本身的優(yōu)缺點(diǎn)。學(xué)習(xí)單一全局模型以在服務(wù)器端獲得泛化性能強(qiáng)大的全局模型,學(xué)習(xí)個(gè)性化模型可以在客戶端獲得個(gè)性化的模型,兩者各有利弊,研究人員可根據(jù)場景需求進(jìn)行選擇。聯(lián)邦學(xué)習(xí)框架下進(jìn)行機(jī)器學(xué)習(xí)、深度學(xué)習(xí)算法實(shí)現(xiàn)是人工智能領(lǐng)域落地的一個(gè)可行方案,也是更高效、更全面的利用邊緣數(shù)據(jù)的方法。在真實(shí)的應(yīng)用環(huán)境中,聯(lián)邦學(xué)習(xí)還會(huì)面臨復(fù)雜異構(gòu)問題挑戰(zhàn),有待研究人員進(jìn)一步的探索。
利益沖突聲明
所有作者聲明不存在利益沖突關(guān)系。