©作者 | 顾洲洪

单位 | 复旦大学博士生

研究方向 | 知识图谱、知识工程

任务定义

模型遗忘是针对于特定的数据而言的,让模型遗忘掉某个数据之后模型的表现能力,应该等同于这个数据没有参与模型训练时模型的表现能力。

Machine Unlearning 这个词其实最火的应该是顶会 S&P-42nd IEEE Symposium of Security and Privacy 上的同名工作:Machine Unlearning(arxiv),因为这整个领域比较新颖,所以知道的人不是很多,但却是一个非常有潜力的研究方向。

一方面,单从任务本身而言,Machine Unlearning 可以有效地保护用户隐私数据。在如今很多应用中,公司都会使用用户的数据去训练模型,而用户又有权力要求公司停止使用他们的数据,当用户发出“被遗忘”要求时,可以等价于模型的训练集发生了变化,如果每次用户要求“被遗忘”时都要重新训练一遍模型,这个时间开销想想都是不可接受的。而 Machine Unlearning 这一领域研究的方法可以探究如何快速高效地达成“敏感数据遗忘”这件事情,从而可以有效地满足用户需求,或者是保护重要的敏感数据。

另一方面,Machine Unlearning 领域中有很多工作从数据对于模型的影响方面开始着手,进一步挖掘出了各种数据,在模型收敛时会贡献怎样的梯度。这件事当然可以有助于更好地达成 Machine Unlearning 的目的,但同时也在 Noisy Data Detection,Less Data Equal Effectiveness 等任务上具有很好的表现能力。

笔者在阅读了近 4 年来大多数 Machine Unlearning 的文章后,总结了 Machine Unlearning 目前两大主流方法,并在这两个方法上各自介绍一篇 2022 年中稿的顶会论文。

方向总结

1. 参数遗忘(粗略遗忘):这类方法会通过直接调整模型的参数,消除遗忘数据对于模型的影响。

  • 缺点:效果有限

  • 优点:遗忘速度快

2. 剪枝训练(精确遗忘):这类方法会考虑重新训练模型,但是会加入各种各样的剪枝方法让减小模型重新训练的开销。

  • 缺点:遗忘速度较慢

  • 优点:遗忘效果好

方向一:参数遗忘

论文名称:

PUMA: Performance Unchanged Model Augmentation for Training Data Removal

中稿会议:

AAAI 2022

投稿单位:

Borealis AI

论文链接:

https://www.aaai.org/AAAI22Papers/AAAI-10608.WuG.pdf

一句话摘要:从理论的角度探究了每个数据对于模型的影响,从而可以在遗忘的时候更好地消除掉需遗忘数据的影响。

2.1 方法

1. Machine Unlearning 建模:

其中 表示的是原始的模型参数, 表示的是遗忘之后的模型参数, 表示的是整个训练集。这个式子表示,期望模型能够以很小的代价( )完成模型参数 的调整从而实现遗忘。

2. 训练目标建模:

这个式子是原始模型的训练式子,其中 可以理解为目标函数 的最优解。

这个式子表示的是用于遗忘的目标方程,其中 可以理解为目标函数 的最优解。 表示的是遗忘数据集,服从于 的要求。 表示的是加权数据点的权重向量——一般在模型训练的时候,我们可以理解为所有样本的权重都相同,但这篇文章需要通过调整各个数据的权重来弥补遗忘数据所带来的下游应用上的影响。

式子可以单独用目标函数 进行表示,后面还会继续用到这个表示方式。

3. 遗忘前后模型参数的变化:

当 足够小时(每个数据点对于梯度的贡献都非常得小),可以对 在 点进行泰勒展开,展开式如下:

将上面的泰勒展开式进行一些变形之后可以得到遗忘前后模型参数的变化

上面的式子中的 Hessian Matrix 发生了一些变化:

论文中认为这种变化是可以接受的,首先因为 够小时,Hessian Matrix 作为泰勒展开式的二阶项,其实这种变化所引发的差异微不足道;其次,计算 Hessian Matrix 的过程其实是一个迭代的过程,中间引入的噪音会很大,而引入论文中提出的这种变化反而不会带来太多的噪音。

最后,将 表示为:

可以得到如下式子:

4. 遗忘前后模型效果的变化:模型的表现很难具体地用一个明确的函数建模出来,所以粗略地使用 来表示根据特定参数,模型的表现能力。则可以将遗忘前后,模型在下游应用上表现能力的变化建模为:

而这个建模又可以写为 的线性方程,具体如下

5. 通过调整梯度权重来遗忘数据:

根据上述建模,可以将遗忘过程的目标函数写为如下形式:

其中 表示的是正则项。

根据上述目标函数,则可以建模 SGD 优化方法:

最后,将 PUMA 计算出来的每个数据点对于模型训练时的梯度贡献进行可视化:

▲ PUMA效果的可视化

2.2 实验

PUMA 是否可以不降低模型性能:图表里的数据比较直观,这里就不做过多释了

▲ 使用PUMA之后对于模型表现能力的影响

