【机器遗忘之UNSIR算法】2023年IEEE Trans期刊论文:Fast yet effective machine unlearning

1 介绍

年份:2023

期刊:IEEE Transactions on Neural Networks and Learning Systems

引用量:170

Tarun A K, Chundawat V S, Mandal M, et al. Fast yet effective machine unlearning[J]. IEEE Transactions on Neural Networks and Learning Systems, 2023.

通过生成最大化误差的噪声矩阵和基于损伤-修复的权重操作来实现对特定类别数据的快速遗忘学习,关键步骤包括利用原始模型学习针对待遗忘类别的误差最大化噪声矩阵,然后通过损伤步骤使用高学习率和噪声矩阵剧烈改变模型权重以实现快速遗忘,以及通过修复步骤恢复模型整体性能,从而在保留整体模型准确性的同时实现对特定数据类别的有效遗忘。简而言之,通过学习针对特定类别的误差最大化噪声矩阵,并结合损伤修复步骤来操纵模型权重,从而实现在不重新训练整个模型的情况下快速有效地遗忘机器学习模型中的特定数据类别。

2 创新点

  1. 零观察隐私设置(Zero-Glance Privacy Setting)
    • 提出了一种在不观察完整训练数据的情况下进行机器学习的框架,这比现有的设置更为严格,为更高级别的隐私保护提供了可能性。
  2. 错误最大化噪声生成(Error-Maximizing Noise Generation)
    • 引入了一种新的机器学习框架,通过学习一个错误最大化的噪声矩阵来针对需要被遗忘的数据类别,这种噪声矩阵用于操纵模型权重以实现对目标数据类别的遗忘。
  3. 损伤修复(Impair-Repair)权重操作
    • 提出了一种名为UNSIR(Unlearning by Selective Impair and Repair)的方法,通过单次通过损伤和单次通过修复的方式,无需访问请求删除的数据样本,即可在深度模型中实现单类/多类数据的遗忘。
  4. 高效性和可扩展性
    • 该方法在处理单类和多类数据遗忘时所需的更新步骤数量相似,使得该方法能够扩展到大型问题,并且在效率上与现有方法相比有显著提升。
  5. 多类遗忘的高效实现
    • 在不需要对原始优化机制或网络设计施加任何限制的情况下,该方法能够在多种类型的深度网络(如卷积网络和ViTs)上工作,并且在小型和大型视觉任务中都表现良好。
  6. 实际应用的适用性
    • 该方法不仅适用于小规模问题,还适用于大规模视觉问题,如100类的视觉识别任务,这是首次在深度网络中实现多类遗忘的高效方法。
  7. 源代码公开
    • 提供了实现该方法的源代码链接,方便其他研究者和开发者进行验证和进一步的研究。

3 相关研究

A. 机器学习中的遗忘(Machine Unlearning):

  • Brophy和Lowd [7] 提出了一种支持数据遗忘的随机森林变体,需要最少的重新训练。
  • Guo等人 [12] 提出了一种基于牛顿更新机制的认证信息移除框架,用于凸学习问题。
  • Izzo等人 [14] 提出了一种从线性模型中删除数据点的项目残差更新方法。
  • Neel等人 [15] 研究了基于梯度下降的方法在凸模型中的遗忘效果。

B. 深度神经网络中的遗忘(Unlearning in Deep Neural Networks):

  • Golatkar等人 [9] 提出了一种信息论方法,用于从使用随机梯度下降(SGD)训练的深度网络的中间层中擦除信息。
  • Golatkar等人 [3] 直接训练一个线性化网络用于遗忘,并提出了一个混合线性模型。
  • Thudi等人 [35] 讨论了正式证明模型中某些数据点不存在的困难,并建议当前的遗忘方法仅在算法层面上有定义。

C. 数据隐私(Data Privacy):

  • Shokri和Shmatikov [41] 研究了隐私保护深度学习。
  • Phan等人 [42] 探讨了深度自动编码器的差分隐私保护。
  • Cao等人 [27] 研究了数据删除在k-means聚类中的问题。
  • Abadi等人 [28] 和 Dwork和Roth [29] 讨论了差分隐私的算法基础。

