请先了解传统的分布式学习、联邦学习的架构,再阅读后续内容。
联邦学习的特点
1.用户对自己的设备和数据有绝对的控制权,可以随时让自己的设备停止参与计算与通信;
2.workednode是不稳定的设备;
3.通信代价远大于计算代价;
4.联邦学习的数据不是独立同分布的;
5.联邦学习的节点负载不平衡。
区别对比:
最大的区别应该就是「中心服务器」对其他「计算节点」的控制权不同。但具体来说,它们有以下几点不同之处: 中心服务器对数据和计算节点的控制权不同。分布式学习的中心服务器对计算节点以及其中的数据具有较高的控制权,计算节点完全受中心服务器的控制,接收来自中心服务器的指令。例如,在 MapReduce 这种分布式计算模型中,中心服务器可以下发一个指令,让计算节点互相交换数据。但是在联邦学习中,计算节点对数据具有绝对的控制权。中心服务器无法直接或间接操作计算节点上的数据;计算节点可以随时停止计算和通信,退出学习过程。 拓扑结构不同:联邦学习通常采用星形拓扑,而我们的完全分布式学习则是点对点拓扑。现在主流的FL研究方向都关注于加强隐私保护和减小通信开销上,研究方向大部分是数据安全这一块,研究算法的很少。
计算节点稳定性不同。分布式学习场景下的计算节点,通常都位于专用的机房中,用高速宽带进行互联,网络、运行环境都非常稳定。而参与联邦学习的计算节点可能是手机、平板等移动设备,这些设备因为用户的使用习惯,其所处的网络环境并不稳定,随时都可能与中心服务器断开连接。 通信内容和代价不同。联邦学习往往通信的是神经网络参数w或者梯度g。因为分布式学习中的计算节点与中心服务器通常处于同一地理位置,而且有专用的通信条件,所以通信代价往往较小。而联邦学习中的计算节点可能分布在不同的地理位置,与中心服务器一般处于远程连接的状态,同时受不同设备网络带宽的影响,其通信代价要更高。 计算节点上数据特征和分布类型不同。分布式学习中,不同计算节点上的数据的划分通常是均匀、随机打乱的,它们具有独立同分布的特点,这样的特性非常适合设计高效的训练算法。但在联邦学习中,并不能简单假设数据是独立同分布的,由于计算节点中的数据数据是独立产生的,他们往往表现出不同的分布特征(非独立同分布)。 计算节点上数据量级不同。分布式学习为了提高训练效率,通常都会把训练数据均匀分布在每个计算节点上,实现负载均衡。然而在联邦学习的条件下,每个计算节点拥有的数据量与设备自身有关,很难保证不同计算节点拥有相近的数据量。
联邦优化中的设置违反了所有分布式优化的假设:目前主流FL结构都存在着中心服务器进行协调,其次FL所研究的数据是Non-iid(非独立同分布)以及unbalanced(非平衡)的,存在统计异质性以及系统异构性。对比分布式优化,联邦优化中不对数据假设凸性,且一般情况下要求节点个数远大于节点平均所含数据量,节点通常在10000以上而节点上的数据量则很少。