蘆效峰 廖鈺盈 Pietro Lio Pan Hui
1(北京郵電大學網(wǎng)絡空間安全學院 北京 100876)
2(劍橋大學計算機實驗室 英國劍橋 CB3 0FD)
3(香港科技大學計算機科學與工程學院 香港 999077)
機器學習已經(jīng)逐步地改變我們生活、學習、工作的方式,其在語音、圖像和文本識別[1],語言翻譯等方面都取得巨大突破.谷歌、Facebook和蘋果等大型公司從用戶端收集大量訓練數(shù)據(jù),實現(xiàn)大規(guī)模的深度學習網(wǎng)絡.雖然深度學習的實用性是不可否認的,但其使用的訓練數(shù)據(jù)卻可能涉及嚴重的隱私問題:數(shù)百萬人的照片、視頻被集中收集,這些數(shù)據(jù)被大公司永遠地保存,用戶既不能刪除這些數(shù)據(jù),也不能控制這些公司如何使用數(shù)據(jù).其次,圖像和視頻中很可能包含大量敏感信息[2],如面孔、車牌、電腦屏幕、其他人的對話等.互聯(lián)網(wǎng)巨頭壟斷這些“大數(shù)據(jù)”,獨享數(shù)據(jù)背后巨大的經(jīng)濟效益.
眾所周知,隨著訓練數(shù)據(jù)量的增大,多樣化的增多,機器學習所訓練的模型會變得更好.然而,在許多領(lǐng)域,尤其與醫(yī)學相關(guān)的領(lǐng)域,法律規(guī)定不允許共享與個人相關(guān)的數(shù)據(jù).自2017年6月1日《中華人民共和國網(wǎng)絡安全法》開始實施,個人信息安全被列入重點保護范圍,國家對隱私條款提出了明確的要求,進一步完善了對個人信息的保護.因此,相關(guān)行業(yè)的研究人員只能對屬于他們自己機構(gòu)的數(shù)據(jù)集進行分析和挖掘.如果單個組織(如特定的醫(yī)療診所)所擁有的數(shù)據(jù)量不是非常大,并且相似度較高,多樣化不足,則在這樣的數(shù)據(jù)集上進行機器學習,研究人員最終可能得到擴展性較差的模型,或者容易產(chǎn)生過擬合的結(jié)果.在這種情況下,數(shù)據(jù)的隱私和機密性的限制明顯影響了機器學習的效果.
另一方面,目前全球物聯(lián)網(wǎng)進入了第3次發(fā)展浪潮.2018年全球物聯(lián)網(wǎng)連接數(shù)約為80億個[3],這些物聯(lián)網(wǎng)設備產(chǎn)生大量的數(shù)據(jù).在傳統(tǒng)云計算架構(gòu)中,這些數(shù)據(jù)需要集中傳輸?shù)皆贫诉M行處理,這會加大網(wǎng)絡負載,造成傳輸擁堵和數(shù)據(jù)處理的延遲.因此,傳統(tǒng)云計算已經(jīng)不適用于邊緣物聯(lián)網(wǎng)設備過多的情況.于是,一種新型的計算模型應運而生——邊緣計算[4].邊緣計算是指在靠近物或數(shù)據(jù)源頭的一側(cè),就近提供計算、存儲等服務.相比數(shù)據(jù)集中式的云計算模型,邊緣計算在網(wǎng)絡的邊緣處理數(shù)據(jù),這樣能夠降低網(wǎng)絡帶寬負載、減少請求響應時間、提升電池續(xù)航能力的同時保證數(shù)據(jù)的安全性和私密性.