4 算法

4.1 算法原理

  1. 错误最大化噪声生成(Error-Maximizing Noise Generation)
    • 算法首先为目标遗忘的类别学习一个错误最大化的噪声矩阵。这个噪声矩阵用于操纵模型权重,以实现对特定类别数据的遗忘。通过最大化模型损失来生成噪声,使得噪声与目标遗忘类别相关联,但与输入数据集X不重合。
  2. UNSIR(Unlearning by Selective Impair and Repair)
    • UNSIR方法包括两个主要步骤:损伤(Impair)和修复(Repair)。
    • 损伤步骤:在这一步骤中,将生成的噪声矩阵与保留类别的一小部分数据(Dr_sub)结合,然后对模型进行一次训练周期(epoch)。这个高学习率的过程会导致模型在目标遗忘类别上的性能急剧下降,从而实现对这些类别的遗忘。
    • 修复步骤:在损伤步骤之后,为了恢复模型在保留类别上的性能,使用保留类别的子集(Dr_sub)对模型进行再次训练。这次训练有助于稳定网络权重,使其更好地记住保留的任务。
  3. 权重操作
    • 通过损伤和修复步骤,算法能够控制性地操纵网络权重,以实现对特定类别数据的遗忘,同时尽可能保持模型在其他任务上的准确性。
  4. 零观察隐私设置(Zero-Glance Privacy Setting)
    • 该算法在零观察隐私设置下工作,这意味着在遗忘过程中,模型不会看到任何需要被遗忘的数据样本。这提高了隐私保护水平,因为即使在数据被要求删除后,这些数据也不会被用于任何网络权重操作。
  5. 多类别遗忘
    • 该方法能够扩展到多类别遗忘问题,而不需要对每个类别单独进行遗忘处理。这使得算法在处理大规模问题时更加高效。
  6. 效率和可扩展性
    • 算法设计为快速且可扩展,能够在大型数据集和不同的深度网络(如CNN和ViT)上工作,同时保持高效性。

4.2 算法步骤

  1. 错误最大化噪声矩阵学习(Error-Maximizing Noise Matrix Learning)
    • 使用已训练好的模型,为目标遗忘的类别学习一个噪声矩阵N。这个噪声矩阵的目的是最大化模型对于遗忘类别的损失函数,从而生成与遗忘类别高度相关的噪声。
  2. 损伤步骤(Impair Step)
    • 将学习到的噪声矩阵N与保留类别的子集数据(Dr_sub)结合,使用一个非常高的学习率进行一次训练周期(epoch)。这一步骤的目的是让模型在遗忘类别上的表现急剧下降,实现对这些类别的遗忘。
  3. 修复步骤(Repair Step)
    • 在损伤步骤之后,为了恢复模型在保留类别上的性能,仅使用保留类别的子集数据(Dr_sub)对模型进行再次训练周期(epoch)。这一步骤有助于稳定网络权重,使其更好地记住保留的任务。
  4. 模型更新
    • 通过上述损伤和修复步骤,模型的权重被更新,以反映对特定类别数据的遗忘,同时尽可能保持对其他类别数据的识别能力。
  5. 评估和验证
    • 使用一系列评估指标来验证遗忘算法的效果,包括遗忘集(Forget Set)和保留集(Retain Set)的准确率、重训练时间(Relearn Time, RT)、权重距离和遗忘类别数据的预测分布。
  6. 迭代优化(如有必要):
    • 如果需要,可以对损伤和修复步骤进行迭代优化,以进一步提高遗忘效果和保留集的性能。
  7. 多类别遗忘处理
    • 对于需要遗忘多个类别的情况,该方法可以扩展,通过为每个遗忘类别学习一个噪声矩阵,并执行相似的损伤修复步骤。

