自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

GitHub突破1000星!上交、清華開源個性化聯(lián)邦學(xué)習(xí)算法庫PFLlib

發(fā)布于 2024-4-8 10:08
瀏覽
0收藏

我們在 GitHub 上開源了一個個性化聯(lián)邦學(xué)習(xí)算法倉庫(PFLlib),目前已經(jīng)獲得 1K+ 個 Star 和 200+ 個 Fork,在業(yè)內(nèi)收到了廣泛的好評。PFLlib 囊括了 34 個聯(lián)邦學(xué)習(xí)算法(其中包含 27 個個性化聯(lián)邦學(xué)習(xí)算法)、3 大類數(shù)據(jù)異質(zhì)場景、20 個數(shù)據(jù)集。

?

開源該倉庫的主要目的是:1)降低初學(xué)者研究個性化聯(lián)邦學(xué)習(xí)算法的門檻;2)提供一個統(tǒng)一的實(shí)驗(yàn)環(huán)境,在多種場景和多個方面對不同個性化聯(lián)邦學(xué)習(xí)算法進(jìn)行評估,為個性化聯(lián)邦學(xué)習(xí)算法在具體場景中應(yīng)用時的選擇提供參考;3)為個性化聯(lián)邦學(xué)習(xí)算法的研究者們提供一個可以交流的平臺,在交流的過程中互相學(xué)習(xí),碰撞出新的火花。

GitHub突破1000星!上交、清華開源個性化聯(lián)邦學(xué)習(xí)算法庫PFLlib-AI.x社區(qū)

▲ GitHub Star 的增長曲線


GitHub突破1000星!上交、清華開源個性化聯(lián)邦學(xué)習(xí)算法庫PFLlib-AI.x社區(qū)

論文標(biāo)題:

PFLlib: Personalized Federated Learning Algorithm Library

論文鏈接:

??https://arxiv.org/abs/2312.04992??

代碼鏈接:

??https://github.com/TsingZ0/PFLlib??


GitHub突破1000星!上交、清華開源個性化聯(lián)邦學(xué)習(xí)算法庫PFLlib-AI.x社區(qū)

個性化聯(lián)邦學(xué)習(xí)(PFL)

聯(lián)邦學(xué)習(xí)(FL)作為一種新型的分布式機(jī)器學(xué)習(xí)范式,它主要用于訓(xùn)練人工智能(AI)模型。除了傳統(tǒng)分布式機(jī)器學(xué)習(xí)的跨設(shè)備協(xié)同訓(xùn)練 AI 模型的特點(diǎn)之外,聯(lián)邦學(xué)習(xí)的特殊性主要體現(xiàn)在保護(hù)每個設(shè)備上數(shù)據(jù)隱私的能力。


聯(lián)邦學(xué)習(xí)實(shí)現(xiàn)隱私保護(hù)的主要方式是:禁止具有隱私性的數(shù)據(jù)離開產(chǎn)生該數(shù)據(jù)的設(shè)備。這種限制使得這些設(shè)備上的本地數(shù)據(jù)無法通過傳統(tǒng)分布式機(jī)器學(xué)習(xí)中的數(shù)據(jù)采集、數(shù)據(jù)清洗、數(shù)據(jù)分片等操作,來實(shí)現(xiàn)每個設(shè)備上數(shù)據(jù)的一致性。


由于不同設(shè)備所處環(huán)境的不同,使得它們各自產(chǎn)生數(shù)據(jù)、采集數(shù)據(jù)、處理數(shù)據(jù)的方式不盡相同。于是,便產(chǎn)生了各個設(shè)備之間的數(shù)據(jù)異質(zhì)問題,如圖 1。在異質(zhì)的數(shù)據(jù)上學(xué)習(xí)得到的本地模型,通過服務(wù)器進(jìn)行了模型參數(shù)聚合后生成的全局模型會有表現(xiàn)不佳等問題。

GitHub突破1000星!上交、清華開源個性化聯(lián)邦學(xué)習(xí)算法庫PFLlib-AI.x社區(qū)

▲ 圖1:聯(lián)邦學(xué)習(xí)及數(shù)據(jù)異質(zhì)問題。


為了應(yīng)對聯(lián)邦學(xué)習(xí)中的數(shù)據(jù)異質(zhì)問題,研究者們開始探索在設(shè)備參與到聯(lián)邦學(xué)習(xí)系統(tǒng)里進(jìn)行協(xié)同訓(xùn)練、聚合得到全局模型的同時,為自己學(xué)習(xí)適配本地任務(wù)的個性化模型的新型聯(lián)邦學(xué)習(xí)算法。這類算法被人們稱為“個性化聯(lián)邦學(xué)習(xí)算法”。


在個性化聯(lián)邦學(xué)習(xí)的范疇中,生成全局模型不再是最終的目的,而以全局模型為知識共享的載體、用全局模型中蘊(yùn)含的全局信息來提升本地模型效果才是最終的目標(biāo),如圖 2 所示。


