SplitFed: When Federated Learning Meets Split Learning

论文链接:

[2004.12088v1] SplitFed: When Federated Learning Meets Split Learning (arxiv.org)

AAAI 2022

摘要:

联邦学习+分割学习:消除其固有的缺点的两种方法,以及结合差分隐私和PixelDP的精细架构配置,以增强数据隐私和模型的鲁棒性

提出联邦学习和分割学习的融合,基于差分隐私的度量 和 PixelDP

分割学习(拆分学习):

在分布式机器学习框架中,数据可能被分成多个块,每个块被发送到不同的计算节点上进行处理。每个节点完成其部分的训练后,将结果发送回中心服务器或另一个节点,以便进行后续的训练迭代。这种方法可以提高训练过程的速度和效率,尤其是在处理大量数据时。

差分隐私的度量 和 PixelDP:

基于差分隐私的度量是一种用于保护数据隐私的技术,它通过向数据集中添加受控的随机噪声来防止任何人获取关于数据集中个体的信息。这种技术引入了一个称为epsilon(ε)的隐私损失或隐私预算参数,用于控制向原始数据集添加的噪音或随机性的数量。差分隐私的核心思想是在保持个体参与者的隐私的同时,通过数据分析生成聚合洞察,确保数据的准确性。


PixelDP是一种基于差分隐私的图像隐私保护方法。它通过对每个像素进行随机化处理,使得原始图像与处理后的图像之间存在一定的差异,从而保护图像中的隐私信息。PixelDP的主要步骤包括:

  1. 对原始图像进行随机化处理,生成一个随机图像;
  2. 将随机图像与原始图像进行融合,得到保护后的图像;
  3. 对保护后的图像进行噪声添加,使其与原始图像之间存在一定的差异。

通过以上步骤,PixelDP可以有效地保护图像中的隐私信息,同时保持图像的可用性。实验证明,PixelDP在保护图像隐私的同时,仍能保持较高的图像质量,并且具有较好的鲁棒性。

split learning架构:

参考:Split Learning及其在数据横/纵向切分场景的应用 - 知乎 (zhihu.com)

Split Learning被提出的场景是:多个常规算力节点(Alices)+一个超级算力节点(Bob)。

核心思想是各方在不泄露原始数据的情况下,共同训练一个完整的模型,同时将模型中计算负载较高的部分安排在Bob节点

SFL框架:

(1)差异私有知识扰动

(2)用于鲁棒学习的PixelDP

(3)SFL的总成本分析

整体架构:

所有客户端并行地执行计算,并与主服务器和fed服务器进行交互。

客户端可以是具有低计算资源的医院或医疗物联网,主服务器可以是具有高性能计算资源的云服务器。引入fed服务器以在客户端本地更新上执行FedAvg。

此外,fed服务器在每一轮网络训练中同步客户端全局模型。fed服务器的计算(主要是计算FedAvg)并不昂贵。因此,可以在本地边缘边界内托管fed服务器。或者,如果我们在fed服务器上对加密信息执行所有操作,即基于同态加密的客户端模型聚合,则主服务器可以执行fed服务器的操作。

工作流程:

(1)所有客户端并行地在其客户端模型(包括其噪声层)上执行正向传播,并将其粉碎的数据传递给主服务器。

(2)然后,主服务器在其服务器端模型上处理前向传播和后向传播,每个客户端的粉碎数据分别以(某种程度上)并行的方式进行。

(3)然后,它将粉碎数据的梯度发送到相应的客户端以进行反向传播。

(4)然后,服务器通过FedAvg更新其模型,即在对每个客户端的粉碎数据进行反向传播期间计算的梯度的加权平均。

(5)在客户端,在接收到其粉碎数据的梯度后,每个客户端对其客户端本地模型执行反向传播,并计算其梯度。

(6)DP机制用于将这些渐变设置为私有,并将它们发送到FED服务器。FED服务器执行客户端本地更新的FedAvg,并将其发送回所有参与的客户端。

基于服务器端聚合:

提出了SFL的两种变体:

  1. 第一个被称为splitfedv1 (SFLV1),在算法1和2中描述。
  2. 下一个算法被称为splitfedv2 (SFLV2),它的动机是通过移除算法1中服务器端计算模块中的模型聚合部分来提高模型精度

在算法1中,所有客户端的服务器端模型分别并行执行,然后在每个全局历元进行聚合以获得全局服务器端模型。相比之下,SFLV2根据客户端粉碎的数据顺序处理服务器端模型的前后传播(服务器端模型没有FedAvg)。

客户端顺序是在服务器端操作中随机选择的,模型在每一次前向向后传播中都会得到更新。此外,服务器端同步接收来自所有参与客户端的粉碎数据。客户端操作与SFLV1中相同;fed服务器执行客户端本地模型的fedavg,并将聚合模型发送回所有参与的客户端。这些操作不受客户订单的影响,因为本地客户端模型是通过加权平均方法(即fedavg)进行聚合的。

