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

news2025/1/8 19:32:08

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)来呈现,以便更清晰地观察差异。如果遗忘后的模型与原始模型之间的权重距离与重新训练的模型(不包括遗忘类别的数据)与原始模型之间的权重距离相当或更大,这表明遗忘算法有效地改变了模型权重,使得模型忘记了特定类别的数据。

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

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

相关文章

VSCode 在Windows下开发时使用Cmake Tools时输出Log乱码以及CPP文件乱码的终极解决方案

在Windows11上使用VSCode开发C程序的时候,由于使用到了Cmake Tools插件,在编译运行的时候,会出现输出日志乱码的情况,那么如何解决呢? 这里提供了解决方案: 当Settings里的Cmake: Output Log Encoding里设…

程序的环境(预处理详解)

一.程序的翻译环境和执行环境 在ANSI C(标准c)的任何一种实现中,存在两个不同的环境。 计算机是能够执行二进制指令的,但是我们写出的c语言代码是文本信息,计算机不能直接理解 第1种是翻译环境,在这个环境…

Kafka 消费者专题

目录 消费者消费者组消费方式消费规则独立消费主题代码示例(极简)代码示例(独立消费分区) offset自动提交代码示例(自动提交)手动提交代码示例(同步)代码示例(异步&#…

解决 :VS code右键没有go to definition选项(转到定义选项)

问题背景: VScode 右键没有“go to definition”选项了,情况如图所示: 问题解决办法: 第一步:先检查没有先安装C/C插件,没有安装就先安装下。 第二步: 打开VS CODE设置界面:文件->…

网络安全的学习与实践经验(附资料合集)

学习资源 在线学习平台: Hack This Site:提供从初学者到高级难度的挑战任务,适合练习各种网络安全技术。XCTF_OJ:由XCTF组委会开发的免费在线网络安全网站,提供丰富的培训材料和资源。SecurityTube:提供丰…

《Rust权威指南》学习笔记(五)

高级特性 1.在Rust中,unsafe是一种允许绕过Rust的安全性保证的机制,用于执行一些Rust默认情况下不允许的操作。unsafe存在的原因是:unsafe 允许执行某些可能被 Rust 的安全性检查阻止的操作,从而可以进行性能优化,如手…

使用R语言绘制标准的中国地图和世界地图

在日常的学习和生活中,有时我们常常需要制作带有国界线的地图。这个时候绘制标准的国家地图就显得很重要。目前国家标准地图服务系统向全社会公布的标准中国地图数据,是最权威的地图数据。 今天介绍的R包“ggmapcn”,就是基于最新公布的地图…

Flutter踩坑记-第三方SDK不兼容Gradle 8.0,需适配namespace

最近需要集成Flutter作为Module,Flutter依赖了第三方库,Gradle是8.0版本。 编译报错: 解决办法是在.android根目录下的build.gradle下新增一行代码: buildscript {ext.kotlin_version "1.8.22"repositories {google()…

golang 编程规范 - 项目目录结构

原文:https://makeoptim.com/golang/standards/project-layout 目录结构 Go 目录 cmdinternalpkgvendor 服务端应用程序目录 api Web 应用程序目录 web 通用应用程序目录 buildconfigsdeploymentsinitscriptstest 其他目录 assetsdocsexamplesgithooksthird_par…

蓝桥杯备赛:C++基础,顺序表和vector(STL)

目录 一.C基础 1.第一个C程序: 2.头文件: 3.cin和cout初识: 4.命名空间: 二.顺序表和vector(STL) 1.顺序表的基本操作: 2.封装静态顺序表: 3.动态顺序表--vector:…

node.js之---事件循环机制

事件循环机制 Node.js 事件循环机制(Event Loop)是其核心特性之一,它使得 Node.js 能够高效地处理大量并发的 I/O 操作。Node.js 基于 非阻塞 I/O,使用事件驱动的模型来实现异步编程。事件循环是 Node.js 实现异步编程的基础&…

如何在 Ubuntu 22.04 上部署 Nginx 并优化以应对高流量网站教程

简介 本教程将教你如何优化 Nginx,使其能够高效地处理高流量网站。 Nginx 是一个强大且高性能的 Web 服务器,以其高效处理大量并发连接的能力而闻名,这使得它成为高流量网站的流行选择。 正确优化 Nginx 可以显著提高服务器的性能&#xff0…

AIRemoveBackground:用 AI 技术轻松去除背景图的前端程序

在当今数字化时代,图像处理技术不断发展,其中 AI 去除背景图的功能备受关注。本文将介绍一款名为 AIRemoveBackground 的前端程序,它利用人工智能技术,为用户提供便捷、高效的背景去除解决方案。 一、简介 随着互联网的普及和多媒…

【踩坑指南2.0 2025最新】Scala中如何在命令行传入参数以运行主函数

这个地方基本没有任何文档记录,在学习的过程中屡屡碰壁,因此记录一下这部分的内容,懒得看可以直接跳到总结看结论。 踩坑步骤 首先来看看书上让我们怎么写: //main.scala object Start {def main(args:Array[String]) {try {v…

Excel VBA 自动填充空白并合并相同值的解决方案

文章目录 Excel VBA: 自动填充空白并合并相同值的解决方案问题背景解决方案1. VBA代码实现2. 代码说明3. 使用方法4. 注意事项 扩展优化总结 Excel VBA: 自动填充空白并合并相同值的解决方案 问题背景 在Excel中经常会遇到这样的数据处理需求:一列数据中存在多个空…

SpringSecurity中的过滤器链与自定义过滤器

关于 Spring Security 框架中的过滤器的使用方法,系列文章: 《SpringSecurity中的过滤器链与自定义过滤器》 《SpringSecurity使用过滤器实现图形验证码》 1、Spring Security 中的过滤器链 Spring Security 中的过滤器链(Filter Chain)是一个核心的概念,它定义了一系列过…

【STC库函数】Compare比较器的使用

如果我们需要比较两个点的电压,当A点高于B点的时候我们做一个操作,当B点高于A点的时候做另一个操作。 我们除了加一个运放或者比较器,还可以直接使用STC内部的一个比较器。 正极输入端可以是P37、P50、P51,或者从ADC的十六个通道…

Postgresql 命令还原数据库

因为PgAdmin打不开,但是数据库已经安装成功了,这里借助Pg命令来还原数据库 C:\Program Files\PostgreSQL\15\bin\psql.exe #链接数据库 psql -U postgres -p 5432#创建数据库 CREATE DATABASE "数据库名称"WITHOWNER postgresENCODING UTF8…

Backend - C# 的日志 NLog日志

目录 一、注入依赖和使用 logger 二、配置记录文件 1.安装插件 NLog 2.创建 nlog.config 配置文件 3. Programs配置日志信息 4. 设置 appsettings.json 的 LogLevel 5. 日志设定文件和日志级别的优先级 (1)常见的日志级别优先级 (2&…

急需升级,D-Link 路由器漏洞被僵尸网络广泛用于 DDoS 攻击

僵尸网络活动增加 :新的“FICORA”和“CAPSAICIN”僵尸网络(Mirai 和 Kaiten 的变体)的活动激增。 被利用的漏洞 :攻击者利用已知的 D-Link 路由器漏洞(例如 CVE-2015-2051、CVE-2024-33112)来执行恶意命…