0 Paper Info

原文地址Robust Federated Learning With Noisy and Heterogeneous Clients

录用会议Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, CVPR

录用年份:2022

1 Introduction

论文旨在解决横向联邦学习场景(Server-Client架构)下各个客户端模型异构(个性化联邦学习),且标签集存在噪声的情况

1.1 Federated Learning

自FedAvg提出来之后,陆续出现了很多联邦学习场景下的工作,但现有的算法通常都是基于所有客户端都拥有无噪声的干净数据的假设而设计的

1.2 Label Noise Learning

在集中式的机器学习中,已经提出了很多方法来处理标签含噪声的问题,大致可以分为以下四类:

  • 标签转换矩阵(Label transition matrix):估计每个标签类翻转到另一个类的概率
  • 鲁棒正则化(Robust regularization)
  • 鲁棒损失函数(Robust loss function)
  • 筛选干净样本(Selecting possibly clean samples):在每次迭代中减少对噪声标记样本的关注,从而提高对干净样本的拟合效果

上述解决标签噪声的方法主要是在集中式训练的情况下。在联邦学习场景,Server无法直接访问Client的私有数据集,同时模型异构的场景下,不同的模型架构会导致决策边界不一致和噪声模式不同的问题

1.3 Motivation

作者认为,噪声标签在联邦学习框架下产生的新问题是:全局模型需要处理来自有噪声客户端的噪声反馈

针对模型异构问题的策略:

  • 构建一个公共数据集,并将该数据集分别输入到不同客户端的异构模型中,得到不同分布的输出,再将这些分布对齐以学习全局信息

针对噪声标签问题的策略:

  • 在客户端训练阶段,对称地使用交叉熵损失和反向交叉熵损失,以避免在学习所有类时过拟合噪声样本
  • 为降低含噪客户端对其他客户端的影响,提出了一种新的加权方法,即Client Confidence Re-weighting (CCR),以减少含噪客户端对全局信息的贡献。CCR的基本思想是通过loss值和loss的递减速度量化Client上数据集的标签质量,然后自适应地分配各Client的权重

image-20231219162527369

2 Method

2.1 Problem Definition

假设有个客户端,每个客户端有一个特定的模型代表其私有数据集上的层的输出

每个客户端的数据集定义为

服务端有一份公共数据集 ,这部分数据集可能与客户端私有数据集属于不同的分类任务

此外,每个客户端还有一部分带噪声的数据集 ,其中表示有噪声的标签,包含在

由于每个客户端模型异构,所以对于含噪标签的决策边界也不一样,因此客户端既需要考虑自己的噪声,还需要考虑其他客户端上的噪声,问题可被定义为计算一组最优模型参数,可定义为如下表达式: 论文方法框架的步骤如下:

image-20231219170043902

  1. 在公共数据集上对齐每个模型的知识分布
  2. 用SL Loss来缓解客户端对本地噪声的过拟合
  3. 对客户端进行自适应、个性化地加权,以降低含噪客户端的影响

2.2 Heterogeneous Federated Learning

这部分讲的是Server端的工作

首先用公共数据集迭代次,计算客户端的模型在公共数据集上的,以此得到该客户端的知识分布,然后用KL散度计算每个客户端和另一个客户端之间的知识分布差异 知识分布差异越大,则能互相学习到的知识就越多。因此最小化知识分布就是两个客户端相互学习知识的过程

计算出客户端的知识分布差异如下: 其他所有的客户端都可以从中获取知识,而不会泄露隐私或模型设计细节

原文中这部分表述略有歧义,按照KL散度的定义式的分布对应真实分布,的分布对应观测到的样本分布,顺序反了,此处公式已更正

客户端也可以通过调整自己的知识分布来向其他客户端学习,其中代表学习率

2.3 Local Noise Learning

这部分讲的是Client端的工作

为降低本地噪声的影响,本文使用了对称交叉熵学习(Symmetric Cross Entropy Learning)的方法