5 实验分析

  1. 模型和数据集
    • 实验使用了不同类型的深度网络,包括ResNet18、AllCNN、MobileNetv2和ViTs,以及不同的数据集CIFAR-10、CIFAR-100和VGGFace-100,以展示所提方法的广泛适用性。
  2. 评估指标
    • 使用了多个评估指标来衡量遗忘方法的性能,包括遗忘集(Forget Set)的准确度(ADf)应接近零,保留集(Retain Set)的准确度(ADr)应接近原始模型的性能,重学时间(RT)以及权重距离。
  3. 单类别遗忘
    • 实验结果显示,所提方法能够在单次损伤和修复步骤中有效地擦除特定类别的信息,并且在保留集上的准确度和遗忘集上的准确度方面优于现有方法。例如,在CIFAR-10数据集上使用ResNet18时,该方法在保留集上的准确度从77.86%降低到71.06%,而在遗忘集上的准确度从81.01%降低到0%。
  4. 多类别遗忘
    • 所提方法在多类别遗忘方面表现出色。随着需要遗忘的类别数量增加,修复步骤变得更为有效,使得在保留集上的性能更接近原始模型。例如,在CIFAR-100数据集上使用预训练的ResNet18时,遗忘20个类别后,保留集的准确度从77.88%降低到75.38%。
  5. 人脸识别中的遗忘
    • 在VGGFace-100数据集上,使用预训练的ResNet18和ViT模型进行人脸识别任务的遗忘,结果显示该方法在保留集和遗忘集上都取得了良好的性能。例如,在ResNet18上遗忘一个类别时,保留集的准确度从80.63%降低到72.29%,而遗忘集的准确度降低到3%。
  6. 预测分布
    • 对于遗忘类别的数据,所提方法的预测分布是随机的,没有集中在某个特定的保留类别上,表明该方法确实擦除了与遗忘类别相关的信息。
  7. 权重距离
    • 所提方法在层与层之间的权重距离上与重新训练的模型相似,表明遗忘是有效的,并且没有信息泄露的迹象。
  8. 效率
    • 所提方法在效率上显著优于重新训练和现有的遗忘方法。例如,与重新训练相比,所提方法快了154倍,与Fisher方法相比快了1875倍。

图4展示了在不同情况下,经过遗忘处理的模型(包括重新训练的模型和本文提出的模型)与原始模型之间的层级权重距离。这些距离值以对数尺度(log scale)呈现,以便更清晰地观察差异。层级权重距离是指模型中每一层的权重向量之间的差异程度,通常用来评估遗忘的效果——如果遗忘后的模型与原始模型在权重上有很大差异,说明遗忘效果较好,因为这意味着模型已经忘记了与特定类别相关的信息。

使用GradCAM(Gradient-weighted Class Activation Mapping)可视化技术来展示ResNet18模型在CIFAR-100数据集上进行遗忘前后的变化。GradCAM是一种可视化工具,它可以显示模型在做出特定预测时关注的输入图像的哪些区域。通过比较原始模型和遗忘后的模型对同一输入图像的关注点,我们可以直观地理解遗忘对模型行为的影响。

6 思考

(1)GradCAM可视化方法值得关注

(2)权重距离指标,有什么作用?如何计算?

权重距离指标用于衡量经过遗忘处理的模型与原始模型之间的差异程度。这个指标的作用是评估遗忘算法的有效性,即模型在遗忘后是否真的忘记了特定类别的数据。如果遗忘后的模型与原始模型在权重上有很大差异,说明遗忘效果较好,因为这意味着模型已经忘记了与特定类别相关的信息。

权重距离的计算方法通常如下:

  1. 定义权重距离:权重距离是模型中每一层的权重向量之间的差异程度。
  2. 计算单层权重距离:对于每一层,权重距离可以通过计算两个权重向量之间的欧几里得距离(L2距离)来得到:
  3. 计算总权重距离:为了得到整个模型的权重距离,可以对所有层的权重距离求和或求平均:

