鐘正儀 包衛東 王 吉 吳冠霖,2 趙 翔
1(國防科技大學大數據與決策實驗室 長沙 410003) 2(軍事科學院 北京 100089)
傳統的云計算模式下,云計算中心部署了大量穩定的高性能計算設備,移動手機等終端需要將收集到的數據傳輸到云進行計算,最終得到由云反饋的結果.然而,隨著人工智能、物聯網等新興技術的發展,終端的數據呈海量爆發式增長,為云、端之間的通信鏈路造成不可負擔的傳輸壓力;同時,對于無人駕駛等需要實時反饋的計算任務,遙遠傳輸距離帶來的時延將會帶來不可估量的損失.由于終端設備體積、資源的可得性等限制,難以獨自完成復雜任務的計算,基于此,將云算力下沉、終端算力上移匯聚為邊緣算力成為解決上述問題的一種理想方式[1].在云邊端框架下,原本全部部署在云的模型,分層部署到了云、邊、端,使得簡單任務能夠在邊緣甚至終端層級就能完成,這大大減少了計算時延、緩解了通信壓力.對于上述分層智能模型而言,一個重要特征就是要具備演化能力,然而模型的演化往往基于大量數據,因此對于云端和邊緣模型的演化,需要上傳大量的終端數據,直接導致終端用戶的隱私泄露.
為了保護用戶隱私、最大化將數據控制在用戶終端層面,近年來,聯邦學習(federated learning, FL)成為了一種熱門的面向隱私安全的分布式計算方法.在聯邦學習方法下,假設同一個服務器下各個客戶端的模型架構相同,各客戶端僅需利用本地數據對模型進行訓練,用訓練后的模型參數取代數據上傳到服務器進行聚合,即可以得到一個全局統一的模型,實現多節點的信息融合.因此,本文考慮在云邊端分層框架下引入聯邦學習方法實現該框架下各個節點智能模型的演化更新.然而,傳統聯邦學習存在嚴格的限制:1)客戶端資源無差異,各個客戶端都具備訓練同樣復雜度模型的能力;2)模型全部部署在客戶端,為單層的聯邦學習;3)客戶端有大量的標簽數據供本地模型訓練.這些限制直接制約了聯邦學習在云邊端分層框架的應用:在云邊端框架下,一方面,各計算節點由于所處環境、硬件參數不同,在計算、存儲、通信等資源上存在較大差異;另一方面,在模型分層部署的情況下,單層的聯邦學習不足以滿足所有節點模型演化的需求;此外,客戶端由于人力成本等因素,存在大量無標記數據.
特別地,針對上述聯邦學習的異構問題,Li等人[2]通過在本地損失函數中加入正則項的方式,有效避免了本地訓練模型的過擬合,一度成為異構聯邦學習領域經典的學習方法;Diao等人[3]能夠在不改變模型層數的情況下,橫向降低模型寬度從而實現異構聯邦學習.但上述訓練方法只能得到全局統一的單出口模型,難以滿足云邊端的模型分層部署要求.
因此,本文面向云邊端框架下分層聯邦學習、終端資源異構和大量無標簽數據3個問題,提出一種面向云邊端的分層異構聯邦學習方法,將多分支模型分層部署到云、邊、端各層級,每一層對應一個或多個出口,用于實現快速推理.在智能模型的訓練階段,采用邊緣和云2個級別的雙層聯邦學習,促進各個節點的協同訓練;在邊緣層的聯邦訓練中,考慮到終端的資源異構情況,為終端定制個性化模型,提高其訓練參與度;同時,針對終端存在大量無標簽數據問題,設計半監督學習方法,有效整合無標記數據特征,最終實現云邊端系統在水平和垂直方向上多個異構節點的信息融合.
本文的主要貢獻有3個方面:
1) 提出了新的異構聯邦學習方法.該方法從多分支模型出發,將全局統一模型拆分為適配不同客戶端資源的子模型序列,提高了客戶端參與度和資源利用效率.
2) 創新了上述異構聯邦學習方法下的半監督學習方法.以服務器少量標簽數據訓練的模型為依托,對客戶端無標簽數據進行標記并訓練,使得最終模型能夠有效整合無標簽數據特征.
3) 將聯邦學習應用于模型分層部署的云邊端系統.打破了傳統的單層聯邦學習限制,為云邊端系統開展分布式計算提供了新思路.
聯邦學習最初于2017年由Google公司提出[4].在該框架下,服務器將全局統一的模型分發到各個客戶端進行本地訓練,待訓練結束后上傳模型參數到服務器聚合得到全局模型,從而實現多節點的協同訓練.因為聯邦學習能夠將用戶數據保留在本地進行模型的更新訓練,極大地保護了用戶隱私安全,近年來受到了學術界和工業界的廣泛關注[5].當前,在學術界,主要針對聯邦學習4個關鍵性問題展開研究:通信效率、隱私安全、統計異構和系統異構.針對通信效率問題,盡管聯邦學習利用上傳模型參數代替了原始數據,但是對于手機等帶寬十分有限的移動設備,如何對模型進行壓縮提高通信效率仍然是一個亟待解決的問題,當前主要采取的方式有提高客戶端更新次數[6]、選擇部分客戶端參與迭代[7]以及模型壓縮[8].針對隱私安全問題,保護隱私是聯邦學習提出的首要動因,目前有學者將其與差分隱私[9]、安全聚合[10]等技術結合,進一步加強了聯邦學習的隱私保護能力.在工業界,聯邦學習除了被Google采納,Apple公司還將其應用到iOS 13中快捷鍵盤和“Hey Siri”[11]的語音分類器等應用程序;在金融領域,微眾銀行將其應用于洗錢檢測[12];在醫學領域,其還可被用于新型肺炎患者氧氣需求預測[13]和醫學圖像[14]分析等.針對統計異構問題,由于現實場景下客戶端之間的數據往往來源于不同分布,因而呈現出客戶端傾斜現象,削弱了本地更新的效果[5].針對系統異構問題,由于客戶端裝配的設備面臨的環境不同,可能導致客戶端之間資源水平差距明顯,能夠訓練的模型復雜度上限不同,需要針對客戶端情況定制個性化模型[3].文獻[3]通過降低隱藏層寬度的方法構建了適配于不同設備的不同復雜度的模型,文獻[15]提出了一種能根據資源狀況對客戶端進行管理的聯邦學習協議.一些學者還提出了異步聯邦學習的方法[16-17].本文主要著眼于云邊端聯邦學習中系統異構問題展開研究.由于文獻[3,5-10,15-17]得到的模型為全局統一的單出口模型,難以在云邊端框架下分層部署,且主要針對卷積神經網絡模型,使用范圍有限,因此,本文擬設計一套可適用于多種類模型的、同時易于分層部署的異構學習方案.
此外,針對云邊端分層聯邦學習的研究,文獻[18]將聯邦學習應用到云邊端多層級分布式計算當中,實驗證明分層的聯邦學習不僅可以達到較高的準確率,而且能加快收斂速度.但是,文獻[18]中僅將模型全部部署在終端,未對模型在云邊端分層部署的聯邦學習方法展開研究.據我們所知,當前,對聯邦學習的研究主要集中在單層聯邦、基于終端有標簽數據,面向云邊端系統的雙層聯邦研究仍然較少.因此,本文面向模型分層部署的云邊端系統,從各個分布式節點資源異構的現狀出發,利用終端無標簽數據,就如何實現分層聯邦學習展開研究.
傳統的聯邦學習框架包含一臺中央服務器和大量客戶端,用于計算的智能模型部署在客戶端,通常由客戶端進行模型的訓練和推理任務,服務器扮演著模型參數聚合者的角色.以最常見的聚合方法FedAvg[4]為例,整個聯邦學習過程分為4個階段:
1) 模型下載.每一輪聯邦訓練前,被激活的客戶端需要從服務器端下載本地模型的參數β并加載到本地模型.
2) 本地訓練.基于下載模型,各個客戶端利用本地數據對該模型進行更新.假設共有N個客戶端,學習率為η,F為損失函數,βi和Fi分別為第i個客戶端的模型參數和損失函數值,?Fi(βi)為模型梯度.那么,本地模型采用梯度下降法進行訓練過程表示為
βi=βi-η?Fi(βi),i=1,2,…,N.
(1)
3) 模型上傳.待本地訓練一定次數或模型達到一定精度后,客戶端將參數上傳到服務器進行聚合.
4) 模型聚合.服務器根據各個客戶端數據量對上傳的參數進行加權平均,得到聚合后的模型參數
(2)
其中,Di為第i個客戶端的數據量.將N個客戶端的參數值βi以數據量Di與全局數據量的占比進行加權平均后,得到全局統一的模型β.至此,一輪聯邦學習結束,以上過程反復迭代,直到達到預設的迭代次數或模型精度.然而,上述聚合方法要求客戶端模型統一,在本文提出的異構方法下,各個客戶端模型深度不同,這對傳統的模型聚合的方法(式(2)所示)提出了挑戰.因此,本文對聚合方法進行了創新,將其分為同構聚合和異構聚合2個階段,最終實現異構模型之間的聚合.
多分支模型由Teerapittayanon等人[19-20]提出,通過在深度模型中插入提前退出分支的方式實現快速推理.該模型的一個潛在假設是,樣本從某一分支提前退出所消耗的計算量小于從后續任一出口退出所消耗的計算量.
在模型的訓練階段,當前主要有2種訓練方式:1)模型的主干和分支出口協同訓練;2)分開訓練.協同訓練時,采用加權損失反向傳播機制,即以各個出口退出的樣本量占總樣本量的比例為權重,計算各個出口對應的損失及梯度,采用隨機梯度下降法對模型進行更新.當主干和分支分開訓練時,常采取知識萃取的技術,先訓練最后一個出口,再以最后一個出口為教師模型對其他出口進行訓練.
在模型推理階段,針對退出模型的判斷機制,當前主流的退出方式有2種:
1) 閾值退出法.與Branchynet[19]相似,采用熵作為判斷計算結果能否退出模型的依據,以分類任務為例,熵定義為
(3)
其中,C表示所有的分類種類,yc表示樣本為類別c的概率.當某一出口處的熵值小于設定閾值T時,認為在該出口處的計算結果足夠可靠,可以提前退出網絡,反之則不能,需要進入更深一層的網絡進行計算.
2) 比例退出法.即訓練結束后,根據每個分支的測試準確率占所有分支準確率之和的比例確定樣本退出的比例.若全局模型有K個分支出口,每個出口的測試準確率可以表示為acci(i=1,2,…,K),那么每個出口退出樣本數占全局樣本數的比例pi為
(4)
在云邊端分層框架下,云端和邊緣通常被認為具備充分的資源保障任務計算的順利開展,然而終端節點可能因為所處環境、硬件參數的差異,在計算資源、通信資源、存儲資源存在較大差距.例如在戰場環境下,出于隱蔽目的,部分節點由于處于低洼地帶導致通信不暢;部分節點因受到敵方打擊導致計算資源、存儲資源遭到部分摧毀.而上述資源正是保證智能模型演化的重要支撐,在傳統的聯邦學習框架下,往往是將一個全局統一的模型分發給被選中參與訓練的客戶端,極容易出現模型和資源不匹配導致客戶端訓練失敗的現象.因此,有必要設計一種異構的聯邦學習方法,提高客戶端參與度,有效利用客戶端資源.
基于2.2節中所述多分支模型,在深度學習背景下,考慮到不同分支與分支前的主干網絡天然構成一個可以獨立完成訓練和推理任務的完整子模型,且因分支在主干模型中插入的深度不同,不同分支對應的子模型構成的序列天然為一個不同復雜度的模型序列.模型復雜度越大,消耗的計算資源、存儲資源、通信資源越多,因此,本文考慮通過在深度模型中間插入分支并將其拆分為分支子模型的方式,構建適應不同客戶端資源狀況的子模型,盡可能使得聯邦學習過程中被選中的客戶端都能有效利用本地資源進行訓練.本文中的主要符號說明如表1所示:

Table 1 Annotations of Main Symbols
在本文的云邊端分層框架下,首先在全局深度模型中間插入2個提前退出分支(分別為圖1中的出口2、出口3),作為模型分層部署的切分點.其次,為解決終端節點資源異構問題,在終端模型(出口2及之前的模型)中間插入一個提前退出分支(出口1),用于對終端模型的拆分.以圖1中的拆分為例,全局模型共有4個出口分支,在出口2、出口3進行切分,出口1、出口2與其主干網絡構成的模型部署在端,出口3與之前的主干網絡構成的模型部署在邊,所有出口與整個主干網絡構成的模型部署在云.由于端模型具有2種出口,可以拆分為2種不同復雜度的模型,由此可以構成二級異構.因此,在該框架下,終端模型之間存在異構現象,各個邊緣的模型為同構模型,每個邊緣下有多個終端,假設同一邊緣下的終端簇中包含終端所有的異構模型種類.
在本文提出的方法中,我們假設,終端存在大量無標簽數據,邊緣和云端存在少量標簽數據.具體的訓練過程(見算法 1)可以分為邊緣聯邦、云端聯邦以及云端訓練3個階段.在邊緣層次的聯邦階段(行①~),各邊緣將終端兩出口模型(出口1和出口2)拆分為異構單出口模型(僅含出口1或出口2)并分發給其下適配終端;待終端本地利用無標簽數據訓練E1次后,上傳到各自邊緣聚合為兩出口模型(行⑨);最后,邊緣利用本地標簽數據對其進行微調(行),得到新一輪的終端兩出口模型,如此訓練T1次.在云端層次聯邦階段,各邊緣首先利用前一階段邊緣聯邦得到的終端兩出口(出口1+出口2)模型參數初始化邊緣模型中對應的主干部分(行~);再基于本地標簽數據,訓練由出口3與其之前的主干網絡構成的單出口模型E2次;最后,各邊緣將訓練得到的本地和終端整體模型上傳到云聚合,如此迭代T2次,得到出口3及其主干模型的參數.在云端訓練階段,云利用前一階段得到的模型主干參數初始化本地模型對應的主干部分(行),再基于云端有標簽數據,對所有主干和出口進行整體訓練E3次得到全局模型參數.