在個性化聯(lián)邦學(xué)習(xí)框架之下,每個參與者通過聯(lián)邦學(xué)習(xí)過程實(shí)現(xiàn)協(xié)作,用聚合得到的全局信息彌補(bǔ)了本地數(shù)據(jù)不足的問題;且每個參與者為自己本地任務(wù)訓(xùn)練得到的個性化模型利好參與者自身,無形中激勵了各個設(shè)備參與聯(lián)邦學(xué)習(xí)的熱情。

GitHub突破1000星!上交、清華開源個性化聯(lián)邦學(xué)習(xí)算法庫PFLlib-AI.x社區(qū)

▲ 圖2:個性化聯(lián)邦學(xué)習(xí)。


GitHub突破1000星!上交、清華開源個性化聯(lián)邦學(xué)習(xí)算法庫PFLlib-AI.x社區(qū)

PFLlib 簡介

2021 年伊始,本人在探索個性化聯(lián)邦學(xué)習(xí)算法的過程中發(fā)現(xiàn),由于不同論文的實(shí)驗(yàn)設(shè)置(如數(shù)據(jù)集、模型結(jié)構(gòu)、數(shù)據(jù)異質(zhì)種類、客戶機(jī)數(shù)量、超參數(shù)設(shè)定等)不同,導(dǎo)致論文中的大部分實(shí)驗(yàn)數(shù)據(jù)不能復(fù)用。同時,有相當(dāng)一部分的論文,其代碼并不開源,使得我們無法通過在新場景下運(yùn)行代碼來獲得實(shí)驗(yàn)數(shù)據(jù)。


此外,在 PFL 領(lǐng)域逐漸火熱起來后,對比實(shí)驗(yàn)往往需要比較十幾個相關(guān)方法,即使每個方法有自己的開源代碼,為這些具有不同風(fēng)格、結(jié)構(gòu)、規(guī)范的代碼進(jìn)行新實(shí)驗(yàn)設(shè)置的適配需要花費(fèi)大量的精力和時間,使得剛?cè)腴T PFL 的研究者無法關(guān)注在 PFL 本身的研究上。


當(dāng)時,我在探索后來發(fā)表在 AAAI 2023 的 FedALA [1](PFLlib 包含該算法)過程中,感覺自己寫的用來進(jìn)行對比實(shí)驗(yàn)的代碼框架相對簡單易懂。出于開源精神,我便對其進(jìn)行了開源。之后,隨著我在 PFL 領(lǐng)域逐步深入,越來越多的PFL方法出現(xiàn),我后續(xù)也持續(xù)地加入了不少算法,才有了如今的規(guī)模。

GitHub突破1000星!上交、清華開源個性化聯(lián)邦學(xué)習(xí)算法庫PFLlib-AI.x社區(qū)

▲ 圖3:PFLlib 中實(shí)現(xiàn) FedAvg 的例子。


總的來說,PFLlib 擁有以下幾個特性:

  • 代碼結(jié)構(gòu)簡單,易于入手和閱讀,易于添加新算法。工具函數(shù)存放在??utils??文件夾中?;A(chǔ)的設(shè)備和服務(wù)器操作分別存放在??clientbase.py????serverbase.????py??中。如圖 3,以在 MNIST 數(shù)據(jù)集上實(shí)現(xiàn)最基礎(chǔ)的 FedAvg [2] 算法為例,我們只需要編寫??generate_MNIST.py??來生成實(shí)驗(yàn)場景,然后編寫??clientavg.py????serveravg.py??來實(shí)現(xiàn) FedAvg 訓(xùn)練流程,再將 FedAvg 在??main.py??配置一下,即可通過命令行運(yùn)行 FedAvg 算法。
  • 提供了較為全面的聯(lián)邦學(xué)習(xí)算法倉庫和實(shí)驗(yàn)環(huán)境。PFLlib 總共擁有 34 個聯(lián)邦學(xué)習(xí)算法(其中包含 27 個個性化聯(lián)邦學(xué)習(xí)算法)、3 大類數(shù)據(jù)異質(zhì)場景、20 個數(shù)據(jù)集。
  • GPU 資源需求較少。使用實(shí)驗(yàn)中最常用的 4 層 CNN 網(wǎng)絡(luò),可以在 NVIDIA GeForce RTX 3090 GPU 上,僅用 5.08GB 顯存模擬 500 個設(shè)備同步訓(xùn)練的場景。
  • 提供了一種基于 DLG [3] 的隱私攻擊和隱私泄露度量指標(biāo),用于度量多數(shù)論文中沒提及的 PFL 算法的隱私保護(hù)能力。

GitHub突破1000星!上交、清華開源個性化聯(lián)邦學(xué)習(xí)算法庫PFLlib-AI.x社區(qū)

34個聯(lián)邦學(xué)習(xí)算法

