1、聯邦學習
傳統的機器學習算法需要用戶將源數據上傳到高算力的云服務器上集中訓練,這種方式導致了數據流向的不可控和敏感數據泄露問題。Mcmahan等在2016年提出聯邦學習技術,允許用戶在機器學習過程中既可以保護用戶隱私,又能夠無須源數據聚合形成訓練數據共享。聯邦學習本質上是一種分布式的機器學習技術,其流程如圖1所示。

客戶端(如平板電腦、手機、物聯網設備)在中心服務器(如服務提供商)的協調下共同訓練模型,其中客戶端負責訓練本地數據得到本地模型(local
model)。中心服務器負責加權聚合本地模型,得到全局模型(global
model),經過多輪迭代后最終得到一個趨近于集中式機器學習結果的模型w,有效地降低了傳統機器學習源數據聚合帶來的許多隱私風險。
聯邦學習技術特點
(1)參與聯邦學習的原始數據都保留在本地客戶端,與中心服務器交互的只是模型更新信息;
(2)聯邦學習的參與方聯合訓練出的模型w將被各方共享;
(3)聯邦學習最終的模型精度與集中式機器學習相似;
(4)聯邦學習參與方的訓練數據質量越高,全局模型精度越高。
2、聯邦學習算法原理
典型的聯邦學習場景是在本地客戶端設備負責存儲和處理數據的約束下,只上傳模型更新的梯度信息,在數千萬到數百萬個客戶端設備上訓練單個全局模型w。中心服務器的目標函數F(w)
通常表現為:

其中,m是參與訓練的客戶端設備總數,n是所有客戶端數據量總和,kn是第k個客戶端的數據量,Fk(w) 是第K個設備的本地目標函數。

其中,dk是第k個客戶端的本地數據集,fi(w) =α(xi,yi,w)
是具有參數w的模型對數據集dk中的實例(xi,yi)產生的損失函數。dk中所有實例產生的損失函數之和除以客戶端k的總數據量就是本地客戶端的平均損失函數,損失函數與模型精度成反比,因此,機器學習的目標函數優化通常是讓損失函數達到最小值。
聯邦學習的目標函數優化算法中,通常采用大批量隨機梯度下降(SGD)算法,即通過本地客戶端模型訓練的損失函數,乘以固定的學習率η
,計算出新一輪的權重更新。因此,本地客戶端的模型權重更新如下:

第t輪通信中心服務器的模型聚合更新如下:
