【论文笔记 | 异步联邦】Asynchronous Federated Optimization

论文信息

Asynchronous Federated Optimization,OPT2020: 12th Annual Workshop on Optimization for Machine Learning,不属于ccfa

introduction

背景:联邦学习有三个关键性质

  1. 任务激活不频繁(比较难以达成条件):对于弱边缘设备,学习任务只在设备空闲、充电、连接非计量网络时执行
  2. 通信不频繁:边缘设备和远程服务器之间的连接可能经常不可用、缓慢或昂贵(就通信成本或电池电量使用而言)
  3. 非iid训练数据: 联邦学习不同设备上的数据不相交,因此可能代表来自总体的非相同分布的样本

挑战:系统异构导致的“掉队者”问题

不同设备的计算和通信能力不同,可能会有很多弱设备无法按时完成本地更新任务

解决的问题:

  1. 解决正则化的局部问题保证收敛性
  2. 使用加权平均更新全局模型,其中混合权值作为过时性的函数自适应设置 α

贡献点:

  1. 提出了新的异步联邦优化算法,给出了原型系统设计
  2. 证明了该方法对于一类受限的非凸问题的收敛性
  3. 提出了控制由异步引起的错误的策略。引入一个混合超参数 α,可以自适应地控制收敛速度和方差减少之间的权衡
  4. 实验表明提出的算法收敛速度快,并且在实际设置中通常优于同步联邦优化。

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

对问题的形式化描述

符号定义
在这里插入图片描述
在这里插入图片描述

0:调度程序通过协调程序触发训练
1,2: worker通过coordinator从server接收模型xt−τ
3 :worker按照算法1计算本地更新。Worker可以在工作和空闲两种状态之间切换
4,5,6:worker通过协调器将本地更新的模型推送到服务器。协调器将5中接收到的模型排成队列,并将它们依次提供给6中的更新程序。
7、8:服务器更新全局模型,并使其准备好在协调器中读取。在系统中,1和5是异步并行运行的

t:当前的全局模型版本
t - τ:设备接收到的全局模型版本
τ:过时度

解决方法

执行流程:

在这里插入图片描述

t:当前的全局模型版本
τ:设备接收到的全局模型版本
t - τ:过时度

挑战问题怎么解决:

  • 解决掉队者问题:允许异步聚合
  • 利用在这里插入图片描述
    ,调整 当前全局模型 与 从设备端接收到的模型 的 权重,完成对全局模型的更新在这里插入图片描述
    目的是降低陈旧模型的权重,减少陈旧模型对全局模型的负面影响

在这里插入图片描述
在这里插入图片描述

s( )需要满足两个条件

  • t = τ 时,模型是最新的,即 s(t-τ)=1
  • 随着 t-τ 的增加, s(t-τ)减少 s( ) 可以设置成以下三种形式 在这里插入图片描述

性能保证:

收敛性分析(略)

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

实验设置

数据集:CIFAR-10 和 WikiText-2。训练集被划分为n = 100个设备。小批量分别为50个和20个。
Baseline:

  • FedAvg:在每个epoch中,随机选择k = 10个设备启动本地更新
  • 单线程SGD
  • FedAsync,通过从均匀分布中随机采样陈旧度(t−τ)来模拟异步
    每个实验重复10次,取平均值。

对比实验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验效果:

  • FedAsync的收敛速度一般介于单线程SGD和fedavg之间。较大的α值和较小的陈旧度 使FedAsync更接近单线程SGD较小的α和较大的陈旧度 使得FedAsync更接近fedavg
  • 根据经验,FedAsync通常对超参数不敏感。当偏差较大时,可以通过调整α来提高收敛性。如果没有自适应α,则α越小越好。对于自适应α,经验上的最佳选择是 FedAsync+Hinge。FedAsync+Poly和FedAsync+Hinge具有类似的性能。
  • 与fedavg相比,FedAsync的性能与fedavg一样好,在大多数情况下甚至更好。当陈旧度较小时,FedAsync的收敛速度比fedag快得多。当陈旧度较大时,FedAsync仍然可以达到与fedag相似的性能。

(备选)自己的思考

异步 FL :一个FL生态中有一个Server,多个Device,其中不同device 的计算能力、通信资源以及本地数据集不同,导致device 进行本地模型训练所需的时间不同,有快有慢。传统FL 需要等待所有的device 完成本地模型训练后,server 端才会按照选定的策略(eg:加权平均)进行聚合。但是异步FL 不需要等待,只要涉及训练的device 中有一个完成训练,就可以上传到Server 端完成聚合。

问题: server 端 updater 顺次从 coordinater上获取 Xnew 进行模型更新,假设当最新的模型为 X3
,但其他模型都没训练完成时,全局模型再次更新为 X4,X3是会轮空还是? 思考:目前的论文大部分其实是半异步,就是 Server
端会等待一个固定时间 T 之后进行全局模型聚合,或者等待固定个数 n 个模型后进行聚合。而且一般情况下为了获得较好的模型,实验设定的
device 数都不会很少,基本不需要考虑这样的情况,也就是问题不存在 通过允许 Plato 代码得出, client 端和 fedavg
流程一致,只对算法进行修改 主要的修改在server

动机,通过什么方法解决,达到了什么效果,有什么可以改进的地方

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

  1. 不是每一篇论文都有以上内容,但是尽可能按照以上思路读论文、总结论文。
  2. 注意用自己的话总结以上内容,不要整篇翻译论文,而且不推荐使用类似知云翻译这种软件读论文。建议直接读英文原文,有不理解或者不知道的词可以翻译记录。
  3. 读论文的过程中,一定要多问为什么,多考虑这个问题存不存在、这个方法能不能解决,不要盲目迷信论文作者。
  4. 读论文的目的在于调研本领域的研究内容,发现问题,提出自己的想法,刷论文数量没有意义,需要发现读过论文对自己研究的价值。
  5. 当发现论文中存在自己不了解的技术或者方法,首先进行调研,不要有畏难的心理,多掌握一门工具能帮助你解决自己的研究问题。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

怎么配置python

右键点击“计算机”,选择“属性”。 在左侧栏找到“高级系统设置”。 点击“环境变量”。 在系统变量中,双击“Path”。 在字符串的末尾,加一个分号; 然后再输入你安装python的路径,如图所示: 点击“确定”&#xff0…

Python中的迭代器:深入理解与实用指南

文章目录 1. 迭代器的基本概念2. Python中的迭代器实例3. 自定义迭代器3.1 例子3.2 详细过程 4. 迭代器的高级应用5. 常见问题与解答 迭代器是Python中非常核心的概念之一,在面试中也会被问到。下面我会详细介绍什么是迭代器,使用方法,以及使…

JVM之初识垃圾收集器

JDK 8:Parallel Scavenge(新生代) Parallel Old(老年代)JDK8以后:G1收集器 什么是串行回收和并行回收? Serial收集器:串行收集器 新生代使用标记复制算法,老年代使用标记…

JSON驱动的动态SQL查询:实现灵活条件筛选的查询

当我们构建动态 SQL 查询功能时,需要考虑到安全性和灵活性的平衡。本文将讨论如何通过 JSON 数据和 FreeMarker 模板构造动态 SQL 查询,以及如何减少 SQL 注入的风险。 JSON 数据与动态 SQL JSON 是一种常用的数据交换格式,它的灵活性和易读…

【读点论文】YOLOX: Exceeding YOLO Series in 2021,无锚框单阶段目标检测方案,解耦检测头的分类和回归分支,优化标签分配策略

YOLOX: Exceeding YOLO Series in 2021 Abstract 在本报告中,我们介绍了YOLO系列的一些经验改进,形成了一种新的高性能探测器—YOLOX。我们将YOLO检测器切换到无锚方式,并进行其他先进的检测技术,即去耦头和领先的标签分配策略S…

信号处理相关知识

一: 1.序列——三种典型序列通过matlab绘图即可 2.数字信号的自变量一定是整数,幅度上取值是有限的状态(不一定是整数)。 3.抽取和插值 4.模拟正弦信号sin(wt):w是角频率,单位rad/s,f是频率w/2Π。 5.假设用采样周…

浏览器工作原理与实践--浏览上下文组:如何计算Chrome中渲染进程的个数

经常有朋友问到如何计算Chrome中渲染进程个数的问题,那么今天就来完整地解答这个问题。 在前面“04 | 导航流程”这一讲中我们介绍过了,在默认情况下,如果打开一个标签页,那么浏览器会默认为其创建一个渲染进程。不过我们在“04 |…

