【联邦学习贡献评估——联邦学习优化】

1. 模型复用

贡献评估往往需要计算不同参与方组合的数据价值, 然而模型相关的价值度量指标, 比如测试准确率, 需要基于数据重新训练并评测模型, 这导致了高昂的数据价值度量代价. 为了避免重复训练联邦模型的代价, 考虑复用全体参与方组合下训练联邦模型时各参与方的梯度更新, 避免在其他参与方子组合下训练模型时各 参与方重复的梯度计算, 大大减少模型训练相关的代价。

直接方式(不推荐):对于每个参与方子 组合, 复用相关参与方的梯度更新来完成模型的多轮次训练, 然后评测模型度量子组合数据价值. 但是因为 复用的梯度值不能代表参与方子组合数据的最优梯度方向, 经过多轮次训练后, 模型训练的累积误差大, 导 致近似价值度量不够准确.

合适的思路:评估各参与方在每轮次训练的贡献, 聚合多轮贡献来评估 参与方在联邦合作中的贡献

具体的思路:,

  1. 全体参与方合作训练联邦模型, 在每轮次中, 根据本地数据向联 邦发送梯度更新, 联邦枚举不同参与方组合梯度计算各参与方在本轮次的贡献期望, 然后, 联邦聚合所有参 与方梯度完成本轮次的全局模型更新.
  2. 基于每轮次评估参与方贡献的设定, 实现了在梯度复用的同时 , 大大 提升评估的准确性. 但是由于每轮次均需要评测模型性能, 评测次数随训练轮次线性增大, 加大了模型评测的代价.

缺陷的解决方案1:Wang 等人在每轮次评估中仅采样部分参与方进行贡献评估, 并将未被采样的参与方在该轮次的贡献视为 0. 然而, 由于模型训练的性能提升增益随训练轮次 逐渐收敛, 该方法对于未在靠前轮次中被采样到的参与方不公平.

解决方案1的补充:为了提升每轮次仅采样部分参与方进行贡献评估的公平性, 观察到多轮次不同参与方组合价值构成的矩 阵具有低秩特性, 可以将价值度量转换为采样下的低秩矩阵补全问题.

2. 模型剪枝

在联邦参与方贡献评估过程中, 从采样排列中参与方的边际价值增益、模型多轮次训练的性能提升和数 据样本这 3 个层面, 均可以进行剪枝优化.

  • 排列剪枝
    • 在贡献评估的随机采样优化中, 对于每个排列, 需要从前往后计算每个参与方加入前缀参 与方组合带来的边际贡献. 在假定所有参与方的边际贡献非负的情况下, 排列从前往后引入新参与 方的过程中, 前缀参与方组合的数据价值逐渐趋近于全体参与方组合的价值.
    • 因此, 可以设置边际增 益阈值, 当排列中参与方前缀组合的价值与全体参与方组合的价值差小于阈值时, 往后的参与方不 会带来显著边际增益, 因此可以剪枝停止计算引入剩余参与方的组合数据价值, 有效地提升参与方 数量庞大情况下的计算效率
  • 训练剪枝
    • 机器学习模型往往需要多轮次训练才能收敛, 为了降低数据估值任务中模型的训练代价, 不必像模型应用性能测评中一样, 尽可能地让模型收敛, 在模型性能提升波动小于一定程度时进行 剪枝, 提早结束模型训练. 甚至为进一步提升联邦数据评估效率, 可以根据任务复杂度适当提升模型 学习率, 仅进行单轮次模型训练
  • 数据剪枝
    • 基于局部相关特性, 联邦采用 K 近邻任务模型可实现贡献评估的数据样本剪枝。
    • K 近邻 方法价值计算仅关联到离测试样本最近的 k 条训练数据样本, 可忽略离测试样本距离过远的数据样 本, 因此可以对远距离样本剪枝来提升贡献评估效率.

3. 模型性能优化

在联邦学习实践中, 无法保证所有参与方均提供高价值无恶意的数据. 为了保证联邦学习效果 , 抵御恶意参与方攻击是联邦学习的一个重要研究议题[77]. 从优化联邦学习效果角度出发, 贡献评估技术可用于优化 联邦模型训练, 即择优选择参与方数据, 优化参与方参与程度, 减少使用低价值或恶意参与方数据, 降低恶意 参与方对模型性能的负面影响。

  • 按贡献调整联邦参与程度
    • 根据参与方的贡献大小, 调整参与方在联邦训练中的参与程度. 在经典联 邦学习中, 所有参与方在联邦合作中参与程度仅与数据量挂钩, 即基于 FedAvg, 按照各参与方数据 量加权聚合各参与方的梯度更新.
  • 设阈值移除低贡献参与方
    • 当不存在完备联邦测试集时, 可以根据参与方之间交叉验证来鉴定并移 除低贡献参与方.
  • 按贡献奖励不同任务模型.
    • 在很多联邦学习设定中, 参与方参与联邦学习的目的是获取性能更高的 任务模型, 因此, 可以通过贡献大小来奖励相应性能的任务模型来避免低价值或者恶意参与方. 实现 参与方按贡献获得不同任务模型, 需要改变经典联邦学习中每轮次训练后联邦同步最新全局模型给 每个参与方的设定.

4. 相关的论文

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【NTN 卫星通信】 车辆物联网设备通过NTN和TN切换的应用场景

1 场景描述 对于有两个3GPP无线接入网服务的大面积农田和农场,物联网设备可以通过NTN和TN接入网同时受益于5G系统的双转向数据连接能力。   在这个用例中,我们有一个广域的农业自动化应用系统来控制农业车辆,例如,一个装有数百个…

大模型提示学习样本量有玄机,自适应调节方法好

引言:探索文本分类中的个性化示例数量 在自然语言处理(NLP)领域,预测模型已经从零开始训练演变为使用标记数据对预训练模型进行微调。这种微调的极端形式涉及到上下文学习(In-Context Learning, ICL)&…

