【论文考古】联邦学习开山之作 Communication-Efficient Learning of Deep Networks from Decentralized Data
B. McMahan, E. Moore, D. Ramage, S. Hampson, and B. A. y Arcas, “Communication-Efficient Learning of Deep Networks from Decentralized Data,” in Proceedings of the 20th International Conference on Artificial Intelligence and Statistics, Apr. 2017, pp. 1273–1282.
联邦学习
特征
- unbalanced and non-IID data:数据的异构性是FL的决定性特征。
- massively distributed:用户数量比每个用户的平均样本数量还要多
- limited communication (client availability):考虑offline/slow/expensive connections
优势:communication-efficient
communication-efficient的含义并不是相较于传输整体数据或整个网络结构,只传输参数更新会降低通信开销。而是和同步的SGD(仅用所有本地数据训练一次就进行参数合并,是当时的基于数据中心训练方法的SOTA)相比,在更少的通信次数下就能达到目标准确率(减少10到100倍的通信次数)。
our goal is to use additional computation in order to decrease the number of rounds of communication needed to train a model
对于不传输本地数据这一点,作者强调的是隐私保护,而不是节省通信开销。
核心算法:FedAvg
精彩观点
每次更新只针对当前模型,因此不建议利用连续两次更新的相关性
Since these updates are specific to improving the current model, there is no reason to store them once they have been applied.
每一轮的用户参与并不是越多越好,需要考虑一个性能和通信的折衷
We only select a fraction of clients for efficiency, as our experiments show diminishing returns for adding more clients beyond a certain point.
FedAvg的有很强的鲁棒性,作者推测是因为带来了类似于dropout的正则化作用
averaging provides any advantage (vs. actually diverging) when we naively average the parameters of models trained on entirely different pairs of digits. Thus, we view this as strong evidence for the robustness of this approach
We conjecture that in addition to lowering communication costs, model averaging produces a regularization benefit similar to that achieved by dropout [36]
batch size只要和硬件相匹配,减少它就不会显著增加计算时间
As long as B is large enough to take full advantage of available parallelism on the client hardware, there is essentially no cost in computation time for lowering it, and so in practice this should be the first parameter tuned.
性能提升
- 多个模型框架、大小规模都能应用
- 2层NN,16万参数;3层CNN,166万参数
- MNIST:100个用户,non iid下每个用户包括的手写数字不超过2个,CNN下97次通信可以达到99%准确率,比FedSGD快10倍;NN下380次通信达到97%正确率;iid 下CNN本地参数更新1200次,18次通信达到99%准确率,通信次数下降35倍
- Cifar10:100个用户,80%准确率,通信280次,快64倍
- Shakespeare: 1146个用户,达到54%准确率,non IID下快95倍
- 大规模LSTM:50万个用户,一千万的post,每次200个用户更新,准确率10.5%,快23倍
- 本地训练batch size取10或50,epoch取5或20,fraction取0.1
挖的坑
文章的训练对象是mobile devices,因此和通信结合是自然而然的
the identification of the problem of training on decentralized data from mobile devices as an important research direction
- 不稳定通信情况下的调度
- 考虑通信资费的博弈论角度
- 通信中误码率的影响、传输速率的影响
异构数据
数据初始分布不同有何影响(每个用户的损失函数都不同)
\(F_k\) could be an arbitrarily bad approximation to \(f\)
\[f(w)=\sum_{k=1}^{K} \frac{n_{k}}{n} F_{k}(w) \quad \text { where } \quad F_{k}(w)=\frac{1}{n_{k}} \sum_{i \in \mathcal{P}_{k}} f_{i}(w)
\]训练中数据的增删有何影响
数据的上线时段不同有何影响
在不平衡的数据分布下,小数据集的过拟合程度很大,也没有影响吗?
网络参数传输
部分网络传输
one-shot averaging(多半是正则的)训练完后直接合并
本地训练的过拟合程度和发散究竟有何关系?
- Shakespeare LSTM过拟合后发散严重,但是MNIST CNN没有(但还是本地越多越容易发散)
- 大规模LSTM时,epoch为1时的训练速度比epoch为5时更快
This result suggests that for some models, especially in the later stages of convergence, it may be useful to decay the amount of local computation per round (moving to smaller E or larger B) in the same way decaying learning rates can be useful.
评价
文章价值
新意100×有效1000×研究问题100
为什么能诞生FL
当两个模型采用同一套参数初始值时,过拟合训练后直接参数平均就能提高模型性能!所以和分布式SGD的每本地训练一次就上传相比,大大减少了通信的次数。
这个发现是在IID的情况下做的,仿真下发现在non IID下也有显著提升。但是没有IID下提升那么明显,可能是个可以挖的坑。
Recent work indicates that in practice, the loss surfaces of sufficiently over-parameterized NNs are surprisingly well-behaved and in particular less prone to bad local minima than previously thought [11, 17, 9].
we find that naive parameter averaging works surprisingly well
the average of these two models, \(\frac{1}{2}w+ \frac{1}{2}w^\prime\), achieves significantly lower loss on the full MNIST training set than the best model achieved by training on either of the small datasets independently.
为什么FL能这么火
- 时代的潮流:大量用户、设备算力增强、隐私越来越被重视、有切实的应用价值
- 足够简单的框架,很容易follow,马太效应
提示与启发
- 在服务器端用proxy data 是常规操作(虽然FL不需要),但其实和用户的真实数据集还是存在差异
- 先用多个(2000)individual training+proxy data进行调参
- next-word prediction是FL的最佳应用场景,符合真实数据、隐私保护、不需要额外标签三个FL特征
- 一项工作并不是因为他是另外一项工作的直接推广就没有创新。一般的直接推广通常是不能应用、或违反当时人们直觉的。如果在更改某个简单设置后带来了显著的性能提升,那么无疑是巨大的创新。
【论文考古】联邦学习开山之作 Communication-Efficient Learning of Deep Networks from Decentralized Data的更多相关文章
- Deep Learning 8_深度学习UFLDL教程:Stacked Autocoders and Implement deep networks for digit classification_Exercise(斯坦福大学深度学习教程)
前言 1.理论知识:UFLDL教程.Deep learning:十六(deep networks) 2.实验环境:win7, matlab2015b,16G内存,2T硬盘 3.实验内容:Exercis ...
- 论文笔记:SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks
SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks 2019-04-02 12:44:36 Paper:ht ...
- [译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)
译自:http://sebastianruder.com/multi-task/ 1. 前言 在机器学习中,我们通常关心优化某一特定指标,不管这个指标是一个标准值,还是企业KPI.为了达到这个目标,我 ...
- 【流行前沿】联邦学习 Partial Model Averaging in Federated Learning: Performance Guarantees and Benefits
Sunwoo Lee, , Anit Kumar Sahu, Chaoyang He, and Salman Avestimehr. "Partial Model Averaging in ...
- 联邦学习:按混合分布划分Non-IID样本
我们在博文<联邦学习:按病态独立同分布划分Non-IID样本>中学习了联邦学习开山论文[1]中按照病态独立同分布(Pathological Non-IID)划分样本. 在上一篇博文< ...
- 联邦学习 Federated Learning 相关资料整理
本文链接:https://blog.csdn.net/Sinsa110/article/details/90697728代码微众银行+杨强教授团队的联邦学习FATE框架代码:https://githu ...
- 【一周聚焦】 联邦学习 arxiv 2.16-3.10
这是一个新开的每周六定期更新栏目,将本周arxiv上新出的联邦学习等感兴趣方向的文章进行总结.与之前精读文章不同,本栏目只会简要总结其研究内容.解决方法与效果.这篇作为栏目首发,可能不止本周内容(毕竟 ...
- 腾讯数据安全专家谈联邦学习开源项目FATE:通往隐私保护理想未来的桥梁
数据孤岛.数据隐私以及数据安全,是目前人工智能和云计算在大规模产业化应用过程中绕不开的“三座大山”. “联邦学习”作为新一代的人工智能算法,能在数据不出本地的情况下,实现共同建模,提升AI模型的效果, ...
- 深度学习论文翻译解析(九):Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
论文标题:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition 标题翻译:用于视觉识别的深度卷积神 ...
随机推荐
- [MAUI] 在.NET MAUI中结合Vue实现混合开发
在MAUI微软的官方方案是使用Blazor开发,但是当前市场大多数的Web项目使用Vue,React等技术构建,如果我们没法绕过已经积累的技术,用Blazor重写整个项目并不现实. Vue是当前流 ...
- 使用Hot Chocolate和.NET 6构建GraphQL应用文章索引
系列背景 在进入微服务的实践系列之前,我们一起来学习和实践一下.NET应用开发生态中一些比较重要的技术,这个系列就是关于GraphQL在.NET 6应用中的实现. 系列导航 使用Hot Chocola ...
- HBase结构
Pig,可以使用Pig Latin流式编程语言来操作HBase中的数据 Hive,可以使用类似SQL语言来访问HBase,最终本质是编译成MapReduce Job来处理HBase表数据,适合做数 ...
- Redis入门及环境搭建
一:Redis简介 Redis(Remote Dictionary Server 远程字典服务)是一个开源的(BSD许可的)内存数据结构存储,用作数据库.高速缓存和消息队列代理. Redis提供五大基 ...
- Typora下载安装教程(全面)
Typora下载与安装 一:下载 1.1百度搜索 https://www.typora.io/ 点击链接进入后映入眼帘的就是一款简洁的Typora网页,然后下滑进入主页. 1.2点击Download( ...
- python 小兵(7)迭代器
阅读目录 函数名的使用以及第一类对象 闭包 迭代器 回到顶部 函数名的使用以及第一类对象 函数名的运用 函数名是一个变量, 但它是一个特殊的变量, 与括号配合可以执行函数的变量 1.函数名的内存地址 ...
- JavaScript之ES6常用新特性
参考:https://www.jianshu.com/p/ac1787f6c50f 变量声明:const 与 let const:常量,必须初始化值 let:变量 格式:const 变量A = & ...
- JavaCV的摄像头实战之五:推流
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<JavaCV的摄像头实战> ...
- AtCoder ABC 215 简要题解
A - B 模拟 C 可以直接爆搜,也可以写逐位确定的多项式复杂度算法,使用多重组合式求随意乱排的方案数. D 首先对 \(A\) 所有数暴力分解质因数,然后把遇到过的质因数打上标记. 接下来再对 \ ...
- VC 模拟键盘输入
转载请注明来源:https://www.cnblogs.com/hookjc/ vc模拟键盘输入keybd_event(VK_LWIN, 0, 0 ,0);keybd_event('M', 0, 0 ...