分别记为标签类分布和预测类分布,则散度为 因为标签类分布的熵为常数,所以问题可转化为求交叉熵,样本的交叉熵损失为 但是交叉熵损失没法处理带噪声的标签,模型很容易对噪声标签过拟合。而且在噪声标签的环境下,模型的预测效果在一定程度上比给定的标签还要可靠。因此,可能比更能反映真实的类分布,所以作者采用了反向交叉熵(Ref: Symmetric cross entropy for robust learning with noisy labels 将上述两个交叉熵损失结合形成对称交叉熵,可以在标签含噪的环境下充分学习难以学习的类,同时可以防止在易于学习的类上过拟合噪声标签,对称交叉熵损失(Symmetric Cross Entropy Learning,SL)表示为 为了平衡本地知识和从其他客户端那里学到的知识,作者建立了一个本地训练过程。客户端将使用自己的私有数据集更新本地模型,以防止忘记本地知识。在训练迭代过程中,标签噪声会导致模型在错误的方向上更新,最终无法收敛。为了避免这种结果,作者采用SL损失来计算模型预测的伪标签与相应给定标签(这里符号用的是带噪声的标签)之间的损失。然后,本地更新可以表示为: 其中表示第次通信循环。客户端在增强本地知识时利用SL损失来更新模型,这可以避免过度拟合噪声标签,并得到充分的学习。

2.3 Client Confidence Re-weighting

客户端置信度重新加权,Client Confidence Re-weighting(CCR),也是Server端的工作

CCR的作用在于减少含噪客户端对干净客户端的影响,执行步骤如下:

第一步:评估标签质量

计算每个客户端的本地模型在本地的噪声数据集输出的伪标签和给定标签之间的损失,也就是SL损失。SL损失越小,说明伪标签和给定标签的分布越相似,即标签质量越高。那么的标签质量可以表示为: 第二步:量化学习效率

通过SL损失的下降速度来量化学习效率。将客户端轮次迭代(协作学习)的SL损失下降率公式化为。那么学习效率就可以表示为: 第三步:用标签质量和学习效率表示客户端的置信度

两者相乘,客户端的置信度表示为: 第四步:根据客户端置信度来分配客户端的权重

在协作学习阶段,每轮开始的时候都会先按照客户端的置信度给每个客户端分配不同的权重,表示为:

控制客户端的置信度越低,会导致权重越低,是个超参数

加权正则化则可以使标签质量差、学习效率低的噪声客户端的知识最小化

动态加权后客户端的模型按照如下方式进行更新: 随着训练的迭代,每个模型都将朝着干净高效的客户端的方向更新。

2.4 Summary

总体流程图如下

The flow chart of RHFL

训练步骤为:

  1. 每个客户端用私有的含噪数据集训练本地模型并得到一个预训练模型
  2. 在协作学习中,客户端和其他的客户端对齐反馈分布(即公共数据集输入模型后在logit层的输出,用KL散度量化当前客户端和其他客户端输出分布的差异)。通过这种方式可以基于和其他客户端的差异来调整当前客户端的学习方向,而不是简单地学习全局知识。对应图中Eq. 1&2
  3. 为减轻本地噪声的影响,用SL损失更新本地模型。对应图中Eq. 8
  4. 采用损失和损失下降率来衡量私有数据集的标签质量和客户端本地模型的学习效率,然后根据标签质量和模型学习效率计算客户端置信度。对应图中Eq. 9&10&11
  5. 当从其他客户端那里学习知识分布时,根据前一步骤计算的客户端置信度对参与者进行重新加权。对应图中Eq. 12&13
  6. 通过个性化加权,可以调整联邦系统中噪声客户端的参与度,避免了通信过程中噪声的影响。然后执行全局更新。对应图中Eq. 14

3 Experiments

3.1 Setting

数据集和模型

数据集:

  • CIFAR10(Client)
  • CIFAR100(Server)

模型:

  • 模型异构场景:ResNet10、ResNet12、ShuffleNet、Mobilenetv2
  • 模型同构场景:ResNet12 * 4

噪声类型

用噪声转移矩阵将噪声添加到数据集中。 表示标签 从干净的类翻转到有噪声的类。矩阵有两种结构:

  • 对称翻转:原始的类标签将以相等的概率翻转到任何的错误类标签上
  • 配对翻转:原始的类标签只会被翻转到一个非常相似的错误类别中

实验细节

  • 数据集规模:私有数据集有个标签,公共数据集有个标签
  • 模型异构场景下协作学习轮次。客户端本地的epoch次数设置为
  • 噪声率
  • 在CIFAR10中,通过将20%的训练集的标签翻转来产生噪声标签,并保持测试集的标签不变来测试鲁棒性

Baseline

  • 模型异构场景对比:FedMD、FedDF
  • 模型同构场景对比:FedMD、FedDF、FedAvg

3.2 Ablation Study

在不同的噪声率下对3个模块进行消融:HFL、SL、CCR

Ablation Study

3.3 Comparison with SOTA Methods

Baseline指的是不使用FL,客户端仅在私有数据集上训练本地模型的方法。

模型异构场景( 指代客户端)

Heterogeneous Federated Learning

模型同构场景

Homogeneous Federated Learning

4 Conclusion

4.1 Contribution

整体行文逻辑缜密,阅读观感较好,思路也挺好理解

说回内容,提出的方法充分考虑了个性化联邦场景下客户端含噪声标签的情况,然后提出的3个模块方法能够较好地协作发挥作用

4.2 Discussion

在客户端用CIFAR10作为私有数据集的情况下,服务端用CIFAR100的子集作为公共数据集是否会存在两边数据集有部分重合或很相似的问题,假设公共数据集和私有数据集的构造类别/方式差异很大,那么这种方法还能有效吗

相较于其他框架,RHFL的服务端显然凭借公共数据集拿到了更多信息,这样比较是否公平呢

在模型异构场景,目前只用了4个客户端,如果客户端数量进一步扩充,是否仍能够保持鲁棒性