【超高效!保护隐私的新方法】针对图像到图像(l2l)生成模型遗忘学习:超高效且不需要重新训练就能从生成模型中移除特定数据

针对图像到图像生成模型遗忘学习:超高效且不需要重新训练就能从生成模型中移除特定数据

    • 提出背景
      • 如何在不重训练模型的情况下从I2I生成模型中移除特定数据?
    • 超高效的机器遗忘方法
      • 子问题1: 如何在图像到图像(I2I)生成模型中进行高效的机器遗忘?
      • 子问题2: 如何确定哪些数据需要被遗忘?
      • 子问题3: 如何保持对其他数据的记忆不受影响?
    • 评估与效果
      • 子问题: 机器遗忘算法如何平衡保留集和遗忘集之间的性能?
      • 子问题: 如何定义一个能够量化遗忘效果的目标函数?

 


提出背景

论文:https://arxiv.org/pdf/2402.00351.pdf

代码:https://github.com/jpmorganchase/l2l-generator-unlearning

 

如何在不重训练模型的情况下从I2I生成模型中移除特定数据?

  • 背景: 现行法律对数据隐私和版权提出了新要求,这需要机器学习模型能够遗忘特定的训练数据。

传统的机器遗忘方法,如SISA,需要重新训练模型,这在大型生成模型中不现实。

探索直接操作训练好的模型权重的方法,如使用Neural Tangent Kernel (NTK)或最大化遗忘集上的损失,减少遗忘所需的计算量。

  • 解法: 探索允许模型删除特定的训练样本数据,而无需从头开始重训练整个模型。
  • 例子: 用户要求删除其数据,遗忘技术能让模型忘记这些数据,而不影响对其他数据的处理能力。

与重新训练整个模型或简单的数据删除相比,提出的机器遗忘方案在计算效率和应用的灵活性方面更为优越。

 


超高效的机器遗忘方法

子问题1: 如何在图像到图像(I2I)生成模型中进行高效的机器遗忘?

  • 背景: 在I2I生成模型中,删除敏感数据的同时保持模型性能是一个挑战,因为简单的数据删除无法消除模型中已经学到的信息。
  • 解法: 提出了一种不需从头开始训练模型的高效遗忘算法,通过优化KL散度和利用L2损失实现遗忘。

这种解法避免了从头开始训练整个模型,而是直接在模型的现有权重上应用调整。

它使用KL散度来度量和最大化遗忘集(即将被模型“遗忘”的数据)的生成图像与原图之间的统计分布差异,同时利用L2损失来最小化保留集(即模型需要继续记住的数据)的生成图像与原图之间的差异。

 

假设有一个I2I模型,它被训练用于将简笔画转换为详细的彩色图像。

出于隐私原因,我们需要模型遗忘所有包含特定符号的简笔画。

在不重训练模型的情况下,我们可以调整模型的权重,使得当模型再次看到这些特定符号的简笔画时,它生成的图像与原图的KL散度最大化(即生成的图像与原图差异很大),而对于其他类型的简笔画,模型应通过L2损失保持其原有的转换能力。

在这里插入图片描述

这张图提供了一个机器遗忘方法的概览。

在这个方法中,有两个数据集:遗忘集(( D_F ))和保留集(( D_R )),以及两个编码器:目标模型编码器 E θ E_{\theta} Eθ(可学习的)和原始模型编码器 E θ 0 E_{\theta_0} Eθ0(固定的)。

对于遗忘集(( x_f )),方法的目标是最小化目标模型编码器 E θ E_{\theta} Eθ 输出的嵌入向量与由高斯噪声 ( n )生成的嵌入向量之间的L2损失( L F L_F LF)。

这意味着,在遗忘集上,目标模型的输出应与随机噪声相似,从而“遗忘”或移除相关的特征。

对于保留集( x r x_r xr),目标是最小化目标模型编码器 E θ E_{\theta} Eθ 输出的嵌入向量与原始模型编码器 E θ 0 E_{\theta_0} Eθ0 输出的嵌入向量之间的L2损失(( L_R ))。