Qt | 远程仓库

git | 基本操作 01 远程仓库 在了解之前,先注册github(gitee或者gitcode等等)账号,由于你的本地Git仓库和github仓库之间的传输是通过SSH加密的,所以需要一点设置: 第一步:创建SSH Key。在用户主目录下,看看…

姿态估计-人脸识别mesh-3d手势识别-3d目标检测-背景分割-人脸关键点

往期热门博客项目回顾:点击前往 计算机视觉项目大集合 改进的yolo目标检测-测距测速 路径规划算法 图像去雨去雾目标检测测距项目 交通标志识别项目 yolo系列-重磅yolov9界面-最新的yolo 姿态识别-3d姿态识别 深度学习小白学习路线 AI健身教练-引体向上…

UE4 相机围绕某点旋转

关卡(一个相机CameraActor,一个Cube(名叫Target)): 关卡蓝图里的逻辑(为了大家看得清楚,特意连得很紧凑,也比较乱,不然一张截图放不下): 只对Yaw 只Pitch: 同样对Roll: 围绕任…

Modelsim与Verilog入门

0.什么是Modelsim? Modelsim是一个支持多语言的仿真环境,比如我知道的Verilog和VHDL语言都可以在里边使用,这俩都是硬件描述语言; 即就是个软件,你可以用Verilog语言来写代码,然后编译,仿真出…

C++学习进阶:异常

目录 1.异常处理机制 1.1.抛异常和捕获异常 1.1.1.异常机制的基本场景 1.1.2.函数调用中异常栈展开的匹配规则: 1.2.异常机制的实际应用场景 2.异常相关知识 2.1.异常安全和异常重新抛出 2.2.noexcept关键字 2.3.异常的优缺点 1.异常处理机制 我们在C语言…

Finding a needle in Haystack: Facebook’s photo storage——论文泛读

OSDI 2010 Paper 分布式元数据论文阅读笔记整理 问题 到2010年为止,用户已经在Facebook上传了超过650亿张照片,对于每个上传的照片,Facebook生成并存储四个不同大小的图像,导致目前存储了超过2600亿张图片,相当于超过…

AQS(AbstractQueuedSynchronizer)队列同步器源码解读

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 1. 前言 2. AOS、AQS、AQLS的区别 3. AQS的底层原理 3.1. 核心思想 3.2. 数…

Qt 项目文件(.pro)概述

Qt 项目pro文件 引言一、pro文件初探二、部分参数详解 引言 Qt工程项目由项目文件(.pro)进行管理。qmake使用文件中的信息生成Makefile,其中包含构建每个项目所需的所有命令。pro文件通常包含源文件和头文件的列表、常规配置信息以及任何特定…

ST-GCN模型详解(+openpose)

ST-GCN模型详解(openpose) 一、什么是ST-GCN呢 基于骨架的动作识别(Skeleton-Based Action Recognition)主要任务是从一系列时间连续的骨骼关键点(2D/3D)中识别出正在执行的动作。因为牵涉到骨骼框架这种…

CentOS7升级openssl

文章目录 一 系统环境二 操作步骤三 版本检查 一 系统环境 公司服务器等保要求,修复openssl的高危漏洞。 本机使用centos7.9系统,openssl版本是1.0.2k,计划升级到1.1.1q 在执行下列操作前,务必要打快照做好备份,以防升…

030——从GUI->Client->Server->driver实现对红外遥控的控制

目录 1、 解决韦东山老师irda模块中断申请失败的bug 2、 client添加处理程序 3、 添加服务器处理程序和驱动处理句柄 4、 处理数据读出不准确问题 5、 修改后的展示 1、 解决韦东山老师irda模块中断申请失败的bug irda需要通过中断来触发读操作,申请中断需要引…

Octopus v2:斯坦福的嵌入设备专用大模型

斯坦福大学推出了 Octopus v2,这是一种突破性的设备上语言模型,旨在解决与现有模型相关的延迟、准确性和隐私问题。 NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑…

源码篇--Nacos服务--中章(1):Nacos服务端的启动

文章目录 前言一、Nacos Console 启动入口:二、启动过程:2.1 容器启动监听器:2.1.1 调整启动标识为正在启动状态:2.1.2 环境准备阶段:2.1.3 容器环境准备:2.1.4 自定义的环境变量 设置:2.1.5 服…