联邦学习+拆分学习|SplitFed: When Federated Learning Meets Split Learning

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模型架构

测试了 训练/测试精度、收敛性、客户数量对性能的影响、通信效率、时间花费(训练速度)

<think>好的,用户想了解拆分学习Split Learning)的概念和实现方法。首先,我需要回忆一下相关的知识,并参考提供的引用内容。根据引用[3]和[4],拆分学习(SL)和联邦学习(FL)是两种流行的分布式协作机器学习方法。用户可能已经知道联邦学习,所以需要对比说明拆分学习的独特之处。 拆分学习的核心在于将模型分割成客户端和服务器部分,客户端处理数据直到某个层,然后将中间结果发送到服务器继续处理。这种分割可以保护数据隐私,因为原始数据不需要离开客户端。引用[2]提到差分隐私标签保护在拆分学习中的应用,这说明隐私保护是拆分学习的一个重要方面。 接下来需要解释实现方式。拆分学习的实现通常分为以下几个步骤:模型分割、客户端前向传播、服务器处理剩余部分、反向传播更新参数。需要详细说明每个步骤,可能还要提到不同的分割策略,比如垂直分割和水平分割,或者根据模型结构分割。引用[4]提到SplitFed结合了联邦学习拆分学习,可能涉及更多的协作方式。 另外,用户可能想知道拆分学习的优势,比如隐私保护、通信效率、资源优化等,以及应用场景,比如医疗、金融等数据敏感领域。需要结合引用中的信息,比如引用[1]的SplitFed论文,说明拆分学习如何与其他方法结合提升性能。 还要考虑用户可能的后续问题,比如拆分学习联邦学习的区别,或者实际应用中的挑战,比如通信开销和模型同步问题。但根据用户当前的问题,重点是先介绍概念和实现方法,保持回答结构清晰。 最后,确保使用正确的中文表达,避免技术术语过于晦涩,同时引用相关的文献来源,如引用[3]和[4],并在适当的位置添加引用标识。需要检查是否符合之前的格式要求,比如数学公式的格式和独立成段,但当前问题可能不涉及数学公式,所以可能不需要使用。不过如果有模型结构的分割层数,可能需要用LaTeX表示,例如层数分割点$C$,但根据示例,用户的问题可能不需要,所以暂时不用。</think>### 拆分学习Split Learning)介绍 拆分学习Split Learning, SL)是一种分布式协作机器学习(DCML)方法,其核心思想是将神经网络模型分割为客户端和服务器两部分,通过协作完成训练和推理过程[^3]。与联邦学习(FL)不同,拆分学习通过模型分割实现隐私保护与计算资源优化,特别适用于数据敏感场景。 #### 核心概念 1. **模型分割** 将神经网络分为**客户端子模型**(处理原始数据)和**服务器子模型**(完成剩余计算)。分割点通常选择中间层(例如第$C$层),客户端仅保留前$C$层,服务器拥有剩余层[^4]。 2. **协作流程** - **前向传播**:客户端计算至分割层,将中间激活值(如特征图)加密后发送至服务器。 - **反向传播**:服务器计算梯度并回传至客户端,客户端更新本地参数。 3. **隐私保护** 原始数据始终保留在客户端,中间激活值难以反推原始数据,天然支持隐私保护。结合差分隐私(如引用[2]的标签保护方案)可进一步增强安全性[^2]。 --- ### 拆分学习的实现方式 #### 1. 基础实现步骤 ```python # 伪代码示例:拆分学习训练流程 def client_forward(data): intermediate = client_model(data) # 客户端前向计算至分割层 encrypted_data = encrypt(intermediate) send_to_server(encrypted_data) def server_forward(encrypted_data): decrypted = decrypt(encrypted_data) output = server_model(decrypted) # 服务器完成剩余计算 loss = calculate_loss(output) return loss # 反向传播协作 loss = server_forward(client_forward(data)) gradients = server_backward(loss) client_backward(gradients) # 客户端更新本地模型 ``` #### 2. 分割策略 - **垂直分割**:按模型层级划分(如ResNet的前3层在客户端,后层在服务器)。 - **水平分割**:在多分支模型中按并行结构划分(如Inception模块的分支分配)。 - **动态分割**:根据设备算力或网络状态调整分割点。 #### 3. 优化变体 - **SplitFed**(引用[1]):结合联邦学习的模型聚合与拆分学习的模型分割,支持多客户端并行训练[^1]。 - **标签保护方案**(引用[2]):在分割点添加噪声或加密,防止服务器通过中间值推断标签[^2]。 --- #### 优势与挑战 | **优势** | **挑战** | |-------------------------|-----------------------------| | 数据隐私性强 | 客户端-服务器通信开销较大 | | 降低客户端计算需求 | 分割点选择影响性能 | | 兼容异构设备 | 反向传播同步复杂度高 | ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值