昨天提到apple採用了一種分布式學習方法,現在來想像一下這個情況:兩個公司各自擁有的數據是商業機密,也可能是基於法條的關係,他們無法直接交換與合作,這時他們怎麼能夠在保護這些敏感數據的同時,合作訓練模型並進行分析?
蹦!聯邦學習(FL)🧙🏻!
與傳統的集中式機器學習有很大的不同,FL允許分佈在不同設備的數據在本地進行模型訓練,而不需要將數據移動到中央伺服器,簡單來說,便是去中心化,直接在分散的各裝置上訓練。
模型初始化:中央伺服器會首先生成一個初始的全局機器學習模型,並將這個模型分發到各個本地設備。可以是智能手機、個人電腦,或醫療機構內部的伺服器等。
本地訓練:每個設備基於其本地數據對模型進行訓練,數據永遠不會離開設備,從而減少數據洩露風險,而訓練過程通常使用隨機梯度下降(SGD)等優化算法,更新模型的參數。
模型參數上傳:本地訓練結束後,設備不會上傳訓練過程中的數據,而是只上傳「更新後的模型參數」或權重到中央伺服器,這個過程確保本地數據的隱私保護。
聚合模型更新:中央伺服器接收到來自不同設備的數據後,使用某些聚合算法(例如加權平均法)來匯總這些本地模型更新,生成一個新的全局模型,這個過程稱為「聯邦平均算法」(Federated Averaging,FedAvg)。
同步與重複:中央伺服器將更新後的全局模型再次分配給各個設備(這個過程會多次重複,直到模型的性能達到滿意的結果)。
它的特點包含 (1)能顯著減少網絡傳輸負擔 (2)讓每個用戶的設備利用其閒置時間來訓練模型,提高訓練模型效率 (3)常與差分隱私(Differential Privacy)技術相結合,比如:上傳更新模型之前,可以加入隨機噪音提高參數匿名性。
而一體兩面,它面臨的挑戰也不少,比如(1)不同設備的計算能力、存儲空間可能差異大,影響聯邦學習的訓練效率和同步過程(2)在模型參數的聚合過程中,仍可能面臨參數反向推理攻擊等威脅。
剛才提到的”FedAvg“🐇 是聯邦學習中常用的一種算法,它是隨機梯度下降(Stochastic Gradient Descent,SGD)在聯邦學習環境中的泛化版本,更適合分佈式環境下的非同步訓練和分散數據情景。
「泛化」主要體現在: