《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、计…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...

深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...

10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...
Spring Boot + MyBatis 集成支付宝支付流程
Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例(电脑网站支付) 1. 添加依赖 <!…...