【论文阅读——Profit Allocation for Federated Learning】

1.摘要

由于更为严格的数据管理法规,如《通用数据保护条例》(GDPR),传统的机器学习服务生产模式正在转向联邦学习这一范式。联邦学习允许多个数据提供者在其本地保留数据的同时,协作训练一个共享模型。推动联邦学习实际应用的关键在于如何将联合模型产生的利润公平地分配给每个数据提供者。为了实现公平的利润分配,衡量每个数据提供者对联合模型贡献的度量标准至关重要。Shapley值是合作博弈论中的一项经典概念,用于分配所有玩家联盟所创造的整体盈余,并已被应用于机器学习服务中的数据估值。然而,先前基于Shapley值的数据估值方案要么不适用于联邦学习,要么涉及额外的模型训练,导致高昂的成本。

我们提出了一种新的基于Shapley值的指标——贡献指数,用于评估各个数据提供者对于通过联邦学习训练出的联合模型的贡献程度。贡献指数具备与Shapley值相同的属性。但是,直接计算贡献指数耗时较长,因为需要训练和评估大量包含不同数据集组合的联合模型。为解决这一问题,我们提出了两种基于梯度的方法。
这两种方法的核心思想是利用联邦学习训练过程中的中间结果来近似重建不同数据集组合上的模型,从而避免额外的训练。

第一种方法通过在联邦学习的不同轮次中更新初始全局模型的梯度来重构模型,随后根据这些重构模型的性能来计算贡献指数。

第二种方法则在每一轮中通过用当前轮次的梯度来更新前一轮的全局模型来计算贡献指数,然后将多轮的贡献指数按精心设计的权重累加起来得出最终结果。

2.贡献

  1. 基于Shapley值,我们正式定义了贡献指数(CI)这一概念,用于量化水平型联邦学习任务中数据提供者的贡献程度。
  2. 我们设计了两种高效的近似算法来计算CI,这些方法仅利用联邦学习过程中的中间结果,无需额外的模型训练步骤。
  3. 我们在不同设置下对MNIST数据集进行了广泛实验,以验证所提方法的有效性和效率。实验结果表明,我们的方法能够很好地逼近精确的CI值,并实现高达2倍至100倍的时间加速。

3.目标场景

在本文中,假设存在n个拥有数据集D1, D2, …, Dn的数据提供者,一个联邦学习算法A以及一个标准测试集T。

4.方法

4.1 Contribution Index(CI贡献指数)

  • 有n个数据提供者 D 1 , D 2 , . . . , D n D_1,D_2,...,D_n D1,D2,...,Dn,一个机器学习算法 A A A和一个标准的测试集 T T T
  • 我们用 D S D_S DS代表由联盟S组成的符合数据集。
  • 在数据集 D S D_S DS上训练得到的模型记为 M S ( A ) M_S(A) MS(A),在没有歧义的情况下可以记为 M S M_S MS
  • 模型 M M M在标准测试集 T T T上的表现记为 U ( M , T ) U(M,T) U(M,T),在没有歧义的情况下可以记为 U M U_M UM
  • 我们使用 ϕ ( A , D N , T , D i ) \phi(A,D_N,T,D_i) ϕ(A,DN,T,Di)来代表 D i D_i Di数据集的贡献指数

有如下计算公式(引理1)
ϕ i = C ∑ S ⊆ N ∖ { i } U ( M S ∪ { i } ) − U ( M S ) ( n − 1 ∣ S ∣ ) \phi_i=C\sum_{S\subseteq N \setminus \{i\}}\frac{U(M_{S\cup \{i\}})-U(M_S)}{\tbinom{n-1}{|S|}} ϕi=CSN{i}(Sn1)U(MS{i})U(MS)

4.2 一轮重构算法(OR)

在这里插入图片描述

在这里插入图片描述
具体来说,

  • 在2-3行中,我们使用N来表示{1, 2, ··· ,n}的集合,并使用相同的随机模型初始化全局模型 M ( 0 ) M^{(0)} M(0)和基于不同非空子集S⊆N的重构模型,表示为 { M ~ S ( 0 ) ∣ S ⊆ N } \{ \tilde{M}_S^{(0)} |S ⊆ N \} {M~S(0)SN}
  • 在4-12行中,在每一轮训练中
    • 服务器首先在第5行将初始模型 M ( t ) M^{(t)} M(t)传播给每个客户端,
    • 然后在第6行接收来自客户端的更新的子模型 M i ( t ) i = 1 , 2 , ⋅ ⋅ ⋅ , n {M^{(t)}_i}_{i=1,2,··· ,n} Mi(t)i=1,2,⋅⋅⋅,n
    • 在第7行,计算客户端的梯度 { Δ i ( t ) } i = 1 , 2 , ⋅ ⋅ ⋅ , n \{Δ^{(t)}_i\}_{i=1,2,··· ,n} {Δi(t)}i=1,2,⋅⋅⋅,n用于模型聚合。
    • 在第8行,我们更新由联邦学习维护的全局模型。
    • 在9-11行中,我们不重新训练所有N的非空子集的模型,而是根据客户端的梯度大致重构这些模型。对于每个S⊆N,
    • 在第10行,我们根据数据大小计算相应的梯度,
    • 并在第11行使用聚合梯度来更新相应的模型。
  • 在14-17行,计算不同客户端(数据提供者)的CI。
    • 具体来说,对于每个客户端i,在第10行重构的模型基础上使用引理1计算其CI。
    • 在第18行,返回训练好的联邦模型和CI。
  • 客户端的第二部分显示在19-25行,其中客户端根据从服务器接收的模型使用其自己的数据训练本地模型,遵循经典的梯度下降算法,并将其本地模型 M i ( t ) i = 1 , 2 , ⋅ ⋅ ⋅ , n {M^{(t)}_i}_{i=1,2,··· ,n} Mi(t)i=1,2,⋅⋅⋅,n。报告给服务器。

4.3 多轮重构算法(OR)

在这里插入图片描述
在这里插入图片描述
在MR中,我们不是一次性估计所有CI,而是在联邦学习的每个训练轮次中估计一组CI,并将它们聚合以获得最终结果。

在每一轮中,我们收集客户端向服务器更新的梯度。通过这些梯度,我们通过将梯度应用于当前轮次的全局模型来重构与数据集不同组合相关的模型。然后,根据引理1和每个重构模型的性能评估,计算不同数据提供者的CI。最后,利用来自不同训练轮次的这些CI集合,进行加权平均以获得最终结果。

我们使用参数λ∈(0,1)来表示衰减因子,控制最终结果中轮次CI的权重。其背后的思想是随着迭代轮次的增加,全局模型越来越多地受到所有数据集的共同影响。因此,我们给予前几轮更高的权重。

5.实验

5.1 数据集的设置

  1. 具有相同数据大小和相同分布。
  2. 具有相同数据大小但不同分布。
  3. 具有不同数据大小但相同分布。
  4. 具有相同数据大小但标签有噪声
  5. 具有相同数据大小但特征有噪声

5.2 方法的比较

  • Exact(准确算法)
  • 扩展TMC-Shapley算法
  • Extended-GTB
  • OR
  • MR

5.3 衡量的指标

  • 时间
  • 余弦距离
  • 欧几里得距离
  • 最大差异

5.4 实验结果

5.4.1 具有相同数据大小和相同分布

在这里插入图片描述

5.4.2 具有相同数据大小但不同分布

在这里插入图片描述

5.4.3 具有不同数据大小但相同分布

在这里插入图片描述

5.4.4 具有相同数据大小但标签有噪声

在这里插入图片描述

5.4.5 具有相同数据大小但特征有噪声

在这里插入图片描述

5.5 实验总结

