孫艷華史亞會 李 萌 楊睿哲 司鵬搏
(北京工業(yè)大學信息學部 北京 100124)(北京工業(yè)大學先進信息網(wǎng)絡北京實驗室 北京 100124)
聯(lián)邦學習(Federated Learning,FL)是一種去中心化、保護數(shù)據(jù)隱私的分布式機器學習[1],由中心服務器調(diào)控,多個客戶端相互協(xié)作共同訓練得到一個共享模型,并且不需要直接訪問客戶端的私有數(shù)據(jù),從而在一定程度上避免了隱私泄露。
但是FL的有效實現(xiàn)很大程度上依賴于客戶端之間相似的數(shù)據(jù)分布以及完全相同的模型架構(gòu),而在絕大多數(shù)實際場景中客戶端數(shù)據(jù)往往是非獨立同分布(Non-Independent Identically Distributed,Non-IID)的[2],這導致FL訓練的共享模型不能滿足每一個客戶端的需求。另外,在醫(yī)療保健、人工智能等領(lǐng)域,每個客戶端需獨立設計模型來滿足自身的需求。而個性化聯(lián)邦學習(Personalized Federated Learning,PFL)則充分考慮了FL的異構(gòu)性影響。
為了解決FL中客戶端隱私數(shù)據(jù)Non-IID的問題,文獻[3]提出了一種聯(lián)邦遷移學習方法,將本地模型視為“基礎(chǔ)層+個性化層”,基礎(chǔ)層負責共享,個性化層進行本地訓練。文獻[4]則混合本地模型和全局模型,采用正則函數(shù)在兩種模型之間找到一個折中,從而提高本地精度。文獻[5]利用元學習找到一個初始的共享模型,使客戶端能只進行1步或者幾步梯度下降便能快速適應本地數(shù)據(jù)集。文獻[6]在每次全局迭代中確定聚類簇,并在簇內(nèi)進行個性化訓練來提高客戶端的個性化精度。文獻[7]在客戶端隱私數(shù)據(jù)集上用夏普利值來衡量客戶端數(shù)據(jù)相似度并進行FL。然而上述方法僅針對客戶端數(shù)據(jù)Non-IID問題,且需要客戶端模型結(jié)構(gòu)和大小相同。
受知識蒸餾(Know ledge Distillation,KD)可以通過交換軟預測而不是整個模型參數(shù)來將知識從一個神經(jīng)網(wǎng)絡轉(zhuǎn)移到另一個神經(jīng)網(wǎng)絡的思想的啟發(fā)[8],文獻[9]提出了聯(lián)邦模型蒸餾(Federated learning w ith M odel Distillation,FedMD)算法,以保護隱私的方式協(xié)同訓練異構(gòu)模型。文獻[10]采用集成蒸餾,在每次全局迭代中將所有異構(gòu)客戶端模型的知識遷移到全局模型。然而這些算法忽略了參與訓練的客戶端進一步的個性化需求。文獻[11]提出了知識遷移個性化聯(lián)邦學習(Know ledge T ransfer for personalized Federated Learning,KT-pFL)算法,將成對客戶端相似度進行參數(shù)化,并采用KD將個性化軟預測的知識遷移到本地。文獻[12]采用集群共蒸餾將具有相似數(shù)據(jù)分布的客戶端的知識遷移到本地。然而這些算法都是通過成對客戶端的相似性來進行個性化知識遷移的,而最近一些研究發(fā)現(xiàn)模型聚合本質(zhì)上是一種合作博弈[13],客戶端之間的影響是多重的,僅僅依靠1對1的模型相似性來衡量客戶端之間數(shù)據(jù)以及模型的相似度并確定模型聚合系數(shù)的方法往往忽略了這一點。
綜上所述,目前大多數(shù)的個性化聯(lián)邦學習研究都建立在同構(gòu)模型的基礎(chǔ)上,或者只考慮了成對客戶端協(xié)作時的相似度。本文提出的基于合作博弈和知識蒸餾的個性化聯(lián)邦學習(personalized Federated learning w ith Collation gam e and Knowledge distillation,pFedCK)算法不僅打破了FL中客戶端數(shù)據(jù)獨立同分布和模型架構(gòu)相同的局限,而且利用合作博弈論中的夏普利值(Shap ley Value,SV)[14]來評估合作聯(lián)盟中的每個客戶對其他客戶端的個性化學習過程的累計貢獻值,并以此確定聯(lián)盟中每個客戶端局部軟預測的聚合系數(shù),最后利用KD將聚合的個性化軟預測的知識遷移到本地模型,并在本地的隱私數(shù)據(jù)集上進行個性化訓練,提高個性化精度。
博弈論既可以用來競爭也可以用來合作,并據(jù)此可以分為合作博弈和非合作博弈,其中合作博弈是指參與者以同盟、合作的方式進行不同聯(lián)盟之間的對抗,關(guān)注的是達成合作時如何分配合作得到的收益[15]。
合作博弈中的SV用來計算累計貢獻的均值,是一種分配方式,往往貢獻越大,收益就相對越多。將SV引入PFL可以通過分析聯(lián)盟聚合時的多重影響來評估每個客戶端對其他客戶端個性化學習的累計貢獻。FL中的每個客戶端相當于合作博弈中的一個玩家,其中N={1,2,...,n}為所有客戶端的集合,C為集合N的任意子集,可用來表示一個聯(lián)盟,v(C)為 聯(lián)盟C中所有元素合作產(chǎn)生的整體效益,一般定義v(?)=0,采用SV可以將聯(lián)盟的整體效益進行分配,收益φj(v)(j ∈C)表示客戶端j在集合N的所有子集中產(chǎn)生的貢獻的累計均值
知識蒸餾是一種基于“教師-學生”思想的模型壓縮方法,一般用于將復雜模型的知識壓縮到較為簡單的模型中。通常先訓練好一個教師網(wǎng)絡,然后將教師網(wǎng)絡的輸出結(jié)果作為學生網(wǎng)絡學習的目標,從而訓練學生網(wǎng)絡使其輸出不斷接近教師網(wǎng)絡。因此KD損失包含兩部分,一部分為軟損失,另一部分為本地訓練損失。
然而在軟損失中,直接使用教師網(wǎng)絡中softmax層的輸出結(jié)果會過濾掉大量的有用信息,因此一般采用溫度參數(shù)T(T >0)來平滑各個類別對應的概率分布,softmax函數(shù)就是T=1時的特例,T的值越大,softmax層的輸出概率分布就越趨于平滑,負標簽攜帶的信息會被相對地放大
其中,x表 示學生網(wǎng)絡的數(shù)據(jù)集,Mstu表示學生模型,Mtea表示教師模型,并且采用KL(Ku llback-Leible)散度衡量兩個模型之間的差距。則KD的總損失可以表示為
其中,λ∈(0,1)為加權(quán)系數(shù),用于控制學生學習教師的程度,Lcro為交叉熵損失函數(shù),y是學生端數(shù)據(jù)的標簽。
本文的訓練目標在于為一組在FL中數(shù)據(jù)Non-IID并且模型架構(gòu)不同的客戶端協(xié)作訓練個性化模型。假設客戶端N={1,2,...,n},每個客戶端i只能訪問隱私數(shù)據(jù)集D i。在傳統(tǒng)的FL中,學習目標為得到一個全局模型ω使所有客戶端的總經(jīng)驗損失最小
其中,L i(ω,D i)是客戶端i的本地損失函數(shù)。然而式(4)要求所有客戶端有統(tǒng)一的模型架構(gòu),且在本地數(shù)據(jù)Non-IID時訓練效果明顯下降。因此本文在此基礎(chǔ)上將客戶端i的本地損失函數(shù)定義為
其中,Dp表示公共數(shù)據(jù)集,每個參與訓練的客戶端均可訪問,為經(jīng)過合作博弈后聚合得到的客戶端i的個性化軟預測,l ogiti為客戶端i的局部軟預測,進而pFedCK算法的訓練目標可以表示為
pFedCK算法的具體過程如算法1所示。
遷移學習:為避免客戶端私有數(shù)據(jù)稀缺對訓練結(jié)果造成影響,在FL訓練之前,采用遷移學習使客戶端先在Dp上 訓練至收斂,然后在Di上進行微調(diào)。
然后根據(jù)SV將合作聯(lián)盟的整體效益分配給聯(lián)盟中的每個客戶,表示它在的所有子集X中對當前客戶端i個性化學習的貢獻的累計均值
然后將下載的k個軟預測以及客戶端i的局部軟預測進行聚合得到個性化軟預測
其中,p,q分別為客戶端i的本地軟預測和聚合的個性化軟預測的比例系數(shù)。
其中,ωi為客戶端i的模型參數(shù),η1,η2為學習率,L i(ω,D i)則 為客戶端i在隱私數(shù)據(jù)集Di上 的損失函數(shù)。
實驗基于Tensorflow進行,并與FedMD算法、首k聯(lián)邦學習(Top k-Federated Learning,Topk-FL)算法以及KT-pFed算法進行比較,其中Topk-FL算法僅根據(jù)余弦相似度從服務器端下載k個軟預測進行平均,進而在本地進行學習。所有算法的性能都通過所有客戶端的平均測試精度來評估。
數(shù)據(jù)集:在兩種數(shù)據(jù)場景下進行實驗。
(1)公共數(shù)據(jù)集是國家技術(shù)與標準混合研究所(M ixed National Institute of Standards and Technology,MN IST)數(shù)據(jù)集,隱私數(shù)據(jù)集是擴展MN IST(anExtension of MNIST,EMNIST)數(shù)據(jù)集。對于隱私數(shù)據(jù)集采用IID和兩種Non-IID情況,在Non-IID 1中,每個客戶端只有EMNIST中一類作者的字,且樣本數(shù)量相同,在Non-IID 2中每個客戶端有EMNIST中所有作者的字,但是樣本總量不同。兩種情況下都要求在測試時對所有作者的字進行分類。
算法1 pFedCK算法
(2)公共數(shù)據(jù)集是CIFAR 10,隱私數(shù)據(jù)集是CIFAR100。CIAR100數(shù)據(jù)集有20個超類,每個超類包含5個子類,每個類有600張大小為32× 32的彩色圖像。同樣地,對于隱私數(shù)據(jù)集同樣采用IID和兩種Non-IID情況,在Non-IID 1中,訓練時每個客戶端只包含1個大類中的1個子類,且樣本數(shù)量相同,在Non-IID 2中每個客戶端包含所有的類,但是每個類的樣本數(shù)不同,即每個客戶端的樣本總數(shù)不同,兩種情況下測試時都需要將通用的測試數(shù)據(jù)集分類為正確的大類。
模型架構(gòu):實驗采用了3種不同的模型結(jié)構(gòu),包括2層卷積神經(jīng)網(wǎng)絡,3層卷積神經(jīng)網(wǎng)絡以及A lexNet,并將這3種模型分配給10個客戶端,每個客戶端的模型參數(shù)均不同。
實驗細節(jié):本文設置全局迭代20次,本地迭代20次,本地蒸餾3次,且每次全局迭代中客戶端根據(jù)余弦相似度下載7個軟預測(即k=7),學習率η1,η2均為0.001,公共數(shù)據(jù)集為5000,p-q為0.3–0.7,λ為0.5,其余參數(shù)均按照各個算法的最優(yōu)設置。
本節(jié)展示了p Fed CK算法與FedM D算法、Topk-FL算法以及KT-p Fed算法的訓練效果比較,并對實驗結(jié)果進行了詳細分析。
表1總結(jié)了4種算法的訓練精度。在表1中,pFedCK算法能在隱私數(shù)據(jù)IID的情況下,將個性化精度在KT-p Fed算法的基礎(chǔ)上提高約7%,且在Topk-FL算法的基礎(chǔ)上提高約8%,在FedMD算法的基礎(chǔ)上提高約15%;在隱私數(shù)據(jù)集Non-IID 1的情況下,將個性化精度在KT-pFed算法的基礎(chǔ)上提高約3%,在Topk-FL算法的基礎(chǔ)上提高約5%,在FedMD算法的基礎(chǔ)上提高約10%;在隱私數(shù)據(jù)集Non-IID 2的情況下將個性化精度在KT-p Fed算法的基礎(chǔ)上提高約2%,在Topk-FL算法的基礎(chǔ)上提高約4%,在FedMD算法的基礎(chǔ)上提高約8%。這是因為FedMD算法沒有考慮不同客戶端的個性化需求,TopK-FL算法沒有考慮客戶端之間相互協(xié)作的影響,KT-pFed算法只根據(jù)成對客戶端的相似性來決定其參數(shù)矩陣中的值并進行個性化,而本文的pFedCK算法則采用合作博弈的思想考慮到了客戶端模型聚合時的多重影響,以此確定聚合系數(shù)來提高個性化。
表1 4種算法在不同數(shù)據(jù)集下的個性化精度
圖1和圖2分別展示了4種算法中10個客戶端在不同數(shù)據(jù)集訓練過程中的平均訓練精度曲線。由圖1可知,EMNIST數(shù)據(jù)集IID時pFedCK算法的訓練精度能在其他3種算法的基礎(chǔ)上實現(xiàn)較高程度的提升,且訓練速度明顯快于其他3種,而KT-pFed算法與Topk-FL算法的訓練速度以及精度提升效果基本相當,均明顯遜色于pFedCK算法,F(xiàn)edMD算法則會在第10次全局迭代左右出現(xiàn)較明顯的浮動,相對不穩(wěn)定。隱私數(shù)據(jù)Non-IID1時,客戶端數(shù)據(jù)異構(gòu),訓練難度增大,pFedCK算法的訓練精度同樣明顯優(yōu)于其他3種算法。TopK-FL算法的訓練速度較快,在訓練后半程訓練精度和KT-pFed算法精度水平基本相當,而FedMD算法的訓練精度則最低。隱私數(shù)據(jù)Non-IID2時,數(shù)據(jù)異構(gòu)程度進一步提高,4種算法的訓練精度都有所下降,此時pFedCK算法相對于其他3種算法依然有較明顯的提升,而KT-pFed算法和Top-KL算法相對于FedMD算法的提升效果則相對較差。
圖1 MNIST-EMNIST中4種算法的平均精度
圖2 CIFAR10-CIFAR100中4種算法的平均精度
由圖2可知,由于CIFAR10-CIFAR100的數(shù)據(jù)復雜度相對較高,這種場景下4種算法實現(xiàn)的數(shù)據(jù)精度均低于MNIST-EMNIST數(shù)據(jù)場景,且浮動較大,較為頻繁。CIFAR100數(shù)據(jù)集IID時,pFedCK算法訓練最快,且訓練精度相對于其他3種算法能實現(xiàn)明顯的提升,而KT-pFed算法和Topk-FL算法的訓練精度的提升幅度較低,且訓練速度基本與FedMD算法持平,F(xiàn)edMD算法的訓練精度則最低。CIFAR100數(shù)據(jù)集Non-IID1時,由于本地數(shù)據(jù)分布異構(gòu),訓練過程中4種算法均出現(xiàn)較為頻繁的浮動,但pFedCK算法仍然能實現(xiàn)較快的訓練速度以及最大幅度精度提升,而KT-pFed算法的訓練速度較快,訓練效果與Topk-FL算法基本持平且相對較差。CIFAR 100數(shù)據(jù)集Non-IID 2時,4種算法的訓練精度均進一步降低,此時Topk-FL算法的訓練效果提升幅度相對較差,KT-pFed算法在訓練后半段出現(xiàn)較明顯的提升,而pFedCK算法此時仍然比其他3種算法的訓練精度要高,并且訓練穩(wěn)定性也較好。
綜上所述,客戶端模型異構(gòu)時,pFedCK算法在不同數(shù)據(jù)集以及不同數(shù)據(jù)分布下均能獲得在同樣設置下優(yōu)于其他算法的效果。
為了了解不同的訓練參數(shù)對pFedCK算法效果的影響,本文在學習率η1,η2均為0.001的情況下在兩種不同的數(shù)據(jù)場景下進行了各種實驗。
本地迭代次數(shù):表2展示了不同本地迭代次數(shù)下pFedCK算法的平均精度。可以看出,在MNISTEMNIST數(shù)據(jù)場景下,隱私數(shù)據(jù)IID時本地迭代次數(shù)為10的時候個性化精度最高,隱私數(shù)據(jù)Non-IID1和Non-IID2時本地迭代次數(shù)為20的時候個性化精度最高。在CIFAR10-CIFAR100場景下,隱私數(shù)據(jù)IID時本地迭代次數(shù)為15的時候個性化精度最高,隱私數(shù)據(jù)Non-IID1和Non-IID 2時本地迭代次數(shù)為20的時候精度最高。可以看出,數(shù)據(jù)復雜程度越高,在本地訓練的次數(shù)也越多。
表2 不同本地迭代次數(shù)下pFedCK算法的個性化精度
本地蒸餾次數(shù):表3展示了不同本地蒸餾次數(shù)下pFedCK算法的平均精度。可以看出,在MNISTEMNIST場景下,隱私數(shù)據(jù)IID時本地蒸餾次數(shù)為5的時候個性化精度最高,隱私數(shù)據(jù)Non-IID 1和Non-IID 2時本地蒸餾次數(shù)為3時個性化精度最高。在CIFAR10-CIFAR100數(shù)據(jù)場景下,隱私數(shù)據(jù)IID時本地蒸餾次數(shù)為3時個性化精度最高,而隱私數(shù)據(jù)Non-IID1和Non-IID2時本地蒸餾次數(shù)為2時個性化精度最高。由此可知數(shù)據(jù)復雜程度越高時,本地蒸餾次數(shù)越低,越有利于本地個性化訓練。
表3 不同本地蒸餾次數(shù)下pFedCK算法的個性化精度
p,q:表4展示了不同p,q下pFedCK算法的平均精度變化。可以看出在MNIST-EMNIST數(shù)據(jù)場景下,隱私數(shù)據(jù)IID時p,q為0.1,0.9時個性化精度最高,隱私數(shù)據(jù)Non-IID1時p,q為0.4,0.6時個性化精度最高,隱私數(shù)據(jù)Non-IID2時p,q為0.3,0.7時個性化精度最高。而在CIFAR10-CIFAR100數(shù)據(jù)場景下,隱私數(shù)據(jù)IID,Non-IID1時p,q為0.3,0.7時個性化精度最高,隱私數(shù)據(jù)Non-IID 2時p,q為0.4,0.6時個性化精度最高。由此不難發(fā)現(xiàn),本地數(shù)據(jù)復雜程度越高時,往往本地軟預測所占的比例越高,越有助于本地客戶端的個性化訓練。
表4 不同p-q下pFedCK算法的個性化精度
加權(quán)系數(shù)λ:表5展示了不同加權(quán)系數(shù)λ下pFedCK算法的平均精度的變化,可以看出在MNIST-EMNIST數(shù)據(jù)場景下,隱私數(shù)據(jù)IID時λ為0.1時效果最好,隱私數(shù)據(jù)Non-IID 1和Non-IID 2時λ等于0.3時效果最好,而在CIFAR10-CIFAR100數(shù)據(jù)場景下,隱私數(shù)據(jù)IID時在λ為0.5時效果最好,隱私數(shù)據(jù)Non-IID 1和Non-IID 2時λ為0.8時效果最好。由此可以看出數(shù)據(jù)復雜程度越高時,要學習的知識更多,因此往往在知識蒸餾過程中教師模型所占據(jù)的比重更大。
表5 不同λ下pFedCK算法的個性化精度
綜上所述,對于客戶端本地數(shù)據(jù)的不同異構(gòu)情況,數(shù)據(jù)異構(gòu)程度越高時,為了獲得更好的訓練效果,往往需要本地迭代次數(shù)相對較多,本地蒸餾次數(shù)相對較少,并且p,q的比例相對較大,λ的值也相對較大。
針對FL中客戶端數(shù)據(jù)異構(gòu)時影響訓練速度以及訓練精度,客戶端模型異構(gòu)無法進行訓練的問題,本文提出了基于合作博弈和知識蒸餾的pFedCK算法,將合作博弈論中的SV引入到個性化聯(lián)邦學習中,以分析客戶端之間協(xié)作時的多重影響,并且將其對其他客戶端個性化的累計貢獻以平均值的形式量化,進行個性化聚合,然后在本地引用知識蒸餾克服模型異構(gòu)的影響并將個性化軟預測的知識遷移到本地。實驗結(jié)果證明,pFedCK算法能明顯地提高客戶端的訓練精度。除數(shù)據(jù)和模型異構(gòu)之外,F(xiàn)L還存在系統(tǒng)異構(gòu)性問題,如本地資源,通信能耗等,下一步研究工作將綜合考慮解決兩種異構(gòu)性問題。