论文简介
- 论文名称:Robust Federated Learning with Noisy and Heterogeneous Clients
- 作者:Xiuwen Fang,通讯叶茫,武汉大学
- 论文链接:https://openaccess.thecvf.com/content/CVPR2022/papers/Fang_Robust_Federated_Learning_With_Noisy_and_Heterogeneous_Clients_CVPR_2022_paper.pdf
- 论文来源:CVPR 2022
论文动机
论文旨在解决联邦学习中各客户端模型异构、以及标签集存在噪声的情况。
噪声出现的原因
- 标注人员自身的主观性和局限性,高质量的标记数据需要高成本。
- 联邦学习框架中,可能会有一些 free-riding的参与者既不想提供有用的信息,还想从全局模型中获利,所以就提供一些错误标签糊弄。
针对单个模型的图像分类任务,现有的解决噪声的方法:
- 标签专业矩阵估计
- 鲁棒正则化
- 鲁棒损失函数估计
- 干净样本选择
作者认为,噪声标签在联邦学习框架下的新问题是:全局模型需要处理来自其他有噪声客户端的噪声反馈。
针对模型异构的问题,改进策略:调整FL的对数输出分布,通过对齐模型对公共数据的反馈,来学习其他客户端的知识分布。
针对噪声标签问题,改进策略:
- 分析内部模型标签引起的负面影响:在本地学习阶段,我们考虑在充分学习所有类的同时,对称地使用交叉熵损失和反向交叉熵损失,以避免过拟合的噪声样本。
- 对外部噪声的客户端重加权(CCR)。由于标签噪声来自其他客户端的反馈,因此可以减少噪声在客户端上的贡献。通过损失值和损失减少速度同时量化数据集的标签质量,然后自适应地分配干净高效客户端的权重。

动机实验
作者不走寻常路,用最后的实验结果来说明动机,当然在阐述动机的时候是拿已有方法说事,没放自己的方法
无噪声的时候,几种方法的性能如下:(可以不看最后一行,最后一行是作者方法,跟动机无关)

在有噪声的时候,方法性能如下:(分别是噪声率$\mu = 0.1, 0.2$,在对称翻转和成对翻转情况下的实验结果)

联邦+噪声标签的问题设定
每个客户端$c_k$有一个特定的模型$\theta_k$,$f(x_k,\theta_k)$标识其数据集的数据$x_k$在$\theta_k$上面的logits输出。
客户端上有一部分公共数据集$D_0={{x^0_i}^{N_0}_{i=1}}$,可以是跟客户端数据集不同的分类任务。
每个客户端还有一个带噪声的数据集$\tilde{D_k}={(x_i^k, \tilde{y_i}^k)}^{N_k}_{i=1}$,其中$\tilde{y_i}^k$表示有噪声的标签。因为每个客户端模型都不一样,他们的决策边界也不一样,因此客户端模型既需要考虑自己的噪声,还得考虑其他客户端上的噪声。
因此问题就转化为了:计算一组最优模型参数:
$$ \theta_k = argmin L(f(x^k,\theta_k), y^k) $$
论文方法框架的步骤如下:

- 在公共数据集上对齐每个模型的知识分布
- 用SL损失来缓解客户端对本地噪声的过拟合
- 对于通信中产生的噪声,通过测量客户端的置信度来降低客户端的权重。
论文方法
异构联邦学习
collaborative learning阶段:用公共数据集迭代$T_c$次,计算客户端$\theta_k^{t_c}$在公共数据集$D_0$上的logits。以此得到知识分布$R^{t_c}_k = f(D_0,\theta^{t_c}_k)$。然后用KL来衡量每个客户端与其他客户端之间的知识分布差异。

知识分布差异越大,则$c_k1$和$c_k2$能互相学习到的东西就越多。因此最小化知识分布其实就是两个客户端相互学习知识的过程。
计算出客户端$c_k$的知识分布差异如下:

所有其他客户都可以从$c_k$中获得知识,而不会泄露数据隐私或模型设计细节。
客户端通过调整知识分布来向其他客户端学习

$\alpha表示学习率。$
本地噪声学习
为了降低本地噪声的影响,作者使用的是对称交叉熵学习的方法(Symmetric Cross Entropy Learning):
Yisen Wang, Xingjun Ma, Zaiyi Chen, Yuan Luo, Jinfeng Yi, and James Bailey. Symmetric cross entropy for robust learning with noisy labels. In ICCV, pages 322–330, 2019. 4, 5
$p, q$记为标签类分布和预测类分布,则$p, q$的KL散度为:

