面向聯邦學習的模型測試和調優怎麼整?這篇三萬字長文給你答案

機器之心分析師網路

作者:仵冀穎

編輯:H4O

本文重點討論了面向聯邦學習的模型測試和調優。研究者首先回顧了傳統機器學習與一般軟體測試、調優的區別和聯繫,然後具體分析了在實際場景中應用聯邦學習存在的主要問題,包括神經架構設計、模型選擇、超參數最佳化和調試等等。接著結合幾篇最新的研究論文全面了解面向聯邦學習的評價和測試,既包括了針對具體應用場景的測試(人類活動識別),也包括了對一般聯邦學習演算法的測試。最後集中介紹 CMU 研究小組關於聯邦學習超參數調優的研究成果。

作為聯邦學習系列中的重要內容,本文重點關注面向聯邦學習的模型測試和調優。由我們過去的文章可以了解,聯邦學習(Federated learning,FL)也是一種機器學習方法。在聯邦學習的環境下,多個客戶端設備(如移動設備或整個組織)在中央伺服器(如服務提供商)的協調下協同訓練一個模型,同時保持訓練資料的分散性。FL 體現了集中資料收集和最小化的原則,可以減輕傳統的集中式機器學習和資料科學方法帶來的許多隱私、安全性風險和成本問題。因此,聯邦學習是一種有效的高效能運算正規化,並已在製藥、醫學研究、金融、製造業等領域中廣泛應用。

不過,與一般性的機器學習類似,為了實現規模化的應用,面向聯邦學習的模型也需要測試和調優,以滿足穩定性、準確性等要求。為了清楚地闡述和分析聯邦學習的模型測試、調優問題,本文將先從一般機器學習的測試談起,然後聚焦於聯邦學習面臨的問題,包括可變機器學習框架和參數最佳化方法,最後具體探討針對聯邦學習的不同評價、調試和最佳化的方法。

1 傳統的機器學習測試

機器學習的廣泛應用引起了人們對機器學習可信度的關注。特別的,在一些與安全相關的應用中,如自動駕駛系統和醫療,還特別增加了對模的正確性、穩健性、隱私、效率和公平性有關的關注與評價。本節中關於傳統機器學習測試中問題的分析和討論源自文獻[1]。隨著相關研究的推進,測試已被證明是暴露機器學習中可能存在的問題的有效方式,並能夠提高機器學習系統的可信度。

機器學習(ML)是一種可以根據資料做出決策或預測的人工智慧技術。機器學習可以應用於以下典型任務:

  1. 分類:為每個資料實例分配一個類別;例如,圖像分類,手寫識別。

  2. 迴歸:為每個資料實例預測一個值;例如,溫度 / 年齡 / 收入預測。

  3. 聚類:將實例劃分為同質區域;例如,模式識別、市場 / 圖像分割。

  4. 降維:降低訓練的複雜性;例如,資料表示,資料預處理。

  5. 控制:控制行動以使獎勵最大化;例如,遊戲。

此外,機器學習還可以分為經典機器學習和深度學習。決策樹、SVM、線性迴歸和 Naive Bayes 等演算法都屬於經典機器學習。深度學習則是應用深度神經網路(DNNs)的方法,DNNs 使用多層非線性處理單元進行特徵提取和轉換。因此,典型的深度學習演算法通常遵循一些廣泛使用的神經網路結構,如卷積神經網路(CNNs)和循環神經網路(RNNs)。

機器學習中可能存在的問題指的是機器學習項目中導致現有條件和所需條件之間不協調的任何不完善的內容,而機器學習測試則指的是旨在發現機器學習問題的任何活動。機器學習問題和機器學習測試的定義明確了機器學習的三方面內容:所需條件、機器學習項目和測試活動。一個機器學習系統可能有不同類型的 “必要條件”,如正確性、穩健性和隱私。機器學習問題可能存在於資料、學習程序或框架中。測試活動可以包括測試輸入的生成、測試 oracle 的識別、測試充分性的評估,以及問題的分流。

與傳統的軟體系統相比,機器學習測試所帶來的挑戰來自於機器學習系統的本質和構造的根本性不同。例如,機器學習系統本質上遵循資料驅動的程式設計正規化,在機器學習演算法的架構下,決策邏輯是通過訓練程序從訓練資料中獲得的。該模型的行為可能會隨著時間的推移而發生變化,以應對頻繁提供的新資料。雖然傳統的軟體系統也是如此,但傳統系統的核心基礎行為通常不會像機器學習系統那樣不斷對新資料作出反應而發生變化。此外,機器學習也面臨著經典軟體測試中的 「Oracle」 問題[18],因為它被設計為提供一個以前沒有答案的問題的答案。

經典的軟體測試過程包括檢查系統行為、發現潛在錯誤。軟體測試中的 oracle 問題是指給定系統輸入,將對應於輸入的期望輸出和正確的行為與不正確的潛在行為區分開的問題。

此外,只有通過將機器學習系統作為一個整體來考慮才能完全理解或評估機器學習。這使得測試更加困難,因為很難將一個機器學習系統分解成更小的元件,以作為單元孤立地進行測試。

圖 1 給出了部署一個機器學習系統的完整生命週期。首先,根據歷史資料生成一個原型模型,然後在線上部署模型之前,需要進行離線測試,如交叉驗證,以確保模型滿足所需條件。部署模型後,會對模型進行預測以產生新的資料,可以通過線上測試進行分析,以評估模型與使用者行為的互動情況。從以下幾個角度考慮,線上測試至關重要:首先,離線測試通常依賴於測試資料,而測試資料通常不能完全代表未知資料。其次,離線測試不能測試一些在實際應用場景中可能出現問題的情況,如資料丟失和呼叫延遲。此外,離線測試無法獲得一些業務指標,如打開率、閱讀時間和點選率。

圖 1. 機器學習完整部署流程[1]

圖 1. 機器學習完整部署流程[1]。

為了建立一個機器學習模型,一個軟體開發者通常需要收集資料、標記資料、設計學習程序架構,並在特定的框架基礎上實現擬議的架構。機器學習模型的開發過程需要與資料、學習程序和框架等多個元件互動,而每個元件都可能存在問題。圖 2 展示了建立機器學習模型的基本程序和該過程中涉及的主要部分。收集資料並預處理後加以使用,學習程序是運行訓練模型的程式碼,框架(如 Weka、scikit-learn 和 TensorFlow)則提供了演算法和其他庫以供開發人員在編寫學習程序時選擇。因此,在進行機器學習測試時,開發人員可能需要嘗試在每個元件中找到 bug,包括資料、學習程序和框架。特別是,在機器學習開發中,問題的傳播比在傳統軟體開發中更嚴重,因為元件之間的聯繫比傳統軟體更緊密,這更提高了測試每個機器學習元件的重要性。

圖 2. 理想化的機器學習測試的工作流程

圖 2. 理想化的機器學習測試的工作流程。

資料中的問題檢測。機器學習系統的行為主要取決於資料。資料中的錯誤會影響生成模型的質量,並且在一段時間內會被放大,產生更嚴重的問題。資料中的錯誤檢測會檢查一些問題,如資料是否足以訓練或測試一個模型(也稱為資料的完整性),資料是否能夠代表未來的資料,資料是否包含很多噪音(如有偏見的標籤),訓練資料和測試資料之間是否存在傾斜,以及是否存在資料中毒(data poison)或可能影響模型性能的對手資訊。

框架中的問題檢測。機器學習需要運行大量的計算過程。如圖 3 所示,機器學習框架提供了幫助編寫學習程序的演算法,以及幫助訓練機器學習模型的平臺,使開發者更容易建立設計、訓練和驗證複雜問題的演算法和模型的解決方案。與傳統的軟體開發相比,這些框架在機器學習開發中發揮著更重要的作用。因此,針對機器學習框架的測試能夠檢查機器學習的框架是否有可能導致最終系統出現問題的 bug。

學習程序中的問題檢測。一個學習程序可以分為兩部分:開發人員設計的演算法或從框架中選擇的演算法,以及開發人員為實現、部署或配置該演算法而編寫的實際程式碼。學習程序中的錯誤可能是因為演算法的設計、選擇或配置不當,或者是因為開發人員在實現所設計的演算法時出現錯別字或錯誤。

圖 3. 構建機器學習模型所涉及的元件(由灰色方框顯示)。

針對機器學習的測試屬性指的是在機器學習測試中需要測試什麼,即,機器學習測試需要保證訓練好的模型在什麼條件下進行。根據 [1] 中作者的分析,他們將測試屬性劃分為基本功能要求(即正確性和模型相關性)和非功能要求(即效率、穩健性、公平性、可解釋性)。在考慮根本原因時,這些屬性並不嚴格地相互獨立,然而它們是機器學習系統行為的不同外部表現,需要在機器學習測試中獨立處理。

2 聯邦學習面臨的問題

在實際的聯邦學習應用中,聯邦學習的過程通常是由模型工程師為特定應用開發模型來驅動的。例如,自然語言處理領域的專家可以開發一個適用於虛擬鍵盤的下一個單詞預測模型。由於聯邦學習中模型是根據分散在不同的客戶端設備中的資料進行訓練的,因此聯邦學習的測試與上一節中所介紹的傳統的機器學習測試並不完全相同。本節中,我們根據參考文獻[2],具體探討聯邦學習的測試和調優面臨了哪些問題。圖 4 給出了聯邦學習模型在部署過程中涉及到的主要任務和參與角色[2]。

圖 4. 聯邦學習的模型的生命週期和聯邦學習系統中的各個角色。

具體的,聯邦學習的完整工作流程包括如下幾個部分:

  1. 問題識別。模型工程師確定需要用聯邦學習解決的問題。

  2. 客戶端工具化。客戶端(例如在手機上運行的應用程序)可以在設備本地儲存(有時間和數量的限制)訓練資料。在一些情況下,應用程序自身已經儲存了這些資料(例如,一個簡訊應用程序已經儲存了簡訊,一個照片管理應用程序已經儲存了照片)。而在其它一些情況下,可能還需要維護額外的資料或元資料,例如,需要為監督學習任務提供使用者互動資料的標籤。

  3. 仿真原型設計(可選)。模型工程師可以在聯邦學習模擬中使用模擬資料庫對模型架構進行原型設計並測試學習超參數。

  4. 聯邦模型訓練。多個聯邦訓練任務訓練不同變化形式的模型,或使用不同的最佳化超參數。

  5. 聯邦模型評估。在中央伺服器端充分訓練後,對模型進行分析評估並選擇出好的候選模型。這些分析評估可能是基於在標準資料庫中計算所使用的指標或其它聯邦評估指標來完成的。然後將模型推送到客戶端中,並在客戶端中根據本地資料進行評估。

  6. 部署。最後,一旦確定了模型,就會經過一個標準的模型啟動過程,包括人工質量保證、現場 A/B 測試、分階段發佈等。一個模型的具體啟動過程是由應用程序的所有者設定的,通常與模型的訓練方式無關。

