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