在实际应用中,权重距离的计算可以使用对数尺度(log scale)来呈现,以便更清晰地观察差异。如果遗忘后的模型与原始模型之间的权重距离与重新训练的模型(不包括遗忘类别的数据)与原始模型之间的权重距离相当或更大,这表明遗忘算法有效地改变了模型权重,使得模型忘记了特定类别的数据。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux-----进程处理(waitpid,进程树,孤儿进程)

目录 waitpid等待 进程树 孤儿进程 waitpid等待 Linux中父进程除了可以启动子进程,还要负责回收子进程的状态。如果子进程结束后父进程没有正常回收,那么子进程就会变成一个僵尸进程——即程序执行完成,但是进程没有完全结束,其…

Docker- Unable to find image “hello-world“locally

Docker- Unable to find image “hello-world“locally 文章目录 Docker- Unable to find image “hello-world“locally问题描述一. 切换镜像1. 编辑镜像源2. 切换镜像内容 二、 检查设置1、 重启dockers2、 检查配置是否生效3. Docker镜像源检查4. Dokcer执行测试 三、自定义…

Android配件应用默认启动与USB权限申请区别

使用效果: USB配件授权演示 选择USB配件默认打开应用 申请USB配件使用权限

vue2框架配置路由设计打印单

业务效果: 查询出列表后&#xff0c;点击申请单按钮&#xff0c;弹出申请表格&#xff0c;可进行打印 后端实现 控制器、服务层等省略&#xff0c;关联查出数据提供接口给前端即可 <!--获取详细信息(用于申请单打印)--><select id"selectXxxxDetail" par…

第29天:Web开发-PHP应用弱类型脆弱Hash加密Bool类型Array数组函数转换比较

#知识点 1、安全开发-原生PHP-弱类型脆弱 2、安全开发-原生PHP-函数&数据类型 3、安全开发-原生PHP-代码审计案例 一、PHP弱类型对比 1、 和 两个等号是弱比较&#xff0c;使用进行对比的时候&#xff0c;php解析器就会做隐式类型转换&#xff0c;如果两个值的类型不相等就…

在Ubuntu 18.04.6 LTS安装OpenFace流程

一、修改配置:将gcc8&#xff0c;g8作为默认选项 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100 sudo update-alternatives --config gcc 选择版本&#xff0c;再查看gcc --version sudo update-alternatives --install /usr/bin/g g /usr/bin/g-…

【亚马逊云科技】基于Amazon EKS部署高可用的OceanBase的最佳实践

一、前言 随着企业业务的快速发展和数据量的不断增长&#xff0c;高性能、高可用的数据库解决方案成为了关键需求。OceanBase作为一款分布式关系型数据库&#xff0c;以其高扩展性、高可用性和高性能的特点&#xff0c;逐渐受到企业的广泛关注。然而&#xff0c;在复杂的分布式…

计算机网络:网络层知识点及习题(一)

网课资源&#xff1a; 湖科大教书匠 1、概述 网络层实现主机到主机的传输&#xff0c;主要有分组转发和路由选择两大功能 路由选择处理机得出路由表&#xff0c;路由表再生成转发表&#xff0c;从而实现分组从不同的端口转发 网络层向上层提供的两种服务&#xff1a;面向连接…

简历_熟悉缓存高并发场景处理方法,如缓存穿透、缓存击穿、缓存雪崩

系列博客目录 文章目录 系列博客目录1.缓存穿透总结 2.缓存雪崩3.缓存击穿代码总结 1.缓存穿透 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在&#xff0c;这样缓存永远不会生效&#xff0c;这些请求都会打到数据库。 常见的解决方案有两种&#xff1a; 缓存空对…

阿里云 人工智能与机器学习

阿里云的 人工智能&#xff08;AI&#xff09;与机器学习&#xff08;ML&#xff09; 服务为企业提供了全面的AI解决方案&#xff0c;帮助用户在多个行业实现数据智能化&#xff0c;提升决策效率&#xff0c;推动业务创新。阿里云通过先进的技术和丰富的工具&#xff0c;支持用…

LabVIEW语言学习过程是什么?

学习LabVIEW语言的过程可以分为几个阶段&#xff0c;每个阶段的重点内容逐步加深&#xff0c;帮助你从入门到精通。以下是一个简洁的学习过程&#xff1a; ​ 1. 基础入门阶段 理解图形化编程&#xff1a;LabVIEW是一种图形化编程语言&#xff0c;与传统的文本编程语言不同&am…

【办公类-47-02】20250103 课题资料快速打印(单个docx转PDF,多个pdf合并一个PDF 打印)

背景需求&#xff1a; 2023区级大课题《运用Python优化3-6岁幼儿学习活动材料的实践研究》需要做阶段资料 本来应该2024年6月就提交电子稿和打印稿。可是python学具的教学实验实在太多了&#xff0c;不断生成&#xff0c;我忙着做教学&#xff0c;都没有精力去整理。 2025年…

【CSS】第一天 基础选择器与文字控制属性

【CSS】第一天 1. CSS定义2. css引入方式2.1 内部样式2.2 外部样式2.3 行内样式 3. 选择器3.1 标签选择器3.2 类选择器3.3 id选择器3.4 通配符选择器 1. CSS定义 层叠样式表(CSS)是一种样式表语言&#xff0c;用来描述HTML文档的呈现(美化内容)。 书写位置&#xff1a;title标…

Nginx (40分钟学会,快速入门)

目录​​​​​​​ 一、什么是Nginx ? 可以做什么 &#xff1f; 二、正向代理和反向代理 三、负载均衡 四、动静分离 五、Nginx 常用命令 六、Nginx实战及总结 一、什么是Nginx ? 可以做什么 &#xff1f; Nginx 是高性能的 HTTP 和反向代理的 web 服务器&#xff0c…

单片机从入门到放弃教程001

1. 单片机介绍 单片微型计算机(Single Chip Microcomputer)简称单片机&#xff0c;是典型的嵌入式微处理器(Micro Controller Unit简称MCU)&#xff0c;是一种将中央处理器&#xff08;CPU&#xff09;、内存、输入输出接口以及其他功能模块集成在单一芯片上的微型计算机。 1…

[极客大挑战 2019]HardSQL 1

看了大佬的wp&#xff0c;没用字典爆破&#xff0c;手动试出来的&#xff0c;屏蔽了常用的关键字&#xff0c;例如&#xff1a;order select union and 最搞的是&#xff0c;空格也有&#xff0c;这个空格后面让我看了好久&#xff0c;该在哪里加括号。 先传入1’ 1试试&#…

深入Android架构(从线程到AIDL)_12 Android UI 单线程程序

目录 6、 Android UI 单线程程序 單線程程序概念 单线程可避免线程安全问题 SurfaceView与非UI线程 6、 Android UI 单线程程序 單線程程序概念 单线程程序意谓着两个(或多个)线程不能共享对象或变量值。Android的UI是单线程程序的环境。UI控件(如Button等)都是由UI线程所…

庐山派K230学习日记3 外设模块GPIO

GPIO和FPIOA 1 本节介绍​ 本节您将学习如何通过控制开发板的GPIO引脚&#xff0c;实现对RGB灯和按键的控制。 &#x1f3c6;学习目标 1️⃣如何将GPIO引脚配置为输出模式&#xff0c;通过引脚电平来控制RGB灯的颜色变化。 2️⃣如何将GPIO引脚配置为输入模式&#xff0c;来检…

【网络安全 | 漏洞挖掘】通过模拟功能实现提权(Bugcrowd)

未经许可,不得转载。 我将与大家分享我在 Bugcrowd 的某个项目中发现的一个漏洞,该项目中有一个“用户模拟”功能。 什么是用户模拟? 用户模拟允许管理员在不知晓用户凭据的情况下“以用户身份登录”。这种功能常见于管理员需要调试问题、审查用户权限或解决投诉的平台中。…

TCP Analysis Flags 之 TCP Retransmission

前言 默认情况下&#xff0c;Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态&#xff0c;并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时&#xff0c;会对每个 TCP 数据包进行一次分析&#xff0c;数据包按照它们在数据包列表中出现的顺序进行处理。可…