第4章 横向联邦学习与FedAvg
原书范围:PDF第91~115页。
本章定位
- 在全书中的位置:三类联邦学习算法主线的第一章,从第3章数据并行过渡到数据自治条件下的联邦优化。
- 前置知识:SGD、数据并行、参数服务器、Non-IID、AHE与安全聚合。
- 后续基础:联邦优化、个性化FL、鲁棒聚合和联邦大模型训练都以FedAvg为重要基线。
- 核心问题:特征相同、样本分散时,如何用更多本地计算换更少通信,并限制服务器看到单个更新?
一句话总结
FedAvg每轮抽取部分客户端,在共同初始模型上执行若干本地SGD,再按数据量平均模型;它减少通信轮次,却在Non-IID和本地步数较大时产生客户端漂移。
学习目标
- 闭卷写出FedSGD与FedAvg伪代码。
- 解释梯度平均与模型平均何时等价。
- 说明
、 、 、 对训练的影响。 - 从目标函数解释Non-IID为何造成客户端漂移。
- 区分安全FedAvg、安全聚合和差分隐私。
- 分析参与方选择、压缩和异步训练的偏差。
Mermaid思维导图
一、本章要解决的问题
横向联邦的各方拥有相同的特征/标签结构,却拥有不同记录。集中训练可直接混合样本;联邦训练不能移动原始数据,还面对四个原书强调的优化特征:
- 数据通常Non-IID;
- 客户端数据量不平衡;
- 参与方数量可能非常大;
- 上行慢、连接不稳定且客户端会掉线。
由于通信通常比本地计算昂贵,核心策略是让每次通信承载更多本地计算结果。但本地训练越充分,局部目标之间的差异也越容易把模型拉向不同方向。
⭐ 核心结论
FedAvg的关键不是“平均”本身,而是把多步本地优化放在两次通信之间。它以本地计算换通信轮次;当各客户端局部目标差异大时,这个交换会同时放大客户端漂移。
二、核心概念与定义
| 概念 | 准确定义 | 通俗理解 | 与相近概念的区别 |
|---|---|---|---|
| 横向联邦学习(HFL) | 各方特征与标签空间相同,样本ID空间不同或重叠很少 | 同表头、不同记录 | 纵向联邦是相同用户的不同字段 |
| 联邦优化 | 在数据自治、Non-IID、部分参与和通信受限条件下优化全局目标 | 不能随意洗牌数据的分布式优化 | 数据中心通常可控制分片和节点 |
| FedSGD | 每轮选中客户端在本地全部数据上计算一次梯度,服务器聚合 | 一次本地梯度后通信 | FedAvg会做多个批次/多轮本地更新 |
| FedAvg | 客户端从同一全局参数出发做多步本地SGD,服务器按数据量平均模型 | 各自在本地走几步,再汇合 | 多步后模型平均通常不等于单次梯度平均 |
| 客户端漂移 | 本地更新因局部目标与全局目标不一致而偏向客户端自身最优方向 | 各客户端越走越向自己的目标偏离 | 不只是随机梯度噪声 |
| 安全聚合 | 服务器只得到选中客户端更新的聚合值,不见单个更新 | 只看总和 | 不限制聚合值/最终模型泄露,不提供投毒防御 |
| 梯度平均 | 服务器聚合客户端在同一参数点计算的梯度 | 平均“方向” | 单步同步时可与模型平均等价 |
| 模型平均 | 服务器聚合客户端本地更新后的参数 | 平均“位置” | 多步、本地优化器状态或非线性目标下差异明显 |
HFL的数据条件
令
这里的“相同”指参与共同任务所需的数据模式对齐;样本ID可完全不交或交集很小。
三、核心机制
3.1 客户-服务器架构
服务器初始化并下发全局模型
↓
本轮客户端在本地数据上计算梯度或更新参数
↓
客户端上传明文/掩码/密文更新
↓
服务器聚合梯度或模型
↓
服务器下发聚合结果
↓
重复至收敛、轮次或时间上限- 输入:客户端本地数据、初始模型、优化器设置。
- 角色:
个客户端和一个聚合服务器。 - 客户端状态:数据、模型副本、可选本地优化器状态。
- 服务器状态:全局模型、轮次与客户端选择状态。
- 交换信息:梯度、模型参数、损失统计或其受保护形式。
- 输出:可共享/部署的全局模型。
- 推理:通常可在单个客户端独立执行。

