在以往,機器學習方法需要將訓練數據集中在一台機器或是數據中心,但在現實情況下,可能遇到無法收集資料的狀況,像是個資或是企業資源的問題,而且資料的隱私權是一個在近年來受到更重視的問題,陸續推出了多個相關的法案。
例如歐盟在2016年通過了 ”一般資料保護規則” (General Data Protection Regulation, GDPR),其目的是在加重企業「控管」及「處理」資料的責任,並強化個資當事人權益。簡單來說就是要蒐集個人相關資料時,都需要經過個人的授權,因此近期Facebook、Apple、Google等科技巨頭及其他多數的企業都受到了相當大的衝擊。
而對於機器學習,數據是一個相當重要的部分,假如沒有資料便沒有機器學習,以上的問題造成資料無法集中的情況
Federated Learning聯邦學習
2016年Google提出了Federated Learning聯邦學習,其是使用本地的資料在本地的設備上訓練出一個模型,之後將這些訓練完的模型合併為一個模型,再將這個模型分享給所有本地設備。這種方法能夠使手機以合作學習的方式共享預測模型,同時只將訓練數據保留於設備中,而不會取得個人相關的資料,避免觸碰個資法的問題。
而Federated Learning又可以分為橫向聯邦學習(horizontal federated learning)、縱向聯邦學習(vertical federated learning)、聯邦遷移學習(federated transfer learning)
橫向聯邦學習horizontal federated learning
橫向聯邦學習是用於A與B的數據集有些特徵重疊,但樣本不同,重點解決樣本缺的問題。例如不同地區的醫院,每家醫院皆會檢測肺結核,但檢測的病患不同。
其迭代步驟如下:
- 預先設定每個Local Device使用相同初始模型
- 每個Local Device使用本地資料訓練模型,計算梯度,加密後上傳至Server
- Server整合所有設備之梯度並更新模型
- 將更新完的模型回傳至Local Device,更新Local Device的模型
縱向聯邦學習vertical federated learning
縱向聯邦學習是用於A與B的數據集有些樣本重疊,但特徵不同,重點解決特徵缺的問題。例如醫院與藥局,會有相同的病人,但病人會有不同的行為。
由於是不同的企業,因此需要先確認是相同的人,而又受到隱私權問題,不能公開交換數據,因此需要利用安全認證確認彼此數據對應的關係。其操作方式如下:
- C創建加密對,將公鑰發送給A和B,用來對訓練過程中需要交換的數據進行加密
- A和B以加密的形式交換用於計算梯度的中間結果
- A和B分別基於加密的中間結果計算梯度和損失,向C發送加密的值,C匯總計算總梯度,並將其解密。
- C將解密的梯度和損失發送回A和B,A和B更新相應的模型參數。
聯邦遷移學習federated transfer learning
聯邦遷移學習是用於A與B的數據集樣本也不同,特徵也不同,這個形式適用於共同客群很小及兩方行為不太相同的狀況,整體交集都很少狀況,使用遷移學習讓A利用B的標籤來減少預測錯誤,用來克服資料與標籤不足的狀況。
總結
Federated Learning聯邦學習可以解決資料分散及隱私權的技術問題,但企業之間可能還是會有數據孤島的問題發生,這件事並非單單技術面問題,更多的是企業間是否可以互相合作,競爭及利益關係的交錯,以及加密方式的可靠性,但對於未來發展還是有相當大的幫助,可以促進產業交流,建立一個橫跨企業、領域,技術共享的生態圈。