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

论文阅读-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.mzph.cn/news/824252.shtml

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

相关文章

C++如何使用string类

文章目录 为什么要学习string?库中的string关于编码ASCII编码Unicode编码 迭代器Iteratorsstring常用构造接口接口声明与功能说明接口演示 string类对象的容量操作接口声明与功能说明接口演示reverse与resize在不同平台下的扩容与缩容机制 string类对象的访问及遍历操作接口声…

CUDA 以及MPI并行矩阵乘连接服务器运算vscode配置

一、CUDA Vscode配置 (一)扩展安装 本地安装 服务器端安装 (二) CUDA 配置 .vscode c_cpp_properties.json {"configurations": [{"name": "Linux","includePath": ["${workspa…

【C++类和对象】拷贝构造与赋值运算符重载

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

分布式搭载博客网站

一.运行环境: IP主机名系统服务192.168.118.128Server-WebLinuxWeb192.168.118.131Server-NFS-DNSLinuxNFS/DNS 二.基础配置 1. 配置主机名,hosts映射 [rootserver ~]# hostnamectl set-hostname Server-Web [rootserver ~]# hostname Server-Web [r…

【学习笔记】Python大数据处理与分析——数据预处理

一、数据清洗 1、唯一值与重复值 获取唯一值的方法是采用unique()函数,用于Series对象: s1 pd.Series([2, 3, 4, 1, 2, 5, 3, 6, 4, 9, 5, 3, 4, 2, 1, 2])print(s1.unique()) →[2 3 4 1 5 6 9] 但unique()函数不能用于DataFrame对象,而d…

Word分节后,页码不连续、转PDF每节后多出空白页解决办法

1. 问题图例 废话少说,先上图: 2. 问题分析 问题分析:出现以上问题的原因可能有, 未链接到上一节页面布局中节的起始位置设置为[奇数页] 3. 解决问题 若为【1. 未链接到上一节】导致该问题出现,则我们需要选中页脚…

Chatgpt掘金之旅—有爱AI商业实战篇|品牌故事业务|(十六)

演示站点: https://ai.uaai.cn 对话模块 官方论坛: www.jingyuai.com 京娱AI 一、AI技术创业在品牌故事业务有哪些机会? 人工智能(AI)技术作为当今科技创新的前沿领域,为创业者提供了广阔的机会和挑战。随…

接口压力测试 jmeter--入门篇(一)

一 压力测试的目的 评估系统的能力识别系统的弱点:瓶颈/弱点检查系统的隐藏的问题检验系统的稳定性和可靠性 二 性能测试指标以及测算 【虚拟用户数】:线程用户【并发数】:指在某一时间,一定数量的虚拟用户同时对系统的某个功…

OpenMesh 网格平均曲率计算

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 根据 Laplace-Beltrami 算子与平均曲率法向的关系: 又根据余切 Laplace-Beltrami 算子的定义: 其中 Ai 为该点邻域面积,取 Voronoi cell 面积如下: 得到

PACNet CellNet(代码开源)|bulk数据作细胞分类,评估细胞命运性能的一大利器

文章目录 1.前言2.CellNet2.1CellNet简介2.2CellNet结果 3.PACNet3.1安装R包与加载R包3.2加载数据3.3开始训练和分类3.4可视化分类过程3.5可视化分类结果 4.细胞命运分类和免疫浸润比较 1.前言 今天冲浪看到一个细胞分类性能评估的R包——PACNet,它与转录组分析方法…

Prometheus + Grafana 搭建监控仪表盘

目标要求 1、需要展现的仪表盘: SpringBoot或JVM仪表盘 Centos物理机服务器(实际为物理分割的虚拟服务器)仪表盘 2、展现要求: 探索Prometheus Grafana搭建起来的展示效果,尽可能展示能展示的部分。 一、下载软件包 监控系统核心…

Spring Cloud Gateway集成聚合型Spring Boot API发布组件knife4j,增强Swagger

大家都知道,在前后端分离开发的时代,前后端接口对接是一项必不可少的工作。 可是,作为后端开发,怎么和前端更好的配合,才能让自己不心累、脑累,直接扔给前端一个后端开放api接口文档或者页面,让…

Unity之OpenXR+XR Interaction Toolkit快速监听手柄任意按键事件

前言 当我们开发一个VR时,有时希望监听一个手柄按键的点击事件,或者一个按钮的Value值等。但是每次有可能监听的按钮有不一样,有可能监听的值不一样,那么每次这么折腾,有点累了,难道就没有一个万能的方法,让我可以直接监听我想要的某个按钮的事件么? 答案是肯定的,今…

分类算法——朴素贝叶斯(四)

概率基础 1概率定义 概率定义为一件事情发生的可能性 扔出一个硬币,结果头像朝上 P(X):取值在[0,1] 2女神是否喜欢计算案例 在讲这两个概率之前我们通过一个例子,来计算一些结果: 问题如下: 1、女神喜欢…

sql知识总结二

一.报错注入 1.什么是报错注入? 这是一种页面响应形式,响应过程如下: 用户在前台页面输入检索内容----->后台将前台输入的检索内容无加区别的拼接成sql语句,送给数据库执行------>数据库将执行的结果返回给后台&#xff…

2024第十五届蓝桥杯JavaB组省赛部分题目

目录 第三题 第四题 第五题 第六题 第七题 第八题 转载请声明出处,谢谢! 填空题暂时可以移步另一篇文章:2024第十五届蓝桥杯 Java B组 填空题-CSDN博客 第三题 第四题 第五题 第六题 第七题 第八题 制作不易,还请点个赞支持…

数据结构-栈和队列刷题集(长期更新)

文章目录 万能计算器的实现以及源码分析1. leetcode 150 逆波兰表达式求值 万能计算器的实现以及源码分析 /*** 我们尝试写一个完整版的计算器,由于计算机不能很好的识别括号,所以一般要转换为逆波兰表达式求解* 思路解析 :* 1. 输入一个 中缀表达式* 2. 中缀表达式转化为list…

SpringBoot基于RabbitMQ实现消息可靠性

文章目录 1. ☃️概述2. ☃️生产者消息确认2.1 ❄️❄️概述2.2 ❄️❄️实战⛷️⛷️⛷️2.2.1 修改配置⛷️⛷️⛷️2.2.2 定义 Return 回调⛷️⛷️⛷️2.2.3 定义ConfirmCallback 3. ☃️消息持久化3.1 ❄️❄️交换机持久化3.2 ❄️❄️队列持久化3.3 ❄️❄️消息持久化…

进程、线程和协程

进程、线程和协程 进程是程序的执行实例 线程是进程的执行路径 协程是基于线程之上但又比线程更加轻量级的存在 进程与线程的区别 线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位 进程和程序的区别 程序:执行特定任务的一串代码&a…

牛客Linux高并发服务器开发学习第二天

Gcc编译 利用gcc 生成应用时如果不加-o 和应用名,默认生成a.out 可以用./ a.out打开 Gcc工作流程 可执行程序Windows系统中为.exe Linux系统中为.out g也可以编辑c程序 gcc也可以编译cpp代码,只是在编译阶段gcc不能自动共和C程序使用的库进行联接&…