PUMA 是否能够成功遗忘一整个类的数据:成功删除了上面所有的 x 类,表面 PUMA 具有遗忘一整个类的能力。

▲ PUMA遗忘一整个类的能力

PUMA 是否能够遗忘特定的数据:遗忘的数据有多少还能被检测模型检测到在训练集里出现过。

▲ PUMA遗忘特定数据的能力

PUMA 与 baseline 的运行效率进行对比:

▲ PUMA的运行效率

PUMA 对超参数有多么敏感:PUMA 中有个超参数 η,这个参数是在收敛过程中用来调整投影步骤的,太过巨大的 η 将会违反泰勒展开的假设,所以此处超参数的调整也只是对于下游应用影响的观察,其中 Resistance 表示移出率、Accuracy 表示泛化能力。

▲ PUMA的超参数实验

2.3 额外实验

PUMA 能否估计出错误的标记样本:文中并没有说该如何看这张图,对于其中的对比方法也没有进行详细的介绍。我认为,检查越少的 Inspected Fraction 就能得到越高的 Discovered Fraction 则说明模型效果越好。所以当曲线更靠近 Optimal 的时候,模型效果最好。

▲ PUMA用于错误样本检测

模型运行的时间开销:单位为秒,可以看出 PUMA 不仅效果好,运行速度还高。

▲ PUMA的运行时间开销

方向二:剪枝训练

论文名称:

ARCANE: An Efficient Architecture for Exact Machine Unlearning

中稿会议:

IJCAI-2022

投稿单位:

Xidian University

论文链接:

https://www.ijcai.org/proceedings/2022/0556.pdf

一句话介绍:本文将一个大的数据集分为一堆堆小数据集,在遗忘请求到来时,只对遗忘数据所在的数据集对应的模型进行再训练。

▲ ARCANE的例子

4.1 方法

框架图如下所示,注:我没有完全按照论文中的意思进行翻译,主要加入了一些我自己的理解进行解释,让整个过程更加通俗易懂一些。

▲ ARCANE的框架图

1. 粗分组(Partition by class):根据数据的类别标签对数据进行分类,每个类别的数据分为同一类。

2. 选信息量大的数据(Representative Data Selection)利用类间数据的关系计算数据的信息量(Joint Entropy),每次训练时只将一个类内信息量最大的n个数据拿出来参与训练,计算公式如下:

这里的 表示的是粗分组 中各取一个样本,文字解释一下这里的公式——将所有可能的数据组合的熵都算出来,挑选其中熵最大的若干数据组合加入训练。笔者认为这里的计算开销将会极其庞大,本文并没有对这块儿的计算开销进行深入的讨论。当 forget request 到来时,重新计算发生变化的类内数据信息量,然后重新训练模型。这里笔者认为论文存在一个计算错误,重新训练的样本数应该是 个样本,而不是 个样本:

▲ 笔者认为有问题的部分

3. 细分组(Training State Saving):将粗分组的分出来的数据集进一步切分成若干小块,这样可以进一步减少 retrain 的开销。同时将其他模型的参数引入 retrain 模型,可以做得快速 retrain:比如第 j 块的数据发生变动,则只需要将第 j-1 块的数据学习出来的模型参数用来初始化第 j 块,然后用第 j 块的数据重新训练。

4. 数据排序(Sort):类似于操作系统里的进程排序,也类似于数据结构中的栈:即将经常会发生变化的数据放到一个(或者若干个)数据集里,不经常发生变化的数据集放到一个(或者若干个)数据集里。

模型架构:原文有讲他们的模型架构,但笔者认为不重要,所以有兴趣的读者可以考虑看一下他们的原文。

4.2 实验

Accuracy:

▲ 总体评估-Accuracy

时间开销:

▲ 总体评估-Time Expense

需要重新训练的样本数:

▲ 总体评估-Retrain Samples Number

对于数据选择的消融实验:选择不同比例数据时,模型的 Accuracy 和 Time Consume:这块儿的实验并不是很明朗,黑线和红线代表的内容并没有写出,而且没有在此讨论计算开销。

▲ Representative Data Selection的实验

对于精分组的消融实验:不同 block number 的设置下,需要遗忘的样本个数

▲ Training State Saving的实验

对于排序的消融实验:这里笔者有些没看懂,黑色的线根据解释应该为不加入排序的 ARCANE 方法,但起名为 Naive retraining 感觉会导致理解有些偏差(也有可能是笔者理解确实出现了错误)。对比的内容是随着 unlearning request 的增加,参与重新训练的样本数量:

▲ Sorting的实验

与 SOTA 工作的对比:

▲ SISA是我在论文最开始讲到的2021年的Machine Unleanring同名文章


总结

Machine Unlearning 是笔者最近调研到的,比较有意思,而且比较新的一个方向。对于数据保护,以及对于模型运行细节比较感兴趣的朋友可以了解一下。本文受限于笔者自身的能力,对于这两篇工作的总结,以及对于整个方向的总结若存在问题,或者其他对这个方向比较感兴趣的研究者,欢迎留言评论或者私聊我。

