目录
联邦学习与Split Learning
Split Learning的核心思想是将网络的结构进行拆分,每个设备只保留一部分网络结构,所有设备的子网络结构构成一个完整的网络模型。在训练过程中,不同的设备只对本地的网络结构进行前向或反向计算,并将计算结果传递给下一个设备。多个设备端通过联合网络层的中间结果完成模型的训练,直到模型收敛为止。
Split Learning设计模式
以最简单的Split Learning为例,网络结构被拆分为两部分,。其中,
位于客户端,
位于服务端。
和
的交界层被称为Cut layer。Cut layer的输出称为Smashed Data。
Split Learning场景中,训练数据特征和标签都保留在客户端中。训练时客户端将输入特征数据输入本地网络,开始进行前向计算,一直到Cut layer输出,输出结果设为
。将
与标签一起传递给服务端,
作为服务端本地网络
的输入,继续进行前向计算,得到预测的标签输出。反向计算求梯度的过程与之类似,只是流程相反。
然而,这种方案需要传输标签,有数据泄露风险。一种改进是将模型分为三部分,最深的层和最浅的层保留在客户端,中间层保留在服务端。
Split Learning与联邦学习的异同
相同点:
- 本地数据都不离开设备。
- 数据传输时都可以进行加密。
区别:
- Split Learning核心理念是将网络结构进行分割
- 联邦学习强调数据层面的拆分,比如横向联邦学习、纵向联邦学习和联邦迁移学习。
总的来说,可以把Split Learning看成纵向联邦学习的一种特殊形式。
联邦学习与边缘计算
边缘计算综述
边缘计算将原来位于云平台的功能向更靠近用户终端设备的地方下沉。这些更靠近终端设备的网络设备称为边缘网络,它们能有效减少数据传输带来的带宽消耗。具体来说,其具有以下优点:
- 更高的处理效率:通信时延更小。
- 更低的成本。
- 降低发生故障的概率:即使部分设备发生故障,也能确保其他设备正常运行。
- 保护数据隐私。
联邦学习与边缘计算的异同点
本节介绍一种基于边缘计算实现的分层联邦学习架构方案。在该方案中,将相互之间距离比较近的客户端设备按群划分,在同一个群的设备附近部署一个边缘端设备,组成一个联邦子网络,各个联邦子网络再构成一个全局的联邦网络。
分层的方案有下面的优势:
- 同一个联邦子网络中,节点间距离更短,网络失败问题得到缓解。
- 分层的联邦结构可以设置不同的模型更新频率。
- 一般来说,地点相近的设备,其数据的分布相对比较均衡。
本读书笔记系列针对2021年5月出版的《联邦学习实战》(见下图),后续部分将逐步更新