基于数据标签共享:

由于SFL中的ML模型是分裂的,我们可以在两种设置下进行ML;

 (1) 将数据标签共享到服务器

(2) 不将任何数据标签共享到服务器。

算法 1 考虑具有数据标签共享的 SFL。在没有共享数据标签的情况下,假设设置简单,SFL 中的 ML 模型可以分为三个部分。每个客户端将处理两个客户端模型部分;一个具有 W 的前几层,另一个具有最后几层 W 和损失计算。剩下的中间层W将在服务器端进行计算。SL 的所有可能配置,包括垂直分区数据、扩展普通和多任务 SL,可以在 SFL 中与其变体类似地执行。

隐私保护的原因分析:

SFL固有的隐私保护能力是由于两个原因:

首先,它采用了模型到数据的方法

其次, SFL在一个分裂的网络上进行ML

ML学习中的网络分割使客户端/fed服务器和主服务器能够通过不允许主服务器获得客户端模型更新来维护完整的模型隐私,反之亦然。主服务器只能访问被破坏的数据(即切割层的激活向量)。好奇的主服务器需要反转所有客户端模型参数,即权重向量,来推断数据和客户端模型。如果我们用足够多的节点配置客户端ML网络的全连接层,那么推断客户端模型参数和原始数据的可能性是非常小的[9]。然而,对于较小的客户端网络,出现此问题的可能性可能很高。这个问题可以通过修改客户端的损失函数来控制[23]。由于同样的原因,客户端(只能访问来自主服务器的破碎数据的梯度)和fed服务器(只能访问客户端更新)无法推断服务器端模型参数。由于在FL中没有网络分裂和客户端和服务器端单独的训练,因此与FL相比,SFL在训练期间为ML模型提供了更好的体系结构配置,以增强隐私。

Fedadapt和FedFly也是借鉴这篇文章,并把这篇文章当作一个基线。同时都有开源的代码

参考文章:

【1】论文阅读(6) - 知乎 (zhihu.com)

【2】Split Learning及其在数据横/纵向切分场景的应用 - 知乎 (zhihu.com)