Fig. 1 The framework of hierarchically heterogeneous federated learning for cloud-edge-end system圖1 云邊端系統分層異構聯邦學習框架
算法1.分層異構聯邦學習
輸入:邊緣數量N、學習率η、邊緣聯邦次數T1、云端聯邦次數T2、終端本地訓練次數E1、邊緣本地訓練次數E2、云端本地訓練次數E3;
輸出:全局模型參數W.
① for 邊緣i=1,2,…,Ndo
/*各邊緣聯邦*/
② 邊緣預訓練終端多出口模型;
③ for 邊緣迭代次數t1=0,1,…,T1-1 do
④ 邊緣i拆分并分配異構子模型到各終端;
⑤ for 邊緣i下終端j=1,2,…,nido
⑥ for 終端訓練次數e1=0,1,…,
E1-1 do


⑧ end for
聚合;
⑩ end for
/*云端聯邦*/
部分;
do
η?Li(t2,e2);

(5)
(6)

(7)

本節前述內容展示了仿真實驗的過程.值得注意的是,在現實分布式場景下,邊緣和終端設備往往執行分布式的并行計算.因此,將大大降低算法1的時間復雜度.此外,在每一輪聯邦學習過程中,客戶端本地訓練的次數E1,E2通常較小(≤20),從而降低了對邊緣和終端計算資源的要求.
考慮到人工成本等因素,直接產生數據的終端往往存在大量未標記數據,為了有效利用無標簽數據.本文在3.1節所述的邊緣聯邦階段設計了一種半監督聯邦學習方法.

