首頁 > 軟體

聯邦學習論文解讀分散資料的深層網路通訊

2022-05-13 21:48:51

前言

聯邦學習(Federated Learning) 是人工智慧的一個新的分支,這項技術是谷歌於2016年首次提出,本篇論文第一次描述了這一概念。

Abstract

現代移動裝置可以存取到大量資料,這些資料訓練後反過來可以大大提高使用者體驗。例如,語言模型可以改善語音識別和文字輸入,影象模型可以自動選擇好的照片。但是,這些豐富的資料通常對隱私敏感、數量眾多或兩者兼而有之,這可能會妨礙使用常規方法進行訓練。於是我們提出將訓練資料分發在移動裝置上的替代訓練方案,並通過聚合本地計算的更新來學習共用模型,我們稱這種分散的學習方法為聯邦學習。

簡而言之,當下移動裝置產生了大量的資料,我們需要利用這些資料來訓練一些模型,這些模型將會提升使用者實驗。傳統的訓練方式:收集所有使用者端的資料,然後利用這些資料訓練一個模型,最後分發給所有使用者端。存在的問題:我們沒法直接收集所有裝置的資料來統一訓練(隱私要求),於是提出了一種新的不需要共用使用者端資料的模型訓練方式。

Introduction

聯邦學習中,學習任務由中央伺服器協調,每個使用者端都有一個本地訓練資料集,該資料集永遠不會上傳到伺服器(即隱私不會被洩露)。

本文主要貢獻:

  • 將移動裝置分散資料的訓練問題確定為重要的研究方向
  • 提出瞭解決該問題的具體演演算法
  • 對所提出的演演算法進行了驗證

更具體地說,我們引入了聯邦平均演演算法(FederatedAveraging algorithm)。

Federated Learning

聯邦學習的問題具有以下屬性:

  • 對來自移動裝置的資料進行訓練,與對資料中心通常可用的代理資料進行訓練相比,具有明顯的優勢。
  • 該資料是隱私敏感的或者大規模的(與模型的大小相比),因此最好不要純粹出於模型訓練的目的將其記錄到資料中心(隱私的)
  • 對於監督任務,可以從使用者互動中自然推斷出資料上的標籤。

作為兩個例子,我們考慮影象分類和語言模型。影象分類:例如預測哪些照片將來最有可能被多次檢視或共用;語言模型:下一個單詞的預測甚至預測整個回覆來改善觸控式螢幕鍵盤上的語音識別和文字輸入。這兩項任務的潛在訓練資料(使用者拍攝的所有照片以及他們在移動鍵盤上鍵入的所有照片,包括密碼,URL,訊息等)都可能對隱私敏感。

Privacy

與資料中心對持久資料的訓練相比,聯邦學習具有明顯的隱私優勢。但是即使是“匿名”資料集,也可能通過與其他資料結合而使使用者隱私面臨風險。

Federated Optimization

我們將聯邦學習中的優化問題稱為聯邦優化(Federated Optimization)。聯邦優化具有幾個關鍵屬性,可將其與典型的分散式優化問題區分開:

  • Non-IID:給定使用者端上的訓練資料通常基於特定使用者對移動裝置的使用,因此任何特定使用者的本地資料集將不代表總體分佈。
  • Unbalanced:一些使用者將比其他使用者更重地使用服務或應用程式,導致不同數量的本地培訓資料。簡而言之,每個使用者產生的資料量不一樣。
  • Massively distributed:預計參與優化的使用者端數量將遠遠大於每個使用者端的平均範例數量。
  • 移動裝置經常離線或連線緩慢或昂貴

本文重點是非IID和不平衡屬性的優化,以及通訊約束的關鍵性質。

我們假設一個同步更新方案在幾輪通訊中進行。有一組固定的K個使用者端,每個使用者端都有一個固定的本地資料集。在每輪開始時,隨機選擇一部分使用者端,伺服器將當前全域性演演算法狀態傳送給這些使用者端中的每一個(例如,當前模型引數)。然後,每個選定的使用者端根據全域性狀態及其本地資料集執行本地計算,並向伺服器傳送更新。然後,伺服器將這些更新應用於其全域性狀態,並重復該過程。

問題的一般形式:

