0
本文作者: 三川 | 2017-04-07 19:06 |
傳統(tǒng)機器學習方法,需要把訓練數(shù)據(jù)集中于某一臺機器或是單個數(shù)據(jù)中心里。谷歌等云服務(wù)巨頭還建設(shè)了規(guī)模龐大的云計算基礎(chǔ)設(shè)施,來對數(shù)據(jù)進行處理?,F(xiàn)在,為利用移動設(shè)備上的人機交互來訓練模型,谷歌發(fā)明了一個新名詞——Federated Learning。
谷歌表示,這會是機器學習的另一大未來發(fā)展方向。
那么,什么是 Federated Learning?
它意為“聯(lián)合學習”——能使多臺智能手機以協(xié)作的形式,學習共享的預(yù)測模型。與此同時,所有的訓練數(shù)據(jù)保存在終端設(shè)備。這意味著在 Federated Learning 的方式下,把數(shù)據(jù)保存在云端,不再是搞大規(guī)模機器學習的必要前提。
最重要的一點:Federated Learning 并不僅僅是在智能手機上運行本地模型做預(yù)測 (比如 Mobile Vision API 和 On-Device Smart Reply),而更進一步,讓移動設(shè)備能夠協(xié)同進行模型訓練。
Federated Learning 的工作方式如下:
智能手機下載當前版本的模型
通過學習本地數(shù)據(jù)來改進模型
把對模型的改進,概括成一個比較小的專門更新
該更新被加密發(fā)送到云端
與其他用戶的更新即時整合,作為對共享模型的改進
所有的訓練數(shù)據(jù)仍然在每名終端用戶的設(shè)備中,個人更新不會在云端保存。
雷鋒網(wǎng)獲知,整個過程有三個關(guān)鍵環(huán)節(jié):
根據(jù)用戶使用情況,每臺手機在本地對模型進行個性化改進
形成一個整體的模型修改方案
應(yīng)用于共享的模型
該過程會不斷循環(huán)。
谷歌表示,F(xiàn)ederated Learning 的主要優(yōu)點有:
更智能的模型
低延遲
低功耗
保障用戶隱私
另外,在向共享模型提供更新之外;本地的改進模型可以即時使用,這能向用戶提供個性化的使用體驗。
目前,谷歌正在谷歌輸入法 Gboard 上測試 Federated Learning。當 Gboard 顯示推薦搜索項,不論用戶是否最終點擊了推薦項,智能手機會在本地存儲相關(guān)信息。Federated Learning 會對設(shè)備歷史數(shù)據(jù)進行處理,然后對 Gboard 檢索推薦模型提出改進。
與推薦算法很像,但模型更新先在本地發(fā)生,再到云端整合。
谷歌表示,實現(xiàn) Federated Learning 有許多算法、技術(shù)上的挑戰(zhàn),比方說:
在典型的機器學習系統(tǒng)中,超大型數(shù)據(jù)集會被平均分割到云端的多個服務(wù)器上,像隨機梯度下降(SGD)這樣的優(yōu)化算法便運行于其上。這類反復(fù)迭代的算法,與訓練數(shù)據(jù)之間需要低延遲、高吞吐量的連接。而在 Federated Learning 的情況下,數(shù)據(jù)以非常不平均的方式分布在數(shù)百萬的移動設(shè)備上。相比之下,智能手機的延遲更高、網(wǎng)絡(luò)吞吐量更低,并且僅可在保證用戶日常使用的前提下,斷斷續(xù)續(xù)地進行訓練。
為解決這些帶寬、延遲問題,谷歌開發(fā)出一套名為 Federated Averaging 的算法。雷鋒網(wǎng)了解到,相比原生的 Federated Learning 版本隨機梯度下降,該算法對訓練深度神經(jīng)網(wǎng)絡(luò)的通訊要求,要低 10 到 100 倍。谷歌的核心思路,是利用智能移動設(shè)備的強大處理器來計算出更高質(zhì)量的更新,而不僅僅是優(yōu)化。做一個好模型,高質(zhì)量的更新會意味著迭代次數(shù)的減少。因此,模型訓練能夠減少通訊需求。
由于上行速度一般比下行速度慢很多,谷歌還開發(fā)了一種比較新奇的方式,將上行通訊需求再次減少的 100 倍之多:使用隨機 rotation 和 quantization 來壓縮更新。雖然這些解決方案聚焦于訓練深度網(wǎng)絡(luò),谷歌還設(shè)計了一個針對高維稀疏 convex 模型的算法,特別擅長點擊率預(yù)測等問題。
在數(shù)百萬不同的智能手機上部署 Federated Learning,需要非常復(fù)雜的技術(shù)整合。設(shè)備本地的模型訓練,使用的是迷你版的 TensorFlow。非常細致的 scheduling 系統(tǒng),保證只有用戶手機閑置、插著電、有 Wi-Fi 時才訓練模型。所以在智能手機的日常使用中,F(xiàn)ederated Learning 并不會影響性能。
谷歌強調(diào), Federated Learning 不會在用戶體驗上做任何妥協(xié)。保證了此前提,用戶手機才會加入 Federated Learning。
然后,該系統(tǒng)需要以安全、高效、可擴展、可容錯的方式對模型更新進行整合。
Federated learning 不需要在云端存儲用戶數(shù)據(jù)。但為避免用戶隱私泄露,谷歌更進一步,開發(fā)了一個名為 Secure Aggregation、使用加密技術(shù)的協(xié)議。由于此草案,系統(tǒng)服務(wù)器只能夠解碼至少 100 或 1000 名用戶參與的平均更新。在整合以前,用戶的個體更新不能被查看。
據(jù)雷鋒網(wǎng)了解,這是世界上第一個此類協(xié)議,對于深度網(wǎng)絡(luò)層級的問題以及現(xiàn)實通訊瓶頸具有使用價值。谷歌表示,設(shè)計 Federated Averaging,是為了讓服務(wù)器只需要整合后的更新,讓 Secure Aggregation 能夠派上用場。另外,該草案具有通用潛力,能夠應(yīng)用于其他問題。谷歌正在加緊研發(fā)該協(xié)議產(chǎn)品級的應(yīng)用執(zhí)行。
谷歌表示,F(xiàn)ederated learning 的潛力十分巨大,現(xiàn)在只不過探索了它的皮毛。但它無法用來處理所有的機器學習問題。對于許多其他模型,必需的訓練數(shù)據(jù)已經(jīng)存在云端 (比如訓練 Gmail 的垃圾郵件過濾器)。因此,谷歌表示會繼續(xù)探索基于云計算的 ML,但同時“下定決心”不斷拓展 Federated Learning 的功能。目前,在谷歌輸入法的搜索推薦之外,谷歌希望根據(jù)手機輸入習慣改進語言模型;以及根據(jù)圖片瀏覽數(shù)據(jù)改進圖片排列。
對 Federated Learning 進行應(yīng)用,需要機器學習開發(fā)者采用新的開發(fā)工具以及全新思路——從模型開發(fā)、訓練一直到模型評估。
今后,F(xiàn)ederated Learning 是否會成為 AI 領(lǐng)域的一大主題,還是像網(wǎng)狀網(wǎng)絡(luò)技術(shù)那樣停留在實驗室中,我們拭目以待。
via googleblog
相關(guān)文章:
谷歌推出有界負載的一致性哈希算法,解決服務(wù)器負載均衡問題
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。