(8)

圖1所示的云邊端分層框架可分為縱向節點信息融合和橫向節點聯合學習2個層級的方法.針對云邊端縱向節點信息融合的過程,依次執行邊緣聯邦、云端聯邦和云端訓練3個步驟.以上3個步驟層層遞進,模型不斷加深,每一階段的學習都利用上一階段的學習結果對本階段模型的對應部分進行初始化,并基于此進一步訓練.每一階段的訓練過程都采用加權平均法FedAvg進行聯邦訓練,其收斂分析見文獻[5].針對橫向節點聯合學習過程,由于終端模型存在異構現象,不適用于傳統的聯邦學習收斂性分析.因此,本文主要就終端異構聯邦學習的收斂性進行分析.
我們將整個異構模型的聚合看作主干聚合和分支聚合2部分,下面將分別就主干聚合和分支聚合的收斂性進行分析.首先針對主干聚合,若全局網絡共有K個分支,那么整個主干網絡將被分支切分為K個部分并依次構成主干模型序列,分別為{ωi(1)(t1),ωi(2)(t1),…,ωi(k)(t1),…,ωi(K)(t1)},其中i表示第i個邊緣,ωi(k)(t1)表示全局主干網絡中第k個出口和第k-1個出口之間的模型.主干模型之間分別為輸入和輸出的關系,例如,ωi(1)(t1)的輸出為ωi(2)(t1)的輸入,ωi(K)(t1)的輸入為ωi(K-1)(t1)的輸出.我們考慮采用歸納法證明主干模型的收斂性,因此可以將主干網絡收斂性的證明分解為2個問題:
問題1.當k=1時,對應的主干子模型收斂,即ωi(1)(t1)收斂;
問題2.當k>1時,ωi(k-1)(t1)收斂時,ωi(k)(t1)也收斂.
證明前,我們先進行5個假設.
假設1.被分解后的每部分主干網絡ωi(k)(t1)都可以獨立完成模型的訓練推理任務,且前一部分主干網絡的輸出為后一部分網絡的輸入.




