一種分散式環境下的協作機器學習模式

文章原始來源: Federated Learning: Collaborative Machine Learning without Centralized Training Data

research.googleblog.com

Google開發了一種分散式機器學習訓練模型的方法:Federated Learning.

通常,標準的機器學習中,訓練樣本數據存儲是在同一組伺服器或者數據中心,比如Google構建了安全的雲存儲中心滿足這樣的需求。

然而,如果要從分散的個人用戶的移動設備上訓練模型,面臨一些挑戰:用戶並不希望自己手機上的數據上傳到雲端;手機有比較高的網路延遲,而且並不能實時保證在線等,所以Google為了解決這種場景下的機器學習,開發了Federated Learning.。

這種機器學習方式,讓智能手機用戶採用合作的方式來共同學習構建一個共享的預測模型,同時保證用戶把訓練數據保留在本地的移動設備上,採用這樣的方式,就不需要把訓練數據集中保存到雲端的數據中心,而且這樣事實更新完善產生的模型,比直接採用本地模型進行預測((like the Mobile Vision API and On-Device Smart Reply)有更好的效果。

這種方式的工作流程如下:用戶的移動設備首先下載當前的預測模型,然後利用本地的訓練數據進行訓練改善這個模型。然後把改善後的模型(變化部分)採用安全的加密傳輸方式上傳到雲端,雲端進行自動合併最新的模型,其他移動設備用戶可以即刻獲得這個最新的預測模型。這個過程中,所有的訓練數據保留在你自己的移動設備中,不需要上傳到雲端,這就保護了用戶的個人隱私數據。

Your phone personalizes the model locally, based on your usage (A). Many users updates are aggregated (B) to form a consensus change (C) to the shared model, after which the procedure is repeated.

這種協作模式的機器學習方法,可以確保用戶隱私,同時消耗更低的能耗,另外的好處就是用戶可以立刻使用這些改善後的個性化模型,在手機上體驗這種個性化應用。

Google在Gborad on Android(Google Keyboard)上測試了這種協作學習方法。每次當在鍵盤上輸入的時候,Gboard會根據預測模型猜測一條你可能想要查詢的內容。為了獲得更精準地猜測用戶的輸入,Gboard每次都會根據手機本地存儲的當前的上下文關係及你是否點擊了該條猜測的內容動作作為新的訓練數據,不斷改善這個預測模型,不斷迭代完善這個過程就會獲得更精準的、個性化的預測模型,猜測每次你要查詢搜索的內容。

要實現這種協作模式的機器學習模式,Google克服了很多演算法和技術上的挑戰。在典型的機器學習系統上,優化演算法,比如 Stochastic Gradient Descent(SGD) 運行在大量的集中的數據集上,這樣高強度的迭代要求低延遲、高吞吐量的環境下進行訓練。但是在協作模模式的環境下有非常不一樣的環境:數據是分布在成千上萬的、不同規格的移動終端上,而且這些終端的具有網路延遲高、低網路吞吐量,甚至在線的時間都是間歇性的,不能保證持續在線。這些都是挑戰。

比如為滿足這樣的帶寬和延遲限制條件下的運行,Google開發了 Federated Averagin algorithm演算法來滿足要求。這個演算法能夠利用比常規SGD版本少10-100倍的通信量來進行深度網路訓練。關鍵的點在於,相比較於簡單的梯度下降演算法,利用現代移動設備的高性能處理器計算能獲得更高質量的更新。這個演算法通過幾次高質量的迭代,利用少量的通信數據,就能獲得很好的預測模型。通常,網路的下行速度要遠高於上行速度,所以還開發一種新的方法來降低上傳的通信數據量,比常規的壓縮傳輸方法還要低100個數量級的通信量。

將這項技術部署到運行Gboard的數百萬個異質手機中,需要一個複雜的技術棧。在移動設備中使用TensorFlow的微型版本來進行訓練,調度系統確保只有在設備空閑(包括在free wireless鏈接下)才把資源用來進行訓練工作,因此這方法對手機的性能沒有影響。

Your phone participates in Federated Learning only

when it wont negatively impact your experience.

這種協作式的機器學習的優勢是不需要在雲端存儲用戶的私人數據,但還不僅僅如此。Google還開發了一種使用加密技術的安全聚合協議,因此如果有成千上萬的用戶參與的情況下,協調伺服器只能解密聚合的平均更新 -而在合併之前無需檢查單個手機的更新內容。這也是首創,這對於深度網路層級問題和現實世界的連接限制具有很高的實用性。利用Federated Averaging,協調伺服器只需要平均更新的內容,讓Secure Aggregation發揮作用。這個協議是通用的,能夠應用到解決其他問題的場景。

應用Federated Learning要求機器學習從業人員採用新的工具和新的思維方式:模型的開發、訓練和評估不需要直接訪問或標註原始數據,更惡劣的通信環境等。

這種方法從用戶隱私、移動終端計算特點、網路特點和需求特點各個方面出發,提出了一種合理的技術方案。為手機上的各個APP應用具有AI屬性提供了可能性,非常值得期待。

最後,

歡迎訪問 AI行業資訊聚合小網站readai.me

歡迎關注 ReadAI專欄


推薦閱讀:

下一個機會,浪潮之巔
思維的革命-從 「機械性思維」 到「資訊理論思維"(筆記)
python機器學習的準備工作
互聯網+上半場信息浮游,消費者如何在下半場拯救自信
開Live啦~女生在計算機專業的機遇與挑戰

TAG:人工智慧 | 神經網路 | 人工智慧演算法 |