根据上述实验,可以总结如下:
时间。Extended-TMC-Shapley 和 Extended-GTB 是耗时最长的。这两个基准算法在效率上相似。OR 和 MR 的耗时对不同设置具有鲁棒性,它们是最高效的。OR 要优于 MR。
性能。MR 的性能在所有设置中都是稳定且令人满意的。在大多数设置中,OR 在逼近精确 CI 方面表现最佳。然而,它对标签噪声敏感。Extended-TMC-Shapley 和 Extended-GTB 的性能最差。关于 Extended-GTB 的性能,我们做了一些简要的讨论。在解决 Extended-GTB 中的可行性问题时,我们发现一些不准确的约束可能会使问题无法解决。为了找到解决方案的实例,我们不得不重复放松所有不等式的约束,这会导致 CI 不准确。因此,需要专门设计的方法来解决 Extended-GTB 中的可行性问题。

6.思考

  • 在企业级联邦学习场景中,由于数据量通常非常大,额外的模型训练轮次成本非常高昂
  • OR没有指出数据提供方在中途加入/退出的问题,从指标上来看难以有吸引力。MR虽然可以支持各个参与方中途退出和加入,但对于贡献分配的公平性没有一个相对的概念评析。(举个例子来说:模型正确率从90上升到95,和95上升到98的贡献上来说,无法说明应该如何分配奖励)
  • 该论文中并没有对模型的梯度数据进行保护,可能会存在一定的隐私泄露风险

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

知识管理系统|基于Springboot和vue的知识管理系统设计与实现(源码+数据库+文档)

知识管理 目录 基于Springboot和vue的知识管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、前台: 5.2.2 文章信息 5.3.1 论坛交流 2、后台 用户管理 5.1.2 文章分类 5.2.1 资料分类 四、数据库设计 五、核心代码 六、论文参考 七、最…

【面经】2023年软件测试面试题大全(持续更新)附答案

前阵子一位读者告诉我,某位大厂HR给他发了我之前做的面试题答案合集。 这个消息让我开心了一整天😂,因为这说明我之前做的面试题系列真的能帮助到部分测试同学,也算是侧面得到了一种认可吧。 坚持可是我们程序员家族的优良传统&a…

一款轻量、干净的 Laravel 后台管理框架

系统简介 ModStart 是一个基于 Laravel 的模块化快速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议,免费且不限制商业使用。 系统特性 …

tensorflow.js 如何使用opencv.js通过面部特征点估算脸部姿态并绘制示意图

文章目录 前言一、实现步骤1. 获取所需特征点的索引2. 使用opencv.js 计算俯仰角、水平角和翻滚角cv.solvePnP介绍cv.solvePnP原理运行代码查看效果 3.绘制姿态示意直线添加canvas元素计算姿态直线坐标并绘制 总结 前言 在计算机视觉领域,估算脸部姿态是一项具有挑…

thinkphp6中使用监听事件和事件订阅

目录 一:场景介绍 二:事件监听 三:配置订阅 一:场景介绍 在项目开发中有很多这样的场景,比如用户注册完了,需要通知到第三方或者发送消息。用户下单了,需要提示给客服等等。这些场景都有一个…

rac数据库默认网关不通导致集群异常

集群CSSD进程reconfiguration完成,显示2个节点都在线。但ora.net1.network服务启动失败,且有依赖关系的资源随后启动失败并且已经达到上限。 查看两个节点的网络信息,发现两个节点的默认网关是不一致的。 修改故障节点网关 在RAC中&#xff0…

线程间的通信

文章目录 线程间的通讯技术就是通过等待和唤醒机制,来实现多个线程协同操作完成某一项任务,例如经典的生产者和消费者案例。等待唤醒机制其实就是让线程进入等待状态或者让线程从等待状态中唤醒,需要用到两种方法,如下&#xff1a…

dinov2爆肝记

一、网址 https://github.com/facebookresearch/dinov2 二、配置 pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ 三、雷 cuml-cu11无法安装,因为他只能linux 但我发现,没他也行 四、代码 注意: 下面代码…

用Python+OpenCV截取视频中所有含有字幕的画面

