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

REFL: 联邦学习中智能的设备选择方法

原创 齐天宇 隐私计算研习社

收录于合集#联邦学习54个

现有的FL方案使用随机的参与者选择来提高选择过程的公平性,但是这会导致资源的低效利用和较低的训练质量。

本文系统地解决了FL中资源效率低效的问题,展示了智能参与者选择和合并来自落后参与者的更新的好处。我们演示了这些因素如何在提高训练后的模型质量的同时提高资源效率。

论文标题:REFL: Resource-Efficient Federated Learning

论文链接:https://mcanini.github.io/papers/refl.eurosys23.pdf

1

Introduction

主要挑战是大量学习者在计算能力和数据分布方面的异质性,这可能会影响训练的效果。

精确度时间是一个重要的指标,它取决于培训的统计效率和系统效率。失败的回合和过度参与的参与者会导致计算的浪费,这在以往的FL方法中大多被忽视了。本文目标是优化FL系统的设计,使其在不同的环境下具有资源与精度之比。这意味着减少了达到目标精度所消耗的计算资源,而不会对精度时间产生重大影响。

本文提出REFL,这是一种在不牺牲统计和系统效率的情况下最大化FL系统资源效率的实用方案。REFL通过将参与者更新的集合从聚合分离到更新的模型中来实现这一点。REFL还智能地在可用的参与者中选择将来最不可能可用的参与者。

贡献:

  1. 强调学习者有限能力和可用性的资源利用在FL中的重要性,并提出REFL来智能地选择参与者并有效地利用他们的资源。

  1. 提出了陈旧感知聚合和智能参与者选择算法,以提高资源利用率,同时对准确性的时间影响最小。

  1. 使用真实世界的FL基准来实现和评估REFL,并将其与最先进的解决方案进行比较。

2

Background

在FL聚合中引入了截止时间

FL的异质性:

  1. 数据异质性:Noniid数据;

  1. 系统异质性:算力不同;

  1. 行为异质性:学员的可获得性因轮次而异;

当前常见的异步算法:

  1. SAFA:落后者参与者的半异步更新;然而,SAFA只允许学习者在有限的陈旧阈值内进行更新;

  1. FiLL支持陈旧度更新,但其协议与FedAvg不兼容;

  1. Oort优先选择学习速度快的学习者来缩短轮次持续时间。

3

The case for REFL

System Efficiency vs. Resource Diversity

当前FL对的设计,要么旨在减少达到准确的时间(系统效率),要么增加学习者池的覆盖率以增强数据分布并公平地分散训练工作量(资源多样性)。但没有考虑学习者的训练成本。

第一个目标导致对某些类别的学习者采取歧视性的做法,要么优先选择计算速度快的学习者,要么优先选择模型更新质量高的学习者(即具有高统计效用的学习者)

第二个目标需要将计算理想地分散到所有可用的学习者上,但代价是可能需要更长的轮次持续时间

本文的目标是在二者之间取得一种平衡。

Stale Updates & Resource Wastage

SAFA从异步方法中汲取灵感,允许掉队的参与者通过陈旧的更新为全球模型做出贡献。其对所有学员进行培训,并在预设比例的学员返回更新时结束一轮培训。SAFA允许参与者在该轮截止日期后报告,在这种情况下,更新将被缓存并在下一轮中应用。

SAFA+O代表着其预先知道哪些设备会被选择并聚合,可以一定程度减小开销。

原则上,允许陈旧更新可以减少循环持续时间,获得更好的时间准确性,同时保留掉队者的贡献。然而,主要的挑战是平衡参与者的数量,以避免大量的资源浪费

Participant Selection & Resource Diversity

Oort是通过改变设备选择策略,尽可能选择易于聚合的快速学习者提升准确率的设备,但减少了数据多样性。

同时还要考虑参与者可用性。每个设备参与者可用的时间长短不一。低可用性学习者可能需要特殊考虑,以增加独特参与者的数量,而不会对总体培训时间产生不利影响。

实验结果展示,动态且Noniid的情况下,准确率会下降10%左右。