大多數關注聯邦學習問題的研究人員可能很少有機會直接參與生產型聯邦學習系統的部署,也沒有機會接觸到數以百萬計的真實世界應用場景中的設備群(客戶端集合)。這就導致了現階段研究中實際環境與模擬實驗之間的關鍵區別:在模擬實驗中總是會針對具體某個問題的特定方法的適用性提供與之相匹配的證據。這使得從實驗的角度來看聯邦學習與其他機器學習領域有些不同,在進行聯邦學習研究時需要單獨考慮這些問題。此外,在將標準的機器學習工作流程(包括資料增強、特徵工程、神經架構設計、模型選擇、超參數最佳化和調試)應用於分散的資料庫和資源有限的客戶端設備時,也會引發很多新的問題及挑戰。

  • 超參數調試。在資源有限的客戶端設備上用不同的超參數進行多輪訓練可能會受到限制。對於小的設備群體,這可能會導致過度使用有限的通訊和計算資源。然而,深度神經網路的關鍵是對神經網路架構、正則化處理和最佳化的超參數調試和選擇。傳統機器學習的訓練也需要調整參數,如學習率、動量、批量大小和正則化。而在聯邦學習中需要調整的超參數就更多了,包括聚合 / 全局模型更新規則和本地客戶端最佳化器的單獨調整,每輪選擇的客戶端數量,每輪執行本地步驟的次數,更新壓縮演算法的配置,等等。這些超參數對於確保模型關於準確性和收斂性之間的權衡是至關重要的,而且實際上也很有可能會影響所學的聯邦學習模型的質量。此外,除了較高維度的搜尋空間外,聯邦學習往往還需要較長的(wall-clock time)掛鐘訓練時間。在已有的研究中,這些挑戰可以通過對超參數設置具有魯棒性的最佳化演算法(同樣的超參數值在任何不同的應用場景資料庫和架構中都是有效的)以及自適應或自我調整的演算法來解決。

  • 神經架構設計。聯邦學習環境中的神經架構搜尋(Neural architecture search,NAS)主要是解決預定義架構不完善的問題[19]-[21]。目前主要有三種 NAS 方法,它們利用進化演算法、強化學習或梯度下降方法來為特定資料庫上的特定任務搜尋最佳架構。其中,基於梯度的方法利用高效的梯度反向傳播與權值共享方法,將架構搜尋過程從超過 3000 個 GPU day 減少到只有 1 個 GPU day。

  • 聯邦學習的調試和可解釋性。雖然,研究人員在模型的聯邦訓練方面已經取得了一些實質性的進展,但仍只是針對完整的機器學習工作流程的一部分。有經驗的建模者經常會選擇直接訪問資料庫子集,以完成包括基本合理性檢查、調試錯誤分類、發現異常值、手動標註樣本或檢測訓練集的偏見等任務。目前,開發隱私保護技術來解決分散資料上的這些難點仍有許多未解決的問題,特別是開發能提高聯邦學習差異化隱私 (differential privacy,DP)生成模型保真度的演算法。

部署在實際場景中的聯邦學習是一種多目標最佳化問題:其中,首要目標是最大化模型質量指標,如損失值或準確性。除此之外,仍有許多需考慮的因素:聚合速度、吞吐量(如通訊輪次數、資料量或設備數)、模型的公平性、隱私性和穩健性、中央伺服器和客戶端的資源使用情況等等。這些因素彼此之間可能存在矛盾。例如,最大限度地提高輪次的吞吐量可能會引入偏見;因偏向於有少量或無資料的高性能設備而損害模型準確性;通過增加模型的複雜度來最大限度地減少訓練損失,會使記憶體少、樣本資料多或大、CPU 慢的客戶端設備處於不利地位,等等。由於實際場景中的聯邦學習所面對的訓練和測試環境可能非常不同(使用不同的平臺),所以,在測試階段很有可能無法發現這些問題。

有很多控制措施會影響上述目標。其中,一些是我們熟悉的針對傳統的機器學習問題所提出的資料中心解決方案,例如,通過儘可能完備的資料來實現模型的設置調優或更好的學習演算法的超參數。還有一些是專門針對聯邦學習而提出的方法,重點關注於以下這些問題:

  • 確定每一通訊輪次中參與的客戶端數量。確定完成一個通訊輪次所需的最小設備數 M,以及開始一個通訊輪次所需的設備數 M’ 。

  • 中央伺服器端的排程。除了最簡單的情況外,聯邦學習系統將同時在一個以上的模型上運行,因此需實現:支持多個客戶端同時最佳化模型;支持超參數網格搜尋;同時運行訓練和測試評估工作負載等。中央伺服器需要決定向當前輪次中加入的客戶端設備提供哪些任務,這是一個排程問題的實例:為工作(訓練或測試評估任務)分配資源(客戶端設備)。由此會引發一些新的問題:公平的資源分配、避免客戶端設備出現較長時間的空置、最小化等待時間,以及實現相對的優先級等等。

  • 客戶端設備的排程。各種約束條件制約著客戶端設備何時可以連接到中央伺服器並執行工作。在這些約束條件下,可以做出各種排程選擇。一個極端情況是將客戶端設備連接到中央伺服器後儘可能頻繁地運行計算,但這會導致中央伺服器和客戶端設備的高負載和過度資源使用。另一個情況是設置一個固定間隔,根據各種外部因素的情況,調整整體和每輪參與工作的客戶端設備數量。例如,谷歌開發的聯邦學習系統旨在通過一種稱為 “步伐引導” 的流量控制機制取得平衡,中央伺服器根據這一機制指示客戶端設備何時開始或停止工作。這樣一個動態系統可以為大量的客戶端設備實現時間上的負載平衡,並將連接嘗試 “集中” 在特定的時間點上,以達到閾值 M’。但是,由於客戶端設備可用性的隨機性和動態性,尚缺乏有效的預測模型和反饋迴路,開發出這樣的機制實際上是非常困難的。

3 面向聯邦學習的評價、測試

我們在上文回顧了傳統機器學習的測試問題以及聯邦學習面臨的主要問題,聯邦學習面臨的主要問題也正是聯邦學習不同於傳統的機器學習而需要特別關注的測試和調優的問題。我們在這一章將結合幾篇最新的論文,具體探討面向聯邦學習的評價、測試,並將在後續的章節關注調優的問題。

3.1 針對客戶端設備的個性化聯邦評價和最佳化:系統設計與應用

本文是來自 Apple 的研究人員 2021 年最新發表的研究成果[3],機器之心也對其進行過介紹[4]。文章具體描述了 Apple 聯邦任務處理系統的設計。該系統的目的是支撐兩個特定的聯邦任務:對設備上的機器學習系統進行評估和調整,在終端設備上對系統進行個性化處理及實現。

在終端使用者設備上而不是傳統的伺服器上進行處理,是實現終端使用者隱私保護的一種非常有效的方法。Apple 將這一策略延伸到他們的許多機器學習(ML)解決方案中,如預測鍵盤、設備上的聽寫等等。為了實現良好的使用者體驗,這些基於 ML 的系統的個性化處理往往是非常重要的。例如,在上述兩個系統中,針對使用者的詞彙和語言結構進行個性化處理的能力是非常關鍵的。本文聚焦於一個自動語音識別(automatic speech recognition,ASR)的特定設備上的個性化用例。這個用例要求對模型的全局(即所有終端使用者通用)參數進行評價和最佳化 / 個性化處理,演算法依託於分佈在終端使用者設備上的資料來構建設備特定的 ASR 語言模型。最終,文章提出了一個通用的系統,允許跨終端使用者設備評價和最佳化 ML 系統,即允許 “聯邦評價和調優”(federated evaluation and tuning,FE&T)的系統。

不過,本文提出的聯邦評價和調優系統與經典的聯邦學習(Federated Learning,FL)並不完全相同。本文的系統並不是為了在聯邦環境中訓練神經網路而設計的,其目標是針對分佈在不同客戶端設備上的 ML 系統在聯邦環境中的評價和調優 / 個性化處理。該系統中的終端 / 客戶端設備使用特定的應用外掛完成機器學習任務,這些外掛與設備上的任務排程邏輯、資料儲存和結果報告邏輯進行通訊。這些外掛可以執行任意計算過程。在經典 FL 問題中,學習的參數是全局神經網路模型的參數,聯邦學習(梯度下降)主要發生在各個客戶端設備中,中央伺服器只是 “簡單” 地聚合各個模型的更新。而在聯邦調優(federated tuning,FT)中,學習主要發生在中央伺服器上,並且僅限於相對較小的一組全局參數(例如,個性化演算法參數),最終是通過聯邦資料來評估這些參數。

3.1.1 FE&T 和 ML 系統

作者最初設計的 ASR 系統用例是一個 “傳統” 的基於 ML 模型的 ASR 系統。本文所討論的實現個性化處理的外掛化 ASR 模型是一個統計學(非神經性(non-neural))語法,需要應用特定的程式碼來修改實現。此外,在最初的用例中,作者假設只有 “充分匿名” 和 “孤島” 的 ML 資料可供使用。在這種情況下,充分的匿名意味著單個資料無法以計算上合理的方式與特定的終端使用者聯繫起來。孤島式 ML 資料則是指特定使用者的 ML 資料不能在不同的、特定應用的資料孤島中彙總。基於這些假設,作者在文中專注於在個性化資料的背景下,如何測量和提高針對使用者的 ML 系統的準確性問題。

作者考慮聯邦評價(federated evaluation,FE)和在中央伺服器端彙總單個評價結果的原因是,各個客戶端設備上的評價資料是非獨立同分布(Non-IID)的,而且每個設備上的資料往往相當有限。因此,單個評估結果存在大量的不確定性,只有彙總了許多客戶端設備上的評價資料的全局結果才是有意義的。最後,作者認為聯邦調優(federated tuning,FT)是 FE 的擴展。一個重要的區別是,FT 不是評估單一的 ML 系統,而是在設備上創建多個 ML 系統並進行綜合評估。FT 的工作方式如下:將一個默認的 ML 系統設置為基線,利用一組從中央伺服器發送的參數來修改基線 ML 系統的行為。根據基線和修改後的系統的準確度指標進行再次分析,以確定下一組參數的設置。

為了計算設備上的評價指標,我們需要儲存或記錄與待評價的 ML 系統的互動。儲存的資料需要包括 ML 系統的輸入和定義 ML 系統理想輸出的 ground-truth 值。在本文所討論的應用場景中,收集 ground-truth 資料往往是更具挑戰性的任務,因為需要同時收集來能夠表徵積極和消極結果的資料。首先,作者討論瞭如何收集 ground-truth 資料的問題。在 Apple 應用程序中,可以利用當前的設備環境提供應用程序列表。每當使用者打開一個應用程序時,無論是從主螢幕、通過搜尋使用者界面還是通過應用程序建議的使用者界面,我們都可以在設備上儲存這些資訊,即當前設備上下文向量和被啟動的應用程序的名稱。因此,我們既要獲得所需的應用建議系統輸入(設備上下文向量),也要獲得應用建議使用者界面最好提供的應用名稱。不過,作者表示很多時候我們無法通過這種簡單的方式收集 ground-truth 值,例如,在通過既定的單詞錯誤率指標評估 ASR 準確性的任務中,需要一個沒有錯誤的參考指標列表。在這種情況下,依靠使用者互動得出的基礎 ground—truth 是有問題的,因為評估資料會高度偏向於這種使用者捕捉和糾正的錯誤情況。作者提出了一個可選的解決方案是要求終端使用者提供相關的 ground-truth,例如要求使用者對個別互動進行評分。從 groun-truth 標籤質量的角度來看,這種資料不能像隱性信號那樣自動收集,而且在很大程度上依賴於使用者的偏好和參與,此外,這種標籤的質量也高度依賴於使用者,並且存在提供這種標籤的不同人之間不一致的問題。針對這一問題,作者提出了另外一種可能的解決方案:利用半監督的 ML 方法。例如,我們可以設想一種師生訓練的情況,在這種情況下,使用一個準確的 ML 模型提供偽 ground-truth 標籤,這些標籤被用來評估實際運行時的模型。