然而,面向邊緣網(wǎng)絡的聯(lián)邦學習在實現(xiàn)中面臨諸多挑戰(zhàn).首先,面向邊緣網(wǎng)絡的聯(lián)邦學習中,因為任何一個獨立的邊緣設備所擁有的數(shù)據(jù)都是有限的,所以單獨訓練時,每個參與者的學習模型都容易陷入局部最優(yōu).其次,聯(lián)邦學習中節(jié)點學習的梯度數(shù)據(jù)間接反映了訓練樣本的信息,攻擊者能從有效的梯度信息反推出樣本數(shù)據(jù),需要降低梯度通信量來降低隱私泄露的可能性.
針對以上挑戰(zhàn),本文提出一種面向邊緣計算的高效異步聯(lián)邦學習機制(efficient asynchronous federated learning mechanism for edge network computing, EAFLM),可以實現(xiàn)在不共享數(shù)據(jù)的前提下對多方數(shù)據(jù)進行學習,實現(xiàn)更自由更高效的聯(lián)邦學習.相比傳統(tǒng)的分布式學習,EAFLM各節(jié)點獨立地在自己本地的數(shù)據(jù)集上進行訓練,在不影響準確率的前提下賦予參與學習者更多的自由度和隱私保護.使用其他參與者學習的模型來優(yōu)化本地學習的模型參數(shù),可以有效地幫助每個參與者逃避局部最優(yōu)并使他們能夠探索其他值,從而產(chǎn)生更準確的模型.
本文探討了異步聯(lián)邦學習的不同情況,對邊緣節(jié)點異步聯(lián)邦學習提出了雙重權(quán)重的解決方案.異步聯(lián)邦學習旨在為邊緣學習節(jié)點提供更自由的學習方式,且降低高自由度帶來的精度損失.本文的主要貢獻有3個方面:
1) 區(qū)別于現(xiàn)有的分布式學習系統(tǒng),提出一種更適合邊緣網(wǎng)絡中離散節(jié)點協(xié)作學習的異步聯(lián)邦學習機制,使節(jié)點在不共享隱私數(shù)據(jù)的前提下從數(shù)據(jù)中進行學習.
2) 在前人工作的基礎上設計了一種閾值自適應的梯度壓縮算法,在將梯度通信次數(shù)壓縮至原通信次數(shù)的8.77%時,測試集上準確率僅降低0.03%.
3) 為了適應邊緣節(jié)點在進行模型訓練時間上的隨機特性,對異步聯(lián)邦學習進行深入的探索,提出了雙重權(quán)重的方法來解決異步學習帶來的性能降低問題.
許多研究者在分布式機器學習方面做了大量工作,已經(jīng)有基于云的大規(guī)模分布式系統(tǒng)投入使用.許多系統(tǒng)支持多種數(shù)據(jù)處理方案,包括模型并行和數(shù)據(jù)并行[9-10].
常見的分布式架構(gòu)中包含數(shù)據(jù)中心,該數(shù)據(jù)中心一般以參數(shù)服務器的形式存在.參數(shù)服務器允許大量的學習節(jié)點在共享的全局神經(jīng)網(wǎng)絡模型上進行協(xié)作學習[11-12].這一研究領(lǐng)域?qū)W⒂谌绾卧O計高效的服務器架構(gòu),快速處理大小為109~1012的向量.目前分布式學習的學習節(jié)點都是電腦等存儲和計算較強且網(wǎng)絡連接穩(wěn)定的設備,對于諸如移動手機等性能較為波動的設備則少有關(guān)注.
聯(lián)邦學習架構(gòu)的出現(xiàn)吸引了許多學者的關(guān)注,其中關(guān)于Non-IID數(shù)據(jù)集和數(shù)據(jù)不平衡問題[13]是其中一大研究重點.而關(guān)于節(jié)點學習模式方面的研究一直都集中于同步學習算法,如McMahan等人[5]的聯(lián)邦學習平均算法采取同步訓練的方法;聯(lián)邦學習中的隱私保護如差分隱私[8]和安全聚合[14]都需要在設備上進行同步操作,所以本質(zhì)上還是屬于同步訓練的范疇.此外,研究人員開始嘗試在車對車通信[15]和醫(yī)療應用[16]等領(lǐng)域?qū)崿F(xiàn)聯(lián)邦學習.
由于聯(lián)邦學習需要與大量的學習節(jié)點進行梯度交互,而這些交互通信不僅帶來巨大網(wǎng)絡通信帶寬,還存在安全隱患.有研究表明,可以通過從共享的梯度數(shù)據(jù)中獲取隱私訓練數(shù)據(jù)[17],研究者首先隨機生成一對“虛擬的”輸入和標簽(dummy data and label),然后執(zhí)行通常的前向傳播和反向傳播.從虛擬數(shù)據(jù)導出虛擬梯度之后,他們沒有像傳統(tǒng)優(yōu)化那樣更新模型權(quán)重,而是更新虛擬輸入和標簽,以最大程度地減小虛擬梯度和真實梯度之間的差異.當攻擊結(jié)束后,私人數(shù)據(jù)便完全暴露了出來.值得注意的是,整個過程不需要訓練數(shù)據(jù)集的任何額外信息.文中還給出一些能有效防止隱私泄露的方法,其中包括梯度量化和稀疏化.數(shù)據(jù)顯示,當壓縮率大于20%時,梯度壓縮能有效地防止樣本信息泄漏.
梯度量化和稀疏化不僅能保證樣本數(shù)據(jù)的隱私安全,還能減輕網(wǎng)絡的負載,克服分布式學習模型中的通信瓶頸[18].
梯度量化將梯度量化成低精度值以降低通信帶寬.Frank等人[19]提出1-bit SGD(stochastic gradient descent)以減少梯度傳輸數(shù)據(jù)大小,并在傳統(tǒng)語音應用中實現(xiàn)10倍加速.Dan等人[20]提出了另一種稱為QSGD(quantized SGD)的方法,它平衡了準確度和梯度精度之間的權(quán)衡.類似于QSGD,Wen等人[21]開發(fā)了使用3-level梯度的TernGrad.這2項工作都展示了量化訓練的收斂性.但是TernGrad僅對CNN進行了實驗,QSGD也僅計算了RNN損失的精度.DoReFa-Net[22]嘗試量化整個模型,包括梯度,使用1 b的權(quán)重和2 b的梯度量化.
Strom等人[23]使用閾值來實現(xiàn)梯度稀疏化——僅發(fā)送大于預先定義的恒定閾值的梯度.但是,在實踐中閾值是難以選擇的.因此,Dryden等人[24]分別選擇了固定比例的正梯度和負梯度;Aji等人[25]提出了gradient dropping,使用單一絕對值閾值對梯度進行稀疏化.為了保持收斂速度,gradient dropping需要添加一個標準化層[26];gradient dropping可節(jié)省99%的梯度交換,同時在機器翻譯任務中僅導致0.3%的BLEU損失;同時,Chen等人[27]提出根據(jù)局部梯度活動自動調(diào)整壓縮率,并在數(shù)學上進行了證明,實現(xiàn)了對于完全連接層的200倍壓縮,卷積層的40倍壓縮,而在ImageNet數(shù)據(jù)集上降低的Top-1精度可忽略不計.Chen等人[28]提出了LAG(lazily aggregated gradient),自適應地對梯度進行計算并跳過部分梯度通信,以減少通信帶寬并減輕服務器壓力.基本原則是檢測變化緩慢的梯度,并對這些梯度進行壓縮.LAG很有參考價值,但對優(yōu)化的問題進行了限制:優(yōu)化問題是凸問題且是Lipschitz平滑的.
本文提出的EAFLM中的梯度壓縮屬于梯度通信稀疏化的范疇,但與前文提到的方案不同,在本文中無需探索一個最優(yōu)的梯度閾值,因為尋找最優(yōu)閾值的工作是困難的,且不同問題對應的閾值也是不同的,限定梯度閾值也會使得異步聯(lián)邦學習框架的擴展性降低.
如果將學習對象擴散到邊緣節(jié)點,同步訓練變得難以實現(xiàn)且不切合現(xiàn)實需求.雖然也有少數(shù)學者采用了異步學習方法,但僅是將異步作為一種正則化方法[29],缺少對異步聯(lián)邦學習進行詳細系統(tǒng)的研究,而且在大多數(shù)研究中各異步聯(lián)邦學習參與節(jié)點所處的學習輪數(shù)是相差無幾的,實質(zhì)上還是當作同步聯(lián)邦學習研究的.異步聯(lián)邦學習中各節(jié)點學習輪數(shù)相差較大,甚至學習進程是完全錯開的,這跟同步聯(lián)邦學習情況是截然不同的.聯(lián)邦學習過程由并聯(lián)到串聯(lián)的轉(zhuǎn)變,不僅增加了總體學習時間,降低學習效率,還影響人工智能模型的精度,而這類型的異步聯(lián)邦學習問題目前仍缺乏關(guān)注.本文對這類型的異步聯(lián)邦學習問題進行了研究,降低了由異步聯(lián)邦學習帶來的精度損失.
聯(lián)邦學習(federated learning)是一種新興的人工智能基礎技術(shù),其設計目標是在保障終端數(shù)據(jù)和個人數(shù)據(jù)安全的前提下,在多參與方或多計算節(jié)點之間開展高效率的機器學習.其中,聯(lián)邦學習可使用的機器學習算法不局限于神經(jīng)網(wǎng)絡,還包括隨機森林等重要算法.
如圖1所示,聯(lián)邦學習機制由1個參數(shù)服務器和多個邊緣節(jié)點組成,參數(shù)服務器負責收集各參加節(jié)點上傳的梯度,根據(jù)優(yōu)化算法對模型各參數(shù)進行更新,維護全局參數(shù);參與節(jié)點獨立地對本地擁有的敏感數(shù)據(jù)集進行學習.每輪學習結(jié)束后,節(jié)點將計算的梯度數(shù)據(jù)上傳至參數(shù)服務器,由服務器進行匯總更新全局參數(shù).然后節(jié)點從參數(shù)服務器下載更新后的參數(shù),覆蓋本地模型參數(shù),進行下一輪迭代.整個學習過程中,節(jié)點只與參數(shù)服務器通信,除了共同維護的全局參數(shù)外節(jié)點無法獲取有關(guān)其余節(jié)點的任何信息,保障隱私數(shù)據(jù)的機密性.