其中,x和y為隨機變量.
假設4.邊緣i下客戶端j的隨機梯度的均值和方差滿足關系:
假設5.邊緣i下客戶端j與邊緣聚合梯度的二范數存在上限:
首先,我們證明問題1中ωi(1)(t1)的收斂性,當ωi(1)(t1)收斂時,應滿足公式:
(9)
其中B1為上限值,若該值隨著異構聯邦迭代次數T1的增加逐漸降低,則意味著出口1前的主干模型參數隨著迭代次數的增加不斷接近全局最優解,實現收斂.ωi(1)(t1,e1)為第t1次聯邦過程中各個客戶端第e1次本地訓練的平均模型參數,為了實現出口1前主干模型ωi(1)的收斂,需要滿足2個條件:

(10)


(11)
其中F(t1,0)為第t1次聯邦學習開始前所有的歷史信息.
條件1為中心式學習場景下實現模型收斂的條件;條件2則基于條件1的基礎上,考慮到分布式場景,限制了各個客戶端模型參數的變化的方差.通過分析,可以得到2個引理:


(12)

(13)
上述2個引理的證明詳見附錄A和附錄B,結合式(12)和式(13)可以得到結論:

(14)

針對問題2中鏈式收斂問題,當ωi(k-1)(t1)收斂時,ωi(k)(t1)也收斂.因此,在ωi(k-1)(t1)收斂的前提下,當ωi(k-1)(t1)輸入給定時,ωi(k-1)(t1)的輸出確定.由于在假設1中,各部分主干網絡呈輸入輸出關系output(ωi(k-1)(t1))=input(ωi(k)(t1)),那么可以得到當ωi(k-1)(t1)收斂時,ωi(k)(t1)的輸入確定.此時,若要實現ωi(k)(t1)收斂,則存在上限Bk,使得:
Bk,
(15)
其中若Bk隨著迭代次數的增加而降低,則實現ωi(k)(t1)收斂,其分析過程與ωi(1)(t1)相同,此處不再贅述,問題2得證.
因此,我們得到:1)當k=1時,ωi(k)(t1)收斂;2)當ωi(k-1)(t1)收斂時,ωi(k)(t1)收斂.由歸納法可得,主干網絡中的每一部分均收斂,最終整個主干網絡收斂.
針對分支收斂性的證明,由于單類的分支網絡僅存在于一種異構客戶端簇下,在聯邦學習過程中僅參與同構聚合,這與傳統的聯邦學習過程一致,具體收斂性分析過程參見模型ωi(1)(t1)的收斂性分析.
在實驗部分,我們將以Lenet卷積神經網絡的變體為模型,分別在MNIST和FashionMNIST數據集上進行驗證,如圖2所示.驗證模型包含4個退出出口,第1,2兩個出口及之前的模型部署在終端,第3個出口及之前的模型主干部署在邊緣,最后一個出口及其之前的模型部署在云端.2組數據集均含有60 000張訓練圖像數據和10 000張測試圖像數據.由于本文面向云邊端分布式場景,因此構建了由1個云、5個邊緣和250個終端構成的分布式框架,其中每個邊緣包含50個終端.在邊緣層次的聯邦學習中,每一個邊緣下將有10個終端被隨機選擇參與訓練;在云端層次的聯邦學習中,將有3個邊緣被隨機選擇參與訓練.