这确保了在保留集上,即使经过遗忘过程,目标模型仍然能够保持对原始特征的记忆。

  • 遗忘方法的核心原理,即通过调整编码器输出,使得遗忘集的数据被有效地去除,同时保留集的数据特征被保留。
  • 这种方法旨在保护隐私,同时保持模型在不需要遗忘的数据上的性能。

子问题2: 如何确定哪些数据需要被遗忘?

  • 背景: 在应对隐私保护法律要求或用户的个人数据删除请求时,必须明确哪些数据需要从模型中移除。
  • 解法: 设立一个遗忘集(( D_F )),包含所有需被遗忘的数据样本。
  • 例子: 如果用户要求删除其在在线服务中的面部数据,所有包含该用户面部的图像将被归入遗忘集。

子问题3: 如何保持对其他数据的记忆不受影响?

  • 背景: 在移除特定数据的同时,不应损害模型对于其他数据的处理能力。
  • 解法: 设立一个保留集(( D_R )),并通过算法保证在遗忘过程中这些数据的特征不会被改变。
  • 例子: 在同一个面部识别服务中,即便删除某些用户的数据,服务仍能准确识别并处理其他用户的面部图像。

通过区分遗忘集和保留集,并对遗忘集应用特定的遗忘算法,实现了数据的精确遗忘。

不足之处可能在于如何确保在遗忘集和保留集之间划分的界限是明确的,以及如何处理边界模糊的情况。

 


评估与效果

子问题: 机器遗忘算法如何平衡保留集和遗忘集之间的性能?

  • 背景: 在机器遗忘中需要确保遗忘集中的数据被去除,同时保留集的数据性能不受影响。
  • 解法: 通过最小化保留集的生成图像与原图的分布差异,同时最大化遗忘集的生成图像与原图的分布差异。
  • 例子: 对于风格转换模型,保留集中的艺术风格转换能力不受影响,而遗忘集中特定艺术家的风格被模型遗忘。

在这种方法中,目标是调整模型权重,使得保留集上的图像生成尽可能保持高质量(与原图差异小),而遗忘集上的图像生成则明显偏离原有数据分布。

这通常通过在训练期间添加特定的约束或损失函数来实现,以确保模型在保留集上的生成图像与真实图像保持一致,同时在遗忘集上生成与原图不同的图像。

 
考虑一个被训练用于风格迁移的I2I模型,现在需要遗忘特定艺术家的风格。

遗忘操作将通过调整模型权重实现,当模型尝试在遗忘集上进行风格迁移时,结果图像与原始艺术家风格的分布有很大差异,而在保留集上的其他艺术风格则保持不变。

在这里插入图片描述

这张图展示了一个机器遗忘框架在不同类型的图像到图像(I2I)生成模型上的应用效果,包括扩散模型(Diffusion Models)、向量量化生成对抗网络(VQ-GAN),以及掩蔽自编码器(MAE)。

图中展示了两个不同的集合:保留集(Retain Set)和遗忘集(Forget Set)。

在保留集部分(a),可以看到原始图片(Ground Truth),输入图片(Input),以及遗忘前后的图片(Before Unlearning 和 After Unlearning)。

保留集的图片在遗忘前后几乎没有受到影响,图像质量和内容保持一致。

在遗忘集部分(b),同样展示了原始图片和输入图片,以及遗忘前后的图片。

遗忘后的图片与原始图片相比,几乎成为了噪声,这意味着模型成功“忘记”了遗忘集中的信息,图片内容被大幅度扭曲,以至于无法识别原来的内容,符合遗忘框架的设计目的。

  • 机器遗忘框架在各种I2I生成模型上的适用性,并验证了其能够有效地在遗忘集上实现数据的遗忘,同时保持保留集上数据的完整性。

 


