《Federated Unlearning via Active Forgetting》论文精读
文章目录
- 1、概述
- 2、方法实验
- 主要贡献
- 框架概述
- 3、实验结果
- 比较方法
- 实验结果
- 忘却完整性
- 忘却效率
- 模型实用性
- 4、总结
原文链接: Federated Unlearning via Active Forgetting
1、概述
对机器学习模型隐私的⽇益关注催化了对机器学习的探索,即消除训练数据对数学学习模型影响的过程。这种担忧也出现在联邦学习领域,促使研究⼈员解决联邦遗忘学习问题。然⽽,联邦遗忘仍然具有挑战性。现有的遗忘⽅法⼤致可分为两种⽅法,即精确遗忘和近似遗忘。⾸先,以分布式⽅式实现精确遗忘(通常依赖于分区聚合框架)在理论上不会提⾼时间效率。其次,现有的联邦(近似)遗忘⽅法存在不精确的数据影响估计、⼤量的计算负担或两者兼⽽有之的问题。为此,该论文提出了⼀种基于增量学习的新型联邦遗忘框架,该框架独⽴于特定模型和联邦设置。本论文中的框架不同于现有的联合联邦⽅法,后者依赖于近似的再训练或数据影响估计。相反,本论文提出的方法利⽤新的记忆来覆盖旧的记忆,模仿神经病学中主动遗忘的过程。具体来说,该模型旨在遗忘,充当学⽣模型,不断从随机启动的教师模型中学习。为了防止灾难性地遗忘非⽬标数据,论文中利⽤弹性权重整合来弹性约束权重变化。在三个基准数据集上的⼤量实验证明了论文中提出的⽅法的有效性。后门攻击的结果表明,所提⽅法实现了令⼈满意的完备性。
2、方法实验
在本⽂中,论文中提出了⼀种新颖的联邦遗忘⽅法,称为FedAF,它独⽴于特定模型和联邦设置。如图 1 所示,与流⾏的遗忘⽅法相⽐,FedAF从神经病学中的主动遗忘中汲取灵感,使⽬标模型(即意图忘记的客户中的模型)能够使⽤新记忆来覆盖旧记忆。这允许⽆缝的遗忘过程集成到原始的联邦学习过程中,从根本上克服了现有联合遗忘⽅法的局限性,⽽⽆需存储历史更新或估计数据影响。

当使⽤增量学习来摒弃学习时,需要考虑两个关键点:
(i)产⽣有效的新记忆,以及
(ii)克服灾难性的遗忘。
FedAF由两个模块组成,即记忆⽣成器和知识保存器,分别⽤于解决这些问题。⾸先,我们需要⽣成⽆知识且易于学习的新记忆来覆盖旧记忆。无知识意味着不包含关于数据的有效信息,例如随机标签向量。同时,新的记忆必须易于学习,这样就不会花费⼤量的计算开销来完成忘却。记忆⽣成器遵循师⽣学习模式来⽣成假标签并将其与原始特征配对。其次,以前的研究发现,由于灾难性遗忘现象,传统的深度学习⽅法⽆法解决增量学习问题。
主要贡献
• 论文中提出了⼀种新的联邦遗忘⽅法,即基于主动遗忘概念的FedAF,从根本上克服了现有联邦遗忘⽅法的局限性。
• 为了有效地产⽣新的记忆来覆盖旧的记忆,论文中采⽤了师⽣学习模式。⽬标客户端(即学⽣)中的模型从教师模型⽣成的操纵数据中提取知识。
• 为了缓解非目标数据的灾难性遗忘现象,论文中⾸先推导新的损失来解决任务冲突问题,然后⽤弹性权重固结动态约束模型参数的变化。
•论文中对三个基准数据集进⾏了⼴泛的实验,以评估FedAF的性能。结果表明,论文中提出的FedAF在效率、效用和完整性⽅⾯优于同类⽅法。
框架概述

