论文阅读-Federated-Unlearning-With-Momentum-Degradation

news2025/1/17 6:02:42

论文阅读-Federated Unlearning With Momentum Degradation

联邦忘却与动量退化

Yian Zhao IEEE Internet of Things Journal 2023 年 10 月 2 日
CCF-C


momentum degradation-MoDe 动量退化

memory guidance-记忆引导

knowledge erasure-知识擦除

Deep-learning neural network—DNN深度神经网络

backdoor attacks -后门攻击

degradation model-退化模型


  • Abstract

FL系统中的全局模型容易受到恶意节点的数据中毒攻击。在本文中,我们分析了将忘却学习和训练过程解耦的必要性,并提出了一种与训练无关的有效方法,可以有效地执行两种类型的忘却任务:1)客户端撤销 2)类别删除。

具体来说,我们将遗忘过程分解为两个步骤:1)知识擦除 2)记忆引导

首先提出了一种新颖的知识擦除策略,称为动量退化MoDe,他实现了模型中隐含知识的擦除,并确保模型能够平滑地移动到重新训练模型的早期状态。为了减轻第一步造成的性能下降,记忆引导策略在不同数据点上对模型进行引导微调,可以有效恢复模型在剩余点上的可区分性。

  • Introduction

FL带来的安全问题主要是由私有数据对全局模型的参数更新造成的。通过及时撤销恶意节点对全局模型的参数更新,可以有效降低数据泄露的可能性。联邦忘却学习可以通过撤销那些被污染的数据,为系统提供抵御数据中毒的方法,从而提供FL训练的安全性。

即使数据从服务器或数据库中删除,训练数据也已经隐式嵌入到使用该数据训练的模型的参数分布中。因此,为了让数据持有者或FL系统安全可靠的撤销目标数据,有必要擦除先前从特定数据中获取的模型的隐含知识。。

在这里插入图片描述

与训练无关的高效联邦忘却学习方法。所提出的方法将联邦忘却学习过程与训练完全解耦,并允许将两种类型的忘却学习任务(类别删除和客户端撤销)应用于任何设置下成功完成FL训练的任何模型架构,而无需修改训练过程以适应忘却学习算法。

主要贡献:

  1. 提出了一种基于MoDe和记忆引导的知识擦除来微调模型性能。所提出的方法将联邦忘却学习过程与训练完全解耦,并允许将忘却学习应用于任何设置下完成FL训练的任何模型架构,而无需修改训练过程以适应忘却学习算法。
  2. 所提出的方法可以有效执行客户端撤销和类别删除两种类型的撤销任务,不仅可以满足用户发起的数据撤销请求,而且可以实现服务器对数据中毒攻击的主动防御。

FedEraser、FUKD、UPGA->针对客户端撤销

FUCP->类别删除

  • Method

  • 概述:

在这里插入图片描述

​ (本文使用的主要符号)

当客户端ci发出数据撤销请求时或者服务器需要擦除一个或多个特定类别时,我们的方法利用同构且随机初始化的退化模型Mde分别在MoDe和记忆引导阶段进行退化和引导M。

  • 在MoDe阶段,利用退化模型Mde的参数Wde作为影子参数对预训练模型参数W进行动量更新,从而实现预训练模型M到再训练模型Mre早期状态的平滑转移。MoDe抹去了目标数据点si在M的参数中的贡献。
  • 在记忆引导阶段,我们利用退化模型Mde获得目标数据点的分类结果作为伪标签来引导预训练模型M并同时在剩余数据点上进行更新。记忆引导恢复了M对剩余数据点S的可区分性。

在这里插入图片描述

MoDe概述:客户端Client N发出撤销请求,利用同构且随机初始化的退化模型(unlearning框中的蓝色菱形)分别在MoDe和记忆引导阶段对目标模型(图中橙色菱形)进行降级和引导。

  • 知识擦除knowledge erasure

MoDe阶段的基本原理是调整预训练的模型参数W,从而使其失去对目标数据点的强辨别力。理想的结果是调整后的模型参数Wadj非常接近重新训练的模型参数Wre

