《LEAF A Benchmark for Federated Settings》论文阅读

LEAF是一个开源框架,旨在解决联邦学习中数据集不切实际的问题,提供真实世界联合数据集和评估指标。它支持多种学习范式,并通过模块化设计方便实验。文章详细介绍了LEAF的核心组件和应用实例。

《LEAF: A Benchmark for Federated Settings》论文阅读

1 Introduction

作为一个例子,考虑联邦学习范式,它专注于直接在联邦网络上训练模型 [22,30,28]。专注于联邦学习的实验工作广泛使用三种类型的数据集,每种数据集都有自己的缺点:(1)常用但不提供联邦场景的现实模型的数据集,例如 MNIST、MNIST-fashion 的人工分区或 CIFAR-10 [22, 13, 8, 3, 11, 32, 34]; (2)现实但专有的联合数据集,例如[22]中来自未命名社交网络的数据、[18]中的众包语音命令以及[5]中华为的专有数据; (3)来自公开数据的现实联合数据集,但不容易复制,例如[25]中的FaceScrub、[22]中的Shakespeare和[13,24,3]中的Reddit。

作为第二个例子,考虑元学习,这是[5]和[12]提出的一种相关学习范式,作为解决联邦网络统计挑战的一种方法。该范例确实非常适合联合设置,因为异构设备可以解释为元学习任务。然而,流行的元学习基准,如 Omniglot [15,7,33,31] 和 miniImageNet [29,7,33,31] 专注于 k-shot 学习(即,所有任务都有相同数量的样本,每个类别每个任务中具有相同数量的样本等),因此无法捕捉联合数据给元学习解决方案带来的现实挑战。事实上,前面提到的所有数据集都可以归类为上面提到的第一种类型(流行但对我们的目的来说不现实)。

作为最后一个例子,考虑多任务学习(MTL)。这种范式也适用于联邦设置[30],但与现实的联邦网络相反,通常在任务和样本数量较少的情况下进行探索,例如流行的Landmine Detection [38, 26, 36, 30], Computer Survey [2, 1, 14] and Inner London Education Authority School [26, 17, 1, 2, 14] 数据集每个最多有 200 个任务。我们强调,虽然联合学习、元学习和多任务学习是 LEAF 的应用,但该框架实际上涵盖了广泛的潜在学习设置,例如设备上学习或推理、迁移学习、生活学习等。 -长期学习,以及个性化学习模式的开发。

我们的工作旨在弥合流行且可用于基准测试的人工数据集与那些实际捕获联合场景特征的人工数据集之间的差距,但到目前为止,这些数据集要么是专有的,要么难以处理。此外,除了建立一套联合数据集之外,我们还提出了一种清晰的方法来评估方法和重现结果。为此,我们推出了 LEAF,这是一个模块化基准测试框架,旨在在远程设备的大规模分布式联合网络中进行学习。

2 LEAF

LEAF 是联合设置的开源基准。2 它包括:(1) 一套开源数据集;(2) 一系列统计和系统指标;(3) 一套参考实现。如图 1 所示,LEAF 的模块化设计允许将这三个组件轻松整合到不同的实验管道中。下面我们将详细介绍 LEAF 的核心组件。

image-20231006193915615

图 1:LEAF 模块。数据集 "模块对数据进行预处理,并将其转换为标准化格式,以便集成到任意的 ML 管道中。LEAF 的 "参考实现 "模块是一个不断扩大的资源库,其中包含了联合设置中使用的常用方法,每种实现都会生成各种不同统计和系统指标的日志。以适当格式生成的任何日志都可以通过 LEAF 的 "度量 "模块,以各种方式汇总和分析这些指标。

在这里插入图片描述

数据集: 我们为 LEAF 策划了一套现实的联合数据集。我们重点关注以下数据集:(1) 数据具有自然的密钥生成过程(每个密钥指代一个特定的设备/用户);(2) 数据从数千到数百万设备的网络中生成;(3) 数据点的数量在不同设备间有所倾斜。目前,LEAF 由六个数据集组成:

  1. Federated Extended MNIST (FEMNIST),它是根据数字/字符的作者对 Extended MNIST [16, 6] 中的数据进行分割而建立的。
  2. Sentiment140 [9]是一个自动生成的情感分析数据集,它根据推文中的表情符号对推文进行注释。每个设备都是不同的 twitter 用户。
  3. Shakespeare,这是一个从《威廉-莎士比亚全集》[35, 22] 中建立的数据集。在这里,每部戏剧中的每个说话角色都被视为不同的设备。
  4. CelebA,根据图片上的名人对大规模名人面孔属性数据集 3 [21]进行分割。
  5. Reddit,我们对 2017 年 12 月在该社交网络上发布的评论进行了预处理。
  6. 一个合成数据集,它修改了 [20] 中提出的合成数据集,使其对当前的元学习方法更具挑战性。详见附录 A。