作者給出了本文討論的系統模型。如圖 5 所示,該系統可以支撐任意的聯邦學習任務。執行 FL 任務的外掛需要利用私人聯邦學習(private federated learning,PFL)的補充(PFL Additions),它為聯邦神經網路訓練提供支持,其中最終的模型更新是在保證差異隱私(differential privacy,DP)的統計噪聲下進行的。

圖 5. 系統設計概覽

圖 5. 系統設計概覽。

文獻 [22] 中提出了一種經典的在安卓手機上面進行 TensorFlow 訓練的聯邦學習框架 —SysBon[22]。該系統使人們能夠使用 TensorFlow 對儲存在手機上的資料進行深度神經網路訓練,而這些資料只會保存在手機(設備)本地。在雲端設備中,使用 Federated Averaging 組合更新權重,進而構建全局模型並將其推送給手機。該系統已實現規模化的應用,例如,手機鍵盤領域。作者在本文的討論中將 FE&T 系統的設計與 SysBon 進行了對比。

在 FE&T 系統中,設備的參與是由系統級的前提條件和聯邦任務的具體前提條件所決定的。對於前者來說,只有真正的客戶端才能夠參與該系統,通過類似於 SysBon 的設備認證機制來實現這一約束[22]。此外,設備需要選擇加入資料收集計劃,從而保護終端使用者具有選擇不參與的權利。作者表示,這種客戶端設備選擇方式可能會引發資料偏見問題(bias)。此外,客戶端設備還需要插上電源,處於閒置狀態並連接到網路中,以便運行聯邦任務,這種要求也會導致偏見問題。不過,作者也表示引入 A/B 實驗機制等方法可以幫助檢測到此類的偏見。

此外,本文的系統提供了設備上的資料儲存,並建議應用程序使用它來記錄使用者的互動資料和相關的 ground-truth 資料。資料儲存在資料收集程序選擇退出時被自動清除,如果設備選擇退出,寫入請求將被拒絕。為了應對因使用者設備被破壞所引發的各類問題,客戶端設備上的資料儲存仍然是加密的,直到設備關閉或重新啟動後的第一個使用者解鎖。此外,資料儲存為每個應用提供可配置的默認實現,用於常見的設備資料保留策略。在本文的系統架構中,在各個客戶端設備中儲存的資料保存在本地的前提下,可以將從這些資料中得出的任務結果,即評估指標(FE&T)和統計學上的噪聲模型更新(FL)通過加密渠道發送到中央伺服器。此外,還可以分享設備上資料儲存中持有的特定應用資料記錄總量的資訊,作為系統中健康遙測資料的一部分,以幫助衡量可用於特定應用聯邦任務執行的設備的總體情況。當在伺服器端記錄資料(結果和遙測)時,我們會剝離所有使用者和設備的標識(如 IP 地址),以避免此類伺服器記錄的資料可以被追溯到特定的使用者或設備。終端使用者可以在設備的隱私設置中檢查與伺服器共享的資料。

3.1.2 核心系統元件

設備端元件:

在本文系統架構中,使用者終端設備上的元件包括資料儲存(data store)、任務排程器(task scheduler)和結果管理器(results manager)。結果管理器主要負責發回任務結果,並填充設備上的資料庫,允許終端使用者檢查與伺服器共享的資料。除了任務結果外,結果管理器還收集並向伺服器發送與健康有關的遙測資料。如果設備參與的系統級前提條件得到滿足,任務排程器會定期連接到內容交付網路(content delivery network,CDN)中,下載可用的任務描述符列表。任務描述符的下載在每個註冊外掛的基礎上以隨機順序進行,以更均勻地分配全局可用的計算資源。一旦下載了一個外掛的所有任務描述符,排程器就會精確取樣一個匹配的任務供外掛執行。任務選擇的可能性由包括在任務描述符中的取樣率決定。雖然簡單,但這種任務選擇機制提供了一種有效的手段來控制系統中全局有多少設備正在嘗試執行一個特定的任務。此外,設備上的匹配邏輯進一步限制任務的執行,這些匹配邏輯檢查任務描述符中列出的額外前提條件。這些前提條件通常是指設備的全局變數,如設備或作業系統的類型和版本。這些前提條件也可以參考描述設備上儲存資料的鍵。後者允許以靈活的方式只在特定的終端使用者互動的資料上運行一個特定的任務,例如,在聽寫和助理請求的背景下進行的語音錄製。一旦所有的任務先決條件得到滿足,排程器就會下載實際的任務,包括任務的具體附件(例如,模型),並將其交給外掛執行。

在經典 FL 的 SysBon 系統中,所有的任務分配是由中央伺服器完成的,客戶端設備定期與中央伺服器通訊,然後由中央伺服器選定參與更新的客戶端設備[22]。未被選中的客戶端設備會收到何時重新連接的指示,從而調節設備連接的模式。在本文的系統設計中,作者沒有考慮必須保證最低數量的設備同時連接到伺服器的任務特定要求。本文主要關注的是,在合理的時間內,有足夠數量的設備以非同步方式進行報告,而不會因為過多的併發連接而使伺服器不堪重負。

伺服器端元件:

伺服器元件包括工作管理員(task manager)、資料管理器(data manager)和開發者界面(developer interface)。工作管理員是伺服器的核心元件。它管理所有任務及其附件(如模型)的儲存、發佈以及退出任務。一旦某項任務在預定的時間窗口內處於活動狀態,或者一旦收到其目標數量的結果,任務就會退出。工作管理員還監測傳入結果的流量,以確保產生流量的任務不至於壓垮基礎設施。最後,該元件還確保定期從中央結果資料庫中自動清除舊任務的結果。資料管理器從傳入的 HTTP 請求中刪除任何敏感的元資料,並將結果和遙測資訊轉發到中央資料庫。遙測資訊包括圍繞平均任務執行時間、錯誤情況和設備上可用資料量的統計資訊。開發者界面由網路使用者界面和 python 腳本庫組成。網路使用者界面主要用於監控任務狀態和檢查遙測資料,也允許下載結果。系統採用者(System adopters)主要通過腳本與系統互動,以安排任務並檢索和處理每個任務的可用結果。

3.1.3 對一般 FL 任務的擴展支持

對於 FL 應用來說,客戶端設備上的任務執行和中央伺服器端的結果處理是相同的。為了進一步支撐 FL 應用,作者提出可以在中央伺服器端和客戶端增加一些共同的元件。對於客戶端設備上的任務,可以增加一個神經網路訓練庫提供模型訓練支持。可以通過一箇中央聚合服務提供中央伺服器端的結果,該服務聚合各個客戶端設備中模型的更新,計算出當前訓練迭代的平均模型。一旦系統的中央資料庫中出現 FL 訓練腳本預定的單個模型更新數量,聚合過程就會自動開始。FL 訓練腳本負責協調多個訓練迭代中的整體模型訓練。

因為單個模型更新包含與設備上儲存的資料直接相關的高維資訊,在資料中心受到攻擊的情況下,儲存單個模型更新會增加風險。針對這一問題,作者使用臨時性的實施策略以及基於局部和全局差分隱私保護的方法。就前者而言,單個模型更新在設備上使用與訓練輪次相關的特定公鑰進行加密。加密後的模型更新以隨機順序提供給聚合服務。聚合服務臨時持有私鑰,並在記憶體中對解密的單個模型更新進行聚合。為了進行差分隱私保護(DP),本地隱私管理器為模型更新增加了一個本地 DP 噪聲版本。在伺服器端,全局隱私管理器將中央 DP 噪音添加到最終更新的模型中,然後將其提供給 FL 訓練腳本。

3.1.4 設備端個性化應用

作者在文中描述了兩個圍繞 ML 系統個性化處理的 FT 應用,以強調 FT 對設備上個性化的適用性。第一個應用是新聞個性化(news personalization)。對於新聞個性化應用來說,設備上的 ground-truth 資料獲取比較容易(可以從使用者與新聞內容的互動中獲取),因此,作者的主要工作集中在所採取的具體 FT 方法中,具體包括 FT 中學習的方式和地點,以及系統在設備上的任務執行和伺服器端(通常是基於腳本的任務結果處理)的靈活性。

該應用中的演算法受幾個參數的制約,例如文章個性化分數的時間衰減半衰期(the half life of the time decay)。這些參數的調整是非常具有挑戰性的,因為新聞內容是不斷變化的。因此,以快速的週轉時間不斷調整這些參數是很重要的。FT 允許我們快速最佳化這些參數,以滿足這種週轉時間的要求。

對於新聞個性化,設備上的評估 / 調優資料,包括 ground-truth 資料,可以從使用者與新聞內容的互動中得到。例如,我們可以在設備上儲存使用者已經閱讀的文章(使用者點選了新聞文章的標題;正面標籤),或者已經查看但沒有閱讀的文章(標題沒有被點選;負面標籤)的資訊。設備上的系統外掛能夠接受一定數值範圍內的參數。例如,如果目標是確定半衰期參數的最佳值,而開發者事先並不知道什麼是比較好的值,可以定義一個涵蓋所有可能的有效值的範圍。在調整任務執行過程中,該外掛在定義的參數空間上運行隨機網格搜尋,隨機生成配置。再將這些配置應用於個性化演算法,以預測使用者閱讀設備上的 tuning 資料庫中的文章的可能性。將預測結果與 ground-truth 標籤進行比較,計算得到每個隨機生成的配置的預測損失。

運行一個單一的 FT 任務迭代需要計算數以千計的設備的損失和配置對。這些每次迭代的結果由特定應用的協調器腳本在伺服器端進行平滑處理,以確定下一次迭代的搜尋空間。最佳化 n 個參數的問題可以實現為一個 n 維聚類問題,聚類大小為 k,其中 k 可以被最佳化。具有最小預測損失的集群由以下公式確定:

其中,R 是聚類的集合,N 是每個聚類中的節點的集合。該函數能夠求得聚類的平均損失,以每個點到聚類中心點的距離為權重,獎勵那些緊密分組的聚類(具有較低的方差)和預測損失低的聚類(具有較高的預測精度)。具有最小預測損失的集群被用來確定 n 個維度中每個維度的最小值和最大值,進而構成了下一個 FT 任務迭代的搜尋空間。這個過程重複進行,直到收斂,產生一組局部最優的參數值,這些參數是在調整任務中定義的。

為了證明這種方法的有效性,作者展示了兩個不同的 FT 運行的結果。這兩個 FT 運行的不同之處在於正在最佳化的個性化演算法參數的數量,以及如何以基於規則的方式在設備上獲得 ground-truth(正面和負面標籤)(例如,文章的標題是否被點開)。表 1 給出了實驗對比細節,包括預測損失的相對減少的結果。

表 1. 用於新聞個性化的 FT

表 1. 用於新聞個性化的 FT。

此外,作者還針對這兩個 FT 進行了現場 A/B 實驗,以衡量最佳化後的個性化演算法參數對終端使用者體驗的影響。表 2 給出了具體的實驗結果。

表 2. A/B 實驗結果

表 2. A/B 實驗結果。

