联邦聚合(FedAvg、FedProx、SCAFFOLD)

目录

联邦聚合算法对比(FedAvg、FedProx、SCAFFOLD)

解决问题

FedAvg

FedProx

SCAFFOLD

实验结果


联邦聚合算法对比(FedAvg、FedProx、SCAFFOLD)

论文链接:

FedAvg:Communication-Efficient Learning of Deep Networks
from Decentralized Data

FedProx: Federated Optimization in Heterogeneous Networks

SCAFFOLD: SCAFFOLD: Stochastic Controlled Averaging for Federated Learning

解决问题

联邦学习存在四个典型问题:

  1. server端以及device端的网络连接是有限的,在任何时刻,可能都只有部分节点参与训练。
  2. 数据是massively分布的,所以参与联邦学习的devices非常多
  3. 数据是异构的
  4. 数据分布是不均匀的

这几篇论文的重点都试图在解决上面四个问题,研究的重心是,如何在2、3、4的条件下, 提出一种communication rounds最少的方法。

FedAvg

假设一共有 K K K个clients,每个clients都有固定容量的数据。在每轮训练开始的时候,随机 C C C( C C C 表示占比)个clients参与训练。即考虑有clients掉线的实际情况。

在这里插入图片描述

其中 f i ( w ) = ℓ ( x i , y i ; w ) f_i(w) = \ell(x_i, y_i;w) fi​(w)=ℓ(xi​,yi​;w) 表示clients端的损失函数。

FedAvg算法就是在clients端进行多轮训练,然后server端对各个clients端的 w根据数据量占比进行聚合。算法流程如下:

在这里插入图片描述

FedProx

FedProx对clients端的Loss加了修正项,使得模型效果更好收敛更快:

 

其中clients端的Loss为:

在这里插入图片描述

所以每轮下降的梯度为:

在这里插入图片描述

SCAFFOLD

 

FedProx 与 SCAFFOLD都是用了一个全局模型去修正本地训练方向。

实验结果

 

上图展示了达到0.5的test accuracy,各方法所需要的迭代轮数,SCAFFOLD是最快的。这是SCAFFOLD论文中做的对比实验,看起来FedProx没有达到宣称的效果。

需要的迭代轮数,SCAFFOLD是最快的。这是SCAFFOLD论文中做的对比实验,看起来FedProx没有达到宣称的效果。

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

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

相关文章

高级Android开发人员枯竭,在这个利润丰厚的领域如何蓬勃发展

为什么高级人才供不应求? 技术行业的发展速度非常快,新的技术和工具不断涌现,导致技能需求不断演变。这使得不断更新和学习变得至关重要。行业发展速度超过了教育和培训体系的能力跟进。传统教育往往滞后于最新的技术趋势和实践,…

FreeRTOS学习笔记—任务挂起和恢复

文章目录 一、任务挂起和恢复API函数1.1 vTaskSuspend()函数1.2 vTaskResume()函数1.3 xTaskResumeFromISR()函数 二、任务挂起和恢复2.1 任务1挂起解挂任务22.2 中断中解挂任务1 三、补充内容3.1 FreeRTOS数据类型3.2 中断优先级分组3.3 错误问题 一、任务挂起和恢复API函数 …

深入理解Go语言中的并发编程【27】【Goroutine的使用、定时器、select】

文章目录 Goroutine池worker pool(goroutine池) 定时器定时器 selectselect多路复用 Goroutine池 worker pool(goroutine池) 本质上是生产者消费者模型可以有效控制goroutine数量,防止暴涨需求: 计算一个…

瑞吉外卖-Day01

title: 瑞吉外卖-Day01 abbrlink: ‘0’ date: 2023-04-1 18:00:00 瑞吉外卖-Day01 课程内容 软件开发整体介绍 瑞吉外卖项目介绍 开发环境搭建 后台登录功能开发 后台退出功能开发 1. 软件开发整体介绍 作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流…

从小白到大神之路之学习运维第53天--------tomcat-web应用——————供开发的商城框架

第三阶段基础 时 间:2023年7月5日 参加人:全班人员 内 容: Tomcat应用服务 WEB服务 目录 实验环境:(四台服务器) 安装tomcat服务: NginxTomcat 负载均衡集群部署: 安装ng…

Python 利用深度学习识别空间推理验证码(一)

注意:本文会比较长,因为空间推理验证码本身比较复杂,我会详细的讲解,我是如何一步一步拆分空间推理的思想去实现的,另外,这里只介绍第一种思想来解决空间推理验证码,实际上,解决该验证码的方法也比较多,这第一种,我会讲解的比较简单,通俗易懂。 注意:下面数据集使用…

HttpRunner自动化之请求中带有 headers 的接口和发送POST请求

headers 可通过headers 添加头部信息,如下图 # 发送请求头headers的接口 - config:name: 百度接口用例base_url: https://www.baidu.com- test:name: 发送百度接口的头部信息request:url: /smethod: GETheaders:Accept: text/html,application/xhtmlxml,applicati…

gitHub

gitHub ** 创建一个仓库 git initgit add .git commit -m “first commit”git branch -M maingit remote add origin gitgithub.com:Dylanmenglliao/demo.gitgit push -u origin main ** 已存在仓库,建立关联 7. git remote add origin gitgithub.com:Dylanme…

遥感云大数据在灾害、水体与湿地领域典型案例及GPT模型

详情点击链接:遥感云大数据在灾害、水体与湿地领域典型案例实践及GPT模型 第一:基础 一:平台及基础开发平台 GEE平台及典型应用案例; GEE开发环境及常用数据资源; ChatGPT、文心一言等GPT模型 JavaScript基础&am…

【Hello mysql】 数据库基础

Mysql专栏:Mysql 本篇博客简介:简单的介绍mysql相关的一些基础知识和在Linux环境下的安装 让大家对于mysql有一个初步的认知 数据库基础 数据库基础数据库定义数据库再理解软件角度文件角度总结 主流数据库mysql安装卸载不要的环境获取mysql官方yum源安装…

java中预览pdf或者图片

GetMapping("preview1")ApiOperation(value "根据文件名实现预览功能")public void previewFile1( HttpServletResponse response) throws IOException {String filePath"C:\\Users\\Harbor Lau\\Desktop\\哈哈\\""11月燃油费(公开).pdf&q…

C# int[,] 和 int[,,]

如标题; 在C#中这两个是定义二维和三维数组的;这和C语言的写法不同; C语言定义二维数组是, int a[5][3]; 看下C#的多维数组;输出数组其中一个值; using System;class Program {static void Main(string[…