Google研究 | 聯合學習:無需集中儲存訓練資料的協同機器學習

谷歌開發者_發表於2017-04-27

640?wx_fmt=gif


文 | Google 研究員 Brendan McMahan 和 Daniel Ramage


標準的機器學習方法需要將訓練資料集中到一臺機器上或一個資料中心內。為了處理此資料,改善我們的服務,Google 構建了一套最安全、最強大的雲基礎架構。現在,對於通過使用者與移動裝置互動進行訓練的學習模式,我們另外引入了一種方法:聯合學習。


通過聯合學習,行動電話可以協同學習共享的預測模型,同時將所有訓練資料保留在裝置上,從而無需將資料儲存在雲中,即可進行機器學習。同時,通過將模型訓練引入到裝置上,超越了以往使用本地模型預測移動裝置(例如 Mobile Vision API 和裝置端智慧回覆)的模式。


其工作原理如下:您的裝置下載當前模型,通過學習手機中的資料改進模型,然後以小幅更新的形式彙總所做的變更。通過加密通訊僅將此模型的更新傳送至雲,在雲中,立即與其他使用者更新進行平均,以改進共享模型。所有訓練資料仍保留在您的裝置上,雲中未儲存任何個別使用者的更新。


640?wx_fmt=png

▲ 您的手機根據您的使用情況,在本地建立個性化模型 (A)。然後,許多使用者的更新聚合 (B) 在一起,形成對共享模型的一致更新 (C),之後不斷重複此流程。


聯合學習可建立更智慧的模型,縮短延遲時間,減小功耗,同時確保隱私性。這種方法另一個直接的益處是:除了為共享模型提供更新之外,還可以即時使用手機中經過改進的模型,根據您使用手機的方式,提供個性化的體驗。


我們目前正在 Android 版 Gboard(即 Google 鍵盤)中測試聯合學習。當 Gboard 顯示建議的查詢內容時,您的手機在本地儲存與當前上下文以及您是否點選此建議有關的資訊。聯合學習處理裝置上的歷史記錄,為 Gboard 的查詢建議模型的後續迭代提出改進建議。


要實現聯合學習,我們必須克服演算法和技術上的諸多挑戰。在典型的機器學習系統中,對大型資料集執行類似隨機梯度下降 (SGD) 這樣的優化演算法時,會將資料集均勻地分散在雲中的不同伺服器上。這種高度迭代的演算法要求與訓練資料之間保持低延遲時間、高吞吐量的連線。而在聯合學習環境中,資料很不均勻地分散在數以百萬計的裝置之間。此外,相比之下,這些裝置的連線的延遲時間要長很多,而吞吐量卻低很多,並且只能間歇性用於訓練。


這些頻寬和延遲時間上的限制促使我們設計出聯合平均演算法,此演算法訓練深度網路所用的通訊資源不到最初 SGD 聯合版本的 1/10-1/100。關鍵在於利用現代移動裝置中強大的處理器來計算比簡單梯度方法質量更高的更新。由於只需較少的優質更新迭代就可生成適當的模型,訓練使用的通訊資源大大減少。由於上傳速度通常遠低於下載速度,我們還研究出了一種新方法,通過使用隨機旋轉和量化的方式壓縮更新,使上傳通訊開銷最多可降至之前的 1/100。這些方法主要用於深度網路訓練,我們還為擅長解決點選率預測等問題的多維稀疏凸集模型設計了多種演算法。


將此技術部署到數以百萬計執行 Gboard 的手機,需要一整套成熟的技術。裝置端訓練採用了迷你版 TensorFlow。審慎地計劃,確保僅在裝置處於空閒、通電狀態並使用免費的無線連線時進行訓練,以便不影響手機的效能。


640?wx_fmt=png

▲ 僅在不會影響您的體驗的情況下,才讓您的手機參與聯合學習。


然後,系統需要以安全、高效、可擴充套件和容錯的方式傳輸和聚合模型更新。只有將研究與此基礎架構相結合,才能從聯合學習中受益。


聯合學習的執行無需將使用者資料儲存在雲中,但我們並未止步於此。我們開發了一種使用加密技術的安全聚合協議,以便協調伺服器僅當 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 團隊合作伙伴的共同貢獻。


瞭解更多細節,檢視文內所有連結,請點選文末“閱讀原文”。


推薦閱讀:

Google研究 | 使用一致的雜湊演算法分配臨界負載

人工智慧是一種技術手段,不是魔法

TensorFlow使用者有獎徵集

TensorFlow 1.0 釋出,更快、更靈活、更方便!


640?wx_fmt=gif

點選「閱讀原文」,檢視文內連結640?wx_fmt=gif

相關文章