作者在文中給出的第二個應用實例是 ASR 個性化。作者定義了一個分佈在終端使用者設備和伺服器上的”混合” 的 ASR 系統解決方案。混合 ASR 系統使用伺服器端的 ASR 系統組合來計算其最終的識別結果,其中,將高度個性化的設備上 ASR 系統的識別結果與更通用的基於伺服器的 ASR 系統的結果相結合。ASR 引擎在轉錄使用者的語音輸入時使用了由幾十萬個單片語成的通用詞彙。為了能夠識別特定使用者可能說出的詞彙和不太常見的語言結構,ASR 系統會在運行時動態地載入使用者特定的統計語法。這些動態語法被拼接到較大的、通用的(即非使用者特定的)設備上 ASR 系統的語法中。使用者特定的語法可以在設備上從使用者特定的文字資料來源學習。這些設備上的資料來源包括使用者的聯繫人列表和聯繫人互動計數、網際網路搜尋歷史、經常訪問的地址 / 興趣點、從鍵盤互動中學習的詞彙、在閱讀的網頁和新聞文章中發現的命名實體等等。整個個性化演算法利用了大約 30 個參數,這些參數管理著使用者特定的語法編譯和它們在運行時的動態應用。

FT 依賴於 FE,而 FE 又需要包括 ground-truth 標籤的評價資料。原始評價資料來自於使用者與 ASR 系統的常規互動,例如,當使用者向語音助手講話或口述文字資訊時。作者對其中一些互動進行取樣,將語音音訊安全地儲存在設備資料儲存中。ground-truth 的生成過程更為複雜。ASR 的既定評估指標是字錯誤率(word error rate, WER),也翻譯為誤位元速率。所以我們的目標是減少 WER。字錯誤率被定義為單詞(word)級 Levenshtein 距離與參考轉錄中的字數的比率:

其中,minimum word edits 指的是需要進行插入(Insertion)、刪除(Deletion)、替換(Substitution)某些字才能與標準語句一樣的最少字個數,reference words 就是標準語句的字個數。為了計算 WER,需要保證評估資料具有人工參考轉錄的標籤,但因為對於 on-device 的應用而資料對第三方不可見,這是很難實現的。針對這一應用場景,作者提出引入一種半監督的學習方法進行評估,即利用機器學習的全局字置信度模型(Word confidence models),在沒有參考轉錄的情況下估計字錯誤率(estimate word error rate,eWER)。

字置信度模型為每個假設的字 W 分配噪聲概率分數 c(W,D),表示該字被正確識別的可能性。因此,字置信度模型使用的輸入特徵 D 為 ASR 解碼過程得到的計算結果。在這項工作中,重要的是隻依靠基本不受個性化語法影響的特徵 D,例如聲學似然分數和電話 / 字持續時間特徵等等。作者使用下式估計長度為 | U | 的語句 U 的 WER:

其中,全局校準係數ρ 彌補了字置信度模型不能解釋 ASR 字刪除的問題。

表 3 給出了 eWER 指標與實際 WER 測量值的比較情況,其中的結果是針對單一資料來源的簡化形式的個性化處理,即使用者地址簿中的聯繫人姓名,沒有頻率計數。由於存在一個小型的伺服器端測試庫,其中包括以每個語料為基礎的聯繫人姓名衍生的個性化語法,因此可以估計這種特定類型的個性化和實際 WER 的比較值。表 3 中的第一行資料顯示了這個資料庫中的測試結果。由於這個測試庫包含了人工生成的參考轉錄,我們可以直接將真實的 WER 與 eWER 進行比較。該表還給出了三個不同大小的聯邦測試庫的實驗結果。這些聯邦測試庫中不包含參考轉錄,因此也沒有真實的 WER 值。事實上,這些聯邦測試庫對我們來說是不可見的,也就是說,我們無法接觸到底層的原始音訊資料或相關的文字記錄。如果我們假設我們集中持有的測試庫與聯邦測試庫的分佈相同,那麼所有這些測試庫的 WER 和 eWER 值應該是相似的。

基於 eWER 最小化的目標函數,我們通過 FT 調整全局參數,這些參數管理每個設備如何從局部資料來源個性化其客戶端 ASR 系統。作者使用伺服器端 ASR 系統組合,將設備上 ASR 系統的結果與伺服器端 ASR 系統的結果相結合。因此,最終的識別結果對伺服器端是可用的,使我們能夠衡量最佳化的個性化演算法參數對最終轉錄準確度的影響,即實際的 WER。為此,作者定期從實際生產線中隨機抽取幾千個 ASR 系統組合後的匿名語音識別結果,並要求人類評分員在聽完臨時可用的語音音訊後提供參考轉錄。ASR 系統的組合隻影響到大約 10% 的針對我們助手的語音語料的結果。總的來說,我們觀察到,大部分的語料都受到 ASR 系統組合的影響,而通用的伺服器 ASR 系統在這方面表現並不好,也就是說,與其餘 90% 的語音識別流量相比,轉錄準確度受到明顯的誤位元速率的影響。

表 3. 比較簡化形式的聯繫人名單個性化的估計和實際 WER 值。

表 4 中給出的結果涉及 3,851 個語音助理指導的請求,其中最終的自動轉錄因 ASR 系統的組合而改變。我們可以自動檢測出最終記錄,這些記錄包括由我們的設備上的個性化語法元件出現的單詞或短語的語料。在下文中,我們把這些話語稱為 “使用者詞彙” 話語。由於 ASR 系統的組合,最終結果發生了變化,但只涉及到源於通用語法的單詞和短語,在下文中被稱為 “通用詞彙” 語料。表 4 中的第一個資料列顯示了請求數,第二個資料列顯示了在沒有任何個性化的設備上 ASR 的情況下會達到的 WER。第三列資料則顯示了 ASR 系統與客戶端 ASR 結果結合後的誤位元速率。考慮到整體流量,大約 3.9%(6.1%)的語音助理指導語受益於個性化客戶端 ASR 的使用者(通用)詞彙語,特別是在使用者詞彙語料上,相對誤位元速率降低了 16.4%。由於通用 ASR 系統的組合效應,即使是通用詞彙語料,也實現了 1.4% 的相對誤位元速率小幅降低。

表 4. 受系統組合影響的語料中的單詞錯誤率。

3.2 用於人類活動識別的聯邦學習的評價

本文是法語學術文獻開放網站(hal.archives-ouvertes.fr)中 2021 年公開的一篇文章[5],該文章首次發表在 2020 年 IJCAI-PRICAI 的物聯網 workshop 中。

普適計算促進了我們生活環境中互聯電子設備的整合,以提供更加先進的服務。近年來,研究人員對機器學習方法在普適計算中應用的研究興趣迅速增加。聯邦學習是一種新的機器學習正規化,它促進了邊緣伺服器的使用,非常適合於普適環境。聯邦學習已經應用於許多實際場景中,然而,到目前為止,它在很大程度上仍然是概念性的,有待於進一步解釋和測試。本文具體聚焦於評估在智慧手機上進行的人類活動識別(Human Activity Recognition,HAR)的聯邦學習。

3.2.1 普適計算與聯邦學習

今天,大部分的計算基本上都是在 「雲」 中完成的。「雲」將強大的、靈活的、按使用量付費的框架提供給服務提供商。然而,基於雲的架構存在很大的侷限性,主要是與安全性、缺乏反應性有關的問題。此外,在實踐中,「雲」架構還限制了可以實施的服務的數量,其原因在於不可預測的通訊延遲、對通過網際網路傳輸的資料隱私問題以及在某些情況下頻寬不足或成本過高問題等。

由於 「雲」 架構存在的這些問題,人們開始考慮利用 「雲」 中的邊緣設備,通過利用邊緣設備中的資源以提供新的、更高質量的計算服務。邊緣的概念在 2009 年首次被提及[6],Cisco 在 2014 年將其概括為一種新的運營模式。Cisco 的主要思想是將計算和儲存功能儘可能地靠近資料的起源端,也就是位於直接物理環境中的資源。

然而,使用邊緣設備資源來運行服務也存在一些問題,例如,邊緣設備資源無法支撐一些高運算量計算或大資料量儲存需要。谷歌提出了聯邦學習(FL)的概念以滿足基於邊緣設備的分散式模型訓練。谷歌的聯邦學習應用場景是個性化的打字輔助(type-writing assistance)。在這一應用場景中,聯邦學習不是將邊緣設備中的資料集中發送到中央伺服器中,而是將在各個邊緣設備本地學習到的局部模型融合成一個更通用的全局模型,將全局模型作為下一次本地學習迭代的引導模型並重新分配給本地設備。理論上,這樣的全局模型能夠滿足更多的通用性要求,而本地學習的過程也能夠提供更好的適應性。此外,FL 還可以節省通訊成本,並通過避免經由網路發送在終端層面收集的資料而實現安全和隱私保護。FL 作為一種新的機器學習正規化大大促進了邊緣設備的使用,使基於邊緣設備的普適計算成為可能。儘管如此,現階段的 FL 在很大程度上仍然是概念性的,有待於進一步的解釋和更廣泛的測試。

圖 6. FL 架構

圖 6. FL 架構。

如圖 6 所示,FL 依賴於一個分散式的架構,該架構由位於類似 「雲」 架構中的伺服器和一些設備組成,這些設備稱為客戶端。在整個 FL 網路中,客戶端的數量是可變的和動態的。FL 的一個關鍵點是模型的聚合。在早期的 FL 文獻中,聚合被實現為一個平均函數(FedAvg),即,平均化不同局部模型(客戶端中的模型)的權重以得到新的權重,從而生成一個新的模型。此外,有研究人員提出了其它聚合規則:例如,FedPer(Federated learning with personalization layers)[7],這是一種結合了基礎層和個性化層遷移學習的聯邦學習演算法;FedMA(Federated learning with matched averaging)[8],一個聯邦層級學習的方案,包含了具有相似權重的節點的匹配和合並。

從理論上講,FL 能夠很好的適應各種場景條件變化,因為每個客戶端都會不斷地根據自己的經驗和其他客戶端學習;FL 能夠保護隱私和效率,因為不通過網路傳輸資料,而是將資料保存在客戶端本地;FL 能夠適應邊緣運算,因為 FL 中的聚合處理並不一定要依賴雲資源。然而,聯邦學習只在模擬資料和少數領域進行了測試和驗證,這就留下了許多開放性的問題。事實上,目前還不清楚 FL 方法是否總能比純粹的集中式或分散式方法帶來更好的性能和穩健性。具體來說,作者認為資料分佈和異質性仍是一個需要更多調查和測試的問題。在普適性領域,資料可能因主體、環境和條件的不同而有很大差異。本文的目標就是結合具體的應用場景分析和討論這個問題。

3.2.2 人類活動識別

本文聚焦的應用場景是人類活動識別(Human Activity Recognition,HAR)。關於基於可穿戴傳感器(通常由智慧手機提供)的 HAR 的研究已經持續多年。目前,研究人員已經提出了許多方法來識別和分類人類的物理活動,如跑步、走路,還有互動和社會活動,如聊天、說話或遊戲。本文關注的是使用機器學習技術的 HAR。最常見的方法是處理資料流的窗口以提取特徵向量,然後,將特徵向量輸入分類器以輸出識別結果。常見的分類器包括貝葉斯網路、決策樹、隨機森林、神經網路和支持向量機等等。由於人類活動可以被看作是一連串較小的子活動,因此,諸如條件隨機場、隱馬爾科夫模型或馬爾科夫邏輯網路等順序模型也被應用。今天,最流行和有效的使用機器學習技術的 HAR 顯然是深度神經網路。然而,深度學習的效果高度依賴於大規模資料庫,此外,深度學習會受到資料異質性的影響。

本文的研究目的是使用 UCI[9]和 REALWORLD 專門用於人類活動識別的資料庫評估經典 FedAvg 演算法與集中式訓練方法的性能差別。選擇這兩個資料庫的目的是分別展示 FL 在同質客戶端(UCI)和異質客戶端(REALWORLD)中的性能。實驗使用密集神經網路(Dense Neural Network,DNN)和卷積神經網路(Convolution Neural Network,CNN)以比較聯邦學習和傳統集中式訓練的深度學習方法,同時,對比 2 種不同的深度學習架構在聯邦學習中的效果。DNN 模型的隱藏層由 400 個和 100 個神經單元組成。CNN 模型有 192 個大小為 1×16 的卷積濾波器,然後是 1×4 的池化層以及大小為 1024 的全連接層。作者強調在處理能力有限的邊緣設備上使用淺層神經網路模型進行實驗,並在聯邦學習中減少通訊成本。作者使用大小為 32 的 mini-batch SGD 訓練模型,為了防止度擬合還使用了 0.50 的 drop-out 率,使用的開發工具是 TensorFlow。

對於 FL 測試,作者將資料庫中每個參與者的資料根據類別統一分成 80% 的訓練庫和 20% 的測試庫,另一個實例隨機地模擬一個資料均勻分佈和一個不均勻分佈的資料庫測試場景,供客戶端使用。由於 UCI 資料庫的規模較小且缺乏活動與主體的對應關係,作者將訓練庫和測試庫劃分為 5 個人工客戶端。另一方面,將 REALWORLD 資料庫中的每個主題視為一個客戶端,每個客戶端都擁有各自的資料,共計 15 個客戶端。作者在測試中使用了 50 個通訊輪次,每個客戶端總共訓練了 10 個局部 epoch,學習率為 0.005。

作者給出了 HAR 任務中經典集中式方法和 FedAvg 演算法的實驗對比,具體採用了 DNN 和 CNN 模型。針對測試庫,作者對 FedAvg 進行了兩次驗證,一次是基於中央伺服器端的聚合模型,另外一次是基於各個客戶端模型的平均化準確度,即聯邦準確度(federated accuracy)。作者使用 F1 分數,即精度和召回率的調和平均值,作為實驗評價指標:

根據 HAR 研究的標準做法,實驗還對比了所有類別的單個 F1 分數的宏觀平均值:

其中,F_i1_score 表徵第 i 個類別的 F1 分數,C 為類別集合。準確率的計算方法是令正確分類的數量除以實例的總數。

3.2.3 實驗結果分析

表 5 給出了在 UCI 資料庫中使用集中式方法時,基於標準的訓練 – 測試監督學習模式的最優準確性結果。通過標準的集中式訓練方法,本文使用的 CNN 模型能夠達到 94.64% 的準確率。實驗中沒有使用任何預處理或超參數調優處理。本文使用的 DNN 架構得到的準確率較低,為 90.23%。表 5 中涉及到的模型參考文獻均可在原文中查找到。作者分析,這些實驗資料能夠證實 CNN 更適合於這項任務。不過,作者也強調,本文研究的目的不是為了改進 HAR 領域的性能,而是使用可信的和標準的深度模型來評估 FedAvg。表 6 給出了 FedAvg 的實驗結果。UCI 均勻資料庫中伺服器端的聚合 DNN(aggregated DNN)準確度為 94.37%,而聯邦準確度為 93.78%。總的來說,由實驗資料可以看出,宏觀 F1 與每個模型的全局 F1 相似,這意味著模型沒有偏向於某些類別。

表 5. UCI 庫中經典集中式訓練方法的效果。

表 6. UCI 庫中伺服器端集中式和聯邦學習方法的實驗比較。

表 7 給出了在 REALWORLD 資料庫上其它最先進的集中式方法使用標準的訓練 – 測試監督學習的 F1 結果。使用標準的集中式方法和 DNN 模型進行訓練,測試準確度結果為 82.4%;使用標準的集中式方法和 DNN 模型進行訓練,測試準確度結果為 84.45%。表 8 給出了集中式方法和 FedAvg 在 REALWORLD 資料庫上訓練得到的模型之間的比較結果。在 DNN 模型上使用 FedAvg 方法,伺服器端和客戶端的準確率分別為 72.32% 和 92.43%。

表 7. REALWORLD 庫中經典集中式訓練方法的效果。

表 8. REALWORLD 庫中伺服器層面經典方法 vs 聯邦學習方法。

3.2.4 分析和討論

由上一節的實驗結果可知,相同的 FL 演算法在不同的資料庫和模型中表現不同,資料庫所造成的區別和影響非常大。在 UCI 庫中的實驗可以看出,與集中式方法相比,利用 CNN 模型的 FedAvg 的效果接近於目前最先進的方法。然而,在 REALWORLD 資料庫中 FedAvg 的性能較差。在這種情況下,也可以觀察到伺服器模型和客戶端模型在準確性上的巨大差異。作者分析,這可能是由於本文實驗中使用了一個參與者的資料作為客戶端資料,也可能是由於 REALWORLD 的客戶端數量(15)高於 UCI(5)。在 REALWORLD 資料庫中,客戶端傾向於基於自身的測試資料庫快速的以較高準確度聚合(95%),但是基於完整的測試庫則會導致較低的準確度(65%)。從這個角度,我們就可以解釋為什麼伺服器模型不能獲得高性能:因為客戶端的模型是在不同的方向上學習的,因此 FedAvg 的平均權重處理方法無法從每個客戶端模型的某些特定參數中獲益(這些參數在模型中位置不一樣,但是具有類似的值且針對相似的特徵 [8])。實驗中所展示的客戶端損失的巨大標準偏差也進一步支持了這一觀點。這可以被稱為 “過度擬合”,但是這種「過度擬合」 在聯邦學習環境中可以看做一種理想的行為,因為客戶端的模型確實應該是針對客戶端設備 / 使用者自身的專業化結果(selfspecializing to the device/user)。作者也強調,在聯邦學習的環境中,必須強調過度擬合和專業化的概念,以更加系統性的方式加以評估。

本文的對比實驗還表明:設計一個 FL 實驗,用不同的資料庫對客戶端進行建模,要比客戶端中資料均勻分佈的情況更加現實,且更具有挑戰性。另外,UCI 的資料比 REALWORLD 的資料更均勻,噪聲更小。而 REALWORD 中的資料更加真實,因為它涉及 7 個不同的智慧手機位置,並且是在戶外收集到的。

作者強調的另一個問題是模型帶來的影響。從整體上講,DNN 和 CNN 模型性能相差不大。CNN 模型的標準偏差比 DNN 模型大得多,同時,二者通訊輪次的變化也不同。FedAvg 的一個問題是,它是按座標態(coordinate-wise)進行平均化的,這可能對平均化模型的性能有很大的不利影響。這個問題的出現是由於在 FL 過程中,一些不變數被參數所捕獲,而這些參數在不同的客戶端模型中只有排序的不同。雖然這些差異可以通過更多的通訊輪次來解決,但這會造成較大的通訊成本,而且如果客戶端的資料彼此之間有很大差異,即便是執行多個通訊輪次也無法改進效果。這一點在 CNN 中尤為突出,因為 CNN 包含比密集模型更多的特徵層,此外,CNN 的 Dropout 層可能意味著不變數是由客戶端模型中的不同神經元組學習的。為了更好地分析這一行為,作者認為有必要沿著通訊輪次逐層分析模型權重的發散性,這可以使用標準的矩陣相似度指標(standard matrix similarity measures)或專門的深度學習分析來實現。

3.3 聯邦學習的效果評價

3.3 聯邦學習的效果評價

關於這部分內容,我們節選自查爾姆斯科技大學和格滕堡大學的一篇碩士論文。這篇碩士論文對比了三種經典 FL 方法:FedAvg[8]、FSVRG(Federated Stochastic Variance Reduced Gradient)[11]和 CO-OP[12]。

3.3.1 對比方法介紹

關於經典 FedAvg,具體的實現演算法如下 Algorithm 1。我們在這裡不再贅述。

聯邦隨機方差降低梯度(FSVRG)通過採用分散式方法實現 SVRG(Stochastic Variance Reduced Gradient)來應對聯邦學習的挑戰(關於 SVRG 的詳細介紹,請讀者參考[23])。FSVRG 的理念是:集中進行一次代價較高的全局梯度計算,然後在每個客戶端分別進行多次分散式隨機更新。隨機更新是通過客戶端本地資料的隨機排列迭代進行的,每個資料點執行一次更新。標準的 FSVRG 只有一個超參數:步長 h。然而,並不直接使用這個步長。相反,客戶端 k 中也設有一個局部步長 h_k,與 n_k 成反比,n_k 為客戶端 k 中訓練樣本的數量,h_k=h/n_k。

Algorithm 2 給出了 FSVRG 的完整描述,其中一個迭代的過程如下。首先,為了計算一個完整的梯度,所有客戶端下載當前的模型 w_t 並計算相對於本地資料的損失梯度。然後,客戶端上傳梯度,中央伺服器彙總後形成完整的梯度▽f(w_t)。接下來,所有客戶端都初始化他們的本地模型(w_t)^k 和本地步長 h_k。在對其本地資料進行隨機排列後,客戶端利用之前計算的全部梯度採用特定的步長 h_k 迭代執行 n_k 個 SVRG 更新。最後,當所有客戶端都計算並上傳了他們最終的(w_(t+1))^k,伺服器聚合全部(w_(t+1))^k,形成一個新的全局模型 w_(t+1),類似於 FedAvg。

FSVRG 主要關注的是資料稀疏的問題,即一些特徵在資料庫中很少表現出來,或者只出現在少數客戶端設備中。這種稀疏結構是通過將梯度和模型參數與對角線矩陣相乘來生成的,其中,對角線矩陣包含關於特徵被代表的頻率的資訊。在文獻 [11] 中利用對角線矩陣進行縮放處理的目的是應對他們使用的 SVM 模型中模型維度 w 與輸入 x 的維度相同的問題。但是,在一般神經網路模型中權重數量通常要比輸入維度大得多。所以本文作者在實驗中並未考慮這種縮放處理(Algorithm 2)。

CO-OP 主要考慮的是非同步的 FL 問題。CO-OP 在收到客戶端模型和全局模型後就即時聚合。聚合處理並不是直接取平均值,而是通過一個基於模型年齡差異的加權方案進行的。使用 a 和 a_k 表徵全局模型的年齡和客戶端 k 模型的年齡。僅當滿足 b_l≤a-a_k≤b_u 時聚合該局部模型,b_l 和 b_u 為指定的整數值,可將二者看作一個 filter。

CO-OP 訓練程序如下。每個客戶端都有自己的訓練資料,並在向中央伺服器請求當前的全局模型年齡 a 之前執行 E 輪最佳化演算法。客戶端判斷其年齡差異是否符合限制條件。如果本地模型已經過時,那麼客戶端就會與全局模型進行協調,並重新開始。如果本地模型處於活躍狀態,那麼客戶端就繼續訓練。否則,將本地模型上傳到中央伺服器聚合。CO-OP 的流程見 Algorithm 3。與 CO-OP 的原始描述 [12] 相比,Algorithm3 中對訓練資料的訪問方式進行了一些調整:令客戶端在任何時候都能訪問其所有的資料,而 [12] 中則是在某些隨機的時間間隔內將資料聚集成一個批次。然後,客戶端一次只能訪問一個批次。根據本文中的實現方式,我們可以在更多的資料上進行訓練,不受限於批次的約束。

3.3.2 基準評估

3.3.2 基準評估

本文實驗性能評估是基於 MNIST 資料庫的分類任務完成的。MNIST 總共包含 70,000 張手寫數字的標記圖像。這些都是灰度圖像,每張都是 28×28 像素的。進一步將 MNIST 資料庫劃分為由10,000 張圖像組成的測試庫和由 60,000 張圖像組成的訓練庫。考慮到現有的各種性能測量方法,作者提出,不能只考慮使用準確率(Accuracy)作為評估指標。準確率是機器學習研究中唯一持續使用的衡量標準,所以在針對聯邦學習環境下的機器學習模型進行評估也需要使用到這個衡量標準。不過,針對準確率仍有很多質疑的觀點。首先,一些研究人員認為資料中存在的類別傾斜現象會導致準確率偏向於多數類別。在這種情況下,使用精確性(Precision)和召回率(recall)就很重要了,因為召回率考慮的是類別上的精確性,而精確性能夠告訴我們在每個類別中的預測結果是否良好。其次,反對使用準確率的第二個論點是,準確率假定了錯誤分類的成本是相等的,但在實踐中這個假設可能是有問題的,因為往往會出現一些類別比其他類別更重要的情況。使用對錯誤分類成本不敏感的性能指標,如 AUC,就可以完全迴避這個問題。但是,AUC 只適用於二元分類任務。由於缺少多類別 ROC 分析的機制,現有的多類別 AUC 評估是基於二進位制測量的推廣和概括。作者表示,鑑於多類別 AUC 評估仍然是一種不連貫的 AUC 評估變體,本文不考慮任何基於 ROC 的評估方法。作者採用準確率(Accuracy)來量化分類性能。作者分析,在 MNIST 中,類別的傾斜問題並不普遍,而且作者沒有找到合適的 cost-insensitive 的多類評估標準,作者認為使用精確率和召回率並不會給本文討論的 FL 問題帶來額外的好處。

作者使用貝葉斯相關 t 檢驗(The Bayesian correlated t-test)方法進行評估,具體在所有成對的演算法組合之間進行測試。每次測試的結果都是一個後驗分佈圖,描述了被測分類器之間準確率的平均差異。由於後驗是一個概率密度函數,我們可以用它來推斷給定觀察資料的假設概率。然後,對這些後驗的分析構成了最終的性能評估。作者給出如圖 7 的示例解釋貝葉斯相關 t 檢驗結果。其中,針對被測試的分類器 A 和 B,使用 3 次 5-fold 交叉驗證進行評估,分類器 A 的平均準確率為 93.5%,分類器 B 為 92.9%。作者表示,我們可以認為圖 7 中比較的兩個分類器實際上是等效的,因為分佈的大部分質量都在 rope 範圍內。不過,這只是一個不確定的結論,因為 43.4% 的質量仍然在 rope 之外。如果這個分佈有,比如說,95% 的質量在 – 0.01 的左邊,那麼說 A 實際上比 B 好可能是有意義的。然而,我們可以反過來說,A 應該是首選演算法,因為 B 實際上比 A 好的概率只有 5.5%。

圖 7. 分類器 A 和 B 之間的相關貝葉斯 t 檢驗的後驗概率分佈。垂直線定義了一個實際相等的區域,在這個區域中,準確率的平均差異不超過 1%。

作者使用 Python 庫 baycomp 來進行貝葉斯相關的 t 檢驗(baycomp.readthedocs.io/en/latest/index.html)。在 baycomp 中,一個後驗概率分佈是由兩個分類器在 k-fold 交叉驗證的 i 次迭代中的準確率差異列表產生的。

分散式基準總共包含 100 個客戶端,作者在這些客戶端之間分配 MNIST 訓練資料。Non-IID 資料表徵因為有某些價值而特意發送給客戶端的樣本資料,圖 8 舉例說明了 IID 和 Non-IID 分佈如何相互比較。

圖 8. IID 和 Non-IID 資料比較。

適用於 folds 實驗的 Non-IID 資料生成過程如下:

  1. 對資料庫進行清洗。

  2. 將資料分為 5 個 folds。

  3. 對每個 fold 進行分類。

  4. 將每個 fold 分成 200 個大小為 70 的碎片。

  5. 為每個客戶端唯一分配 2 個隨機碎片位置。

  6. 在每個檔案夾的碎片位置上為每個客戶端分配 2 個碎片。

本文實驗中使用的神經網路模型是一個有兩個隱藏層的多層感知器。2NN 有兩個隱藏層,每個隱藏層有 200 個神經元,每個神經元有一個 ReLu 激活函數。應用於 MNIST,該模型有 28×28=784 個輸入和 10 個輸出。輸出層的激活函數是一個 softmax 函數。此外,使用交叉熵損失函數。2NN 總共有(784+1)-200+(200+1)-200+(200+1)-10=199210 個可訓練參數。

在聯邦學習中,網路吞吐量很重要,而上傳速度尤其重要,因為它通常比下載速度慢。因此,作者在實驗中將終止條件設置為每個客戶端完成 100 次上傳動作,這相當於 FedAvg(C = 0.1)、CO-OP 和 FSVRG 的 100 個客戶端的 10000 次上傳。就通訊輪次而言,這意味著 FedAvg 有 1000 個通訊輪次,FSVRG 有 50 個。FSVRG 只允許 50 個通訊輪次,這是因為 100 個客戶端中的每一個都會在每一輪次上傳兩次:一次是上傳完整梯度,一次是更新的模型。

本文使用 Erlang 框架實現分散式的聯邦學習,Erlang 很適合處理將計算分配給本地客戶端節點的問題。一般使用 Erlang 或者 C 語言實現客戶端的計算。不過,作者在本文實驗中使用的是 Python 和機器學習庫 Keras,主要是因為二者易於使用。我們需要處理模型分發任務的 Erlang 和執行機器學習任務的 Python 之間進行溝通。一個簡單的方法是對 JSON 檔案進行讀寫。另外一個更直接的實現 Erlang 互操作性的方法是通過 Erlang 埠,我們可以編寫自定義的埠驅動或使用現有的接口,例如 ErlPort(github.com/hdima/erlport.org)或 Pylang。使用 Erlang 的傳遞性連接意味著客戶端節點間的全連接網路;如果 a 連接到 b,那麼 a 也會與 b 的所有鄰居客戶端節點建立連接,反之亦然。

為了更符合聯邦學習的實際框架,作者還增加了一個使用者客戶端節點。該使用者客戶端節點代表一個資料分析師,他將機器學習任務分配給中央伺服器,而中央伺服器又將計算分結果分發給客戶端。使用者客戶端節點由一個與中央伺服器通訊的 Erlang 節點和一個供程式設計師與 Erlang 節點通訊的 Python 腳本組成。使用 Erlang 進行通訊的另外一個好處是,我們可以很容易地將客戶端之間的互動過程 轉移到一個與中央伺服器分開的單獨計算機上。

圖 9 中的節點 U、S 和 C 是用 Erlang 編寫的。客戶端節點 C_i , i = 1, 2, …, n, 通過 JSON 與客戶端 i 進行通訊,這也用於客戶端節點 U 和使用者客戶端節點之間的通訊。在本文的案例中,使用者客戶端和一般客戶端都是用 Python 編寫的。由於作者採用了基於 JSON 的方法,使用者客戶端和一般客戶端都可以用任何可以讀寫 JSON 檔案的語言來編寫,這使得 Erlang 框架具有語言上的獨立性。

圖 9. 客戶端節點 U、S 和 C 是 Erlang 節點。使用者客戶端和一般客戶端只需要通過 JSON 進行通訊。

理想情況下,需要證明 Erlang 框架可以隨著增加的客戶端節點數量而擴展。然而,這要求每個客戶端節點都能獲得一個獨立的處理器核心,由於作者並不具備 100 個處理器的條件,所以實驗中需要客戶端節點競爭資源。由於 CPU 是各客戶端節點之間的共享資源,很明顯本文的設置無法證明現實世界的可擴展性。作者在實驗中會啟動儘可能多的併發客戶端,並讓每個客戶端節點做最少的工作,也就是立即回覆給中央伺服器。

在第一個實驗中,只考慮了 Erlang 分佈框架而沒有考慮 Python 的計算和通過 JSON 的通訊負載問題。由於在檢查檔案系統的更新時週期性的執行緒阻塞以及 Python 會帶來的不可預測的開銷,最終實驗限制在三臺四核機器的處理能力上。因此可以預見,第一個實驗很快就達到了處理器不堪重負的地步。在第二個實驗中,作者通過計算框架引入了 Python 和 JSON 檔案之間的通訊。通過引入額外的延遲,使得客戶端數量實現線性擴展。

3.3.3 評估結果

作者在原文中給出了 FedAvg、CO-OP、FSVRG 和集中式學習之間的實驗比較。作者首先對四種演算法進行了最優超參數的實驗。在確定各個演算法的最優超參數後,作者通過 5-fold 交叉驗證來評估搜尋演算法,包括基於貝葉斯相關 t 檢驗的比較。針對四種演算法的超參數實驗我們在這裡不再贅述,我們重點分析 5-fold 交叉驗證的實驗結果。

將三次交叉驗證的結果作為每個貝葉斯相關 t 檢驗的輸入。作者進行了許多這樣的實驗,圖 10(IID)和圖 11(Non-IID)分別給出了結果的後驗分佈。圖中豎線表示實際等值的區域,作者選擇在 [-0.01, 0.01] 之間。每個圖中的三個比較均是與集中式學習的比較。圖 10 中的所有概率密度函數都有 95% 以上的質量在一個區域內。因為這個質量被解釋為相對性能的概率,所以作者對 IID 資料做出以下推斷:

  • FedAvg 實際上比 CO-OP 和 FSVRG 都要好。

  • 集中式學習實際上比 CO-OP 和 FSVRG 都要好。

  • FedAvg 和集中式學習實際上是等同的。

  • CO-OP 和 FSVRG 實際上是相當的。

類似的,圖 11 中所有關於 Non-IID 資料的比較的密度圖都有 95% 以上的質量在一個區域內。因此,作者對 Non-IID 資料做出如下推斷:

  • FedAvg 實際上比 CO-OP 和 FSVRG 都要好。

  • CO-OP 實際上比 FSVRG 要好。

  • 集中式學習實際上優於 FedAvg、CO-OP 和 FSVRG。

不過,聯邦演算法受到上傳數量的限制,可能會影響 CO-OP 和 FSVRG 的效果。針對這一問題,作者對 CO-OP 和 FSVRG 做了一定的修正,使其完成更多的上傳,並把它們稱為 CO-OP×5 和 FSVRG×10。實驗結果如圖 12,兩種方法只進行了兩次交叉驗證的迭代。CO-OP×5 進行了 5 次上傳,FSVRG×10 則進行了 10 次上傳。FSVRG×10 的上傳數量最多,但它用和 CO-OP×5 一樣多的本地模型更新了全局模型。在圖 12 中,只有 CO-OP×5 與 FSVRG×10 的比較,其質量的 95% 以上在三個區域之一。作者做出以下推斷:

  • FSVRG×10 實際上相當於或優於 FedAvg

  • FSVRG×10 實際上優於 CO-OP×5

  • FedAvg 實際上相當於或優於 CO-OP×5。

  • 集中式學習實際上相當於或優於 FSVRG×10。

  • 集中式學習實際上比 CO-OP×5 要好。

圖 10. 聯邦最佳化演算法在 IID MNIST 上以後驗分佈的形式進行的比較。每個演算法都進行了 3 次 5-fold 交叉驗證的迭代。每個比較在 rope 的兩邊都有一個質量 p,代表該邊的演算法實際上更好的概率。

