本文簡易框架demo原始碼
背景
- 問題定義
- 在聯邦學習場景中,客戶端通過交換模型梯度或更新后的模型引數,不暴露私人資料,從而合作訓練一個共享的全域模型,但是容易存在惡意攻擊的行為,分別是惡意客戶端和中央服務器對模型或資料的攻擊,導致存在安全性問題,
- 中央服務器的穩定性、公平性和安全性對FL至關重要,簡單結合區塊鏈,利用智能合約執行聚合、存盤、共享全域模型可以避免中央服務器帶來的挑戰,但是給維護區塊鏈的客戶端節點造成巨大的計算量和網路傳輸壓力,從而區塊鏈的共識效率低下,可擴展性較差,
- 主要貢獻
- 提出一個基于區塊鏈委員會共識機制的聯邦學習框架(BFLC)
- 從技術上討論了BFLC的可擴展性,包括委員會節點管理,惡意節點攻擊分析,存盤優化
- 在真實資料集上證明了BFLC的有效性,通過模擬惡意攻擊來驗證安全性,
- 本文優勢
- 實作去中心化聯邦,利用區塊鏈上的智能合約進行全域模型存盤和本地模型更新交換
- 利用創新的委員會共識機制,減少共識計算量,提高安全性、共識效率、可擴展性
- 安全性(鏈下委員會選舉,交叉驗證)
- 高效性(鏈上委員會共識, m 2 m^{2} m2的PBFT共識)
方法
架構圖

區塊鏈存盤

