【论文考古】联邦学习开山之作 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 标题翻译:用于视觉识别的深度卷积神 ...
随机推荐
- GoLang设计模式19 - 桥接模式
桥接模式是一种结构型设计模式,通过桥接模式可以将抽象部分和它的实现部分分离.这看着有点儿奇怪,接下来会作详细说明. 桥接模式建议将一个较大的类拆分成两中角色. 抽象角色 - 抽象角色是一个接口.它的子 ...
- 移动Web开发实践——解决position:fixed自适应BUG
在移动web中使用position:fixed,会踩到很多坑,在我之前的一篇文章<移动端web页面使用position:fixed问题总结>中已经总结了很多bug,但是在后续的开发中有关f ...
- JAVA-JDK1.7-ConCurrentHashMap-源码并且debug说明
概述 在一个程序员的成长过程就一定要阅读源码,并且了解其中的原理,只有这样才可以深入了解其中的功能,就像ConCurrentHashMap 是线程安全的,到底是如何安全的?以及如何正确使用它?reha ...
- python极简教程06:生成式和装饰器
测试奇谭,BUG不见. 这一场,主讲python的生成式和装饰器. 目的:掌握四种生成式(列表.生成器.集合.字典),装饰器的原理和使用. 生成式 01 什么是生成式? 能够用一行代码,快速高效的生成 ...
- linux下编译支持opencl的opencv for android
主要的步骤其他人已经写过,请参考这篇:https://www.cnblogs.com/hrlnw/p/4720977.html 操作的细节请参考附件的pdf: https://files.cnblo ...
- 根据happens-before法则借助同步
在文章的开始,我们先来看一段代码以及他的执行情况: public class PossibleRecording{ static int x = 0, y = 0; static int a = 0, ...
- 『德不孤』Pytest框架 — 3、Pytest的基础说明
目录 1.Pytest参数介绍 2.Pytest框架用例命名规则 3.Pytest Exit Code说明 4.pytest.ini全局配置文件 5.Pytest执行测试用例的顺序 1.Pytest参 ...
- Natasha 4.0 探索之路系列(二) "域"与插件
域与ALC 在 Natasha 发布之后有不少小伙伴跑过来问域相关的问题, 能不能兼容 AppDomain, 如何使用 AppDomain, 为什么 CoreAPI 阉割了 AppDomain 等一系 ...
- vue学习7-v-show和v-if
1. v-show:这个是一次性会把所有的都渲染出来,然后通过简单的切换display值来修改是否需要被渲染.所以在需要频繁切换的情况下推荐使用.v-show不能在template标签上使用. 2. ...
- python变量垃圾回收机制的入门使用
简介: Python是一款高层次的解释性语言:Python对于初学者来说(易于学习)Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单.学习Python的目的就是为了能够 ...