0

傳統機器學習方法,需要把訓練數據集中于某一臺機器或是單個數據中心里。谷歌等云服務巨頭還建設了規模龐大的云計算基礎設施,來對數據進行處理。現在,為利用移動設備上的人機交互來訓練模型,谷歌發明了一個新名詞——Federated Learning。
谷歌表示,這會是機器學習的另一大未來發展方向。
那么,什么是 Federated Learning?
它意為“聯合學習”——能使多臺智能手機以協作的形式,學習共享的預測模型。與此同時,所有的訓練數據保存在終端設備。這意味著在 Federated Learning 的方式下,把數據保存在云端,不再是搞大規模機器學習的必要前提。
最重要的一點:Federated Learning 并不僅僅是在智能手機上運行本地模型做預測 (比如 Mobile Vision API 和 On-Device Smart Reply),而更進一步,讓移動設備能夠協同進行模型訓練。
Federated Learning 的工作方式如下:
智能手機下載當前版本的模型
通過學習本地數據來改進模型
把對模型的改進,概括成一個比較小的專門更新
該更新被加密發送到云端
與其他用戶的更新即時整合,作為對共享模型的改進
所有的訓練數據仍然在每名終端用戶的設備中,個人更新不會在云端保存。
雷鋒網獲知,整個過程有三個關鍵環節:
根據用戶使用情況,每臺手機在本地對模型進行個性化改進
形成一個整體的模型修改方案
應用于共享的模型
該過程會不斷循環。

谷歌表示,Federated Learning 的主要優點有:
更智能的模型
低延遲
低功耗
保障用戶隱私
另外,在向共享模型提供更新之外;本地的改進模型可以即時使用,這能向用戶提供個性化的使用體驗。
目前,谷歌正在谷歌輸入法 Gboard 上測試 Federated Learning。當 Gboard 顯示推薦搜索項,不論用戶是否最終點擊了推薦項,智能手機會在本地存儲相關信息。Federated Learning 會對設備歷史數據進行處理,然后對 Gboard 檢索推薦模型提出改進。

與推薦算法很像,但模型更新先在本地發生,再到云端整合。
谷歌表示,實現 Federated Learning 有許多算法、技術上的挑戰,比方說:
在典型的機器學習系統中,超大型數據集會被平均分割到云端的多個服務器上,像隨機梯度下降(SGD)這樣的優化算法便運行于其上。這類反復迭代的算法,與訓練數據之間需要低延遲、高吞吐量的連接。而在 Federated Learning 的情況下,數據以非常不平均的方式分布在數百萬的移動設備上。相比之下,智能手機的延遲更高、網絡吞吐量更低,并且僅可在保證用戶日常使用的前提下,斷斷續續地進行訓練。
為解決這些帶寬、延遲問題,谷歌開發出一套名為 Federated Averaging 的算法。雷鋒網了解到,相比原生的 Federated Learning 版本隨機梯度下降,該算法對訓練深度神經網絡的通訊要求,要低 10 到 100 倍。谷歌的核心思路,是利用智能移動設備的強大處理器來計算出更高質量的更新,而不僅僅是優化。做一個好模型,高質量的更新會意味著迭代次數的減少。因此,模型訓練能夠減少通訊需求。
由于上行速度一般比下行速度慢很多,谷歌還開發了一種比較新奇的方式,將上行通訊需求再次減少的 100 倍之多:使用隨機 rotation 和 quantization 來壓縮更新。雖然這些解決方案聚焦于訓練深度網絡,谷歌還設計了一個針對高維稀疏 convex 模型的算法,特別擅長點擊率預測等問題。
在數百萬不同的智能手機上部署 Federated Learning,需要非常復雜的技術整合。設備本地的模型訓練,使用的是迷你版的 TensorFlow。非常細致的 scheduling 系統,保證只有用戶手機閑置、插著電、有 Wi-Fi 時才訓練模型。所以在智能手機的日常使用中,Federated Learning 并不會影響性能。
谷歌強調, Federated Learning 不會在用戶體驗上做任何妥協。保證了此前提,用戶手機才會加入 Federated Learning。

然后,該系統需要以安全、高效、可擴展、可容錯的方式對模型更新進行整合。
Federated learning 不需要在云端存儲用戶數據。但為避免用戶隱私泄露,谷歌更進一步,開發了一個名為 Secure Aggregation、使用加密技術的協議。由于此草案,系統服務器只能夠解碼至少 100 或 1000 名用戶參與的平均更新。在整合以前,用戶的個體更新不能被查看。
據雷鋒網了解,這是世界上第一個此類協議,對于深度網絡層級的問題以及現實通訊瓶頸具有使用價值。谷歌表示,設計 Federated Averaging,是為了讓服務器只需要整合后的更新,讓 Secure Aggregation 能夠派上用場。另外,該草案具有通用潛力,能夠應用于其他問題。谷歌正在加緊研發該協議產品級的應用執行。
谷歌表示,Federated learning 的潛力十分巨大,現在只不過探索了它的皮毛。但它無法用來處理所有的機器學習問題。對于許多其他模型,必需的訓練數據已經存在云端 (比如訓練 Gmail 的垃圾郵件過濾器)。因此,谷歌表示會繼續探索基于云計算的 ML,但同時“下定決心”不斷拓展 Federated Learning 的功能。目前,在谷歌輸入法的搜索推薦之外,谷歌希望根據手機輸入習慣改進語言模型;以及根據圖片瀏覽數據改進圖片排列。
對 Federated Learning 進行應用,需要機器學習開發者采用新的開發工具以及全新思路——從模型開發、訓練一直到模型評估。
今后,Federated Learning 是否會成為 AI 領域的一大主題,還是像網狀網絡技術那樣停留在實驗室中,我們拭目以待。
via googleblog
相關文章: