3.4 聯邦訓練的模型效果
本節通過實驗來評估聯邦訓練的模型效果,將分別評測模型在訓練階段和推斷階段的性能。
3.4.1 聯邦訓練與集中式訓練的效果對比
為了對比聯邦訓練和集中式訓練的效果,我們分別按照下面的參數來設置配置文件。
? 聯邦訓練配置:一共10臺客戶端設備(no_models=10),每一輪任意挑選其中的5臺參與訓練(k=5),每一次本地訓練迭代次數為3次(local_epochs=3),全局迭代次數為20次(global_epochs=20)。
? 集中式訓練配置:不需要單獨編寫集中式訓練代碼,只需要修改聯邦學習配置便可使其等價于集中式訓練。具體來說,將客戶端設備no_models和每一輪挑選的參與訓練設備數k都設為1即可。這樣,只有1臺設備參與的聯邦訓練等價于集中式訓練。同時,將本地迭代次數設置為1(local_epochs=1)。其余參數配置信息與聯邦學習訓練一致。
圖3-5展示了兩種不同的訓練方式在cifar10圖像分類上的效果對比,可以看到,聯邦學習的訓練效果與中心化訓練的效果基本一樣。

圖3-5 兩種訓練方式經過20輪迭代后的效果對比,左圖是準確度對比,右圖是損失函數值對比
3.4.2 聯邦模型與單點訓練模型的對比
比較模型在推斷階段的性能,如圖3-6所示:單點訓練模型指的是在某一個單一客戶端Ci,利用其本地數據Di進行本地迭代訓練的模型,我們分別任意挑選其中的五個客戶端來單獨訓練;聯邦訓練中分別設置不同的k值,表示每一次本地迭代訓練,我們會從所有客戶端中挑選k個客戶端來進行。在本實驗中,分別設置了k=3和k=6兩個值。

圖3-6 聯邦訓練后的模型與單點訓練的模型在推斷階段的性能比較
在圖3-6中,我們看到單點訓練的模型效果(藍色條)明顯要低于聯邦訓練的模型效果(綠色條和紅色條),這說明僅通過單個客戶端的數據,不能很好地學習到數據的全局分布特性,模型的泛化能力較差。此外,每一輪參與聯邦訓練的客戶端數目(k值)不同,其性能也會有一定的差別,k值越大,每一輪參與訓練的客戶端數目越多,性能越好,但每一輪的完成時間也會相對較長。