本發(fā)明屬于信息安全,涉及一種個性化聯(lián)邦學(xué)習(xí)方法、設(shè)備及產(chǎn)品,具體涉及一種基于知識蒸餾的準(zhǔn)確高效個性化聯(lián)邦學(xué)習(xí)方法、設(shè)備及產(chǎn)品。
背景技術(shù):
1、聯(lián)邦學(xué)習(xí)是目前最有前途的分布式學(xué)習(xí)框架之一,它允許多個客戶端在中央服務(wù)器的協(xié)調(diào)下協(xié)作訓(xùn)練全局模型。主要目標(biāo)是為客戶端的本地數(shù)據(jù)提供隱私保護(hù),并解決“數(shù)據(jù)孤島”問題。其應(yīng)用涉及金融、醫(yī)療保健和制造業(yè)等行業(yè)。然而,從所有客戶端訓(xùn)練的單一全局模型可能無法滿足那些任務(wù)或數(shù)據(jù)分布明顯偏離其余部分的客戶端。因此,采用個性化模型似乎在聯(lián)邦學(xué)習(xí)中有效的解決方案,即個性化聯(lián)邦學(xué)習(xí)。然而,最近關(guān)于個性化聯(lián)邦學(xué)習(xí)的工作不可避免地必須在模型結(jié)構(gòu)和大小上相同,以聚合來自所有客戶端的參數(shù)。在實(shí)際場景中,客戶通常更喜歡使用定制的模型體系結(jié)構(gòu)(即,不同的結(jié)構(gòu)和大小)來適應(yīng)計(jì)算、通信和存儲能力等方面的異構(gòu)性。
2、一種很有前途的方法是利用知識蒸餾通過交換軟預(yù)測來轉(zhuǎn)移知識,而不是使用模型參數(shù)。因此,研究了基于知識蒸餾的個性化聯(lián)邦學(xué)習(xí)方法用于異構(gòu)模型的協(xié)同訓(xùn)練。不幸的是,基于知識蒸餾的個性化聯(lián)邦學(xué)習(xí)面臨三個主要挑戰(zhàn):第一、由于客戶端的分布式性質(zhì),不同客戶端的數(shù)據(jù)通常是非獨(dú)立同分布的,這導(dǎo)致準(zhǔn)確率低和巨大的訓(xùn)練開銷(即訓(xùn)練時間和通信開銷);第二,傳統(tǒng)知識蒸餾的蒸餾溫度是固定的,沒有考慮模型訓(xùn)練過程的動態(tài);第三,簡單知識蒸餾的知識來源單一,可能會忽略額外的有益信息,導(dǎo)致模型性能較差。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明針對現(xiàn)有技術(shù)不足,提供了一種基于知識蒸餾的準(zhǔn)確高效個性化聯(lián)邦學(xué)習(xí)方法、設(shè)備及產(chǎn)品,提高了模型的準(zhǔn)確性,加速了模型的訓(xùn)練,減少了通信開銷。
2、本發(fā)明的方法采用的技術(shù)方案是:一種基于知識蒸餾的高效個性化聯(lián)邦學(xué)習(xí)方法,涉及實(shí)體包括一個服務(wù)器和n個客戶端;包括以下步驟:
3、步驟1:所述服務(wù)器利用基于歐式距離客戶端聚類算法將具有相似數(shù)據(jù)分布的客戶端進(jìn)行聚類;
4、步驟2:每個客戶端i使用其私有數(shù)據(jù)集di訓(xùn)練一個本地模型,并基于動態(tài)溫度調(diào)整在公共數(shù)據(jù)集d0上完成本地模型性能評估,評估結(jié)果作為軟預(yù)測結(jié)果上傳給服務(wù)器,表示客戶端i第r輪軟預(yù)測值;
5、步驟3:服務(wù)器聚合本地軟預(yù)測結(jié)果并將聚合結(jié)果分發(fā)給所有客戶端;
6、步驟4:每個客戶端i根據(jù)全局聚合結(jié)果利用三重動態(tài)蒸餾策略完成本地模型更新及開啟新一輪本地模型訓(xùn)練。
7、作為優(yōu)選,步驟1的具體實(shí)現(xiàn)包括以下子步驟:
8、步驟1.1:隨機(jī)選擇一個客戶端z∈[n];
9、步驟1.2:計(jì)算客戶端z與其他客戶端數(shù)據(jù)分布之間的歐式距離[e(r1,rz),e(r2,rz),…,e(rn,rz)],其中ri表示客戶端i∈[n]的數(shù)據(jù)分布,e(ri,rj)表示客戶端i與客戶端j數(shù)據(jù)分布之間歐式距離,并將結(jié)果上傳至服務(wù)器;
10、步驟1.3:服務(wù)器基于k-means聚類算法,將具有相似數(shù)據(jù)分布的客戶端進(jìn)行聚類,并將結(jié)果廣播給所有客戶端。
11、作為優(yōu)選,步驟2的具體實(shí)現(xiàn)包括以下子步驟:
12、步驟2.1:客戶端i∈[n]在本地私有數(shù)據(jù)集di上訓(xùn)練本地模型wi;
13、計(jì)算其中η1表示學(xué)習(xí)率;其中表示衡量私有數(shù)據(jù)集上預(yù)測結(jié)果與真實(shí)標(biāo)簽之間差異的交叉熵?fù)p失函數(shù);每個客戶端i∈[n]存儲有大小為ni本地私有數(shù)據(jù)集xi表示第i個數(shù)據(jù)樣本,yi∈{1,2,…,c}表示xi的標(biāo)簽,c表示數(shù)據(jù)集中類別總數(shù);全局?jǐn)?shù)據(jù)集d通過將所有的本地數(shù)據(jù)集di連接形成,是全局?jǐn)?shù)據(jù)集的大小;
14、步驟2.2:客戶端i∈[n]在公共數(shù)據(jù)集d0上完成模型性能評估,輸出模型最后一層計(jì)算結(jié)果其中表示模型最后一層在第c類別的計(jì)算結(jié)果,并計(jì)算軟預(yù)測值其中tr表示第r輪的蒸餾溫度,x表示從公共數(shù)據(jù)集d0上采集的數(shù)據(jù)樣本;tr計(jì)算表達(dá)式如下:其中k1,k2,r0為動態(tài)溫度調(diào)整的超參數(shù);t0為初始蒸餾溫度設(shè)置。
15、作為優(yōu)選,步驟3中,所述服務(wù)器得到每個客戶端上傳的軟預(yù)測結(jié)果,之后根據(jù)客戶端聚類結(jié)果完成全局聚合,計(jì)算其中|v|表示在聚類v中客戶端總數(shù),nv表示聚類v中數(shù)據(jù)集大小;全局?jǐn)?shù)據(jù)集d通過將所有的大小為ni的本地數(shù)據(jù)集di連接形成,是全局?jǐn)?shù)據(jù)集的大小。
16、作為優(yōu)選,步驟4的具體實(shí)現(xiàn)包括以下子步驟:
17、步驟4.1:每個客戶端i在第r輪訓(xùn)練中利用三重動態(tài)蒸餾策略提取三部分知識,即本地與全局蒸餾、本地與本地蒸餾、和全局與全局蒸餾;
18、每個客戶端i進(jìn)行本地與全局蒸餾,計(jì)算本地第r輪軟預(yù)測和全局聚合第r輪軟預(yù)測結(jié)果sr的kl散度得到蒸餾損失,即tr表示第r輪的蒸餾溫度;
19、每個客戶端i進(jìn)行本地與本地蒸餾,計(jì)算先前某一輪1≤b≤r-1最優(yōu)軟預(yù)測和本地第r輪軟預(yù)測的kl散度得到蒸餾損失,即如果第r輪的模型性能優(yōu)于之前最優(yōu)模型性能,則進(jìn)行替換;
20、每個客戶端i進(jìn)行全局與全局蒸餾,計(jì)算先前輪數(shù)1≤b≤r-1全局軟預(yù)測平均值和全局聚合第r輪軟預(yù)測sr的kl散度得到蒸餾損失,即并且更新全局軟預(yù)測平均值;
21、步驟4.2:利用四種知識進(jìn)行本地模型更新;損失函數(shù)由帶有公共數(shù)據(jù)集標(biāo)簽的損失局部到全局的蒸餾損失局部到局部的蒸餾損失和全局到全局的蒸餾損失組成,即其中α1,α2,α3,α4表示相應(yīng)損失值的權(quán)重超參數(shù);表示衡量私有數(shù)據(jù)集上預(yù)測結(jié)果與真實(shí)標(biāo)簽之間差異的交叉熵?fù)p失函數(shù);
22、步驟4.3:每個客戶端i基于獲得的知識,通過應(yīng)用梯度下降步驟完成本地更新:其中η2表示學(xué)習(xí)率;之后開啟新一輪的本地模型訓(xùn)練;當(dāng)訓(xùn)練輪數(shù)達(dá)到預(yù)設(shè)值時,個性化聯(lián)邦學(xué)習(xí)任務(wù)完成。
23、本發(fā)明的設(shè)備采用的技術(shù)方案是:一種基于知識蒸餾的高效個性化聯(lián)邦學(xué)習(xí)設(shè)備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時實(shí)現(xiàn)所述基于知識蒸餾的高效個性化聯(lián)邦學(xué)習(xí)方法。
24、本發(fā)明的存儲介質(zhì)采用的技術(shù)方案是:一種非暫態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時實(shí)現(xiàn)所述基于知識蒸餾的高效個性化聯(lián)邦學(xué)習(xí)方法。
25、本發(fā)明的產(chǎn)品采用的技術(shù)方案是:一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時實(shí)現(xiàn)所述基于知識蒸餾的高效個性化聯(lián)邦學(xué)習(xí)方法。
26、相對于現(xiàn)有技術(shù),本發(fā)明的有益效果包括:
27、(1)本發(fā)明通過設(shè)計(jì)一個基于歐氏距離的客戶端聚類方法來減輕非獨(dú)立同分布數(shù)據(jù)的不利影響。
28、(2)本發(fā)明還提出了動態(tài)蒸餾溫度調(diào)節(jié)以適應(yīng)動態(tài)個性化聯(lián)邦學(xué)習(xí)過程,采用三重蒸餾策略來提供豐富的多源知識。本發(fā)明提高了模型的準(zhǔn)確性,加速了模型的訓(xùn)練,減少了通信開銷。這為實(shí)際場景中基于知識蒸餾的個性化聯(lián)邦學(xué)習(xí)部署提供了一種可能的解決方案。
1.一種基于知識蒸餾的高效個性化聯(lián)邦學(xué)習(xí)方法,涉及實(shí)體包括一個服務(wù)器和n個客戶端;其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的基于知識蒸餾的高效個性化聯(lián)邦學(xué)習(xí)方法,其特征在于,步驟1的具體實(shí)現(xiàn)包括以下子步驟:
3.根據(jù)權(quán)利要求1所述的基于知識蒸餾的高效個性化聯(lián)邦學(xué)習(xí)方法,其特征在于,步驟2的具體實(shí)現(xiàn)包括以下子步驟:
4.根據(jù)權(quán)利要求1所述的基于知識蒸餾的高效個性化聯(lián)邦學(xué)習(xí)方法,其特征在于:步驟3中,所述服務(wù)器得到每個客戶端上傳的軟預(yù)測結(jié)果,之后根據(jù)客戶端聚類結(jié)果完成全局聚合,計(jì)算其中|v|表示在聚類v中客戶端總數(shù),nv表示聚類v中數(shù)據(jù)集大??;全局?jǐn)?shù)據(jù)集d通過將所有的大小為ni的本地數(shù)據(jù)集di連接形成,是全局?jǐn)?shù)據(jù)集的大小。
5.根據(jù)權(quán)利要求1所述的基于知識蒸餾的高效個性化聯(lián)邦學(xué)習(xí)方法,其特征在于,步驟4的具體實(shí)現(xiàn)包括以下子步驟:
6.一種基于知識蒸餾的高效個性化聯(lián)邦學(xué)習(xí)設(shè)備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,其特征在于,所述處理器執(zhí)行所述程序時實(shí)現(xiàn)如權(quán)利要求1至5任一項(xiàng)所述基于知識蒸餾的高效個性化聯(lián)邦學(xué)習(xí)方法。
7.一種非暫態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時實(shí)現(xiàn)如權(quán)利要求1至5任一項(xiàng)所述基于知識蒸餾的高效個性化聯(lián)邦學(xué)習(xí)方法。
8.一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時實(shí)現(xiàn)如權(quán)利要求1至5任一項(xiàng)所述基于知識蒸餾的高效個性化聯(lián)邦學(xué)習(xí)方法。