使用随机分配的参数Wde初始化同构模型Mde,该参数作为Wre的初始状态。在忘却学习过程中,由于Mde是使用剩余数据点进行训练的,因此Wde逐渐向Wre收敛。因此,我们利用Wde作为更新W的方向。 W ← λW + (1 − λ )Wde

  • 记忆引导 memory guidance

经过MoDe之后,预训练的模型M对所有数据点的可辨别性都有轻微下降。需要在下一次退化之前及时微调其参数W,确保W既不会持续向Wre的早期状态移动,导致M对剩余数据点的可辨别性下降,也不会更新得太过平滑导致数据撤销过程缓慢。

为了实现此目标,提出了一种记忆引导策略。利用初始化的退化模型Mde将目标数据点的预测推断为伪标签,以指导预训练模型M,同时用剩余数据点的真值标签更新它。

  • 实现 implementation

服务器端的MoDe算法):首先服务器随机初始化一个与预训练模型M结构相同的退化模型Mde。然后服务器将退化模型Mde发送给其余客户端进行FL训练,退化模型根据公式完成一轮聚合后,服务器对预训练模型M进行MoDe。最后,通过记忆引导对预训练模型M进行微调。

即小于一定轮次时,随机生成一个退化模型发给非目标Client,训练聚参,动量更新全局模型: W ← λW + (1 − λ )Wde

在这里插入图片描述

目标客户端MoDe算法):服务器将预训练模型M发送给所有客户端,同时将退化模型Mde发送给目标客户端ci。其他客户端对M进行FL训练,而目标客户端ci利用Mde在本地数据集上的输出结果作为伪标签来指导M的本地训练。

即把WWde都发给目标Client,用Wde在目标数据集上产生的伪标签训练W。所有的模型再聚合

在这里插入图片描述

  • Experiments

在四个数据集上评估MoDe在客户端撤销和类别删除方面的性能。实验表明,MoDe可以有效地从预训练模型中消除目标数据点或特定类别的贡献,并且与重新训练相比,实现了显著的加速。

数据集:MNIST、Fashion-MNIST、CIFAR-10、CIFAR-100

评估指标

  1. 客户端撤销指标:后门攻击是一种针对DNN是隐蔽性破坏性攻击方法,他通过毒害部分训练数据将后门触发器植入到模型中。将目标客户端的本地训练图像插入特定的后门触发器,这样全局模型容易受到后门触发的影响。成功的忘却学习过程应该产生一个模型,该模型在后门攻击的测试集上后门攻击的成功率较低,同时保证干净测试集的可区分性。
  2. 类别删除指标:为了评估类别删除的有效性,我们计算测试集上目标类别(U集)和剩余类别(R集)。我们的期望是忘却学习模型在U集上获得较低的准确度,但在R集上保持与预训练模型相似或更高的准确度。

实验结果:

客户端撤销:

  • 对5个和10个客户端进行FL训练,并对目标客户端进行后门攻击。FL训练完,MoDe被用来撤销目标客户端的所有数据点。
  • FedAvg表示使用FedAvg聚合算法训练的全局模型结果,Retrained表示从头开始重新训练的模型结果。
  • 分别评估了后门攻击的成功率模型在后门攻击测试集和干净测试集上的准确性,对应atk和clean
  • speed up表示提出的MoDe相比重新训练的加速

MoDe处理的模型准确率和后门攻击成功率与重新训练的模型相似,差异小于1%,但是执行速度方面具有显著优势。

在这里插入图片描述

类别删除:

对10个客户进行FL训练,并应用所提出的MoDe来消除数据集中类别索引"0"的所有样本的贡献。

在这里插入图片描述

U-set表示目标类别的准确度,R-set表示其余类别的平均准确度。

所提出的MoDe方法在所有四个数据集上有效地执行了类别去除(U集精度为0.00%)

与SOTA的比较:

比较了两种算法:FUKD和UPGA(专门处理客户端撤销)

在这里插入图片描述

在这里插入图片描述

FUCP(专门处理类别删除)

在这里插入图片描述

消融实验:

MoDe由两个阶段组成,即MoDe和记忆引导。这两个阶段中使用的同构退化模型在每一轮的MoDe期间的剩余数据点上进行训练。

为了验证MoDe各部分的有效性,我们对MoDe中的三个关键变量,即MoDe、记忆指导和退化模型更新进行了消融实验。