我们在表 1 中提供了这些数据集(合成数据集除外,因为这些数据集会根据用户的设置而变化)的统计数据。在 LEAF 中,我们为每个数据集提供了所有必要的**预处理脚本,以及用于原型开发和最终测试的小/完整版本。**今后,我们计划增加不同领域的数据集(如音频、视频),并扩大机器学习任务的范围(如文本到语音、翻译、压缩等)。

Metrics: 要适当评估学习解决方案在联合场景中的表现,需要严格的评估指标。目前,LEAF 建立了一套专门用于此目的的初始指标。例如,我们引入了能更好地捕捉各设备性能整体分布的指标:第 10、50 和 90 百分位数的性能,以及按数据中的自然分层(如莎士比亚数据集中的 "play "或 Reddit 中的 “subreddit”)进行分层的性能。我们还引入了一些指标,以 FLOPS 数量和下载/上传的字节数来衡量边缘设备所需的计算资源数量。最后,LEAF 还认识到了指定如何在不同设备间加权计算精度的重要性,例如,是每个设备同等重要,还是每个数据点同等重要(这意味着强大的用户/设备会得到优先处理)。

参考实现: 为了促进可重复性,LEAF 还包含一套面向联合场景的算法参考实现。目前,这套参考实现仅限于联合学习范例,尤其包括小批量 SGD、FedAvg [22] 和 Mocha [30] 的参考实现。今后,我们的目标是在更广泛的研究社区的帮助下,为 LEAF 提供更多方法和范例的实现。

3 LEAF in action

LEAF实现了可重现的科学: 为了证明 LEAF 所带来的可重复性,我们将重点放在定性重现 [22] 在莎士比亚数据集上为下一个字符预测任务所获得的结果。我们特别注意到,对于这个特定的数据集,FedAvg 方法会随着局部历时的增加而出现令人惊讶的偏差。因此,在部署 FedAvg 等方法之前,必须了解这一关键设置。结果如图 2 所示,在图 2 中,我们确实看到了随着历时次数的增加,训练损失出现了类似的发散行为。

image-20231006195020570

LEAF 提供细化指标: 如图 3 所示,在同时为多个客户端提供服务时,我们提出的系统和统计指标非常重要。在统计指标方面,我们展示了改变 Sentiment140 中每个用户的最小样本数(我们将其记为 k)的效果【滤除样本数小于k的客户端】。我们可以看到,在数据不足的用户(即 k = 3)中,中位数性能仅略有下降,而第 25 百分位数性能却大幅下降。同时,在系统指标方面,我们为 FEMNIST 运行了小批量 SGD 【????】和 FedAvg,并计算了达到每个样本 0.75 精确度阈值所需的系统预算。我们以所有设备的 FLOPS 总数和上传到网络的字节总数来描述开销。我们的结果表明,在通信与本地计算的权衡方面,FedAvg 的系统状况有所改善,但我们也注意到,一般来说,方法在这两个维度上可能会有所不同。

image-20231006200430266

图 3:Sent140 和 FEMNIST 的统计和系统分析。对于 Sent140:k 是每个用户的最小样本数。橙色线条代表设备准确度的中位数,绿色三角形代表平均值,方框代表第 25 和第 75 百分位数,胡须代表第 10 到第 90 百分位数。对于 FEMNIST: C 是每轮选中的客户端数量,E 是每个客户端为 FedAvg 进行本地训练的历时数。对于小批量 SGD,我们报告每个客户端使用数据的百分比。

LEAF 是模块化的: 为了证明 LEAF 的模块性,我们将其 "数据集 "模块纳入了三个新的实验管道:一个是为每个设备训练纯本地模型(在 CelebA 和我们的合成数据集上),一个是忽略设备之间的自然分区,即混合所有数据(在 Reddit 上),还有一个是我们使用流行的元学习方法 Reptile [27](在 FEMNIST 上)。表 2 列出了这些实验的结果。这些特定的管道揭示了不同的建模方法如何能够更有效地进行数据分析。

4 Conclusions

