4.1 联邦学习 (Federated Learning, FL)
本节摘要:数据不出域能联合训练模型吗?联邦学习让这成为可能。本节讲清楚 FL 原理(数据不动模型动)、横向/纵向/迁移联邦、FL+DP+安全聚合、工程挑战。读完你能判断项目该不该用 FL。
一、FL 的核心思想
联邦学习工作流程

联邦学习(Federated Learning, FL):多方各持数据,联合训练模型,数据不出本地——只交换模型参数/梯度,不交换原始数据。
Google 2016 提出(Federated Learning for Mobile Keyboard),手机输入法在用户设备训练模型,不上传输入历史,只上传模型更新。
核心保证:
- 数据不出域:原始数据留在本地,只传模型更新。
- 联合训练:多方模型更新聚合,得全局模型。
- 隐私保护:聚合方看不到个体数据(但要看个体梯度——需额外保护)。
应用场景:
- 移动端:输入法预测、相册分类、个性化推荐——数据在手机,不上传。
- 跨组织:银行联合风控、医院联合诊断、广告跨平台归因——数据在各组织,不交换。
- 物联网:智能设备联合学习,数据在边缘。
二、FL 的工作流程
FedAvg 算法(McMahan 2017,FL 基础):
- 初始化:服务器初始化全局模型 w₀。
- 分发:服务器把 wₜ 发给选中的客户端子集。
- 本地训练:每客户端用本地数据训练几步,得本地更新 Δwᵢ。
- 上传:客户端上传 Δwᵢ 给服务器。
- 聚合:服务器平均更新:wₜ₊₁ = wₜ + Σ(nᵢ/n)·Δwᵢ。
- 重复:直到收敛。
关键点:
- 客户端选择:每轮选部分客户端(通信和效率)。
- 本地训练步数:本地训练多步减少通信轮次,但可能发散。
- 聚合权重:按数据量加权(nᵢ/n)。
三、FL 的类型
按数据分布分:
1. 横向联邦(Horizontal FL)
- 各方数据特征相同,样本不同——如多家银行各持自己客户的信用数据(特征相同,客户不同)。
- 联合方式:FedAvg 直接聚合模型。
- 最简单,最常见。
2. 纵向联邦(Vertical FL)
- 各方数据样本相同,特征不同——如银行和电商,同客户但银行有信用特征、电商有消费特征。
- 联合方式:要对齐样本(隐私集合求交 PSI),再纵向联合训练。
- 复杂,需 MPC/HE 保护特征。
3. 迁移联邦(Federated Transfer Learning)
- 各方数据和样本都不同——如不同语言的模型迁移。
- 用迁移学习思想,跨域联邦。
四、FL 的隐私威胁
FL"数据不出域"不等于完全隐私——梯度本身可能泄露:
1. 梯度反转攻击(Gradient Inversion/Leakage)
- 服务器拿到客户端梯度,反推客户端数据。
- 深层网络难,浅层/图像易——如 BatchNorm 层泄露统计,输入梯度可重构图像。
2. 成员推断攻击
3. 属性推断攻击
4. 恶意服务器
5. 恶意客户端
- 客户端投毒(数据投毒/模型投毒)——破坏全局模型或植入后门。
所以 FL 要配额外保护——DP、安全聚合、MPC。
五、FL + 差分隐私
客户端 DP(本地 DP):
- 客户端上传前对梯度加噪。
- 服务器聚合去噪。
- 优点:不信任服务器。
- 缺点:噪声大(每客户端加噪),精度损失。
服务器 DP(中心 DP):
- 客户端上传真实梯度,服务器聚合后加噪。
- 优点:噪声小(一次加噪),精度高。
- 缺点:要信任服务器(看到真实梯度)。
DP-SGD 联邦:
- 每客户端 DP-SGD(梯度裁剪+加噪),聚合。
- 平衡——每客户端小噪声,聚合后总噪声可控。
六、FL + 安全聚合
安全聚合(Secure Aggregation):
- 客户端用秘密共享/MPC,让服务器只看到聚合和,看不到个体梯度。
- 服务器学到 ΣΔwᵢ,学不到单个 Δwᵢ。
- 防"梯度反转"——服务器看不到个体。
实现:
- 秘密共享:每客户端把梯度 Additive 共享给其他客户端,聚合时各加份额得总和。
- 掩码:客户端 pairwise 加掩码,聚合时掩码抵消,服务器只看到总和。
- MPC:用 MPC 协议聚合。
Google 的 Secure Aggregation protocol 是代表——客户端 pairwise 掩码,服务器只看到总和。
七、FL + TEE
服务器用 TEE 聚合——客户端发加密梯度到 TEE,TEE 内解密聚合,输出聚合和。
- 服务器看不到个体梯度(TEE 隔离)。
- 性能好(TEE 接近原生)。
- 信任硬件厂商。
八、FL 的工程挑战
1. 异构性:客户端数据非独立同分布(Non-IID)——数据分布差异大,模型难收敛或偏差。FedProx、SCAFFOLD 等改进。
2. 通信:客户端多、网络慢、带宽受限。压缩梯度(量化、稀疏)、减少轮次是重点。
3. 客户端可用性:客户端可能离线、慢、不可靠。要容错聚合(即使部分客户端没响应也能聚合)。
4. 客户端选择:选哪些客户端、多少客户端,影响收敛和公平。
5. 恶意客户端:投毒检测、鲁棒聚合(如 Krum、Trimmed Mean)防投毒。
6. 公平性:FL 全局模型可能偏向数据多的客户端,对数据少的客户端不公平。
7. 调试监控:数据分散,难调试、难监控训练。
九、FL 的工程落地
1. 框架:
- TensorFlow Federated(Google)。
- PySyft(OpenMined,开源)。
- FATE(Webank,微众银行,纵向联邦强)。
- Flower(轻量,移动端友好)。
- NVIDIA FLARE(企业级)。
- FedML(移动端/边缘)。
2. 应用案例:
- Google Gboard:手机输入法联邦学习,不上传输入历史。
- Apple 相册:联邦训练相册分类,照片不上云。
- 百度输入法:联邦学习改进预测。
- 微众银行 FATE:银行联合风控。
- OWKIN:医院联合药物发现。
3. 部署要点:
- 选类型:横向简单,纵向需 PSI+MPC,迁移复杂。
- 配隐私:DP(防推断)+ 安全聚合(防梯度反转)+ TEE(性能)。
- 处理 Non-IID:用 FedProx/SCAFFOLD,调本地步数。
- 通信优化:梯度量化、稀疏、异步。
- 防投毒:鲁棒聚合、客户端信誉。
- 公平性:监控各客户端性能,调聚合权重。
十、FL 在 PETs 中的定位
1. 数据不出域场景:FL 是"数据不动模型动"的首选——移动端、跨组织、物联网。
2. 和 HE/MPC 互补:纵向联邦用 MPC/HE 对齐和训练,横向用安全聚合。
3. 不是银弹:FL 有 Non-IID、通信、投毒、公平性挑战——适合数据分散且需联合的场景,不适合数据集中或简单任务。
⚠️ 常见误读:以为"FL 数据不出域就完全隐私"。梯度本身可能泄露(梯度反转攻击),要配 DP/安全聚合。FL 是框架,隐私要额外加。
💡 关键直觉:FL 让多方数据不出本地联合训练,只交换模型更新。FedAvg 是基础(分发→本地训练→上传→聚合)。类型横向(特征同样本异,简单)、纵向(样本同特征异,需 PSI+MPC)、迁移(跨域)。威胁有梯度反转/成员推断/投毒。配 DP(防推断)、安全聚合(防梯度反转)、MPC/TEE(性能)。挑战是 Non-IID、通信、投毒、公平性。框架 TFF/PySyft/FATE/Flower。是数据不出域首选,和 HE/MPC 互补,不是银弹。
本章回顾
- FL 核心:多方数据不出本地,联合训练只交换模型更新,数据不出域。
- FedAvg:服务器初始化→分发模型→客户端本地训练→上传更新→加权平均聚合→重复。
- 类型:横向(特征同样本异,FedAvg)、纵向(样本同特征异,PSI+MPC/HE)、迁移(跨域)。
- 威胁:梯度反转(重构数据)、成员推断、属性推断、恶意服务器/客户端投毒。
- FL+DP:客户端 DP(本地加噪,不信任服务器,噪声大)、服务器 DP(中心加噪,信任,噪声小)、DP-SGD 联邦。
- FL+安全聚合:秘密共享/掩码/MPC 让服务器只看聚合和,不看个体梯度,防梯度反转。
- FL+TEE:服务器 TEE 聚合,性能好但信任硬件。
- 挑战:Non-IID(FedProx/SCAFFOLD)、通信(量化/稀疏)、客户端可用性(容错)、客户端选择、恶意客户端(鲁棒聚合 Krum/Trimmed Mean)、公平性、调试监控。
- 框架:TFF、PySyft、FATE(纵向强)、Flower(移动端)、NVIDIA FLARE、FedML。
- 案例:Google Gboard、Apple 相册、百度输入法、微众 FATE、OWKIN。
- 定位:数据不出域首选(移动端/跨组织/物联网)、和 HE/MPC 互补、不是银弹(Non-IID/通信/投毒/公平)。