FedOV
3 FEDOV: ONE-SHOT FEDERATED OPEN-SET VOTING FRAMEWORK
3.1 PROBLEM STATEMENT
假设有个客户端及其本地数据集。我们的目标是在服务器的帮助下,在不交换原始数据的情况下,训练一个优秀的机器学习模型 。此外,每个客户端只允许与服务器进行一次通信。在本文中,我们专注于图像分类任务,因为该任务非常流行
3.2 MOTIVATION
观察 1:在现有的一次性联邦学习方法中,投票是一种常见的策略(Guha 等人,2019;Li 等人,2021c)。然而,这些方法在极端标签偏斜的情况下表现不佳。例如,当我们将 MNIST 数据集划分给 10 个客户端,每个客户端只有一个类别时,无论是闭集投票(Guha 等人,2019)还是 FedKT(Li 等人,2021c)都仅能获得不到 20% 的测试精度。当每个客户端有两个类别时,这两种方法的测试精度都低于 50%。问题在于,闭集分类模型的预测偏向于其见过的类别
如图 1a 所示。当一个属于类别 1 的测试样本到来时,传统的闭集投票方法中,第一个和第三个客户端做出了错误的预测,因此投票结果不能正确地预测。
启示 1:在联邦学习的标签偏斜设置中,闭集分类器在一次性联邦学习中的表现较弱,且会将每个输入预测为其已知类别之一。对于投票,如果模型可以对未见过的类别承认“不知道”并预测“未知”,效果会更好
如图 1b 所示。这启发我们在联邦学习中应用开放集识别(OSR),引入一个“未知”类别以提高投票的准确性
通过 Dirichlet 分布将类 0,1 和2 的数据分配到三个客户端
观察 2 直接应用 PROSER(Zhou等人,2021)在FL的局部训练中不能获得良好的局部开集分类器。我们在图2a 中的本地训练中使用 PROSER 将客户端的本地模型学习的表示可视化。该模型在只有 0 类和 6 个 MNIST 样本的客户端上训练。当简单地应用 PROSER 时,生成的离群值非常有限,并且远离训练数据。来自可见和不可见类的数据的表示是混合的,并且无法区分
PROSER(Progressive Open-Set Recognition)是一种开放集识别(Open-Set Recognition,OSR)算法,专门用于处理开放集问题。在开放集问题中,模型需要对训练集中未出现的类别进行正确处理,也就是在遇到未知类别的数据时,模型能够预测为“未知”而不是误分类为已知类别。
PROSER 的主要思想是通过在训练过程中生成一些“异常数据”(outliers),并将这些数据标记为“未知”类别来增强模型的开放集识别能力
图 2:T-SNE 可视化图,展示了使用不同方法训练的本地模型所提取的特征。在训练过程中,客户端仅拥有类别 0 和类别 6 的数据。在每个子图中,我们绘制了已见类别(0 和 6)、未见类别以及在训练过程中生成的异常数据的表示。黑色线条表示可能的分类边界
启示 2 为了更好地适应 OSR 算法在 FL 中的标签偏斜,我们需要新的技术来生成离群值,这些离群值应该1)是多样的,2)接近所看到的类
3.3 THE OVERALL ALGORITHM
基于上述观察和启示,我们开发了一种新方法,名为 FedOV,以解决联邦学习中的标签偏斜问题。FedOV 在直接将开放集识别(OSR)应用于联邦学习时面临的挑战中,提出了两种改进
首先,为了生成多样化的异常数据,我们提出了 数据破坏(Data Destruction,DD),通过从真实样本中直接生成异常数据。其次,为了生成更接近真实样本的异常数据,我们提出了 对抗异常增强(Adversarial Outlier Enhancement,AOE),以学习一个更紧密的分类边界来包围内类数据。
开放集投票的整体框架如下所述。在训练阶段,每个客户端本地训练一个开放集分类器,并将其提交给服务器。在预测阶段,服务器将所有提交模型对输入样本的预测概率加和,同时忽略“未知”类别的通道。最终预测概率最大的类别被输出为预测标签。图 1b 展示了开放集投票的一个例子。在“未知”类别的帮助下,本地模型在遇到未见过的类别时,可以承认其不确定性。第一个和第三个模型对类别 1 知识有限,因此它们为“未知”分配了很高的概率,而第二个模型由于对类别 1 的熟悉,以100%的确定性输出类别 1。这样,输入的图像可以被正确分类
整个过程如算法 1 所示。假设有个类别,类别 0 到是原始训练数据中的类别,我们用类别表示“未知”类别。在每个客户端中,首先初始化本地模型(第2行)。然后在每一轮中,对于每一批次的训练数据,生成异常数据,分别通过 数据破坏 和 对抗异常增强。
接下来,将 这些异常数据视为“未知”类别,计算它们的交叉熵损失。通过将 PROSER 损失和 交叉熵损失 相加作为总损失,使用 Adam 优化器更新本地模型。在完成指定的训练轮数后,本地模型会被上传到服务器。
在服务器端,它将所有本地模型作为一个集合进行聚合,形成最终的模型。当有新样本需要预测时,服务器将每个模型的预测概率相加。然后,概率最高的已知类别作为最终输出标签
由于 FedOV 仅需要一次通信,其通信成本为,其中为本地模型的大小。相比于需要多轮通信的迭代联邦学习算法,FedOV 的通信成本较低
3.4 DATA DESTRUCTI(DD)
根据我们在 3.2 节中的观察,从有限的训练数据中生成多样化的异常数据具有挑战性。虽然 PROSER 通过混合不同类别的数据来生成异常数据,我们是否可以从每个单独的样本生成异常数据呢?受到数据增强(Shorten & Khoshgoftaar, 2019)启发,数据增强是一种在训练前增强特征的非常流行的方法,我们提出了一种新颖的 数据破坏(Data Destruction,DD)方法,利用数据操作来转换数据,生成异常数据
与增强特征不同,我们的 DD方法通过强烈的数据操作破坏原始的关键特征,这既高效又有效。具体来说,DD有两个组成部分:候选数据破坏操作 和通过一组操作增强异常数据
候选数据破坏操作
为了破坏原始特征,我们尝试了一系列全面的数据操作,并总结了以下有效的候选破坏操作:
- 随机复制粘贴(RandomCopyPaste):随机选择一个矩形区域,并将其复制到图像的另一个随机选定的区域。
- 随机交换(RandomSwap):交换两个随机选定的矩形区域。
- 随机旋转(RandomRotation):随机旋转图像的一个方形区域。
- 随机擦除(RandomErasing):随机擦除图像中的一个大矩形区域。
- 高斯模糊(GaussianBlur):使用大方差的高斯函数模糊图像。
- 随机裁剪并调整大小(RandomResizedCrop):随机裁剪图像中的一小部分,并将其调整为原始大小。
其中(1)-(3)是我们提出的新操作,而(4)-(6)是现有的数据增强操作,我们使用了异常的超参数。这些操作生成的异常数据的示例见图 3a
通过数据破坏集增强异常数据
为了增强异常数据的多样性,我们在生成异常数据时引入了随机性。我们不会对每张图像使用固定的操作来生成异常数据。每次从上述候选操作集中随机选择一个操作生成异常数据。然后,在每个训练批次中,由不同操作生成的各种类型的异常数据都会存在
3.5 ADVERSARIAL OUTLIER ENHANCEMENT(AOE)
对抗训练(Goodfellow 等人,2015;Kurakin 等人,2016)一直是一种流行的方法,用于保护机器学习模型免受恶意攻击。例如,Goodfellow 等人(2015)使用快速梯度符号方法(FGSM)生成对抗样本,使得模型以高置信度输出错误答案。然后,这些对抗样本被用作训练数据的一部分来规范训练。
受对抗训练的启发,我们不是使用 FGSM 生成用于鲁棒训练的对抗样本,而是将其应用于优化生成的异常数据
具体来说,假设客户端正在使用我们的数据破坏方法生成的异常数据训练模型。我们使用 FGSM 生成,使得模型错误地将以高置信度输出为一个已见样本。然后,增强后的异常数据与生成的异常数据一起被用作未知类别来更新模型。我们称这种方法为对抗异常增强(Adversarial Outlier Enhancement,AOE)
图 3b 中展示了增强后的异常数据的示例。与图 3a 相比,增强后的异常数据看起来更正常,看起来像是来自训练数据的不同类别(例如,在图 3b 的第三行中,第三个和第八个异常数据看起来像数字“3”,尽管它们是从数字“2”生成的)
我们还包含了来自 Open Set Learning with Counterfactual Images, ECCV 2018 的代码,该代码是由开放集学习的作者编写的。然而,由于我们的联邦学习分区设置更为多样和复杂,我们发现很难调整超参数来生成优质的反事实图像,且投票准确率很低,因此我们在最终版本中没有调用它
在我们的代码中,我们保留了注释掉的或未使用的代码(函数)。我们尝试过这些但没有得到好的结果。经过多次尝试和错误,我们总结了当前的数据破坏(DD)和对抗异常增强(AOE)函数。这些尝试可能为未来的研究者节省努力或带来一些见解,因此我们保留了它们
3.6 DISCUSSION
T-SNE 可视化:如图 2b 和图 2c 所示,DD 可以生成多样化的异常数据,帮助区分已见和未见类别的数据,而 AOE 进一步缩小了异常数据和训练数据(即类别 0 和 6)之间的距离,以学习更好的分类器。
T-SNE(t-Distributed Stochastic Neighbor Embedding)是一种非常流行的机器学习算法,用于数据的可视化。它特别适用于高维数据的可视化,这种数据通常来自复杂的数据集,如图像、文本或声音数据。T-SNE 通过有效地将高维数据映射到两个或三个维度中,帮助研究者和数据科学家观察数据中的模式、群组和异常值。
与知识蒸馏的整合:FedOV 的一个缺点是最终模型是本地模型的集合,因此其预测和存储成本可能会很大,尤其是当客户端数量很多时(例如,在跨设备设置中)。一些现有方法(Lin 等人,2020;Li 等人,2021c)使用知识蒸馏从多个本地模型中提取知识,以帮助一个公共或合成数据集生成全局模型。我们的方法与上述方法兼容。通过知识蒸馏,我们可以将本地模型的集合转换为单个全局模型。这样可以显著降低最终模型的存储和预测成本。此外,将最终模型视为迭代联邦学习算法(如 FedAvg,McMahan 等人,2016)的初始化模型,我们可以进行多轮联邦学习以进一步改进模型。如第 4.4 节所示,FedOV 可以有效地与现有方法结合,提高它们的精度和通信效率
4 EXPERIMENTS
4.1 EXPERIMENTAL DETAILS
数据集:我们在 MNIST、Fashion-MNIST、CIFAR-10 和 SVHN 数据集上进行实验。我们使用 Li 等人(2021b)的数据划分方法来模拟不同的标签偏斜
具体而言,我们尝试了两种不同的分区方式:
1)
每个客户端只有来自个类别的数据。我们首先为每个客户端随机分配个类别 ID,接下来将每个类别的样本均匀随机分配给它们被分配的客户端
2)
对于每个类别,我们从 Dirichlet 分布采样,并将类别的部分样本分配给客户端
基线:我们包括了一次性联邦学习算法作为基线,包括闭集投票(Guha 等人,2019)和 FedKT(Li 等人,2021c)。我们还将 FedOV 与迭代式联邦学习算法进行比较,包括 FedAvg(McMahan 等人,2016)、FedProx(Li 等人,2020)、FedNova(Wang 等人,2020a)和 FedDF(Lin 等人,2020)。我们在单轮中运行这些算法以进行公平比较。注意,FedKT 和 FedDF 需要公共数据集(或合成数据集)进行蒸馏。在每个任务中,我们使用一半的测试数据集作为蒸馏的公共数据集,剩余部分用于测试。由于 FedSyn(Zhang 等人,2021)的源代码并未公开,而我们已经包括了 FedDF(采用与 FedSyn 相同的蒸馏方法)在我们的实验中,所以我们没有将其与 FedOV 进行比较
默认设置:默认情况下,我们根据 FedAvg(McMahan 等人,2016)和其他现有研究(Li 等人,2021c;b;Wang 等人,2020b)的做法,在我们的实验中使用了一个简单的 CNN 模型,该模型包含 5 层。有 10 个客户端。对于本地训练,我们为每个客户端运行 200 个本地 epoch。我们设置批量大小为 64,学习率为 0.001。对于带有误差条的结果,我们通过不同的随机种子运行了三次实验
4.2 AN OVERALL COMPARISON
我们比较了 FedOV 与其他基线算法的精确度,如表1所示。我们的算法在仅有一次通信的情况下,能显著超越基线算法。在许多设置中,FedOV 的精确度比闭集投票高出超过 10%。在极端情况下,如 #C = 1 的情况,FedOV 比闭集投票至少高出 30%。迭代式联邦学习算法在仅运行一轮时无法达到满意的精确度
4.3 ABLATION STUDY
我们展示了 FedOV 中每个组件的效果,包括开放集投票(PROSER)、数据破坏(DD)和对抗异常增强(AOE)。具体来说,我们每次添加一个组件,结果如表 2 所示。从表中可以看出,具有所有三个组件的 FedOV 在大多数设置中可以达到最高的精度。仅在联邦学习中应用 PROSER 与闭集投票相比,并没有提高精度(例如,CIFAR-10 中的 #C = 2)。我们提出的异常数据生成技术可以有效提高开放集投票的精度。此外,对抗异常增强在某些设置中显著提高了精度(例如,SVHN 中的 #C = 1)。我们在附录 B.2 中与使用 AOE 损失而不使用 DD 损失的开放集投票进行了比较
5 CONCLUSION
在这项工作中,我们设计了一种新的一次性联邦学习算法 FedOV,以解决一次性联邦学习中的标签偏斜问题。我们提出通过在投票中引入“未知”类别来进行开放集投票。我们观察到,直接应用现有的开放集识别算法 PROSER 到一次性学习中存在生成异常数据有限的问题。为了解决这些问题,我们开发了两种技术,数据破坏和对抗异常增强,以提高开放集投票的表现。我们广泛的实验表明,与其他基线相比,FedOV 在各种标签偏斜设置下都能实现显著的准确度提升