聯邦學習(電子工業出版社)——讀書筆記(3)
第四章 橫向聯邦學習
橫向聯邦學習的定義
橫向聯邦學習也稱為按樣本劃分的聯邦學習,可以應用於聯邦學習的各個參與方的資料集有相同的特徵空間和不同的樣本空間的場景,類似於在表格檢視中對資料進行水平劃分的情況。
橫向聯邦學習中通常假設只有伺服器才能使得資料參與方的隱私安全受到威脅。
文獻[35]的作者提出了一種適用於模型引數聚合的加法同態加密方法,能夠抵禦聯邦學習系統裡的中央伺服器竊取模型資訊或者資料隱私。
橫向聯邦學習架構
客戶-伺服器架構
在這種系統中,具有同樣資料結構的K個參與方(也叫作客戶或使用者)在伺服器(也叫做引數伺服器或者聚合伺服器)的幫助下,協作地訓練一個機器學習模型。
參與方將梯度資訊傳送給伺服器,伺服器將收到的梯度資訊進行聚合(例如,計算加權平均),再將聚合的梯度資訊傳送給參與方。我們稱這種方法為梯度平均。
參與方在本地計算模型引數,並將它們傳送至伺服器。伺服器對收到的模型引數進行聚合(例如,計算加權平均),再將聚合的模型引數傳送給參與方。我們稱這種方法為模型平均。
表4-1 模型平均和梯度平均的比較
方法 | 優點 | 缺點 |
梯度平均 |
|
|
模型平均 |
|
|
在協同學習過程中,若有一個惡意的參與方訓練生成對抗網路(GAN),將可能導致系統容易遭受攻擊。
對等網路架構
在該框架下,不存在中央伺服器或者協調方。在這種架構中,橫向聯邦學習系統的K個參與方也被稱為訓練方或分散式訓練方。每一個訓練方負責只使用本地資料來訓練同一個機器學習模型(如DNN模型)。此外,訓練方們使用安全鏈路在相互之間傳輸模型引數資訊。為了保證任意兩方之間的通訊安全,需要使用例如基於公共金鑰的加密方法等安全措施。
迴圈傳輸
在迴圈傳輸模式中,訓練方們被組織成一條鏈。第一個訓練方(即鏈首)將當前模型引數傳送給它的下一個訓練方。該訓練方接收來自上游的模型引數後,將使用來自本地資料集的小批量資料更新收到的模型引數,直到鏈尾再將模型傳輸給鏈首,然後持續重複。
隨機傳輸
與迴圈傳輸相似,模型也是一傳一,但是訓練方選擇的傳送物件是隨機選擇的,這一方法也叫做Gossip學習。
全域性模型評估
模型效能可以表現為精確度(precision)、準確度(accuracy)和召回率(recall)等。
對於對等網路架構,由於不存在中央協調方或者中央伺服器,要得到全域性模型效能將會更為複雜。一種可能的方式是選取某一個參與方來充當一個臨時的協調方。
然而,假如我們在聯邦模型訓練期間使用這種方法,將會給臨時協調方造成過多負擔,而這可能不適合移動型訓練方或者資源有限的IoT裝置(例如,電池電量受限的IoT裝置)。
聯邦平均演算法介紹
聯邦優化(一些挑戰)
- 資料集的非獨立同分布:由不同參與方擁有的資料可能有著完全不同的分佈,即我們不能對分散式資料集進行IID假設。
- 不平衡的資料量:對於一個資料中心的分散式優化,可能將資料均勻地分配到各工作機器中。然而在現實環境中,聯邦學習的不同參與方通常擁有不同規模的訓練資料集。
- 資料很大的參與方
- 慢速且不穩定的通訊連線
在聯邦學習中,相對於整個資料集的規模來說,任何單一的在某一臺裝置上的資料集都是相對較小的,而現代智慧手機都擁有相對較快的處理器。因此,相對許多模型而言,計算代價相比通訊代價是微乎其微的。
聯邦平均演算法
對於一般的非凸目標函式,在模型引數空間中的模型平均可能會產生一個很差的聯邦模型,甚至可能導致模型不能收斂。
Dropout訓練方法的成功經驗為聯邦模型平均方法提供了一些直觀的經驗解釋。Dropout訓練可以被理解為在不同的共享模型引數的架構中的平均模型。
安全的聯邦平均演算法
我們可以使用加法同態加密,具體如Pailliar演算法,或者基於帶錯誤學習的加密方法,來加強聯邦平均演算法的安全屬性。
AHE是一種半同態加密演算法,支援加法和標量乘法操作(即加法同態和乘法同態)。
由於AHE擁有這兩個很適用的特性,可以直接將AHE方法用於聯邦平均演算法,確保相對於協作方或者伺服器的安全性。
諸如AHE這類方法,可以很容易地加入原始的聯邦平均演算法中,以提供安全的聯邦學習,其中的同態加密演算法能夠抵禦選擇明文攻擊。
加密操作和解密操作將會提高計算的複雜度,並且密文的傳輸也會增加額外的通訊開銷。AHE的另一個缺點是,為了評估非線性函式,需要使用多項式近似。
聯邦平均演算法的改進
通訊效率提升
當存在大量參與方時,從參與方上傳模型引數至協調方將成為聯邦學習的瓶頸。為了降低通訊開銷,研究者提出了一些改善通訊效率的方法。
壓縮的模型引數更新
參與方正常計算模型更新,之後進行本地壓縮。壓縮的模型引數更新通常是真正更新的無偏估值,這意味著它們在平均之後是相同的。
結構化的模型引數更新
首先,通過去除冗餘來刪除DNN內的某些連線,只保留最重要的連線部分。其次,量化權重,從而使得更多連線共享同一個權重值,只保留有效權重。最後,使用哈夫曼編碼以利用又凶啊權重的偏倚分佈。
參與方選擇
在文獻[13]中, 參與方選擇的方法被推薦用來降低聯邦學習系統的通訊開銷和每一輪全域性聯邦模型訓練所需的時間。然而,文獻13並未提出任何用於參與選擇的具體方法。文獻[235]的作者介紹了一種用於參與方選擇的方法,共包含兩個步驟。第一是資源檢查,即向隨機篩選出來的參與方傳送資源查詢訊息,詢問它們的本地資源以及與訓練任務相關的資料規模。第二步是協調方使用這些資訊估計每一個參與方計算本地模型更新所需的時間,以及上傳更新所需的時間。之後,協調方將基於這些估計決定選擇哪一個參與方。在給定一個全域性迭代輪次所需的具體時間預算的情況下,協調方希望選擇儘可能多的參與方。
相關文章
- 《聯邦學習》——個人筆記(二)聯邦學習筆記
- 聯邦學習:多工思想與聚類聯邦學習聯邦學習聚類
- 《3D列印與工業製造》—— 讀書筆記3D筆記
- 讀書筆記3筆記
- 多工學習分散式化及聯邦學習分散式聯邦學習
- 聯邦學習 2020-3-15聯邦學習
- 讀書筆記-增量學習-Large Scale Incremental Learning筆記REM
- 《揭祕跨境電商》讀書筆記筆記
- 讀書筆記筆記
- 騰訊安全聯邦學習應用服務白皮書聯邦學習
- react小書學習筆記React筆記
- 《讀書與做人》讀書筆記筆記
- 電子書閱讀 AppAPP
- 程式碼整潔之道--讀書筆記(3)筆記
- tensorflow學習筆記3筆記
- Vue學習筆記3Vue筆記
- mysql學習筆記3MySql筆記
- Vue 3 學習筆記Vue筆記
- 《數學之美》讀書筆記&思考筆記
- [讀書筆記]跟阿銘學Linux筆記Linux
- 機器學習讀書筆記:貝葉斯分類器機器學習筆記
- webpackDemo讀書筆記Web筆記
- Vue讀書筆記Vue筆記
- 散文讀書筆記筆記
- Cucumber讀書筆記筆記
- HTTP 讀書筆記HTTP筆記
- postgres 讀書筆記筆記
- 讀書筆記2筆記
- 烏托邦漂流者的Java學習筆記12Java筆記
- 讀書筆記3-卡頓優化篇筆記優化
- 讀書筆記(四):深度學習基於Keras的Python實踐筆記深度學習KerasPython
- 強化學習-學習筆記3 | 策略學習強化學習筆記
- 沃頓商學院讀書筆記一筆記
- “平板電視”學習筆記筆記
- 人工智慧-機器學習-深度學習-電子書大全人工智慧機器學習深度學習
- swift學習筆記《3》-技巧Swift筆記
- Vue3 學習筆記Vue筆記
- docker學習筆記(3)- 映象Docker筆記