联邦学习(Federated Learning)学习笔记


前言

内容仅为笔者主观想法,记录下来以供之后回顾,如有错误请谅解。


一、联邦学习FedAVG和分布式SGD

文献:Federated Learning of Deep Networks using Model Averaging

  在笔者理解中,联邦学习的目的就是利用多个个体所拥有的数据,实现模型的有效训练。其要克服的第一个问题就是个体信息的安全性和隐私性。如何在保障个体数据不被他人获取的情况下,利用该数据进行训练,这是首要问题。第二个问题就是个体的数据差异很大,基本可以视为不满足独立同分布条件的,同时数据量也十分不均衡,无法保障不同个体所拥有的数据是相同量级的。基于这些问题,联邦学习才被提出。
在这里插入图片描述

  从分布式训练的角度来看,分布式SGD的主要思想就是将训练的过程分散到多个workers中,而server将各worker上传的梯度用于参数更新,再将结果传回各worker。
  而联邦学习,直观上感觉与分布式SGD十分相似,都是有多个worker和一个server,也需要在worker上训练,在server上对多个worker上传的数据进行处理。但二者实际上有很大不同,在联邦学习中,worker和server中传递的只是参数信息,不会涉及到各worker内部的数据。如下图所示
在这里插入图片描述
  此外,在联邦学习中,通信损耗比训练损耗更大,因此,相较于不同的优化算法等训练加速方法,有效的通信方式更多地被研究者探索。联邦学习的主要损耗是如何在大量的worker和server的通信中,减少通信量,同时保证传递了足够有效的信息。因此,训练通常使用SGD或SGD-M就足够了,有研究者认为探索联邦学习和AdaGrad和Adam算法的兼容性也是有意义的,但笔者没有找到太多的相关研究,虽然有部分论文使用了类Adam的优化算法,但联邦学习领域主要的创新还是集中在对通信过程的改进和优化。

二、联邦学习中的SGD

  在联邦学习中,有两种常见的使用SGD的方法,分别是Parallel SGD和Local SGD。
  Parallel SGD如下图所示,就是最简单的模式:worker获得梯度,上传数据,接收数据。
在这里插入图片描述或者可以简单看作:
在这里插入图片描述
  而Local SGD就是在Parallel SGD的基础上改进的,其实就是先在worker本地训练几个周期,然后再上传数据,如下图所示:
在这里插入图片描述

三、梯度压缩和误差补偿

  前面说过,在联邦学习中,最需要解决的就是通信损耗问题。因此很自然就有研究者提出梯度压缩的方法,也就是在worker和server的数据传递中,不用将梯度的所有信息都进行通信,而只需要找到梯度向量中最有价值的那部分数据,其余的予以舍弃,从而减少通信的损耗。
  在梯度压缩中,最常用的两种方法就是稀疏化和量化,在笔者所阅资料中,主要用的都是稀疏化,这里给出一个例子,Top-k稀疏化方法,其实就是在梯度向量中找到绝对值最大的k个元素,其余的元素全部置为0,将处理后的向量进行通讯。
在这里插入图片描述
  既然进行了梯度的压缩,那么肯定梯度的真实值和用于计算的值之间存在差异,那么就需要对这个误差进行补偿。在文献中给出了一种基于残差补偿的方法。
在这里插入图片描述

四、两种文中给出的新算法

文献:On the Convergence of Communication-Efficient Local SGD for Federated Learning
第一种,作者声称其创新点在于在server的回传数据过程中也进行了压缩,也就是下图中所示的第四步。此前随有在上传过程中进行压缩,但没有回传压缩的。
在这里插入图片描述第二种,没有什么太大区别,就是加了动量项。在这里插入图片描述


总结

联邦学习在越来越重视数据的当下,具有很大的应用价值和意义。这是一个大数据时代,而许多数据都离散地分布在许多智能设备上,如手机电脑等,或是一些公司的服务器上,而这些数据都具有各自的隐私性,不能随意获得。而联邦学习可以在保证数据隐私性的前提下,有效利用分散的数据,这是十分难得的。

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值