【论文考古】联邦学习开山之作 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 标题翻译:用于视觉识别的深度卷积神 ...
随机推荐
- Mybatis配置解析(核心配置文件)
4.配置解析 4.1.核心配置文件 Mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息 mybatis-config.xml properties(属性)重点 settings ...
- Go - 如何编写 ProtoBuf 插件 (三) ?
目录 前言 演示代码 小结 推荐阅读 前言 上篇文章<Go - 如何编写 ProtoBuf 插件 (二) >,分享了基于 自定义选项 定义了 interceptor 插件,然后在 hell ...
- [开发笔记usbTOcan]需求获取与系统需求分析
简介 一直一以来都是站在实现某个模块功能的角度去做软件开发,没有尝试过站在系统的层面去做开发.最近正好不忙,觉得是时候以系统工程师的视角,去开发一个完整的系统.接下来的几篇文章,我会记录一个USB转C ...
- 【刷题-LeetCode】191 Number of 1 Bits
Number of 1 Bits Write a function that takes an unsigned integer and return the number of '1' bits i ...
- 【笔记】对golang的大量小对象的管理真的是无语了……
业务中有这样一个struct: type bizData struct{ A uint64 B uint64 C int32 D uint32 } 虽然没有实测,但我猜测这样的对齐方式,这个struc ...
- 【一个小实验】腾讯云的redis的主从结构的特性
使用腾讯云上的redis,可以添加多个备机的分片,并且可以选择不同的账号来设定主从读写的策略. 现在设置两个账号:primary-主节点写,主节点读:secondary-主节点写,从节点读. 研究出了 ...
- 巧用 Base62 解决字段太短的问题
最近银联一纸 259 号改造通知,所有支付机构开始改造支付交易,上传终端信息. 不知道其他支付机构的小伙伴针对这次改造是否开始了? 由于这次银联给的时间非常少,我们这边改动涉及到相关上游一起改造,所以 ...
- Tomcat-部署web工程方式
Tomcat(部署web工程) 第一种方法:只需要把web工程的目录拷贝到Tomcat的webapps目录下即可 1,在webapps目录下创建一个book工程, 2,或者把做的工程内容拷贝到weba ...
- 带你十天轻松搞定 Go 微服务系列(五)
序言 我们通过一个系列文章跟大家详细展示一个 go-zero 微服务示例,整个系列分十篇文章,目录结构如下: 环境搭建 服务拆分 用户服务 产品服务 订单服务(本文) 支付服务 RPC 服务 Auth ...
- Azure AD Domain Service(一)将 Azure VM 实例添加到域服务里
一,引言 有网友提到实际项目中如何将 Azuer VM 实例加入到 Azure AD 域,那我们今天就带着整个问题开始今天的分析!首先我们得了解什么是 Azure AD 域服务,Azure AD 域服 ...