SplitFed: When Federated Learning Meets Split Learning(AAAI 2022)
paper:https://arxiv.org/pdf/2004.12088.pdf
code: https://github.com/chandra2thapa/SplitFed-When-Federated-Learning-Meets-Split-Learning
研究背景:
对于机器学习
一个简单的方法是对原始数据进行中央池化。然后,分析人员访问汇集数据的中央存储库,对整个数据集进行ML。这种方法称为Data-toModeler (DTM)[3]。
第二种方法是利用分布式协作学习(DCL)。它支持在多个系统或服务器和终端设备(如移动电话)上进行计算,而数据驻留在源设备中。由于分布式数据不是集中在一个中央存储库中,DCL为数据集提供了一定程度的隐私。但是,仍然存在隐私风险,因为服务器或分布式系统可能不是受信任的平台。在这方面,人们提出了各种保护隐私的计算技术。包括同态加密(HE)[5]、差分隐私(DP)[6]、多方计算(MPC)[7]和分布式协同机器学习(DCML)。
联合学习(FL)[10,11]、拆分学习(SL)[12]和分布式同步SGD[13]是目前最流行的DCML方法。
根据机器学习模型是否被拆分和单独训练,将这些方法大致分为两类:第一类是没有网络分裂的,如FL和分布式同步SGD,第二类是有网络分裂的,如SL.分布式同步SGD
将 FL与SL的优缺点相比:
FL的主要优点是它允许跨多个客户机进行并行(因此高效)ML模型训练
SL的主要优点是由于客户机和服务器之间的ML模型分离,它提供了更好的隐私性 -> 1. 模型隐私,因为客户端不能访问服务器端模型,反之亦然 2. 只分配部分网络在客户端进行训练可以减少处理负载(与运行整个网络相比),这对于资源受限的设备上的ML计算具有重要意义 坏处是 由于ML模型训练在客户端的顺序性,SL明显比FL慢。
研究内容
SFL提供了一个优秀的解决方案,它提供了比FL更好的隐私,它比SL更快,在模型准确性和通信效率方面具有类似的性能 此外,SFL可以像SL那样在计算资源较低的情况下跨客户机进行分布式处理,但其训练速度有所提高,根据实证研究,其训练速度大约是SL的5倍
相关工作
联邦学习:
在FL中,一个完整的ML网络/算法由每个客户端在其本地数据上并行地训练一些本地时间,然后他们将本地更新发送到服务器。之后,服务器聚合来自所有客户端的本地更新,并通过联邦平均形成一个全局模型。然后,全局模型被发送回所有客户,为下一轮的培训做准备。这个过程一直持续下去,直到算法收敛到一定的水平。(算法一)
拆分学习:
将深度学习网络W分为两部分WC和WS,分别称为客户端网络和服务器端网络。W包括权重、偏差和超参数。数据所在的客户端只提交到网络的客户端部分,而服务器端只提交到网络的服务器端部分。
该网络的训练是通过一系列分布式的训练过程来完成的。在一个简单的设置中,正向传播和反向传播以下列方式发生:
客户端利用原始数据将网络训练到网络的某一层,即所谓的切割层,并将切割层的激活(也称为破碎数据)发送给服务器。然后,服务器使用从客户端接收到的破碎数据对剩余的层进行训练。这就完成了一个向前传播。
接下来,服务器进行向上的反向传播到切割层,并将破碎数据的梯度发送给客户端。使用梯度,客户端在剩余的网络(即,直到网络的第一层)上执行它的反向传播。这就完成了客户机和服务器之间的反向传播的一次传递。
这个正向传播和反向传播的过程将继续下去,直到网络得到所有可用客户机的训练并达到收敛。
在SL中,体系结构配置假定由直接访问主服务器的受信任方进行。被授权方在学习之初选择了ML模型(基于应用)和网络分割(寻找切割层)。学习过程与多个客户端的同步是通过集中式模式或点对点模式完成的。
->在集中式模式下,在开始使用(主)服务器进行培训之前,客户端通过从可信的第三方服务器下载客户端模型来更新客户端模型,该第三方服务器保留最后一个培训的客户端上传的更新的客户端模型。
另一方面,在点对点模式下,客户端通过直接从最后一个训练过的客户端下载来更新其客户端模型。
总的来说,培训是以基于中继的方式进行的,其中服务器用一个客户机进行培训,然后依次转移到另一个客户机。
模型方法
图的右侧显示了客户机和(主)服务器如何执行网络训练。
与SL不同,所有客户端(如医院、计算资源较低的miot)都在其客户端模型上并行执行前向传播,然后将粉碎的数据传递给(主)服务器。
然后假设服务器有足够的计算资源(如云服务器和拥有高性能计算资源的研究人员),在其服务器端模型上与每个客户端的破碎数据(在一定程度上)并行处理正向传播和反向传播。
它将破碎数据的梯度(即激活的梯度)发送到各自的客户端进行反向传播。服务器通过在每个客户机的破碎数据上反向传播期间计算的梯度的加权平均来更新其模型。
在客户端,每个客户端接收到粉碎数据的梯度后,对其客户端本地模型进行反向传播,并计算其梯度。
客户端将梯度发送给联邦服务器,联邦服务器对客户端本地更新进行联邦平均,并发送回所有参与的客户端。这样,联邦服务器在每一轮的网络训练中都同步客户端的全局模型。联邦服务器的计算开销不大,而且它是驻留在本地服务器上的。
一、正向传播:沿着从输入层到输出层的顺序,依次计算并存储神经网络的中间变量。
二、反向传播:沿着从输出层到输入层的顺序,依次计算并存储神经网络的中间变量和参数的梯度。
三、关系:在训练深度学习模型时,正向传播和反向传播相互依赖。一方面,正向传播的计算可能依赖于模型参数的当前值,而这些模型参数是在反向传播的梯度。另一方面,反向传播的梯度计算可能依赖于各变量的当前值,而这些变量的当前值是通过正向传 播计算得到的。
计算后通过优化算法迭代的。
两种变体:
去除算法3中服务器端计算模块中的模型聚合部分来提高模型精度。
SFL V1 算法三 在该算法中,所有客户端的服务器端模型并行执行并聚合,以获得每个全局epoch的全局服务器端模型。
SFL V2根据客户机的破碎数据顺序处理服务器端模型的前后传播。模型在每次向前向后传播中都会更新。此外,服务器同时从所有参与的客户端接收粉碎的数据,客户端操作与SFL V1中保持一致。
问题:
Q: 为什么SL比FL的隐私性更强?
A: 假设两种SFL方法遵循标准的客户机-服务器安全模型,其中客户机和服务器在开始网络模型训练之前建立一定程度的信任
假设参与实体之间的所有通信(例如,客户端和主服务器之间的破碎数据和梯度的交换)都是以加密的形式进行的。SFL(两个版本)中的隐私是通过MTD方法和网络分割来实现的。
网络分割和ML学习使客户端和主服务器保持隐私,不允许服务器获得客户端模型更新,反之亦然。服务器只能访问破碎的数据(即被切割层的激活向量)。一个好奇的服务器需要反转所有客户端模型参数,即权重向量。如果我们允许在客户端ML网络[12]上拥有足够大的节点的全连接层,则推断客户端模型参数和原始数据的可能性非常小。然而,对于较小的客户端网络,这种可能性可能很高。通过在客户端[18]上修改loss函数,可以减少此问题。
实验
图像数据集
四种CNN模型架构
测试了 训练/测试精度、收敛性、客户数量对性能的影响、通信效率、时间花费(训练速度)