- 定義區塊大小:每一個區塊的存盤大小為一個全域模型或本地模型更新的學習資訊
- 存盤流程:
- 初始化的全域模型被放入第一個區塊
- 節點訪問最新的全域模型區塊并執行本地訓練,上傳模型更新并生成一個區塊
- 當滿足一定的模型更新區塊時,智能合約自動聚合模型更新,將新一輪的全域模型放入新的區塊
- 符號和元資料定義:
- 每一輪需要的模型更新為:k
- FL通信輪次為:t
- 第 t 輪次的全域模型的區塊為:第 t × ( k + 1 ) t \times (k+1) t×(k+1)區塊
- 其中 [ t × ( k + 1 ) + 1 , ( t + 1 ) × ( k + 1 ) ? 1 ] [ t\times (k+1) +1, (t+1) \times (k+1) -1] [t×(k+1)+1,(t+1)×(k+1)?1]區塊包含更新資訊的區塊
- 全域模型區塊學習資訊:
- 塊頭
- 通信輪次 t t t
- 全域模型
- 模型更新的區塊學習資訊:
- 塊頭
- 通信輪次 t t t
- 本地更新的梯度
- 上傳者的地址
- 更新的得分
委員會共識機制Committee Consensus Mechanism (CCM)
- 思想
- 委員會在區塊鏈中通常被視為可信的、固定數量的節點,通過委員會選舉機制可選舉出每一輪參與共識的區塊鏈節點,從而提高共識演算法的效率,
- 而本文提出一種安全的委員會選舉機制,賦予委員會節點驗證模型更新和塊生成的職責,智能合約依據上一輪委員會對其他訓練節點模型的評分進行模型聚合,以及從訓練者中選舉出下一輪委員會節點,其中同一個節點不會同時擔任委員會和訓練者的角色,所以委員會節點不會連任,
- 優點
- 高效:只需要少數的節點(委員會節點)參與共識,而不需要所有節點參與共識
- K折交叉驗證:委員會節點不作為訓練節點,因此,在對訓練節點模型更新進行評分時,可以將委員會的本地資料視為驗證集,隨著委員會的交替擔任,可以實作k折交叉驗證
- 抵御惡意節點:基于委員會對模型更新的評分,智能合約將選取表現好的節點作為下一輪委員會,即:所選取的委員會節點的本地資料分布與整體資料分布相似且該節點不是惡意的,
模型訓練
上述機制可以解決以下兩個挑戰:
- 本地資料可能不是獨立同分布的:
- 模型更新在所有委員會本地資料上進行驗證評分,選取表現較好的模型聚合,提高全域模型的泛化性
- 設備可能不是總是可用的
- 每一輪僅挑選部分節點的模型聚合,設備可以在可用時主動獲取全域模型進行本地訓練,從而參與到任意一輪的聯邦學習中
委員會選舉策略
- 隨機選舉:從訓練節點中隨機選取委員會節點,提高了模型的泛化性,減少了過擬合,但對惡意攻擊的抵抗力較弱
- 基于評分選舉:選舉評分較高的訓練節點作為下一輪的委員會節點,但是由于可能選取的委員會節點在下一輪會不參與,因此也會增加驗證集的不均勻性,但會帶來更多的安全性和穩定性,給惡意節點攻擊帶來較大成本
- 多因素的優化:考慮設備的多個因素(如:網路帶寬)以及模型驗證評分,但是多個因素考慮帶來計算成本
惡意節點分析
假設所有節點數量為 N N N,委員會節點數量為 M M M,剩余節點 N ? M N-M N?M為訓練節點
- 第一種情況:惡意更新只有當超過 M 2 \frac{M}{2} 2M?的委員會節點共謀同意才會接受,也就意味著這些惡意的委員會節點也是通過上一輪超過 M 2 \frac{M}{2} 2M?的惡意委員會節點共謀選舉出來,因此只要在第一輪委員會中存在超過 M 2 \frac{M}{2} 2M?的誠實節點,則不會有惡意節點危害全域模型
- 第二種情況:假設惡意節點占領委員會節點一般之前都不會進行惡意攻擊,因此,每個節點被選舉的概率相同,定義節點數量為
A
A
A,則委員會的比例為
p
p
p,惡意節點的比例為
q
q
q,從而將惡意節點攻擊成功的概率定義為惡意節點占據委員會節點數量的一半的概率,如下:
P ( 攻 擊 成 功 ) = ∑ i = ? A × p 2 ? A × q ( A × q i ) ( A × ( 1 ? q ) ) i ) ( A A × p ) \begin{aligned} P(攻擊成功)=\frac{\sum_{i=\left \lceil \frac{A\times p}{2} \right \rceil}^{A\times q}\binom{A\times q}{i}\binom{A\times (1-q))}{i}}{\binom{A}{A\times p}} \end{aligned} P(攻擊成功)=(A×pA?)∑i=?2A×p??A×q?(iA×q?)(iA×(1?q))?)??
其中 ? ? ? \left \lceil \cdot \right \rceil ???為向上取整, ( X Y ) \binom{X}{Y} (YX?)為從X中取Y個的組合數,當 q < 0.5 q<0.5 q<0.5時,隨委員會節點 p p p的增大,惡意攻擊的成功率幾乎減少為0,并且,當 q > 0.5 q>0.5 q>0.5時,惡意攻擊成功率才會顯著上升,因此,共謀攻擊者需要付出巨大的算力代價,才能對模型造成影響,

實驗
資料集和實驗設定
- 資料集
- FEMNIST
- 805263個樣本和3550個用戶的手寫體字符
- 包含62個類別
- 客戶端
- 數量:900個
- 每一輪參與的節點比例:k%
- 其中設定委員會節點比例為40%
- 本地資料集數量不平衡并且是non-iid
- 模型設定
- AlexNet模型
- 對比基線
- 基準的FedAvg
- 集中訓練
- CwMed
無惡意攻擊下準確率

- 結論:BFLC的性能接近基準的FL,并且僅比集中訓練的準確率稍微下降了一點,
惡意攻擊下的準確率

- 場景設定:在訓練的程序中存在惡意攻擊的節點,一旦全域模型聚合了惡意節點上傳的模型,則全域模型的性能將降低
- 設定每一輪中參與訓練節點中惡意節點的比例
- 結論:BFLC框架對惡意節點攻擊具有魯棒性
傳輸成本

- 結論:分布式的聯邦學習自然明顯增加網路傳輸的成本,但是在存在惡意節點的場景下,BFLC相比其他基于區塊鏈的基準FL、CwMed可以用較少的網路傳輸成本達到較高的準確率,因此,BFLC具有較高的性能和具有較好的穩定性,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/321350.html
標籤:區塊鏈
上一篇:libsecp256k1位元幣演算法密碼開源庫(四)
下一篇:找區塊鏈方向的研究生同學