样本$x$的CE为:

但CE没法处理带噪声的标签,模型很容易对噪声标签过拟合。而且在噪声标签的环境下,模型的预测结果在一定程度上比给定的标签还要可靠。因此,$q$可能比$p$更能反映真实的类分布。这里作者采用了反交叉熵(援引自下面的文献)
Yisen Wang, Xingjun Ma, Zaiyi Chen, Yuan Luo, Jinfeng Yi, and James Bailey. Symmetric cross entropy for robust learning with noisy labels. In ICCV, pages 322–330, 2019. 4, 5

这个损失函数跟模型预测的类分布保持一致。
通过结合CE损失和RCE损失,可以充分学习难以学习的类,同时防止在易于学习的类上过拟合噪声标签。然后将对称交叉熵学习(SL)损失表示为:

在训练迭代过程中,标签噪声导致模型向错误的方向更新,最终无法收敛。为了避免这种结果,我们采用SL损失来计算模型预测的伪标签与相应的给定标签之间的损失。然后,本地更新可以表示为:

客户端置信度重加权
前面的模块是为了减少本地噪声的影响,这部分模块重加权的作用是为了减少其他客户端模块的标签噪声的影响,干净的客户端权重就大,脏客户端权重就小。
第一步:评估标签的质量。每个客户端的本地模型$\theta_k$在本地的噪声数据集$\tilde{D_k}$上预测输出标签和给定标签$\tilde{y_k}$之间的损失。SL损失小,说明伪标签和给定标签的分布比较相似,标签质量高。标签的质量可以以如下的方式表示:

第二步:量化学习效率。学习效率这里作者用SL损失的下降速率来量化。$T_c$(协作训练)迭代过程中,客户端$c_k$的LS损失下降率记为$\delta L^{k, t_c}_{sl}$。学习效率就可以表示为:

第三步:用标签质量和学习效率表示出客户端的置信度:

这里我的理解是,客户端置信度需从两方面考虑,一是用伪标签衡量出来的标签质量;二是对样本的学习速率。学习速度低,很可能就是在学习噪声标签。
第四步:根据客户端置信度来分配客户端的权重。
在协作学习阶段,每轮开始的时候都会先按照客户端的置信度给每个客户端分配不同的权重,公式如下:


加权正则化可以使标签质量差、学习效率低的噪声客户端的知识最小化。
动态加权客户在每一轮学到的知识分布如下:

总体流程图如下:(这个流程图画的真好,3个模块非常清晰)

实验验证
- 数据集:CIFAR-10、CIFAR-100。把CIFAR-10划分到不同的客户端里作为私有训练集,取CIFAR-100的子集作为公共数据集放在服务器上。
网络:
- 异构模型场景:ResNet-10、ResNet-12、ShuffleNet、Mobilenetv2,分别分配给4个客户端。
- 同构模型场景:客户端全设置成ResNet-12
噪声设置:用噪声转移矩阵将噪声添加到数据集中。$M_{mn} = flip(\tilde{y} = n|y = m)$表示标签$y$从干净的$m$类翻转到有噪声的$n$类。矩阵M有两种结构:
- 对称翻转:原始的类标签将以相等的概率翻转到任何的错误类标签上。
- 配对翻转:原始的类标签只会被翻转到一个非常相似的错误类别中。
实验的噪声方法是:设置噪声率$\mu = 0.1, 0.2$分别在对称翻转和成对翻转的设定下进行实验。
实验细节:
- 数据集规模:私有数据集有10000个标签,公共数据集有5000个标签。
- 迭代次数:协作训练40轮,本地训练$\frac{N_k}{N_0}$轮。
对比方法
- 模型异构场景对比:FedMD、FedDF
- 模型同构场景对比:FedMD、FedDF、FedAvg
消融实验:
对3个模块进行消融:HFL、SL、CCR

与SOTA方法的对比
模型异构情况:

模型同构的情况

论文总结
个人感觉是一篇很棒的论文,充分考虑了联邦学习+噪声标签学习的情况,而且设定的3个模块方法也并非完全独立,而是相互作用的,文中的插图也非常清晰。
不过我觉得有一个小作弊的点:他把CIFAR-10当做各个客户端的私有数据集,把CIFAR-100的子集当做服务器端的公共数据集,CIFAR-10和CIFAR-100是否会有重合,是否算是打了擦边球?
而且添加了公共数据集的设定以后,RHFL所拿到的信息量本身就比其余的框架多,这样比较真的公平吗?
Comments | NOTHING