我们介绍的 LEAF 是一个模块化框架,用于在联合环境或以大规模分布式设备网络为特征的生态系统中进行学习。适用于此类环境的学习范式包括联合学习、元学习、多任务学习和设备上学习。LEAF 将使联合学习、元学习和多任务学习等领域的研究人员和从业人员能够在比以前的基准更现实的假设条件下推理新提出的解决方案。我们打算通过新的数据集、度量标准和开源解决方案不断更新 LEAF,以促进该领域取得进展。

B Experiment Details

**Shakespeare convergence.**对于图2所示的实验,我们在莎士比亚的数据中对118个设备(约占总数的5%)进行了子采样。我们的模型首先将每个字符映射到维度为8的嵌入,然后将其通过两层LSTM,每层256个单元。LSTM发出一个输出嵌入,通过点积和softmax对词汇表的所有项目进行评分。我们使用80的序列长度作为LSTM。我们使用AccuracyTop1进行评估。我们使用0:8的学习率,每轮10个设备进行所有实验。

**统计和系统分析。**对于图3中显示的所有Sent140实验,我们使用了一个具有逻辑回归的单词袋模型,学习率为3-10-4。对于同一图中的FEMNIST实验,我们对5%的数据进行了子采样,并使用了一个具有两个卷积层、然后进行池化的模型,以及一个具有2048个单元的最终密集层。FedAvg的学习率为4/10−3,迷你批次SGD的学习率则为6/10−2。

**附加管道。**对于表2中所示的实验,我们使用每个用户60%的训练、20%的验证和20%的测试,并在测试集上报告结果。每个实验变化的超参数如下:

[外链图片转存中...(img-RUrv7aoY-1696596274528)]

image-20231006204313023

### 关于复现 CitDet 数据集的实验方法和资源 CitDet 数据集是一个专门用于柑橘类水果检测的基准数据集。为了成功复现论文中的实验,需要从以下几个方面入手:获取数据集、理解论文方法、准备代码环境以及验证结果。 #### 1. 数据集获取 首先需要确保能够访问 CitDet 数据集。通常情况下,论文中会提供数据集下载链接或说明如何申请数据集。如果论文中未明确提及,可以尝试以下方法: - 检查论文附录或补充材料是否有数据集下载链接。 - 访问论文作者提供的项目主页或 GitHub 仓库。 - 如果数据集需要申请,可以通过邮件联系论文作者请求访问权限。 对于 CitDet 数据集,假设其为公开可用,应遵循论文中的描述进行下载和解压[^1]。 #### 2. 理解论文方法 在复现实验之前,需深入理解论文中提出的方法。以下是可能涉及的关键步骤: - **数据预处理**:了解数据集格式(如标注文件的格式是否为 COCO 或 Pascal VOC),并根据模型需求进行转换。 - **模型架构**:确定论文中使用的具体检测算法(如 Faster R-CNN、YOLO 或 SSD)。 - **训练流程**:明确超参数设置(学习率、批次大小等)、损失函数选择及优化器配置。 例如,若论文使用了 Faster R-CNN,则需熟悉其 backbone 网络(如 ResNet 或 MobileNet)的选择与配置[^2]。 #### 3. 准备代码环境 为了复现实验,需搭建合适的开发环境。以下是推荐的步骤: - **安装依赖库**:根据论文代码库的要求安装必要的 Python 库,如 PyTorch、TensorFlow 或 Detectron2。 - **配置 GPU 环境**:如果论文中提到使用 GPU 加速训练,则需确保本地环境支持 CUDA 和 cuDNN。 - **加载预训练模型**:部分检测任务会基于预训练模型(如 ImageNet 上的权重)进行微调,需下载对应权重文件。 以下是一个基于 PyTorch 的 Faster R-CNN 模型初始化示例: ```python import torch from torchvision.models.detection import fasterrcnn_resnet50_fpn # 初始化 Faster R-CNN 模型 model = fasterrcnn_resnet50_fpn(pretrained=True) # 替换分类头以适配 CitDet 数据集类别数 num_classes = 2 # 假设包含背景类 in_features = model.roi_heads.box_predictor.cls_score.in_features model.roi_heads.box_predictor = torch.nn.Linear(in_features, num_classes) ``` #### 4. 验证实验结果 完成上述步骤后,可通过以下方式验证实验结果: - **训练日志分析**:检查损失值、mAP(平均精度均值)等指标的变化趋势。 - **测试集评估**:在独立测试集上运行模型,计算最终性能指标并与论文结果对比。 - **可视化结果**:生成检测框图像以直观评估模型表现。 #### 注意事项 - 如果论文未提供完整代码,可参考类似任务的开源实现(如 Detectron2 或 MMDetection)。 - 确保实验环境与论文描述一致,包括硬件配置和软件版本。 --- ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值