1、需求背景 有的视频文件的字幕已经压制到了视频的图像中,不能单独提取出字幕文件。网上的 “提取视频字幕” 网站多为提取视频中的字幕文件,而非识别视频图像中的字幕。少数通过OCR技术识别画面中字幕的工具需要在线运行、运行速度较慢,或…

Spark记录未整理

Spark记录未整理,请以较平静的心态阅读。 目的: 根据user_id进行分组,同时将同一user_id看过的anime_id转化为一个字符串数组(anime_ids),将anime_ids转化为二维的list [[[20, 81, 170, 263…],[]…]&#…

【芯片设计- RTL 数字逻辑设计入门 1.1 -- Verdi 使用入门介绍 1】

请阅读【芯片设计 RTL 数字逻辑设计扫盲 】 文章目录 Verdi 介绍Verdi 特点和功能Verdi 基本操作Verdi -elab与-dbdir区别-elab 参数介绍-dbdir 参数介绍区别总结Verdi 介绍 Verdi 是由Synopsys公司开发的一款业界领先的自动化电子设计自动化(EDA)工具,主要用于功能验证和调…

java数据结构与算法刷题-----LeetCode628. 三个数的最大乘积

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 排序选择线性搜索最值 排序 解题思路:时间复杂度O( …

React - 你知道在React组件的哪个阶段发送Ajax最合适吗

难度级别:中级及以上 提问概率:65% 如果求职者被问到了这个问题,那么只是单纯的回答在哪个阶段发送Ajax请求恐怕是不够全面的。最好是先详细描述React组件都有哪些生命周期,最后再回过头来点题作答,为什么应该在这个阶段发送Ajax请求。那…

【踩坑】修复Latex表格竖线分割/竖线割断/竖线不完整问题

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.blog.csdn.net] 推荐一下 Latex 三线表 横线竖线短横线【踩坑】Latex中multicolumn/multirow单元格竖线消失的恢复方法LaTeX简单常用方法笔记Latex论文写作小技巧记录 1、有时候在画表格的时候,可能会出现…

51单片机之自己配串口寄存器实现波特率9600

本配置是根据手册进行开发配置的 1、首先配置SCON 所以综上所诉 SCON 0x40 (0100 0000) 2、PCON不用配置 3、配置定时器1 4、波特率的计算 5、配置AUXR 6、对比 7、实现 8、优化(实现字符串) 引入TI (智能延时&…

CLIPSeg如果报“目标计算机积极拒绝,无法连接。”怎么办?

CLIPSeg这个插件在使用的时候,偶尔会遇到以下报错: Error occurred when executing CLIPSeg: (MaxRetryError("HTTPSConnectionPool(hosthuggingface.co, port443): Max retries exceeded with url: /CIDAS/clipseg-rd64-refined/resolve/main/toke…

基于jenkins+gitlab+docker部署zabbix

背景 我现在已经在一台服务器上部署了jenkins和gitlab,现在有一个场景是需要在服务器上再部署一个zabbix,需要通过jenkins加上gitlab部署,并且要求zabbix是通过docker部署的 前提条件 jenkins、gitlab已完成部署并能正常访问,服…

从路由器syslog日志监控路由器流量

路由器是关键的网络基础设施组件,需要随时监控,定期监控路由器可以帮助管理员确保路由器通信正常。日常监控还可以清楚地显出通过网络的流量,通过分析路由器流量,安全管理员可及早识别可能发生的网络事件,从而避免停机…

C语言 | Leetcode C语言题解之第9题回文数

题目&#xff1a; 题解&#xff1a; bool isPalindrome(int x) {if(x < 0)return false;long int sum0;long int nx;while(n!0){sumsum*10n%10;nn/10;}if(sumx)return true;elsereturn false; }

MongoDB基本操作之备份与恢复【验证有效】

资源获取 MongoDB Database Tools 解压zip包&#xff0c;将其中的工具复制到bin目录下 mongodump与mongorestore – 备份 mongodump -h localhost:27017 -u admin -p pass --authenticationDatabase admin -d runoob -o /usr/local/mongo/bak/ --forceTableScan –切换数据库…