在資料中心優化中,通訊成本相對較小,計算成本占主導地位,最近的重點是使用GPU來降低這些成本。相比之下,在聯邦優化通訊成本中占主導地位。

因此,我們的目標是使用額外的計算來減少訓練模型所需的通訊輪數。我們可以新增計算的兩種主要方法:

增加並行性。使用更多使用者端在每個通訊週期之間獨立工作。

增加對每個使用者端的計算。即每個使用者端在每個通訊回合之間執行更復雜的計算。

以上內容下文都將有更加詳細的介紹!

The FederatedAveraging Algorithm

深度學習的眾多成功應用幾乎完全依賴於隨機梯度下降(SGD)的變體進行優化。

在聯邦學習中,我們使用大批次同步SGD,已有相關論文證明,它是優於非同步方法的。

為了在聯邦學習中應用這種方法,我們在每輪中選擇一部分使用者端,並計算這些使用者端持有的所有資料的損失梯度。引數C控制全域性塊大小,其中C=1對應於全批(非隨機)梯度下降。我們將此演演算法稱為FederatedSGD(orFedSGD)。

FedSGD的一種典型的實現方式:C=1(非SGD),學習率 η eta η固定,每一個使用者端算出自己所有資料損失的梯度(平均梯度),然後傳遞給中央伺服器,中央伺服器整合所有梯度,來更新全域性的引數 w t w_t wt​。

計算量由三個引數控制:

  • C:每一輪執行計算的使用者端比例(只有一部分使用者端參與更新)
  • E:每一輪更新時,每個使用者端對其本地引數進行更新的次數
  • B:使用者端每一次更新引數時所用本地資料量的大小

該演演算法更加詳細的描述如下:

引數介紹:K表示使用者端的個數, B表示每一次本地更新時的資料量,E表示本地更新的次數, η表示學習率。

首先是伺服器執行以下步驟:

Experimental Results

Table1:

表1描述的是影象分類任務:引數C對E=1的MNIST 2NN和E=5的CNN的影響。其中C=0表示每次選擇一個使用者端的資料進行更新。對於MINST 2NN來說,總的使用者端數量為100,即五行分別表示1,10,20,50,100個使用者端。

每個表格條目給出了實現2NN的97%和CNN的99%的測試集精度所需的通訊輪數,以及相對於C=0這一baseline的加速比。 比如對於第三行 B = ∞ B=infty B=∞這一情況( B = ∞ B=infty B=∞表示每一次都用全部資料進行本地引數更新),中央伺服器需要與使用者端進行1658次通訊,才能使得模型在測試集上的精度達到97%。

Table2:

表2描述的是語言模型:LSTM語言模型,該模型在讀取一行中的每個字元后預測下一個字元。該模型以一系列字元作為輸入,並將每個字元嵌入到8維空間中,然後通過2個LSTM層處理嵌入的字元,每個層具有256個節點。

表2的含義同表1:在某一引數環境下,FedSGD要達到目標精度所需要進行的通訊次數。

SGD對學習率引數η的調整很敏感,本文的 η eta η是基於網格搜尋法找到的。

Increasing parallelism

增加並行性: 即增加使用者端數量。

上圖給出了特定引數設定下要達到閾值精度(圖中灰線)所需要進行的通訊輪數。

然後,使用形成曲線的離散點之間的線性插值來計算曲線穿過目標精度的輪數。

Increasing computation per client

增加每個使用者端的計算量。C=0.1固定,減小B,或者增加E,或者減小B的同時增加E。

還是上面這張圖:

可以看到,隨著B減小或者E增加,達到目標精度所需的通訊次數是減小的,也就是說:每輪新增更多本地SGD更新可以顯著降低通訊成本。

Can we over-optimize on the client datasets?

本地資料集上進行更新時可以過度優化嗎?即E特別大,進行很多次的本地更新。

上圖給出了E特別大時的實驗結果:對於大的E值,收斂速度並沒有顯著的下降。

Conclusions and Future Work

聯邦學習可以變得切實可行,因為可以使用相對較少的通訊輪次來訓練高質量模型。聯邦學習將是未來比較熱門的一個方向!

以上就是論文解讀分散資料的深層網路通訊有效學習的詳細內容,更多關於分散資料深層網路通訊的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com