圖 11. 聯邦最佳化演算法在 Non-IID MNIST 上以後驗分佈的形式進行的比較。每個演算法都進行了 3 次 5-fold 交叉驗證的迭代。每個比較在 rope 的兩邊都有一個質量 p,它代表該邊的演算法實際上更好的概率。

圖 12. 在 Non-IID MNIST 上的聯邦最佳化演算法之間的比較,以後驗分佈的形式展示,其中右上角標表示該演算法執行了更多次上傳。每個演算法都進行了 2 次 5-fold 交叉驗證的迭代。每個比較在 rope 的兩邊都有一個質量 p,代表該邊的演算法實際上更好的概率。

4 面向聯邦學習的調優

在這一章中,我們將結合兩篇最新的研究論文,探討面向聯邦學習的超參數調優問題。這兩篇文章是來自 CMU 的同一個研究小組的研究成果[13][16]。

4.1 聯邦學習中超參數最佳化的權值共享[13]

超參數最佳化是機器學習的一個重要組成部分,也是將機器學習方法自動應用於實際場景中的一個關鍵問題。在聯邦學習(FL)的情況下,模型通過異構設備的分散式網路進行學習,在這種情況下的超參數最佳化比一般的機器學習更加困難。本文作者表示,他發現神經結構搜尋(neural architecture search,NAS)技術的權值共享(使用相同的參數同時最佳化多個神經網路)是一種加速調整演算法超參數的有效方法,例如在個性化聯邦學習中的聯邦平均法(FedAvg)。利用 FedAvg 和元學習之間的聯繫,同時在可微分 NAS 的啟發下,本文提出了一種實用的聯邦超參數最佳化方法,稱為基於指數化梯度更新的 FedEx。

4.1.1 聯邦超參數最佳化

首先,作者給出了聯邦超參數最佳化問題的形式化介紹,並討論其個性化變體與元學習的聯繫。FL 關注的是在一個由異質客戶端組成的網路上的學習和最佳化,每個客戶端都有自己的訓練庫 T_i、驗證庫 V_i 和測試庫 E_i。使用 L_S(w)表示 w 參數化的 ML 模型在資料庫 S 上的平均損失。為了定義超參數最佳化問題,作者假設有一類超參數為 a∈A 的演算法 Alg_a,通過聯邦訪問(Federated Access)訓練庫 T_i 來計算輸出。這裡所說的聯邦訪問是指每個迭代對應於一個通訊輪次,在這個輪次中,Alg_a 可以訪問一些可以進行本地訓練和驗證的批次的 B 客戶端。

假設 Alg_a 可以由兩個子程序來描述,其超參數編碼為 b∈B 和 c∈C,a = (b, c) 和 A = BxC。c 編碼局部訓練演算法 SGD_c 的超參數,該演算法將訓練庫 S 和初始化 w 作為輸入,輸出一個模型 SGD_c(S,w)。b 編碼聚合步驟 Agg_b 的超參數,該步驟將初始化 w 和 SGD_c 的幾個輸出作為輸入,並在 R^d 中輸出一個新的模型參數。然後,全局超參數最佳化問題表徵為:

(4.1)

在一些應用場景下,除了全局最優模型外,我們還希望得到特定於客戶端設備的局部模型,即針對各個客戶端進行微調的局部模型。作者限定:微調演算法與 Alg_a 使用的本地訓練演算法 SGD_c 相同。在個性化的設置中,超參數最佳化問題為:

(4.2)

在非聯邦設置中,全局目標(4.1)可採用常規的超參數最佳化方法進行處理。但是,將這種方法應用於個性化 FL 面臨兩個挑戰:

  • 用於全局模型的驗證資料是 「聯邦」 的,因此,在任何一個時刻,整個資料庫都不是立刻可用的。而中央伺服器在每一輪通訊中都可以訪問一些客戶端設備,進行一次或最多幾次的本地訓練和驗證。因此,考慮到衡量 FL 複雜性的標準是「通訊輪次數」,在這種情況下精確計算目標會大大增加成本。

  • 即使有非聯邦資料,將標準方法應用於個性化目標函數(4.2)也是不現實的,因為評估它需要運行 n 次局部訓練。

本文提出了一種 FedEx 方法,通過在每一個通訊輪次中使用噪聲驗證來應對這兩個問題,其方式類似於 SGD 加速常規的無噪聲梯度下降。在介紹 FedEx 之前,作者首先給出了在 FL 中調整超參數的基線方法,即使用常規的超參數最佳化方法,使用單輪的驗證資料作為全部驗證目標的噪聲替代。具體來說,作者使用連續消除(successive elimination,SEA)演算法對一組超參數進行抽樣後部分運行一定數量的通訊輪次,以消除全部超參數(保留前 1/η個參數),重複這一過程,直到只剩下一個配置。基線方法的流程見 Algorithm 1。

4.1.2 引入權值共享(Weight-Sharing)的個性化 FL

首先回顧一下 NAS 中的分權方法。NAS 通常被設定為二層(bi-level)最佳化問題:

(4.3)

其中,C 表徵網路配置項,L_train、 L_valid 評估一組網路配置和權值。如果所有的超參數都是結構化的,就像 NAS 中的情況一樣,那麼它們實際上本身就是可訓練的模型參數。因此,我們可以考慮解決以下 「單級(single-level)」經驗風險最小化(empirical risk minimization,ERM)問題:

(4.4)

由於需要在一個非常大的搜尋空間中對許多架構進行全部或部分訓練,解決 NAS 的 bi-level 或 ERM 表述的早期方法計算代價都非常高昂。權值共享(weight-sharing)將問題簡化為訓練一個單一的架構,一個包含搜尋空間 C 中所有架構的 “超級網”[14]。構建超級網的一個直接方法是 “隨機鬆弛(stochastic relaxation)”,stochastic relaxation 中的損失被視為從 C 的某個分佈中抽取 c 的期望值。然後,使用 SGD 更新共享權值,首先從這個分佈中抽取一個架構 c,然後使用▽_wL(w, c)的標準無偏估計值來更新 w。

C 的分佈本身可以調整或保持固定。在後一種情況下,訓練結束時獲得的共享參數必須是所有架構 c∈C 的 L(・, c)最小化的替代。本文討論另一種情況,即,在 C 上適應一些θ- 參數化的分佈 D_θ,得到目標函數如下:

(4.5)

由於架構超參數通常是離散值,所以 D 可以是簡單的分類分佈的乘積。

進一步的,作者基於權值共享的理念,提出了 FedEx 方法。將式(4.2)中的目標函數替換如下:

(4.6)

該目標函數是以權值共享目標(4.4)的形式提出的,因此我們可以用隨機鬆弛代替它:

(4.7)

與 NAS 不同的是,FL 的超參數,如學習率,並不是單純的極值點,因此,很難簡單確定使用什麼樣的參數化分佈 D_θ。作者發現,通過對 Unif|C | 的 k>1 的隨機樣本粗略地施加一個分類分佈,並基於新產生的 k-simplex 使用指數化梯度更新θ,效果是不錯的。這與更新 w 交替進行,在 NAS 演算法中,這涉及到對當前目標梯度(w 和θ)無偏估計的 SGD 更新。參考 meta learning 的 Reptile 方法[15],作者將 Alg_a 的另一個子程序 Agg_b 看作是使用個性化目標的梯度代理來執行更新,該子程序彙總了局部訓練的輸出結果。作者將這種針對公式(4.7)的替代方法稱為 FedEx,詳細過程見 Algorithm 2。

與權值共享一樣,FedEx 可以被看作是將調整局部超參數的複雜性降低到訓練一個單一模型的複雜性。每一步對θ的更新都需要確定步長η_t。我們可以將 FedEx 視為 Algorithm 1 的調優形式,它實現了對超參數(w,θ)的聯邦訓練,其中本地訓練 SGD 包括對 c~D_θ進行取樣的步驟,中央伺服器彙總對θ的指數化更新。因此,我們可以將 FedEx 包裹(Wrapped)在 Algorithm1 中,作者表示這是很有用的,原因如下:

  • Wrapper 可以為聚合步驟 Agg_b 調整 b 的設置,而 FedEx 則不能。

  • FedEx 本身有一些超參數,wrapper 可以對其進行調整。

  • 通過運行多個種子進程並進行早期停止處理,我們可以使用更大的迭代步驟來運行 FedEx,wrapper 可以主動放棄導致結果不佳的情況。

  • 我們可以直接將 FedEx 與運行在原始演算法上的常規超參數最佳化方案進行比較,例如 FedAvg。

  • 通過使用 wrapper,我們能夠使用局部擾動方案來確定 Algorithm 2 所給出的配置 c_1,…,c_k,同時仍然探索整個超參數空間。

4.1.3 實驗結果分析

在本文的實驗中,作者將 FedEx 實例化在 FedAvg 上。每個通訊輪次 t 中,FedAvg 做如下聚合:

(4.8)

需要注意的是,原始的 FedAvg 方案是(4.8)的特例,ε_t=1,即更新是客戶端模型輸出的平均值。因此,嚴格來說,我們是在調整一個具有中央伺服器學習率的 FedAvg 的泛化,也被稱為 Reptile。作者這樣做是為了通過 “ε_t 隨時間衰減” 來減少模型的變化,與 FedAvg 不同的是,FedAvg 是通過衰減本地 SGD 的學習率來完成同樣的事情。

首先,作者給出了 Shakespeare 下一個字符預測資料庫中的實驗結果。實驗中,總的通訊輪次設定為 4000,並允許每個單獨的配置最多運行 800 個通訊輪次。模型為一個兩層的字符 LSTM(a two-layer character-LSTM)。如圖 13 所示,我們看到 FedEx 在兩種資料設置(IID、Non-IID)中,對於全局模型、個性化模型、線上評估的效果都比直接調優 FedAvg 的基線方法要好,而且在最終測試誤差方面,改善幅度在 1.0-1.9% 之間。

圖 13. FedEx 在 Shakespeare 下一個字符預測資料庫上的 IID 客戶端資料設置(頂部)和 Non-IID 客戶端資料設置(底部)的評估結果。左側為全局模型的性能,右側為個性化模型的性能。

4.2 聯邦超參數調控:挑戰、基線以及與權值共享的聯繫[16]

本文的內容主要是對上文的一些擴展性分析。在上文介紹的基礎上,作者具體說明如何選擇傳遞給 Algorithm 2 的配置 c_1,…,c_k。雖然最簡單的方法是從 (Unif(C))^k 中提取,但作者發現,如果配置之間的差異太大,這將導致不穩定的結果。為了在取樣 c_i 之間獨立插值並令它們相同,作者使用一個簡單的局部擾動方法:c1 從 Unif(C) 中取樣,c_2,…,c_k 則從 C 的局部鄰域中均勻地進行取樣。對於從區間 [a,b] 中抽取的連續超參數,局部鄰域是 [c±(b-a)ε]:對於ε≥0,即一個縮放的 “ε- 球”。對於從集合{a,…,b} 中抽取的離散超參數,局部鄰域為{c-[(b-a)ε],…,c+[(b-a)ε]}。請注意,雖然局部擾動確實限制了 FedEx 每個實例所探索的搜尋空間的大小,但如圖 14 所示,同一球中不同配置之間的性能差異仍然很大。

圖 14. 使用不同擾動設置達到的性能值範圍的比較。雖然ε=0.1 的範圍比ε=1.0 的範圍小得多(後者是整個空間),但它仍然涵蓋了 FEMNIST(左)和 CIFAR(右)上不同性能水平的很大範圍(大約 10-20%)。