在这里插入图片描述

后三行分别表示省略MoDe、记忆引导和退化模型更新时的结果。

根据实验结果得出三个结论:

  1. MoDe的缺乏导致无法有效消除目标数据点的贡献
  2. 没有记忆引导,预训练模型在所有数据点上的准确率会不断下降,因为MoDe后的模型参数无法及时调整。
  3. 冻结退化模型会导致预训练模型迭代向初始状态退化,导致判别出现轻微随机性。
  • Conclusion

提出了一种与训练无关且高效的联邦忘却学习方法,称为MoDe,该方法通过两个步骤迭代执行:知识擦除MoDe和记忆引导。MoDe能有效消除预训练模型中目标数据点的贡献,而记忆引导在MoDe之后恢复了模型的性能,因此这两个步骤是协作和互补

支持client revocation and category removal。包括knowledge erasure 和 memory guidance两个步骤:knowledge erasure是一个逐渐趋近的过程,memory guidance是再次微调的过程。
型中目标数据点的贡献,而记忆引导在MoDe之后恢复了模型的性能,因此这两个步骤是协作和互补

支持client revocation and category removal。包括knowledge erasure 和 memory guidance两个步骤:knowledge erasure是一个逐渐趋近的过程,memory guidance是再次微调的过程。

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

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

相关文章

【记录】Python|Selenium 下载 PDF 不预览不弹窗(2024年)

版本: Chrome 124Python 12Selenium 4.19.0 版本与我有差异不要紧,只要别差异太大比如 Chrome 用 57 之前的版本了,就可以看本文。 如果你从前完全没使用过、没安装过Selenium,可以参考这篇博客《【记录】Python3|Sele…

搭建Zookeeper完全分布式集群(CentOS 9 )

ZooKeeper是一个开源的分布式协调服务,它为分布式应用提供了高效且可靠的分布式协调服务,并且是分布式应用保证数据一致性的解决方案。该项目由雅虎公司创建,是Google Chubby的开源实现。 分布式应用可以基于ZooKeeper实现诸如数据发布/订阅…

UE5 C++ 射线检测