框架概述 FedAF 从新的记忆中学习以实现遗忘。新内存不包含⽬标数据的有效知识,这可能会覆盖旧数据。图 2 显示了FedAF 的学习(⿊⾊箭头)和取消学习(蓝⾊箭头)⼯作流程。在学习⼯作流程中,FedAF 既不会⼲扰原始的联邦学习过程,也不会存储任何历史更新。我们可以将原始的联邦学习过程压缩为两个循环,即本地训练循环和联合训练循环。在取消学习⼯作流中,FedAF在本地训练循环中插⼊⼀个取消学习循环,然后通过联合训练循环⼴播未学习的更新。FedAF中的忘却循环由两个模块组成,即记忆⽣成器和知识保存器。这两个模块分别解决了上述问题,即产⽣有效的新记忆和克服灾难性遗忘。通常,记忆⽣成器初始化⼀组教师模型以⽣成假标签,然后将它们与原始特征配对以⽣成操作数据。知识保存者在操纵的数据上不断训练模型。借助源⾃EWC框架的新损失函数,知识边缘保护器设法缓解灾难性遗忘现象。
记忆生成器 记忆⽣成器的⽬标是产⽣⽆知识且易于学习的新记忆以进⾏覆盖。在本⽂中,论文中重点关注在监督学习中,知识通常存在于标签中。因此,论文中操纵标签来产⽣新的记忆。
知识保存器 在取消学习⽬标数据的同时,我们还需要保存从非目标数据中学到的剩余知识。传统的深度学习⽅法在增量学习⼀系列任务时会遇到灾难性遗忘现象。为了模仿⼈脑中的主动遗忘,论文中提出的 FedAF 基于增量学习的理念。⽬标客户端𝑘顺序在两个任务上训练模型,即D𝑘和M。为了避免混淆,论文中直接通过其数据集来命名任务。任务 D𝑘 和 M 分别代表学习和忘却过程。当对后⼀个任务(即 M)进⾏训练时,会发⽣灾难性遗忘。新的记忆不仅会覆盖⽬标数据的旧记忆,还会使模型忘记⾮⽬标数据的记忆。因此,我们引⼊EWC培训来缓解这种现象。正如4.1节中介绍的,我们不改变学习过程,这意味着任务D𝑘采⽤常规训练。在本⽂中,我们以经验⻛险最⼩化为例。客户端𝑘通过最⼩化任务D𝑘的损失来优化模型𝜃
实验论文中基于三个原则(即遗忘完整性、遗忘效率和模型效⽤)评估了论文中提出的⽅法在三个⼴泛使⽤的数据集上的有效性。为了进⼀步研究论文中提出的⽅法,论文中还进⾏了消融研究。
3、实验结果
比较方法
论文中将提出的 FedAF 与两种适⽤于按类别遗忘的代表性遗忘⽅法进⾏⽐较。
• 重新训练:从头开始重新训练是计算开销很⼤的基本事实忘却⽅法。
• FRR :联邦快速再训练(FRR)是最先进的(SOTA)样本联邦取消学习⽅法,可应⽤于类别取消学习。
实验结果

忘却完整性
论文中利⽤后⻔攻击来评估遗忘的完整性。具体来说,论文中将后⻔触发器植⼊到论文中想要忘记的⽬标数据中,并将它们的标签翻转为随机类别。通过这个过程,后⻔攻击强制模型在触发模式和翻转标签之间建⽴映射。因此,我们可以通过⽐较取消学习前后⽬标数据的性能来评估取消学习的完整性。我们在表 2 中报告了未学习数据的ackDoor Accuracy(BD Acc)。从中,论文中得到以下观察结果:
i) 所有⽐较⽅法在取消学习后都显着降低了 BD Acc(平均从 76.21% 降⾄1.00%),表明⽬标数据的影响⼒显着降低;
ii) FRR 和FedAF ⽆法实现与Retrain ⼀样低的 BDAcc(忘记学习后)。与Retrain的BD Acc相⽐,FRR和FedAF平均分别提升了1.02%和0.90%;
iii) 在完整性⽅⾯的表现⽅⾯,FRR 和FedAF 之间仅存在微⼩差异。
总体⽽⾔,FedAF 在遗忘完整性⽅⾯略优于 SOTA ⽅法。