Fig. 1 Schematic diagram of the federal learning mechanism圖1 聯(lián)邦學習機制示意圖
面向邊緣網(wǎng)絡的聯(lián)邦學習需要與多個邊緣學習節(jié)點進行模型數(shù)據(jù)的交互,這帶來高昂的通信代價.經(jīng)研究發(fā)現(xiàn)分布式SGD中99.9%的梯度交換是冗余的,當參與學習的邊緣節(jié)點數(shù)量增多時,這些冗余的梯度所需要的通信成本是不可忽視的,而且會給予參數(shù)服務器較大的通信壓力,跳過節(jié)點的部分通信能有助于減輕通信負荷.且在聯(lián)邦學習中,節(jié)點在執(zhí)行梯度通信前會停止訓練直至獲得返回的最新參數(shù),因此,梯度壓縮還有助于減少聯(lián)邦學習的總體模型訓練時間.
圖2所示為面向邊緣網(wǎng)絡計算的高效異步聯(lián)邦學習機制框架圖,框架分為參數(shù)服務器層和邊緣節(jié)點層,其中閾值自適應模塊處于邊緣節(jié)點層,異步聯(lián)邦學習模塊橫跨2層.

Fig. 2 Asynchronous federated learning mechanism foredge network computing圖2 面向邊緣網(wǎng)絡計算的高效異步聯(lián)邦學習框架
閾值自適應模塊分為自適應閾值計算和梯度通信壓縮2個子模塊,分別負責根據(jù)最新參數(shù)變化計算閾值和使用閾值對不符合的梯度通信進行壓縮.
由于邊緣節(jié)點具有高度自由性,因此強迫所有節(jié)點同時進行訓練變得不切實際.異步聯(lián)邦學習則分為4個子模塊:參數(shù)更新、梯度修正、雙重權(quán)重計算和節(jié)點學習狀態(tài)監(jiān)控.節(jié)點學習狀態(tài)監(jiān)控子模塊負責監(jiān)控節(jié)點學習狀態(tài)如學習所處的輪數(shù)與樣本數(shù)量等;雙重權(quán)重計算子模塊根據(jù)節(jié)點學習信息計算對應的樣本權(quán)重和參數(shù)權(quán)重,具體計算方法在第4節(jié)進行介紹;梯度修正子模塊將節(jié)點上傳的梯度根據(jù)雙重權(quán)重進行修正;而修正完的梯度則被用于參數(shù)更新子模塊進行全局參數(shù)更新.
閾值自適應模塊與異步聯(lián)邦學習模塊不是相互獨立的,自適應的閾值計算需要獲取更新后的參數(shù),并與歷史參數(shù)進行比較.而壓縮后的梯度通信影響了節(jié)點學習狀態(tài),進而影響雙重權(quán)重的計算.
梯度壓縮是指對節(jié)點與服務器之間的梯度通信進行壓縮,即壓縮單個節(jié)點與參數(shù)服務器的通信次數(shù).在前人的工作中,無論是簡單地引入通信壓縮率,還是根據(jù)固定閾值作為梯度檢查的判別條件,都存在諸多不足之處.因為不同學習過程中梯度變化程度是不同的,簡單地根據(jù)壓縮率隨機選取壓縮的節(jié)點容易忽略擁有較大信息量的梯度,對全局模型訓練造成影響;而固定閾值則會對梯度通信進行過度壓縮,在訓練的后期造成模型波動不易收斂的結(jié)果.
在EAFLM中,節(jié)點自動適應模型訓練過程中每輪梯度的變化,計算出合適的閾值來對梯度通信進行壓縮.只有符合條件的節(jié)點才能獲取對應輪次的與參數(shù)服務器通信的資格,否則在本地累計梯度信息,進行下一輪學習迭代,最終梯度會累計足夠的信息量上傳到參數(shù)服務器.無論節(jié)點是否獲得該輪的通信資格,在下一輪學習結(jié)束后都要進行梯度檢查,即梯度檢查是貫穿節(jié)點的整個學習過程.
本文對梯度壓縮中的自檢表達式進行研究,并在數(shù)學上進行了推導驗證.
表1對本文所涉及的符號進行解釋:

Table 1 The Meaning of the Symbol表1 公式中符號的表示含義



(1)
“懶惰”節(jié)點的定義可以說是閾值自適應梯度壓縮的關(guān)鍵部分,不同的定義不僅會導致被忽略的信息量的不同和算法的壓縮率,還會影響模型的準確率.在本文中,“懶惰”節(jié)點集合ML滿足:

(2)
設更新參數(shù)的優(yōu)化算法為梯度下降算法(gradient descent),即:

(3)
其中,α是學習率.將式(3)代入式(2)可得:

(4)

(5)
若節(jié)點i∈ML滿足式(6),則式(2)一定能被滿足:

(6)
由于集合ML的總數(shù)無法事先獲取,所以為了簡化問題,我們引入比例系數(shù)β來衡量集合ML的節(jié)點總數(shù),即mL=βm.整理式(6)可得:

(7)
θk-θk-1的獲取是困難的,但由于學習過程中參數(shù)變化趨于平滑,因此本文將θk-θk-1近似為
(8)

將式(8)代入式(7)可得:
(9)
式(9)為節(jié)點進行梯度檢查的自檢表達式,即節(jié)點在1輪學習結(jié)束之后執(zhí)行自檢操作.需注意的是,不滿足式(9)則與參數(shù)服務器通信;滿足則跳過本輪通信,本地累計梯度,繼續(xù)執(zhí)行下一輪學習.
相較于傳統(tǒng)聯(lián)邦學習,本文的方法對網(wǎng)絡帶寬等設備配置的依賴性較小.因為帶寬影響了節(jié)點傳輸時間,較低的帶寬會導致節(jié)點每輪學習時間的增大,從而延長總體學習時間,因此若要控制總體學習時間,則需對帶寬配置進行限制.但經(jīng)梯度壓縮后的聯(lián)邦學習中梯度通信次數(shù)減少,受帶寬影響的輪數(shù)也隨之降低,因此理論上,本文的方法對帶寬等配置的需求與未壓縮的傳統(tǒng)方法來比較小,能更好地適應帶寬有限的網(wǎng)絡.
EAFLM面向的對象是高度自由的邊緣節(jié)點,有許多因素都會引起異步學習,如加入學習的時間不同、節(jié)點的計算力不同(相同訓練任務所需的時間不相同)、梯度壓縮、由各種外部因素導致的學習中斷等.本文提出參數(shù)權(quán)重來解決異步聯(lián)邦學習問題.
異步聯(lián)邦學習中節(jié)點存在學習樣本不均、學習進度各異等問題.如圖3所示,圖3中直線表示當前時間,淺色部分表示已經(jīng)完成的學習任務,深色帶底紋部分表示還未進行的學習任務.所有節(jié)點的學習總輪數(shù)是相同的,與時間線交差的部分表示當前所處的迭代輪次.圖中的各個節(jié)點是處于學習的不同階段,如節(jié)點1處于學習進程的50%,若總輪數(shù)為1 000輪,則節(jié)點1處于第501輪.

