點擊上方藍字關注咱們算法
聯邦學習算法綜述數據庫
王健宗1 ,孔令煒1 ,黃章成1 ,陳霖捷1 ,劉懿1 ,何安珣1 ,肖京2 安全
1. 平安科技(深圳)有限公司,廣東 深圳 518063服務器
2. 中國平安保險(集團)股份有限公司,廣東 深圳 518031網絡
摘要:近年來,聯邦學習做爲解決數據孤島問題的技術被普遍關注,已經開始被應用於金融、醫療健康以及智慧城市等領域。從3個層面系統闡述聯邦學習算法。首先經過聯邦學習的定義、架構、分類以及與傳統分佈式學習的對比來闡述聯邦學習的概念;而後基於機器學習和深度學習對目前各種聯邦學習算法進行分類比較和深刻分析;最後分別從通訊成本、客戶端選擇、聚合方式優化的角度對聯邦學習優化算法進行分類,總結了聯邦學習的研究現狀,並提出了聯邦學習面臨的通訊、系統異構、數據異構三大難題和解決方案,以及對將來的指望。數據結構
關鍵詞:聯邦學習, 算法優化, 大數據, 數據隱私架構
論文引用格式:框架
王健宗,孔令煒,黃章成, 等. 聯邦學習算法綜述[J]. 大數據, 2020, 6(6): 64-82.機器學習
WANG J Z, KONG L W, HUANG Z C, et al. Research review of federated learning algorithms[J]. Big Data Research, 2020, 6(6): 64-82.異步
1 引言
隨着數字化技術進入高速發展期,大數據和人工智能等技術迎來爆發式發展,這一方面爲傳統業態帶來了升級變革的新機遇,另外一方面不可避免地給數據和網絡安全帶來了全新的挑戰,而數據孤島問題是關鍵挑戰之一。縱向來看,行業頂尖的巨頭公司壟斷了大量的數據信息,小公司每每很可貴到這些數據,致使企業間的層級和差距不斷拉大;橫向來看,同一層級不一樣行業的公司,因爲系統和業務的閉塞性與阻隔性,很難實現數據信息的交流與整合,聯合建模須要跨越重重壁壘。
針對上述人工智能行業目前面臨的痛點,聯邦學習給出了答案。聯邦學習是由谷歌研究院在2016年率先提出的概念。該技術可在數據不共享的狀況下完成聯合建模。具體來說,各個數據擁有者(我的/企業/機構)的自有數據不會離開本地,經過聯邦系統中加密機制下的參數交換方式(即在不違反數據隱私法規的狀況下)聯合創建一個全局的共享模型,建好的模型在各自的區域只爲本地的目標服務。儘管聯邦學習和分佈式機器學習有部分類似的地方,可是在應用領域、系統設計、優化算法方面,聯邦學習有本身的特徵。在數據量龐大、所需計算資源較高時,分佈式機器學習(如參數服務器)有明顯的優點,它將獨立同分布(independently identically distribution,IID)的數據或模型參數存儲在各個分佈式節點上,中心服務器調動數據和計算資源,聯合訓練模型。因客戶端的地理、時間等分佈差別,聯邦學習常常要處理非獨立同分布(nonIID)的數據。本文結合聯邦學習的現狀,對聯邦學習系統進行分層,按模塊整理聯邦學習目前取得的相關成果。
聯邦學習算法結構如圖1所示。
爲了整合多個來源的數據,當前比較廣泛的作法是經過數據預處理ETL(extracttransform-load)工具將不一樣源的數據移動到關係數據庫中,將具備龐大計算量的任務部署到多臺機器上,以提高計算效率,減小任務耗能。
圖1 聯邦學習算法結構
2 聯邦學習概述
2.1 聯邦學習的定義
2016年,谷歌研究院在解決面向用戶個體的鍵盤輸入法優化問題時,提出了聯邦學習這一全新的人工智能解決方案。聯邦學習面向的場景是分散式多用戶圖片 ,每一個用戶客戶端擁有當前用戶的數據集圖片 。傳統的深度學習將這些數據收集在一塊兒,獲得彙總數據集圖片,訓練獲得模型MSUM。聯邦學習方法則是由參與的用戶共同訓練一個模型MFED,同時用戶數據Di保留在本地,不對外傳輸。若是存在一個非負實數δ,使得MFED的模型精度VFED與MSUM的模型精度VSUM知足以下不等式:
則稱該聯邦學習算法達到δ-精度損失。聯邦學習容許訓練模型存在必定程度的性能誤差,可是爲全部的參與方提供了數據的安全性和隱私保護。聯邦學習經常使用的框架有兩種,一種是客戶端-服務器架構,另外一種是對等網絡架構。在客戶端-服務器架構中,聯邦學習的訓練方式是讓各個數據持有方根據本身的條件和規則在本地訓練模型,而後將脫敏參數彙總到中央服務器進行計算,以後再下發回各個數據持有方更新本身本地的模型,直至全局模型穩健爲止。在對等網絡架構中進行聯邦學習訓練時,參與方之間能夠直接通訊,不須要藉助第三方,安全性獲得了進一步提升,可是須要更多的計算操做進行加密和解密。目前的研究更多的是基於第三方服務器的框架。所以本文着重介紹客戶端-服務器架構的聯邦學習流程。
2.2 客戶端-服務器架構的聯邦學習流程
在物理層面上,聯邦學習系統通常由數據持有方和中心服務器組成。各數據持有方的本地數據的數量或特徵數可能並不足以支持一次成功的模型訓練,所以須要其餘數據持有方的支持。而聯邦學習中心服務器的工做相似於分佈式機器學習的服務器,其收集各數據持有方的梯度,並在服務器內進行聚合操做後返回新的梯度。在一次聯邦學習的合做建模過程當中,數據持有方對本地數據的訓練僅發生在本地,以保護數據隱私,迭代產生的梯度在脫敏後被做爲交互信息,代替本地數據上傳給第三方受信任的服務器,等待服務器返回聚合後的參數,對模型進行更新[8]。圖2展現了客戶端-服務器架構的聯邦學習流程。
步驟1:系統初始化。首先由中心服務器發送建模任務,尋求參與客戶端。客戶端數據持有方根據自身需求,提出聯合建模設想。在與其餘合做數據持有方達成協議後,聯合建模設想被確立,各數據持有方進入聯合建模過程。由中心服務器向各數據持有方發佈初始參數。
步驟2:局部計算。聯合建模任務開啓並初始化系統參數後,各數據持有方將被要求首先在本地根據己方數據進行局部計算,計算完成後,將本地局部計算所得梯度脫敏後進行上傳,以用於全局模型的一次更新。
步驟3:中心聚合。在收到來自多個數據持有方的計算結果後,中心服務器對這些計算值進行聚合操做,在聚合的過程當中須要同時考慮效率、安全、隱私等多方面的問題。好比,有時由於系統的異構性,中心服務器可能不會等待全部數據持有方的上傳,而是選擇一個合適的數據持有方子集做爲收集目標,或者爲了安全地對參數進行聚合,使用必定的加密技術對參數進行加密,這些方法將會在後面的章節中詳細討論。
圖2 客戶端-服務器架構的聯邦學習流程
步驟4:模型更新。中心服務器根據聚合後的結果對全局模型進行一次更新,並將更新後的模型返回給參與建模的數據持有方。數據持有方更新本地模型,並開啓下一步局部計算,同時評估更新後的模型性能,當性能足夠好時,訓練終止,聯合建模結束。創建好的全局模型將會被保留在中心服務器端,以進行後續的預測或分類工做。
上述過程是一個典型的基於客戶端服務器架構的聯邦學習過程。但並非每一個聯邦學習任務都必定要嚴格按照這樣的流程進行操做,有時可能會針對不一樣場景對流程作出改動,例如,適當地減小通訊頻率來保證學習效率,或者在聚合後增長一個邏輯判斷,判斷接收到的本地計算結果的質量,以提高聯邦學習系統的魯棒性。
2.3 聯邦學習與傳統分佈式學習的區別
基於客戶端-服務器架構的聯邦學習和分佈式機器學習都是用來處理分佈式數據的,但在應用領域、數據屬性和系統構成等方面,其與分佈式機器學習存在差別,主要以下。
(1)應用領域
大量的數據或者較大的模型每每對計算資源有較高的要求。單一的計算節點已經不能知足需求。分佈式機器學習將訓練數據或模型參數分佈在各個計算或存儲節點,利用中心服務器對節點進行調度,加速模型的訓練。而當數據具備隱私敏感屬性時,分佈式機器學習的中心調度將會給用戶數據帶來極大的隱私泄露風險。聯邦學習始終將數據存儲在本地,相比須要將數據上傳到服務器的方式,能夠最大限度地保障數據隱私。
(2)數據屬性
機器學習的主要目的是尋找數據的機率分佈,這在數據集知足獨立同分布的狀況下相對比較容易。分佈式機器學習與經典機器學習處理的數據每每是獨立同分布的,聯邦學習則有所不一樣。因爲客戶端的地理位置、時間等分佈的差別性,聯邦學習系統的原始數據每每是非獨立同分布的。同時,橫向聯邦學習和縱向聯邦學習也是根據客戶端數據的不一樣屬性來進行分類的。客戶端之間的數據特徵和分類標籤差別較大,在進行訓練時須要進行對齊工做。
(3)系統構成
在物理組成上,聯邦學習系統和分佈式系統較爲類似,都由中心服務器和多個分佈式節點構成。在分佈式系統中,數據計算和模型更新統一由中心服務器進行調度,節點和中心服務器之間的數據時延較小,模型訓練時間主要由計算時間決定。而在聯邦系統中,各個參與方地位平等,能夠自主決定是否參與模型訓練。且因爲分佈式節點多爲計算能力差別較大、網絡環境不一樣以及所處狀態不可控的客戶端,在系統設計上,須要考慮數據傳遞時延、數據非獨立同分布以及隱私安全等衆多因素,這就要求系統對聯邦學習算法作出適應性的改變。聯邦聚合是聯邦學習系統中不一樣於分佈式機器學習的優化算法,爲解決數據非獨立同分布和減輕數據異構提供了新的思路。同時,因爲聯邦學習具備極好的隱私保護能力,在系統的各個環節都要注意加密算法的應用。加密數據的傳遞、目標函數損失的計算、梯度的計算與傳遞模型參數的傳遞等都對傳統的算法提出了新的要求。
2.4 聯邦學習分類
聯邦學習的孤島數據有不一樣的分佈特徵。對於每個參與方來講,本身所擁有的數據能夠用一個矩陣來表示。矩陣的每一行表示每個用戶或者一個獨立的研究對象,每一列表示用戶或者研究對象的一種特徵。同時,每一行數據都會有一個標籤。對於每個用戶來講,人們但願經過他的特徵X,學習一個模型來預測他的標籤Y。在現實中,不一樣的參與方多是不一樣的公司或者機構,人們不但願本身的數據被別人知道,可是人們但願能夠聯合訓練一個更強大的模型來預測標籤Y。
根據聯邦學習的數據特色(即不一樣參與方之間的數據重疊程度),聯邦學習可被分爲橫向聯邦學習、縱向聯邦學習、遷移聯邦學習。
當兩個參與方的用戶重疊部分不多,可是兩個數據集的用戶特徵重疊部分比較多時,這種場景下的聯邦學習叫做橫向聯邦學習。好比一個銀行系統在深圳和上海的分部爲參與方,兩邊業務相似,收集的用戶數據特徵比較相似,可是兩個分部的用戶大部分是本地居民,用戶重疊比較少,當兩個分部須要作聯邦模型對用戶進行分類的時候,就屬於橫向聯邦學習。
當兩個參與方的用戶重疊部分不少,可是兩個數據集的用戶特徵重疊部分比較少時,這種場景下的聯邦學習叫做縱向聯邦學習。好比同一個地區的兩個機構,一個機構有用戶的消費記錄,另外一個機構有用戶的銀行記錄,兩個機構有不少重疊用戶,可是記錄的數據特徵是不一樣的,兩個機構想經過加密聚合用戶的不一樣特徵來聯合訓練一個更強大的聯邦學習模型,這種類型的機器學習模型就屬於縱向聯邦學習。
當兩個參與方的用戶重疊部分不多,兩個數據集的用戶特徵重疊部分也比較少,且有的數據還存在標籤缺失時,這種場景下的聯邦學習叫做遷移聯邦學習。好比兩個不一樣地區的機構,一個機構擁有所在地區的用戶消費記錄,另外一個機構擁有所在地區的銀行記錄,兩個機構具備不一樣的用戶,同時數據特徵也各不相同,在這種狀況下聯合訓練的機器學習模型就是遷移聯邦學習。
目前大部分的研究是基於橫向聯邦學習和縱向聯邦學習的,遷移聯邦學習領域的研究暫時還很少。所以,本文將重點討論橫向聯邦學習和縱向聯邦學習的算法類型。橫向聯邦學習中數據特徵重疊維度較多,根據重合維度進行對齊,取出參與方數據中特徵相同而用戶不徹底相同的部分進行聯合訓練;縱向聯邦學習用戶重合較多,根據用戶ID進行匹配,取出參與方數據中用戶相同而特徵不徹底相同的部分進行聯合訓練。
2.5 聯邦學習算法的特色
基於上述對聯邦學習的介紹,總結出如下幾點聯邦學習算法的特色。
● 支持非獨立同分布數據:這是聯邦學習算法的一個很重要的特性。聯邦學習算法必須在非獨立同分布數據中有良好的表現。在聯邦學習的實際使用中,數據持有方的數據質量和分佈是不可控的,沒法要求數據持有方的數據知足獨立同分布,所以聯邦學習算法須要支持非獨立同分布數據。
● 通訊高效:聯邦學習算法須要考慮數據持有方的系統異構性,並在不損失準確率或損失很小的狀況下提升通訊效率,下降通訊損耗。
● 快速收斂:在聯合建模過程當中,首先須要保證模型收斂,同時須要提升收斂速度。
● 安全性和隱私性:數據隱私安全是聯邦學習的重要特色,所以安全性和隱私性是對聯邦梯度更新的必要要求。安全性和隱私性能夠經過加密等方式在聚合過程當中進行,也能夠反映在單機優化的過程當中。
● 支持複雜用戶:複雜用戶指用戶自己數量大,且用戶數據存在不均衡性或偏移。這在聯邦學習的實際應用中是很是可能的,聯邦優化算法須要對這種狀況具備很好的兼容效果。
3 聯邦學習算法分類
聯邦學習系統是面向多客戶端的模型訓練系統,各個客戶端在參與訓練時,數據保留在本地,不會被髮送給其餘客戶端或中心服務器。中心服務器經過對客戶端發送的本地模型更新進行整合,最終完成共享模型的訓練。客戶端在進行本地模型訓練時,因爲設備間計算能力的差別,各個客戶端完成計算的時間不一樣。同時因爲本地數據和全局數據之間的分佈差別,部分異常數據會對共享模型形成破壞,致使模型精度下降。聯邦學習算法針對以上問題,在機器學習算法和深度學習的基礎上作出修改,知足非獨立同分布數據、網絡時延以及隱私保護的需求。
3.1 基於機器學習的聯邦學習算法
聯邦機器學習算法指在聯邦學習框架下的經典機器學習算法實現。聯邦機器學習,尤爲是橫向聯邦學習,在總體模式上與分佈式機器學習相似。可是,相較於傳統的機器學習算法,因爲聯邦學習特有的迭代模式和特色,即須要在數據不出本地的基礎上雙方交換訓練參數以完成聯合建模,聯邦學習框架下的機器學習算法實現更加複雜。聯邦機器學習算法的實現每每基於上述聯邦優化算法的框架,但由於機器學習算法之間的差別性,有時又須要作一些針對性的修改,同時也須要考慮實際過程當中的安全性等因素。下面介紹幾種目前常見的聯邦機器學習算法。
3.1.1 聯邦線性算法
Yang K等人提出了一種中心聯邦學習框架下的縱向聯邦邏輯迴歸實現方法,這種方法實現了縱向聯邦學習中的邏輯迴歸,其目標函數是:
其中,ω爲模型的參數,xn爲模型的特徵, yn爲模型的標籤,n∈{{11,,N}}爲數據的數量,圖片爲模型損失函數。在縱向聯邦學習中,一般假設數據持有方分爲有標籤數據持有方和無標籤數據持有方。這種算法在聯邦優化算法的框架下結合了同態加密的思想,訓練過程經過同態加密的方法對雙方的數據和梯度進行加密。假設無標籤數據持有方α的數據爲圖片,其中圖片表示第τ輪狀態下的無標籤數據持有方的模型參數。用[dα]表示對dα的同態加密,整個訓練過程能夠描述以下。
無標籤數據持有方α首先向有標籤數據持有方β發送[dα]、 圖片及圖片,β計算梯度與損失,加密後回傳。中心服務器收集來自α、β的加密梯度後,輔助α、β進行模型更新。爲減小通訊次數,下降通訊損耗,這種方法引入了一個向量s來體現模型的變化,輔助更新,而且使用了週期性梯度更新。
Yang S W等人提出了一種去中心聯邦學習框架下的縱向聯邦邏輯迴歸實現方法。他們認爲在現實生活中,找到合做雙方共同信任的第三方輔助方是很難的,而且這也在無形中提升了數據泄露的風險和系統的總體複雜性,所以他們認爲取消第三方的參與對整個過程有很大的積極意義。
在這種方法中,有標籤數據持有方在訓練過程當中起主導做用。從某種意義上講,有標籤數據持有方承擔了被取消的中心服務器的責任。假設有標籤數據持有方α和無標籤數據持有方β協定合做建模, α首先向β發送建模密鑰,α、β分別初始化參數ω一、ω2,並計算ωixi,其中i∈{{1,2}。計算完畢後β將計算結果發送給α,α對雙方計算結果取和,並利用邏輯迴歸方程求取最終輸出,在對相同標籤值計算損失結果後,加密損失並返回。以後雙方分別計算梯度(對於β來講是加密後的梯度)。β將加密後的梯度添加噪聲後交由α解密返回,雙方分別進行梯度更新。在整個過程當中,雙方彼此之間始終對數據進行保密,傳輸通道中也均爲保密信息,這就使得數據的隱私性不止針對合做方,也擁有了必定的對抗外部異常***的能力。
3.1.2 聯邦樹模型
Liu Y等人提出了一種基於中心縱向聯邦學習框架的隨機森林實現方法——聯邦森林。在建模過程當中,每棵樹都實行聯合建模,其結構被存儲在中心服務器及各個數據持有方,可是每一個數據持有方僅持有與己方特徵匹配的分散節點信息,沒法得到來自其餘數據持有方的有效信息,以保障數據的隱私性。最終整個隨機森林模型的結構被打散存儲,中心服務器中保留完整的結構信息,節點信息被分散在各數據持有方。在使用模型進行預測時,首先獲取本地存儲的節點信息,而後經過中心節點聯合調用樹結構中其餘客戶端的節點信息。這種方法減小了預測時每棵樹的通訊頻率,對提升通訊效率有必定的幫助。
SecureBoost是一種基於梯度提高決策樹(gradient boosting decision tree,GBDT)的去中心縱向聯邦學習框架,一樣包含有標籤數據持有方和無標籤數據持有方。梯度提高決策樹算法中聯邦學習須要交換的參數與聯邦線性算法有很大區別,涉及二階導數項。根據通常的梯度提高決策樹算法,目標函數爲:
其中,τ爲迴歸樹的第τ次迭代,圖片爲目標函數的最小化損失值,j(·,·)爲每一個葉子節點上損失的計算函數,F(x)爲預測殘差的一階、二階導數之和,即泰勒二次展開式。爲防止過擬合,在損失函數中添加正則項:
其中,γ和λ爲超參數,分別控制樹和特徵的數量,ω爲權重值,T爲原始損失函數。
在通常分佈式機器學習中,能夠經過向參與方發送F(x)實現聯合建模。可是因爲使用F(x)能夠反推出數據標籤,這樣的方法顯然不適用於聯邦學習框架,所以, SecureBoost採用一種在保護數據隱私的同時,保證訓練性能的聯合建模方法。有標籤數據持有方α首先計算F(x),並將結果加密後發送給無標籤數據持有方β。β根據同態加密求和方法進行局部求和,並將結果回傳。收到計算結果後,α將數據按照特徵分桶,並進行聚合操做,將加密結果發送給β。最終由α將從β中收集的局部最優解進行聚合,產生最優解,並下發回β,完成聯合建模的過程。須要說明的是, SecureBoost支持多方合做,即無標籤數據持有方β表示全部無標籤數據持有方的集合,可是有標籤數據持有方僅爲一方。與分佈式XGBoost相比,SecureBoost在保障模型準確率的狀況下,保護了數據的隱私,成功地將縱向GBDT應用到聯邦學習框架中。
Li Q B等人提出了一種實現多方GBDT建模的去中心橫向聯邦學習框架——基於類似度的聯邦學習(similarity-based federated learning,SimFL)。這種方法整體分爲兩個步驟。首先,在預訓練時,各個數據持有方在本地對數據進行哈希分類,分類依據爲局部敏感哈希(locality sensitive hashing,LSH);以後對各個本地哈希表進行聚合,生成全局哈希表,並向全部數據持有方發佈。所以各個數據持有方在訓練階段能夠基於全局哈希表進行建模,而不會直接接觸到其餘數據持有方的數據。LSH還能夠用於得到不一樣數據持有方之間數據的類似性,數據的類似度越高,在哈希表中表現相同值的可能性就越大。
當某個數據持有方表現出與多個數據持有方有高度的數據類似性時,能夠認爲這個數據持有方的數據是很重要的,所以SimFL使用一種加權梯度上升(weighted gradient boosting)的方法進行單棵樹建模,具體思想表現爲將類似程度與梯度權值關聯,類似程度越大,梯度權值越高,聚合時產生的表現力就越強。
這種經過哈希表加密的方法單從隱私保護性能上來說,沒法超越差分隱私等方法,可是在犧牲小部分隱私保護強度的狀況下,該方法在通訊效率方面獲得了補償,是一種聯邦學習框架下樹類算法實現的新方向。
3.1.3 聯邦支持向量機
Hartmann V等人提出了一種將支持向量機(support vector machine,SVM)安所有署在聯邦學習中的方法,主要經過特徵哈希、更新分塊等方式對數據隱私性進行保障。其目標函數以下:
其中,N爲訓練數據,ω爲模型參數, L(ω,xi,yi)爲在點(xi,yi)的損失,λR(ω)爲損失函數的正則項,超參數λ控制懲罰力度。在支持向量機中,其損失函數爲:L(ω,xi,yi)=max{0,1-ωτxiyi}。相似於SimFL,這裏也對特徵值進行降維哈希處理,以隱藏實際的特徵值。除此以外,因爲在線性支持向量機中,中心服務器有可能根據更新梯度反推出數據標籤,爲了保護數據的隱私性,這裏採用次梯度更新的更新方式。在實際表現中,這種支持向量機在聯邦框架下的應用具備不亞於單機支持向量機的性能。
3.2 基於深度學習的聯邦學習算法
爲了保障數據隱私安全,聯邦學習客戶端在進行數據通訊時,每每會對傳輸的信息進行編碼和加密,同時由於原始用戶數據對中心服務器不可見,因此在模型搭建時訓練樣本對中心服務器以及模型設計人員不可觀測。以前用於經典深度學習的相關模型在聯邦學習系統中不必定是最優設計。爲了不網絡模型的冗餘,須要對經典深度學習模型進行相應的修改,如神經網絡(neural network,NN)、卷積神經網絡(convolutional neural networks, CNN)、長短時間記憶網絡(long shortterm memory,LSTM)等。同時,爲了適應聯邦學習的流程,提升訓練效果,學習訓練的一些環節(如參數初始化、損失計算以及梯度更新等)也須要相應的調整。3.2.1 聯邦神經網絡
McMahan H B等人分別用NN和CNN在MNIST數據集上進行了測試。對於NN,模型的具體結構爲含有兩個隱藏層的神經網絡,每一個隱藏層包含200個神經元,且隱藏層用ReLU激活函數進行激活。而後將MNIST數據集分配到兩個計算節點,每一個計算節點含有樣本量大小爲600且無交集的子數據集。在進行聯邦訓練時,爲了驗證模型參數初始化和聚合比例帶來的影響,實驗分爲具備不一樣初始化方式的兩組:一組使用相同的隨機種子初始化分配在兩個計算節點的模型參數,另一組使用不一樣的隨機種子初始化模型參數。每組實驗對來自不一樣節點的模型參數採用不一樣的權重比例進行加權整合,獲取最終的聯邦共享模型,即:
其中,ωFL爲聯邦模型參數,ω和ω’爲分佈在不一樣節點的模型參數,θ用來調整兩個模型參數之間的比例。實驗發現,在達到相同的精度時,相比於單一數據本地訓練,使用模型平均方法的聯邦學習模型須要的訓練回合更少,訓練效率更高。在都使用聯邦學習時,使用相同的隨機初始化種子的聯邦模型具備較好的效果,同時在模型參數比例爲1:1時,達到最優損失。
3.2.2 聯邦卷積神經網絡
Zhu X H等人使用簡單的CNN訓練隱私場景中的中文字體識別模型來測試現有的聯邦學習框架(TensorFlow federated (TFF)和PySyft)以及數據集和客戶端數量對聯邦模型的影響。雖然對於文本識別問題常採用遞歸網絡,但過於複雜的網絡結構每每會影響聯邦學習的收斂效率,因而採用含有4個卷積層和2個全鏈接層的簡單CNN來訓練模型。而後根據樣本ID將數據集隨機分配到不一樣的客戶端,造成不一樣子集來模擬分佈式數據。在進行訓練時,客戶端先在本地數據集上進行梯度計算和參數更新。在每一個訓練迭代結束後,彙總每一個客戶端累積的參數更新,用來更新最終的聯邦模型。
做爲對比,首先採用非聯邦學習模式進行訓練,將全部數據放在TensorFlow上進行模型訓練,得到的基礎對比模型的準確率爲42.65%。當客戶端數量固定,改變每一個客戶端擁有的數據子集大小時,模型精度基本上隨着數據集的增大而上升。不過在PySyft上,最佳精度始終沒法達到基線(baseline)精度,且網絡迭代次數多於基線模型的迭代次數。但TFF的模型收斂效果要優於PySyft,且在客戶端樣本數量達到必定程度時,聯邦模型表現出優於基線模型的成績,迭代次數也顯著減小。兩個框架下不一樣模型的效果差別多是因爲採用了不一樣的優化算法。針對聯邦深度學習模型的框架還有不少限制,不少技術問題須要進一步解決,如TFF上對GPU卷積和池化計算的支持、PySyft上對更多優化器的支持。
影響卷積網絡效果的因素還有不少,例如,客戶端和服務器之間進行參數傳遞時,爲了減輕對帶寬的佔用,每每對卷積網絡模型的參數進行壓縮。Sattler F等人利用視覺幾何組網絡11(visual geometry group 11,VGG11)發現,具備參數壓縮的聯邦聚合算法受non-IID數據的影響比較大,而在IID數據上則表現出幾乎與非壓縮聚合算法相同的收斂速度。用於聯邦學習系統的稀疏三元壓縮(sparse ternary compression,STC)證實,在聯邦學習環境中,該編碼技術的通訊協議優於聯邦平均算法FedAvg(federated averaging)。
3.2.3 聯邦LSTM
也有許多學者將LSTM運用到聯邦語言模型中,用於預測字符。他們將數據集人工分割爲分配在多個客戶端的聯邦學習數據集,在合適的超參數設置下,這些模型在non-IID數據集上均達到了常規狀況下的模型精度。Sahu A K等人在聯邦數據集中訓練LSTM分類器,提出瞭解決統計異質性的聯邦學習框架FedProx,用於情感分析和字符預測。實驗代表,相比於FedAvg,FedProx具備更快的收斂速度。Sattler F等人也在卷積網絡的基礎上研究了優化模型參數壓縮在non-IID數據集上的應用。在客戶端與中心服務器通訊時,相較於無壓縮基線的2 422 MB網絡參數量,使用基於STC編碼通訊協議的聯邦學習系統能夠在保證模型收斂效果的同時,將上行通訊參數量壓縮至10 MB左右,將下行參數量壓縮到100 MB左右。
聯邦學習算法目前的主要研究方向和瓶頸是如何提高聯邦聚合的優化效率和性能,以達成模型的快速收斂和精準訓練。所以,目前關於聯邦深度學習模型的研究主要是如何優化聯邦聚合,而針對聯邦深度學習模型的研究還相對較少。
表1從算法、框架和特色等角度,對比了聯邦機器學習和聯邦深度學習的算法。
4 聯邦學習算法的優化分類方法
相對於分佈式學習,聯邦學習有一些獨特的屬性,具體以下:
● 聯邦學習的通訊是比較慢速且不穩定的;
● 聯邦學習的參與方設備異構,不一樣設備有不一樣的運算能力;
● 聯邦學習更關注隱私和安全,目前大部分的研究假設參與方和服務器方是可信的,然而在現實生活中,其多是不可信的。
在實現聯邦學習的過程當中,須要考慮如何優化聯邦學習的算法,從而解決存在的現實問題。本文將從通訊成本、客戶端選擇、異步聚合的角度介紹優化聯邦學習的算法。在介紹優化算法以前,先介紹最傳統的聯邦學習算法——FedAvg算法。
FedAvg算法不一樣,其本質思想是對數據持有方採用局部隨機梯度降低的方法進行本地模型優化,在中心服務器方進行聚合操做。目標函數定義以下:
其中,M表示參與聯合建模的數據持有方的數量,ω表示模型當前的參數,表示均方差函數。FedAvg算法是一種比較基礎的聯邦優化算法,其部署相對來講比較簡單,應用領域很普遍。
4.1 從通訊成本角度優化的聯邦學習算法
機器學習算法,特別是複雜的深度學習算法,在訓練的過程當中須要訓練大量的參數,好比CNN可能須要訓練上百萬個參數,每一次更新過程須要更新上百萬個參數;其次,網絡通訊的狀態也可能致使很高的通訊成本,好比不穩定的網絡狀況、參數上傳和下載的過程當中速度不一致都會致使整個算法的模型訓練成本過大。所以須要根據這些特性來考慮如何從通訊成本的角度優化聯邦學習算法。能夠從如下角度考慮減小通訊成本。
4.1.1 增長客戶端計算成本
在聯邦學習體系中,有時終端節點只會在有Wi-Fi時參與聯邦學習訓練,或者有時網絡情況不佳,在這些狀況下,更多的計算能夠在本地進行,從而減小通訊的次數。不少算法是從這個角度來優化通訊成本的。好比Konečný J考慮了優化FedAvg算法,增長每一輪迭代在每一個客戶端的本地更新參數的計算次數,而且與每一輪服務器參數更新只須要一次客戶端本地更新的FedSGD算法進行了對比,實驗經過MINSTCNN模型測試代表,當數據爲IID時,算法能夠明顯減小通訊成本,當數據爲non-IID時,算法只能輕微地減小通訊成本。Sahu A K等人提出了一種更通用的FedProx算法,這種算法在數據爲nonIID時優化效果更明顯,由於聯合訓練的終端參與方的數據、運算能力都是不均衡的,所以每一次參數更新時,不一樣的參與方要參與的運算次數都統一的話,會致使客戶端的計算資源不能充分利用。爲了不這種狀況,優化通訊效率,FedProx算法能夠動態地更新不一樣客戶端每一輪須要本地計算的次數,使得算法更適合非獨立同分布的聯合建模場景。Liu Y等人使用一樣的優化思路優化聯邦優化算法,而且在縱向聯邦學習的框架下進行學習。LI X等人則分析了FedAvg算法的收斂性,並證實了數據的異質性會致使聯邦學習收斂速度下降。
4.1.2 模型壓縮
有的優化算法目的是減小每一輪通訊的參數量,例如經過模型壓縮的技術(好比量化、二次抽樣的方式)來減小每一次參數更新要傳遞的參數總量。Konečný J等人提出了一種結構化的模型更新方式來更新服務器參數,在每一輪的參數通訊過程當中,減少參與方傳遞給服務器的模型更新參數的大小,從而減小通訊。結構化更新是指經過提早定義上傳模型參數的矩陣結構來上傳模型,輪廓更新是指每次更新的參數須要在參與方進行壓縮編碼;模型最後經過CIFAR-10圖像算法進行驗證,實驗代表,參與方越多,壓縮效果越好;Caldas S等人考慮的是從服務器到參與方的模型參數傳遞優化,經過有損壓縮以及聯邦參數篩選(federated dropout)的方式來減小從服務器到客戶端須要傳遞的參數數量,下降通訊成本的代價是在必定程度上下降模型的準確率。
在實現聯邦學習時,通訊是一個瓶頸。下降通訊成本是很是重要的一個優化環節。有的優化以增長參與方的本地計算爲代價,有的優化以下降整個模型的準確性爲代價。在實際優化的過程當中,能夠根據實際狀況和需求決定採用何種方式下降通訊成本。
4.2 從客戶端選擇角度優化的聯邦學習算法
聯邦學習的客戶端設備具備異構性的特徵,而且不一樣的客戶端的資源是有限的。一般,客戶端隨機選擇參與聯邦學習的模型訓練過程。所以,在聯邦學習訓練的過程當中,有的算法會考慮從客戶端選擇的角度進行優化。
不一樣的客戶端的網絡速度、運算能力等不一樣,每一個客戶端擁有的數據分佈也是不平衡的,若是讓全部的客戶端都參與聯邦學習的訓練過程,將會有迭代落後的參與方出現,某些客戶端長時間沒有響應可能會致使整個系統沒法完成聯合訓練。所以,須要考慮如何選擇參與訓練的客戶端。FedAvg算法隨機選擇參與訓練的客戶端。但在網絡結構複雜以及數據非獨立同分布的狀況下,FedAvg算法模型並不必定有好的表現。下面兩篇參考文獻介紹了一些優化方案。
Nishio T等人提出了一種FedCS算法,設計了一種貪心算法的協議機制,以達到在聯合訓練的每一次更新中都選擇模型迭代效率最高的客戶端進行聚合更新的目的,從而優化整個聯邦學習算法的收斂效率。實驗代表,FedCS算法能夠達到更高的準確性,但缺點是隻有在模型比較基礎的狀況下,如基礎的動態神經網絡,纔有好的表現,對於網絡結構或參數數量較爲複雜的狀況來講,FedCS選擇最優的聚合客戶端的效率會下降,形成通訊次數的增多和時間效率的下降。
Yoshida N等人提出了一種HybridFL的協議算法,該協議能夠處理數據集爲non-IID的客戶端數據,解決基於non-IID數據在FedAvg算法上性能很差的問題。Hybrid-FL協議使得服務器經過資源請求的步驟來選擇部分客戶端,從而在本地創建一種近似獨立同分布的數據集用於聯邦學習的訓練和迭代。他們經過實驗代表,對於non-IID數據類型的聯邦學習分類算法來講,Hybrid-FL有較好的準確率表現。
4.3 從異步聚合角度優化的聯邦學習算法
在FedAvg的算法中,聚合是與模型的更新保持同步的。每一次更新,服務器都同步聚合模型參數,而後將聚合參數發送給每個客戶端。在同步聚合中,服務器須要在接收到全部參與訓練的客戶端的參數以後才能夠開始聚合,可是有的客戶端運算傳輸快,有的客戶端運算傳輸慢,爲了不出現通訊遲滯現象,有研究者考慮用異步的方式進行聚合,從而優化聯邦學習算法。
Sprague M R等人提出了一種在聯邦訓練的過程當中加入客戶端的異步聚合方法,而且經過實例證實了這種方法的魯棒性。當服務器接收到任何客戶端的更新參數時,就進行一次聚合。可是這種算法的弊端是當模型數據爲non-IID的時候,模型的收斂會出現很大的問題。
Xie C等人爲了解決異步同步的算法在non-IID數據上的適用性的問題,提出了另外一種FedAsync算法,加入加權聚合的方法,使得服務器在接收到客戶端的參數後,會經過當前訓練的更新次數來設計加權聚合,從而解決non-IID數據的異步聚合的算法收斂問題。該參考文獻理論上證實了在非凸性問題上FedAsync算法具備更好的收斂性。
聯邦學習算法的優化分類方法見表2。
5 結束語
本文討論了聯邦學習目前的發展情況,從聯邦學習算法的角度出發,將聯邦學習相關算法分爲聯邦優化算法和聯邦機器學習算法,對適合中心和去中心兩種聯邦學習結構的相關算法進行了論述,同時將聯邦學習框架下的機器學習算法和聯邦深度學習模型分別進行總結討論。在聯邦算法優化的過程當中,從下降通訊成本、最優客戶端選擇以及優化模型聚合方式的角度討論了現有的聯邦優化算法之間的差別和優缺點。
聯邦學習目前依然處於快速發展的階段,關於聯邦學習在實際中的應用有大量的研究與討論,可是在實現聯邦學習的過程當中,還有不少難題和挑戰,本文給出瞭如下3類主要難題,即通訊難題、系統異構難題以及數據異構難題。
● 通訊難題。在聯邦學習系統中,聯邦網絡可能由大量的設備組成。所以網絡中的通訊效率會對總體速度產生較大的影響。所以,開發通訊效率高的方法就顯得尤其重要。一般能夠從下降傳輸頻率和減小每輪傳輸的信息量着手。下降傳輸頻率主要依靠減小客戶端與中心服務器梯度的交換次數,爲此能夠適當提升一次全局迭代中客戶端本地優化的次數。而減小信息量則主要依靠下降客戶端與中心服務器的交換次數來實現。爲此能夠進行適當的梯度壓縮或者量化,以減小通訊佔用的帶寬。
● 系統異構難題。在聯邦學習系統中,另外一大問題就是衆多客戶端設備之間的異構性,包括存儲、CPU計算能力、網絡傳輸等多個方面的差別。這些異構性使得設備的計算時間不一樣,甚至致使個別設備直接掉線。異步通訊解決了設備完成一次本地更新的時間不一樣、中心服務器等待太久的問題。此前分佈式機器學習的研究已經充分應用了異步通訊的方式。此外,提高系統的魯棒性一樣也能減輕系統異構對聯邦學習產生的影響。在衆多設備參與的狀況下,須要提升系統的容錯能力,提高系統的冗餘度。
● 數據異構難題。聯邦學習中設備常常以非獨立同分布的方式在網絡中生成和收集數據,例如,移動端的用戶在進行輸入法下一單詞預測的任務時,使用不一樣的語言會致使數據異構問題。此外,跨設備的數據持有方持有的數據數量極可能分佈不均勻。所以,許多常見的針對獨立同分布數據假設的優化算法對於聯邦學習來講都是不適用的。所以,如何使優化算法更加兼容聯邦學習實際使用中複雜的數據結構,成爲聯邦學習將來發展的一個研究方向。元學習和多任務學習的思想都支持個性化或基於特定設備的建模,是處理數據統計異質性的一種有效的方法。元學習經過使參與聯邦學習的各客戶端本地模型學習獨立但相關的模型,實現各個參與方本地模型的個性化,是一種應對聯邦學習數據異構性的可行方案。
最後,筆者針對聯邦學習的將來發展提出如下展望。
● 增長算法的聯邦部署。本文討論了目前存在的聯邦學習算法,可是有關機器學習、深度學習算法在聯邦框架下的部署研究問題還處於發展階段。使用聯邦學習框架進行機器學習、深度學習算法實現是人工智能領域落地的一個可行方案,也是更高效、更全面的邊緣數據利用方法。
● 聯邦學習的隱私性保證。數據隱私性的保證是聯邦學習理念的關鍵點之一。儘管目前有許多與聯邦學習隱私性相關的研究,可是在聯邦學習實際應用的過程當中,依然會面臨許多複雜的隱私性挑戰。聯邦學習系統須要時刻提高對各種不良***的防護能力,保障用戶數據的隱私性。
● 聯邦學習的多領域協同發展。聯邦學習的系統發展與多個領域有所關聯,如邊緣計算等。多領域的協同發展能夠提高聯邦學習的性能,同時更好地發揮聯邦學習的便捷性、隱私性等優點。
做者簡介
王健宗(1983-),男,博士,平安科技(深圳)有限公司副總工程師,資深人工智能總監,聯邦學習技術部總經理。美國佛羅里達大學人工智能博士後,中國計算機學會(CCF)高級會員,CCF大數據專家委員會委員,曾任美國萊斯大學電子與計算機工程系研究員,主要研究方向爲聯邦學習和人工智能等 。
孔令煒(1995-),男,平安科技(深圳)有限公司聯邦學習團隊算法工程師,CCF會員,主要研究方向爲聯邦學習系統和安全通訊等 。
黃章成(1990-),男,平安科技(深圳)有限公司聯邦學習團隊資深算法工程師,人工智能專家,CCF會員,主要研究方向爲聯邦學習、分佈式計算及系統和加密通訊等 。
陳霖捷(1994-),男,平安科技(深圳)有限公司聯邦學習團隊算法工程師,主要研究方向爲聯邦學習與隱私保護、機器翻譯等 。
劉懿(1994-),女,平安科技(深圳)有限公司聯邦學習團隊算法工程師,主要研究方向爲聯邦學習系統等 。
何安珣(1990-),女,平安科技(深圳)有限公司聯邦學習團隊高級算法工程師,CCF會員,主要研究方向爲聯邦學習技術在金融領域的落地應用、聯邦學習框架搭建、加密算法研究和模型融合技術 。
肖京(1972-),男,博士,中國平安保險(集團)股份有限公司首席科學家。2019年吳文俊人工智能科學技術獎傑出貢獻獎得到者,CCF深圳會員活動中心副主席,主要研究方向爲計算機圖形學學科、自動駕駛、3D顯示、醫療診斷、聯邦學習等 。