子问题: 如何定义一个能够量化遗忘效果的目标函数?

  • 背景: 需要一个清晰的目标,以量化模型遗忘特定数据的效果。
  • 解法: 使用KL散度和互信息(MI)作为度量,定义了一个目标函数来量化遗忘的效果。
  • 例子: 在遗忘算法的效果评估中,可以通过比较遗忘前后模型生成的图像与原图的KL散度来量化遗忘的程度。

在这个解法中,使用KL散度和互信息(MI)来定义一个目标函数,旨在量化模型遗忘特定数据的效果。

KL散度衡量两个概率分布之间的差异,而互信息量化两个变量间的相互依赖性。

这些指标结合起来能够给出模型遗忘效果的量化评估。

 
假如有一个生成模型被用于生成人脸图像,现在需要遗忘某个人的脸部数据。

通过调整模型参数,当模型接收到与该人脸相关的输入时,输出的图像与原始人脸的KL散度很高,表明生成的图像与被遗忘的人脸差异很大。

同时,通过测量互信息,确保在保留集上模型仍能生成与输入高度相关的人脸图像。

遗忘性能展示:
在这里插入图片描述

  • 上半部分(Figure 3) 展示了在扩散模型上对中心8x8像素块进行裁剪后的结果,其中每个裁剪块的大小为16x16像素。
  • 图像从左到右依次展示了:
    • “Ground Truth”:原始未处理的图像。
    • “Input”:输入到模型中的图像,中间有被遗忘的8x8像素块。
    • 一系列不同遗忘方法的结果,包括“Original Model”(原始模型输出),“Max Loss”(最大化损失),“Noisy Label”(噪声标签),“Retain Label”(保留标签),“Random Encoder”(随机编码器),以及“Ours”(我们的方法)。

这部分显示了在进行遗忘操作后,保留集的图像质量几乎没有影响,而遗忘集的图像则变得接近噪声,说明遗忘操作成功执行。

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

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

相关文章

Nginx与history路由模式:刷新页面404问题

使用nginx部署前端项目,路由模式采用history模式时,刷新页面之后,显示404。 路由模式 前端路由的基本作用为: ①当浏览器地址变化时,切换页面; ②点击浏览器后退、前进按钮时,更新网页内容&…

双面板设计的一套经验规则-笔记

过大的分布电感导致信号地干扰也就是地弹(专业名词) 还有就是输出瞬态电流导致的地弹 图中可以看到最高 0.5V 的信号地干扰,这只是单一块开发板的测试结果。如果接上外围电路,甚至面包板电路可以想象噪声水平可能会更高。 双面电路板 经验规则 下面来…

Tomcat 原理分析

1、Tomcat 的组成 如下图: Tomcat组成 Server: Tomcat 封装的、对外提供完整的、基于组件的 web 服务,包含 Connectors、Container 两个核心组件,以及多个功能组件,各个 Service 之间是独立的,但是共享 同…

【数据结构】前缀树的模拟实现

目录 1、什么是前缀树? 2、模拟实现 2.1、前缀树节点结构 2.2、字符串的添加 2.3、字符串的查寻 2.3.1、查询树中有多少个以字符串"pre"作为前缀的字符串 2.3.2、查询某个字符串被添加过多少次 2.4、字符串的删除 3、完整代码 1、什么是前缀树&…

Flink 2.0 状态存算分离改造实践

本文整理自阿里云智能 Flink 存储引擎团队兰兆千在 FFA 2023 核心技术(一)中 的分享,内容关于 Flink 2.0 状态存算分离改造实践的研究,主要分为以下四部分: Flink 大状态管理痛点 阿里云自研状态存储后端 Gemini 的存…

Linux下的crontab定时执行任务命令详解

在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。 cron的配置文件称为“crontab”,是“cron table”的简写。 一、cron服务   cron是一个…

为什么要进行FTP替代?专业的FTP替代方案了解一下!

FTP(File Transfer Protocol,文件传输协议)的历史可以追溯到20世纪70年代,这是一个由美国国防部资助的早期计算机网络,后来发展成为互联网的前身。随着时间的推移,FTP经历了多次迭代和改进,以适…