忘却效率
论文中使⽤运⾏时间来衡量⽐较⽅法的遗忘效率。具体来说,论文中在表 3 中报告了特定客户端中取消学习第⼀类的平均运⾏时间。如表 3 所示,论文中提出的 FedAF 平均将 Retrain 的效率提⾼了 39.51倍。相反,由于⽜顿优化器需要精确的计算,FRR 花费的时间明显多于Retrain。这是完全不可接受的,因为取消学习⽅法背后的设计理念是实现⽐重新训练更有效的取消学习。
模型实用性
保留模型效⽤也是联邦取消学习的⼀个重要原则。适当的遗忘⽅法应该避免过度消除⽬标数据的影响。因此,论文中通过评估模型在测试集上的性能来⽐较遗忘后模型的效⽤,并将结果报告在表2中。从中我们观察到所有⽐较的⽅法,即Retrain、FRR和FedAF,都达到了测试 Acc 接近于取消学习之前所达到的成绩。具体来说,以Retrain为基线,FRR和FedAF可以将其Test Acc与Retrain的差异分别限制在3.12%和2.31%以下,表明⾮⽬标数据没有明显的遗忘。

4、总结
在本⽂中,论文中提出了⼀种新的联邦遗忘⽅法,称为FedAF。受到神经病学主动遗忘的启发,FedAF通过利⽤新记忆覆盖旧记忆来取消学习,这从根本上克服了现有联合遗忘⽅法的局限性,⽽⽆需存储历史更新或估计数据影响。⼀般来说,我们基于增量学习的理念构建FedAF,以实现主动遗忘。具体来说,FedAF在每个客户端中由两个模块组成,即记忆⽣成器和知识保存器。记忆⽣成器根据师⽣学习产⽣⽆知识且易于学习的假标签,并将它们与⽬标数据特征配对以产⽣新的记忆。知识保存者不断⽤新的记忆训练模型,并采⽤EWC训练,利⽤论文中得出的损失来减轻灾难性的遗忘。⽬标客户端通过提交遗忘请求来触发这两个模块,⽽其他客户端则遵循标准训练过程。在三个基准数据集上进⾏的实验表明,论文中提出的FedAF不仅可以有效地从全局模型中解读特定客户的⽬标数据,还可以保留⾮⽬标数据的知识。
相关文章:
《Federated Unlearning via Active Forgetting》论文精读
文章目录 1、概述2、方法实验主要贡献框架概述 3、实验结果比较方法实验结果忘却完整性忘却效率模型实用性 4、总结 原文链接: Federated Unlearning via Active Forgetting 1、概述 对机器学习模型隐私的⽇益关注催化了对机器学习的探索,即消除训练数…...
Java课题笔记~Maven基础知识
一、什么是Maven? Maven是专门用于管理和构建Java项目的工具。 它的主要功能有: 提供了一套标准化的项目结构提供了一套标准化的构建流程(编译,测试,打包,发布……)提供了一套依赖管理机制 …...
xcode中如何显示文件后缀
xcode14.3 用不惯mac电脑真恶心,改个显示文件后缀找半天 1、首先双击打开xcode软件 2、此时,电脑左上角出现xcode字样(左上角如果看不到xcode字样,再次点击xcode软件弹出来就有了),鼠标右键它,点击setting或者Prefere…...
SpringBoot使用JKS或PKCS12证书实现https
SpringBoot使用JKS或PKCS12证书实现https 生成JKS类型的证书 可以利用jdk自带的keytool工具来生成证书文件, 默认生成的是JKS证书 cmd命令如下: 执行如下命令,并按提示填写证书内容,最后会生成server.keystore文件 keytool -genkey tomcat…...
云原生势不可挡,如何跳离云原生深水区?
云原生是云计算领域一大热词,伴随云原生概念而来的是数字产业迎来井喷、数字变革来临、数字化得以破局以及新一波的技术红利等等。云原生即“云”原生,顾名思义是让“应用”最大程度地利用云的能力,发挥云价值的最佳路径。具体来说࿰…...
python的decimal或者叫Decimal,BigDecimal
前言 在python中进行小数计算时,很容易发生精度错误问题!!!!一定要注意!!!或者说,只要进行小数的运算都要用decimal。如:银企对账;工程计算等等在…...
Mac环境变量问题
查询环境变量 echo $PATH 查询当前使用的Shell,这里注意SHELL需要大写 echo $SHELL >>>如果输出的是/bin/zsh,说明使用的是zsh。zsh读取的个人配置文件是~/.zshrc (mac10.15.x 后对应的是~/.zprofile) >>>如果输出的是/bin/bash&…...
Shell脚本学习-Web服务监控
参考我的博客文章《Centos安装nginx》,先来安装下nginx。我按照该文档操作了一遍,还是很快就能安装好nginx的。 确认可以安装成功: [rootvm1 sbin]# netstat -atunlp |grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* …...
【ChatGPT】基于WSL+Docker的ChatGPT PLUS共享服务部署
最近买了ChatGPT PLUS服务,想通过web服务将它共享给其他人使用,搜了一下目前GitHub上比较热门的服务有 ChatGPT-Next-Webchatgpt-web-share 其中chatgpt-web-share支持API和PLUS账号分享两种方式,且架构为PythonJSDocker,相对比…...
【论文阅读24】Better Few-Shot Text Classification with Pre-trained Language Model
论文相关 论文标题:Label prompt for multi-label text classification(基于预训练模型对少样本进行文本分类) 发表时间:2021 领域:多标签文本分类 发表期刊:ICANN(顶级会议) 相关代…...
119、Spring容器启动流程是怎样的(配有Spring启动完整流程图)
Spring容器启动流程是怎样的 在创建Spring容器,也就是启动Spring时:首先会进行扫描,扫描得到所有的BeanDefinition对象,并存在一个Map中然后筛选出非懒加载的单例BeanDefinition进行创建Bean,对于多例Bean不需要在启动…...
微信公众号开发学习
申请测试号 地址 通过F12抓取体验接口权限表的HTML 解析HTML 引入pom <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><…...
【LeetCode】221.最大正方形
题目 在一个由 ‘0 和 ‘1 组成的二维矩阵内,找到只包含 ‘1 的最大正方形,并返回其面积。 示例 1: 输入:matrix [["1","0","1","0","0"],["1","0",&q…...
生成模型相关算法:EM算法步骤和公式推导
EM算法 引言EM算法例子及解法EM算法步骤和说明 引言 EM 算法是一种选代算法,1977 年 Dempster 等人总结提出,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计EM算法的每次选代由两步组成:E步,求…...
Compose手势
Compose手势 本文链接: 点击 拖动 滑动 锚点 Compose Drag 拖动原理 Compose Drag 拖动原理:等待第一次按下 挂起 // UI展现出来的时候,这个while循环就已经在等待第一次按下了。事件 -> 恢复判断拖动合法性合法onDragStartonDragonDragEndforEa…...
【雕爷学编程】Arduino动手做(177)---ESP-32 掌控板2
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…...
Ubuntu-文件和目录相关命令
🔮linux的文件系统结构 ⛳目录结构及目录路径 🧩文件系统层次结构标准FHS Filesystem Hierarchy Standard(文件系统层次结构标准) Linux是开源的软件,各Linux发行机构都可以按照自己的需求对文件系统进行裁剪,所以众多…...
显式接口实现(C# 编程指南)
接口的实现可以有多种方式,下面是C#接口实现的几种方式欢迎交流 两个接口包含签名相同的成员 如果一个类实现的两个接口包含签名相同的成员,则在该类上实现此成员会导致这两个接口将此成员用作其实现。 如下示例中,所有对 Paint 的调用皆调用同一方法。 第一个示例定义类型…...
element-ui 图片上传 及 quillEditor富文本(图片视频上传)
<template><div class"card" style"overflow: hidden; padding-bottom: 10px"><div style"padding: 20px 20px 0 20px"><span class"title_top"><span class"top_icon"></span>基本信息…...
前端技术Vue学习笔记--002
前端技术Vue学习笔记 文章目录 前端技术Vue学习笔记1、指令修饰符2、v-bind对于样式控制的增强2.1、v-bind对于样式控制的增强--class2.2、v-bind对于样式控制的增强--操作style 3、v-model应用于其他表单元素4、计算属性4.1、**computed计算属性 vs methods方法的区别**4.2、计…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
向量几何的二元性:叉乘模长与内积投影的深层联系
在数学与物理的空间世界中,向量运算构成了理解几何结构的基石。叉乘(外积)与点积(内积)作为向量代数的两大支柱,表面上呈现出截然不同的几何意义与代数形式,却在深层次上揭示了向量间相互作用的…...