作者在文章中給出了更多的實驗結論。在本文實驗中,作者在 FedAvg、FedProx 和 Reptile 的調優問題上實例化了 FedEx。其中,FedAvg 是用於聯邦訓練的最流行的演算法,FedProx 是為異構客戶端設備設計的擴展方法,Reptile 則是用於學習個性化設備初始化的兼容元學習方法。在第 t 輪通訊輪次中,這些演算法執行如下聚合:

(4.9)

對於 FedAvg 來說,a_t=1∀t。SGD_c 的局部訓練為使用超參數 c 的 SGD 過程。作者調整了聚合和本地訓練的幾個超參數。對於前者,作者調整了中央伺服器的學習率和動量,作者發現這樣的調整在個性化的實驗環境中效果較好。對於後者,作者調整了學習率、動量、權值衰減、局部 epoch 的數量、批次大小、dropout 和近似正則化。

使用上文中 Algorithm 1 來運行基線方法。實驗結果將測試以下問題:由隨機搜尋(random search,RS)或連續減半演算法(successive halving algorithm,SHA)wrapped 處理後的 FedEx,是否比直接在相同設置下運行的 RS 或 SHA 效果更好?這裡的 “更好” 既指最終獲得的測試精度,也指線上評估設置即測試超參數最佳化在中間階段的表現如何。此外,作者在實驗中還驗證了 FedEx 對於單獨 Wrapper 的改進效果,即針對一個良好的全局模型、非個性化模型的效果。作者在個性化目標上運行 Algorithm 1,並使用消除率η=3 的 RS 和 SHA,後者遵循 Hyperband[17]。為了得到 Algorithm 1 中 SHA 的消除輪次,作者將消除次數設定為 R=3,固定一個總的通訊輪次預設值,並固定分配給任何配置的最大輪次數 a。

作者在三個資料庫(Shakespeare、FEMNIST 和 CIFAR-10)上評估了 FedEx 在視覺和語言任務上的表現。作者考慮以下兩種不同的資料設置:

  • 每個客戶端設備都持有 IID 資料。雖然整個網路的整體資料可以是 Non-IID 的,但在劃分成訓練庫、驗證庫和測試庫之前,我們可以在每個客戶端設備內隨機地任意清洗、置換本地資料。

  • 每個客戶端設備都持有 Non-IID 資料。在 Shakespeare 資料庫中,每個客戶端設備對應一個演員的資料,根據演員在劇中的時間位置分割客戶端本地資料。在 FEMNIST 中,每個客戶端設備都是數字書寫者,本地資料被隨機分割。在 CIFAR-10 中,作者未考慮 Non-IID 的資料設置。

對於 Shakespeare 和 FEMNIST,使用 80% 的資料進行訓練,驗證和測試各使用 10%。在 CIFAR-10 中,作者從訓練 / 測試庫中取出 10K 個樣本進行驗證。表 9 列出了主要實驗結果,顯示了單獨使用 wrapper 演算法進行調優後的目標模型和與 FedEx 結合後的目標模型的實驗結果。實驗結果表明,在大多數情況下,使用 FedEx 是同樣有效或效果更優的。與 FedEx 結合的方法在絕大多數實驗條件下的效果都更優,一般比 wrapper 方法能夠提高 2 個或更多個百分點,只有在 IID FEMNIST 庫中的表現與 wrapper 演算法相當。

作者進一步在圖 15 中展示了線上評估結果,具體包括與單獨的 SHA 相比,FedEx wrapped 的 SHA 的測試誤差與通訊輪數的關係。我們可以看到,在大部分的訓練中,除了最開始的階段,FedEx 要麼和替代方案差不多,要麼比替代方案更好。作者分析,這是因為 FedEx 的隨機性導致初始化時的更新不太確定。

表 9. 使用標準的超參數調優演算法(SHA 或 RS)和在 FedEx 調優客戶端設備上的訓練超參數並使用標準的超參數調優演算法進行中央伺服器端(聚合)超參數調優時,得到的最終測試誤差。目標模型是用於通過 wrapper 方法計算設備上的驗證誤差的模型,也是用於調優後計算測試誤差的模型。

圖 15. FedEx 在 Shakespeare 下一個字符預測資料庫(左)、FEMNIST 圖像分類資料庫(中)和 CIFAR-10 圖像分類資料集(右)的 Non-IID 資料設置(CIFAR-10 除外)中的線上評估結果。上側為全局模型的性能,下側為個性化模型的性能。

5 小結

本文重點討論了面向聯邦學習的模型測試和調優。我們首先回顧了傳統的機器學習與一般的軟體測試、調優的區別和聯繫,然後具體分析了在實際場景中應用聯邦學習存在的主要問題,包括神經架構設計、模型選擇、超參數最佳化和調試等等。接著,我們結合幾篇最新的研究論文了解了面向聯邦學習的評價和測試,既包括了針對具體應用場景的測試(人類活動識別),也包括了對一般聯邦學習演算法的測試。最後,我們集中介紹 CMU 研究小組關於聯邦學習超參數調優的研究成果。

在實際場景中,聯邦學習往往依賴於分散的、異構的客戶端設備,包括移動設備、邊緣設備,甚至是手機等移動應用,這就造成了對其上運行的機器學習演算法進行測試和調優的難度更大,情況更復雜。我們這篇文章的內容僅僅是對這一領域的簡單介紹,關於這方面的工作還有待研究人員不斷深入的分析和研究,以推動聯邦學習更快、更好的在實際場景中推廣應用。

本文參考引用的文獻:

[1] Zhang J M , Harman M , Ma L , et al. Machine Learning Testing: Survey, Landscapes and Horizons. IEEE Transactions on Software Engineering, 2020, PP(99):1-1., https://arxiv.org/abs/1906.10742

[2] Advances and Open Problems in Federated Learning, https://hal.inria.fr/hal-02406503v2/document

[3] Paulik M , Seigel M , Mason H , et al. Federated Evaluation and Tuning for On-Device Personalization: System Design & Applications. arXiv e-prints, 2021., https://arxiv.org/pdf/2102.08503.pdf

[4] Apple Reveals Design of Its On-Device ML System for Federated Evaluation and Tuning, https://medium.com/syncedreview/apple-reveals-design-of-its-on-device-ml-system-for-federated-evaluation-and-tuning-92fb2353b492

[5] Sannara Ek, François Portet, Philippe Lalanda, German Eduardo Vega Baez. Evaluating Federated Learning for human activity recognition. Workshop AI for Internet of Things, in conjunction with IJCAI-PRICAI 2020, Jan 2021, Yokohama, Japan. ffhal-03102880f , https://hal.archives-ouvertes.fr/hal-03102880/document

[6] M. Satyanarayanan, P. Bahl, R. Cceres, N. Davies. The case for vm-based cloudlets in mobile computing[J]. IEEE Pervasive Comput, 2009, 8 ( 4 ) : 14 – 23.

[7] Manoj Ghuhan Arivazhagan, Vinay Aggarwal, Aaditya Kumar Singh, and Sunav Choud-hary. Federated learning with personalization layers, 2019.

[8] Hongyi Wang, Mikhail Yurochkin, Yuekai Sun, Dimitris Papailiopoulos, and YasamanKhazaeni. Federated learning with matched averaging, 2020

[9] Anguita Davide, Ghio Alessandro, Oneto Luca, Parra Xavier and Reyes-Ortiz. A Public Domain Dataset for Human Activity Recognition using Smartphones. 2013.

[10] Evaluating the Performance of Federated Learning, https://odr.chalmers.se/bitstream/20.500.12380/256401/1/256401.pdf

[11] Z. Wu, Q. Ling, T. Chen and G. B. Giannakis, “Federated Variance-Reduced Stochastic Gradient Descent With Robustness to Byzantine Attacks,” in IEEE Transactions on Signal Processing, vol. 68, pp. 4583-4596, 2020, doi: 10.1109/TSP.2020.3012952.

[12] Y. Wang, 「CO-OP: Cooperative machine learning from mobile devices,」 Master’s thesis, Dept. Elect. and Comput. Eng., Univ. Alberta, Edmonton, Canada, 2017.

[13] Mikhail Khodak, et al. Weight-Sharing for Hyperparameter Optimization in Federated Learning, International Workshop on Federated Learning for User Privacy and Data Confidentiality in Conjunction with ICML 2020, https://www.cs.cmu.edu/~mkhodak/docs/FL2020Workshop.pdf

[14] Pham, H., Guan, M. Y., Zoph, B., Le, Q. V., and Dean, J. Efficient neural architecture search via parameter sharing.

In Proceedings of the 35th International Conference on Machine Learning, 2018.

[15] Nichol, A., Achiam, J., and Schulman, J. On first-order meta-learning algorithms. arXiv, 2018.

[16]Mikhail Khodak, et al. Federated Hyperparameter Tuning: Challenges, Baselines, and Connections to Weight-Sharing, https://arxiv.org/abs/2106.04502

[17] Liam Li, Kevin Jamieson, Giulia DeSalvo, Afshin Rostamizadeh, and Ameet Talwalkar. Hyperband: A novel bandit-based approach to hyperparameter optimization. Journal of Machine Learning Research, 18(185):1–52, 2018.

[18] Earl T Barr, Mark Harman, Phil McMinn, Muzammil Shahbaz, and Shin Yoo. The oracle problem in software testing: A survey. IEEE transactions on software engineering, 41(5):507–525, 2015.

[19] Thomas Elsken, Jan Hendrik Metzen, and Frank Hutter. Efficient multi-objective neural architecture search via Lamarckian evolution. arXiv preprint arXiv:1804.09081, 2018.

[20] Chaoyang He, Haishan Ye, Li Shen, and Tong Zhang. Milenas: Efficient neural architecture search via mixedlevel reformulation. In Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2020.

[21] Esteban Real, Alok Aggarwal, Yanping Huang, and Quoc V Le. Regularized evolution for image classifier architecture search. In Proceedings of the AAAI Conference on Artificial Intelligence, volume 33, pages 4780– 4789, 2019.

[22] Keith Bonawitz, Hubert Eichner, Wolfgang Grieskamp, Dzmitry Huba, Alex Ingerman, Vladimir Ivanov, Chloe Kiddon, Jakub Konecný, Stefano Mazzocchi, H. Brendan McMahan, Timon Van Overveldt, David Petrou, Daniel Ramage, and Jason Roselander. Towards federated learning at scale: System design, 2019.

[23] SVRG 演算法的閱讀理解和實踐 https://caoxiaoqing.github.io/2018/05/11/SVRG 論文閱讀筆記 /

分析師介紹:

本文作者為Wu Jiying,工學博士,畢業於北京交通大學,曾分別於香港中文大學和香港科技大學擔任助理研究員和研究助理,現從事電子政務領域資訊化新技術研究工作。主要研究方向為模式識別、計算機視覺,愛好科研,希望能保持學習、不斷進步。

關於機器之心全球分析師網路 Synced Global Analyst Network

機器之心全球分析師網路是由機器之心發起的全球性人工智慧專業知識共享網路。在過去的四年裡,已有數百名來自全球各地的 AI 領域專業學生學者、工程專家、業務專家,利用自己的學業工作之餘的閒暇時間,通過線上分享、專欄解讀、知識庫構建、報告發布、評測及項目諮詢等形式與全球 AI 社區共享自己的研究思路、工程經驗及行業洞察等專業知識,並從中獲得了自身的能力成長、經驗積累及職業發展。