有关网络安全的课程学习网页

1.思科网络学院 免费学习skillsforall的课程 课程链接:Introduction to Cybersecurity by Cisco: Free Online Course (skillsforall.com) 2.斯坦福大学计算机和网络安全基础 该证书对于初学者来说最有价值,它由最著名的大学之一斯坦福大学提供。您可…

【动态规划】【C++算法】2518. 好分区的数目

作者推荐 【动态规划】【前缀和】【C算法】LCP 57. 打地鼠 本文涉及知识点 动态规划汇总 LeetCode:2518. 好分区的数目 给你一个正整数数组 nums 和一个整数 k 。 分区 的定义是:将数组划分成两个有序的 组 ,并满足每个元素 恰好 存在于 某一个 组中…

AVR 328pb ADC基本介绍和使用

AVR 328pb ADC基本介绍和使用 📍结合参考同架构lgt8f328p中文文档:http://www.prodesign.com.cn/wp-content/uploads/2023/03/LGT8FX8P_databook_v1.0.4.pdf 📘328pb ADC特性 • 10-bit Resolution 10位分辨率 • 0.5 LSB Integral Non-lin…

猫头虎分享已解决Bug || JavaScript语法错误(Syntax Error):SyntaxError: Unexpected token

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

leetcode(哈希表)49.字母异位词分组(C++详细解释)DAY5

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 示例 1: 输入: strs [“eat”, “tea”…

Golang的for循环变量和goroutine的陷阱,1.22版本的更新

先来看一段golang 1.22版本之前的for循环的代码 package mainimport "fmt"func main() {done : make(chan bool)values : []string{"chen", "hai", "feng"}for _, v : range values {fmt.Println("start")go func() {fmt.P…

Elasticsearch(四)

是这样的前面的几篇笔记,感觉对我没有形成知识体系,感觉乱糟糟的,只是大概的了解了一些基础知识,仅此而已,而且对于这技术栈的学习也是为了在后面的java开发使用,但是这里的API学的感觉有点乱!然…

JavaScript 入门 完整版

目录 第一个知识点:引入js文件 内部引用: 外部引用: 第二个知识点:javascript的基本语法 定义变量: 条件控制(if - else if - else) 第三个知识点:javascript里的数据类型、运算符: 数字类型 字符串类型 布尔…

前端JavaScript篇之对执行上下文的理解

目录 对执行上下文的理解创建执行上下文 对执行上下文的理解 当我们在执行JavaScript代码时,JavaScript引擎会创建并维护一个执行上下文栈来管理执行上下文。执行上下文有三种类型:全局执行上下文、函数执行上下文和eval函数执行上下文。 在写代码的时…

FRP内网穿透需要注意的事情

安全性 SSH设置好密钥后,一定要关闭密码登陆。现在暴力破解策略往往是先派小鸡端口扫描看看谁可以密码访问,如果可以,然后定点爆破就开始了。不允许root登陆。FRP使用token验证。FRP服务端要输出配置文件,info等级就能显示访问ip…

mac docker 宿主机和容器间网络打通

动因 是这样,笔者最近满怀欣喜入手Docker,看着各种文章命令都是不断点头称道:“嗯嗯,不错不错”,在接下来终于准备大干一场的时候碰壁了,主要情况是说在Mac中跑了第一把的时候发现碰到,虚拟机和宿主机居然…

C语言笔试题之两数相加(多次反转链表实现)

实例要求: 1、给定两个非空链表(l1和l2)来代表两个非负整数;2、数字最高位位于链表开始位置;3、它们的每个节点只存储一位数字;4、将这两数相加会返回一个新的链表; 案例展示: 实例…

Leetcode刷题笔记题解(C++):面试题 08.07. 无重复字符串的排列组合

思路:因为字符之间互不相同,故使用全排列的方式去解题; 字符串长度为n,将第一个字母分别与后面每一个字母进行交换,生成n种不同的全排列;再用第二个元素与后面每一个元素进行交换,生成n - 1种不…