综上,为了实现更好的模型泛化性能,应该在来自大部分学习者群体的数据样本上联合训练模型。(确保更广泛的学习者覆盖面

4

REFL design

REFL通过减少延迟参与者的资源浪费优先考虑可用性降低的参与者来实现这一点。它利用理论支持的方法,根据质量合并陈旧更新。

  1. 智能参与者选择(IPS):对提高资源多样性的参与者进行优先排序。

  1. 陈旧感知聚合(SAA):在不影响准确性的情况下提高资源效率。

Oort在培训的早期阶段将参与者的选择倾向于更快的学习者,从而错过了有限可用性的学习者,其回合时间是由掉队者决定的。通过允许过时更新。

REFL降低了对落后者的依赖。通过基于估计的可用性对学习者进行优先排序,REFL对更多样化的学习者集合进行采样。

Intelligent Participant Selection (IPS)

IPS增加了资源的多样性,使全球模型能够捕捉广泛分布的学习者数据。此外,它提供了一个可选组件,通过智能地调整每一轮的参与者数量来进一步减少资源浪费。

可用性预测模型:使用现成的时间序列模型来预测学习者的未来可用性。其中是轮次持续时间的平均估计。更新方法为,其中 是上一轮的持续时间。并且其会探测每个当前掉队者,计算其剩余时间 ,将 作为上一轮掉队者中能够完成能够完成训练的集合。所以参与者的数量被调整为

Staleness-Aware Aggregation(SAA)

收敛性分析

从理论上证明了带有陈旧更新的FedAvg算法能够收敛并获得收敛速度。考虑个设备的联合优化问题:

陈旧同步更新算法:

收敛性:

减轻陈旧度的影响(加权平均):

5

Evaluation

用FedSacle实现了FL的集成。

benchmark:

数据异构:1、均衡分布;2、均匀分布;3、Zipf分布

系统性能:从真实数据中测量进行随机分配。

可用性模型:90%的准确率。

6

Result

与SAFA相比,REFL耗时基本类似,但资源消耗较少。

加入动态评估时间可用参与者效果会更好。

在全部可用的情况下,Oort在iid情况下效果很好,但在Noniid情况下不能选择足够丰富的数据。由于SAA组件的加入,REFL以较低的资源使用获得了良好的模型质量。

大训练参与者情况下的效果:

未来硬件进步的影响:

作者简介:齐天宇,北京理工大学自动化学院智能信息与控制研究所研究生。主要研究兴趣包括机器学习、联邦学习、隐私保护。知乎:一朵小脑花。

END

隐私计算研习社

开放隐私计算社区

97篇原创内容

公众号

往期推荐

密码学中常见加密算法的python模块整理

上岸!选择你的隐私计算导师!

联邦学习 (FL) 中常见的3种模型聚合方法的 Tensorflow 代码示例

对于多方安全计算,你是否也有这样的疑惑?

欢迎投稿

邮箱:pet@openmpc.com

参与更多讨论,请添加小编微信加入交流群

分享此内容的人还喜欢

上岸!选择你的隐私计算导师!

隐私计算研习社阅读 996不喜欢

不看的原因确定

  • 内容质量低

  • 不看此公众号

可信区块链隐私计算平台研究与实现

隐私计算研习社阅读 457不喜欢

不看的原因确定

  • 内容质量低

  • 不看此公众号

对于多方安全计算,你是否也有这样的疑惑?

隐私计算研习社阅读 502不喜欢

不看的原因确定

  • 内容质量低

  • 不看此公众号

写下你的留言

相关文章:

REFL: 联邦学习中智能的设备选择方法

原创 齐天宇 隐私计算研习社 收录于合集#联邦学习54个现有的FL方案使用随机的参与者选择来提高选择过程的公平性,但是这会导致资源的低效利用和较低的训练质量。本文系统地解决了FL中资源效率低效的问题,展示了智能参与者选择和合并来自落后参与者的更新…...

Linux:NFS服务器

目录NFS服务器的介绍例NFS服务器的介绍 1,NFS(网络文件系统),主要用于服务器分享提供文件或文件系统等服务,与其他服务器有所不同,主打的是分享,所以没有配置文件,只需要在 /etc/ex…...

电子技术——数字逻辑反相器

电子技术——数字逻辑反相器 在学习完如何通过CMOS数字电路实现组合逻辑,接下来我们评估这种数字CMOS电路的性能。首先,我们考虑最基本的部件——反相器。 电压传导特性 下图是一个反相器的原理图: 在之前,我们已经介绍了MOSFE…...

python的多线程编程之锁

1、 背景概述 在上篇文章中,主要讲述了python中的socket编程的一些基本方面,但是缺少关于锁的相关概念,从而在这篇文章中进行补充。 由于在python中,存在了GIL,也就是全局解释器锁,从而在每次进行获得cpu的…...

Android Framework-进程间通信——Binder

我们知道,同一个程序中的两个函数之间能直接调用的根本原因是处于相同的内存空间中。 比如有以下两个函数A和B: /*Simple.c*/ void A() { B(); } void B() { }因为是在一个内存空间中,虚拟地址的映射规则完全一致,所以函数A和B之…...

有趣的小知识(二)浏览器内的秘密:了解Cookie基础知识

一、简介 Cookie是一种小型的文本文件,由Web服务器发送给Web浏览器,并存储在用户的计算机硬盘上。它通常用于记录用户的偏好、登录状态、购物车信息等,以便在用户下次访问该网站时能够提供更好的用户体验。Cookie通常包含网站的名称、Cookie的…...

Spring框架

DI:依赖注入IOC:控制反转AOP:面向切面IOC容器:存放管理各种对象Spring优势:低耦合。(降低组件之间的关联性,实现软件各层之间的解耦)声明式事务管理(基于AOP来管理)和其他框架的整合&#xff08…...

mysql8的表锁排查

information_schema.innodb_trx ##正在运行的事务信息。 sys.innodb_lock_waits ##处于锁等待的关联事务信息。 performance_schema.threads ##SQL线程及线程号、进程号、OS线程号等信息 # 查询锁的情况 select * from performance_schema.data_locks where object_name =t_xxx…...

【C语言】深度理解指针(上)

前言🌊谈到指针,想必大家都不陌生。它不仅是C语言的重难点,还是不少C初学者的噩梦。本期我们将深度探讨一些较为复杂的指针以及指针的妙用,带领大家感受指针的魅力😝。首先,我们先来复习复习指针的概念&…...

最近我的视频播放浅学总结

因为想做一个类似苹果的同播共享功能,这一段时间对音视频做了一些浅浅的学习,现简单总结记录。 我的需求是找到一个尽可能简单的方案来两人播放一段视频,并且能够进度和操作同步,所以基本不能有延迟,同时能够显示WebV…...

【C/C++基础知识点】输出n位斐波那契数列

目录 前言什么是斐波那契数列兔子的故事小知识点收尾前言 在软件行业已经有快十年,技术虽然一般般,但是足够应付额解决编程入门的相关问题! 都说十年磨一剑,积累到一定经验,是时候发挥自己的价值,给予入门的同行些许的帮助! 为什么要写收费专栏,其实原因很简单,时间就…...

C语言拔高知识——指针的进阶(万字大文超详细)

在之前的文章中,我已经讲解过了初阶指针的内容,今天就来讲一讲指针的进阶! 上篇指针地址:保姆式指针讲解,超详细,适合初学者_指针详解_陈大大陈的博客-CSDN博客 目录 1. 字符指针 2. 指针数组 3. 数组指…...

程序员推荐的良心网站合集!(第二期)

今天来给大家推荐几个程序员必看的国外良心网站合集第二期合集。 Semantic Schoolar 由微软联合创始人Paul Allen开发的免费学术搜索引擎,不仅可以通过时间线快速定位想要的文献,还有强大的筛选功能可以精准的找到自己想要的文献,想要什么搜…...

【Java核心知识】spring boot整合Mybatis plus + Phoenix 访问Hbase与使用注意

为了Phoenix能让开发者通过SQL访问Hbase而不必使用原生的方式?引用Phoenix官网上的一句话:SQL is just a way of expressing what you want to get not how you want to get it. 即SQL不是一种数据操作技术,而是一种特殊的表达方式。只是表示…...

lua实现游戏全局鼠标点击效果

前言 最近在优化项目,策划提了一个需求,需要实现一个通用点击特效。 尝试1 首先想到的是改变鼠标指针样式,这个以前学过,还有点印象,以前刚开始学unity的时候,记得看到过一个方法可以改变游戏中鼠标指针样式。 方法如下:选择“Edit”——>“Project Setting”,打…...

MyBatis源码分析(二、续)SqlSource创建流程,SQL如何解析?如何将#{id}变成?的

文章目录实例一、SqlSource处理入口二、SqlSource处理逻辑1、XMLScriptBuilder 构造方法2、解析动态sql3、DynamicSqlSource4、RawSqlSource解析sql&#xff08;1&#xff09;parse方法解析sql写在后面实例 此处我们分析的sql&#xff1a; <select id"selectBlog&quo…...

用 C 语言开发一门编程语言 — 函数库的设计与实现

目录 文章目录目录前言前文列表基础功能演示数字运算变量与代数运算列表处理Lambda 函数条件分支字符串源文件加载函数库列表处理函数库条件分支函数库数学库前言 通过开发一门类 Lisp 的编程语言来理解编程语言的设计思想&#xff0c;本实践来自著名的《Build Your Own Lisp》…...

网络层IP协议与数据链路层以太网协议

文章目录一、IP协议IP地址地址管理路由选择DNS二、以太网协议以太网帧MTU一、IP协议 IP协议是我们网络层的代表协议&#xff0c;今天我们就来一起学习一下吧&#xff0c;我们这里介绍的主要是IPv4协议。 版本&#xff1a;指定IP协议的版本&#xff0c;版本的取值只有4&#x…...

JDK动态代理详解

1.什么是动态代理 可能很多小伙伴首次接触动态代理这个名词的时候&#xff0c;或者是在面试过程中被问到动态代理的时候&#xff0c;不能很好的描述出来&#xff0c;动态代理到底是个什么高大上的技术。不方&#xff0c;其实动态代理的使用非常广泛&#xff0c;例如我们平常使用…...

实时的软件生成 —— Prompt 编程打通低代码的最后一公里?

PS&#xff1a;这也是一篇畅想&#xff0c;虽然经过了一番试验&#xff0c;依旧有一些不足&#xff0c;但是大体上站得住脚。传统的软件生成方式需要程序员编写大量的代码&#xff0c;然后进行测试、发布等一系列繁琐的流程。而实时生成技术则是借助人工智能技术&#xff0c;让…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​&#xff1a; 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​&#xff1a; // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后&#xff0c;迭代器会失效&#xff0c;因为顺序迭代器在内存中是连续存储的&#xff0c;元素删除后&#xff0c;后续元素会前移。 但一些场景中&#xff0c;我们又需要在执行删除操作…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...