Fig. 2 Multi-exit convolutional neural network圖2 多出口卷積神經網絡
考慮到半監督學習場景,本文將60 000張訓練數據集做如下分配:隨機選擇1 000張有標簽數據分配給云端;隨機選擇5 000張有標簽數據平均給各個邊緣,每個邊緣分別擁有1 000個訓練樣本;剩下的54 000張為無標簽數據,按數量平均分配給250個終端節點,每個終端分別擁有216個訓練樣本.實驗將分別在獨立同分布(independent and identically distributed, IID)和非同獨立同分布(non-IID)兩種情形下進行檢驗,針對獨立同分布,本文在邊緣和終端分配樣本的過程中都進行隨機均勻地分配,以實現樣本在各個終端之間、邊緣之間獨立同分布.針對非獨立同分布,在邊緣數據的分配過程中,首先將邊緣5 000張樣本按照標簽順序依次排列并平均切分為20部分,每部分包含250張圖片,每個邊緣從中隨機選取4部分,形成邊緣節點數據之間的非獨立同分布;終端節點的數據分配方法與之相同,將排序后的54 000個樣本分為750部分,250個終端隨機從中選取3部分作為本地樣本.綜上,形成了邊緣和終端2個層次的非獨立同分布.
實驗中采用SGD作為訓練優化器,MNIST數據集的學習率為0.01,FashionMNIST數據集的學習率為0.05,在每一輪聯邦學習過程中,客戶端更新次數為20.為了分別研究異構聯邦學習方法和分層聯邦學習方法的可行性,本文將在這2種分布情形下分別進行驗證.同時,本節實驗還將驗證異構聯邦學習方法在資源利用效率上的提升.
本節將在終端和邊緣數據均為獨立同分布和均為非獨立同分布的2種情形下,對異構聯邦學習方法進行研究.對比框架為近年提出的異構學習方法FedProx[2]和同構學習方法FedAvg[4],與本文方法不同的是,以上2種方法在各個邊緣向終端分配模型時,每個終端都收到同樣的模型,該模型由出口2及其之前的主干網絡構成.為了實驗的公平性,在2種對比的聯邦學習方法中,仍采用本文提出的半監督學習方法對模型進行訓練.由于邊緣之間在數據處理、訓練模型、學習方法上沒有明顯區別,為了使結果展示更加簡潔直觀,本文僅從所有邊緣中挑選部分進行展示.
5.2.1 獨立同分布
圖3和圖4給出了在MNIST和FashionMNIST數據集下,不同邊緣的異構聯邦學習和同構聯邦學習訓練得到的模型效果對比折線圖.其中實線為通過本文提出的聯邦學習方法得到模型的準確率;長虛線為傳統的同構聯邦學習方法FedAvg訓練得到模型的準確率;短虛線為FedProx得到的模型準確率.總體而言,無論是針對MNIST還是FashionMNIST數據集,本文提出的異構方法學習得到的模型準確率收斂值整體優于FedAvg和FedProx.其中,MNIST數據集下,本文方法收斂值比FedAvg提升約4%,比FedProx提升約3%;FashionMNIST數據集下,本文方法平均可以達到86%,而FedAvg和FedProx平均收斂值均為80%左右,二者相差約6%.但是,值得注意的是,從折線的走勢和波動幅度來看,FedAvg和FedProx方法下模型的收斂速度和收斂平穩性更佳,這一點在FashionMNIST數據集上體現更為明顯.

