王樹(shù)芬,張 哲,馬士堯,陳俞強(qiáng),伍 一
(1.哈爾濱石油學(xué)院 信息工程學(xué)院,哈爾濱 150028;2.黑龍江大學(xué) 數(shù)據(jù)科學(xué)與技術(shù)學(xué)院,哈爾濱 150080;3.廣州航海學(xué)院 信息與通信工程學(xué)院,廣州 510725)
聯(lián)邦學(xué)習(xí)[1-3](Federated Learning,F(xiàn)L)是隱私計(jì)算領(lǐng)域的重要技術(shù),允許多個(gè)邊緣設(shè)備或客戶(hù)端合作訓(xùn)練共享的全局模型。聯(lián)邦學(xué)習(xí)[4]的特點(diǎn)是每個(gè)客戶(hù)端只能私有地訪(fǎng)問(wèn)本地?cái)?shù)據(jù),而不能與云中心共享數(shù)據(jù)[5-6]?,F(xiàn)有研究多數(shù)要求客戶(hù)端的數(shù)據(jù)都帶有真實(shí)的標(biāo)簽,然而在現(xiàn)實(shí)場(chǎng)景下客戶(hù)端的數(shù)據(jù)多數(shù)是沒(méi)有標(biāo)簽的。這種標(biāo)簽缺失的現(xiàn)象通常是由于標(biāo)注成本過(guò)高或缺少相關(guān)領(lǐng)域的專(zhuān)家知識(shí)造成的[7]。因此,如何利用本地客戶(hù)端上的無(wú)標(biāo)簽數(shù)據(jù)來(lái)訓(xùn)練高質(zhì)量的全局模型對(duì)聯(lián)邦學(xué)習(xí)而言是一個(gè)巨大的挑戰(zhàn)。
文獻(xiàn)[7-10]設(shè)計(jì)一種可將半監(jiān)督學(xué)習(xí)技術(shù)有效地整合到FL 中的半監(jiān)督聯(lián)邦學(xué)習(xí)(Semi-Supervised Federated Learning,SSFL)系統(tǒng)。文獻(xiàn)[7]引入一致性損失和已訓(xùn)練的模型,為無(wú)標(biāo)簽數(shù)據(jù)生成偽標(biāo)簽。目前,偽標(biāo)簽和一致正則化方法已廣泛應(yīng)用于半監(jiān)督領(lǐng)域,但是偽標(biāo)簽主要利用預(yù)測(cè)值高于置信度閾值的偽標(biāo)簽來(lái)實(shí)現(xiàn)高精度模型,一致正則化技術(shù)通過(guò)在同一個(gè)無(wú)標(biāo)簽數(shù)據(jù)中分別注入兩種不同噪聲應(yīng)保持相同模型輸出來(lái)訓(xùn)練模型[11]。因此,亟需設(shè)計(jì)一個(gè)通用的聯(lián)邦半監(jiān)督學(xué)習(xí)框架,但設(shè)計(jì)該框架存在兩個(gè)主要問(wèn)題。第一個(gè)是傳統(tǒng)SSFL 方法[7,12-13]直接將半監(jiān)督技術(shù)(例如一致性損失和偽標(biāo)簽)引入FL 系統(tǒng),之后使用聯(lián)邦學(xué)習(xí)算法來(lái)聚合客戶(hù)端的模型參數(shù)。這樣將導(dǎo)致模型在利用大量無(wú)標(biāo)簽的數(shù)據(jù)學(xué)習(xí)后會(huì)遺忘從少量標(biāo)簽數(shù)據(jù)中學(xué)習(xí)到的知識(shí)。文獻(xiàn)[10]分解了標(biāo)簽數(shù)據(jù)和無(wú)標(biāo)簽數(shù)據(jù)的模型參數(shù)用于進(jìn)行分離學(xué)習(xí),卻忽略了全局模型迭代更新之間的隱式貢獻(xiàn)。因此,全局模型將偏向于標(biāo)簽數(shù)據(jù)(監(jiān)督模型)或無(wú)標(biāo)簽數(shù)據(jù)(無(wú)監(jiān)督模型)。第二個(gè)是統(tǒng)計(jì)異質(zhì)性,即客戶(hù)端本地的訓(xùn)練數(shù)據(jù)分布是非獨(dú)立同分布(not Identically and Independently Distributed,non-IID)的。其主要原因?yàn)椴煌目蛻?hù)端具有不同的訓(xùn)練數(shù)據(jù)集,而這些數(shù)據(jù)集通常沒(méi)有重疊,甚至是分布不同的。因此,在異構(gòu)數(shù)據(jù)的訓(xùn)練過(guò)程中,客戶(hù)端局部最優(yōu)模型與全局最優(yōu)模型會(huì)出現(xiàn)很大的差異。這將導(dǎo)致標(biāo)準(zhǔn)的聯(lián)邦學(xué)習(xí)方法在non-IID 設(shè)置下全局模型性能出現(xiàn)顯著下降和收斂速度慢的問(wèn)題。目前,研究人員對(duì)此進(jìn)行了大量研究并在一定程度上緩解了non-IID 問(wèn)題。例如文獻(xiàn)[14]利用局部批處理歸一化來(lái)減輕平均聚合模型和局部模型之前的特征偏移。然而,此類(lèi)方法給服務(wù)器或客戶(hù)端增加了額外的計(jì)算和通信開(kāi)銷(xiāo)。
本文針對(duì)上述第一個(gè)問(wèn)題,提出FedMix 方法,分析全局模型迭代之間的隱式效果,采用對(duì)監(jiān)督模型和無(wú)監(jiān)督模型進(jìn)行分離學(xué)習(xí)的模型參數(shù)分解策略。針對(duì)上述第二個(gè)問(wèn)題,為了緩解客戶(hù)端之間的non-IID 數(shù)據(jù)分布對(duì)全局模型收斂速度和穩(wěn)定性的影響,提出FedLoss 聚合方法,通過(guò)記錄客戶(hù)端的模型損失來(lái)動(dòng)態(tài)調(diào)整相應(yīng)局部模型的權(quán)重。此外,在實(shí)驗(yàn)中引入Dirchlet 分布函數(shù)來(lái)模擬客戶(hù)端數(shù)據(jù)的non-IID 設(shè)置。
半監(jiān)督聯(lián)邦學(xué)習(xí)試圖利用無(wú)標(biāo)簽數(shù)據(jù)進(jìn)一步提高聯(lián)邦學(xué)習(xí)中全局模型的性能[9]。根據(jù)標(biāo)簽數(shù)據(jù)所在的位置,半監(jiān)督聯(lián)邦學(xué)習(xí)分為標(biāo)簽在客戶(hù)端和標(biāo)簽在服務(wù)器兩種場(chǎng)景[10]。文獻(xiàn)[12]提出FedSemi,該系統(tǒng)在聯(lián)邦學(xué)習(xí)設(shè)置下統(tǒng)一了基于一致性的半監(jiān)督學(xué)習(xí)模型[15]、雙模型[16]和平均教師模型[17]。文獻(xiàn)[8]提出DS-FL 系統(tǒng),旨在解決半監(jiān)督聯(lián)邦學(xué)習(xí)中的通信開(kāi)銷(xiāo)問(wèn)題。文獻(xiàn)[18]提出一種研究non-IID數(shù)據(jù)分布的方法。該方法引入了一個(gè)概率距離測(cè)量來(lái)評(píng)估半監(jiān)督聯(lián)邦學(xué)習(xí)中客戶(hù)端數(shù)據(jù)分布的差異。與以上方法不同,本文研究了標(biāo)簽數(shù)據(jù)在服務(wù)器上這一場(chǎng)景,同時(shí)也解決了聯(lián)邦學(xué)習(xí)中non-IID 的問(wèn)題。
由于每個(gè)客戶(hù)端本地?cái)?shù)據(jù)集的分布與全局分布相差較大,導(dǎo)致客戶(hù)端的目標(biāo)損失函數(shù)局部最優(yōu)與全局最優(yōu)不一致[19-21],特別是當(dāng)本地客戶(hù)端模型參數(shù)更新很大時(shí),這種差異會(huì)更加明顯,因此non-IID的數(shù)據(jù)分布對(duì)FedAvg[1]算法的準(zhǔn)確性影響很大。一些研究人員試圖設(shè)計(jì)一種魯棒的聯(lián)邦學(xué)習(xí)算法去解決聯(lián)邦學(xué)習(xí)中的non-IID 問(wèn)題。例如,F(xiàn)edProx[22]通過(guò)限制本地模型更新的大小,在局部目標(biāo)函數(shù)中引入一個(gè)額外的L2 正則化項(xiàng)來(lái)限制局部模型和全局模型之間的距離。然而,不足之處是每個(gè)客戶(hù)端需要單獨(dú)調(diào)整本地的正則化項(xiàng),以實(shí)現(xiàn)良好的模型性能。FedNova[23]在聚合階段改進(jìn)了FedAvg,根據(jù)客戶(hù)端本地的訓(xùn)練批次對(duì)模型更新進(jìn)行規(guī)范化處理。盡管已有研究在一定程度上緩解了non-IID 問(wèn)題,但都只是評(píng)估了特定non-IID 水平的數(shù)據(jù)分布,缺少對(duì)不同non-IID 場(chǎng)景下的廣泛實(shí)驗(yàn)驗(yàn)證。因此,本文提出一個(gè)更全面的數(shù)據(jù)分布和數(shù)據(jù)分區(qū)策略,即在實(shí)驗(yàn)中引入Dirchlet 分布函數(shù)來(lái)模擬客戶(hù)端數(shù)據(jù)的不同non-IID 水平。
聯(lián)邦學(xué)習(xí)旨在保護(hù)用戶(hù)隱私的前提下解決數(shù)據(jù)孤島問(wèn)題。FL 要求每個(gè)客戶(hù)端使用本地?cái)?shù)據(jù)去合作訓(xùn)練一個(gè)共享的全局模型ω*。在FL 中,本文假設(shè)有一個(gè)服務(wù)器S和K個(gè)客戶(hù)端,其中每個(gè)客戶(hù)端都存在一個(gè)獨(dú)立同分布(Independently Identical Distribution,IID)或者non-IID 數(shù)據(jù)集Dk。具體地,客戶(hù)端使用損失函數(shù)l(ω;x)訓(xùn)練樣本x,其中ω∈Rd表示模型可訓(xùn)練的參數(shù)。本文定義L(ω)=作為服務(wù)器上的損失函數(shù)。因此,F(xiàn)L需要在服務(wù)器端優(yōu)化如下目標(biāo)函數(shù):
其中:pk≥0,表示第k個(gè)客戶(hù)端在全局模型中的權(quán)重。在FL 中,為了最小化上述目標(biāo)函數(shù),服務(wù)器和客戶(hù)端需要執(zhí)行以下步驟:
步驟1初始化。服務(wù)器向被選中的客戶(hù)端發(fā)送初始化的全局模型ω0。
步驟2本地訓(xùn)練??蛻?hù)端在本地?cái)?shù)據(jù)集Dk上使用優(yōu)化器(例如SGD、Adam)對(duì)初始化的模型進(jìn)行訓(xùn)練。在訓(xùn)練后,每個(gè)客戶(hù)端向服務(wù)器上傳本地模型。
步驟3聚合。服務(wù)器收集客戶(hù)端上傳的模型并使用聚合方法(例如FedAvg)聚合生成一個(gè)新的全局模型,即ωt+1=ωt+。之后服務(wù)器將更新后的全局模型ωt+1發(fā)送給下一輪被選擇參與訓(xùn)練的客戶(hù)端。
在現(xiàn)實(shí)世界中,例如金融和醫(yī)療領(lǐng)域,無(wú)標(biāo)簽數(shù)據(jù)很容易獲得而標(biāo)簽數(shù)據(jù)很難得到。與此同時(shí),標(biāo)注數(shù)據(jù)通常耗費(fèi)大量的人力物力。為此研究人員提出了一種機(jī)器學(xué)習(xí)范式——半監(jiān)督學(xué)習(xí)[24-26]。半監(jiān)督學(xué)習(xí)可以在混合的數(shù)據(jù)集(一部分為標(biāo)簽數(shù)據(jù),另一部分為無(wú)標(biāo)簽數(shù)據(jù))上訓(xùn)練得到高精度模型。因此,近些年半監(jiān)督學(xué)習(xí)在深度學(xué)習(xí)領(lǐng)域成為一個(gè)熱門(mén)的研究方向。在本節(jié)中,將介紹半監(jiān)督學(xué)習(xí)中的一個(gè)基本假設(shè)和兩種常用的半監(jiān)督學(xué)習(xí)方法。
假設(shè)1(一致性)在機(jī)器學(xué)習(xí)中存在一個(gè)基本假設(shè):如果兩個(gè)無(wú)標(biāo)簽樣本u1、u2的特征相似,那么相應(yīng)模型的預(yù)測(cè)結(jié)果y1、y2也應(yīng)該相似[14],即f(u1)=f(u2),其中f(·)是預(yù)測(cè)函數(shù)。
根據(jù)假設(shè)1,研究人員一般采用如下兩種常用的半監(jiān)督學(xué)習(xí)方法:
1)一致性正則化。該方法的主要思想是對(duì)于無(wú)標(biāo)簽的訓(xùn)練樣本,無(wú)論是否加入噪聲,模型預(yù)測(cè)結(jié)果都應(yīng)該是相同的[19]。通常使用數(shù)據(jù)增強(qiáng)(如圖像翻轉(zhuǎn)和移位)的方式來(lái)給無(wú)標(biāo)簽樣本添加噪聲以增加數(shù)據(jù)集的多樣性。假定一個(gè)無(wú)標(biāo)簽數(shù)據(jù)集u=中的無(wú)標(biāo)簽樣本ui,其擾動(dòng)形式為,則目標(biāo)是最小化未標(biāo)記數(shù)據(jù)與其擾動(dòng)輸出兩者之間的距離,其中fθ(ui)是樣本ui在模型θ上的輸出。一般地,采用Kullback-Leiber(KL)散度進(jìn)行距離測(cè)量,因此一致性損失計(jì)算如下:
其中:m表示未標(biāo)記樣本的總數(shù);fθ(ui)表示無(wú)標(biāo)簽樣本在模型θ上的輸出。
2)偽標(biāo)簽[15]。該方法利用一些標(biāo)簽樣本來(lái)訓(xùn)練模型,從而給無(wú)標(biāo)簽樣本打上偽標(biāo)簽。一般使用Sharpening[15]和argmax[15]方法來(lái)設(shè)置偽標(biāo)簽,其中前者使模型輸出的分布極端化,后者會(huì)將模型輸出轉(zhuǎn)變?yōu)閛ne-hot。偽標(biāo)簽方法也稱(chēng)為自訓(xùn)練方法,具體步驟如下:
步驟1使用少量的標(biāo)簽數(shù)據(jù)訓(xùn)練模型。
步驟2將無(wú)標(biāo)簽數(shù)據(jù)輸入該模型,之后將無(wú)標(biāo)簽數(shù)據(jù)的預(yù)測(cè)結(jié)果進(jìn)行Sharpening 或argmax 操作,得到無(wú)標(biāo)簽數(shù)據(jù)的偽標(biāo)簽。
步驟3標(biāo)簽數(shù)據(jù)和偽標(biāo)簽數(shù)據(jù)共同訓(xùn)練模型。
重復(fù)步驟2 和步驟3,直至模型收斂。
目前,針對(duì)FL 的研究多數(shù)基于標(biāo)簽數(shù)據(jù)訓(xùn)練模型。然而,缺少標(biāo)簽數(shù)據(jù)是現(xiàn)實(shí)世界中的一種常見(jiàn)現(xiàn)象。同時(shí),在標(biāo)簽數(shù)據(jù)不足的情況下,現(xiàn)有方法的實(shí)驗(yàn)結(jié)果較差。半監(jiān)督學(xué)習(xí)可以使用無(wú)標(biāo)簽數(shù)據(jù)和少量的標(biāo)記數(shù)據(jù)來(lái)達(dá)到與監(jiān)督學(xué)習(xí)幾乎相同的模型性能。因此,本文將半監(jiān)督學(xué)習(xí)方法應(yīng)用于聯(lián)邦學(xué)習(xí)框架中。在SSFL 系統(tǒng)中,根據(jù)標(biāo)簽數(shù)據(jù)所在的位置,可以分為兩種場(chǎng)景:第一種場(chǎng)景是客戶(hù)端同時(shí)具有標(biāo)簽數(shù)據(jù)和無(wú)標(biāo)簽數(shù)據(jù)的常規(guī)情況,即標(biāo)簽在客戶(hù)端場(chǎng)景;第二種場(chǎng)景是標(biāo)簽數(shù)據(jù)僅可用在服務(wù)器上,即標(biāo)簽在服務(wù)器場(chǎng)景。本文針對(duì)標(biāo)簽在服務(wù)器場(chǎng)景,給出問(wèn)題定義:當(dāng)標(biāo)簽數(shù)據(jù)只在服務(wù)器端,客戶(hù)端僅有無(wú)標(biāo)簽數(shù)據(jù)時(shí),在SSFL 中假設(shè)有1 個(gè)服務(wù)器S和K個(gè)客戶(hù)端。服務(wù)器上有1 個(gè)標(biāo)簽數(shù)據(jù)集Ds=,每個(gè)客戶(hù)端均有1 個(gè)本地?zé)o標(biāo)簽數(shù)據(jù)集。因此,在這種情況下,對(duì)于無(wú)標(biāo)簽的訓(xùn)練樣本ui,令為第k個(gè)客戶(hù)端的損失函數(shù),具體公式如下:
其中:m是無(wú)標(biāo)簽樣本的數(shù)量;π(·)是數(shù)據(jù)增強(qiáng)函數(shù),例如無(wú)標(biāo)簽數(shù)據(jù)的翻轉(zhuǎn)和平移;是無(wú)標(biāo)簽樣本ui的偽標(biāo)簽;是樣本ui在第k個(gè)客戶(hù)端的模型θk上的輸出。對(duì)于標(biāo)簽樣本xi,令Ls為服務(wù)器端的損失函數(shù),具體公式如下:
其中:n是標(biāo)簽樣本的數(shù)量;fθ(xi)是樣本xi在模型θ上的輸出。因此,在SSFL 中標(biāo)簽在服務(wù)器場(chǎng)景中國(guó)的目標(biāo)是將損失函數(shù)最小化,具體公式如下:
整個(gè)學(xué)習(xí)過(guò)程類(lèi)似于傳統(tǒng)的FL 系統(tǒng),不同之處在于服務(wù)器不僅聚合客戶(hù)端模型參數(shù),而且還使用標(biāo)簽數(shù)據(jù)訓(xùn)練模型。
在半監(jiān)督聯(lián)邦學(xué)習(xí)系統(tǒng)(如圖1 所示)中,①~⑥表示訓(xùn)練過(guò)程,服務(wù)器S持有一個(gè)標(biāo)記的數(shù)據(jù)集Ds=。對(duì)于K個(gè)客戶(hù)端,假設(shè)第k個(gè)客戶(hù)端擁有本地?zé)o標(biāo)簽的數(shù)據(jù)集。與傳統(tǒng)FL 系統(tǒng)類(lèi)似,SSFL 中的服務(wù)器和客戶(hù)端合作訓(xùn)練高性能的全局模型ω*,目標(biāo)是優(yōu)化上述目標(biāo)函數(shù)式(5),但是它們忽略了全局模型迭代之間的隱式貢獻(xiàn),從而導(dǎo)致學(xué)習(xí)的全局模型不是最佳的。
圖1 半監(jiān)督聯(lián)邦學(xué)習(xí)系統(tǒng)框架Fig.1 Framework of semi-supervised federated learning system
受此啟發(fā),本文提出一種FedMix 方法,該方法以細(xì)粒度的方式關(guān)注全局模型迭代之間的隱式貢獻(xiàn),將在標(biāo)記數(shù)據(jù)集上訓(xùn)練的監(jiān)督模型定義為σ,在無(wú)標(biāo)簽數(shù)據(jù)集上訓(xùn)練的無(wú)監(jiān)督模型定義為ψ,聚合的全局模型定義為ω。具體而言,本文設(shè)計(jì)一種參數(shù)分解策略,分別將α、β和γ3 個(gè)權(quán)重分配給無(wú)監(jiān)督模型ψ、監(jiān)督模型σ和上一輪的全局模型ω。FedMix方法可以通過(guò)細(xì)粒度的方式捕獲全局模型的每次迭代之間的隱式關(guān)系,具體步驟如下:
步驟1初始化。服務(wù)器從所有本地客戶(hù)端中隨機(jī)選擇一定比例F(0 步驟2服務(wù)器訓(xùn)練。與FL 不同,在本文SSFL系統(tǒng)中,服務(wù)器不僅聚合客戶(hù)端上傳的模型,而且在標(biāo)簽數(shù)據(jù)集Ds上訓(xùn)練監(jiān)督模型σt(σt←ωt)。因此,服務(wù)器在標(biāo)記的數(shù)據(jù)集Ds上使用本地優(yōu)化器來(lái)訓(xùn)練監(jiān)督模型σt。目標(biāo)函數(shù)的最小化定義如下: 其中:λs是超參數(shù);x和y來(lái)自標(biāo)簽數(shù)據(jù)集Ds;表示在第t輪訓(xùn)練中標(biāo)簽樣本在監(jiān)督模型σt上的輸出。 步驟3本地訓(xùn)練。第k個(gè)客戶(hù)端使用本地?zé)o標(biāo)簽的數(shù)據(jù)來(lái)訓(xùn)練接收到的全局模型,獲得無(wú)監(jiān)督的模型。因此,定義以下目標(biāo)函數(shù): 其中:λ1、λ2是控制損失項(xiàng)之間比率的超參數(shù);是第k個(gè)客戶(hù)端在第t輪的無(wú)監(jiān)督模型;u來(lái)自無(wú)標(biāo)簽的數(shù)據(jù)集Dk;π(·)是擾動(dòng)的形式,即π1是移位數(shù)據(jù)增強(qiáng),π2是翻轉(zhuǎn)數(shù)據(jù)增強(qiáng);是通過(guò)使用本文提出的Sharpening 方法(如圖2 所示)獲得的偽標(biāo)簽。 圖2 Sharpening 方法流程Fig.2 Procedure of Sharpening method Sharpening 方法的定義如下: 步驟4聚合。首先,服務(wù)器使用FedLoss 方法來(lái)聚合客戶(hù)端上傳的無(wú)監(jiān)督模型,得到全局的無(wú)監(jiān)督模型,即ψt+1=,其中是第k個(gè)客戶(hù)端在第t+1 次訓(xùn)練輪次中的無(wú)監(jiān)督模型,是第k個(gè)客戶(hù)端的權(quán)重。然后,服務(wù)器將第t+1 輪的全局無(wú)監(jiān)督模型ψt+1、監(jiān)督模型σt+1和上一輪的全局模型ωt聚合得到新的全局模型ωt+1,如式(10)所示: 其中:α、β和γ是這3 個(gè)模型對(duì)應(yīng)的權(quán)重,(α,β,γ)∈{α+β+γ=1且α,β,γ≥0}。 重復(fù)上述步驟,直到全局模型收斂。 FedLoss 聚合方法可以根據(jù)客戶(hù)端模型訓(xùn)練的損失值調(diào)整相應(yīng)局部模型的權(quán)重,用于提高聚合的全局模型的性能。原因是有些客戶(hù)端模型在本地訓(xùn)練后性能較好,那么這些客戶(hù)端就應(yīng)該對(duì)全局模型做出更多的貢獻(xiàn)。本文的目標(biāo)是增大客戶(hù)端性能好的本地模型對(duì)全局模型的影響,以提高模型的性能。因此,F(xiàn)edLoss聚合方法的定義如下: 其中:F是客戶(hù)端參與率;K是客戶(hù)端的總數(shù);是第k個(gè)客戶(hù)端在第t+1 輪訓(xùn)練的模型損失值;St+1是第t+1 輪中服務(wù)器選擇的客戶(hù)端集合。 為更好地評(píng)估本文所設(shè)計(jì)的系統(tǒng)對(duì)non-IID 數(shù)據(jù)的魯棒性,引入Dirchlet 分布函數(shù)[27-28]來(lái)調(diào)整本地客戶(hù)端數(shù)據(jù)的non-IID 水平。具體而言,通過(guò)調(diào)整Dirchlet 分布函數(shù)的參數(shù)(即μ)來(lái)生成不同non-IID水平的數(shù)據(jù)分布。假設(shè)第k個(gè)客戶(hù)端的本地?cái)?shù)據(jù)集Dk有c個(gè)類(lèi),因此Dirichlet 分布函數(shù)的定義如下: 其中:Θ是從Dirichlet 函數(shù)中隨機(jī)選取的樣本集,Θ={φ1,φ2,…,φc}且Θ~Dir(μ1,μ2,…,μc);μ,μ1,μ2,…,μc是Dirichlet 分布函數(shù)的參數(shù),μ=μ1=μ2=…=μc;pk(φc)表示第c類(lèi)數(shù)據(jù)占客戶(hù)端所有數(shù)據(jù)的比例。如圖3所示,μ越小,每個(gè)客戶(hù)端數(shù)據(jù)分布的non-IID 水平越高;否則,客戶(hù)端的數(shù)據(jù)分布傾向于IID 設(shè)置。 圖3 不同μ 時(shí)的Dirichlet 數(shù)據(jù)分布Fig.3 Dirichlet data distribution with different μ 針對(duì)標(biāo)簽在服務(wù)器場(chǎng)景,將本文所提出的FedMix-FedLoss 方法與FedMatch 方法[10]在2 個(gè)數(shù)據(jù)集的3 個(gè)不同任務(wù)上進(jìn)行比較。對(duì)于2 個(gè)真實(shí)世界的數(shù)據(jù)集(即CIFAR-10 和Fashion-MNIST),實(shí)驗(yàn)在配置為Intel?CoreTMi9-9900K CPU @3.60 GHz 和NVIDIA GeForce RTX 2080Ti GPU 的本地計(jì)算機(jī)(1 臺(tái)服務(wù)器和K個(gè)客戶(hù)端)上模擬聯(lián)邦學(xué)習(xí)設(shè)置。 數(shù)據(jù)集1 為IID 和non-IID 的CIFAR-10。將CIFAR-10 數(shù)據(jù)集(包括56 000 個(gè)訓(xùn)練樣本和2 000 個(gè)測(cè)試樣本)分為IID 和non-IID 這2 種設(shè)置用作實(shí)驗(yàn)的驗(yàn)證數(shù)據(jù)集。訓(xùn)練集包括55 000 個(gè)無(wú)標(biāo)簽的樣本和1 000 個(gè)標(biāo)簽的樣本,分別分布在100 個(gè)客戶(hù)端和1 個(gè)服務(wù)器上。IID 設(shè)置每個(gè)客戶(hù)端有550 個(gè)樣本,即每個(gè)類(lèi)別有55 個(gè)樣本,總共10 個(gè)類(lèi)別。non-IID的設(shè)置引入了Dirchlet 分布函數(shù)來(lái)調(diào)整客戶(hù)端數(shù)據(jù)的non-IID 水平。對(duì)于所有的non-IID 實(shí)驗(yàn),均設(shè)置μ=0.1 用于模擬極端的non-IID 場(chǎng)景,即每個(gè)客戶(hù)端數(shù)據(jù)的數(shù)量和類(lèi)別都是不平衡的。1 000 個(gè)標(biāo)簽的樣本位于服務(wù)器上,其中每個(gè)類(lèi)別有100 個(gè)樣本。同時(shí),實(shí)驗(yàn)設(shè)置客戶(hù)端參與率F=5%,即在每一輪中服務(wù)器隨機(jī)選擇5 個(gè)客戶(hù)端進(jìn)行訓(xùn)練。 數(shù)據(jù)集2 為流式non-IID 的Fashion-MNIST。使用包括64 000 個(gè)訓(xùn)練樣本和2 000 個(gè)測(cè)試樣本的Fashion-MNIST 數(shù)據(jù)集作為驗(yàn)證數(shù)據(jù)集。訓(xùn)練集包括63 000 個(gè)無(wú)標(biāo)簽的樣本和1 000 個(gè)標(biāo)簽的樣本,其中前者不平衡地分布在10 個(gè)客戶(hù)端上,后者分布在服務(wù)器上。實(shí)驗(yàn)同樣引入Dirchlet分布函數(shù)且參數(shù)μ=0.1。每個(gè)客戶(hù)端的數(shù)據(jù)被平均分為10 份,每輪訓(xùn)練只使用其中的一份,訓(xùn)練10 輪為1 個(gè)周期。將此設(shè)置稱(chēng)為流式non-IID。同時(shí),實(shí)驗(yàn)設(shè)定客戶(hù)端參與率F=100%,即在每一輪中服務(wù)器選擇所有客戶(hù)端進(jìn)行訓(xùn)練。 本文使用FedMatch 基線(xiàn)方法,其使用客戶(hù)端間一致性損失和模型參數(shù)分解。在訓(xùn)練過(guò)程中,本文方法和基線(xiàn)方法均使用隨機(jī)梯度下降(Stochastic Gradient Descent,SGD)來(lái)優(yōu)化初始學(xué)習(xí)率為η=1e-3 的ResNet-9 神經(jīng)網(wǎng)絡(luò)。設(shè)置訓(xùn)練輪次t=150,在服務(wù)器上的標(biāo)簽樣本數(shù)為Ns=1 000,客戶(hù)端每輪的訓(xùn)練次數(shù)為Eclient=1,客戶(hù)端每輪的訓(xùn)批次為Bclient=64,服務(wù)器每輪的訓(xùn)練次數(shù)Eserver=1,服務(wù)器每輪的訓(xùn)批次為Bserver=64。在Sharpening 方法中,設(shè)置A=5 和置信度閾值τ=0.80。 基線(xiàn)方法包括:1)SL,全部標(biāo)簽數(shù)據(jù)在服務(wù)器端執(zhí)行監(jiān)督學(xué)習(xí),客戶(hù)端不參與訓(xùn)練;2)FedMatch,采用客戶(hù)端之間一致性損失的半監(jiān)督聯(lián)邦學(xué)習(xí)方法。本文方法包括:1)FedMix,無(wú)監(jiān)督模型、監(jiān)督模型以及上一輪的全局模型在相同權(quán)重設(shè)置下的半監(jiān)督聯(lián)邦學(xué)習(xí)方法,即α=β=λ=0.33;2)FedMix-FedAvg,在最優(yōu)模型權(quán)重設(shè)置下,結(jié)合半監(jiān)督聯(lián)邦學(xué)習(xí)系統(tǒng)框架與FedAvg 聚合規(guī)則的方法;3)FedMix-FedLoss,在最優(yōu)模型權(quán)重設(shè)置下,結(jié)合半監(jiān)督聯(lián)邦學(xué)習(xí)系統(tǒng)加FedLoss聚合規(guī)則的方法。由表1 可知:只使用標(biāo)簽數(shù)據(jù)的監(jiān)督學(xué)習(xí)模型的準(zhǔn)確率僅為19.3%,明顯低于半監(jiān)督聯(lián)邦學(xué)習(xí)的組合方法,并且在相同模型權(quán)重聚合下也低于不同權(quán)重的組合方法。 表1 不同方法的準(zhǔn)確率比較Table 1 Accuracy comparison of different methods % 本文對(duì)CIFAR-10 和Fashion-MNIST 數(shù)據(jù)集在IID和non-IID 設(shè)置下的性能進(jìn)行比較。圖4 給出了IID 和non-IID 設(shè)置下,不同組合方法的FedMix 和基線(xiàn)方法的準(zhǔn)確率對(duì)比。實(shí)驗(yàn)結(jié)果表明,本文FedMix 方法的性能均比基線(xiàn)方法好。例如,在IID 和non-IID 設(shè)置下,本文方法的最大收斂準(zhǔn)確率均比基線(xiàn)準(zhǔn)確率高約3 個(gè)百分點(diǎn)。這是由于本文全局模型為無(wú)監(jiān)督模型、監(jiān)督模型以及上一輪的全局模型三者最優(yōu)權(quán)重的聚合。但在non-IID 情況下,在模型訓(xùn)練的中期,出現(xiàn)了性能大幅波動(dòng)的現(xiàn)象。這是由于客戶(hù)端non-IID 設(shè)置影響了聚合的全局模型的性能。 圖4 IID 與non-IID 設(shè)置下不同方法的性能比較Fig.4 Performance comparison of different methods under IID and non-IID settings 圖5 給出了在IID 和non-IID 設(shè)置下FedMix-FedLoss 方法取不同權(quán)重值時(shí)的性能比較。從圖5(a)可以看出,當(dāng)這3 個(gè)參數(shù)在IID 設(shè)置下相對(duì)接近時(shí)更容易達(dá)到更好的性能。從圖5(b)可以看出,在non-IID 設(shè)置下,隨著α的減小,準(zhǔn)確率變得不穩(wěn)定,在α=0.5、β=0.3、γ=0.2 時(shí),F(xiàn)edMix-FedLoss 方法的性能最好。 圖5 IID 和non-IID 設(shè)置下FedMix-FedLoss 方法在不同權(quán)重時(shí)的性能比較Fig.5 Performance comparison of FedMix-FedLoss method with different weights under IID and non-IID settings 圖6 給出了FedMix-FedLoss 方法在CIFAR-10 數(shù)據(jù)集上及在不同non-IID 設(shè)置下的性能比較。在此實(shí)驗(yàn)中,μ=0.1 表示客戶(hù)端數(shù)據(jù)的最高non-IID 水平。隨著μ值增加,本地客戶(hù)端數(shù)據(jù)分布將更接近IID 設(shè)置。從實(shí)驗(yàn)結(jié)果可以看出,對(duì)于不同的non-IID設(shè)置,F(xiàn)edMix-FedLoss 方法均可以達(dá)到穩(wěn)定的準(zhǔn)確率且模型收斂準(zhǔn)確率相差不超過(guò)1 個(gè)百分點(diǎn)。因此,F(xiàn)edMix-FedLoss方法對(duì)不同non-IID 設(shè)置的客戶(hù)端數(shù)據(jù)分布不敏感,即對(duì)不同設(shè)置的數(shù)據(jù)分布具有魯棒性。 圖6 不同non-IID 設(shè)置下FedMix-FedLoss 方法的性能比較Fig.6 Performance comparison of FedMix-FedLoss method under different non-IID l settings 圖7 給出了在服務(wù)器端使用不同數(shù)量的標(biāo)簽樣本時(shí),F(xiàn)edMix-FedLos 方法的準(zhǔn)確率比較結(jié)果。由圖7 可以看出,F(xiàn)edMix-FedLos 方法在800 個(gè)標(biāo)簽的樣本設(shè)置下,在訓(xùn)練輪次為150 時(shí)的收斂準(zhǔn)確率為47%,相比FedMatch 方法使用1 000 個(gè)標(biāo)簽樣本時(shí)的最大收斂準(zhǔn)確率高出2個(gè)百分點(diǎn)。但是當(dāng)標(biāo)簽樣本數(shù)減少到700個(gè)時(shí),F(xiàn)edMix-FedLos 方法的準(zhǔn)確率會(huì)大幅下降。 圖8 給出了Fashion-MNIST 數(shù)據(jù)集流式non-IID設(shè)置下不同方法的性能比較。從圖8 可以看出,本文方法的最高收斂準(zhǔn)確率與基線(xiàn)方法基本相同,并且快于基線(xiàn)方法10 輪達(dá)到最高收斂準(zhǔn)確率,同時(shí)減少了一半的通信開(kāi)銷(xiāo)。 圖8 Fashion-MNIST 數(shù)據(jù)集流式non-IID 設(shè)置下不同方法的性能比較Fig.8 Performance comparison of different methods under streaming non-IID settings on Fashion-MNIST dataset 本文針對(duì)SSFL 中標(biāo)簽數(shù)據(jù)位于服務(wù)器上的場(chǎng)景,設(shè)計(jì)魯棒的SSFL 系統(tǒng)。使用FedMix 方法實(shí)現(xiàn)高精度半監(jiān)督聯(lián)邦學(xué)習(xí),解決了FL 系統(tǒng)中缺少標(biāo)簽數(shù)據(jù)的問(wèn)題。采用基于客戶(hù)端訓(xùn)練模型損失值的FedLoss 聚合方法,實(shí)現(xiàn)SSFL 系統(tǒng)在不同non-IID 設(shè)置下的穩(wěn)定收斂。實(shí)驗(yàn)結(jié)果表明,在使用少量標(biāo)簽數(shù)據(jù)的情況下,本文SSFL 系統(tǒng)的性能明顯優(yōu)于主流的聯(lián)邦學(xué)習(xí)系統(tǒng)。下一步將通過(guò)半監(jiān)督學(xué)習(xí)算法改進(jìn)無(wú)監(jiān)督模型的訓(xùn)練方法,高效利用無(wú)標(biāo)簽數(shù)據(jù)提升全局模型性能。4.2 FedLoss 聚合方法
4.3 Dirchlet 數(shù)據(jù)分布函數(shù)
5 實(shí)驗(yàn)驗(yàn)證
5.1 實(shí)驗(yàn)設(shè)置
5.2 實(shí)驗(yàn)結(jié)果
6 結(jié)束語(yǔ)