知識蒸餾聯(lián)邦學(xué)習(xí)的個(gè)性化技術(shù)綜述
前言
題目: Survey of Personalization Techniques for FederatedLearning
會議: 2020 Fourth World Conference on Smart Trends in Systems, Security and Sustainability (WorldS4)
論文地址:Survey of Personalization Techniques for FederatedLearning
前面講到,客戶端由于本地?cái)?shù)據(jù)不足,無法通過自己的數(shù)據(jù)訓(xùn)練得到一個(gè)較好的模型,因此客戶端需要參與聯(lián)邦學(xué)習(xí)來獲得一個(gè)全局共享模型。但由于各個(gè)客戶端間數(shù)據(jù)的非獨(dú)立同分布,全局模型在某些客戶端上表現(xiàn)可能并不好,并且如果客戶端自己擁有足夠數(shù)據(jù),他們是否還有必要參與聯(lián)邦學(xué)習(xí)呢?
在這種情況下,個(gè)性化聯(lián)邦學(xué)習(xí)應(yīng)運(yùn)而生。所謂個(gè)性化,是指對全局共享模型進(jìn)行改進(jìn),改進(jìn)后的模型相比于全局模型和本地模型,可能更適合客戶端。
本文主要總結(jié)了七種個(gè)性化技術(shù):添加用戶上下文、遷移學(xué)習(xí)、多任務(wù)學(xué)習(xí)、元學(xué)習(xí)、知識蒸餾、基礎(chǔ)+個(gè)性化層、全局模型和本地模型混合。其中有一些技術(shù)后期會有專門的論文解讀來對其進(jìn)行介紹。
摘要
聯(lián)邦學(xué)習(xí)通常為所有客戶端生成一個(gè)全局共享模型,但由于數(shù)據(jù)在設(shè)備間的非IID分布,統(tǒng)計(jì)上的異質(zhì)性經(jīng)常導(dǎo)致這樣的情況:對于一些客戶來說,僅根據(jù)其私有數(shù)據(jù)訓(xùn)練的本地模型比全局共享模型表現(xiàn)更好。目前已經(jīng)提出了一些技術(shù)來個(gè)性化全局模型,以便更好地為個(gè)人客戶工作,本文調(diào)查了最近關(guān)于這一主題的研究。
I. 引言
許多數(shù)據(jù)集本質(zhì)上是分散的,在聯(lián)邦學(xué)習(xí)中,這些數(shù)據(jù)分布在各個(gè)客戶端。傳統(tǒng)的機(jī)器學(xué)習(xí)將這些客戶端的數(shù)據(jù)樣本聚集到一個(gè)中央存儲庫中,并在此基礎(chǔ)上訓(xùn)練機(jī)器學(xué)習(xí)模型。將數(shù)據(jù)從本地設(shè)備轉(zhuǎn)移到中央存儲庫帶來了兩個(gè)關(guān)鍵挑戰(zhàn)。首先,它損害了數(shù)據(jù)的隱私性和安全性。其次,它增加了通信開銷。作為一種解決方案,聯(lián)邦學(xué)習(xí)使多個(gè)用戶(即客戶端)能夠在他們的集體數(shù)據(jù)上協(xié)作地訓(xùn)練出一個(gè)共享的全局模型,而無需將數(shù)據(jù)從本地設(shè)備中移動。
客戶端參與聯(lián)邦學(xué)習(xí)的主要動機(jī)是獲得更好的模型。客戶端如果沒有足夠的私人數(shù)據(jù)來開發(fā)準(zhǔn)確的本地模型,就可以從聯(lián)邦學(xué)習(xí)的模型中獲益。然而,對于有足夠私人數(shù)據(jù)來訓(xùn)練準(zhǔn)確的本地模型的客戶來說,參與聯(lián)邦學(xué)習(xí)是否有好處是有爭議的。對于許多應(yīng)用程序來說,跨客戶端的數(shù)據(jù)分布是非IID的,這種統(tǒng)計(jì)上的異質(zhì)性使得很難訓(xùn)練出適用于所有客戶的全局共享模型。
本文的目的是調(diào)查最近關(guān)于在聯(lián)邦學(xué)習(xí)環(huán)境中為客戶建立個(gè)性化模型的研究,這些模型預(yù)期比全局共享模型或本地個(gè)體模型表現(xiàn)更好。
II. 個(gè)性化需求
Wu等人總結(jié)了聯(lián)邦學(xué)習(xí)系統(tǒng)在個(gè)性化方面面臨的三個(gè)挑戰(zhàn):
存儲、計(jì)算和通信能力方面的設(shè)備異質(zhì)性。數(shù)據(jù)非IID分布導(dǎo)致的數(shù)據(jù)異質(zhì)性。模型異質(zhì)性:不同的客戶需要針對其環(huán)境定制模型的情況。
為了應(yīng)對數(shù)據(jù)的統(tǒng)計(jì)異質(zhì)性和非IID分布所帶來的挑戰(zhàn),需要對全局模型進(jìn)行個(gè)性化處理,大多數(shù)個(gè)性化技術(shù)通常包含兩個(gè)離散的步驟:
以協(xié)作的方式建立一個(gè)全局模型。使用客戶端的私有數(shù)據(jù)來個(gè)性化全局模型。
為了使聯(lián)邦學(xué)習(xí)個(gè)性化在實(shí)踐中有用,以下三個(gè)目標(biāo)必須同時(shí)解決,而不是獨(dú)立解決:
開發(fā)改進(jìn)的個(gè)性化模型,使大多數(shù)客戶受益。開發(fā)一種準(zhǔn)確的全局模式,使那些私人數(shù)據(jù)有限的客戶受益。在少量訓(xùn)練輪次內(nèi)實(shí)現(xiàn)模型快速收斂。
III. 方法
本節(jié)介紹為客戶端調(diào)整全局共享模型的方法。
A. 添加用戶上下文
如果客戶的上下文和個(gè)人信息被適當(dāng)?shù)靥卣骰⒓{入數(shù)據(jù)集,共享的全局模型也可以生成高度個(gè)性化的預(yù)測。然而,大多數(shù)公共數(shù)據(jù)集并不包含上下文特征,開發(fā)有效整合上下文的技術(shù)仍然是一個(gè)重要的開放問題。
作為單個(gè)全局模型和純本地模型之間的一種中間方法,Masour等人提出了用戶聚類的建議,將類似的客戶端分組在一起,并為每個(gè)組訓(xùn)練一個(gè)單獨(dú)的模型。
B. 遷移學(xué)習(xí)
遷移學(xué)習(xí)使深度學(xué)習(xí)模型能夠利用解決一個(gè)問題時(shí)獲得的知識來解決另一個(gè)相關(guān)問題。
在一些論文中提供了一個(gè)具有泛化保證的學(xué)習(xí)理論框架:遷移學(xué)習(xí)利用經(jīng)過訓(xùn)練的全局模型的參數(shù)對局部數(shù)據(jù)進(jìn)行初始化訓(xùn)練,從而利用全局模型提取的知識,而不是從頭學(xué)習(xí)。為了避免災(zāi)難性遺忘的問題,必須注意不要在本地?cái)?shù)據(jù)上對模型進(jìn)行過長時(shí)間的再訓(xùn)練。我們可以采用一種變體技術(shù)凍結(jié)全局模型的基礎(chǔ)層,并僅在局部數(shù)據(jù)上重新訓(xùn)練最頂層。
C. 多任務(wù)學(xué)習(xí)
在多任務(wù)學(xué)習(xí)中,同時(shí)解決多個(gè)相關(guān)任務(wù),使得模型可以通過聯(lián)邦學(xué)習(xí)來挖掘任務(wù)之間的共性和差異。Smith等人的研究表明,多任務(wù)學(xué)習(xí)是建立個(gè)性化聯(lián)邦模型的自然選擇,他們在聯(lián)邦設(shè)置中開發(fā)了用于多任務(wù)學(xué)習(xí)的MOCHA算法,以解決與通信、掉隊(duì)和容錯(cuò)相關(guān)的挑戰(zhàn)。在聯(lián)邦設(shè)置中使用多任務(wù)學(xué)習(xí)的一個(gè)缺點(diǎn)是,由于它為每個(gè)任務(wù)生成一個(gè)模型,因此所有客戶端都必須參與每一輪。
D. 元學(xué)習(xí)
元學(xué)習(xí)中需要對多個(gè)學(xué)習(xí)任務(wù)進(jìn)行訓(xùn)練,以生成高適應(yīng)性的模型,這些模型可以通過少量的訓(xùn)練實(shí)例進(jìn)一步學(xué)習(xí)解決新任務(wù)。Finn提出了一種模型無關(guān)的元學(xué)習(xí)(MAML)算法,該算法與使用梯度下降訓(xùn)練的任何模型都兼容。MAML構(gòu)建一個(gè)通常適用于多個(gè)任務(wù)的內(nèi)部表示,因此為新任務(wù)微調(diào)頂層可以產(chǎn)生良好的結(jié)果。
MAML分兩個(gè)階段進(jìn)行:元訓(xùn)練和元測試。元訓(xùn)練在多個(gè)任務(wù)上構(gòu)建全局模型,而元測試則針對不同的任務(wù)分別調(diào)整全局模型。如果我們將聯(lián)邦學(xué)習(xí)過程視為元訓(xùn)練,將個(gè)性化過程視為元測試,那么FedAVG就與一種流行的MAML算法Reptile非常相似。
E. 知識蒸餾
一些研究證明,可以將一個(gè)模型集合的知識壓縮成一個(gè)更容易部署的模型。知識蒸餾通過讓學(xué)生模仿教師,將一個(gè)大型教師網(wǎng)絡(luò)中的知識提取到一個(gè)較小的學(xué)生網(wǎng)絡(luò)中。在個(gè)性化過程中,過度擬合是一個(gè)重要的挑戰(zhàn),特別是對于本地?cái)?shù)據(jù)集較小的客戶。鑒于此,Yu提出將全局共享模型作為教師,將個(gè)性化模型作為學(xué)生,這樣就可以減輕個(gè)性化過程中過擬合的影響。Li等人提出了FedMD,這是一個(gè)基于知識蒸餾和遷移學(xué)習(xí)的聯(lián)邦學(xué)習(xí)框架,允許客戶使用本地私有數(shù)據(jù)集和全局公共數(shù)據(jù)集獨(dú)立設(shè)計(jì)自己的網(wǎng)絡(luò)。
F. 基礎(chǔ)+個(gè)性化層
為了緩解各個(gè)客戶端數(shù)據(jù)分布差異的影響,一些人提出了FedPer:一種神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu),其中基礎(chǔ)層通過FedAvg進(jìn)行集中訓(xùn)練,而頂層(也稱為個(gè)性化層)通過梯度下降的變體進(jìn)行局部訓(xùn)練。
FedPer與遷移學(xué)習(xí)的不同:
在遷移學(xué)習(xí)中,所有層首先在全局?jǐn)?shù)據(jù)上訓(xùn)練,然后在局部數(shù)據(jù)上重新訓(xùn)練所有或部分層。FedPer在全局?jǐn)?shù)據(jù)上訓(xùn)練基礎(chǔ)層,在局部數(shù)據(jù)上訓(xùn)練個(gè)性化層。
G. 全局模型和本地模型混合
為了尋求全局模型和本地模型間的權(quán)衡,每個(gè)客戶端學(xué)習(xí)到的應(yīng)該不是單一的全局模型,而是全局模型和它自己的本地模型的混合。為了解決這一問題,Hanzely提出了一種新的梯度下降法——無環(huán)局部梯度下降法(LLGD)。LLGD只采取步驟求平均,而不是執(zhí)行完全平均。
IV. 總結(jié)
聯(lián)邦學(xué)習(xí)中,當(dāng)本地?cái)?shù)據(jù)集很小且數(shù)據(jù)分布為IID時(shí),全局模型通常優(yōu)于本地模型,并且大多數(shù)客戶端都能從參與聯(lián)邦學(xué)習(xí)過程中受益。但是,當(dāng)客戶端有足夠多的私有數(shù)據(jù)集且數(shù)據(jù)分布為非IID時(shí),本地模型通常比共享的全局模型表現(xiàn)出更好的性能,那么客戶端就沒有參與聯(lián)邦學(xué)習(xí)的動機(jī)。
鑒于此,我們有必要對客戶端建立個(gè)性化模型,這些模型預(yù)期比全局共享模型或本地個(gè)體模型表現(xiàn)更好。
以上就是知識蒸餾聯(lián)邦學(xué)習(xí)的個(gè)性化技術(shù)綜述的詳細(xì)內(nèi)容,更多關(guān)于聯(lián)邦學(xué)習(xí)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
VS2019中Git源代碼管理實(shí)現(xiàn)總結(jié)
這篇文章主要介紹了VS2019中Git源代碼管理實(shí)現(xiàn)總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08在VSCode中如何配置Python開發(fā)環(huán)境
VScode是一個(gè)相當(dāng)優(yōu)秀的IDE,具備開源、跨平臺、模塊化、插件豐富、啟動時(shí)間快、顏值高、可高度定制等等優(yōu)秀的特質(zhì),所以用VScode來編寫Python,也是相當(dāng)?shù)暮糜玫?。所以,今天我們就來講講,怎么在VScode上配置Python開發(fā)環(huán)境。2020-01-01Elasticsearch?在地理信息空間索引的探索和演進(jìn)問題分析
本文梳理了Elasticsearch對于數(shù)值索引實(shí)現(xiàn)方案的升級和優(yōu)化思考,從2015年至今數(shù)值索引的方案經(jīng)歷了多個(gè)版本的迭代,實(shí)現(xiàn)思路從最初的字符串模擬到KD-Tree,技術(shù)越來越復(fù)雜,能力越來越強(qiáng)大,應(yīng)用場景也越來越豐富,感興趣的朋友跟隨小編一起看看吧2022-06-06解決vs?code通過remote-ssh遠(yuǎn)程到ubuntu頻繁掉線問題
這篇文章主要介紹了vs?code通過remote-ssh遠(yuǎn)程到ubuntu頻繁掉線問題解決方法,這個(gè)解決方案只要用自己安裝的Git替換掉windows本身的Git工具,需要的朋友可以參考下2022-09-09Git pull(拉取)及push(上傳)相關(guān)命令介紹
這篇文章主要介紹了Git pull(拉取),push(上傳)相關(guān)命令,git是一個(gè)非常好用的分布式版本管理工具,Git是去中心化,每一個(gè)分支都是一個(gè)中心,并且支持本地倉庫存儲,像如今很多大公司都用git做版本控制。有興趣的話來學(xué)習(xí)一下2020-07-07如何用idea+gitee來團(tuán)隊(duì)合作開發(fā)項(xiàng)目的教程
這篇文章主要介紹了如何用idea+gitee來團(tuán)隊(duì)合作開發(fā)項(xiàng)目,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08