【论文笔记 | 异步联邦】 FedBuff

1. 论文信息

Federated Learning with Buffered Asynchronous Aggregation,International Conference on Artificial Intelligence and Statistics,2022,ccfc

2. introduction

2.1.1. 背景:

同步 FL ,随训练过程中的客户端数量的增多,模型性能 和 训练速度 的收益 会下降,类似于大批量训练;异步 FL 缓解了 Scalability (可扩展性),但是异步 FL 来一个聚合一个,与安全聚合不兼容,会导致 Privacy 问题。

2.1.2. 挑战:Scalability、Privacy
2.1.3. 解决的问题:
  • Scalability:加缓冲机制优化异步聚合,具体:服务器在执行服务器更新之前将K个客户端更新聚合到安全缓冲区中
  • Privacy:SecAgg 使得诚实但好奇的服务器无法看到单个客户机的更新;在服务器上执行DP裁剪和噪声添加,保护客户机的数据免受基于计算的输入和输出的观察,从而提供更好的隐私-效用权衡。
2.1.4. 贡献点:
  • 提出一种新的异步联邦优化框架FedBuff,具有 缓冲 异步聚合,通过 安全聚合 差分隐私 实现对诚实但好奇的威胁模型的 可扩展性隐私性
  • 给出了FedBuff在光滑非凸环境下的收敛性分析。当客户端采取Q个本地SGD步骤时,FedBuff需要的服务器迭代,以达到的准确度
  • 实验验证 即使没有惩罚掉队者,FedBuff 也比同步FL算法效率高3.8。FedBuff 比文献中最接近的异步FL算法 FedAsync (Xie et al, 2019) 效率高2.5倍。K = 10是跨基准测试的良好设置,不需要调优
  • 第一个提出与 SecAgg 和全局用户级 DP 兼容的异步联邦优化框架

3. Background

3.1.1. 同步FL

如图:当并发训练的用户数超过 100 时收益递减。例如,将并发性增加10倍(100 - > 1000)将使通信轮数减少不到2倍。类似于大批训练,增加批大小最终会带来递减的回报

最优的服务器学习率随着并发性的增加而增加,高并发性意味着对更多用户进行聚合,这样能够减少方差,使服务器“迈出”更大的步,减少达到目标精度所需的轮数。然而,为了获得稳定、收敛的训练结果,服务器学习率不能无限增加,并发聚合的用户数也不能无限增加;最终会饱和。

3.1.2. 异步FL

每次客户端更新完成都强制服务器更新,这样的聚合方式不满足安全聚合的条件,此外,在AsyncFL中提供用户级DP仅适用于本地差分隐私(LDP),其中客户端剪辑模型更新并在将其发送到 Server 之前在本地添加噪声

3.1.3. SecAgg :将单个客户端 i 的更新放在一组客户端更新的集合中,通过混淆客户端 i 和其他客户端的更新增强隐私
3.1.4. DP:先求偏导,对偏导进行裁剪得到相邻数据集,再添加噪声

DP的实现依赖于 服务器使用 SecAgg

4. 问题描述:System model/架构/对问题的形式化描述

找到一个在(加权)平均值上很好地拟合所有客户数据的模型

5. 解决方法

5.1. 执行流程:

5.2. 挑战问题怎么解决:

添加缓冲机制提高可扩展性,在缓冲机制的前提下,用差分隐私实现安全聚合,提高隐私

5.3. 性能保证(performance guarantee):理论分析,使用什么理论,怎么分析/解决

暂时先跳过

5.4. Practical Improvements

5.4.1. Staleness scaling.

控制过时度 Ti(t) 对 客户端 i 更新服务器 t 的贡献影响

5.4.2. Learning rate normalization

同步与异步 FL ,两种方式对客户端来讲 round 的定义不同,但服务器规定的批处理大小 B 对所有客户端都相同。

其中

是用于该步骤的实际批处理大小

6. 效果:重点是实验设计,每一部分实验在验证论文中的什么结论

6.1. 实验设置

6.1.1. 数据集、模型、任务

Sent140是文本分类数据集(二元情感分析)

CelebA和CIFAR-10是图像分类数据集(多类分类)

  • 对于Sent140,在660,120个客户端上训练LSTM分类器,其中每个Twitter帐户对应一个客户端。
  • 对于CelebA,在9,343个客户端上训练与LEAF相同的卷积神经网络分类器,按照(Hsieh et al .(2020))的建议,将批处理归一化层替换为组归一化层(Wu and He(2018))
  • 对于CIFAR-10,使用参数为0.1的Dirichlet分布生成5000个非id客户端,方法与(Hsu等)中相同
    对比实验
6.1.2. 实验设置

用三种不同的种子重复每个实验,并取平均值。对于异步FL,假设客户端以恒定的速率到达,从半正态分布中采样延迟分布,即客户端下载和上传操作之间的时间延迟。选择这个分布是因为它最符合在生产FL系统中观察到的延迟分布

6.2. 对比实验(实验部分暂时没有深入去看,想的是用到的话再回来仔细看)

频繁更新服务器模型的好处超过了客户端模型更新过时的成本


超参数确定实验

7. (备选)自己的思考

论文对你的启发,包括但不限于解决某个问题的技术、该论文方法的优缺点、实验设计、源码积累等。

背景:

挑战:

问题:

相关工作:

算法:

实验



 


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/1971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI视频分析技术的常用开源模型及TSINGSEE青犀AI视频识别分析能力介绍

AI视频分析技术是指利用人工智能技术来对视频数据进行分析和处理的技术。开源模型是指可以免费获取和使用的代码模型,可以帮助开发人员快速构建和部署AI视频分析应用程序。 以下是一些业内常用的用于AI视频分析技术的开源模型: OpenCV:Open…

APP开发_ js 控制手机是否显示状态栏

1 Android 控制手机显示或隐藏状态栏的方法 1.1 使用 View 的 setSystemUiVisibility 方法 这个方法允许设置系统 UI 的可见性,包括状态栏。你可以通过组合不同的标志来实现不同的效果。 示例代码: Override protected void onCreate(Bundle saved…

给字符串添加加粗标签(AC自动机+Python)

可以暴力解决,但是为了锻炼一下ac自动机的编程,我们使用ac自动机。 ac自动机主要维护两个列表,一个列表ch,ch[f][idx]表示从父节点f向idx这个方向走,走到的节点。另一个列表nex,nex[i]表示节点i回跳边的节…

01 【哈工大_操作系统】x86_64 常用寄存器大全

在学习CPU底层技术的时候,难免会接触到各式各样的寄存器。尤其是在使用汇编语言编写操作系统时,寄存器更是必不可少的。因此,这篇文章将来详细聊聊 x86_64 架构中的所有寄存器,按照从 常用->不常用 的顺序来进行介绍。 首先&a…

操作系统的特性

操作系统的性质 并发性 操作系统支持多道程序设计,即允许多个程序并发执行。通过进程管理和调度机制,操作系统能够在单个处理器上模拟出多个任务同时运行的效果,提高系统资源利用率和用户响应体验。并发性也要求操作系统具备进程同步、互斥和…

Spark-机器学习(4)回归学习之逻辑回归

在之前的文章中,我们来学习我们回归中的线性回归,了解了它的算法,知道了它的用法,并带来了简单案例。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请…

Syncovery for Mac v10.14.3激活版:文件备份和同步工具

Syncovery for Mac是一款高效且灵活的文件备份与同步工具,专为Mac用户设计,旨在确保数据的安全性和完整性。该软件支持多种备份和同步方式,包括本地备份、网络备份以及云备份,用户可以根据实际需求选择最合适的方案。 Syncovery f…

信息系统项目管理师0062:需求分析(5信息系统工程—5.1软件工程—5.1.2需求分析)

点击查看专栏目录 文章目录 5.1.2需求分析1.需求的层次2.需求过程3.UML4.面向对象分析记忆要点总结5.1.2需求分析 软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。根据IEEE的软件工程标准词汇表,软件需求是指用户解决问题或达到目标所需的条件或能力,是…

【深度学习】烟雾和火焰数据集,野外数据集,超大量数据集,目标检测,YOLOv5

标注了2w张数据集,是目标检测yolo格式的,有火焰、烟雾两个目标。 训练方法看这里: https://qq742971636.blog.csdn.net/article/details/138097481 打包 依据不一样的需求, 详情请查看 https://docs.qq.com/sheet/DUEdqZ2l…

多元函数泰勒公式(含黑塞矩阵)

一元函数的泰勒公式: 接下来,由一元函数有关知识,我们有: 注意这里的dxn中,应把dx看作一个整体,即一个微小变量的n次方 我们接下来推导微分算子: 接下来,把一元泰勒公式转为微分形式: 对于二元…

React.js 3D开发快速入门

如果你对 3D 图形的可能性着迷,但发现从头开始创建 3D 模型的想法是不可能的 - 不用担心! Three.js 是一个强大的 JavaScript 库,它可以帮助我们轻松地将现有的 3D 模型集成到 React 应用程序中。因此,在本文中,我将深…

Linux tcp/ip 网路协议栈学习-00 前言

Linux tcp/ip 网路协议栈学习-00 前言 目录 Linux tcp/ip 网路协议栈学习-00 前言 (1)预备知识 (2)前置知识 (3)学习目标 (4)总结 (1)预备知识 好工具事半功倍,做任何事情都需要有方法和工具,同样,阅读 Linux 内核源码也是如此…

ExcelVBA把当前工作表导出为PDF文档

我们先问问Kimi Excel导出为PDF的方法有多种,以下是一些常见的方法: 1 使用Excel软件的内置功能: 打开Excel文件,点击“文件”菜单。选择“另存为”,在“保存类型”中选择“PDF”。设置保存路径和文件名,点…

【机器学习】重塑汽车设计与制造:实例与代码探索

机器学习重塑汽车设计与制造 一、机器学习在汽车设计中的应用二、机器学习在智能制造与生产中的应用 在数字化浪潮的推动下,机器学习技术正逐步成为汽车行业的创新引擎。从概念设计到智能制造,机器学习正以其独特的优势助力汽车产业的革新与发展。本文将…

数据挖掘实验(Apriori,fpgrowth)

Apriori:这里做了个小优化,比如abcde和adcef自连接出的新项集abcdef,可以用abcde的位置和f的位置取交集,这样第n项集的计算可以用n-1项集的信息和数字本身的位置信息计算出来,只需要保存第n-1项集的位置信息就可以提速…

day06 51单片机-点阵led

1 点阵LED 1.1 需求描述 本案例介绍如何使用点阵LED显示一排由左上到右下的斜线。 1.2 硬件设计 1.2.1 硬件原理图 点阵内部的原理图: 点阵LED的原理也非常简单,就是LED点灯。例如,我们想要让13列(阳极端)9行(阴极端)的LED点亮,需要13为高电平,9为低电平。注意对于…

【Git】git revert 命令(撤销 commit 改动)

基本语法 Git revert命令用于通过创建一个新的commit来撤销一个或多个之前的commit。这样做的好处是保持了项目历史的完整性,并且可以将撤销的改动应用到其他分支。 撤销单个commit:如果你只想撤销一个commit,你可以使用以下命令 git revert…

Oracle进阶(3)——索引、权限、角色管理、分区表

一、索引 在 Oracle 数据库中,索引是一种数据结构,用于加快数据库表的数据检索速度。索引存储着表中一个或多个列的值以及对应的行的物理地址或指针。通过使用索引,数据库可以更快地定位到符合特定条件的行,而不必扫描整个表。索引…

logback添加日志行号

logback打印行号 全量配置如下 在包名后面添加\(%F:%L\\)这样打印的日志是带类名加行号,支持 ide 点击跳转(xxx.main.java:18)精简配置如下 打印全量类占用显示位置去掉主类名直接打印行号%clr(%4.4L{4})这样打印的日志只是加行号解释:%4:这…

【源码】Spring validation参数校验之分组序列校验@GroupSequenceProvider、@GroupSequence的实现原理

Spring validation参数校验系列 1、Spring validation参数校验基本使用 2、Spring validation参数校验之自定义校验规则及编程式校验等进阶篇 3、Spring validation参数校验原理解析之Controller控制器参数校验中RequestBody参数校验实现原理 4、Spring validation参数校验…