更多阅读

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

模型会忘了你是谁吗?两篇Machine Unlearning顶会论文告诉你什么是模型遗忘相关推荐

  1. 读8篇论文,梳理BERT相关模型进展与反思

    作者 | 陈永强 来源 |  微软研究院AI头条(ID:MSRAsia) [导读]BERT 自从在 arXiv 上发表以来获得了很大的成功和关注,打开了 NLP 中 2-Stage 的潘多拉魔盒.随后 ...

  2. R语言vtreat包的mkCrossFrameCExperiment函数交叉验证构建数据处理计划并进行模型训练、通过显著性进行变量筛选(删除相关性较强的变量)、构建多变量模型、转化为分类模型、模型评估

    R语言vtreat包的mkCrossFrameCExperiment函数交叉验证构建数据处理计划并进行模型训练.通过显著性进行变量筛选(删除相关性较强的变量).构建多变量模型.转化为分类模型.模型评估 ...

  3. R语言caret包构建xgboost模型实战:特征工程(连续数据离散化、因子化、无用特征删除)、配置模型参数(随机超参数寻优、10折交叉验证)并训练模型

    R语言caret包构建xgboost模型实战:特征工程(连续数据离散化.因子化.无用特征删除).配置模型参数(随机超参数寻优.10折交叉验证)并训练模型 目录

  4. 《预训练周刊》第16期:中科院推出全球首个图文音三模态预训练模型、顶会论文探索100层序列推荐模型的加速训练...

    No.16 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第16期&l ...

  5. 「完结」你对深度学习模型的理解是否足够深刻,这12篇文章了解下

    2020-05-28 18:07:49 文/编辑 | 言有三 好的模型结构是深度学习成功的关键因素之一,不仅是非常重要的学术研究方向,在工业界实践中也是模型是否能上线的关键.对各类底层深度学习模型设计 ...

  6. 北大95后「AI萝莉」回来了,一次中8篇顶会论文的她,现在达摩院开源7大NLP模型...

    梦晨 博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 曾有一位北大硕士生,在校期间一次性在国际顶会ACL中标8篇论文,其中2篇一作,还登上了知乎热搜. 在那次热搜之后,这位"论文 ...

  7. 【完结】你对深度学习模型的理解是否足够深刻,这12篇文章可以作为一个参考...

    文/编辑 | 言有三 好的模型结构是深度学习成功的关键因素之一,不仅是非常重要的学术研究方向,在工业界实践中也是模型是否能上线的关键.对各类底层深度学习模型设计和优化技术理解的深度是决定我们能否在深度 ...

  8. 在深度学习顶会ICLR 2020上,Transformer模型有什么新进展?

    一只小狐狸带你解锁炼丹术&NLP秘籍 大数据文摘出品 来源:medium 编译:一一.Andy ICLR是机器学习社群最喜爱的会议平台之一.如今,机器学习领域的会议已成为预印本里论文质量的标志 ...

  9. R语言使用lm函数构建多元回归模型(Multiple Linear Regression)、并根据模型系数写出回归方程、使用fitted函数计算出模型的拟合的y值(响应值)向量

    R语言使用lm函数构建多元回归模型(Multiple Linear Regression).并根据模型系数写出回归方程.使用fitted函数计算出模型的拟合的y值(响应值)向量 目录

最新文章

  1. 实验0 了解和熟悉操作系统
  2. kerberos 身份认证 简介
  3. java的动态代理机制详解
  4. JavaScript获取select下拉框中的第一个值
  5. Oracle 游标的练习
  6. leetcode —— 面试题 16.19. 水域大小
  7. ps3存档是php文件,PS3存档修改图文详细全教程
  8. layui让当前页面刷新_layui点击按钮页面会自动刷新的解决方案
  9. 销售转向java编程的开始之路
  10. 【XLL 框架库函数】 TempMissing/TempMissing12
  11. 【2019 BAPC - D】Deck Randomisation【中国剩余定理 + 循环节】
  12. logit回归怎么看显著性_spss logistic回归分析结果如何分析
  13. 广义表存储结构图的绘制
  14. border缩写属性
  15. javascript脚本_应用JavaScript:用户脚本
  16. 使用DiskGenius拓展系统盘C盘的容量
  17. IP和子网掩码和网关的关系
  18. 谈谈管理者绩效管理要点
  19. HDU6357——Hills And Valleys
  20. 1-1 Java基础和编程概述

热门文章

  1. 初中生c语言入门自学视频,初中生如何学好c语言
  2. ReactOS:基于Windows的开源操作系统
  3. Excel — 动态图表(复选框实现动态图)
  4. 用Python爬取微信好友头像,才知道好友都是这样的人
  5. 1197 山区建小学
  6. Linux后台日志定时清理脚本
  7. LightProxy 无线端代理iOS,安装验证证书后仍不生效
  8. 苏州VS上海:城市化的二个阶段
  9. 「罗马人的故事 III 胜者的迷思」读后感 Part1,格拉古兄弟
  10. 【Windows Server 2019】路由服务的配置和管理