面向联邦学习非独立同分布数据的多任务自编码器样本选择方法 Sample Selection Using Multi-Task Autoencoders in Federated Learning with Non-IID Data
用多任务自编码器在联邦学习客户端过滤噪声样本,提升非IID下的训练精度。
前置知识
联邦学习 (Federated Learning)
一种分布式机器学习范式,N 个客户端在不共享原始数据的前提下,仅通过交换模型参数或梯度在中心服务器协同训练全局模型。典型算法 FedAvg 在每一轮执行「客户端选择→广播→本地更新→聚合→全局更新」五步流程,原始数据始终保留在客户端本地,从而保护隐私。
本文的核心场景就是联邦学习:所有样本选择策略都要在「看不见客户端数据」的约束下运行,因此读者必须先理解为什么无法在中心端做集中式清洗。
非独立同分布 (Non-IID) 数据
在 FL 中,每个客户端的数据由其本地使用模式决定,类标签、样本数量、特征分布都可能差异巨大,违反传统机器学习中样本独立同分布的假设。这种统计异质性会导致客户端本地模型漂移(client drift)、全局收敛变慢甚至训练失败。
本文在 50/100/200/1000 个客户端的非IID 划分下做实验,结论高度依赖客户端数量,因此非IID 是理解全部实验结果的前提。
自编码器 (Autoencoder) 与多任务学习
自编码器由编码器 $f: x \to z$ 与解码器 $g: z \to \hat{x}$ 组成,通过最小化重建误差 $\mathcal{L}_{rec}(x,\hat{x})$ 让 $z$ 捕捉输入的低维流形。本文把它扩展为多任务自编码器 (MTAE):编码器同时供解码器重建和分类器 $h: z \to \hat{y}$ 使用,总损失为 $\mathcal{L} = \lambda_{rec}\mathcal{L}_{rec} + \lambda_{cls}\mathcal{L}_{cls}$。
MTAE 同时给出 MSE 重建损失与 CE 分类损失,让本文既能识别「像素层面的脏样本」也能识别「标签层面的脏样本」,是所有样本选择方法的信号源。
无监督异常检测 (OCSVM, Isolation Forest, Deep SVDD)
One-Class SVM 在特征空间中学习一个包围正常样本的超平面;Isolation Forest 通过随机切分把异常点「快速孤立」;Deep SVDD 用神经网络把样本映射到以类中心为球心的超球内,偏离球心的视为异常。三者都是无监督的,适合 FL 客户端没有标签监督的场景。
本文的两种选择路线(损失空间、特征空间)都基于这三种检测器,复现时必须熟悉它们在 scikit-learn / PyTorch 中的接口与超参含义。
Shapley Value 与数据估值
源自合作博弈论,Shapley Value 通过遍历所有子集边际贡献的均值来分配每个参与者的收益,被用于衡量每个样本或每个客户端对模型性能的贡献。其优点是理论严谨,缺点是计算复杂度指数级,需要反复重训模型。
本文在 Related Works 中专门讨论了 SV 类方法(Federated SV、Leave-one-out SV),并以此为对比基线说明「损失/特征路线」的实用性,读者需要知道 SV 为什么在 FL 中难以落地。
研究动机
联邦学习虽然通过「数据不出本地」保护了隐私,却在客户端层面引入了新的数据质量问题:传感器故障、人为误标注、对抗投毒都会让本地数据集混入噪声或异常样本,进而拖慢全局收敛甚至让模型偏离正确解。已有研究主要依赖 Shapley Value 做数据估值(理论严谨但复杂度爆炸,需要反复重训模型,难以在算力受限的客户端落地),或简单使用梯度范数(时间空间开销比单次前向的损失更高),或仅依据样本数量(完全忽略数据质量)。同时,已有自动编码器类方法要么只在全连接网络上验证、要么把客户端聚成少量社区,对 50–1000 客户端的非IID 场景缺乏可扩展性。
本文的目标是本文的目标是设计一套完全在 FL 框架下运行、不依赖任何预训练模型或预处理步骤的样本选择方法,把客户端上的恶意、噪声或冗余样本在本地训练前过滤掉,从而提高全局模型精度并加速收敛。核心抓手是用一个多任务自编码器同时给出 MSE 重建损失与 CE 分类损失,并把它们送入无监督异常检测器做判断;进一步,本文希望在 50–1000 客户端的多种非IID 划分与 40% 高噪声下系统验证三种检测器(OCSVM、IF、AT)与一种联邦 SVDD 正则的效果,量化每种方法在不同数据集、噪声类型、客户端规模下的精度增益与稳定性,为「如何在不破坏隐私的前提下提高 FL 对脏数据的鲁棒性」提供一个可直接复现的基线方案。
与已有工作不同的是,本文的独特切入角度是把「样本贡献估计」拆成损失空间与特征空间两条互补路线:损失空间通过单次前向的加权 (MSE, CE) 二维点云识别异常(擅长捕捉像素级与标签级噪声),特征空间则借助 MTAE 编码器的 embedding 做 OCSVM/IF(擅长捕捉结构性异常)。更关键的是,本文首次把单类 Deep SVDD 损失扩展为多类别联邦版本——服务器在公共测试集上算出每个类的中心 $\mu_i$ 与半径 $R_i$,客户端只回传样本到类中心的 $L_2$ 距离而非原始 embedding,从而在不破坏隐私的前提下把 SVDD 的超球约束在非IID 多客户端场景下落地。这与 Nardi 等人「把客户端聚成社区再共享自编码器」的路线形成鲜明对比:本文坚持客户端之间不共享模型/数据,检测器全部由中心服务器集中训练后下发。
核心方法
方法整体思路可以一句话概括为「双损失信号 + 三种无监督检测器 + 一个联邦 SVDD 正则」。直觉上,异常样本会让分类器不确定(CE 高)、让重建器失真(MSE 高),或者在编码器 embedding 里跑到离类中心很远的位置;本文把这三类信号分别在 2D 损失平面与高维特征平面上喂给 OCSVM、Isolation Forest 或自适应阈值 AT,由中心服务器统一训练检测器后再下发给客户端。具体路线上,先为 MNIST/CIFAR10 分别设计两个 MTAE 架构(编码器-分类器-解码器三头),用 $\mathcal{L}=\lambda_{rec}\mathcal{L}_{rec}+\lambda_{cls}\mathcal{L}_{cls}$ 联合训练;训练到 400 轮后启动损失空间样本选择,500 轮加入联邦多类 SVDD 正则,600 轮再启动特征空间样本选择;每隔 5 轮在服务器侧重新拟合检测器并下发给客户端。
与已有方法的本质区别在于「单信号 → 双信号」的转变。传统 FL 样本贡献估计只用梯度范数或单一损失,丢失了标签噪声与像素噪声的区分度;而本文用 MTAE 同时输出 MSE 和 CE 两路损失,并把它们送入 OCSVM/IF,让同一个样本在 2D 损失空间里的异常得分由「重建失败 + 分类失败」共同决定,从而把误标注(CE 高但 MSE 正常)和结构损坏(CE 正常但 MSE 高,或两者都高)都识别出来。此外,把 Deep SVDD 改造成多类联邦版本——服务器用公开测试集算每个类的中心 $\mu_i$ 与半径 $R_i$,客户端只回传 $L_2$ 距离——是该方向此前没有的工作:在 Nardi 等人的去中心化自编码器路线中,检测器只能在社区内共享;在 Li 等人的 FedBalancer 路线中,阈值只由单一损失构造;而本文首次让超球约束在多个类上同时生效,并通过中心-客户端双向通信维护半径。
方法步骤详情
方法分四步执行。第一步是构建 MTAE:MNIST 用 2 层 CNN 编码器(32→64 通道、5×5 核)+ 512 维 embedding + 单 FC 分类头 + 2 层转置 CNN 解码器;CIFAR10 用 4 层 CNN 编码器(64→128→128→256,3×3 核、步长 2)+ 1024 维 embedding + 两层 FC 分类头 + 4 层转置 CNN 解码器。第二步是联合训练:每轮 FedAvg 聚合前先在本地跑 5 个 epoch、batch=64 的 SGD(lr=0.1, weight decay=0.001),损失为 $L=1\cdot L_{MSE}+0.05\cdot L_{CE}$,$\lambda_{cls}$ 故意压低以避免重建图像模糊。第三步是样本选择:当 $t \ge t_s$(损失法 $t_s=400$,特征法 $t_s=600$)后,客户端对每个样本计算 CE 和 MSE,按权重聚合成 2D 点(或直接取出 embedding),再调用服务器下发的 OCSVM/IF 判定是否为离群点并剔除;其中 AT 法则用服务器线性插值出的全局阈值 $l_t^{R+1}=\min(L_{Low}^R)+(\overline{L_{High}^R}-\min(L_{Low}^R))\cdot ltr$ 划界,并按概率 $p=0.75$ 随机保留高损失样本。第四步是联邦 SVDD 正则:从第 500 轮起,服务器用测试集算出每个类的中心 $\mu_i$ 和半径 $R_i$ 后下发,客户端在本地损失中加上 $\mathcal{L}_{reg}=\frac{1}{k}\sum_i R_i^2+\frac{1}{k}\sum_i\frac{1}{n_i}\sum_j \mathbf{1}_{[y_j=i]}\max\{0,\|f(x_j)-\mu_i\|^2-R_i^2\}$(权重 $\lambda_{reg}=10^{-5}$),训练结束后把每个样本到类中心的 $L_2$ 距离 $[d_j^{L2}]$ 回传,服务器用分位数 $q=1-\nu$ 更新半径。
技术新颖性
技术新颖性主要体现在三个层面。其一是首次把 MTAE 引入联邦样本选择任务,让 MSE 与 CE 同时成为样本贡献的指示器,弥补了单一损失信息量不足的短板——在 CIFAR10 + 闭集噪声实验中,正是「双信号」让 OCSVM 在 50 客户端上拿到 +7.02% 的精度提升,而 AT 在 CIFAR10 上的乏力恰恰说明它只用单一加权损失就会失效。其二是把 FedBalancer 的自适应阈值思想迁移并改造(去掉 deadline control、把采样策略换成 $p\cdot|OT|$ 比例),让阈值更新只依赖各客户端最低/最高损失的元数据,避免上传原始梯度;同时引入 loss step size $lss=0.1$ 与 ControlLtr 函数,让阈值在 $t_w=5$ 轮的窗口内根据近期/远期 loss 之和自适应增减,避免一刀切。其三是把单类 Deep SVDD 损失扩展为多类联邦版本,使其能在非IID 多客户端场景下同时维护 $k$ 个超球,并通过 server-client 之间的「中心广播—距离回传」两步避免泄露原始数据;这一设计在 CIFAR10 + ImageNet32 上让 OCSVM 在 200 客户端再获 +0.99%,在 CIFAR10 + SVHN 上让 IF 在 100 客户端获 +0.80%,验证了正则项对特征空间选择的实际价值。
实验结果
实验在 MNIST 与 CIFAR10 上以 1000/200/100/50 四档客户端、每轮选中 10% 客户端、注入 40% 噪声的方式系统验证。基线(无样本选择)下,CIFAR10 加 40% 闭集噪声的精度从 1000 客户端的 39.74% 到 50 客户端的 38.59%,引入 OCSVM 后跃升到 44.94%~45.61%,最高 +7.02%(50 客户端);MNIST 加 40% 闭集噪声下,AT 方法在 100 客户端上把基线 88.36% 拉到 90.19%(+1.83%),是 MNIST 的最大收益。开放集噪声中,EMNIST 注入的 MNIST 实验里 OCSVM 最稳(最多 +1.12%),IF 因域相似而失效;ImageNet32 注入 CIFAR10 时 OCSVM 和 IF 都普遍有效,IF 在 200 客户端达到最大 +3.61%。宏平均 F1 指标进一步验证了 OCSVM 的稳定性——CIFAR10 闭集噪声下精度 +5.55%、F1 +5.64%(1000 客户端)。特征空间路线整体不如损失空间,但在加入联邦 SVDD 后 CIFAR10 上仍能给出 +0.99%(OCSVM, 200 客户端, ImageNet32)和 +0.80%(IF, 100 客户端)的增益,证明 SVDD 正则在复杂数据集上确实能拉大类间距离。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| CIFAR10 + 40% 闭集噪声(损失法 OCSVM) | 测试精度(Best Round) | 45.61%(50 客户端),44.94%(1000 客户端) | 38.59%(50 客户端),39.74%(1000 客户端) | +7.02%(50 客户端),+5.20%(1000 客户端) |
| CIFAR10 + 40% 闭集噪声(损失法 IF) | 测试精度(Best Round) | 45.39%(1000 客户端),45.24%(50 客户端) | 39.74%(1000 客户端),38.59%(50 客户端) | +5.65%(1000 客户端),+6.65%(50 客户端) |
| MNIST + 40% 闭集噪声(损失法 AT) | 测试精度(Best Round) | 91.75%(1000 客户端),90.19%(100 客户端) | 90.14%(1000 客户端),88.36%(100 客户端) | +1.61%(1000 客户端),+1.83%(100 客户端) |
| MNIST + 40% EMNIST 开放噪声(损失法 OCSVM) | 测试精度(Best Round) | 95.65%(50 客户端),95.06%(100 客户端) | 94.53%(50 客户端),94.48%(100 客户端) | +1.12%(50 客户端),+0.58%(100 客户端) |
| CIFAR10 + 40% ImageNet32 开放噪声(特征法 OCSVM + 联邦 SVDD) | 测试精度(Best Round) | 54.19%(200 客户端),47.64%(1000 客户端) | 53.60%(200 客户端),47.24%(1000 客户端) | +0.59%(200 客户端),+0.40%(1000 客户端) |
| CIFAR10 + 40% ImageNet32 开放噪声(特征法 OCSVM + 联邦 SVDD) | 宏平均 F1 | 47.30%(1000 客户端) | 46.72%(1000 客户端) | +0.58% |
局限与改进
作者承认的主要限制有三点:其一,OCSVM 训练复杂度 $O(n^2 d)\sim O(n^3 d)$、IF 为 $O(t\psi\log\psi)$,在大规模客户端上服务器开销显著;SVDD 距离更新为 $O(k\cdot n_d\log n_d)$,虽然 AT 几乎无开销但表达能力有限。其二,OCSVM/IF 的 contamination 参数必须事先按噪声率调好(本文固定为 0.4),噪声分布未知时会误杀高质量样本;且样本选择的启动轮 $t_s$ 非常敏感,过晚启动会让模型记住噪声。其三,特征空间选择在 CIFAR10 上仅在 ≥200 客户端时通过 SVDD 才得到正向增益,小客户端或 MNIST 上几乎全部负增益,说明 512/1024 维特征空间里异常样本因过拟合而难以与正常样本区分。从我的观察看,作者把 OCSVM 当成主推方法,但 40% 噪声下 +5% 量级的提升相对有限,且未与简单的「保留 top-k 高损失样本」或更先进的对比学习式异常检测做对比,方法的天花板仍待验证。
独立分析的弱点
独立分析可见四点可改进之处。第一,OCSVM/IF 的 contamination 参数被钉死在 0.4,对真实场景中未知的噪声率脆弱;可改成基于验证损失的元学习控制器或贝叶斯优化自动调节。第二,样本选择启动轮 $t_s$ 是离散的硬开关,缺乏平滑过渡;可参考课程学习思路,把「过滤概率」从 0 线性提升到目标值,让模型在前 400 轮也享受软性样本加权。第三,特征空间路线在 1024 维 CIFAR10 embedding 上失败,说明标准自编码器 embedding 缺乏对比性质;可把 MTAE 的解码器换成对比损失或加入 VICReg 之类的非坍缩正则,让 embedding 真正具备可分性。第四,AT 法的加权损失只取 $L_{rec}$ 与 $L_{cls}$ 两个标量,丢弃了梯度方向信息;可以扩展成多维损失向量(再加一个 KL 散度或预测置信度),提升 AT 的判别力。
未来方向
作者在结论里提出了三个方向:降低 OCSVM/IF 的计算复杂度、引入自适应 contamination、自适应确定启动轮,并希望扩展到更复杂的数据集与真实异构设备场景。基于实验结果,我认为还有几条值得探索:(1) 把 SVDD 与对比学习结合,使类中心在特征空间更紧凑、异常点更易被推到球外;(2) 在 AT 中引入多损失多阈值组合,应对 CIFAR10 这种复杂数据集;(3) 把 MTAE 拓展到 NLP/表格数据,验证「双损失信号」框架的通用性;(4) 设计对抗投毒场景下的鲁棒性实验,检验 OCSVM/IF 是否能挡住有目标的恶意样本;(5) 与差分隐私、安全聚合结合,研究样本选择在加密聚合下的可部署性。
复现评估
复现评估总体偏正面。代码基于 FedML 库扩展,单进程模拟就够,硬件门槛低(论文标注 NVIDIA RTX 3090 + Ryzen 5900X + 32GB RAM),普通实验室一张 3090 即可复现全部 1000 轮训练。超参数全部给出:$\lambda_{rec}=1$、$\lambda_{cls}=0.05$、SGD lr=0.1/weight decay=0.001、batch=64、5 个本地 epoch、contamination=0.4、$lss=0.1$、$tw=5$、$t_s\in\{400,500,600\}$、$\lambda_{reg}=10^{-5}$。数据集全为公开(CIFAR10、MNIST、SVHN、ImageNet32、EMNIST),噪声注入脚本在论文中描述清晰(闭集=随机换标签,开集=替换为外部数据集图像),噪声率固定 40%。主要复现难点在于:(1) FedML 0.x 版本的 API 已较老旧,需要锁定 scikit-learn 0.24.2、PyTorch 1.8.2、CUDA 11.1 的版本组合;(2) MTAE 在 CIFAR10 上 1000 轮 × 1000 客户端 × 5 种子 = 计算量可观,单卡完整跑完可能需要数天;(3) OCSVM/IF 的随机种子与 server-side 训练时序需要严格对齐才能复现 Table 6/7/9 中的 Best Round;(4) 论文未公开代码仓库地址(虽在 Methods 中说明了实现细节),需要读者根据 Algorithm 1/2 自己实现。
论文图表
展示典型 FL 训练流程:多个客户端(手机、可穿戴设备、车辆等)持有本地数据,中心服务器在每轮广播全局模型、收集本地更新、按 FedAvg 聚合后下发新模型;客户端原始数据始终不离开本地。
这是论文最重要的概念图,让读者一眼看清 FL 的「去中心化数据 + 中心化模型」基本盘,为后续所有样本选择策略提供场景铺垫。
以「鸟/狗」二分类为例,左侧为干净样本,闭集噪声(closed-set)指把狗标成鸟或反之,开集噪声(open-set)则是把既不是鸟也不是狗的图像塞进来并打上「鸟/狗」标签。
帮助读者直观区分两种本文重点考虑的噪声类型——它们对 MTAE 双损失的响应模式不同,是后续所有实验设计的基石。
CIFAR10 + 样本选择的完整结果:闭集噪声下 OCSVM 在 50 客户端取得最高 +7.02%、1000 客户端 +5.20%,IF 在 50 客户端 +6.65%;SVHN 开放噪声下增益较小(OCSVM 最高 +1.36%);ImageNet32 噪声下 IF 在 200 客户端取得 +3.61%。AT 在 CIFAR10 上表现较差,SVHN 噪声下 1000/200 客户端反而负增益。
本文最关键的实验结果表,决定了「OCSVM/IF 在 CIFAR10 上显著优于 AT、闭集噪声收益最大」的核心结论。