当前位置: 首页 > news >正文

「隐语小课」拆分学习之“水平拆分学习”

图片

一、引言

拆分学习是 2018 年由 MIT 最先提出的分布式算法。本文结合该领域的相关英文文献,介绍水平拆分学习的基本方法,同时还将对比拆分模型与中心化模型、联邦模型在不同条件下模型效率和准确性。拆分学习作为主流的隐私计算学习范式之一,也被普遍应用于构建隐私保护机器学习算法。

二、基本方法

1.1 核心思想

拆分学习将 NN 模型拆分成两部分,client 利用本地数据计算底层模型,得到隐层并传输给 server,server 继续计算上层模型,如图 1 所示【1】。

图片

图1 拆分学习示意图

针对 client 数据水平切分场景下的拆分学习方法,主要分为三种:Centralized 拆分学习、P2P 拆分学习和 U-shape 拆分学习。

1.2 Centralized 拆分学习

图片

图2 Centralized 拆分学习模型

(1)算法

如图 2 所示【2】,Alice 为 client, Bob 为 server。client 和 server 模型首先进行初始化。

  • client i 从 server 获取 client 端的密态模型参数,解密,更新 client 模型。

  • client i 进行前向传播,计算得到隐层,并将隐层 h 和真实标签 y 传给 server

  • server 得到 client i 的隐层 h 和 y,继续前向传播,得到 label 预测值 y_pred,进而得到 Loss(y, y_pred)。

  • server 进行模型的后向传播,更新 server 端的模型,进而得到 Loss 关于隐层的梯度 G,并将 G 传给 client。

  • client 利用梯度 G 继续后向传播,更新 client 端本地模型,client 将本地模型加密传给 server。

  • 剩余参与训练的 client 依次进行步上述步骤。

(2)特点

  • client 异步更新,无法同步更新;

  • client 每次训练前需要从 server 获取密态的 client 模型;

  • server 得到样本的 label 和密态 client 模型(有隐私泄漏的风险)。

1.3 P2P 拆分学习

  • 图片

图3 Peer to peer 拆分学习

(1)算法

如图3所示【2】,client i 进行前向传播,计算得到隐层,并将隐层 h 和真实标签 y 传给server。

  • server 得到 client i的隐层 h 和 y,继续前向传播,得到 label 预测值 y_pred,进而得到 Loss(y, y_pred);

  • server 进行模型的后向传播,更新 server 端的模型,进而得到 Loss 关于隐层的梯度G,并将 G 传给 client;

  • client 利用梯度 G 继续后向传播,更新 client 端本地模型,client 将本地模型传给下一个 client;

  • 下一个 client 依次进行上述步骤。

(2)特点

  • client 依次进行训练更新。

  • server 得到样本的 label。

  • lient 每次训练前需要从上一个 client 获取最新的 client 模型(client 掉线问题)。

1.4 U-shape 拆分学习

图片

图4 U-shape 拆分学习

(1)算法

如图 4 所示【1】,模型依次拆成三部分:submodel-1,submodel-2(大部分计算),submodel-3(loss computing),其中 submodel-1 和 submodel-3 在 client 端进行,submodel-2 在 server 端进行。以 U-shape centralized 拆分学习为例:

  • client i 从 server 获取 client 端的密态 submodel-1 和 submodel-3 的模型参数,解密,更新 client 本地模型。

  • client i 进行前向传播,计算得到隐层,并将隐层 h1 传给 server。

  • server 得到 client i 的隐层 h,继续 submodel-2 前向传播,得到隐层 h2,传给 client。

  • client 得到 h1,继续 submodel-3 的前向传播,得到 y_pred,结合 client 的真实 label y 计算得到 loss。

  • client 和 server 进行模型的后向传播,更新模型。

  • client 将本地模型 submodel-1 和 submodel-3 加密传给 server。

  • 剩余参与训练的 client 依次进行上述步骤。

(2)特点

  • 相比于前两个模型,server 无法得到样本的 label。

三、实验结果

3.1 拆分学习 VS 单机模型

论文【2】中对比了拆分学习和单机模型的 Accuracy,其中在拆分学习中共有 10 个 clients,得到如下表所示的实验结果。

图片

实验结论:拆分学习可以对齐单机模型的 Accuracy【2】。

3.2 拆分学习VS联邦学习

论文【2】中对比了相同 client-side flops 和 communication cost 下拆分学习和联邦学习的 performance。

论文【3】中对比了多 clients 条件和 Non-IID 数据分布下的拆分学习和联邦学习的 performance。