Fig. 3 Asynchronous federated learning圖3 異步聯(lián)邦學習
樣本數(shù)量可以一定程度上反映樣本多樣性,基于高復雜度數(shù)據(jù)訓練的模型具有更好的擴展性.而模型訓練的過程可以理解為模型的“學習”的過程,一般地,隨著時間的推移,模型越接近問題的最優(yōu)解.如圖3中,這些節(jié)點與學習問題最優(yōu)解的距離是不同的,因此這些差異較大的的節(jié)點對參數(shù)服務器中的全局參數(shù)進行平等的更新顯然是不合理的.我們引入雙重權(quán)重來解決異步學習中節(jié)點學習狀態(tài)不均衡的問題.
面向邊緣網(wǎng)絡計算的高效異步聯(lián)邦學習機制的權(quán)重分為2部分:樣本權(quán)重和參數(shù)權(quán)重.樣本權(quán)重是由節(jié)點的樣本數(shù)量與總樣本數(shù)量的占比決定,而參數(shù)權(quán)重則受梯度的目標參數(shù)與當前全局參數(shù)在時間上的相近程度所影響.
定義1.樣本權(quán)重.代表一個節(jié)點所擁有的樣本與總節(jié)點的樣本總數(shù)的占比大小.
n個學習節(jié)點的集合為N={N1,N2,…,Nn},其中每個節(jié)點對應的樣本數(shù)用Di表示.節(jié)點i的樣本權(quán)重可由節(jié)點的樣本數(shù)與總樣本數(shù)求得:

(10)

定義2.參數(shù)權(quán)重.表示節(jié)點優(yōu)化的參數(shù)與當前的全局參數(shù)在時間先后順序上相差的程度.
從參數(shù)服務器的角度看整個聯(lián)邦學習是一次次的參數(shù)優(yōu)化更新,不間斷地有節(jié)點向參數(shù)服務器提出下載最新參數(shù)的請求,又不停地有節(jié)點上傳新的梯度以更新參數(shù),簡化的過程如圖4所示:

Fig. 4 Asynchronous federated learning and parameters staleness圖4 異步聯(lián)邦學習與參數(shù)陳舊度
每個節(jié)點在下載最新參數(shù)到上傳對應的梯度之間的時間內(nèi)都有其他節(jié)點的上傳操作穿插其中.在圖4描述的參數(shù)優(yōu)化過程中梯度具有一定的陳舊性,令參數(shù)陳舊度為
μstaleness=Iupload-Idownload.
(11)
在圖4的例子中,在節(jié)點下載和上傳梯度的時間間隔內(nèi),其他節(jié)點會上傳新的梯度,參數(shù)服務器會進行梯度的更新,參數(shù)陳舊度表示了節(jié)點在完成一次迭代學習中參數(shù)服務器經(jīng)過了幾輪更新,這一定程度地反映了節(jié)點的計算能力.為了使陳舊度越大的節(jié)點其參數(shù)權(quán)重越小,且衰減的過程相對平緩,本文選擇底數(shù)小于1的指數(shù)函數(shù)作為參數(shù)權(quán)重的衰減函數(shù):

(12)

雙重權(quán)重修正為

