聯邦學習論文研究(基於卷積神經網絡的聯邦學習算法研究)


  • 聯邦學習綜述

三大研究方向:聯邦優化算法、通信開銷和隱私保護。

聯邦優化算法:非獨立同分布且不平衡的隱私性數據,數據集分布在不同的客戶端上且不可以直接獲取,客戶端本身特征導致數據非獨立同分布性。客戶數量的分布,在聯邦優化算法中可能需要面對成千上百的客戶端參與。

通信效率:在實際的場景應用中,客戶端往往會受到通信帶寬以及能量資源等的限制。這種場景中,聯邦學習算法設計應該考慮到在有效的帶寬資源下實現更加高效的數據傳輸。

隱私保護:無論在任何聯邦學習的算法中,隱私保護往往是最核心的要求。在整個聯邦學習算法過程中要在有效聯合學習的前提下,保證用戶數據不會被泄露。(機器學習系列--差分隱私 - 知乎 (zhihu.com)

 

聯邦學習分類:

1. 按樣本特征維度分類:

 一般情況下都是默認數據是按樣本的維度進行划分的,也就是一個客戶端持有一部分樣本,另一個客戶端持有另一部分樣本。在特征維度,這兩部分樣本特征的屬性應該是相同的,這種類型可以叫做橫向聯邦學習。另一類在特征維度進行划分,這種情況下,同一個樣本的一部分特征可能存在一個客戶端上,而另一部分的特征可能存在其他的客戶端上,該樣本在多個客戶端上的特征集合能更加全面的表征這個樣本,這種類型也被叫做縱向聯邦學習

2. 按學習場景分類:

聯邦學習的一個分類依據是聯邦學習場景中相關要素,可以將聯邦學習分為兩類:跨設備 (cross-device) 聯邦學習,跨孤島 (cross-silo) 聯邦學習

在跨孤島 (cross-silo) 聯邦學習中,模型是訓練在一種多數據孤島的場景下,每個客戶端就是一個數據孤島,其可以一個獨立的組織或者數據中心。跨設備 (cross-device) 聯邦學習類似於跨孤島 (cross-silo) 聯邦學習,這里設備一般指手機或者物聯網設備,因此客戶端是數量是非常巨大的。

在分布式學習和跨孤島 (cross-silo) 聯邦學習中所有的客戶端都是一直有效的。在跨設備 (cross-device) 聯邦學習中每個時間節點只有小部分客戶端是有效的,剩余客戶端會由於某種原因則處於離線的狀態,比如手機設備關機。

在分布式和跨孤島 (cross-silo) 聯邦學習中客戶端在整個連接的過程中是相對可靠的,而在跨設備 (cross-device) 聯邦學習中客戶端是高度不可靠的,在通信過程中客戶端會以一定的概率失敗或者掉線。

結果應用目的的不同,可以將聯邦學習分為全局聯邦學習和個性化聯邦學習。一種為聯合全局模型學習,該模型為每個客戶端提供相同的服務,常見的應用場景為多個銀行聯合各自私有的用戶數據聯合學習用戶風控模型。另一種為聯合個性化模型學習,對每個客戶端都會學習一個對應的個性化模型,實現個性化的服務,一種常見的應用場景為手機設備上根據用戶習慣的推薦等算法。

 

 聯邦學習訓練過程:

 

 

 聯邦模型壓縮算法:

當聯邦學習中使用更加復雜模型或者接入客戶端過多之后就會導致聯邦學習的性能變差,為了解決這個問題引入聯邦模型壓縮算法。

表征壓縮:表征壓縮結果是原始數據的無偏估計,不同的是存儲壓縮之后的參數會需要更加少的比特數,從而實現了參數壓縮的目的。

表征壓縮算法的基本流程為:首先優化算法需要更新所有的參數,然后再對參數進行壓縮。假設模型的原始參數是 w,表征壓縮之后的參數為 ˆw。無偏估計意味着表征壓縮參數的期望等於原始參數。在表征壓縮算法中,一般有稀疏掩碼和概率量化兩種方法。

一般而言,只有少部分特征對模型有貢獻,大部分特征對模型沒有貢獻或者貢獻很小,稀疏參數的引入,使得一些特征對應的參數是0,所以就可以剔除可以將那些沒有用的特征,從而實現特征選擇,提高模型的泛化能力,降低過擬合的可能。

在稀疏掩碼中可以假設每次更新的參數是稀疏的,這樣每個客戶端上只需要更新部分參數,在通信過程中由於更新參數是原始參數的一個子集,故傳輸參數的數量也會減少,從而達到減少通信開銷的目的。在實現中,在客戶端上每次會基於一個隨機種子生成一個稀疏掩碼,該稀疏掩碼服從伯努利分布,概率參數為p。該稀疏掩碼的維度和模型參數的維度是相同的,只有稀疏掩碼為 1 的部分參數才會被客戶端發送到服務器端。

概率量化的方法是通過減少每個模型參數存儲比特數來實現的。當然概率量化的方法也是屬於表征壓縮的方法,所以其也需要首先完成參數的更新的計算,然后對所有更新的參數進行壓縮,每個參數的量化是相互獨立的。

結構壓縮:對於結構壓縮的方法,算法會將壓縮的步驟和整個優化的過程結合起來,也就是在模型優化的過程中已經實現了參數壓縮的目的。

在結構壓縮中,在參數優化的過程中會結合壓縮的步驟和參數更新的步驟,優化的過程中和傳統的算法並沒有區別,優化器只需要通過最小化損失函數更新參數即可。一般而言網絡輕量化設計就是一種結構壓縮的方法。

 

  • 基於子類個性化的聯邦學習算法

在客戶端,融合了原學習算法MAML(一文入門元學習(Meta-Learning)(附代碼) - 知乎 (zhihu.com)),對初始化模型進行學習;

元學習:在機器學習中,訓練單位是一條數據,通過數據來對模型進行優化;數據可以分為訓練集、測試集和驗證集。在元學習中,訓練單位分層級了,第一層訓練單位是任務,也就是說,元學習中要准備許多任務來進行學習,第二層訓練單位才是每個任務對應的數據。

在服務器端,針對需向客戶端下發多個個性化模型的情況,基於模型學習中的梯度相似性,建立客戶端之間的相關性;

 

個性化聯邦數據集:

假設原始的數據集為 D,該數據集上含有的類別的數目為 k,對於每個類別所含有的數據記作 Dk。對於客戶端,假設參與個性化聯邦學習的客戶端數量為 N。對於每個客戶端,其擁有的實際類別數量為 kc, 2 ≤ kc≤ k。假設非獨立同分布的數據類型為數據偏移類型,即每個客戶端上特征數據 P(X) 分布不同,但是條件概率的分布 P(Y|X) 是相同的。

首先將原始數據集D的每個類別根據客戶端的數量划分為相等數量的數據集,例如將D1划分為四個部分,然后根據客戶端數據集是否為獨立同分布,進行不同策略的采樣。如果是獨立同分布,就首先確定每個客戶端共同服從的分布,具體而言是從K個類別中選取Kc個類別作為總體分布,再從每個類別當中隨機抽取一個划分好的數據(上圖中 Dk的小方塊)。如果是非獨立同分布的,則在非獨立同分布采樣中每個客戶端都會獨立采樣 K 個類別,作為該客戶端服從的數據類別的分布。然后再從每個類別對應的數據划分中選取一個小的划分,任意兩個客戶端都不會被分配到同一個划分。

 

個性化聯邦學習算法:

在獨立同分布下的聯邦平均算法的梯度相似性接近於1,而在非獨立同分布下的聯邦平均算法的梯度相似性在不同客戶端下的差異較大。

不同位置網絡層上相似性均值變化。在非獨立同分布中,對於底層特征,其相關性的均值會較高層的特征高一些。這個現象表明,也許在神經網絡中不同層和本身任務的相關性是不一致的,底層更加關注於一些共同的特征,高層更加關注於一些任務相關特征。

基於上述兩點,實現個性化聯邦學習算法可以從一下幾點考慮:

下發模型的時候能否具有更好的個性化屬性,即相比於聯邦學習算法能否更快更好的收斂到每個客戶端特定的任務上。

由於每個客戶端上的數據及任務的差異,每個客戶端應該有更加個性化的融合策略,而不是平均聚合的方式。對於卷積神經網絡來說,其權重參數對於個性化的貢獻是不相等的。不同層或許可以有不同的融合策略。

個性化應當同時關注客戶端和服務器。

 

MAML算法與聯邦學習算法:

 

在聯邦學習的客戶端更新中采用MAML的內層更新就可以實現基於MAML聯邦平均算法

 

子類個性化聯邦學習算法:

引入了一個相關性的關系矩陣 R,用於建模不同客戶端之間的關系。R(i, j) 表示客戶端 i 和客戶端 j 之間的相關性。相關性矩陣其應該具有這樣一種屬性:如果兩個客戶端上的數據分布相似的時候,相關性的值是比較高的,相反相關性是比較低的。通過在聚合各個客戶端上下發模型參數的時候加入相關性的信息,這樣對於每個客戶端其接收的下發模型參數都是和其本身的特征是緊密相關的,不同的客戶端接收的是可能完全不相同的模型參數,這樣就解決了個性化的問題。

 

加入相關性參數直觀的解釋,對於一個客戶端,在那些具有和自己有着相似分布的客戶端具有更高的相關性系數,在模型聚合的時候也能夠更大程度的利用相似客戶端提供的信息。另一方面,在那些不同分布的客戶端上就會更低的相關性系數,對於自身更新參數而言,會引入更加少的負增益,這樣就做到了更好的個性化。

由於梯度本身對於方向性是極其敏感的,當相似性處於負值的時候,和原始的梯度相乘就會導致梯度的反向。這里基於 softmax 對於 sim 矩陣進行歸一化,最終客戶端的相似性關系計算如下

 由於相關性矩陣是基於梯度計算得到的,隨着訓練的不斷進行每個客戶端上參數發生變化,基於梯度計算的相關性也可能會發生變化。因此對相關性矩陣,在訓練的過程中需要定時進行更新,定義定時更新的周期為 Γ。每次更新的時候,會將所有的客戶端的參數做一次平均聚合,基於該共同的參數,計算相關性矩陣。算法以每次聚合的點來看,還是類似於聯邦平均算法,但是每次聚合中間的訓練輪次,每個客戶端都是根據其相關性矩陣得到個性化模型。

 

 

 

 

 

 實驗結果:

 

 

 當數據集為 N.I.I.D.情況下,SPFL 的結果是最好的,而且比起其他的方法具有比較明顯的優勢,證明了本文提出的個性化算法的有效性。

  • 基於參數量化和參數分解的聯邦學習通信壓縮算法(待補充)

梯度壓縮:減少客戶端和服務器之間通信開銷

模型壓縮:減小客戶端上模型的大小

計算壓縮:模型在客戶端上的訓練更加高效

 

一種基於量化分解的模型參數壓縮算法:

基於自然壓縮算子的參數壓縮法:

 

 

 

 

 

 

 自適應偏移量化算子的參數壓縮算法:

定義量化損失的方差為 E[|Cnat(t) − t|2]。可以發現當 a 為整數時有最小的量化方差 0,這個時候是沒有精度損失的。當處於中間區間時候,量化誤差的值會從小變大然后從大變小。中間的區域總是有着比較大的量化誤差。

直接對原始的輸入 t 進行量化,對於每個參數會引入一個偏移因子 s,對 t/s 進行量化,令 α = log(|t/s|)。這里我們引入了一個偏移因子的集合 S, s ∈ S。在這個集合中包括一些特定的偏移因子,假設這個偏移因子集合中包含的偏移因子的數量為 |S|,那么對於每個偏移因子只需要 log(|S|)長度 bit 的編碼。只要保證原始自然壓縮編碼的長度和偏移因子的長度小於 32 比特的長度,仍然能達到參數壓縮的目的。

通過合適的偏移 s,可以將本來處於中間的區間偏移到處於端點的區間,達到降低壓縮分布的方差目的。當被量化的點剛好處於中間點的時候,原始量化的情況下是有着比較大的量化誤差,通過引入偏移值就可以將量化誤差變為 0。當需要從量化后的變量中恢復原始數據的時候,除了需要量化后的值,還需要加入偏移值 s 的相關信息。對於長度為 |S| 的划分區間,對於步長的編碼需要的碼位長度為 log(|S|)。在使用上述算法的時候,初始的客戶端和服務器上根據預先的實驗設計提前計算好每個偏移對應的 s 值。在服務器和客戶端通信的過程中只需要傳輸最佳的 s 值對應的編碼。

基於參數分解的參數壓縮方法:

卷積層與全連接層參數分解:相比於原始的深度可分離卷積,將卷積核也在空間維度上進行了分解。相當於融合了空間可分離卷積(空間可分離卷積簡單地將卷積核划分為兩個較小的卷積核。)和深度可分離卷積。

深度可分離卷積 - 知乎 (zhihu.com)

重建誤差最小策略的優化算法:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM