当前位置: 首页 > news >正文

【FedMut】Generalized Federated Learning via Stochastic Mutation

基于随机变异的泛化联邦学习

来源:AAAI2024

Abstract

问题:

        FedAvg 将相同的全局模型派发给客户端进行本地训练,容易陷入尖锐解,导致训练出性能低下的全局模型

提出 FedMut:

        本文提出了一种名为 FedMut 的新型FL方法,它根据梯度变化变异全局模型,以生成下一轮训练的几个中间模型。每个中间模型将被派发到客户端进行本地训练。最终,全局模型会收敛到突变模型范围内的平坦区域内

Introduction

        当模型收敛到两个客户端的平坦最优区域的重叠区域时,它在大多数客户端中都能实现高推理性能

Relate work

        相关工作部分讨论了为了提高传统 FL 的推理性能,已经提出了许多 FL 优化方法。具体来说,这些方法可以分为三类,即

  • 基于全局变量的 FL 方法

        这类方法通常使用全局变量来指导本地训练朝相似方向进行

FedProx 使用本地模型与全局模型之间的平方距离作为近端项来正则化本地损失函数,从而稳定模型的收敛

SCAFFOLD 生成一个全局控制变量,并使用该变量在本地训练过程中纠正本地模型的优化方向

缺点:需要额外的通信开销来分发全局变量,或者在客户端上计算近端项的额外计算开销

  • 基于设备分组的 FL 方法

        这类方法尝试根据特定指标对设备进行分组,然后从不同分组中智能选择设备进行本地训练。大多数设备分组方法使用模型相似性作为分组指标,因为由于隐私保护的考虑,直接获取每个客户端的数据分布是困难的

CluSamp 使用样本大小或模型相似性作为客户端分组的指标

FedCluster 将客户端分组,并在每个 FL 轮次中循环地执行 FL

缺点:它们需要获取所有本地模型,这导致 FL 与安全聚合机制不兼容,从而可能引起潜在的隐私泄露风险

  • 基于知识蒸馏的 FL 方法

        这些方法采用著名的知识蒸馏技术来增强FL的推理性能。具体来说,它们使用一个表现良好的“教师模型”来指导“学生模型”的训练

FedAUX 使用辅助数据集进行数据依赖的蒸馏来初始化服务器模型

FedDF 使用集成模型作为“教师模型”,并使用未标记数据进行蒸馏,以加速FL训练

FedGen 使用内置生成器和代理数据集实现无数据蒸馏,解决了对额外数据集的需求问题

缺点:需要额外的计算开销来进行知识蒸馏和额外的数据集

Motivation

        如果全局模型位于平坦区域,那么在其邻域内的模型仍然处于相同平坦区域的概率更高。相反,如果模型位于尖锐区域,那么在其邻域内的模型可能位于其他区域。基于这种直觉,我们变异全局模型以在其中生成多个模型,用于本地训练。当所有变异模型都位于相同区域时,我们可以获得一个泛化良好的全局模型,其邻域是平坦的

        如图2(a)所示,云服务器通过模型变异过程生成四个变异模型。由于由变异模型组成的邻域小于初始全局模型所在的平坦区域,所有变异模型仍然位于这个平坦区域内。通过本地训练,所有变异模型都朝着平坦区域的中心优化,聚合后的全局模型相应地更新到平坦区域的中心

        如图2(b)所示,由于由变异模型组成的邻域大于平坦区域,三个变异模型位于另一个区域而不是初始全局模型所在的尖锐区域。通过本地训练,三个变异模型朝着平坦区域优化,只有一个变异模型在尖锐区域进行优化。因此,聚合后的全局模型朝平坦区域移动

Settings

  • 随机梯度下降(SGD)优化器
  • learning rate = 0.01
  • momentum = 0.9
  • batch size = 50
  • epoch = 5

数据集

  • CIFAR-10
  • CIFAR-100
  • Shakespeare

模型

在 CIFAR-10 和 CIFAR-100 上

  • CNN、ResNet-18 

在 Shakespeare 上

  • LSTM

动机验证

 实验结果

 消融研究

相关文章:

【FedMut】Generalized Federated Learning via Stochastic Mutation

基于随机变异的泛化联邦学习 来源:AAAI2024 Abstract 问题: FedAvg 将相同的全局模型派发给客户端进行本地训练,容易陷入尖锐解,导致训练出性能低下的全局模型 提出 FedMut: 本文提出了一种名为 FedMut 的新型FL方法…...

在线教育项目(一):如何防止一个账号多个地方登陆

使用jwt做验证,使用账号作为redis中的key,登录的时候生成token放到redis中,每次申请资源的时候去看token 有没有变,因为token每次登录都会去覆盖,只要第二次登录token就不一样了...

旋转变压器软件解码simulink仿真

1.介绍 旋转变压器是一种精密的位置、速度检测装置,尤其适用于高温、严寒、潮湿、高速、振动等环境恶劣、旋转编码器无法正常工作的场合。旋转变压器在使用时并不能直接提供角度或位置信息,需要特殊的激励信号和解调、计算措施,才能将旋转变压…...

LeetCode 1321, 209, 102

目录 1321. 餐馆营业额变化增长题目链接表要求知识点思路代码 209. 长度最小的子数组题目链接标签暴力法思路代码 滑动窗口思路代码 102. 二叉树的层序遍历题目链接标签思路代码 1321. 餐馆营业额变化增长 题目链接 1321. 餐馆营业额变化增长 表 表Customer的字段为custome…...

vant ( weapp ) - - - - - van-tabs组件选中下划线初始位置异常

这里写自定义目录标题 1. 当前效果展示2. 官方解释 & 方案 1. 当前效果展示 明显可以看到框内的光标位置偏移了&#xff0c;但当切换一次之后就会显示正常。 只有初次打开的时候&#xff0c;才会出现上述问题。 代码如下&#xff1a; <van-popup show"{{ makeSho…...

007 栈(lua)

文章目录 Lua本身支持动态数组&#xff0c;通过表&#xff08;table&#xff09;实现&#xff0c;它类似于Java中的ArrayList。Lua的表是灵活的数组和字典的混合体。对于栈的实现&#xff0c;我们可以简单地使用一个表来模拟。 这里是一个简单的Lua栈实现&#xff0c;它包含了p…...

SQL中Order by详解

在 MySQL 中&#xff0c;ORDER BY 语句用于对查询结果进行排序。 语法&#xff1a; SELECT column1, column2,... FROM table_name ORDER BY column_name [ASC | DESC];以下是对其主要部分的详细解释&#xff1a; column_name &#xff1a;指定要依据其进行排序的列名。 ASC…...

【git】存在git LFS文件时如何处理

目录 1. 安装 Git LFS2. 初始化 Git LFS3. 跟踪大文件4. 添加和提交文件5. 克隆和拉取包含 LFS 文件的仓库 1. 安装 Git LFS 首先&#xff0c;你需要在你的系统上安装 Git LFS。你可以使用以下命令来安装&#xff1a; 在 Linux 上 # 对于基于 Debian 的系统 (如 Ubuntu) sud…...

面向阿克曼移动机器人(自行车模型)的LQR(最优二次型调节器)路径跟踪方法

线性二次调节器&#xff08;Linear Quadratic Regulator&#xff0c;LQR&#xff09;是针对线性系统的最优控制方法。LQR 方法标准的求解体系是在考虑到损耗尽可能小的情况下, 以尽量小的代价平衡其他状态分量。一般情况下&#xff0c;线性系统在LQR 控制方法中用状态空间方程描…...

【运维】在 Docker 容器中指定 UTF-8 编码:方法与技巧

在 Docker 容器中指定 UTF-8 编码&#xff1a;方法与技巧 在日常开发中&#xff0c;我们常常需要确保应用程序能正确处理各种字符编码&#xff0c;尤其是 UTF-8 编码。在 Docker 容器中运行应用程序时&#xff0c;正确设置字符编码尤为重要&#xff0c;因为容器通常是跨平台、…...