(13)
其中,θ是原始模型參數(shù),θ′是修正后的模型參數(shù).
在異步學習過程中,邊緣節(jié)點提交的梯度在參數(shù)服務器上要經(jīng)過雙重權(quán)重的修正才能參與全局模型優(yōu)化.修正后的梯度根據(jù)具體的優(yōu)化算法更新全局參數(shù),優(yōu)化結(jié)束后,節(jié)點獲得最新的參數(shù)并將其覆蓋本地參數(shù),進行下一輪迭代學習.
異步聯(lián)邦學習對于網(wǎng)絡性能的波動也具有很好的適應性,當某個節(jié)點的網(wǎng)絡質(zhì)量變差時,勢必會影響節(jié)點學習的進程,造成各個節(jié)點學習進度各異.相較于傳統(tǒng)聯(lián)邦學習,基于雙重權(quán)重修正的異步聯(lián)邦學習對這些進度各異的節(jié)點貢獻的梯度根據(jù)其學習程度進行修正,減小如網(wǎng)絡性能波動造成的學習精度的影響,對性能不穩(wěn)定的網(wǎng)絡具有一定的魯棒性.
為了模擬實際場景,我們搭建如下實驗環(huán)境:計算力較強的GPU服務器作為參數(shù)服務器,負責大部分計算工作;其余多臺電腦模擬邊緣網(wǎng)絡中的單個學習節(jié)點,各自獨立地進行聯(lián)邦學習,帶寬為1 Mbps.參數(shù)服務器與節(jié)點之間的通信使用Thrift框架.每臺電腦本地存放部分數(shù)據(jù)(在我們模擬的實驗中,每個節(jié)點的數(shù)據(jù)占總數(shù)據(jù)量的0.2%),獨自根據(jù)本地數(shù)據(jù)訓練神經(jīng)網(wǎng)絡模型.本文研究的對象是多個邊緣設備節(jié)點,這些節(jié)點的計算力各不相同,通過加入停頓間隔時間來模擬這些算力不同的設備.為了更好地模擬實驗場景,這些電腦上的聯(lián)邦學習都由一臺獨立的電腦統(tǒng)一控制.
實驗環(huán)境如圖5所示,其中Order表示m個節(jié)點啟動順序,Interval表示節(jié)點從相鄰2輪學習間隔停頓的時間.在初始化階段,管理節(jié)點根據(jù)節(jié)點總數(shù)生成亂序序列Order(如圖5中的{4,1,6,9,…,5}),并對應生成隨機序列Interval(如圖5中的{16.20,46.46,62.97,325.62,…,24.048}(s)).初始結(jié)束后,管理節(jié)點根據(jù)Order:Interval序列對啟動對應節(jié)點.

Fig. 5 Experiment configurations圖5 實驗配置
實驗部分采用的評價指標為準確率(accuracy,Acc),壓縮率(compression ratio,CR)和壓縮平衡指數(shù)(compression balance index,CBI),其中準確率Acc是指Top-1 Accuracy.
壓縮率CR反映梯度壓縮的壓縮程度,壓縮率越小,壓縮程度越高.

(14)
一般地,壓縮率的減小會導致準確率的逐漸降低.如何在2個指標中權(quán)衡,做出最佳決策成為難題.因此本文引入壓縮平衡指數(shù)CBI,表示梯度壓縮綜合效果,
CBI=α1×Acc+α2×(1-CR),
(15)
其中,α1,α2是用于衡量Acc和CR重要性的2個可調(diào)節(jié)參數(shù),α1+α2=1,α1>0,α2>0.若在現(xiàn)實情況中,Acc優(yōu)先級高于CR,則可設置α1>α2;反之,則α1<α2;若兩者優(yōu)先級相同,則α1=α2.CBI值越高表示梯度壓縮綜合效果越好.
我們在MNIST數(shù)據(jù)集上評估EAFLM的梯度壓縮性能,MNIST數(shù)據(jù)集是一個手寫體數(shù)據(jù)集,共有6萬個訓練樣本和1萬個測試樣本.本文對格式為32×32的圖像進行歸一化,使得數(shù)字位于圖像的中心.
在這部分實驗中共有3個學習節(jié)點,節(jié)點訓練的模型結(jié)構(gòu)參考了Tensorflow官網(wǎng)中的Tutorial,我們未對模型結(jié)構(gòu)進行調(diào)整.模型結(jié)構(gòu)為3層MLP模型,每層的神經(jīng)元個數(shù)分別為256,256,10.本次實驗將數(shù)據(jù)集平均分為3份,學習節(jié)點隨機獲得其中的1份.在每次實驗中,節(jié)點都會重新獲取新的數(shù)據(jù).我們對不同參數(shù)β分別進行實驗,并對最終結(jié)果求平均值.
補充說明:本文的研究重點是聯(lián)邦學習框架中的通信,未對模型結(jié)構(gòu)和優(yōu)化算法進行過多研究,因此本文實驗中出現(xiàn)的過擬合等問題其背后的原因及解決方案不屬于本文研究范圍.同樣地,準確率等實驗指標僅是為了對比各方法的性能,不對模型的優(yōu)劣進行評估.且由于不同方法的對比實驗采用相同的配置,實驗中的指標仍具有可用于比較的價值.EAFLM不對學習模型進行限制,因此在現(xiàn)實運用中使用者可以根據(jù)實際學習問題對模型結(jié)構(gòu)和實驗參數(shù)進行調(diào)整.
5.3.1 梯度壓縮實驗分析——壓縮率及準確率
表2表示不同β取值對壓縮率及準確率的影響.從整體上來看,隨著β值的減小,壓縮率也逐漸減小,即壓縮程度增大.而隨著梯度通信逐漸被壓縮,準確率也隨之降低.從表2中也可看出數(shù)據(jù)存在一定的波動,這是由于不同對比組的實驗設置(如樣本序號和初始模型參數(shù))的不同導致模型訓練結(jié)果存在個體差異,且實驗模型參數(shù)初始值不同也是造成數(shù)據(jù)小范圍抖動的原因之一.但明顯地,在β∈[0.1,0.2]區(qū)間時,壓縮率存在明顯的上升,而在β∈[0.2,1]區(qū)間內(nèi),壓縮率上升幅度較小,因此在圖8中,我們著重展示的是β∈[0.1,0.2]區(qū)間.