【3】PixelDP - 简书 (jianshu.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/667748.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS transition的一些见解

CSSTransition是CSS3中新添加的特性,可以用来创建元素的过渡效果。当元素在大小、颜色、布局、透明度等数值改变时,可以使其产生过渡的动画效果。 CSSTransition的主要属性包括: transition-property:指定当元素哪个属性改变时执…

【Spring连载】使用Spring Data访问Redis(十)----Lua脚本支持Scripting

【Spring连载】使用Spring Data访问Redis(十)----Lua脚本支持Scripting Redis 2.6及更高版本支持通过eval 和 evalsha 命令运行Lua脚本。Spring Data Redis为运行处理序列化的脚本提供了高级抽象,并自动使用Redis脚本缓存。 脚本可以通过调用…

云计算关键技术

目录 一、云计算关键技术概述 1.1 概述 二、关键技术内容 2.1 虚拟化技术 2.2 分布式数据存储技术 2.3 资源管理技术 2.4 云计算平台管理技术 2.5 多租户隔离技术 2.5.1 多租户技术下SaaS 特征 2.5.2 多租户技术面临的技术难题 2.5.2.1 数据隔离 2.5.2.2 客户化配置…

Can调试工具源码

Can调试工具源码 CANTool通用测试软件是一个专门用来socket can接口进行测试的软件工具,此软件操作简单,容易上手,通过运用此软件可以非常方便的对linux系统的can接口进行测试,从而熟悉can接口的使用方法,并且此为源码…

C# CAD界面-自定义工具栏(三)

运行环境 vs2022 c# cad2016 调试成功 一、引用 二、开发代码进行详细的说明 初始化与获取AutoCAD核心对象: Database db HostApplicationServices.WorkingDatabase;:这行代码获取当前工作中的AutoCAD数据库对象。在AutoCAD中,所有图形数…

PS一键磨皮插件Delicious Retouch for mac中文 支持PS2024

Delicious Retouch for Mac是一款优秀的Photoshop插件,专注于人像修饰。以下是该插件的一些主要特点和功能: 软件下载:Delicious Retouch for mac中文 支持PS2024 人像修饰工具:Delicious Retouch专注于人像修饰,提供了…

PyTorch 2.2 中文官方教程(十一)

使用 PyTorch C 前端 原文:pytorch.org/tutorials/advanced/cpp_frontend.html 译者:飞龙 协议:CC BY-NC-SA 4.0 PyTorch C 前端是 PyTorch 机器学习框架的纯 C 接口。虽然 PyTorch 的主要接口自然是 Python,但这个 Python API 坐…

ML:2-2-3 多分类问题multicalss

文章目录 1. 多分类问题的定义2. softmax3. 神经网络的softmax输出 【吴恩达机器学习65-67】 1. 多分类问题的定义 classification问题可能的output大于2种。 multiclass的预测图像可能是右侧这样的。 2. softmax softmax regression算法是logistic regression的泛化&#xf…

python Flask 写一个简易的 web 端上传文件程序 (附demo)

python Flask 写一个简易的 web 端上传文件程序 (附demo) 需求介绍核心代码: 文件结构前端文件后端文件 完整代码演示 需求 在当今数字化时代,文件上传需求日益普遍。无论是个人还是企业,都可能需要实现文件上传功能。…

jmeter-问题一:关于线程组,线程数,用户数详解

文章目录 jmeter参数介绍1.线程数2.准备时长(Ramp-up)3.循环次数4.same user on each iteratio5.调度器 场景一:当你的线程组中线程数为1,循环为1场景二:当你的线程组中线程数为2,循环为1场景三:当你的线程组中线程数为1&#xff…

【C#】Json转资源并加载

Json文件如下 右键修改json文件属性 【代码】读取Json文件内容 string sTemplate string.Empty; Assembly assembly Assembly.GetExecutingAssembly(); string resourceName assembly.GetName().Name.ToString() ".Json.test.json"; using (Stream stream asse…

IP代理類型詳解 | 基於網路協議、匿名性、IP來源

線上代理、HTTP代理、Socks4/5代理、動態住宅IP代理、專用代理、共用代理、開放代理、匿名代理、反向代理……是否令你感到困惑?閱讀本片文章瞭解所有。可以將代理視為你與所需網站Web伺服器之間的中間人。它接收你的請求,然後將請求發送到Web伺服器。然…

【GAMES101】Lecture 15 全局光照

本节继承上一节的难度并继续加深,讲这个BRDF,然后理解反射方程和渲染方程,最终实现全局光照,以下内容很抽象……如果想要深入理解建议到隔壁基于物理着色:BRDF - 知乎 (zhihu.com)或者多看几遍视频,我也是回…

【01】C++入门

文章目录 Ⅰ 命名空间1. 命名空间域的产生2. 命名空间域的定义3. 命名空间域的使用 Ⅱ 缺省参数1. 缺省的概念2. 缺省的分类3. 声明和定义不能同时存在缺省参数 Ⅲ 函数重载1. 函数重载概念2. 编译器如何实现函数重载 Ⅳ 引用1. 引用的概念2. 引用的特性3. 引用的使用场景4. 引…

P8706 [蓝桥杯 2020 省 AB1] 解码--2024蓝桥杯冲刺省一

点击跳转例题 模拟即可 #include <bits/stdc.h> #define int long long //(有超时风险) #define PII pair<int,int> #define endl \n #define LL __int128using namespace std;const int N2e610,M1e310,mod998244353,INF0x3f3f3f3f;int a[N],b[N],c[N],pre[N];sign…

力扣热门100题刷题笔记 - 5.最长回文子串

力扣热门100题 - 5.最长回文子串 题目链接&#xff1a;5. 最长回文子串 题目描述&#xff1a; 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同&#xff0c;则该字符串称为回文字符串。示例&#xff1a; 输入&#xff1a;s "…

《C++ Primer Plus》《2、开始学习C++》

文章目录 0 前言&#xff1a;1 进入C1.1 main()函数1.2 C注释1.3 预处理器和iostream1.4 头文件名1.5 名称空间1.6 使用cout进行C输出1.7 C源代码的格式化 2 C语句2.1 声明语句和变量2.2 赋值语句2.3 cout语句 3 其他C语句3.1使用cin3.2 使用cout进行拼接3.3 类简介 4 函数4.1 …

SSL证书的验证过程

HTTPS是工作于SSL层之上的HTTP协议&#xff0c;SSL&#xff08;安全套接层&#xff09;工作于TCP层之上&#xff0c;向应用层提供了两个基本安全服务&#xff1a;认证和保密。SSL有三个子协议&#xff1a;握手协议&#xff0c;记录协议和警报协议。其中握手协议实现服务器与客户…

远程桌面时连接不上远程计算机是什么问题

在服务器上搭建网络程序时&#xff0c;我们经常会有需要远程连接上服务器进行相关操作&#xff0c;有些用户在远程桌面的时候&#xff0c;有时会有遇上无法连接到远程计算机的情况。 很多用户都曾遇到在远程桌面时出现“未启用对服务器的远程访问”、“远程计算机已关闭”、“…

HBase相关面试准备问题

为什么选择HBase 1、海量存储 Hbase适合存储PB级别的海量数据&#xff0c;在PB级别的数&#xff0c;能在几十到几百毫秒内返回数据。这与Hbase的极易扩展性息息相关。正是因为Hbase良好的扩展性&#xff0c;才为海量数据的存储提供了便利。 2、列式存储 这里的列式存储其实说的…