leetcode代码记录(删除字符串中的所有相邻重复项

目录 1. 题目:2. 我的代码:小结: 1. 题目: 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成…

数据结构:9、二叉树

在上堆中已经介绍了什么是二叉树,所以这里直接写二叉树实现。 1、二叉树的构建 二叉树的构建第一步肯定是初始化,也就是构建这棵树,这里是利用前序遍历构建的,因为这里是利用链表形式创建的二叉树,所以这里就是和之前…

redis常用五大数据类型

目录 Key 字符串String 常用命令 列表List 常用命令 集合Set 常用命令 Hash哈希 键值对集合 有序集合Zset Redis新数据类型 Key set key value...添加keykeys *查看当前库中所有的keyexist key该key是否存在type keykey的类型del key删除keyunlink key根据value选择非阻塞…

C++ UML类图

参考文章: (1)C UML类图详解 (2)C基础——用C实例理解UML类图 (3)C设计模式——UML类图 (4)[UML] 类图介绍 —— 程序员(灵魂画手)必备画图技能之…

2 使用GPU理解并行计算

2.1 简介 本章旨在对并行程序设计的基本概念及其与GPU技术的联系做一个宽泛的介绍。本章主要面向具有串行程序设计经验,但对并行处理概念缺乏了解的读者。我们将用GPU的基本知识来讲解并行程序设计的基本概念。 2.2 传统的串行代码 绝大多数程序员是在串行程序占据…

手撕算法-二叉树的最大深度

描述:分析:求以节点root为根节点的树的最大深度。可以进行拆分:root为根节点的树的最大深度 max(左子树的最大深度, 右子树最大深度)1 截止条件是节点为空,深度为0; 代码: public int maxDep…

HarmonyOS如何创建及调用三方库

介绍 本篇主要向开发者展示了在Stage模型中,如何调用已经上架到三方库中心的社区库和项目内创建的本地库。效果图如下: 相关概念 Navigation:一般作为Page页面的根容器,通过属性设置来展示页面的标题、工具栏、菜单。Tabs&#…

Java + sa-token统一身份认证开发笔记

官网地址:Sa-Token 统一认证服务端 直接用的官网的demo,稍加改动,因为要前后端分离,加了一个H5Controller,官网也有详细介绍,这一部分不难,照着做就行了 配置文件: # Sa-Token 配…

vo、po、dto、bo、pojo、entity

VO:Value Object,值对象。 通常用于业务层之间的数据传递,由new创建,由GC回收;例如:将商品信息和用户信息重新用一个对象封装起来。和PO一样也是仅仅包含数据而已,但应是抽象出的业务对象&…

全网良心开源知识库:AI学习者的宝藏之地

导语:在这个信息爆炸的时代,想要入门AI,找到最一流的学习资源并非易事。然而,有一个地方,能让你免费学习AI,获取最顶尖的知识,还能加入最优秀的AI学习圈。今天,我要向大家推荐的&…

Jumpserver 堡垒机用户启用双因子登录

前言: 堡垒机双因子登录 堡垒机往往是内部权限的集合体,拿到了堡垒机的用户账号密码,很容易就顺藤摸瓜攻破各种应用系统,除了常规的用户名复杂密码的要求外,我们常常都要求采用双因子的登录方式。双因子最常见的就是账…

【Qt学习笔记】(六)界面优化

界面优化 1 QSS1.1 背景介绍1.2 基本语法1.3 QSS设置方式1.3.1 指定控件样式设计1.3.2 全局样式设置1.3.3 使用 Qt Designer 编辑样式 1.4 选择器1.4.1选择器概况1.4.2 子控件选择器(Sub-Controls)1.4.3伪类选择器(Pseudo-States) 1.5 样式属性1.5.1 盒模…

MyBatis:编织数据之美的艺术

在数据库交互的舞台上,MyBatis就如同一位出色的编码艺术家,通过其独特的姿态和技巧,将数据库操作变得既优雅又高效。在这篇博客中,我们将深入研究MyBatis的使用详解,揭开其中的奥秘,感受数据之美的艺术之旅…

SpringCloud-Nacos配置管理

在nacos中添加配置文件 如何在nacos中管理配置呢? 然后在弹出的表单中,填写配置信息:如:userservice-dev.yaml 注意:项目的核心配置,需要热更新的配置才有放到nacos管理的必要。基本不会变更的一些配置…

【机器学习】基于麻雀搜索算法优化的BP神经网络分类预测(SSA-BP)

目录 1.原理与思路2.设计与实现3.结果预测4.代码获取 1.原理与思路 【智能算法应用】智能算法优化BP神经网络思路【智能算法】麻雀搜索算法(SSA)原理及实现 2.设计与实现 数据集: 多输入多输出:样本特征24,标签类别…

linux服务器上遇到杀不死的进程怎么办?

想要结束某个进程时,一般会先top一下找到进程号,然后kill xxx。 然而,我最近发现一个两百多兆的进程一直杀不死,kill完一个还会自动产生新的。 此时,可以用以下指令找到自己名下所有正在运行的进程,对症下药…

解决在命令行中输入py有效,输入python无效,输入python会跳转到microsoft store的问题| Bug

目录 如果你已经尝试过将python添加到系统变量在系统变量里把你自己的路径放到应用商店的路径之前删除windowsapps下的python.exe文件 如果你还未将python添加到系统变量没有python安装包且没有配置系统变量 如果你已经尝试过将python添加到系统变量 打开 运行,输入…

【linux】环境基础|开发工具|gcc|yum|vim|gdb|make|git

目录 ​编辑 Linux 软件包管理器 yum 软件包: 操作: 拓展:lrzsz简介 Linux开发工具 Linux编辑器-vim使用 vim 的基本概念 命令模式 插入模式 底行模式 vim 命令模式的操作指令 vim 底行模式的操作命令 Linux编译器-gcc/g使用 功能 格…