Table 2 Compression and Accuracy Under Different β表2 不同β值下的壓縮率及準確率
圖6為10組不同超參數(shù)(樣本序號和停頓間隔時間)下對比實驗的結(jié)果,圖6(a)淺色細線條和圖6(b)淺色細線條分別為10次實驗中在測試集和訓練集上的具體數(shù)據(jù)波動,對應的圖6(a)深色加粗線條和圖6(b)深色加粗線條為測試集和訓練集10次實驗的平均數(shù)據(jù).

Fig. 6 Different β values and model accuracy on data sets圖6 梯度壓縮中不同β取值在數(shù)據(jù)集上的準確率
在圖6中,10組實驗數(shù)據(jù)雖然在個體上存在波動,但總體上呈現(xiàn)出隨著壓縮率的增大,準確率隨之上升,這也可從對應的深色加粗線條看出.有趣的是,圖6(a)中可看出,在β∈[0.14,1]區(qū)間內(nèi)(對應圖6(b)的區(qū)間則為β∈[0.13,1]),梯度壓縮對準確率的影響不大,且出現(xiàn)了波動,這是因為所選的學習模型已達到最大的學習效果.明顯地,冗余梯度通信對達到飽和學習的模型的增益較小,梯度壓縮有助于提高聯(lián)邦學習的性能.在圖7中,隨著β的增大,梯度通信次數(shù)在不斷增大,壓縮率也隨之增大.

Fig. 7 Different β and communications times圖7 梯度壓縮中不同β取值對通信次數(shù)的影響
5.3.2 梯度壓縮實驗分析——壓縮平衡指數(shù)
為了選擇最佳β值,本文對β∈[0.1,0.2]區(qū)間中的實驗數(shù)據(jù)計算CBI值,計算結(jié)果如圖8所示.結(jié)合圖8可以發(fā)現(xiàn)本文實驗中最佳β值為0.1.

Fig. 8 CBI of different β values in gradient compression圖8 梯度壓縮中不同β取值下的CBI值
我們對Chen等人[28]的工作(LAG)做了對比實驗,表3從準確率、壓縮率、壓縮平衡指數(shù)3個方面展示了EAFLM中閾值自適應梯度壓縮算法與LAG算法的性能比較.從表3可看出LAG的壓縮率比β=0.1和β=0.11 EAFLM的壓縮率低,壓縮程度較高.但無論是在訓練集還是測試集上,準確率都比EAFLM低.為了進一步比較兩者性能,我們?nèi)?組不同的a1,a2組合計算CBI.從表3可看出,除了在a1=0.4,a2=0.6時,LAG的CBI比β=0.11 EAFLM高,其余兩者情況下,EAFLM性能都高于LAG,β=0.1的EAFLM更是3種情況下都優(yōu)于LAG.且在EAFLM中,根據(jù)不同的實際需求調(diào)節(jié)β的取值,以達到最佳的壓縮程度.

Table 3 Performance Comparison Between Different β Values of EAFLM and LAG表3 不同β值下的EAFLM與LAG的性能對比
為了使異步學習實驗效果更加顯著,異步學習這部分的實驗數(shù)據(jù)采用Cifar10數(shù)據(jù)集,CIFAR-10數(shù)據(jù)集由10個類的60 000個32×32彩色圖像組成,每個類有6 000個圖像.有50 000個訓練圖像和10 000個測試圖像.我們將訓練集平均分為500份,每次實驗開始前,節(jié)點隨機從中挑選一份數(shù)據(jù)進行訓練為了模擬異步聯(lián)邦學習,學習節(jié)點的數(shù)量增加到10個.除此之外,本實驗在圖5的基礎上增加停頓時間,即每個節(jié)點在1輪訓練結(jié)束后停頓一段時間.停頓時間序列由管理節(jié)點生成.同樣地,本次實驗采用了Tensor-flow官網(wǎng)Tutorial中的卷積網(wǎng)絡代碼,模型結(jié)構(gòu)為5層卷積網(wǎng)絡模型.由于異步聯(lián)邦學習對象是高自由度的邊緣設備,這些節(jié)點無法像服務器等設備一樣穩(wěn)定、長時間地訓練網(wǎng)絡模型.因此為了模擬這種情況,我們將訓練輪數(shù)設置為500輪.學習輪數(shù)的減小使得實驗中總體的準確率都不高,這可以通過調(diào)參等方法來提高準確率,這里不予過多討論.實驗中設置的超參數(shù)數(shù)值僅供參考,實際運用中仍需根據(jù)具體問題進行設置調(diào)整.
我們分別隨機選取5組不同的超參數(shù)組(子樣本集序號、停頓時間)進行3個對比實驗,分別是節(jié)點訓練中無停頓(對應表4中的Synchronous)、節(jié)點訓練中有停頓(Asynchronous)和在雙重權(quán)重下的訓練中有停頓(EAFLM).在我們查閱的文獻范圍內(nèi),沒有發(fā)現(xiàn)其他學者針對異步聯(lián)邦學習進行算法上的改進,因此本文無法與更多方法進行對比實驗.
表4為3種算法在訓練集和測試集中的5組不同超參數(shù)組合實驗的平均準確率.從表4可看出異步學習比同步學習具有較好的性能,這可以理解為異步類似于一項正則化處理,能一定程度防止學習的過擬合.在訓練集上,對比同步聯(lián)邦學習和異步聯(lián)邦學習,EAFLM機制實現(xiàn)了5.1%和4%的準確率提升;而在測試集上,EAFLM的準確率分別提升了0.36%和0.15%.

