王捍貧, 范耀榕
(廣州大學(xué) 計(jì)算機(jī)科學(xué)與網(wǎng)絡(luò)工程學(xué)院, 廣東 廣州 510006)
目前,深度學(xué)習(xí)技術(shù)在各個(gè)領(lǐng)域發(fā)展迅速,這離不開(kāi)數(shù)據(jù)和算力的爆發(fā)。深度學(xué)習(xí)模型的準(zhǔn)確度依賴于數(shù)據(jù)量,由于隱私問(wèn)題不斷出現(xiàn),人們逐漸重視數(shù)據(jù)的隱私安全,與此同時(shí),政府也頒布隱私保護(hù)法律法規(guī)(如:GDPR[1]、《中華人民共和國(guó)網(wǎng)絡(luò)安全法》[2]等)進(jìn)一步保護(hù)用戶數(shù)據(jù)安全,導(dǎo)致數(shù)據(jù)不斷分散出現(xiàn)“數(shù)據(jù)孤島”現(xiàn)象,從而無(wú)法聚集數(shù)據(jù)來(lái)訓(xùn)練高精度模型。
對(duì)此,Google 于2016年提出聯(lián)邦學(xué)習(xí)(Federated Learning, FL)理論[3]。在FL系統(tǒng)中,參與者通過(guò)在自己的私有本地?cái)?shù)據(jù)上執(zhí)行本地訓(xùn)練算法,并僅與中心服務(wù)器共享模型參數(shù),此中心服務(wù)器用作中央聚合器,以適當(dāng)方式聚合本地參數(shù)更新后與每個(gè)參與者共享聚合的更新。然而參與者與中心服務(wù)器之間存在高頻通信及長(zhǎng)傳輸延遲,這導(dǎo)致FL不得不面對(duì)通信效率問(wèn)題[4]。
根據(jù)應(yīng)用場(chǎng)景的不同,聯(lián)邦學(xué)習(xí)可分為跨設(shè)備聯(lián)邦學(xué)習(xí)(Cross-device federated learning)和跨數(shù)據(jù)庫(kù)聯(lián)邦學(xué)習(xí)(Cross-silo federated learning)[5]。聯(lián)邦學(xué)習(xí)的通信拓?fù)鋱D一般為星形拓?fù)?,?duì)于跨設(shè)備聯(lián)邦學(xué)習(xí)而言,參與訓(xùn)練的客戶端為數(shù)量龐大的IoT設(shè)備或者移動(dòng)設(shè)備,并且具有本地?cái)?shù)據(jù)量少、通信不穩(wěn)定和客戶端間不互信的特性,這往往會(huì)對(duì)中心服務(wù)器的通信造成巨大的壓力。對(duì)此,最近的研究提出了分層聯(lián)邦學(xué)習(xí)框架(Hierarchical Federated Learning, HFL)[6-7],在客戶端-中心服務(wù)器的結(jié)構(gòu)中加入邊緣服務(wù)器,形成客戶端-邊緣服務(wù)器-中心服務(wù)器結(jié)構(gòu),在訓(xùn)練過(guò)程中相鄰的客戶端將模型發(fā)送到近端邊緣服務(wù)器進(jìn)行聚合,然后由邊緣服務(wù)器發(fā)送局部聚合模型到中心服務(wù)器進(jìn)行最終聚合,從而減少中心服務(wù)器的通信壓力。目前的HFL主要是利用物理層的中間設(shè)備充當(dāng)邊緣服務(wù)器,如Mehdi等[8]利用物理層面的小型蜂窩基站(Small-cell Base Station, SBS)來(lái)充當(dāng)邊緣服務(wù)器,大型基站(Macro-cell Base Station, MBS)作為中心服務(wù)器,構(gòu)建分層聯(lián)邦學(xué)習(xí)訓(xùn)練架構(gòu),移動(dòng)用戶將與最近的SBS進(jìn)行通信形成局部交流結(jié)構(gòu),SBS聚合模型后再與MBS通信從而減少M(fèi)BS的通信量。而在跨數(shù)據(jù)庫(kù)聯(lián)邦學(xué)習(xí)的場(chǎng)景中,其客戶端數(shù)量通常在100個(gè)以內(nèi),每個(gè)客戶端具有數(shù)據(jù)量大、通信可靠、計(jì)算資源豐富和客戶端間不互信等特性,并且都參與每個(gè)輪次的訓(xùn)練。以往的HFL在該場(chǎng)景下反而可能會(huì)由于額外增加的邊緣服務(wù)器聚合操作造成通信效率下降[6-8]。
本文關(guān)注在跨數(shù)據(jù)庫(kù)聯(lián)邦學(xué)習(xí)環(huán)境下客戶端與服務(wù)器之間的通信效率問(wèn)題。在該場(chǎng)景下,客戶端內(nèi)部通常擁有多個(gè)本地計(jì)算資源,如高性能計(jì)算機(jī),且本地的內(nèi)部通信相對(duì)于外部網(wǎng)絡(luò)WAN而言具有速度更快、更可靠和可信任的優(yōu)點(diǎn)。傳統(tǒng)的聯(lián)邦學(xué)習(xí)框架在該場(chǎng)景下,客戶端上僅利用部分計(jì)算能力訓(xùn)練模型,并不能夠充分地利用其計(jì)算資源訓(xùn)練模型。而HFL的結(jié)構(gòu)則根據(jù)跨數(shù)據(jù)庫(kù)聯(lián)邦學(xué)習(xí)內(nèi)部通信的特性與優(yōu)點(diǎn),可以很好地利用客戶端本地的計(jì)算資源,通過(guò)客戶端將本地的多個(gè)計(jì)算資源生成多個(gè)節(jié)點(diǎn)參與到全局聯(lián)邦學(xué)習(xí)的訓(xùn)練中,形成本地節(jié)點(diǎn)-客戶端-中心服務(wù)器的多級(jí)分層聯(lián)邦學(xué)習(xí)結(jié)構(gòu),有效地利用跨數(shù)據(jù)庫(kù)聯(lián)邦學(xué)習(xí)的計(jì)算資源來(lái)加快訓(xùn)練速度,從而提高通信效率。
此外,雖然FL允許參與者將其原始數(shù)據(jù)保存在本地,為客戶端的數(shù)據(jù)隱私提供了保護(hù),但最近的工作表明,它不足以保護(hù)本地訓(xùn)練數(shù)據(jù)的隱私免受成員推理攻擊[9]、屬性推理攻擊[10],訓(xùn)練過(guò)程中交換的模型參數(shù)與梯度更新仍然是重點(diǎn)攻擊目標(biāo)[10-11]。Gei等[11]通過(guò)余弦相似性和對(duì)抗攻擊策略從梯度信息中恢復(fù)訓(xùn)練時(shí)輸入一批圖像,并證明從梯度中重建輸入圖像與模型的深度架構(gòu)無(wú)關(guān)。
與傳統(tǒng)架構(gòu)一樣,HFL架構(gòu)中傳輸?shù)哪P蛥?shù)或梯度仍面臨著潛在的隱私泄露風(fēng)險(xiǎn),不足以保護(hù)訓(xùn)練數(shù)據(jù)的隱私免受推理攻擊及數(shù)據(jù)重構(gòu)攻擊。為保護(hù)FL系統(tǒng)免受這些隱私攻擊,目前已有學(xué)者提出解決方案,如Abadi等[12]在神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練過(guò)程中添加差分隱私噪聲來(lái)消除訓(xùn)練數(shù)據(jù)的隱私,后續(xù)的工作在此基礎(chǔ)上進(jìn)行適應(yīng)改造,將該方法移植到聯(lián)邦學(xué)習(xí)系統(tǒng)中,如Truex等[13]提出LDP-Fed,用于實(shí)現(xiàn)客戶端能自主定義本地差分隱私預(yù)算,在客戶端上傳模型時(shí)添加隱私噪聲,實(shí)現(xiàn)相對(duì)于中心式差分隱私更為優(yōu)秀的隱私保護(hù)功能。Lu等[14]提出了一種在HFL場(chǎng)景中應(yīng)用差分隱私的隱私保護(hù)方案HFL-DP,在客戶端上傳模型時(shí),添加滿足局部差分隱私的噪聲進(jìn)行擾動(dòng),并且采用Abadi的時(shí)刻記賬方式來(lái)跟蹤累計(jì)的隱私損失。又如Moreau等[15]將Abadi的方法應(yīng)用至跨數(shù)據(jù)庫(kù)聯(lián)邦學(xué)習(xí)中,并提出了一種混合策略,即客戶端根據(jù)本地?cái)?shù)據(jù)量選擇固定或自適應(yīng)的隱私預(yù)算策略。然而差分隱私方案會(huì)帶來(lái)噪聲,隨著噪聲變大模型精度也逐漸降低,從而導(dǎo)致模型難以收斂[4]。另外一個(gè)方向?yàn)椴捎冒踩喾接?jì)算來(lái)進(jìn)行隱私保護(hù),Bonawitz等[16]提出了一種FL的安全聚合方法,通過(guò)使用偽隨機(jī)數(shù)、Shamir的秘密共享[17]和對(duì)稱(chēng)加密來(lái)禁止服務(wù)器直接訪問(wèn)客戶端模型。然而該方法需要可信服務(wù)器,并且需要較高的通信代價(jià)。更進(jìn)一步,David等[18]基于Bonawitz等人的工作,將差分隱私與安全多方計(jì)算結(jié)合,用于聯(lián)邦學(xué)習(xí)的安全訓(xùn)練過(guò)程,即客戶端向訓(xùn)練好的模型參數(shù)添加差分隱私噪聲以及基于加密原語(yǔ)生成的隨機(jī)數(shù),在中心服務(wù)器進(jìn)行聚合操作時(shí),對(duì)加密模型進(jìn)行聚合,即可將隨機(jī)數(shù)消除得到聚合模型。但是該方法依舊向模型添加了額外的差分隱私噪聲。Duan等[19]提出了一種采用秘密共享策略的深度模型隱私保護(hù)方法,各個(gè)客戶端將本地模型的梯度更新進(jìn)行秘密共享,由中心服務(wù)器聚合秘密,從而得到梯度聚合結(jié)果。然而,該方案并未處理客戶端掉線問(wèn)題。目前的隱私保護(hù)方案中,采用安全多方計(jì)算的方案并不會(huì)在訓(xùn)練過(guò)程中額外添加噪聲,相比于差分隱私方案其能夠得到準(zhǔn)確的模型,但是也存在相應(yīng)的缺點(diǎn),如需要較高的通信代價(jià),需要依賴可信服務(wù)器與沒(méi)有處理客戶端掉線情況等。因此,設(shè)計(jì)一種高效且保護(hù)隱私的FL方案,以防止數(shù)據(jù)的隱私泄露至關(guān)重要。
在對(duì)模型精度要求更高的需求下,安全多方計(jì)算方案能更好地發(fā)揮數(shù)據(jù)的價(jià)值。秘密共享作為安全多方計(jì)算中應(yīng)用場(chǎng)景較為廣泛的方法,相比于其他安全多方計(jì)算方法而言算法實(shí)現(xiàn)更為簡(jiǎn)單,且在聯(lián)邦學(xué)習(xí)系統(tǒng)中產(chǎn)生的代價(jià)相對(duì)較小[20],故而本文采用秘密共享方法進(jìn)行保護(hù)跨數(shù)據(jù)庫(kù)聯(lián)邦學(xué)習(xí)中的數(shù)據(jù)隱私安全,通過(guò)優(yōu)化加密過(guò)程來(lái)減少秘密共享所產(chǎn)生的通信代價(jià)。
因此,針對(duì)跨數(shù)據(jù)庫(kù)聯(lián)邦學(xué)習(xí)的通信效率問(wèn)題,以及目前聯(lián)邦學(xué)習(xí)隱私保護(hù)方案中存在的問(wèn)題,本文提出了一種基于秘密共享的本地多節(jié)點(diǎn)聯(lián)邦學(xué)習(xí)算法Mask-FL。本文假設(shè)用戶數(shù)據(jù)分布在不同的客戶端上,例如電商平臺(tái)、銀行或金融機(jī)構(gòu),它們擁有大量不同的用戶數(shù)據(jù)。每個(gè)客戶端將生成多個(gè)本地節(jié)點(diǎn),然后將用戶數(shù)據(jù)劃分成多份分布在本地節(jié)點(diǎn)上,每個(gè)客戶端進(jìn)行本地訓(xùn)練時(shí),由本地節(jié)點(diǎn)采用劃分的數(shù)據(jù)訓(xùn)練模型。在訓(xùn)練過(guò)程中通過(guò)秘密共享方式解決模型上行傳輸?shù)碾[私泄露問(wèn)題。實(shí)驗(yàn)結(jié)果表明,該算法在保護(hù)隱私的同時(shí)具有較高的通信效率。本文的主要工作如下:
(1)提出本地多節(jié)點(diǎn)跨數(shù)據(jù)庫(kù)聯(lián)邦學(xué)習(xí)框架。在客戶端-服務(wù)器的結(jié)構(gòu)上加入本地多節(jié)點(diǎn)結(jié)構(gòu),每個(gè)客戶端根據(jù)自身的計(jì)算資源能力生成多個(gè)本地節(jié)點(diǎn),并將本地?cái)?shù)據(jù)進(jìn)行切分后設(shè)置在各個(gè)本地節(jié)點(diǎn)上,每個(gè)本地節(jié)點(diǎn)并行參與到全局聯(lián)邦訓(xùn)練。針對(duì)節(jié)點(diǎn)的數(shù)據(jù)量分配問(wèn)題,設(shè)計(jì)了一種基于計(jì)算能力的數(shù)據(jù)切分算法,客戶端根據(jù)各節(jié)點(diǎn)計(jì)算能力進(jìn)行數(shù)據(jù)切分,以減小數(shù)據(jù)量不平衡帶來(lái)的影響。
(2)提出基于秘密共享的自適應(yīng)掩碼加密協(xié)議。在本地多節(jié)點(diǎn)跨數(shù)據(jù)庫(kù)聯(lián)邦學(xué)習(xí)框架的基礎(chǔ)中,通過(guò)秘密共享的方式得到可復(fù)用的安全自適應(yīng)參數(shù)掩碼,客戶端通過(guò)對(duì)模型添加掩碼以保護(hù)模型參數(shù)安全后,再發(fā)送至服務(wù)器進(jìn)行聚合。在誠(chéng)實(shí)且好奇的安全設(shè)置下,證明了本協(xié)議能夠?qū)箒?lái)自客戶端與服務(wù)器的威脅。
(3)將Mask-FL算法用于訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)模型過(guò)程,通過(guò)對(duì)Mask-FL的各個(gè)參數(shù)進(jìn)行獨(dú)立實(shí)驗(yàn),以及對(duì)比3種不同聯(lián)邦學(xué)習(xí)算法,證明了本文提出的Mask-FL在保護(hù)隱私的前提下能保持相對(duì)較高的準(zhǔn)確率,并且減少了全局通信輪次,有效地提高了聯(lián)邦學(xué)習(xí)模型訓(xùn)練速度。
聯(lián)邦學(xué)習(xí)提供了使用分布式數(shù)據(jù)訓(xùn)練機(jī)器學(xué)習(xí)模型的能力,參與實(shí)體之間無(wú)需共享原始數(shù)據(jù)。假設(shè)(D1,D2,…,Dn)是分布式數(shù)據(jù)集,分別分布在n個(gè)用戶(O1,O2,…,On)上,在聯(lián)邦學(xué)習(xí)中,每一個(gè)用戶都獨(dú)立擁有一個(gè)數(shù)據(jù)集,并且僅使用本地的數(shù)據(jù)獨(dú)立訓(xùn)練一個(gè)ML模型,而不對(duì)外部公開(kāi)本地?cái)?shù)據(jù)。每個(gè)用戶通過(guò)本地訓(xùn)練得到的模型參數(shù)被收集到服務(wù)器(一個(gè)中心實(shí)體/機(jī)構(gòu))中,該服務(wù)器聚合所有收集到的模型參數(shù)以生成全局模型。全局模型的精度Afed應(yīng)非常接近在服務(wù)器上使用所有數(shù)據(jù)集訓(xùn)練得到的模型精度Actr,這種關(guān)系可用公式(1)表示,其中,δ是一個(gè)非負(fù)實(shí)數(shù)[20]。
|Afed-Actr|<δ
(1)
標(biāo)準(zhǔn)的FL訓(xùn)練算法在多輪訓(xùn)練中進(jìn)行,典型的聯(lián)邦學(xué)習(xí)步驟如下:
(1)服務(wù)器初始模型,下發(fā)到各個(gè)客戶端;
(2)每個(gè)客戶端根據(jù)各自的數(shù)據(jù)訓(xùn)練本地模型;
(3)每個(gè)客戶端將其模型權(quán)重發(fā)送到受信服務(wù)器;
(4)服務(wù)器計(jì)算模型平均權(quán)重得到共享模型;
(5)服務(wù)器將共享模型返回給所有客戶端;
(6)客戶端從共享模型開(kāi)始,重新訓(xùn)練本地模型。
在提供高度準(zhǔn)確推斷的同時(shí),保護(hù)敏感用戶信息非常重要。例如輸入法提供商可以使用聯(lián)邦學(xué)習(xí)來(lái)提高客戶輸入推薦詞的精確度。各提供商不必采集客戶設(shè)備上的隱私輸入詞來(lái)訓(xùn)練自己的推薦算法,而是結(jié)合其模型創(chuàng)建共享的高頻詞推薦機(jī)制,無(wú)需共享其個(gè)別客戶的隱私輸入詞。然而,惡意方仍然有可能通過(guò)從訓(xùn)練模型的權(quán)重或參數(shù)中推斷出訓(xùn)練數(shù)據(jù)集的細(xì)節(jié)來(lái)潛在地?fù)p害個(gè)人用戶的隱私[9-11]。
安全多方計(jì)算理論是姚期智先生為解決一組互不信任的參與方在保護(hù)隱私信息,以及沒(méi)有可信第三方的前提下,協(xié)同計(jì)算問(wèn)題而提出的理論框架。目前,主要通過(guò)3種不同的框架來(lái)實(shí)現(xiàn):不經(jīng)意傳輸、秘密共享和閾值同態(tài)加密。不經(jīng)意傳輸協(xié)議和閾值同態(tài)加密方法都使用了秘密共享的思想[20]。
秘密共享(Secret Share, SS)是指通過(guò)將秘密值分割為隨機(jī)多份,并將其分發(fā)到不同方來(lái)隱藏秘密值的一種概念。每一方只能擁有一個(gè)通過(guò)共享得到的值,即秘密值的一小部分。根據(jù)不同場(chǎng)景,需要所有或者一定數(shù)量共享值才能重新構(gòu)造原始的秘密值[17]。圖1給出了如何使用秘密共享的簡(jiǎn)單示例。
圖1 秘密共享的簡(jiǎn)單示例
由圖1所知,2個(gè)數(shù)據(jù)源分別擁有數(shù)字X和Y,服務(wù)器想要知道X+Y之和,但對(duì)X和Y一無(wú)所知。該過(guò)程可以描述如下:首先,將原始數(shù)據(jù)分解為2個(gè)子部分,一個(gè)子部分在雙方之間交換,然后計(jì)算剩余子部分與另一方部分的和。最后,對(duì)計(jì)算結(jié)果進(jìn)行匯總,得到原問(wèn)題的解。在這個(gè)過(guò)程中,原始數(shù)據(jù)不會(huì)被公開(kāi),因此,可以在保護(hù)數(shù)據(jù)隱私的前提下完成求和運(yùn)算。
本章介紹本文提出的聯(lián)邦學(xué)習(xí)算法Mask-FL,主要分為3個(gè)部分,第一部分為本地多節(jié)點(diǎn)跨數(shù)據(jù)庫(kù)聯(lián)邦學(xué)習(xí)訓(xùn)練框架,第二部分為基于秘密共享的自適應(yīng)掩碼加密協(xié)議,第三部分為聯(lián)邦學(xué)習(xí)算法Mask-FL,將掩碼加密協(xié)議嵌入本地多節(jié)點(diǎn)跨數(shù)據(jù)庫(kù)聯(lián)邦學(xué)習(xí)訓(xùn)練框架,并進(jìn)行更為詳細(xì)全面的設(shè)計(jì)。
跨數(shù)據(jù)庫(kù)FL自然適合企業(yè)對(duì)企業(yè)(B2B)場(chǎng)景,其中每個(gè)數(shù)據(jù)庫(kù)可以是公司或組織,而跨設(shè)備FL對(duì)應(yīng)于企業(yè)對(duì)客戶(B2C)模式??缭O(shè)備FL通常涉及大量用戶,故通信成本可能是一個(gè)瓶頸,而跨數(shù)據(jù)庫(kù)FL只有幾個(gè)參與方(通常少于10個(gè)),因此,對(duì)于通信要求相對(duì)不大。本文基于跨數(shù)據(jù)庫(kù)設(shè)置FL,在這種情況下應(yīng)該考慮計(jì)算成本,因?yàn)樽鳛槠髽I(yè)的每一方都擁有比個(gè)人設(shè)備更為龐大的數(shù)據(jù),并且計(jì)算能力也比單一設(shè)備要強(qiáng),然而當(dāng)前的聯(lián)邦學(xué)習(xí)框架在數(shù)據(jù)庫(kù)節(jié)點(diǎn)上僅僅訓(xùn)練單一的模型,并不能夠充分地利用計(jì)算資源。雖然有分布式機(jī)器學(xué)習(xí)方法的輔助,但是在聯(lián)邦學(xué)習(xí)中仍存在缺陷,即不能夠直接進(jìn)行快速的訓(xùn)練,因此,本節(jié)主要為了解決在FL中充分利用客戶端的計(jì)算能力問(wèn)題,設(shè)計(jì)了新型的訓(xùn)練結(jié)構(gòu)框架LocalNodes-FL,以將數(shù)據(jù)和算力利用起來(lái),加快聯(lián)邦學(xué)習(xí)模型的訓(xùn)練,進(jìn)而減少訓(xùn)練過(guò)程中的通信開(kāi)銷(xiāo)。
考慮在FedAvg聯(lián)邦學(xué)習(xí)的框架上,通過(guò)改變其結(jié)構(gòu)來(lái)有效提高資源利用效率和通信效率??蚣苋鐖D2所示,結(jié)構(gòu)采用本地節(jié)點(diǎn)-客戶端-中心服務(wù)器的方式。通信過(guò)程存在于客戶端內(nèi)部、客戶端與客戶端、中心服務(wù)器與客戶端。本地節(jié)點(diǎn)由于是處于同一個(gè)數(shù)據(jù)庫(kù)客戶端環(huán)境下,網(wǎng)絡(luò)傳輸?shù)难舆t影響較小,其中的通信開(kāi)銷(xiāo)可忽略不計(jì)。而主要的通信開(kāi)銷(xiāo)產(chǎn)生于中心服務(wù)器與各個(gè)客戶端之間。
圖2 本地多節(jié)點(diǎn)跨數(shù)據(jù)庫(kù)聯(lián)邦學(xué)習(xí)示例
考慮n個(gè)客戶端參與訓(xùn)練的聯(lián)邦學(xué)習(xí),本地?cái)?shù)據(jù)集設(shè)為(D1,D2, …,Dn),各客戶端根據(jù)本地的m個(gè)計(jì)算資源能力生成m個(gè)本地節(jié)點(diǎn),將本地?cái)?shù)據(jù)劃分成m份并放置在本地節(jié)點(diǎn)上,有
(2)
在本地節(jié)點(diǎn)訓(xùn)練模型過(guò)程中,各個(gè)對(duì)等節(jié)點(diǎn)的訓(xùn)練是同步進(jìn)行的,那么在客戶端等待收集各個(gè)節(jié)點(diǎn)訓(xùn)練完成時(shí),最長(zhǎng)等待時(shí)間為本地節(jié)點(diǎn)中訓(xùn)練時(shí)間最長(zhǎng)的節(jié)點(diǎn)。而模型訓(xùn)練時(shí)間跟數(shù)據(jù)集大小成正比關(guān)系,跟節(jié)點(diǎn)計(jì)算能力成反比關(guān)系,因此,在數(shù)據(jù)劃分時(shí),為了能夠減少客戶端等待時(shí)間,本文設(shè)計(jì)了數(shù)據(jù)集切分算法——DataSplit,以讓本地各個(gè)節(jié)點(diǎn)訓(xùn)練時(shí)間相近,從而能夠提高整體的訓(xùn)練速度。偽代碼如算法1。
首先,客戶端確認(rèn)本地?fù)碛械挠?jì)算資源節(jié)點(diǎn)數(shù)量m,從中心服務(wù)器獲取初始化模型后,從本地?cái)?shù)據(jù)集中采樣m個(gè)batch大小為B的樣本數(shù)據(jù)分配到各個(gè)節(jié)點(diǎn)上,每個(gè)節(jié)點(diǎn)采用該batch進(jìn)行訓(xùn)練,記錄節(jié)點(diǎn)訓(xùn)練所需時(shí)間tj。所有節(jié)點(diǎn)訓(xùn)練完成后,得到各個(gè)節(jié)點(diǎn)訓(xùn)練所耗時(shí)間序列。計(jì)算節(jié)點(diǎn)計(jì)算能力系數(shù)
(3)
客戶端根據(jù)每個(gè)節(jié)點(diǎn)的計(jì)算能力系數(shù)進(jìn)行劃分?jǐn)?shù)據(jù)集
|Dj|=cj|D|
(4)
在進(jìn)行數(shù)據(jù)集劃分時(shí),各個(gè)節(jié)點(diǎn)所分配的數(shù)量為|Dj|,但是劃分的數(shù)據(jù)是從客戶端數(shù)據(jù)集中隨機(jī)采樣的,并且每個(gè)節(jié)點(diǎn)內(nèi)的樣本都不重復(fù)。
算法1 基于計(jì)算能力的數(shù)據(jù)切分算法———DataSplit輸入: 客戶端數(shù)據(jù)集D,計(jì)算資源節(jié)點(diǎn)集M,服務(wù)器下發(fā)模型w0輸出:節(jié)點(diǎn)數(shù)據(jù)集|Dj|1:Client executes:2: sample m batches from the dataset and dis-tribute them to each node3: for each node j∈M in parallel do4: w1←ClientUpdate(j,w0)5: Statistic time tj ∥統(tǒng)計(jì)訓(xùn)練時(shí)間6: End for7: calculate dataset rate of nodes:8: cj←t1tj*∑mk=1t1tk9: for each node j∈M do:10: |Dj|=cj|D|11: End for
在聯(lián)邦學(xué)習(xí)訓(xùn)練過(guò)程中,按照參與訓(xùn)練的主體劃分,存在著來(lái)自非誠(chéng)實(shí)服務(wù)器以及其他參與訓(xùn)練方的威脅,所以為了解決來(lái)自這些主體的威脅,本節(jié)在LocalNodes-FL框架上設(shè)計(jì)基于秘密共享的自適應(yīng)掩碼加密協(xié)議,加入了聯(lián)邦加權(quán)平均算法的思想。該協(xié)議用于一組固定的客戶端(P1,P2, …,Pn),還有一臺(tái)服務(wù)器S的深度神經(jīng)網(wǎng)絡(luò)交互訓(xùn)練。
安全假設(shè):①假設(shè)所有客戶端與服務(wù)器都采用安全的通道進(jìn)行通信,如TLS/SSL;②所有客戶端和中心服務(wù)器都是誠(chéng)實(shí)且好奇的[21],誠(chéng)實(shí)且好奇的定義如下:誠(chéng)實(shí)且好奇的客戶端和中心服務(wù)器會(huì)根據(jù)協(xié)議執(zhí)行相應(yīng)步驟,但是,它們也會(huì)嘗試推斷出其他客戶端的隱私數(shù)據(jù);③每個(gè)客戶端至少生成m(m≥2) 個(gè)節(jié)點(diǎn)參與聯(lián)邦學(xué)習(xí)過(guò)程。
為了向服務(wù)器隱藏每個(gè)客戶端的模型權(quán)重,協(xié)議采用安全多方計(jì)算技術(shù)中的秘密共享技術(shù),在該協(xié)議中,客戶端協(xié)同工作,以加密的方式向服務(wù)器發(fā)送各自的模型參數(shù)或者模型更新梯度。在模型從中心服務(wù)器下發(fā)到客戶端后,每個(gè)客戶端生成一個(gè)與模型參數(shù)形狀相等的掩碼Mask,例如對(duì)于一個(gè)具有10 M個(gè)參數(shù)的模型,那么也相應(yīng)生成一個(gè)10 M個(gè)參數(shù)的掩碼,即
shape(Mask)=shape(w)
(5)
由于模型參數(shù)與掩碼值可能相差過(guò)大,進(jìn)而會(huì)出現(xiàn)一種危機(jī):服務(wù)端接收到本地掩碼模型后,通過(guò)比對(duì)原始模型,判斷掩碼模型參數(shù)是否出現(xiàn)異常值,那么將異常值去掉突出部分得到原始模型參數(shù),某種程度上也會(huì)反映出本地真實(shí)模型,因此,本文提出自適應(yīng)的掩碼生成方案,將生成的掩碼值界限設(shè)置為[min(w), max(w)],使得模型值與掩碼值在同一范圍區(qū)間內(nèi),進(jìn)而消除掩碼與模型參數(shù)之間的差距,從而更好地防止服務(wù)器從客戶模型中推斷私人數(shù)據(jù)。模型掩碼采用偽隨機(jī)數(shù)發(fā)生器進(jìn)行生成:
Mask=PRG(a)z
(6)
其中,z代表PRG(·)的輸出維度(在本協(xié)議中,其維度等于模型的參數(shù)數(shù)量),PRG(·)是偽隨機(jī)數(shù)生成器,輸出空間限定為[min(w), max(w)],a為模型參數(shù)值。
協(xié)議如圖3所示,該圖為3個(gè)客戶端參與的掩碼交換過(guò)程。
圖3 三方參與掩碼加密協(xié)議過(guò)程
協(xié)議具體流程如下:
(1)節(jié)點(diǎn)生成掩碼
自適應(yīng)掩碼加密的目標(biāo)是保護(hù)單個(gè)客戶端的模型參數(shù),每個(gè)參與訓(xùn)練的節(jié)點(diǎn)按照式(6)生成本地掩碼。
(2)進(jìn)行秘密共享求和
每個(gè)客戶端的各個(gè)本地節(jié)點(diǎn)都生成本地掩碼后,進(jìn)行求和,即
(7)
得到客戶端掩碼和,每個(gè)客戶端對(duì)掩碼和執(zhí)行秘密共享協(xié)議,將Maski分別拆成n份Maski= {si,1,si,2, …,si,n},分發(fā)給n個(gè)客戶端??蛻舳耸盏礁鱾€(gè)客戶端發(fā)來(lái)的部分秘密后,對(duì)部分秘密進(jìn)行求和,即
(8)
得到部分秘密和,接著將其發(fā)送到中心服務(wù)器。
(3)服務(wù)器計(jì)算掩碼和
中心服務(wù)器接收來(lái)自各個(gè)客戶端發(fā)送的部分秘密和之后,計(jì)算掩碼和
(9)
(4)模型添加掩碼
節(jié)點(diǎn)在本地訓(xùn)練完模型后,向模型添加權(quán)值|Di,j|,其代表客戶端劃分到本地節(jié)點(diǎn)的數(shù)據(jù)集大小,再向模型w添加自適應(yīng)掩碼。即對(duì)模型參數(shù)w做如下處理:
(10)
然后客戶端將本地掩碼模型聚合:
(11)
將本地掩碼模型發(fā)送至中心服務(wù)器,|Di,j|為局部節(jié)點(diǎn)劃分到的數(shù)據(jù)集大小,并且客戶端發(fā)送|Di|至中心服務(wù)器。通過(guò)對(duì)模型參數(shù)添加自適應(yīng)掩碼,從而保護(hù)客戶端的訓(xùn)練模型參數(shù)在交互過(guò)程中不被泄露。
(5)模型解碼
中心服務(wù)器收到每個(gè)客戶端發(fā)來(lái)的掩碼模型和數(shù)據(jù)集值,然后執(zhí)行模型解碼:
(12)
(13)
(14)
(15)
(16)
得到聚合模型。
本文協(xié)議能夠讓客戶端在每次模型迭代中重用掩碼,因此,客戶端在協(xié)議開(kāi)始時(shí)只需要與服務(wù)器和其他客戶端進(jìn)行一次通信。在隨后的迭代中,每個(gè)客戶端只需與服務(wù)器通信,當(dāng)然,隨著訓(xùn)練的輪次增大,模型參數(shù)的最值區(qū)間改變,那么相應(yīng)的,掩碼值也應(yīng)更新,并且掩碼值定期更新能為系統(tǒng)帶來(lái)更高的安全性。
協(xié)議安全性分析:
本節(jié)證明了在誠(chéng)實(shí)且好奇的客戶端和中心服務(wù)器參與攻擊下,本協(xié)議是安全的。
定理1(抵御服務(wù)器攻擊) 服務(wù)器不能推斷出節(jié)點(diǎn)的模型參數(shù)。
證明在上述聯(lián)邦學(xué)習(xí)訓(xùn)練過(guò)程中,服務(wù)器可以獲得客戶端上傳的加權(quán)聚合掩碼模型。假設(shè)服務(wù)器可以推斷出wi,j,那么服務(wù)器需要推斷出節(jié)點(diǎn)的參數(shù)掩碼和權(quán)值。首先,推斷出基于a的偽隨機(jī)數(shù)生成的掩碼Maski,j,a是節(jié)點(diǎn)的參數(shù),服務(wù)器需要與節(jié)點(diǎn)進(jìn)行相互串謀才能獲取a,這與該攻擊方式相矛盾。故而服務(wù)器無(wú)法推斷出節(jié)點(diǎn)的模型掩碼Maski,j;其次,服務(wù)器破解權(quán)值|Di,j|,由于假設(shè)③,|Di,j|≠|(zhì)Di|,則需要推斷出客戶端給該節(jié)點(diǎn)分配的數(shù)據(jù)量,而客戶端在本地內(nèi)進(jìn)行切分的方法是根據(jù)節(jié)點(diǎn)的計(jì)算能力進(jìn)行分配的,服務(wù)器需要與客戶端進(jìn)行合謀才能破解,節(jié)點(diǎn)是屬于客戶端的,這與該攻擊方式相矛盾,因此,服務(wù)器無(wú)法推斷出節(jié)點(diǎn)的權(quán)值|Di,j|。
綜上所述,在中心服務(wù)器攻擊中,服務(wù)器無(wú)法推斷出節(jié)點(diǎn)的模型參數(shù)。
定理2(抵御節(jié)點(diǎn)攻擊) 惡意客戶端不能推斷出節(jié)點(diǎn)的模型參數(shù)。
證明假設(shè)惡意客戶端在每次訓(xùn)練迭代過(guò)程中,根據(jù)聚合模型結(jié)果推斷出其他客戶端的本地節(jié)點(diǎn)模型參數(shù),但是在協(xié)議中,模型聚合結(jié)果是由每個(gè)客戶端本地節(jié)點(diǎn)的模型加權(quán)聚合平均得到的,那么惡意客戶端需要推斷其他客戶端生成的本地節(jié)點(diǎn)個(gè)數(shù)mi及劃分到本地節(jié)點(diǎn)的權(quán)值|Di,j|。首先,推斷所有其他客戶端生成的本地節(jié)點(diǎn)個(gè)數(shù)mi,m是每個(gè)客戶端根據(jù)本身計(jì)算資源生成的節(jié)點(diǎn),其他客戶端并不知曉,惡意客戶端需要與所有客戶端相互勾結(jié)才能獲取mi,這與該類(lèi)攻擊方式不相符,故惡意客戶端無(wú)法推斷出其他客戶端生成的本地節(jié)點(diǎn)個(gè)數(shù)mi;其次,惡意客戶端推斷本地節(jié)點(diǎn)的權(quán)值|Di,j|,|Di,j|是每個(gè)客戶端的隱私數(shù)據(jù)集大小,只有其本身知曉,惡意客戶端需要所有客戶端相互勾結(jié)才能獲取,與該類(lèi)攻擊方式不符,因此,惡意客戶端無(wú)法推斷出其他客戶端的本地節(jié)點(diǎn)權(quán)值|Di,j|。綜上所述,無(wú)法從聚合結(jié)果推斷出其他客戶端本地節(jié)點(diǎn)的模型參數(shù)。
定理3(抵御h≤n-1個(gè)客戶端和服務(wù)器的共謀攻擊) 服務(wù)器和客戶端不能推斷出其他客戶端本地節(jié)點(diǎn)的模型參數(shù)。
證明首先從服務(wù)器角度證明。假設(shè)中心服務(wù)器可以推斷出其他客戶端本地節(jié)點(diǎn)的模型參數(shù)wi,j。服務(wù)器收到來(lái)自客戶端發(fā)送的加權(quán)聚合掩碼模型,服務(wù)器需要推斷出本地節(jié)點(diǎn)添加的掩碼Maski,j和權(quán)值|Di,j|,服務(wù)器要求與之勾結(jié)的h個(gè)客戶端上傳各個(gè)節(jié)點(diǎn)的掩碼值,服務(wù)器擁有MaskCount,當(dāng)h=n-1時(shí),則僅能推斷出客戶端內(nèi)所有本地節(jié)點(diǎn)的模型掩碼和,無(wú)法獲得本地節(jié)點(diǎn)的單一模型掩碼。通過(guò)消除加權(quán)聚合掩碼模型的掩碼,得到客戶端的加權(quán)聚合模型,而服務(wù)器要破解本地節(jié)點(diǎn)的權(quán)值|Di,j|,需要與客戶端進(jìn)行合謀,與攻擊方式不符。當(dāng)h 其次,從客戶端角度證明。①客戶端可以從聚合結(jié)果進(jìn)行推斷。假設(shè)h個(gè)客戶端相互合謀,從聚合結(jié)果推斷出其他節(jié)點(diǎn)的模型參數(shù)。h個(gè)客戶端需要推斷其他客戶端生成的本地節(jié)點(diǎn)個(gè)數(shù)mi以及劃分到本地節(jié)點(diǎn)的權(quán)值|Di,j|。與服務(wù)器合謀獲知其他客戶端發(fā)送的客戶端總權(quán)值|Di|,然而h個(gè)客戶端仍需與所有客戶端進(jìn)行勾結(jié)才能獲取|Di|和mi,與該攻擊不符,故客戶端不能從聚合結(jié)果中推斷出節(jié)點(diǎn)的模型參數(shù)。②客戶端可以從加權(quán)聚合掩碼模型中進(jìn)行推斷。與上述服務(wù)器角度證明相同,故客戶端不能推斷出其他客戶端本地節(jié)點(diǎn)的模型參數(shù)。綜上所述,誠(chéng)實(shí)且好奇的客戶端無(wú)論從聚合結(jié)果進(jìn)行推斷還是從客戶端上傳的結(jié)果進(jìn)行推斷,都不能推斷出其他客戶端的節(jié)點(diǎn)模型參數(shù)。 總之,服務(wù)器和客戶端不能推斷出其他客戶端本地節(jié)點(diǎn)的模型參數(shù)。以上3個(gè)定理證明了基于秘密共享的自適應(yīng)掩碼加密協(xié)議能夠有效地抵御服務(wù)器攻擊、客戶端攻擊以及服務(wù)器與客戶端相互合謀的共謀攻擊。因此,本文提出的結(jié)合自適應(yīng)掩碼加密的本地多節(jié)點(diǎn)聯(lián)邦學(xué)習(xí)隱私保護(hù)方案是安全的。該方案能夠保證誠(chéng)實(shí)且好奇的服務(wù)器和客戶端都不能獲取其他誠(chéng)實(shí)客戶端的隱私數(shù)據(jù)。 集成本地多節(jié)點(diǎn)訓(xùn)練框架和自適應(yīng)掩碼加密協(xié)議,考慮客戶端掉線問(wèn)題與全聯(lián)邦學(xué)習(xí)訓(xùn)練流程,在本節(jié)給出完整的Mask-FL聯(lián)邦學(xué)習(xí)算法。訓(xùn)練分為2個(gè)階段,第一階段為初始化階段,第二階段為聯(lián)邦學(xué)習(xí)訓(xùn)練階段。具體如算法2所示。 算法2 Mask-FL輸入:客戶端{(lán)P1,…,Pn},服務(wù)器S,初始模型參數(shù)w0,全局訓(xùn)練輪次R,掩碼更新閾值T,本地訓(xùn)練迭代次數(shù)E,客戶端數(shù)據(jù)集{D1,D2,…,Dn},客戶端本地節(jié)點(diǎn)集{m1,m2,…,mn} 輸出:結(jié)果模型w1:S initialization model w0 and deliver the model to each client.2:Mask-FL.Setup:3: for each client i∈Pn do:4: {Di,j},{wi,j}←DataSplit(Di,w0) ∥詳見(jiàn)算法15: Maski,j←PRG(wi,j) ∥采用偽隨機(jī)數(shù)生成器生成與模型相同的模型掩碼6: Maski←∑mj=1Maski,j7: Split {si,1,si,2,…,si,n}←Maski8: Send share si,n to Pn9: receive share and merge them:10: Si←∑nj=1sj,i11: Send Si, Di to server12: End for13: Server do:14: MaskCount←∑ni=1Si15:Mask-FL.Train:16: While r≤R do:17: for each client i∈Pn in parallel do:18: for each node j∈mi in parallel do:19: wjr+1←ClientUpdate(j,wr), do it for E time20: wjr+1 ←|Di,j|*wjr+1+Maski,j21: End for22: wir+1 =∑mj=1wjr+1 and send to server23: End for24: Server do:25: wr+1 ←∑ni=1wir+1 26: wr+1←1∑ni=1|Di|(wr+1 -MaskCount)27: Send wr+1 to all clients28: r++29: if r % T == 0 or client dropout: 30: Run Mask-FL.Setup (wr+1)31: End while32:ClientUpdate(k, w): ∥ Executed on client k33: for each local epoch i from 1 to E do:34: batches←(data D split into batches of size B) 一個(gè)完整的訓(xùn)練周期如下: (1)初始化模型參數(shù)。中心服務(wù)器初始化模型,并且生成模型初始化參數(shù),分別為客戶端本地節(jié)點(diǎn)的訓(xùn)練迭代次數(shù)、全局通信輪次以及學(xué)習(xí)率,并且將模型和這些參數(shù)發(fā)送至所有參與訓(xùn)練的客戶端,客戶端根據(jù)本地計(jì)算資源能力將本地?cái)?shù)據(jù)集進(jìn)行隨機(jī)劃分,每一個(gè)計(jì)算資源生成一個(gè)節(jié)點(diǎn)并擁有一個(gè)劃分后的數(shù)據(jù)集。 (2)節(jié)點(diǎn)采用一個(gè)batch的隱私數(shù)據(jù)集進(jìn)行單次訓(xùn)練,每個(gè)節(jié)點(diǎn)根據(jù)模型參數(shù)生成模型掩碼,采用秘密共享機(jī)制與其他節(jié)點(diǎn)分享模型掩碼秘密,各節(jié)點(diǎn)再將獲得的掩碼秘密求和后發(fā)送到服務(wù)器,服務(wù)器結(jié)合各部分掩碼秘密和獲得總掩碼。 (3)節(jié)點(diǎn)采用隱私數(shù)據(jù)集進(jìn)行本地訓(xùn)練,獲得模型參數(shù)后加權(quán),并且添加本地掩碼得到掩碼模型,發(fā)送至客戶端,客戶端聚合后再上傳至中心服務(wù)器并且發(fā)送客戶端本地參與訓(xùn)練的數(shù)據(jù)集數(shù)量。 (4)中心服務(wù)器檢測(cè)是否有離線客戶端,①?zèng)]有離線客戶端,直接將所有客戶端上傳的掩碼模型相加并采用總掩碼和解密后進(jìn)行平均得到全局模型;②存在離線客戶端,則其他客戶端重啟步驟2~步驟5,然后計(jì)算全局模型,下發(fā)全局模型至各個(gè)客戶端。當(dāng)全局迭代次數(shù)達(dá)到掩碼更新閾值時(shí),各個(gè)客戶端按照步驟2更新掩碼。 如果訓(xùn)練過(guò)程中,有客戶端中途退出,則采用步驟2重新生成新的掩碼并將其保存下來(lái),若在下一次迭代掉線客戶端重新上線,則可啟用上一次掩碼值而不用重新運(yùn)行步驟2。反復(fù)迭代,直到模型收斂或達(dá)到最大訓(xùn)練輪數(shù)。 在本章中對(duì)Mask-FL進(jìn)行實(shí)驗(yàn)以評(píng)估其性能指標(biāo),同時(shí)設(shè)置對(duì)照實(shí)驗(yàn)組:聯(lián)邦平均算法(FedAvg)[3]、結(jié)合差分隱私的聯(lián)邦學(xué)習(xí)(DP-FL)[12]、結(jié)合秘密共享方案的聯(lián)邦學(xué)習(xí)(SS-FL)[19]。為了進(jìn)行相同背景的對(duì)比,3個(gè)對(duì)照實(shí)驗(yàn)組的超參數(shù)、模型及數(shù)據(jù)集都設(shè)置成與Mask-FL一致。 本文在分布式數(shù)據(jù)集上使用深度神經(jīng)網(wǎng)絡(luò)AletNet進(jìn)行訓(xùn)練來(lái)模擬,模型參數(shù)數(shù)量為3.87 M。實(shí)驗(yàn)數(shù)據(jù)集采用MNIST手寫(xiě)圖像數(shù)據(jù)集,該數(shù)據(jù)集由28*28像素的60 000張訓(xùn)練圖片和10 000張測(cè)試圖片組成,一共10個(gè)數(shù)字類(lèi),其中,每類(lèi)各有6 000張訓(xùn)練集和1 000張測(cè)試集。實(shí)驗(yàn)運(yùn)行環(huán)境為一臺(tái)配有Tesla P100 PCIe 16GB GPU的PC,內(nèi)存為32 GB。各節(jié)點(diǎn)訓(xùn)練模型使用SGD作優(yōu)化器。 在實(shí)驗(yàn)中默認(rèn)訓(xùn)練數(shù)據(jù)集batch為64,測(cè)試集batch為1 000,學(xué)習(xí)率為0.01,全局訓(xùn)練輪次round為100。對(duì)于Mask-FL中客戶端的本地節(jié)點(diǎn)進(jìn)行本地迭代訓(xùn)練次數(shù)epoch設(shè)置為1,其他框架的客戶端本地訓(xùn)練次數(shù)epoch為1。在本文DP-FL對(duì)照實(shí)驗(yàn)中,設(shè)置隱私預(yù)算松弛度δ=1e-5,訓(xùn)練抽樣集比例q=0.01,clip=8,由于抽樣集比例為0.01,為能與其他算法在同等情況下進(jìn)行比較,控制其模型訓(xùn)練的樣本數(shù)與其他算法相等,因此,設(shè)置DP-FL的本地訓(xùn)練輪次epoch=100。 Mask-FL、FedAvg、SS-FL和DP-FL均采用1個(gè)中心服務(wù)器、3個(gè)客戶端的結(jié)構(gòu)進(jìn)行訓(xùn)練。對(duì)60 000張圖片的MNIST訓(xùn)練集進(jìn)行打亂后隨機(jī)采樣切分成3個(gè)訓(xùn)練集[20 000,20 000,20 000],每個(gè)客戶端擁有一個(gè)訓(xùn)練集參與聯(lián)邦學(xué)習(xí)訓(xùn)練。測(cè)試集只放置在中心服務(wù)器,在一個(gè)輪次訓(xùn)練結(jié)束后,中心服務(wù)器使用測(cè)試集進(jìn)行測(cè)試以觀察聚合模型的效果。 本文分別從協(xié)議通信成本、訓(xùn)練時(shí)間、模型訓(xùn)練精度等角度對(duì)Mask-FL進(jìn)行評(píng)估與分析。 通過(guò)實(shí)驗(yàn)來(lái)評(píng)估協(xié)議,可以構(gòu)建一個(gè)精確的過(guò)程,以確定在實(shí)際場(chǎng)景中運(yùn)行協(xié)議需要多長(zhǎng)時(shí)間。為了實(shí)現(xiàn)這一點(diǎn),本文統(tǒng)計(jì)了Mask-FL各個(gè)節(jié)點(diǎn)及服務(wù)器交流過(guò)程中協(xié)議各個(gè)步驟的計(jì)時(shí)結(jié)果,包括節(jié)點(diǎn)上的掩碼初始化平均時(shí)間、掩碼交換時(shí)間、加密平均時(shí)間、訓(xùn)練平均時(shí)間,服務(wù)器上的模型聚合平均用時(shí)、解碼平均用時(shí)、模型下發(fā)平均用時(shí),并且統(tǒng)計(jì)了FedAvg算法各個(gè)訓(xùn)練過(guò)程的平均耗時(shí)。雖然實(shí)驗(yàn)是單線程的,但它確實(shí)跟蹤每個(gè)節(jié)點(diǎn)每個(gè)動(dòng)作的獨(dú)立時(shí)間,并確保實(shí)驗(yàn)不允許在同一時(shí)間內(nèi)執(zhí)行多個(gè)活動(dòng)。因此,可以斷言這些時(shí)間應(yīng)該是對(duì)協(xié)議完整、分布式實(shí)現(xiàn)的合理估計(jì)。 實(shí)驗(yàn)采集了100個(gè)通訊輪次FedAvg和Mask-FL的各階段平均用時(shí),如圖4所示。對(duì)于Mask-FL算法,基于秘密共享的自適應(yīng)掩碼協(xié)議的掩碼初始化過(guò)程耗時(shí)為11.027 9 ms,在訓(xùn)練過(guò)程中,模型在本地訓(xùn)練的耗時(shí)為1 056.182 6 ms,相比之下,本協(xié)議對(duì)模型的加解密過(guò)程所耗費(fèi)的時(shí)間僅為2.771 4 ms,說(shuō)明本協(xié)議加密過(guò)程所產(chǎn)生的耗時(shí)并未對(duì)FL系統(tǒng)產(chǎn)生明顯的時(shí)間開(kāi)銷(xiāo)。并且通過(guò)2.2節(jié)中對(duì)協(xié)議進(jìn)行的安全性證明分析,說(shuō)明基于秘密共享的自適應(yīng)掩碼協(xié)議消耗的時(shí)間不僅極小,而且能夠有效地保護(hù)客戶端數(shù)據(jù)隱私安全。除此之外,從圖中可以看出,Mask-FL客戶端的模型訓(xùn)練時(shí)間大大縮小,證明本文提出的本地多節(jié)點(diǎn)結(jié)構(gòu)設(shè)計(jì)能夠有效地減小客戶端模型訓(xùn)練的時(shí)間。 圖4 Mask-FL和FedAvg訓(xùn)練中各階段耗時(shí) 由于本次實(shí)驗(yàn)是在單機(jī)上運(yùn)行的,所以并未對(duì)客戶端-客戶端、客戶端-服務(wù)器的上下行傳輸時(shí)間進(jìn)行模擬,并且在實(shí)際應(yīng)用中,各種設(shè)備的通信帶寬、數(shù)據(jù)傳輸效率和網(wǎng)絡(luò)狀態(tài)各不相同,所以在聯(lián)邦學(xué)習(xí)上下行過(guò)程中,考慮的評(píng)價(jià)指標(biāo)為通信數(shù)據(jù)量。本文對(duì)各種聯(lián)邦學(xué)習(xí)安全協(xié)議的訓(xùn)練過(guò)程進(jìn)行了數(shù)據(jù)傳輸量的比較。 表1比較了4種聯(lián)邦學(xué)習(xí)協(xié)議全局訓(xùn)練過(guò)程中的通信成本,|w|為傳輸?shù)哪P痛笮。琻為參與訓(xùn)練的客戶端,k為服務(wù)器聚合模型次數(shù)。相比于其他協(xié)議,Mask-FL協(xié)議需要在訓(xùn)練開(kāi)始進(jìn)行初始化設(shè)置,在該過(guò)程中所有客戶端間需傳輸固定數(shù)據(jù)量(n-1)*n*|w|,客戶端與服務(wù)器需傳輸3|w|數(shù)據(jù)量。在整個(gè)訓(xùn)練流程中,初始化產(chǎn)生的時(shí)間損耗僅發(fā)生一次,而在訓(xùn)練中掩碼的更新頻率T小于全局訓(xùn)練次數(shù)k,其數(shù)據(jù)量相對(duì)于整個(gè)訓(xùn)練過(guò)程的數(shù)據(jù)量?jī)H占少部分,考慮協(xié)議安全性與時(shí)間損耗,Mask-FL仍具有很大的優(yōu)勢(shì)。 表1 不同聯(lián)邦學(xué)習(xí)算法之間的通信成本比較 構(gòu)造1個(gè)中心服務(wù)器、3個(gè)客戶端及每個(gè)客戶端3個(gè)節(jié)點(diǎn)的結(jié)構(gòu),每個(gè)客戶端擁有20 000張數(shù)據(jù),由于在相同的機(jī)器上訓(xùn)練,因此,按照Datasplit數(shù)據(jù)切分算法劃分,得到每個(gè)客戶端節(jié)點(diǎn)中的數(shù)據(jù)為[6 666,6 666,6 666]。按照以上采用默認(rèn)參數(shù)設(shè)置,每個(gè)節(jié)點(diǎn)本地迭代訓(xùn)練1epoch,全局通信輪次為100,進(jìn)行Mask-FL訓(xùn)練,訓(xùn)練結(jié)果如圖5所示。 圖5 Mask-FL的模型訓(xùn)練精度 由于采用的是平均聚合方式,所以在模型下發(fā)各個(gè)節(jié)點(diǎn)后,再次進(jìn)行本地訓(xùn)練導(dǎo)致訓(xùn)練精度突然改變,從而出現(xiàn)了圖5(a)中的毛刺,9個(gè)參與訓(xùn)練的節(jié)點(diǎn)的訓(xùn)練效果各有差異,但是在聯(lián)邦學(xué)習(xí)的平均聚合效果下,最終都能達(dá)到整體的最優(yōu)精度,在圖5(b)中,隨著全局迭代的不斷增加,模型逐漸收斂,最大準(zhǔn)確率達(dá)98.69%,即Mask-FL充分地利用各個(gè)節(jié)點(diǎn)數(shù)據(jù)達(dá)到訓(xùn)練目標(biāo)。 由于Mask-FL客戶端的訓(xùn)練速度提高,那么在相同的通信輪次內(nèi),本地節(jié)點(diǎn)可進(jìn)行更多本地迭代訓(xùn)練的次數(shù),根據(jù)上述實(shí)驗(yàn),Mask-FL客戶端訓(xùn)練時(shí)間約為FedAvg客戶端訓(xùn)練時(shí)間的1/3,因此,設(shè)置節(jié)點(diǎn)本地迭代次數(shù)為FedAvg的3倍以進(jìn)行相同條件的對(duì)比。訓(xùn)練結(jié)果如圖6所示。 圖6中,在相同的訓(xùn)練時(shí)間條件下,Mask-FL訓(xùn)練模型的收斂速度比FedAvg顯著提高。達(dá)到相同的98%準(zhǔn)確度條件下,Mask-FL需要進(jìn)行14次通信,F(xiàn)edAvg需要進(jìn)行20次通信,相比之下本方案所需的通信輪次更低,提高訓(xùn)練效率比為30%。Mask-FL最大收斂準(zhǔn)確率為98.85%,F(xiàn)edAvg為98.83%,2種方案訓(xùn)練的模型均收斂。 圖6 Mask-FL本地節(jié)點(diǎn)訓(xùn)練3 epoch與FedAvg訓(xùn)練模型精度比較 在默認(rèn)參數(shù)設(shè)置下,針對(duì)Mask-FL不同的本地迭代訓(xùn)練次數(shù)進(jìn)行實(shí)驗(yàn),將epoch設(shè)為1、3、5、10分別進(jìn)行訓(xùn)練,研究節(jié)點(diǎn)本地迭代訓(xùn)練次數(shù)對(duì)訓(xùn)練結(jié)果的影響,見(jiàn)圖7。 圖7 Mask-FL中不同epoch對(duì)訓(xùn)練的影響 圖7為訓(xùn)練模型達(dá)到98%精度,Mask-FL在本地迭代1epoch方式需要進(jìn)行通信47 round,3 epoch方式需要進(jìn)行通信14 round, 5 epoch方式需要進(jìn)行通信12 round,10 epoch方式需要進(jìn)行通信8 round。1 epoch方式達(dá)到最大精度為98.69%,3 epoch方式最大精度為98.85%,5 epoch方式最大精度為98.85%,10 epoch方式最大精度為98.86%。隨著本地節(jié)點(diǎn)迭代次數(shù)的增加,模型能更快地收斂,從而聯(lián)邦學(xué)習(xí)訓(xùn)練收斂時(shí)所需的通信輪次更少。 采用默認(rèn)參數(shù)設(shè)置,針對(duì)Mask-FL每個(gè)客戶端生成的節(jié)點(diǎn)數(shù)分別為1、2、3、5進(jìn)行實(shí)驗(yàn),分析客戶端節(jié)點(diǎn)數(shù)對(duì)模型訓(xùn)練的影響,結(jié)果見(jiàn)圖8及表2。 如圖8所示,在這次實(shí)驗(yàn)中Mask-FL節(jié)點(diǎn)數(shù)為1時(shí),等價(jià)于FedAvg方法,但是不符合Mask-FL的安全性假設(shè)。隨著客戶端節(jié)點(diǎn)數(shù)的增加,模型收斂時(shí)所需的通信輪次增多,訓(xùn)練時(shí)間如表2所示,訓(xùn)練耗時(shí)大大降低,并且能夠達(dá)到收斂精度??紤]上述實(shí)驗(yàn)圖6的結(jié)果,可在提高客戶端節(jié)點(diǎn)數(shù)的同時(shí),提高節(jié)點(diǎn)本地迭代次數(shù),以此來(lái)提高訓(xùn)練效果。 圖8 Mask-FL客戶端生成不同節(jié)點(diǎn)數(shù)對(duì)訓(xùn)練的影響 表2 Mask-FL客戶端多節(jié)點(diǎn)訓(xùn)練100 round耗時(shí)和精度 采用默認(rèn)參數(shù)設(shè)置,根據(jù)前面實(shí)驗(yàn)的結(jié)論節(jié)點(diǎn)數(shù)與訓(xùn)練耗時(shí)成反比,考慮在相同的時(shí)間內(nèi)比較Mask-FL的訓(xùn)練效果,即客戶端生成2節(jié)點(diǎn)的實(shí)驗(yàn)進(jìn)行本地迭代2 epoch,客戶端生成3節(jié)點(diǎn)的實(shí)驗(yàn)進(jìn)行本地迭代3 epoch,客戶端生成5節(jié)點(diǎn)的實(shí)驗(yàn)進(jìn)行本地迭代5 epoch。實(shí)驗(yàn)結(jié)果如圖9及表3。 圖9 Mask-FL多節(jié)點(diǎn)多epoch對(duì)訓(xùn)練的影響 表3 Mask-FL多節(jié)點(diǎn)多epoch訓(xùn)練100 round耗時(shí)和精度 如圖9所示,實(shí)驗(yàn)①達(dá)到98%精度時(shí),所需通信輪次為17,實(shí)驗(yàn)②達(dá)到98%精度時(shí),所需通信輪次為14,實(shí)驗(yàn)③達(dá)到98%精度時(shí),所需通信輪次為9,實(shí)驗(yàn)④達(dá)到98%精度時(shí),所需通信輪次為10。各個(gè)實(shí)驗(yàn)的模型通過(guò)100輪次的訓(xùn)練最終達(dá)到收斂。根據(jù)表3所示,得出實(shí)驗(yàn)結(jié)論:在近似的時(shí)間內(nèi),投入的計(jì)算資源越多,則模型訓(xùn)練速度越快,但是計(jì)算資源投入越多所獲得的收益呈下降趨勢(shì)。 采用默認(rèn)設(shè)置,Mask-FL的每個(gè)客戶端生成3個(gè)節(jié)點(diǎn),節(jié)點(diǎn)本地迭代訓(xùn)練3 epoch,與其他3個(gè)框架進(jìn)行100個(gè)通信輪次對(duì)比實(shí)驗(yàn),比較模型準(zhǔn)確度,結(jié)果見(jiàn)圖10及表4。 圖10 多種框架訓(xùn)練模型100 round的準(zhǔn)確度 表4 各個(gè)框架訓(xùn)練100 round耗時(shí)和精度 如圖10所示,在Mask-FL、SS-FL及FedAvg訓(xùn)練中,模型均獲得較高精度,在DP-FL中,其結(jié)果模型準(zhǔn)確度隨著差分隱私預(yù)算減小而減小,即添加的擾動(dòng)過(guò)大,導(dǎo)致模型精度下降,模型效果變差,并且表4顯示,由于在訓(xùn)練過(guò)程中需要進(jìn)行小批次采樣訓(xùn)練和梯度切割而導(dǎo)致訓(xùn)練時(shí)間極大增加。Mask-FL訓(xùn)練所需耗時(shí)與SS-FL及FedAvg相近,但實(shí)驗(yàn)平均精度均比其他框架高,說(shuō)明Mask-FL所訓(xùn)練的模型收斂更快。實(shí)驗(yàn)證明了Mask-FL訓(xùn)練過(guò)程中,在保證多方安全計(jì)算的前提下沒(méi)有引入新的噪聲,因此,得出Mask-FL能夠在深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程中不會(huì)造成精度的損失,并且能夠更快地收斂模型的結(jié)論。 針對(duì)聯(lián)邦學(xué)習(xí)目前面臨著成員推理、重構(gòu)攻擊等隱私推斷攻擊,以及跨數(shù)據(jù)庫(kù)聯(lián)邦學(xué)習(xí)各節(jié)點(diǎn)訓(xùn)練時(shí)間長(zhǎng)的問(wèn)題,本文將分層聯(lián)邦學(xué)習(xí)和基于安全多方計(jì)算的隱私保護(hù)機(jī)制相結(jié)合,提出了一種新型聯(lián)邦學(xué)習(xí)訓(xùn)練算法Mask-FL,通過(guò)安全性分析證明,客戶端的模型參數(shù)能不被服務(wù)器和其他客戶端所獲取。實(shí)驗(yàn)結(jié)果證明,相比于結(jié)合秘密共享的聯(lián)邦學(xué)習(xí),Mask-FL的通信成本較少;相比于添加差分隱私噪聲的聯(lián)邦學(xué)習(xí)訓(xùn)練方式,Mask-FL的訓(xùn)練準(zhǔn)確度更高;相比于FedAvg算法,Mask-FL更安全且訓(xùn)練速度更快。本算法在保證數(shù)據(jù)隱私安全的前提下,擁有較高的模型準(zhǔn)確度,以及具備優(yōu)秀的模型訓(xùn)練速度。2.3 Mask-FL
3 實(shí) 驗(yàn)
3.1 協(xié)議時(shí)間消耗分析
3.2 通信成本評(píng)估
3.3 模型準(zhǔn)確性分析
4 總 結(jié)
廣州大學(xué)學(xué)報(bào)(自然科學(xué)版)2022年3期