primetime中cell和net的OCV

文章目录 前言一、Cell OCV1. POCV coefficient file2. POCV Slew-Load Table in Liberty Variation Format&#xff08;LVF lib&#xff09; 二、Net OCV三、如何check OCV是否已加上&#xff1f;总结 前言 在生产中&#xff0c;外界环境的各种变化&#xff0c;比如PVT&#…...

FlinkX学习

FlinkX学习 FlinkX安装 由于flinkx已经改名chunjun 官网已不存在 (https://gitee.com/lugela/flinkx#flinkx)这里可以看到flinkx的操作文档 1、上传并解压 unzip flinkx-1.10.zip -d /usr/local/soft/2、配置环境变量 FLINKX_HOME/usr/local/soft/flinkx-1.10 export PATH$F…...

新书速览|解密AI绘画与修图: Stable Diffusion+Photoshop

《解密AI绘画与修图&#xff1a; Stable DiffusionPhotoshop》 本书内容 《解密AI绘画与修图&#xff1a;Stable DiffusionPhotoshop》全面介绍了Photoshop和Stable Diffusion的交互方式&#xff0c;以及各自的AI功能和具体使用方法。除了讲解功能&#xff0c;还通过实际案例加…...

1111111111111

计算机视觉技术在医疗领域的应用正迅速成为推动医疗进步的关键力量。通过高级图像处理和分析&#xff0c;这项技术在医学影像分析&#xff08;包括CT、MRI和X光图像&#xff09;、实时手术辅助、患者监测和护理、以及疾病早期诊断等方面展现出巨大的潜力。然而&#xff0c;随着…...

云原生概念

云原生是一种新型的技术体系和方法论&#xff0c;旨在充分利用云计算环境的优势&#xff0c;使应用程序更具有弹性、可伸缩性、可靠性和效率。以下是云原生的详细解释&#xff1a; 定义&#xff1a; 云原生是一种基于分布部署和统一运管的分布式云&#xff0c;以容器、微服务、…...

NoSQL之Redis高可用与优化

一、Redis高可用 在web服务器中&#xff0c;高可用是指服务器可以正常访问的时间&#xff0c;衡量的标准是在多长时间内可以提供正常服务&#xff08;99.9%、99.99%、99.999%等等&#xff09;。 但是在Redis语境中&#xff0c;高可用的含义似乎要宽泛一些&#xff0c;除了保证…...

MySQL 常见存储引擎详解(一)

本篇主要介绍MySQL中常见的存储引擎。 目录 一、InnoDB引擎 简介 特性 最佳实践 创建InnoDB 存储文件 二、MyISAM存储引擎 简介 特性 创建MyISAM表 存储文件 存储格式 静态格式 动态格式 压缩格式 三、MEMORY存储引擎 简介 特点 创建MEMORY表 存储文件 内…...

Leetcode 股票买卖

买卖股票最佳时机 I II 不限制交易次数 prices [7,1,5,3,6,4] 启发思路&#xff1a;最后一天发生了什么&#xff1f; 从第0天到第5天结束时的利润 从第0天到第4天结束时的利润 第5天的利润 &#xff08;第5天的利润&#xff1a;0/-4/4&#xff09; 关键词&#xff1a;天…...

小白学习手册:轻松理解MQ消息队列

目录 # 开篇 RabbitMQ介绍 通讯概念 1. 初始MQ及类型 2. MQ的架构 2.1 RabbitMQ的结构和概念 2.2 RabbitMQ消息流示意图 3. MQ下载使用 3.1 Docker下载MQ参考 3.2 进入RabbitMQ # 开篇 MessagesQueue 是一个抽象概念&#xff0c;用于描述消息队列系统的一般特性和功能…...

electron线上更新

一、安装electron-updater npm install --save electron-updater二、在main.js中引入使用 import { autoUpdater } from electron; if (!isDev) {const serverUrl https://your-update-server.com; // 自定义更新服务器地址或GitHub Releases地址autoUpdater.setFeedURL(${…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...