Table 4 Asynchronous Experiment Performance on Data Sets表4 異步實驗在數(shù)據(jù)集上的準確率
綜合實驗部分仍然采用與異步聯(lián)邦學習部分相同的實驗配置,我們選取了5種不同β值下的EAFLM與異步聯(lián)邦學習進行對比實驗,其中異步聯(lián)邦學習是無梯度壓縮和權(quán)重修正.表5從準確率、壓縮率、壓縮平衡指數(shù)3個方面展示了EAFLM與異步學習算法的綜合性能比較.從表5可以看出,當β=0.5時,在準確率方面,異步聯(lián)邦學習與EAFLM基本相當,但異步聯(lián)邦學習在壓縮和綜合性能方面都比EAFLM差.在壓縮率方面,β∈[0.2,0.5]下的EAFLM都相差不大,但EAFLM在β=0.1時,CR=75.1%,即相對于異步聯(lián)邦學習算法來說,EAFLM進一步節(jié)省了24.9%的通信成本,但在訓練集和測試集上的準確率僅降低10.5%和3%.在3組不同的a1,a2組合計算的CBI中,不同β取值下的EAFLM都比異步聯(lián)邦學習高,因此,本次實驗結(jié)果顯示EAFLM的綜合性能比異步聯(lián)邦學習有所提高,其中β=0.1時,EAFLM的綜合性能達到最優(yōu).

Table 5 Performance Comparison Between Different β Values of Comprehensive EAFLM and Asynchronous Federated Learning表5 不同β值下的綜合EAFLM與異步學習的性能對比
本文提出一種面向邊緣網(wǎng)絡計算的高效異步聯(lián)邦學習機制(EAFLM)可以滿足在不共享隱私數(shù)據(jù)的前提下對多方數(shù)據(jù)進行學習的這個現(xiàn)實需求,以實現(xiàn)更自由高效的聯(lián)邦學習.EAFLM在不影響準確率的情況下賦予參與學習者更多的自由度和隱私保護.參與者在本地對擁有的數(shù)據(jù)集進行學習,在1輪訓練之后,參與者根據(jù)自檢條件來檢查本輪是否滿足與參數(shù)服務器通信的條件,若滿足則將梯度上傳至參數(shù)服務器.所有節(jié)點都是異步地執(zhí)行以上步驟,不用等待其余節(jié)點,也無須同步學習輪次.整個學習過程中,節(jié)點只與參數(shù)服務器通信,除了共同維護的全局參數(shù)外節(jié)點無法獲取有關(guān)其余節(jié)點的任何信息.
本文從閾值自適應梯度壓縮和異步學習2大方面對EAFLM進行闡述,并進行相關(guān)實驗.我們提出的閾值自適應梯度壓縮算法,可以自適應模型訓練過程中每輪梯度的變化,計算出合適的閾值來對梯度通信進行壓縮.由于梯度數(shù)據(jù)間接反映了節(jié)點樣本信息,攻擊者能從有效的梯度信息反推出樣本數(shù)據(jù),減少梯度通信能有效地降低隱私泄露的可能性.測試集上,本文實現(xiàn)了將梯度通信壓縮至原通信次數(shù)的8.77%時,準確率僅降低0.03%.
在異步聯(lián)邦學習中,節(jié)點存在學習樣本不均、學習進度各異等問題.這些差異較大的節(jié)點對參數(shù)服務器中的全局參數(shù)進行平等的更新顯然是不合理的,因此我們引入雙重權(quán)重來解決異步學習中節(jié)點學習狀態(tài)不均衡的問題.實驗表示在訓練集上,對比同步聯(lián)邦學習和異步聯(lián)邦學習,EAFLM機制實現(xiàn)了5.1%和4%的準確率提升;而在測試集上,EAFLM的準確率分別提升了0.36%和0.15%.
我們的工作也存在不足之處,在閾值自適應梯度壓縮中,執(zhí)行梯度檢查是犧牲單個節(jié)點本地計算時間來減少全局通信時間的典型例子.在眾多神經(jīng)網(wǎng)絡學習中,學習迭代的輪數(shù)都是較大,輪數(shù)上萬也并不少見,因此每輪結(jié)束都對梯度進行檢查帶來的計算時間無疑也是不容忽視的.為了緩解本地計算量,我們可以在上文描述的梯度壓縮的基礎上增加一個“免檢”機制,這有助于減輕梯度檢查帶來的計算工作.在未來的工作中,我們將進一步對“免檢”機制進行研究.