批量歸一化:不將參數上傳到中心服務器,那服務器怎么進行聚合?

聯邦批量歸一化(FedBN)?是一種聯邦學習客戶端本地模型優化算法。它的核心思想是:在聯邦學習的客戶端本地訓練過程中,保留并獨立更新批量歸一化層(Batch Normalization, BN)的參數,而不將這些參數上傳到服務器進行聚合。那么疑惑的地方就是,傳統聯邦學習需要本地客戶端在本地訓練數據之后,將參數上傳至中央服務器進行聚合,那么使用批量歸一化之后,反而不需要將參數上傳到服務器進行聚合,那么這個模型又是怎么進行訓練的呢?

1、一個簡單的比喻

想象聯邦學習是在合作編寫一份知識文檔

  • 非BN層(卷積層、全連接層):像是文檔的核心知識和通用邏輯(例如:數學公式、語法規則、歷史事實)。這些是通用的,應該由大家共同完善。

  • BN層參數(γ, β):像是每個人自己使用的筆記符號、縮寫習慣和重點標注方式。北京的人習慣用紅色筆標重點,上海的人習慣用黃色熒光筆。如果強行統一,反而會讓每個人看不懂自己的筆記。

FedBN的策略是:

“大家只共同撰寫和合并那份核心知識文檔(也就是聚合非BN層)。而對于每個人做筆記的習慣(相當于BN層參數),你們自己保留,不用交上來統一,這樣你們各自復習時效率最高。”


2、實現步驟詳解(結合圖表理解)

我們假設一個簡單的神經網絡模型結構如下,它包含一個卷積層、一個BN層和一個全連接層:

[輸入] -> [卷積層] -> [BN層] -> [全連接層] -> [輸出]

第1步:服務器初始化
  • 服務器初始化一個全局模型?G0,它包含:

    • 卷積層參數?Conv0

    • BN層參數?(γ0,β0)

    • 全連接層參數?FC0

第2步:服務器下發模型
  • 服務器將當前的全局模型?G0?下發給選中的客戶端A和B。

  • 此時,客戶端A和B收到的模型是完全相同的,都包含?(Conv0,γ0,β0,FC0)

