【论文笔记 | 异步联邦】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. 当发现论文中存在自己不了解的技术或者方法,首先进行调研,不要有畏难的心理,多掌握一门工具能帮助你解决自己的研究问题。

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

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

相关文章

C++ ─── 操作符重载和赋值重载

目录 赋值运算符重载 运算符重载 赋值运算符重载(赋值重载operator) 前置和后置重载 赋值运算符重载 运算符重载 C为了增强代码的可读性引入了运算符重载 , 运算符重载是具有特殊函数名的函数 ,也具有其返回值类型&#xff0c…

某手滑块逆向流程分析

声明 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标网站 aHR0cHM6Ly93d3cua3VhaXNob3UuY29tL3Byb2ZpbGUvM3h4Ymt3ZDhta250ZWFj 参数流程…

【刷题笔记】第五天

文章目录 [705. 设计哈希集合](https://leetcode.cn/problems/design-hashset/)实现一:纯数组实现实现二:数组链表实现三:位运算 [A B Problem II ](https://vjudge.net.cn/problem/HDU-1002)[DNA sequence](https://vjudge.net.cn/problem/…

开发工具:推荐一款实用的浏览器查看json插件(附下载)

目录 插件简介 支持的 mime类型 插件特点 “Tree”视图支持的快捷键列表: “Code”视图支持的快捷键列表: 安装方法 使用效果 插件简介 “JSON Beautifier”扩展程序是一个实用工具,可方便查看、编辑、格式化、验证和导出JSON页面。该扩展程序无需任何设置即可运行…

# Nacos 服务发现-Spring Cloud Alibaba 综合架构实战(四) -实现 service2 子模块。

Nacos 服务发现-Spring Cloud Alibaba 综合架构实战(四) -实现 service2 子模块。 1、在 service2 子模块下的 service-2-api 二级子工程中,定义服务接口 创建 ProviderService.java /*** C:\java-test\idea2019\nacos_discovery\nacos-mi…

【Java开发指南 | 第三篇】Java 空行、强制类型转换及基本数据类型

读者可订阅专栏:Java开发指南 |【CSDN秋说】 文章目录 Java 空行强制类型转换Java 基本数据类型内置数据类型引用类型 Java 空行 空白行或者有注释的行,Java 编译器都会忽略掉。 强制类型转换 当需要将一个数据类型转换为另一个数据类型时&#xff0c…

全新升级数智化招标采购平台V7.0亮点,助推管理提升

数智化招标采购平台V7.0是郑州信源凭借18年以来在招采领域累积的深厚行业经验和业务洞察,迭代升级的全新产品,平台融合云原生、微服务、大数据、人工智能、物联网等先进技术,构建业务中台、数据中台、AI中台三大核心基座,以采购为…

rabbitMQ如何保证消息有序性

单队列(Single Queue)与单消费者(Single Consumer): 如果只有一个生产者向单一队列发送消息,并且这个队列只连接了一个消费者,则RabbitMQ默认情况下就能够保证消息的有序性。因为RabbitMQ会按照…

Cat6 屏蔽与非屏蔽:决定最佳选择

Cat6 电缆通常用于现代网络中的高速以太网数据传输。它们有两种类型:屏蔽 (STP) 和非屏蔽 (UTP)。这两种电缆之间的主要区别在于它们对电磁干扰 (EMI) 和串扰的抵抗力。 屏蔽 Cat6 电缆具有额外…

python代码打包exe文件

创建和激活虚拟环境 创建虚拟环境 首先让我们创建一个虚拟环境。你可以使用 venv 模块来创建一个虚拟环境。以下是创建虚拟环境的步骤: 打开终端(或命令提示符):进入你想要创建虚拟环境的目录。 运行以下命令来创建虚拟环境&a…

谷歌pixel6/7pro等手机WiFi不能上网,显示网络连接受限

近期在项目中遇到一个机型出现的问题,先对项目代码进行排查,发现别的设备都能正常运行,就开始来排查机型的问题,特意写出来方便后续查看,也方便其它开发者来自查。 设备机型:Pixel 6a 设备安卓版本:13 该方法无需root,只需要电脑设备安装adb(即Android Debug Bridge…

protobuf 编码原理

简介 Protocol Buffers(protobuf),它是 Google 开发的一种数据序列化协议(与 XML、JSON 类似)。 优点: 效率高:Protobuf 以二进制格式存储数据,比如 XML 和 JSON 等文本格式更紧凑…

Swift中的条件语句

在Swift中,条件语句用于根据条件的真假来执行不同的代码块。Swift提供了以下几种条件语句: if语句: if语句根据一个条件来执行代码块。如果条件为真,执行if代码块中的内容;如果条件为假,则跳过if代码块。 语…

同一个类中,对于@Transactional注解的方法调用,事务传播行为不会生效

Service public class MyService { Transactional public void methodA() { // some database operations methodB(); } Transactional(propagation Propagation.REQUIRES_NEW) public void methodB() { // some other database operations } }这里,即使…

基于机器学习的安全检测 网络入侵检测概述

1.概述 入侵检测是网络安全中的经典问题,入侵是指攻击者违反系统安全策略,试图破坏计 算资源的完整性、机密性或可用性的任何行为。由定义可见,入侵并非一种特定的入侵行 为,而是一类入侵行为的统称。常见的网络攻击方式包括拒绝服务攻击、伪装身份入侵等。 入侵检测系统(Intru…

C++这个编程语言以后会消失吗,就像以前70后学的编程语言?

随着AI自举编程的到来,绝大多数人类编程语言都会消失,只有 Scratch 这类启智语言作为儿童玩具保留下来。目前看来这一天不远了。 AI自举编程首先无需遵循这种可读文本变为二进制操作码的套路,它本身就是二进制的。而后,一旦智能制…

全局视角观看Python备忘录-英文版

全局视角观看Python备忘录-英文版

如何使用spring-AI?

Spring AI 简介 1、概览 Spring 通过 Spring AI 项目正式启用了 AI(人工智能)生成提示功能。本文将带你了解如何在 Spring Boot 应用中集成生成式 AI,以及 Spring AI 如何与模型互动。 2、Spring AI 的主要概念 首先回顾一下一些关键…

Qt中的槽(slot)和机器视觉的算子(operator)

Qt中的槽(slot)和机器视觉中的算子(operator)都是方法或函数,它们都是在软件中用于执行特定任务的代码块。 在Qt中,槽是一段可以被信号触发的代码,用于响应特定的事件。槽是对象的一部分&#…

十分钟搞定4G转Uart网关:FlexLua低代码助力

在当今的物联网应用中,各种设备之间的连接变得日益重要,而4G转Uart网关设备的出现为设备之间的通信提供了简便的解决方案,推动了物联网技术的不断发展。 4G转Uart网关的通信原理相对简单清晰。它通过4G网络接收数据,然后将数据转换…