Fig. 4 Performance of different heterogeneous methods when FashionMNIST is IID圖4 FashionMNIST獨立同分布時不同異構方法 的表現
針對本文提出的聯邦學習方法收斂值更優的問題,本文通過在一個完整的深度模型中間插入分支的方式,構建出復雜度更小的適配資源緊張終端的子模型.在本地學習階段,各個終端僅需利用本地數據對本地子模型進行訓練更新,無需考慮后續模型的參數對本地訓練損失的影響.降低正常大模型更新過程中模型前后的耦合性,一定程度上增大了整個終端全局模型的搜索空間,從而能夠在更大空間內找到最優模型.
針對本文提出的聯邦學習方法收斂速度更慢和收斂平穩性更差的問題,在同一輪迭代過程中,不同深度的子模型因為自身模型特征限制,能夠達到的最高準確率不相同.由于本文方法中終端模型既有出口1對應的子模型,又有出口2對應的子模型,而其他方法下僅有出口2對應的子模型,因此本文方法在收斂進程上存在較差的模型對較優模型拖累的現象,從而減緩收斂進程,增大波動幅度.
5.2.2 非獨立同分布
當終端大量的無標簽數據和邊緣少量帶標簽數據都呈現出非獨立同分布時,5.2.1節中的結論仍然成立,如圖5和圖6所示.在MNIST數據集下,本文方法的平均準確率約為60%,且不同邊緣之間的模型收斂值差距小于5%,與FedProx基本持平;而FedAvg的平均準確率約為40%,且不同邊緣之間的收斂值差距大,受數據分布不均衡的影響,收斂值相差最大的邊緣甚至可以達到20%.在Fashion-MNIST數據集下,本文方法的平均準確率約為50%,且不同邊緣之間的模型收斂值差距最大為15%;FedAvg的平均準確率約為40%,最大收斂值之差為20%;FedProx的平均準確率也在40%左右.由此可以看出,通過插入分支實現的模型異構可以讓學習在更廣闊的的空間內搜索,這在一定程度上可以補足由數據異構帶來的缺陷.

Fig. 5 Performance of different heterogeneous methods when MNIST is non-IID圖5 MNIST非獨立同分布時不同異構方法的表現

Fig. 6 Performance of different heterogeneous methods when FashionMNIST is non-IID圖6 FashionMNIST非獨立同分布時不同異構方法 的表現
針對分層聯邦學習的研究,對比框架分別為無聯邦學習(也可稱為“本地學習”)和僅邊緣層級的聯邦學習.在無聯邦學習的情況下,各個節點僅在“云邊端”垂直結構上進行協同學習,終端節點之間、邊緣節點直接不再進行協同的聯邦學習.因此,為了保證單一節點能在垂直方向上學習得到完整模型,在同一層節點之間不應存在模型異構問題,即終端上全都部署出口2與其之前的主干模型構成的子模型,邊緣上全都部署出口3構成的子模型.各個終端通過與對應邊緣交互進行半監督學習得到本地出口2模型;待本地訓練完畢后上傳至邊緣初始化邊緣模型對應部分,各個邊緣隨即利用本地標簽數據對初始化模型(出口3對應的模型)進行訓練;接著,將訓練完畢的邊緣模型上傳至云端初始化云端模型對應部分;最后,云端利用本地標簽數據對邊緣初始化的模型進行訓練得到最終模型.僅邊緣層級聯邦學習的情況下,模型部署方式與無聯邦學習框架相同,此時模型在終端之間同構.不同之處在于,同一邊緣下的終端在本地學習之后要上傳模型到對應邊緣進行聚合,迭代多次得到終端模型,而不僅僅是本地學習.
5.3.1 獨立同分布
圖7和圖8分別展示了在獨立同分布情形下不同聯邦學習方式的模型表現.橫軸表示迭代次數,縱軸為不同學習框架,顏色深淺變化反映了模型表現的變化情況.如右側標尺所示,顏色越深代表模型的準確率越低,顏色越淺則準確率越高.從圖7和圖8中可以看出,無論是針對MNIST還是FashionMNIST數據集,雙層聯邦學習得到的模型在收斂值、收斂速度以及收斂穩定性方面均具有明顯優勢.在MNIST數據集中,采用"邊緣+云端"雙層聯邦學習方法訓練的模型僅迭代不到10次,熱力圖的顏色變化就趨于穩定,模型達到收斂;而采用單層聯邦學習或無聯邦學習,則需要迭代30余次.在FashionMNIST數據集中,采用雙層聯邦學習的方式不僅在收斂速度上更快,而且從顏色的深淺變化來看,雙層聯邦學習的曲線更平穩.

Fig. 7 Performance of different federated learning frameworks when MNIST is IID圖7 MNIST獨立同分布不同聯邦學習框架的 模型表現