(1)Performance with the same client-side flops

图片

结论:相同计算量的情况下,拆分学习的收敛速度及 Accuracy 优于联邦学习和 Large scale SGD。

(2)Performance with the same communication cost

图片

结论:相同通信量的情况下,拆分学习收敛速度及 Accuracy 优于联邦学习和 Large scale SGD。

(3)Performance with the different clients’ number

图片

结论:当 clients 数量变多时,模型性能有明显的震荡。

(4)Performance in the Non-IID setting

图片

结论:拆分学习在 Non-IID 下性能比联邦学习差,甚至不收敛。

四、Reference

【1】Thapa C, Chamikara M A P, Camtepe S A. Advancements of federated learning towards privacy preservation: from federated learning to split learning[M]//Federated Learning Systems. Springer, Cham, 2021: 79-109.

【2】Gupta O, Raskar R. Distributed learning of deep neural network over multiple agents[J]. Journal of Network and Computer Applications, 2018, 116: 1-8.

【3】Gao Y, Kim M, Abuadbba S, et al. End-to-end evaluation of federated learning and split learning for Internet of Things[J]. arXiv preprint arXiv:2003.13376, 2020.

相关文章:

「隐语小课」拆分学习之“水平拆分学习”

一、引言 拆分学习是 2018 年由 MIT 最先提出的分布式算法。本文结合该领域的相关英文文献,介绍水平拆分学习的基本方法,同时还将对比拆分模型与中心化模型、联邦模型在不同条件下模型效率和准确性。拆分学习作为主流的隐私计算学习范式之一&#xff0c…...

WPF--关于Action事件小结

WPF--关于Action事件小结 1.需要类实例去调用事件建立订阅关系 public event Action<int, object> MaintainEvent; new GP1().MaintainEvent NormalCmdAction; 2.static用处--在不便实例的时候&#xff0c;可以直接由类调用 public static event Action<int, objec…...

创建一个 React+Typescript 项目

接下来 我们来一起探索一下用TypeScript 来编写react 这也是一个非常好的趋势&#xff0c;目前也非常多人使用 那么 我们就先从创建项目开始 首先 我们先找一个 或者 之前创建一个目录 用来放我们的项目 然后 在这个目录下直接输入 例如 这里 我想创建一个叫 tsReApp 的项目…...

Java课题笔记~ 数据提交的方式

前四种数据注入的方式&#xff0c;会自动进行类型转换。但无法自动转换日期类型。 &#xff08;1&#xff09;单个数据&#xff08;基本数据类型&#xff09;注入 在方法中声明一个和表单提交的参数名称相同的参数&#xff0c;由框架按照名称直接注入。 &#xff08;2&#x…...

VUE3给页面添加按钮事件

在Vue 3中&#xff0c;可以通过使用setup函数来添加事件和自定义逻辑。下面是一个示例代码&#xff0c;演示了如何添加页面上的altb事件 <template><div><p>Press Alt B to trigger the event!</p></div> </template><script setup&g…...

基于centos7.9通过nginx实现负载均衡以及反向代理

摘要&#xff1a;负载均衡&#xff1a; 负载均衡是一种技术&#xff0c;用于在多个服务器之间分发传入的网络流量&#xff0c;以平衡服务器的负载&#xff0c;提高系统的可用性和性能。当您有多台服务器时&#xff0c;您可以使用负载均衡将请求分发到这些服务器上&#xff0c;从…...

前端原生写自定义旋转变换轮播图

html部分&#xff1a; <div class"banner_box"><div class"swiperWrapper" v-show"bannerList.length>0"><div class"swiper-item" :id"swiperSlide${index}" :class"{active:index0,next:index1,pr…...

linux tomcat server.xml 项目访问路径变更不生效

如果想改成默认的127.0.0.1:8080 访问项目 先确定更改的作用文件 server.xml 的 host:appBase 标签 默认找到appBase webapps 下的war包&#xff0c;并解压&#xff0c;解压后的appname为访问路径 也就变成了 127.0.0.1:8080/appname host:Context:path 标签 appBase的 优先…...

介绍原型模式:快速构建和复制对象的设计模式

经过瀑布模式之后&#xff0c;我们不禁想要用模型解决更多的问题&#xff0c;最重要的就是不再单向行径。 由此&#xff0c;介绍 原型模式&#xff0c; 所谓原型&#xff0c;就是我们有一个框架或者初始角色。我们可以根据项目的不同&#xff0c;对它进行不同的修改&#xff0…...

Unity的TimeScale的影响范围分析

大家好&#xff0c;我是阿赵。 这期来说一下Unity的TimeScale。 一、前言 Unity提供了Time这个类&#xff0c;来控制时间。其实我自己倒是很少使用这个Time&#xff0c;因为做网络同步的游戏&#xff0c;一般是需要同步服务器时间&#xff0c;所以我比较多是在使用System.Date…...

爬虫逆向实战(五)--猿人学第三题

一、数据接口分析 主页地址&#xff1a;猿人学第三题 1、抓包 通过抓包可以发现数据接口是api/match/3 2、判断是否有加密参数 请求参数是否加密&#xff1f; 无请求头是否加密&#xff1f; 无响应是否加密&#xff1f; 无cookie是否加密&#xff1f; 无 二、发送请求 …...

[虚幻引擎] UE使用虚拟纹理在模型上显示挖空效果

此教程是记录如在UE中使用虚拟纹理&#xff0c;实现模型挖洞的效果。 1. 新建项目&#xff0c;开启项目支持虚拟纹理并并重启。 2. 新建一个基础关卡 3. 拖动“运行时虚拟纹理体积” 进入场景&#xff0c;并把体积修改变大&#xff0c;以可以完全包括到地板。 4. 创建一个虚拟纹…...

vue3中reactive和ref的比较

1.reactive和ref函数的共同作用是什么&#xff1f; 用函数调用的方式生成响应式数据 2. reactive vs ref? 1.reactive不能处理简单类型的数据 2.ref参数类型支持更好但是必须通过.value访问修改 3.ref函数的内部实现依赖于reactive函数 3. 在实际工作中推荐使用哪个? …...

Beats:使用 Filebeat 将 golang 应用程序记录到 Elasticsearch - 8.x

毫无疑问&#xff0c;日志记录是任何应用程序最重要的方面之一。 当事情出错时&#xff08;而且确实会出错&#xff09;&#xff0c;我们需要知道发生了什么。 为了实现这一目标&#xff0c;我们可以设置 Filebeat 从我们的 golang 应用程序收集日志&#xff0c;然后将它们发送…...

【STM32+ESP8266上云连载①】给ESP8266烧录AT固件

文章目录 一、给NodeMCU烧录固件1.1硬件准备1.2软件准备1.3AT固件下载1.4配置设置1.5开始烧录 二、给ESP8266-01S烧录固件2.1硬件准备2.2AT固件下载2.3连线2.4烧录配置 三、给ESP-12E/F/S单片烧录固件四、指令测试4.1HTTP测试4.2MQTT测试 我在使用ESP8266的时候遇到了一些问题&…...

深入解析Spring基本概念和核心思想

文章目录 基本概念IoCIoc容器IoC理解IoC的步骤Spring中使用ioc的步骤 AopAop的理解Aop的步骤 控制反转谁控制谁? 控制什么?为何叫反转(对应于正向)?哪些方面反转了?为何需要反转? 依赖什么是依赖(按名称理解、按动词理解)? 谁依赖于谁? 为什么需要依赖? 依赖什么东西?…...

Redis数据结构——快速列表quicklist、快表

定义 Redis中的数据结构&#xff0c;链表和压缩列表这两种数据结构是列表对象的底层实现方式。 当时考虑到链表的附加空间太大&#xff0c;节点的内存都是单独分配的&#xff0c;还会导致内存碎片化问题严重。 因此从Redis3.2开始&#xff0c;对列表的底层数据结构进行了改造&…...

excel统计函数篇3之rank系列

下面这三个函数都是返回指定数据在指定范围中的数据中的名次 1、RANK(number,ref,[order]):返回一列数字的数字排位&#xff08;数字排位是相对于列表中其他值的大小&#xff09; rank(数字&#xff0c;数字序列&#xff0c;升序/降序) – 数字在数字序列中的名次 2、RANK.AV…...

Flink 火焰图

方式一 使用 Flink Web UI 的 Flame Graph Flink 自己也支持了 Task 粒度的 Flame Graphs 功能&#xff0c;并且可以细化到 subtask 粒度。 第一步&#xff1a;配置启用功能 Flink 作业动态参数里增加配置&#xff1a;“rest.flamegraph.enabled”: “true” 并重启作业。当前…...

kubectl get 中英文对照

wlzx059node01:~$ kubectl get --help Display one or many resources. (显示一个或多个资源。)Prints a table of the most important information about the specified resources. You can filter the list using a label selector and the --selector flag. If the desired …...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...