SCAFFOLD: Stochastic Controlled Averaging for On-Device Federated Learning
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文。
arXiv:1910.06378v1 [cs.LG] 14 Oct 2019

Abstract
联邦学习是现代大规模机器学习中的一个关键场景。在这种情况下,训练数据仍然分布在大量的客户机上,这些客户机可能是电话、其他移动设备或网络传感器,并且在不通过网络传输客户机数据的情况下学习集中式模型。此方案中使用的标准优化算法是联邦平均(FedAvg)。然而,当客户端数据是异质的(这在应用程序中是典型的)时,FedAvg并不能保证良好的收敛性。这是因为客户机上的本地更新可能会发散开来,这也解释了FedAvg在实践中的缓慢收敛和难以调整的特性。本文提出了一种新的随机控制平均算法(SCAFFOLD),该算法利用控制变量来减少不同客户之间的漂移。我们证明了该算法需要的通信次数明显减少,并且有良好的收敛性保证。
1. Introduction
在现代大规模应用程序中起关键作用的学习场景是联邦学习。与标准设置不同,标准设置使用存储在中央服务器中的大型数据集训练模型(Dean et al., 2012; Iandola et al., 2016; Goyal et al., 2017),在联邦学习中,训练数据仍然分布在大量客户机上,这些客户机可能是电话、其他移动设备、网络传感器或其他本地信息源(Konečn`y et al., 2016b,a; McMahan et al., 2017b; Mohri et al., 2019)。在不通过网络传输客户端数据的情况下,对集中式模型进行学习,从而确保了基本的隐私级别并限制了网络通信。
这种集中式模型受益于所有客户机数据,通常可以带来更优的性能,如在多个任务中所报告的,包括下一个单词预测(Hard et al., 2018; Yang et al., 2018),emoji预测(Ramaswamy et al., 2019),解码模型(Chen et al.,2019b),词汇估计(Chen et al., 2019a),低延迟车对车通信(Samarakoon et al., 2018)和健康预测模型(Brisimi et al., 2018)。尽管如此,联邦学习提出了几种类型的问题,并已成为多个研究工作的主题,研究该场景中的学习和泛化特性(Mohri et al., 2019),系统、网络和通信瓶颈问题,这些问题是由于中央服务器和客户机之间频繁的交换造成的,具有不可靠或相对较慢的网络连接(McMahan et al., 2017a)和许多其他连接。
本文讨论了联邦学习中优化任务的关键问题,特别是设计一个具有收敛性保证的高效优化解的关键问题。联邦学习中的优化问题一直是众多研究工作的主题。包括设计更有效的沟通策略(Konečn`y et al., 2016b,a; Suresh et al., 2017; Stich et al., 2018; Karimireddy et al., 2019; Basu et al., 2019),具有依赖图的并行随机优化的下界研究(Woodworth et al., 2018b),利用差异隐私保证设计高效的分布式优化方法(Agarwal et al., 2018),不可知公式的随机优化解决方案(Mohri et al.,2019),以及结合密码技术(Bonawitz et al.,2017),参见(Li et al.,2019a)以深入了解联邦学习的最新工作。
联邦学习的训练通常包括交替的通讯和本地更新。在每一轮中,客户机的子集被采样,每个采样的客户机接收共享的全局模型。然后,客户机对该模型执行本地更新,仅涉及其本地训练数据。然后,在回合结束时,采样的客户机将其更新发送到服务器,服务器聚合更新以形成新的全局模型。区分联邦学习和并行或分布式训练的关键有三个方面:(1)不同客户机上的数据以及损失函数可能非常异质,这远远不能代表联合数据;(2)只有中央服务器选择的设备的一小部分参与每一轮;(3)服务器从不跟踪任何单个客户端信息,只使用聚合来确保隐私。
SCAFFOLD: Stochastic Controlled Averaging for On-Device Federated Learning的更多相关文章
- 【流行前沿】联邦学习 Partial Model Averaging in Federated Learning: Performance Guarantees and Benefits
Sunwoo Lee, , Anit Kumar Sahu, Chaoyang He, and Salman Avestimehr. "Partial Model Averaging in ...
- 【流行前沿】联邦学习 Federated Learning with Only Positive Labels
核心问题:如果每个用户只有一类数据,如何进行联邦学习? Felix X. Yu, , Ankit Singh Rawat, Aditya Krishna Menon, and Sanjiv Kumar ...
- Local Model Poisoning Attacks to Byzantine-Robust Federated Learning
In federated learning, multiple client devices jointly learn a machine learning model: each client d ...
- 【论文笔记】A Survey on Federated Learning: The Journey From Centralized to Distributed On-Site Learning and Beyond(综述)
A Survey on Federated Learning: The Journey From Centralized to Distributed On-Site Learning and Bey ...
- 联邦学习(Federated Learning)
联邦学习简介 联邦学习(Federated Learning)是一种新兴的人工智能基础技术,在 2016 年由谷歌最先提出,原本用于解决安卓手机终端用户在本地更新模型的问题,其设计目标是 ...
- 联邦学习 Federated Learning 相关资料整理
本文链接:https://blog.csdn.net/Sinsa110/article/details/90697728代码微众银行+杨强教授团队的联邦学习FATE框架代码:https://githu ...
- Advances and Open Problems in Federated Learning
挖个大坑,等有空了再回来填.心心念念的大综述呀(吐血三升)! 郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 项目地址:https://github.com/open-intellige ...
- Federated Learning: Challenges, Methods, and Future Directions
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:1908.07873v1 [cs.LG] 21 Aug 2019 Abstract 联邦学习包括通过远程设备或孤立的数据中心( ...
- Overcoming Forgetting in Federated Learning on Non-IID Data
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文. NeurIPS 2019 Workshop on Federated Learning ...
随机推荐
- PHP array_combine() 函数
------------恢复内容开始------------ 实例 通过合并两个数组来创建一个新数组,其中的一个数组元素为键名,另一个数组元素为键值: <?php$fname=array(&qu ...
- PDO::inTransaction
PDO::inTransaction — 检查是否在一个事务内(PHP 5 >= 5.3.3, Bundled pdo_pgsql) 说明 语法 bool PDO::inTransaction ...
- luogu P5289 [十二省联考2019]皮配 背包
LINK:皮配 我承认是一道很难的题目. 不过对于这道题 部分分的提示显得尤为重要. 首先是 40分的暴力dp 很容易想 但是不容易写. 从40分可以发现我们只需要把蓝阵营和鸭派系的人数给存在起来就行 ...
- 如何在 Android 安卓手机上运行 Node.js 应用 | 如何在安卓手机配置node开发环境
最近在学习js,由于没法随身携带笔记本电脑,在手机翻阅<JavaScript高级程序设计>时,时常想调试一下书中的代码.于是就有了,能否在手机上配置一个js开发环境.考虑到手机上的Chro ...
- apicloud版人人商城app打包教程
一.APP环境搭建和配置编译1.登录APICLOUD后台新建应用 步骤一 .注册账号注册apicloud 账号并登录APICLOUD控制台 注册apicloud 账号:https://www.apic ...
- OAuth2.0-4整合网关
.antMatchers("/**").access("#oauth2.hasScope('scope1')")上面这行代码,只是控制大范围的访问权限,具体到方 ...
- 关于saltstack的job问题
问题背景:搭建一个多节点后端集群,使用saltstack作为底层管理,使用Python封装saltstack接口成逻辑层.通过逻辑层的调用实现对整个集群的运维管理. 问题:随着项目中模块的增多,发现s ...
- 嵌入式linux下获取flash分区大小
在嵌入式系统中,由于flash存储空间有限,或者是存储数据,实现数据的循环删除,需要获取到分区的使用情况,可以通过系统下的函数statfs来获取使用情况:实现代码如下: flashInfo.cpp # ...
- Netty(一):的入门使用。
Netty的入门基本使用流程代码,不做具体分析.使用版本为Netty 4.x版本. 服务端调用示例: 绑定端口号为8080端口 package com.cllover; import com.sun. ...
- javascript Array对象笔记
Array对象 利用new Array() var arr1=new Array(1,2) 注意 如果括号里面只有一个数字则表示的是数组的长度 检测是否是数组 ...