一.声明四个变量 FVector StartLocation;FVector ForwardVector;FVector EndLocation;FHitResult HitResult;二.起点从摄像机,重点为摄像机前9999m。射线检测 使用LineTraceSingleByChannel 射线直线通道检测,所以 void AMyCharacter::Tick(float Delt…

c++ qt6.5 打包sqlite组件无法使用,尽然 也需要dll支持!这和开发php 有什么区别!

运行 程序会默认使用当前所在文件夹中的 dll 文件,若文件不存在,会使用系统环境变量路径中的文件;又或者是需要在程序源代码中明确指定使用的 dll 的路径。由于我安装 Qt 时将相关 dll 文件路径都添加到了系统环境变量中,所以即使…

Hbase的shell命令(详细)

一、help 1.help 显示命名的分组情况 2.help 命令名称 查看命令的具体使用,包括命令的作用和用法。 举例:help list 二、general 组(普通命令组) 命令 描述 …

设计循环队列(队列oj)

1.设计循环队列 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前用过的空间。…

高版本Android studio 使用Markdown无法预览(已解决)

目录 概述 解决方法 概述 本人升级Android studio 当前版本为Android Studio Jellyfish | 2023.3.1 RC 2导致Markdown无法预览。 我尝试了很多网上的方法都无法Markdown解决预览问题,包括升级插件、安装各种和Markdown相关的插件及使用“Choose Boot Java Runtim…

CentOS系统上部署Docker,mysql,nginx

CentOS7系统上部署Docker,mysql,nginx 未完,持续更新中 更新软件包索引: 首先,确保你的CentOS系统是最新的。你可以通过运行以下命令来更新你的系统: yum update安装Docker: CentOS的软件仓…

十大开源机器人 智能体

1- Poppy 网址 https://www.poppy-project.org/en/ 2- Nao 网址:https://www.aldebaran.com/en/nao 3- iCub 网址: https://icub.iit.it/

蓝桥杯2024年第十五届省赛真题-R 格式

找到规律后如下&#xff0c;只需要用高精度加法和四舍五入&#xff08;本质也是高精度加法就能做&#xff09;&#xff0c;如果没有找到规律&#xff0c;就得自己写高精度乘法和加法&#xff0c;不熟练很容易错。 //#include<bits/stdc.h> #include<iostream> #i…

【UE5.1】使用MySQL and MariaDB Integration插件——(3)表格形式显示数据

在上一篇&#xff08;【UE5.1】使用MySQL and MariaDB Integration插件——&#xff08;2&#xff09;查询&#xff09;基础上继续实现以表格形式显示查询到的数据的功能 效果 步骤 1. 在“WBP_Query”中将多行文本框替换未网格面板控件&#xff0c;该控件可以用表格形式布局…

论文笔记:Are Human-generated Demonstrations Necessary for In-context Learning?

iclr 2024 reviewer 评分 6668 1 intro 大型语言模型&#xff08;LLMs&#xff09;已显示出在上下文中学习的能力 给定几个带注释的示例作为演示&#xff0c;LLMs 能够为新的测试输入生成输出然而&#xff0c;现行的上下文学习&#xff08;ICL&#xff09;范式仍存在以下明显…

1 回归:锂电池温度预测top2 代码部分(一) Tabnet

2024 iFLYTEK A.I.开发者大赛-讯飞开放平台 TabNet&#xff1a; 模型也是我在这个比赛一个意外收获&#xff0c;这个模型在比赛之中可用。但是需要GPU资源&#xff0c;否则运行真的是太慢了。后面针对这个模型我会写出如何使用的方法策略。 比赛结束后有与其他两位选手聊天&am…

YOLOv9改进策略 | 损失函数篇 | EIoU、SIoU、WIoU、DIoU、FocusIoU等二十余种损失函数

一、本文介绍 这篇文章介绍了YOLOv9的重大改进&#xff0c;特别是在损失函数方面的创新。它不仅包括了多种IoU损失函数的改进和变体&#xff0c;如SIoU、WIoU、GIoU、DIoU、EIOU、CIoU&#xff0c;还融合了“Focus”思想&#xff0c;创造了一系列新的损失函数。这些组合形式的…

前端请求发送成功,后端收到null

1、dishId为64&#xff0c;有数据 2、但是后端调试接不到数据&#xff0c;为null 3、形参部分缺少RequestBody接收JSON数据&#xff0c;加上即可

C++修炼之路之STL_stack,queue和容器适配器

目录 前言 一&#xff1a;SLT中stack和queue的基本使用 1.在官网中对stack和queue的简单介绍 2.数据结构中栈和队列的基本知识和操作 3. STL中stack的接口函数及使用 4.STL中queue的接口函数及使用 二&#xff1a;容器适配器Container 三&#xff1a;使用容器适配器…

浏览器工作原理与实践--安全沙箱:页面和系统之间的隔离墙

前面三篇文章我们主要围绕同源策略介绍了Web页面安全的相关内容&#xff0c;那今天我们把视野向外延伸&#xff0c;来聊聊页面安全和操作系统安全之间的关系。 在《仅仅打开了1个页面&#xff0c;为什么有4个进程&#xff1f;》那篇文章中&#xff0c;我们分析了浏览器架构的发…

第一篇【传奇开心果系列】我和AI面对面聊编程:深度比较PyQt5和tkinter.ttk

传奇开心果系列博文 系列博文目录我和AI面对面聊编程系列 博文目录前言一、今天我们面对广大读者选择PyQt5和tkinter.ttk做比较这个话题目的是什么&#xff1f;二、举一个最简单的pyqt5信号和插槽的例子三、这和tkinter的点击事件有什么区别&#xff1f;四、如何选择&#xff1…

深澜计费管理系统 /demo/proxy存在任意文件读取漏洞

声明&#xff1a; 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任。 简介 深澜计费管理系统是一款用于网络设备计费管理的软件…

React + 项目(从基础到实战) -- 第八期

ajax 请求的搭建 引入mockAP接口设计AJAX 通讯 前置知识 HTTP 协议 , 前后端通讯的桥梁API : XMLHttpRequest 和 fetch常用工具axios mock 引入 Mock.js (mockjs.com) 使用 mockJS 前端代码中引入 mockJs定义要模拟的路由 , 返回结果mockJs 劫持ajax请求(返回模拟的结果)…