Fig. 8 Performance of different federated learning frameworks when FashionMNIST is IID圖8 FashionMNIST獨立同分布時不同聯邦學習 框架的模型表現
這是因為,相較于單層聯邦學習和無聯邦的本地學習而言,在“邊緣+云端”雙層的聯邦學習方法下,邊緣和云端的聯邦能夠定期將各個終端、邊緣本地訓練的模型特征進行整合,使得最終得到的全局模型綜合了各個分布式節點的數據特征.不僅提高了直接表現為測試準確率的模型泛化能力,而且加快了模型的收斂速度.
5.3.2 非獨立同分布
與獨立同分布情形相同,在非獨立同分布情形下,“邊緣+云端”的雙層聯邦學習仍然在收斂值、收斂速度、收斂平穩性上展現出絕對的優勢,如圖9和圖10所示.在MNIST數據集下,模型迭代約10次時達到收斂;而在單層和無聯邦情形下,需要迭代近60次.在FashionMNIST數據集下,雖然在收斂速度上的優勢略微減小,但在收斂穩定性上展現出了絕對優勢.

Fig. 9 Performance of different federated learning frameworks when MNIST is non-IID圖9 MNIST非獨立同分布不同聯邦學習框架的 模型表現

Fig. 10 Performance of different federated learning frameworks when FashionMNIST is non-IID圖10 FashionMNIST非獨立同分布時不同聯邦學習 框架的模型表現
為不同資源狀態的終端適配不同復雜度的模型,不僅可以有效提高資源弱勢終端的參與率,相比于采用大模型進行同構學習,還可以有效降低整個聯邦學習過程中計算、通信以及存儲資源的開銷.考慮到在各終端數據量相同的情況下,資源開銷與數據分布情況相關性較弱.因此,本節將在MNIST數據集呈現出獨立同分布的情形下進行實驗驗證,具體的衡量指標為每一輪迭代過程中所有參與客戶端的每秒浮點運算次數之和、傳輸參數量之和以及模型所占存儲空間之和.同時,考慮到FedAvg和FedProx均采用全局統一的客戶端模型,按照FedAvg和FedProx這2種方法學習產生的資源開銷相當,因此,本節僅將本文方法與FedAvg的資源開銷情況作比較.現隨機從云邊端學習框架中挑選一個邊緣,針對其邊緣異構和同構學習資源開銷情況進行測試,得到如圖11、圖12、圖13所示的結果.

Fig. 11 Accuracy varing with computation resource overhead圖11 模型準確率隨消耗的計算資源的變化

Fig. 12 Accuracy varing with communication resource overhead圖12 模型準確率隨消耗的通信資源的變化

Fig. 13 Accuracy varing with storage resource overhead圖13 模型準確率隨消耗的存儲資源的變化
從圖11~13可以看出,無論是計算資源、通信資源還是存儲資源,通過本文方法學習得到的模型不僅準確率更高,而且消耗的資源更少.準確率高的原因已經在5.2節中進行了說明,消耗的資源更少是因為在訓練過程中融入了更多復雜度更低的模型,從而總體上減少了計算資源、通信資源和存儲資源的開銷.
在新興的云邊端計算范式下,為同時實現用戶隱私的保護和模型智能性的穩步提升,聯邦學習成為一種熱門的面向隱私安全的計算方法,本文就如何在云邊端系統下應用聯邦學習方法以保護隱私展開研究.具體而言,針對該系統的分層特點,打破了傳統單層聯邦學習的枷鎖,設計了面向云邊端系統的雙層聯邦學習框架,并可拓展至多層聯邦學習;針對由終端設備所處環境、硬件參數不同導致的資源異構問題,提出了異構聯邦學習方法,通過在深度模型中間插入提前退出分支的方式,構建適配不同終端資源狀態的子模型序列;針對終端存在大量無標簽數據現象,提出了面向異構聯邦學習的半監督學習方法,利用服務器預訓練得到的適配子模型為終端數據預測偽標簽,并基于此對模型進行訓練,有效整合了無標簽數據的特征.實驗結果表明,相比于傳統的同構聯邦學習方法、單層聯邦學習方法以及本地學習方法,本文提出的方法不僅能夠在模型準確率上取得明顯優勢,而且能夠顯著降低計算資源、通信資源、存儲資源的開銷.
作者貢獻聲明:鐘正儀負責完成實驗并撰寫論文;包衛東提出指導意見并修改論文;王吉提出算法思路和實驗方案;吳冠霖協助完成實驗;趙翔提出算法思路指導意見.