3.2 P2P架构
中心节点选择客户端、下发模型并聚合。编排和全局评估直接,但服务器是信任、隐私和可用性集中点。
| 维度 | 客户-服务器 | P2P |
|---|---|---|
| 协调 | 中央服务器 | 预定链或随机邻居 |
| 聚合 | 并行收集后聚合 | 参数沿网络传播 |
| 中心风险 | 有 | 无固定中心 |
| 主要代价 | 中心信任、带宽、单点 | 拓扑、顺序、一致性、容错 |

3.3 全局模型评估
各客户端在本地测试集计算
不能直接平均各客户端召回率,否则小测试集与大测试集权重相同。即便聚合计数正确,平均性能仍不能替代最差客户端、分位数和群体指标。
四、关键公式
4.1 有限和目标
原书式(4-2):
是 维模型参数, 是总样本数。 - 对监督学习,
是样本 的损失。 - 它优化所有样本的平均风险。
令第
是客户端 的局部目标, 是其样本权重。 - IID时,
可望近似 ;Non-IID时, 可能系统性偏离 。 - 数据量加权优化的是样本平均目标,不等于客户端公平目标。
4.2 梯度平均
客户端在共同参数
其中
4.3 模型平均
客户端本地一步更新,原书式(4-5):
服务器按原书式(4-6)聚合:
将式(4-5)代入式(4-6)即可得到式(4-4),因此同一初始点、一步相同学习率的本地更新下二者等价。多步更新后,各客户端梯度在不同参数点计算,通常不再等价。
4.4 参数影响
| 参数 | 原书含义 | 增大时的主要收益 | 增大时的主要风险 |
|---|---|---|---|
| 每轮参与客户端比例 | 聚合覆盖更多数据、方差可能降低 | 通信和慢节点等待增加 | |
| 每轮本地训练遍数/步骤控制量 | 单轮学习更多、可能减少通信轮次 | Non-IID漂移、过拟合和计算增加 | |
| 本地mini-batch大小 | 梯度方差降低、并行效率可能提高 | 每步算力/内存增加;更新次数减少 | |
| 学习率 | 加快局部进展 | 振荡、发散和漂移放大 |
原书给出的每轮本地批次更新数为:
实际实现需对非整除、最后一个批次及
五、算法卡:FedAvg
- 解决的问题:在通信昂贵的HFL中,通过多步本地训练减少通信轮次。
- 适用的数据划分:特征/标签空间一致、样本分散。
- 参与角色:聚合服务器与
个客户端。 - 客户端保存的状态:
、本地模型、可选优化器状态。 - 服务端保存的状态:全局模型
、客户端采样与轮次状态。 - 每轮交换的信息:下行
;上行本地模型 或更新差值。 - 本地更新:从
出发,在mini-batch上做 轮/若干步SGD。 - 服务端更新:按
对选中客户端模型加权平均。 - 核心公式:
与 。 - 终止条件:损失/指标收敛、最大通信轮数或时间上限。
- 计算复杂度:客户端
每轮约 , 为单样本一次前后向的模型相关成本。 - 通信复杂度:若模型维度为
、选中 个客户端,每轮上行 、服务器下行按单播计 ;广播能力会改变物理传输成本。 - 隐私机制:原始FedAvg无正式隐私;可组合安全聚合、AHE或DP。
- 信任与攻击者假设:原书主要考虑诚实客户端和半诚实服务器;原始算法不防恶意客户端。
- 主要优势:简单、通用、通信轮数较FedSGD少。
- 主要局限:Non-IID漂移、客户端选择偏差、慢节点、更新泄露、投毒。
- 可能失效的条件:局部目标差异大、
或 过大、模型初始化/结构不一致、选择偏差严重。 - 应该比较的基线:集中训练、Local-only、FedSGD、FedAvg不同本地步数;后续可加FedProx/SCAFFOLD等。
🔍 展开查看:FedAvg伪代码
服务器初始化 w0
for t = 0, 1, ...:
采样客户端集合 Ct,|Ct|约为max(rho*K, 1)
并行发送 wt
for k in Ct:
w <- wt
重复S个本地epoch/阶段:
将Dk划分为大小M的mini-batch并打乱
for batch b:
w <- w - eta * grad L_b(w)
上传wk <- w
wt+1 <- sum_{k in Ct} alpha_k * wk
其中alpha_k通常按本轮选中客户端样本数归一化
若达到停止条件则退出原书算法4-1写成对
六、FedSGD与FedAvg
设置
| 维度 | FedSGD | FedAvg |
|---|---|---|
| 每轮本地工作 | 一次全本地梯度 | 多批次/多步SGD |
| 上传内容 | 梯度 | 模型或更新差值 |
| 通信轮数 | 通常更多 | 通常更少 |
| 客户端漂移 | 较弱 | 随本地步数和异质性增强 |
| 对本地算力要求 | 较低 | 较高 |
💡 通俗理解
若每个客户端的局部损失像朝不同方向倾斜的山谷,FedSGD只在同一个出发点各看一次坡度;FedAvg让各客户端沿自己的山谷走多步再平均位置。走得越久,位置分歧通常越大。
七、安全FedAvg与隐私边界
AHE安全FedAvg
客户端本地更新后加密
其中
| 机制 | 保护对象 | 服务器看到 | 不能解决 | 代价 |
|---|---|---|---|---|
| AHE模型平均 | 密文中的客户端模型 | 密文和允许的聚合输出 | 恶意更新、最终模型泄露、DP | 加解密、密文膨胀、密钥管理 |
| 安全聚合 | 单个客户端更新 | 更新总和/均值 | 聚合结果泄露、投毒、最终模型隐私 | 密钥协商、掩码、掉线恢复 |
| 中央/分布式DP | 样本或用户影响 | 带噪聚合/模型 | 密码学机密性、任意投毒 | 裁剪、噪声、效用与预算 |
⚡ 隐私边界
安全FedAvg不是“FedAvg天然安全”。原始FedAvg上传明文更新;安全聚合只隐藏单个更新;差分隐私才限制单条样本或一个用户对输出的影响。三者保护对象和保证不同。
八、关键假设
| 假设类型 | 具体假设 | 假设不成立时的后果 |
|---|---|---|
| 数据假设 | 特征/标签接口一致;样本可映射到共同任务 | 模型参数无法直接聚合 |
| 数据假设 | 谎报数据量或选择偏差扭曲更新 | |
| 系统假设 | 每轮有足够客户端在线且完成上传 | 同步轮次阻塞,安全聚合可能低于阈值 |
| 模型假设 | 客户端从相同参数和兼容优化设置出发 | 参数平均失去语义 |
| 信任假设 | 原书主要假设客户端诚实、服务器半诚实 | 恶意客户端可投毒、后门或伪报指标 |
| 攻击者假设 | AHE/安全聚合的密钥与串谋阈值成立 | 单个更新可能被恢复 |
九、代价与权衡
| 维度 | 收益 | 代价或风险 |
|---|---|---|
| 模型效果 | 融合更多样本 | Non-IID与选择偏差导致漂移和群体损失 |
| 本地计算 | 多算少通信 | 能耗、热量和低端设备负担 |
| 通信成本 | 本地多步减少轮数 | 每轮仍上传 |
| 存储成本 | 本地保留数据 | 模型与优化器状态占设备空间 |
| 隐私保证 | 可叠加AHE/安全聚合/DP | 隐私不是原始FedAvg属性 |
| 安全与鲁棒性 | 隐藏更新降低窥探 | 隐藏后更难逐客户端检测投毒 |
| 客户端公平性 | 数据量加权优化样本平均 | 大数据方主导,尾部客户端被牺牲 |
十、局限与开放问题
原书明确指出
- 无法查看分布式数据使超参数和优化器选择困难;
- 通信开销随模型、客户端和轮次增长;
- 需要激励机构和移动用户参与;
- 参与方可谎报数据量或测试结果;
- 掉线、动态加入和不同可靠度需要更灵活机制;
- 一般非凸目标下模型平均可能得到差模型或不收敛。
根据假设推导
- 基于速度的客户端选择会把系统效率问题变成统计抽样偏差;
- 按样本量加权不保证客户端公平;
- 安全聚合隐藏更新后,鲁棒聚合所需的逐客户端可见性受到限制;
- 全局混淆矩阵仍可能泄露小客户端的标签分布,应设阈值或保护统计量。
十一、2020年后的扩展阅读
⚡ 时效性说明
本节是后续研究线索,不是原书作者在2020年书中的结论。
| 后续方法 | 主要针对的FedAvg问题 | 核心机制(概括) |
|---|---|---|
| FedProx | 异质性下本地更新偏离 | 局部目标加入接近全局参数的近端项 |
| SCAFFOLD | 客户端漂移 | 用服务器/客户端控制变量校正更新方向 |
| FedNova | 本地步数不同导致更新尺度不一 | 对局部更新做归一化 |
| FedOpt | 服务器只做平均、优化能力有限 | 把聚合更新交给服务器优化器 |
| FedDyn | 局部与全局目标不一致 | 动态正则项修正局部目标 |
| FedBN | 特征分布偏移 | 批归一化统计/参数保留本地 |
| 个性化FL | 单一模型不适合所有客户端 | 全局共享与本地适配并存 |
不能仅凭名称假定某后续方法在所有Non-IID、掉线、安全或公平条件下都优于FedAvg,必须在相同参与率、计算量和调参预算下验证。
十二、图表回查
| 原书图/表 | PDF页码 | 应记住的关系 |
|---|---|---|
| 图4-1 | 95 | 客户端上传受保护梯度,服务器安全聚合并下发 |
| 表4-1 | 95附近 | 梯度平均与模型平均的对象及条件 |
| 图4-2 | 97 | P2P循环或随机传播,无固定服务器 |
| 算法4-1 | 105 | FedAvg服务器循环与客户端多步更新 |
| 算法4-2 | 108 | 本地更新后AHE加密,密文聚合 |
十三、章节关系
第3章数据并行
↓
第4章HFL与FedAvg
├─ 第2章HE/MPC/DP → 安全FedAvg
├─ 第7章贡献与激励 → 客户端参与
├─ 第8章CV/NLP/推荐 → 应用算法骨架
└─ 2020年后 → 漂移校正、服务器优化、个性化十四、闭卷回忆问题
- HFL的数据空间关系是什么?
- 从有限和目标推导客户端加权目标。
- 闭卷写出FedAvg的一轮服务器端和客户端步骤。
- FedSGD与FedAvg的差别是什么?
- 梯度平均和模型平均何时等价?
- 为什么增大
既可能减少通信又可能恶化收敛? - 安全聚合为什么不等于差分隐私?
- 为什么基于速度选客户端可能损害公平?
🔍 参考答案
- 特征和标签空间一致,样本ID不同或重叠很少。
- 将总样本按客户端索引集分组,得到
。 - 采样并下发
;客户端多步本地SGD并上传;服务器按样本权重平均得到 。 - FedSGD在共同参数点计算一次全本地梯度;FedAvg执行多步本地更新后平均模型。
- 客户端从同一参数出发,只做一步、学习率一致且服务器采用相同权重时。
- 本地多算让每轮进展增加,但局部目标不同会让轨迹分叉。
- 前者隐藏单个更新;后者限制单个样本/用户对输出分布的影响。
- 设备速度可能与地区、群体和数据分布相关,使抽样不再代表目标总体。
从教材到科研
现有方法隐含了哪些假设?
- 客户端采样近似代表目标总体;
可验证且样本量加权符合业务目标; - 本地计算步数的收益大于漂移代价;
- 更新保护与异常检测可以同时实现;
- 单一全局模型是所有客户端可接受的输出。
怎样构造让这些假设失效的实验?
- 用Dirichlet标签划分逐步增强Non-IID;
- 让慢客户端集中持有少数类,比较随机与速度优先选择;
- 网格改变
、 和参与率 ; - 设置客户端数据量长尾并比较样本加权与客户端均匀加权;
- 同时加入掉线、安全聚合和模型投毒;
- 报告平均、10%分位和最差客户端性能。
可以提出哪些可证伪的研究问题?
在设备速度与标签分布相关的Non-IID环境中,速度优先客户端选择是否会在相同墙钟时间内提高平均精度,却显著降低最差十分位客户端精度?
- 现有方法:FedAvg加速度优先选择。
- 失效条件:慢客户端持有稀有标签。
- 可能机制:系统选择偏差改变有效训练分布。
- 可观察结果:参与频次、有效标签分布、更新方向、平均/尾部精度。
- 验证指标:墙钟时间、通信量、平均精度、最差十分位精度和群体差距。
