【论文考古】联邦学习开山之作 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 标题翻译:用于视觉识别的深度卷积神 ...
随机推荐
- AI系统——机器学习和深度学习算法流程
终于考上人工智能的研究僧啦,不知道机器学习和深度学习有啥区别,感觉一切都是深度学习 挖槽,听说学长已经调了10个月的参数准备发有2000亿参数的T9开天霹雳模型,我要调参发T10准备拿个Best Pa ...
- jenkins学习9-测试报告发邮件(Email Extension Plugin)
前言 前面已经实现在jenkins上展示html的测试报告,接下来只差最后一步,把报告发给你的领导,展示你的劳动成果了. 安装 Email Extension Plugin 插件 jenkins首页- ...
- java集合分类
Java中的集合包括三大类,它们是Set.List和Map, Set(集) List(列表) Map(映射) 它们都处于java.util包中,Set.List和Map都是接口,它们有各自的实现类.( ...
- 《剑指offer》面试题20. 表示数值的字符串
问题描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100"."5e2"."-123"."3.1 ...
- golang中的标准库IO操作
参考链接 输入输出的底层原理 终端其实是一个文件,相关实例如下: os.Stdin:标准输入的文件实例,类型为*File os.Stdout:标准输出的文件实例,类型为*File os.Stderr: ...
- Ansible + shell 实现部署fastdfs+nginx 实现图片服务器并提供动态缩放功能;
因为公司阿里服务器变动几次,手动部署了好几次fastdfs+nginx,于是就想到了自动化部署,以下为脚本内容,由于只是想把着功能实现,并未有完完整的判断逻辑: 以下为ansible-playbook ...
- (3)puppet清单定义资源的语法
1.先看两个例子: a.创建一个文件 file{"/tmp/12567.txt": content => aaaaababbau, ensure => present ...
- 在树莓派上开发SpringBoot 之使用VSCode远程开发
一些运行在ARM单板电脑上的IoT应用通常会提供RESTful风格的API接口.本次的文章记录如何在本地电脑上通过VS Code的远程开发功能,在树莓派端创建一个SpringBoot工程,并实现调试和 ...
- Lesson1——Pandas是什么
pandas目录 一.简介 Pandas 是一个开源的第三方 Python 库,从 Numpy 和 Matplotlib 的基础上构建而来,享有数据分析"三剑客之一"的盛名(Num ...
- Xml的一些基本概念(摘抄自w3school.com.cn)
一个Xml的文档示例: 点击查看代码 <?xml version="1.0" encoding="ISO-8859-1"?> <note> ...