根據(jù)聯(lián)邦學(xué)習(xí)算法中用到的技術(shù),我們對 34 個 PFL 算法進(jìn)行了分類,具體分類結(jié)果見表 1。

GitHub突破1000星!上交、清華開源個性化聯(lián)邦學(xué)習(xí)算法庫PFLlib-AI.x社區(qū)

▲ 表1:PFLlib 中聯(lián)邦學(xué)習(xí)算法的分類。

GitHub突破1000星!上交、清華開源個性化聯(lián)邦學(xué)習(xí)算法庫PFLlib-AI.x社區(qū)

3個場景和20個數(shù)據(jù)集

聯(lián)邦學(xué)習(xí)的數(shù)據(jù)異質(zhì)場景主要分為四大類:不平衡性(unbalance)、標(biāo)簽傾斜(label skew)、特征漂移(feature shift)、真實(shí)世界(real-world)。


其中不平衡性指的是不同設(shè)備上數(shù)據(jù)量不同;標(biāo)簽傾斜主要指的是不同設(shè)備上的數(shù)據(jù)特征相似但類別(標(biāo)簽)不同;特征漂移則與標(biāo)簽傾斜恰好相反,指的是不同設(shè)備上的數(shù)據(jù)標(biāo)簽相同但特征不同;真實(shí)世界指的是不同設(shè)備上的數(shù)據(jù)是真實(shí)采集到的,可能同時包含以上三種情況。


由于不平衡性與標(biāo)簽傾斜和特征漂移都不沖突,PFLlib 將不平衡性融入了標(biāo)簽傾斜和特征漂移之中。


PFLlib 為標(biāo)簽傾斜(含不平衡性)、特征漂移(含不平衡性)、真實(shí)世界三個場景分別提供了適用于各自場景的數(shù)據(jù)集。


標(biāo)簽傾斜:該場景是在聯(lián)邦學(xué)習(xí)領(lǐng)域探索的最多的場景,也是現(xiàn)實(shí)情況下最容易遇到的場景。該場景進(jìn)一步還分為病態(tài)的非獨(dú)立同分布(pathological non-IID)和真實(shí)的非獨(dú)立同分布(practical non-IID)兩個子場景。


總共有 14 個數(shù)據(jù)集用于標(biāo)簽傾斜場景:MNIST、EMNIST、Fashion-MNIST、Cifar10、Cifar100、AG News、Sogou News、Tiny-ImageNet、Country211、Flowers102、GTSRB、Shakespeare、Stanford Cars。它們都支持以上兩個子場景。

特征漂移:在這個場景中,PFLlib 主要采用了 3 個數(shù)據(jù)集,分別是:Amazon Review、Digit5、DomainNet。


真實(shí)世界:PFLlib 采用的是 IoT(Internet of Things)數(shù)據(jù)集,它們分別是:Omniglot(20 個設(shè)備, 50 個標(biāo)簽)、HAR(Human Activity Recognition)(30 個設(shè)備, 6 個標(biāo)簽)、PAMAP2(9 個設(shè)備,12 個標(biāo)簽)。


每個數(shù)據(jù)集中含有多個子數(shù)據(jù)集,每個子數(shù)據(jù)集是從某個具體的設(shè)備(例如傳感器、陀螺儀等)上采集得到的真實(shí)數(shù)據(jù)。這類數(shù)據(jù)集有利于 PFL 算法在實(shí)際場景落地問題的研究。正如 GPFL [4](PFLlib 包含該算法)中的實(shí)驗(yàn)表明,在模擬場景(標(biāo)簽傾斜和特征漂移等)表現(xiàn)較好的算法,在真實(shí)世界場景中不一定具有良好表現(xiàn)。

GitHub突破1000星!上交、清華開源個性化聯(lián)邦學(xué)習(xí)算法庫PFLlib-AI.x社區(qū)

部分實(shí)驗(yàn)結(jié)果

出于驗(yàn)證 PFLlib 中附帶實(shí)驗(yàn)平臺的可用性,根據(jù) GPFL 中的默認(rèn)實(shí)驗(yàn)設(shè)置,我們對部分算法在部分常見場景中的表現(xiàn)進(jìn)行了展示,如下表所示(實(shí)驗(yàn)結(jié)果僅供參考)。

GitHub突破1000星!上交、清華開源個性化聯(lián)邦學(xué)習(xí)算法庫PFLlib-AI.x社區(qū)

▲ 表2:PFLlib 中部分聯(lián)邦學(xué)習(xí)算法在部分場景中測試集上的分類準(zhǔn)確率。


最后,感謝大家對 PFLlib 項目的支持,也歡迎剛了解到 PFLlib 的朋友們一起參與到 PFLlib 項目的建設(shè)中來!


本文轉(zhuǎn)自 PaperWeekly ,作者:張劍清


原文鏈接:??https://mp.weixin.qq.com/s/cKoc9H8NzRn9DR9wGiSNPw??

標(biāo)簽
收藏
回復(fù)
舉報
回復(fù)
相關(guān)推薦