第3步:客戶端本地訓練(關鍵步驟)
  • 客戶端A用自己的數據訓練這個模型。訓練結束后,它得到了一個本地更新后的模型:

    • Conv_A?(更新后的卷積參數)

    • (γ_A,β_A)?(根據A的本地數據分布更新后的BN參數

    • FC_A?(更新后的全連接參數)

  • 同理,客戶端B也得到了自己本地更新后的模型:(Conv_B,γ_B,β_B,FC_B)

第4步:客戶端上傳模型
  • 客戶端A和B將整個模型?(Conv_A,γ_A,β_A,FC_A)?和?(Conv_B,γ_B,β_B,FC_B)?都上傳給服務器。

  • 注意:BN參數也被上傳了,但服務器不會使用它們進行聚合。

第5步:服務器聚合(最核心的步驟)
  • 服務器收到兩個模型后,有選擇地進行聚合:

    1. 聚合非BN層參數:對于卷積層和全連接層的參數,服務器使用加權平均(如FedAvg)進行聚合。

      • 新的卷積層參數:Conv1=(Conv_A * n_A+Conv_B * n_B)/(n_A+n_B)

      • 新的全連接層參數:FC1=(FC_A*n_A+FC_B*n_B)/(n_A+n_B)

    2. 跳過BN層參數:服務器完全忽略從客戶端傳上來的?(γ_A,β_A)?和?(γ_B, β_B)

      • 新的全局模型中的BN參數,仍然使用上一輪舊的全局BN參數?(γ0,β0)

      • (實際上,由于這些舊的BN參數在下一輪又會被客戶端的本地BN覆蓋,服務器上的BN參數可以認為是無用的,真正重要的是客戶端本地的BN參數。)

第6步:開始新一輪訓練
  • 服務器得到的新全局模型?G1?的參數組成是:

    • 卷積層:?Conv1(聚合后的)

    • BN層:?(γ0,β0)?(未被聚合,保留舊值

    • 全連接層:?FC1(聚合后的)

  • 服務器將?G1下發新一輪被選中的客戶端(比如客戶端C)。

  • 當客戶端C收到?G1?后,它會立即用自己本地存儲的BN參數?(γ_C,β_C)?覆蓋掉模型中的?(γ0,β0),然后再開始訓練。

    • 對于剛加入的新客戶端,它需要先初始化自己的本地BN參數,通常來自第一次下載的全局模型。

3、總結

所以,服務器聚合的過程并沒有中斷,它只是選擇性地聚合了模型的一部分參數(非BN層),而刻意避開了那些與本地數據分布強相關的參數(BN層)。

這樣做的好處是:

  • 解決了Non-IID問題:每個客戶端擁有個性化的BN參數,適應自己的數據分布,極大提升了模型性能。

  • 通信效率高:雖然BN參數也被傳輸了(因為客戶端上傳的是整個模型),但服務器端簡單的丟棄操作不會增加額外的通信負擔。整個通信量和標準的FedAvg是一樣的。

  • 實現簡單:只需在服務器聚合代碼中加幾行“跳過BN層”的判斷即可。

4、從幾個角度理解

角度一:糾正問題——FedBN的真正好處(“不聚合BN層”)

首先,再次明確FedBN標準做法(不聚合BN層)的好處,這能回答“為什么不能聚合BN層”:

  1. 保護數據特性,提升模型性能
    BN層的參數(γ, β)是數據的“指紋”,直接反映了本地數據的分布(均值、方差)。強行聚合(平均)來自不同分布的BN參數,會得到一個“四不像”的模糊指紋,這會破壞每個客戶端本地數據的特性,導致模型性能下降。不聚合,就是保護了這種特性。

  2. 幾乎零額外通信開銷
    雖然客戶端仍然上傳了BN參數(因為上傳的是整個模型),但服務器只是選擇性地忽略它們。通信量沒有增加,但帶來了巨大的性能提升,性價比極高。

  3. 隱式的隱私保護
    BN參數蘊含了數據分布信息。不共享這些參數,避免了潛在的數據分布隱私泄露,為隱私保護增加了一道防線。


角度二:思想實驗——“只聚合BN層”的假設性好處

現在,我們來探討您問題中隱含的另一種策略:如果客戶端只上傳BN層參數給服務器進行聚合,而不上傳其他參數。這種做法在標準聯邦學習中不常見,但有其獨特的、可能的應用場景和好處:

可能的好處:
  1. 極致的通信效率
    BN層的參數量通常遠小于卷積層或全連接層。例如,一個ResNet模型可能有數千萬個參數,但BN層的參數可能只占不到0.1%。只上傳BN層,通信開銷可以降低數個數量級,這對于帶寬極端受限的物聯網設備具有巨大吸引力。

  2. 專注于分布對齊
    這種策略的核心思想可能是:通過共享數據分布的“指紋”(BN參數)來嘗試對齊不同客戶端之間的數據分布。服務器聚合所有客戶端的BN參數,得到一個“平均的”數據分布,再下發給各客戶端。客戶端用這個全局分布來標準化自己的數據,理論上可能讓所有客戶端的數據“看起來”更像來自同一個分布,從而緩解Non-IID問題。

  3. 作為一種分布式數據監控工具
    服務器可以通過分析各個客戶端上傳的BN參數(γ和β向量),來監控所有邊緣設備上數據分布的總體情況、變化趨勢或發現異常分布,而無需訪問任何原始數據,保護了隱私。

巨大的挑戰和弊端( why it's not common ):
  1. 無法完成主要學習任務
    神經網絡的核心“知識”存儲在卷積層、全連接層的權重中。BN層只是一個“調節器”和“加速器”。只聚合BN層而不管主網絡權重,就像只統一了大家的筆記顏色,卻完全沒有一起撰寫文檔的核心內容。模型無法學會如何提取特征或進行分類/預測等主要任務。

  2. 可能無法有效對齊分布
    簡單地平均BN參數,未必能真正讓數據分布對齊。數據異構性非常復雜,平均一個“分布指紋”可能無法捕捉到真正需要校準的差異,甚至可能帶來負面效果。

  3. 訓練會發散
    如果沒有主權重的聚合,每個本地的模型會朝著完全不同的方向優化(因為他們的數據不同)。BN層的輕微調整根本無法阻止這些模型“分道揚鑣”,最終訓練過程會徹底失敗。

5、結論與對比

策略核心思想好處弊端
FedBN(標準)
(不聚合BN)
“部分個性化”:通用知識聚合,個性化分布調整。性能顯著提升,通信高效,實現簡單。無顯著弊端,是解決特征異構的標桿方法。
只聚合BN層
(假設性策略)
“嘗試分布對齊”:先統一分布指紋,希望能幫助本地訓練。通信開銷極低訓練會失敗。無法學習核心任務,是致命弊端
標準FedAvg
(聚合所有參數)
“完全平均”實現簡單,在IID數據上有效。在Non-IID數據上性能差。

6、缺點

1. 對某些類型的異構數據無效

FedBN主要解決的是特征分布偏移(Feature Distribution Shift)。例如:

  • 圖像數據:不同客戶端圖片的風格、光照、顏色、紋理等不同。(非常有效)

  • 傳感器數據:不同設備傳感器的校準、精度、單位略有不同。(非常有效)

但對于其他類型的Non-IID問題,FedBN可能效果有限甚至無效

  • 標簽分布偏移(Label Distribution Skew)
    如果每個客戶端只擁有某幾個類別的數據(例如,客戶端A只有貓和狗的圖片,客戶端B只有汽車和船的圖片),那么模型性能下降的主要原因是分類器偏差,而不是特征分布差異。FedBN保護了本地特征分布,但無法解決“全局分類器從未同時見過所有類別”這個根本問題。

  • 概念偏移(Concept Shift)
    同一個詞或特征在不同客戶端含義完全不同。例如,在客戶端A,“點擊”意味著購買意向;在客戶端B,“點擊”意味著誤操作。BN層參數無法解決這種語義層面的根本差異。

2. 可能帶來的模型“分化”風險

這是“個性化”策略的一個共性風險。

  • 客戶端過度特化:每個客戶端的BN層過于適應自己的小數據集,可能導致其學到的特征表示與全局模型的其他部分出現“隔閡”。雖然在本地的測試集上表現好,但模型泛化到未見過的客戶端或全新數據上的能力(泛化性)可能會減弱

  • 收斂問題:由于服務器端的全局BN參數幾乎不被使用(總是被客戶端本地參數覆蓋),且所有客戶端的基礎模型(非BN層)是基于不同的歸一化統計量進行更新的,從理論上看,整個聯邦學習過程的收斂性保證會比標準的FedAvg更復雜。

3. 對模型架構的依賴

FedBN的有效性高度依賴于模型中存在批量歸一化(BN)層

  • 對于不使用BN層的模型(例如,一些使用Layer Normalization或Group Normalization的NLP模型,或者一些輕量級模型),FedBN就失去了用武之地。

  • 如果模型中的BN層很少,或者BN層所包含的參數信息不足以捕捉數據分布的關鍵差異,那么FedBN的效果也會打折扣。

4. 隱私與安全的新考量

雖然不共享BN參數保護了數據分布隱私,但也可能引入新的安全風險:

  • BN參數作為隱私泄露的新渠道:理論上,一個惡意的服務器如果持續獲取某個客戶端的BN參數更新,可能通過逆向工程等手段推斷出該客戶端數據分布的某些統計特性,盡管這比直接拿到原始數據要困難得多。

  • 惡意客戶端的攻擊:一個惡意客戶端可以通過上傳精心構造的、異常的BN參數,來試圖破壞其他客戶端的訓練過程(因為其他客戶端會下載包含被污染的非BN層參數的全局模型)。雖然BN層本身不聚合,但惡意客戶端可以通過影響非BN層來間接作惡。

5. 對系統復雜性的輕微增加
  • 狀態管理:服務器需要能夠識別模型中的BN層并在聚合時跳過它們,這增加了代碼的復雜性。

  • 客戶端狀態:每個客戶端必須在本地持久化存儲自己的BN參數。如果客戶端意外掉線、數據丟失或是新客戶端加入,都需要有額外的機制來處理BN參數的初始化問題,這增加了系統設計的復雜度。


總結與對比

缺點描述
數據異構類型受限對標簽偏移、概念偏移等問題效果不佳。
模型分化風險可能降低全局模型的泛化能力。
模型架構依賴只適用于使用BN層的模型。
新的安全顧慮BN參數本身可能成為隱私泄露和攻擊的新載體。
系統復雜性需要管理客戶端的本地BN狀態和實現選擇性聚合。

結論:
FedBN是解決特征分布異構問題的一把利器,但它也像任何工具一樣,有其最佳的應用場景和局限性。在選擇使用FedBN時,需要仔細評估你的數據異構類型、模型架構以及對隱私、泛化性的要求,才能做出最合適的選擇。它通常不是一個孤立的解決方案,而是可以與其他針對標簽偏移、隱私增強的技術結合使用,共同構建更強大的聯邦學習系統。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/94137.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/94137.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/94137.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Qt中使用MySQL數據庫

一、MySQL 入門 核心概念 在 QT 中操作數據庫,主要使用兩個模塊: QSqlDatabase:代表一個數據庫連接。 QSqlQuery:用于執行 SQL 語句(如 SELECT, INSERT, UPDATE, DELETE)并處理結果。 環境準備 在編寫代碼之前,你需要確保系統已具備以下條件: 1. 安裝 MySQL 從 M…

Android - 統一資源標識符 Uri

一、概念URI(Uniform Resource Identifier)統一資源標識符,用于標識資源的字符串(如圖片、網頁、文件、應用等)。1.1 與 URL 的區別URL(統一資源定位符)是 URI(統一資源標識符&#…

開源 AR 眼鏡怎么選?OpenGlass ,OSSG,cheApR 分析推薦

開源項目橫評(看完你會知道自己屬于哪一類) 1)OpenGlass:最低成本跑通“能用的AI眼鏡” 賣點:用不到$25的通用元件,把任意普通眼鏡改造成“可黑客化”的智能眼鏡;能錄制、識別、翻譯、記人等。…

RAGFlow (一) 開發環境搭建

本文介紹如何在Windows上進行RAGFlow開發環境搭建 一. 環境準備 前提條件 CPU ≥ 4 核內存 ≥ 16 GB磁盤 ≥ 50 GBDocker ≥ 24.0.0 & Docker Compose ≥ v2.26.1 安裝Docker Desktop為wsl安裝Ubuntu 1.啟用 WSL2??(Windows Subsystem for Linux&#xff09…

k8sday13數據存儲(1.5/2)

目錄 二、高級核心存儲 1、PV 1.1配置文件 ①、訪問模式(accessModes) ②、回收策略(persistentVolumeReclaimPolicy) ③、存儲類別 ④、狀態(Status) 1.2創建測試 ①、準備NFS環境 ②、創建PV …

【力扣 Hot100】每日一題

D15 魯迅曾說,盡量每天都讓自己充實一點,你可以刷一個小時的短視頻,打一個小時的王者榮耀,但盡量再留一個小時出來讀一下書、教程、博客,讓自己的大腦保持活躍,而不是垃圾場。如果真的沒有事情做&#xff…

Sql server的行轉列

業務場景:有如下一張表,希望匯總成下面的查詢結果。 原始數據表 EmployeeTable:一個員工身兼多個崗位。 Employee Role Level 張三 工程師 3 張三 經理 5 李四 工程師 2 李四 主管…

某市-2025【網安·論道】決賽-misc1-翻轉-wp

題目給了個圖片以及一句提示 “斯蒂xx會幫助你” 直接就能想到 ste 開頭的那幾個工具,但是我比賽時候電腦什么ste開頭的工具都沒裝,只能回來做了。 └─$ exiftool x.jpeg ExifTool Version Number : 13.00 File Name : …

[系統架構設計師]大數據架構設計理論與實踐(十九)

[系統架構設計師]大數據架構設計理論與實踐(十九) 一.傳統數據處理系統的問題 1.傳統數據庫的數據過載問題 傳統應用的數據系統架構設計時,應用直接訪問數據庫系統。當用戶訪問量增加時,數據庫無 法支撐日益增長的用戶請求的負載&…

UniAD

1. 算法動機及開創性思路 1)UniAD算法簡介 算法全稱:Planning-oriented Autonomous Driving核心特點: 統一框架整合感知、預測、規劃模塊CVPR 2023最佳論文采用查詢(query)方式連接各模塊 名稱含義: Unified:統一多模塊…

ESP-NOW詳解(esp-idf)

esp-now目前主要支持單播和廣播,廣播地址為ff:ff:ff:ff:ff:ff,廣播可以向范圍內所有擁有esp-now接收的設備發送數據 注意事項,網絡模式是可以設置網絡mac地址的,在單播中,目標設備網絡模式選擇為ap時,mac地址會發生改…

`strlen` 字符串長度函數

1) 函數的概念與用途 strlen 是 C 語言標準庫中最基礎且使用最頻繁的字符串處理函數之一,它的名字來源于"string length"(字符串長度)。這個函數的功能非常明確:計算一個以空字符結尾的字符串的長度。 可以將 strlen 想…

TorchInductor - Introduction

PyTorch 2.x通過TorchDynamo通過Python Bytecode的動態變換實現了圖捕獲功能,需要搭配一個Compiler Backend完成圖編譯。 Pytorch嘗試集成了多個后端,并使用一個輕量級的autotuner來選擇最優的后端圖編譯結果。這個解決方案存在2個問題: 這…

Adobe Illustrator默認鍵盤快捷鍵

目錄 默認鍵盤快捷鍵 常用的快捷鍵 處理文檔 選擇工具 查看圖稿 處理所選對象 繪制 編輯形狀 處理實時上色組 處理對象 創建可變寬度點 處理文字 使用面板 動作面板 “畫筆”面板 “字符”和“段落”面板 “顏色”面板 “漸變”面板 “圖層”面板 “色板”…

「數據獲取」《中國能源統計年鑒》(1986-2023)(獲取方式看綁定的資源)

01、數據簡介一、年鑒基本定位與發展歷程《中國能源統計年鑒》作為一部權威性極強的能源領域資料典籍,始終以全面、精準反映中國能源建設推進、生產運行、消費態勢以及供需平衡狀況為核心使命。其編纂工作發軔于 1986 年,最初由國家統計局工業交通統計司…

SpringBoot3系列---【SpringBoot3集成sqlite】

SpringBoot3集成sqlite 1.引入pom.xml <dependencies><dependency><groupId>org.xerial</groupId><artifactId>sqlite-jdbc</artifactId><version>3.34.0</version></dependency><dependency><groupId>com.…

頭部 TTS 開源項目深度對比

語音合成&#xff08;TTS&#xff09;開源項目是技術研究與產業落地的核心支撐&#xff0c;不同項目因技術路線、設計目標差異&#xff0c;在語言覆蓋、合成自然度、可擴展性等方面表現懸殊。本文選取當前開源生態中應用最廣、影響力最大的五大 TTS 項目——MaryTTS、Coqui TTS…

可視化-模塊1-HTML-02

1-新建一個HTML文檔&#xff0c;命名為&#xff1a;week1-12-<h1>標簽<body><h1>這是標題 1</h1> <h2>這是標題 2</h2> <h3>這是標題 3</h3> <h4>這是標題 4</h4> <h5>這是標題 5</h5> <h6>這是…

搜索算法在實際場景中的應用

1. 數據庫系統 B+樹索引 應用場景:關系型數據庫(MySQL、PostgreSQL等)的索引實現 算法特點: 平衡多路搜索樹,優化磁盤I/O 支持范圍查詢和排序操作 典型實現: CREATE INDEX idx_name ON users(last_name); 哈希索引 應用場景:鍵值存儲(Redis、Memcached)、等值查詢 算…

基礎IO

目錄 一、進程和文件的關系 二、背景補充 三、打開文件接口 (1) FILE *fopen(const char* filename , const char *mode) &#xff08;2&#xff09;open 系統調用 文件描述符 open和fopen的關系 &#xff08;3&#xff09;size_t fwrite&#xff08;const void * ptr, …