Google研究 | 聯合學習:無需集中儲存訓練資料的協同機器學習
文 | Google 研究員 Brendan McMahan 和 Daniel Ramage
標準的機器學習方法需要將訓練資料集中到一臺機器上或一個資料中心內。為了處理此資料,改善我們的服務,Google 構建了一套最安全、最強大的雲基礎架構。現在,對於通過使用者與移動裝置互動進行訓練的學習模式,我們另外引入了一種方法:聯合學習。
通過聯合學習,行動電話可以協同學習共享的預測模型,同時將所有訓練資料保留在裝置上,從而無需將資料儲存在雲中,即可進行機器學習。同時,通過將模型訓練引入到裝置上,超越了以往使用本地模型預測移動裝置(例如 Mobile Vision API 和裝置端智慧回覆)的模式。
其工作原理如下:您的裝置下載當前模型,通過學習手機中的資料改進模型,然後以小幅更新的形式彙總所做的變更。通過加密通訊僅將此模型的更新傳送至雲,在雲中,立即與其他使用者更新進行平均,以改進共享模型。所有訓練資料仍保留在您的裝置上,雲中未儲存任何個別使用者的更新。
▲ 您的手機根據您的使用情況,在本地建立個性化模型 (A)。然後,許多使用者的更新聚合 (B) 在一起,形成對共享模型的一致更新 (C),之後不斷重複此流程。
聯合學習可建立更智慧的模型,縮短延遲時間,減小功耗,同時確保隱私性。這種方法另一個直接的益處是:除了為共享模型提供更新之外,還可以即時使用手機中經過改進的模型,根據您使用手機的方式,提供個性化的體驗。
我們目前正在 Android 版 Gboard(即 Google 鍵盤)中測試聯合學習。當 Gboard 顯示建議的查詢內容時,您的手機在本地儲存與當前上下文以及您是否點選此建議有關的資訊。聯合學習處理裝置上的歷史記錄,為 Gboard 的查詢建議模型的後續迭代提出改進建議。
要實現聯合學習,我們必須克服演算法和技術上的諸多挑戰。在典型的機器學習系統中,對大型資料集執行類似隨機梯度下降 (SGD) 這樣的優化演算法時,會將資料集均勻地分散在雲中的不同伺服器上。這種高度迭代的演算法要求與訓練資料之間保持低延遲時間、高吞吐量的連線。而在聯合學習環境中,資料很不均勻地分散在數以百萬計的裝置之間。此外,相比之下,這些裝置的連線的延遲時間要長很多,而吞吐量卻低很多,並且只能間歇性用於訓練。
這些頻寬和延遲時間上的限制促使我們設計出聯合平均演算法,此演算法訓練深度網路所用的通訊資源不到最初 SGD 聯合版本的 1/10-1/100。關鍵在於利用現代移動裝置中強大的處理器來計算比簡單梯度方法質量更高的更新。由於只需較少的優質更新迭代就可生成適當的模型,訓練使用的通訊資源大大減少。由於上傳速度通常遠低於下載速度,我們還研究出了一種新方法,通過使用隨機旋轉和量化的方式壓縮更新,使上傳通訊開銷最多可降至之前的 1/100。這些方法主要用於深度網路訓練,我們還為擅長解決點選率預測等問題的多維稀疏凸集模型設計了多種演算法。
將此技術部署到數以百萬計執行 Gboard 的手機,需要一整套成熟的技術。裝置端訓練採用了迷你版 TensorFlow。審慎地計劃,確保僅在裝置處於空閒、通電狀態並使用免費的無線連線時進行訓練,以便不影響手機的效能。
▲ 僅在不會影響您的體驗的情況下,才讓您的手機參與聯合學習。
然後,系統需要以安全、高效、可擴充套件和容錯的方式傳輸和聚合模型更新。只有將研究與此基礎架構相結合,才能從聯合學習中受益。
聯合學習的執行無需將使用者資料儲存在雲中,但我們並未止步於此。我們開發了一種使用加密技術的安全聚合協議,以便協調伺服器僅當 100 或 1000 個使用者參與時解密平均更新,在平均更新之前不檢查任何手機的更新。它是同類協議中第一個可用於解決深度網路級別問題和現實連線限制的協議。我們設計了聯合平均演算法,使協調伺服器僅僅需要進行平均更新,因此可使用安全聚合協議;但此協議為通用協議,也可用於解決其他問題。我們正努力將此協議應用於生產環境,希望能在不久的將來將它部署用於聯合學習應用。
在探索潛在應用領域方面,我們的工作目前尚在走馬觀花階段。聯合學習無法解決所有機器學習問題(例如,通過訓練認識仔細標註的圖例,學習識別不同的犬類),而對於其他許多模型而言,必要的訓練資料已儲存在雲中(例如,Gmail 垃圾郵件過濾器訓練)。因此,Google 將繼續推進基於雲的尖端機器學習技術,同時,我們不斷研究聯合學習技術,以便解決更多的問題。例如,除了 Gboard 的查詢建議外,我們還希望改進語言模型,根據您在手機上實際鍵入的內容改進鍵盤(可以定製獨有的鍵盤樣式),以及根據使用者檢視、分享或刪除的照片型別,對照片進行排名。
應用聯合學習需要機器學習從業者採用新的工具和新的思維方式:模型開發、訓練和評價,不直接訪問或標記原始資料,而通訊開銷是它們的一個制約因素。我們相信,聯合學習將讓使用者受益,值得我們去攻克技術上的難題,而我們釋出此博文的目的是希望聯合學習能在機器學習社群得到廣泛的討論。
致謝:
此文源自 Google 研究部門的多位同仁(包括 Blaise Agüera y Arcas、Galen Andrew、Dave Bacon、Keith Bonawitz、Chris Brumme、Arlie Davis、Jac de Haan、Hubert Eichner、Wolfgang Grieskamp、Wei Huang、Vladimir Ivanov、Chloé Kiddon、Jakub Konečný、Nicholas Kong、Ben Kreuter、Alison Lentz、Stefano Mazzocchi、Sarvar Patel、Martin Pelikan、Aaron Segal、Karn Seth、Ananda Theertha Suresh、Iulia Turc 和 Felix Yu 等)以及 Gboard 團隊合作伙伴的共同貢獻。
瞭解更多細節,檢視文內所有連結,請點選文末“閱讀原文”。
推薦閱讀:
點選「閱讀原文」,檢視文內連結
相關文章
- 機器學習-訓練模型的儲存與恢復(sklearn)機器學習模型
- 機器學習7-模型儲存&無監督學習機器學習模型
- 機器學習的訓練集機器學習
- 訓練機器學習的資料集大小很重要 - svpino機器學習
- 詳解聯邦學習中的異構模型整合與協同訓練技術聯邦學習模型
- 再無需從頭訓練遷移學習模型!亞馬遜開源遷移學習資料庫 Xfer遷移學習模型亞馬遜資料庫
- 瀏覽器中的機器學習:使用預訓練模型瀏覽器機器學習模型
- 儲存學習
- 機器學習之邏輯迴歸:模型訓練機器學習邏輯迴歸模型
- 微軟研究團隊使用遷移學習,訓練現實世界中的無人機微軟遷移學習無人機
- 機器學習——監督學習&無監督學習機器學習
- 機器學習之訓練神經網路:最佳做法機器學習神經網路
- 重新學習Mysql資料庫3:Mysql儲存引擎與資料儲存原理MySql資料庫儲存引擎
- 機器學習-資料清洗機器學習
- 機器學習 大資料機器學習大資料
- 做資料分析需要學習機器學習嗎?機器學習
- 在 Python 中儲存和載入機器學習模型Python機器學習模型
- 資料不出本地,還能享受大資料訓練模型,聯邦學習提供一種應用廣闊的學習新正規化大資料模型聯邦學習
- 100天搞定機器學習:模型訓練好了,然後呢?機器學習模型
- 機器學習高質量資料集大合輯機器學習
- spark學習筆記--資料讀取與儲存Spark筆記
- Python爬蟲學習筆記(三、儲存資料)Python爬蟲筆記
- 資料庫學習(六)聯合查詢union資料庫
- 機器學習-- 資料轉換機器學習
- 機器學習之清理資料機器學習
- 如何對SAP Leonardo上的機器學習模型進行重新訓練機器學習模型
- 機器學習中的過擬合機器學習
- ENVI深度學習隨機引數訓練方法深度學習隨機
- 「雜談」GitHub上最全的機器學習和深度學習資料Github機器學習深度學習
- 機器學習之儲存與載入.pickle模型檔案機器學習模型
- 機器學習 # 為什麼機器學習要求資料是獨立同分布的?機器學習
- 【機器學習基礎】無監督學習(1)——PCA機器學習PCA
- 【機器學習基礎】無監督學習(3)——AutoEncoder機器學習
- Python學習手冊(入門&爬蟲&資料分析&機器學習&深度學習)Python爬蟲機器學習深度學習
- 【機器學習】機器學習簡介機器學習
- What-If 工具:無需寫程式碼,即可測試機器學習模型機器學習模型
- Pytorch學習(七)---- 儲存提取PyTorch
- 機器學習中的元學習機器學習
- 八個機器學習資料清洗機器學習