type
status
date
slug
summary
tags
category
icon
password
标题:A survey of machine unlearning
摘要
机器学习模型通常会 "记住 "旧数据。当代对训练有素的模型的对抗性攻击已经证明,我们可以学习某个实例或属性是否属于训练数据,即machine unlearning
1 Intro
研究背景和问题
- 数据爆炸时代:当前计算机系统存储大量个人数据,数据产生、记录和处理量激增(如YouTube每日40亿次观看)
- 核心矛盾:丰富的数据推动了AI发展,但同时威胁用户隐私并导致数据泄露
- 法律要求:新法规赋予用户"被遗忘权",要求系统能够根据用户请求删除其数据
机器学习中的记忆问题
- 记忆机制:机器学习模型表现得像有损数据压缩机制,会"记住"训练数据
- 删除困难:仅从后端数据库删除数据无法满足AI系统要求,因为模型参数与训练数据的关系不明确
- 隐私风险:对抗攻击研究证明可以从训练好的模型中提取私人信息
机器遗忘(Machine Unlearning)概念
- 定义:一种新的范式,旨在从机器学习模型中移除数据而无需完全重新训练
- 目标:既维护用户的被遗忘权,又避免模型所有者频繁且昂贵的重训练成本
主要挑战
- 训练随机性:由于训练过程的随机性,难以确定每个数据点对模型的具体影响
- 技术复杂性:缺乏通用框架和资源来完全解决机器遗忘问题
2 unlearning框架
2.1 unlearning工作流程
该部分介绍了机器遗忘的典型工作流程,包含两个核心组件:
1.学习组件
包含当前数据、学习算法和当前模型,初始模型从完整数据集训练得到
2.遗忘组件
包含遗忘算法、遗忘后模型、优化要求、评估指标和验证机制,处理数据移除请求,使模型“忘记”相应信息,考虑完整性、及时性和隐私保证等要求
验证流程
- 遗忘后的模型需要通过验证来证明确实忘记了请求数据
- 验证方法包括特征注入测试、成员推理攻击、遗忘度量等
- 如果验证通过,模型可用于下游任务;否则需要重新训练
2.2 遗忘请求类型
1. 项目移除(Item Removal)
- 最常见的遗忘请求
- 移除训练数据中的特定样本/项目
2. 特征移除(Feature Removal)
- 问题背景:隐私泄露可能源于具有相似特征或标签的数据组
- 挑战:顺序遗忘计算昂贵,过多遗忘会降低模型性能
- 解决方案:
- Warnecke等人:基于影响函数的技术,使用一阶和二阶导数
- Guo等人:基于解耦表示,主要适用于图像领域的深度神经网络
3. 类别移除(Class Removal)
- 应用场景:如人脸识别中用户退出系统
- 挑战:比项目移除更复杂,数据分割不利于学习类别差异
- 解决方案:
- Tarun等人:基于数据增强,引入噪声最大化目标类别的分类错误
- Baumhauer等人:基于线性过滤算子,按比例将目标类别样本分类转移到其他类别
4. 任务移除(Task Removal)
- 背景:现代机器学习模型常用于多任务学习/持续学习
- 动机:类似人脑,多任务学习可以相互受益,解决数据稀疏和冷启动问题
2.3 设计要求
一个理想的机器学习“遗忘算法”应满足以下几个核心设计要求:
- 完整性(Completeness / Consistency)
- 定义:遗忘后的模型与重新训练(去除了需遗忘数据)的模型,在任何输入样本上的预测结果应一致(无论预测正确或错误)。
- 测量方法:计算测试集上两个模型预测一致的比例。
- 设计建议:可将模型输出的差异作为优化目标;可参考对抗攻击相关研究进行建模。
- 及时性(Timeliness)
- 问题:重新训练虽能完全解决遗忘,但耗时大,尤其在需遗忘数据分布未知时。
- 取舍:存在 完整性 vs. 及时性 的权衡。
- 少量数据需要遗忘 → 遗忘方法更有优势(对模型精度影响小)。
- 大量数据需要遗忘 → 多次遗忘可能使精度灾难性下降,此时重新训练可能更优。
- 测量方法:遗忘请求触发后,与重新训练相比的加速比。
- 准确性(Accuracy)
- 要求:遗忘后的模型在测试集上的准确率应与重新训练模型相当。
- 挑战:重新训练成本高,通常无法直接获得作为对照。
- 解决方法:可使用新测试集,或与遗忘前的原始模型进行对比。
- 轻量化(Light-weight)
- 背景:遗忘过程可能需要存储模型检查点、历史更新、训练数据等。
- 要求:算法应能在大规模数据场景下运行,减少不必要的计算开销,仅在时间与存储成本上有最低消耗。
- 可证明保证(Provable guarantees)
- 除重新训练外,大多数遗忘方法本质上是近似的。
- 要求:提供可证明的遗忘效果边界(bounded approximation),比如参数接近则精度接近的假设。
- 模型无关性(Model-agnostic)
- 要求:遗忘方法应适用于不同类型的模型与算法,且在可能的情况下提供可证明保证。
- 挑战:不同模型的学习机制差异很大,实现通用框架困难。
- 可验证性(Verifiability)
- 用户不仅关心遗忘请求是否执行,还希望能验证模型是否保护了隐私。
- 方法示例:利用后门攻击(backdoor attacks)作为验证手段——在训练数据中注入后门样本,如果原模型可检测到而遗忘模型不可检测,即视为成功。
- 局限:这种方法可能过于侵入性,且后门检测本身存在不确定性和误报风险。
2.4 unlearning验证
unlearning的验证方法是证明人们无法轻易区分未学习模型和重新训练的模型
1.Feature Injection Test(特征注入测试)
- 思路:向需要被遗忘的数据添加一个特殊特征,且此特征仅出现在待遗忘集(值为非零)且与标签完全相关;其它数据该特征为零。
- 过程:
- 模型训练时,该特征会被赋予显著权重(对线性/逻辑回归明确可见)。
- 完成遗忘后,该特征的权重应接近 0。
- 对比遗忘前后该权重的变化量,评估遗忘效果。
- 限制:
- 适用于线性/逻辑模型(深度学习注入信号困难)。
- 需构造带注入特征的训练集。
2.Forgetting Measuring(遗忘度量)
- 背景:即使删除目标数据,模型可能仍保留可检测的痕迹。
- 方法(Jagielski et al.):基于隐私攻击(如 membership inference)定义 α-forget:
- 如果针对某样本的攻击成功率 ≤ α,即认为模型对该样本实现 α-遗忘。
- 比差分隐私更灵活:样本可被临时学过,再随着时间完全遗忘。
- 衡量“样本被遗忘需要多久”。
3.Information Leakage(信息泄露)
- 现象:模型在更新/遗忘过程中可能泄露信息。
- 方法:
- 通过比较遗忘前后的模型来度量泄露程度。
- 攻击方式:
- Salem等:图像域可重建已删除样本。
- Brockschmidt等:文本域类似方法。
- Chen等:改进 membership inference,利用原模型与遗忘模型的输出分布,提出两指标:
- Degradation count:在新攻击中比传统攻击更高置信度推断的目标样本比例。
- Degradation rate:新攻击相较传统攻击置信度的平均提升率。
4.Membership Inference Attacks(成员推理攻击)
- 用途:检测模型是否泄露训练集信息,从而检验遗忘有效性。
- 原理:
- 训练一个推理模型来识别某样本是否在训练集。
- Shokri等方法(2017):用多个浅层模型生成预测,喂入攻击模型判断成员关系。
- 在遗忘验证中的作用:帮助检测已删除数据是否仍被模型保留。
5.Backdoor Attacks(后门攻击)
- 原理:注入后门触发模式的数据,若遗忘无效,触发样本仍会被预测为目标类别。
- 过程:
- 在训练集中混入带后门的“毒数据”。
- 删除带后门数据用户的记录。
- 检查遗忘后模型是否仍将触发样本预测为目标类别。
- 局限:无法绝对保证该判别规则成立,但增加毒样本数量可降低失败概率。
6.Slow-down Attacks(减速攻击)
- 动机:部分遗忘理论考虑可区分性保证,但忽略计算成本。
- 攻击:通过数据投毒,使得遗忘算法在删除该子集时计算成本最大化。
- 开放问题:如何对不同类型的遗忘方法统一计算成本度量。
7.Interclass Confusion Test(类别混淆测试)
- 思路:不是看参数空间差异,而是基于输出空间分析是否仍能从模型中推断被遗忘信息。
- 方法:
- 从两类数据中随机取样形成集合 S;
- 随机交换它们的标签生成“混淆集” S′;
- 用 D′ = (D \ S) ∪ S′ 训练新的模型;
- S′ 视为遗忘数据,通过评估模型对这些混淆样本的输出,衡量遗忘效果。
3 unlearning定义
3.1 问题形式化(Problem Formulation)
- 应用背景 Machine Unlearning 的动机来源广泛,包括隐私保护、安全性、可用性、模型一致性等。
- 隐私保护:用户要求删除其数据及其对模型的影响
- 安全性:移除已检测到的对抗样本及其影响
- 可用性 & 可靠性:移除错误或损坏数据的影响
- 挑战 从数据库删除数据很简单,但从已训练模型中移除数据影响才是主要研究问题。
- 符号定义(主要符号见表 2)
- :样本空间(example space)
- :训练集
- :要忘掉的数据(forgetting set)
- :剩余数据(retained set)
- :训练算法
- :反遗忘算法
- :假设空间
- :分别表示不同场景下的模型参数(全数据训练、已移除数据后训练、unlearning 后)
- 学习与遗忘过程
- 学习: , 为训练好的模型
- 遗忘: ,返回与 类似的模型
- 都是随机化算法(如SGD、浮点数随机性)
3.2 精确遗忘(Exact/Perfect Unlearning)
- 本质:比较两种模型分布:
- 从剩余数据 重新训练的模型分布
- 直接在原模型上执行 U 后的模型分布
- 定义 1(Special Case)
- 定义 2(General Case) 对任意模型子集 ,均满足:
- 两种视角的精确性
- 权重分布相等:
- 输出分布相等(弱遗忘 Weak Unlearning):
- 特点与局限
- 直接重训(retraining)可保证精确性,但计算代价高(大模型尤其如此)
- 批量数据移除时重训效率低
- 计算分布距离(在权重/输出空间)成本高
3.3 近似遗忘(Approximate / Bounded / Certified Unlearning)
- 动机:降低重训的高计算成本
- 方法:修改最终权重、调整模型结构、过滤输出等
- 定义 1(ε-Approximate) 对删除单个样本 z ,有:
- 定义 3 ((ε, δ)-Approximate) 加入 δ — 允许概率上限失败的情况:
- 与差分隐私的关系
- DP 满足近似遗忘,但过于严格,往往导致模型精度显著下降
- 机器遗忘与 DP 之间存在冲突:DP 模型本身不会记住个体数据
3.4 不可区分性度量(Indistinguishability Metrics)
用于衡量 与 的距离:
- 距离
- 比较权重向量的欧氏范数(verification error)
- 缺点:计算需重训,且训练随机性导致难以设定阈值
- KL 散度 / Jensen-Shannon 散度
- 作用于参数分布
- 缺点:需对模型分布进行估计,过程复杂且计算量大
4 其它机器“遗忘”场景
除了精确遗忘和近似遗忘外,在某些场景中,出于安全或隐私限制,对数据(无论是要遗忘的还是要保留的)的访问会受到限制。作者介绍了三种典型场景:
4.1 Zero-glance Unlearning(零查看遗忘)
定义
- 传统方法假设在遗忘前可以访问所有训练数据,但 Zero-glance 更严格:
- 一旦接到用户遗忘请求(如人脸识别模型中的人脸),组织不得再使用待遗忘样本,甚至不能为了修改模型权重而查看它们。
- 遗忘算法只能使用保留数据的子集 ,其中 。
- 子集越小,隐私性越强。 方法 – Error-maximizing noise(最大化误差噪声)[Tarun et al., 172]
- 当无法访问 时,将问题转化为已知"要遗忘的类别集 "。
- 从 生成噪声样本 ,其目标是最大化模型损失,以破坏模型在这些类别上的表现。
- 步骤:
- 用 训练 1 个 epoch → 损坏模型在 上的性能;
- 再用 训练 1 个 epoch → 修复保留类的性能;
- 训练轮数和子集大小可调整,权衡准确率和运行时间。
- 本质是生成近似的 ,将问题转换回"可获得 "的原始遗忘问题形式。
4.2 Zero-shot Unlearning(零样本遗忘)
定义
- 遗忘方法无法访问原始训练数据 和保留数据,仅能得知类别信息。
- 遗忘目标是使未学习模型 的输出接近"重新训练去掉 后的模型" 。
方法
- Error-minimization noise(最小化误差噪声)[Chundawat et al., 29]
- 继承 Tarun 等人的最大化误差噪声破坏遗忘类;
- 新增最小化误差噪声来近似生成保留类数据,从而修复受损性能。
- Gated Knowledge Transfer(有门控的知识蒸馏)
- 解决噪声生成随意性导致遗忘效果差的问题;
- 在知识蒸馏时引入"门控机制",防止教师模型将关于待遗忘类 的知识传递给学生模型。
4.3 Few-shot Unlearning(少样本遗忘)
定义
- 遗忘算法只能获得待遗忘数据 中的少量样本 ( )。
适用场景:
- 数据 含有错误标签;
- 想移除部分数据对模型带来的恶意影响;
- 实际上受隐私法规约束,往往难以访问全部 。
方法
- Model inversion(模型反演)[Yoon et al., 207]
- 从模型中通过反演获取对原训练集的近似代理数据;
- 通过过滤删除可能导致不良行为的数据,并插值少量目标样本;
- 用这些数据进行再训练;
- 可在无法访问原始训练数据的情况下工作,但仅适用于交叉熵分类模型。
- Influence approximation(影响估计)[Peste et al., 138]
- 基于影响函数计算样本对模型的影响,移除目标样本;
- 传统方法需计算 Hessian 矩阵及其逆矩阵,成本高;
- 使用经验 Fisher 信息矩阵(FIM)做近似,并进行秩一更新 → 更易计算且快速求逆,实用性高。
对比
场景 | 数据可访问性 | 核心思想 | 优势 | 局限 |
Zero-glance | 仅保留数据子集 | 生成最大化误差噪声模拟 | 无需直接访问 | 生成的近似精度受限 |
Zero-shot | 无原始数据,仅类别信息 | 结合最大化/最小化误差噪声 + 门控蒸馏 | 可在数据不可见时操作 | 噪声质量影响效果 |
Few-shot | 少量 样本 | 模型反演/影响函数近似 | 样本少,成本低 | 覆盖有限,适用性受模型类型限制 |
5 遗忘算法
1. Model-agnostic方法
强调与具体模型类型无关的unlearning思路,尽管不少方法的理论保证只在特定模型(如线性模型)成立,但思想可迁移到复杂模型。
- Differential Privacy:通过ε-DP限制单个样本对模型的影响,ε=0时等价完全不学习该样本,但实际上会损害模型学习能力。Gupta等提出支持自适应流式删除的差分隐私unlearning机制(依赖DP发布函数保证删除前后模型差异可控),但只能给出与完全重训相比的上界保证。
- Certified Removal Mechanisms:按近似unlearning定义设计,比如对SGD类算法在梯度更新残差中加入噪声(可用一阶或影响函数近似Hessian),理论上可界定与重训模型的接近度,噪声不够时需退回重训;Neel等拓展了正则化和分布式版本,Ullah定义了总变差稳定性ρ-TV-stable来处理流式请求。
- Statistical Query Learning:用统计查询而非直接访问数据来训练,删除时只需基于剩余数据重算统计量,效率高,可扩展到部分流式删除或零样本场景,但对深度模型不适用(统计量数目巨大)。
- Decremental Learning:源于减少SVM、线性分类等冗余样本的目标,关注精度而非完全性。典型做法是量化+数据分区来减少重训范围,适用特征数量相对少的情况。
- Knowledge Adaptation / Distillation:如“双教师法”(competent+incompetent)让学生同时模仿保留数据与遗忘数据的输出;后续有ERM-KTP、KGA、Layer Attack等变种,灵活但缺少统一理论保证。
- MCMC Parameter Sampling:在忘却集很小时,用MCMC从原模型后验采样构造参数分布并最大化保留数据的后验概率,无需访问忘却集。
2. Model-intrinsic方法
针对特定模型类型设计的unlearning,虽然“内生性”强,但类型间可类比迁移。
- Softmax classifiers:利用线性滤波算子,把待遗忘类别的决策概率线性转移到其它类别,只适合类移除。
- Linear models:基于影响函数的近似Hessian更新,支持小批量样本遗忘;也有在线删除(流式到达的删除指令)和受限内存版本。
- Tree-based models:如极随机树,通过设计鲁棒split(少数样本移除不改变分裂)和维护子树候选,删除时切换最佳候选来避免全树重建,过大忘却集会导致存储开销高。
- Bayesian models:在后验分布层面定义精确unlearning,离散参数或共轭先验可直接采样,非共轭时用最小化KL近似防止灾难性遗忘;还有证书化Bayesian unlearning将KL界限作为保证。
- DNN-based models:多层结构中凸激活层可用certified removal机制,非凸层可先缓存常驻数据再微调用户数据;也有基于影响函数的Taylor展开、DeltaGrad、Fisher-based等,但大忘却集时不稳定,Hessian近似计算昂贵,常需用FIM近似+加噪防泄漏。
3. Data-driven方法
利用数据组织结构来提升unlearning效率,或直接从数据入手干预模型更新。
- Data Partitioning:SISA等框架按shard/slice切分数据,每份对应子模型并存储中间检查点,请求删除时只重训受影响的切片模型,再聚合。还有图结构跟踪依赖的优化。
- Data Augmentation(error噪声):error-minimizing noise能在训练前保护特定样本;error-maximizing noise用于破坏某个类别模型性能(类移除更易)。
- Data Influence:显式建模数据对参数的影响,多存训练历史梯度/参数,删除时“减去”相关更新;也有在训练时加正则化项或近似FIM来高效计算更新。存在顺序依赖导致灾难性遗忘风险,且多数为近似无严格保证。Yamasita等提出利用类特定mnemonic code训练,在删除时通过加噪无需保留原始数据,节省存储。
8.1 研究现状与趋势
- 影响函数是主导方法
- 通过分析单个数据对模型参数和性能的影响,可以显著加速删除数据的过程(反向更新相关参数)。
- 虽然可能有偏差,但已有研究证明偏差可被限制。
- 模型参数可达性问题
- 现有定义多要求“删除目标数据后再训练”与“忘却模型”具有同等准确率。
- 需考虑模型参数在有无某些数据情况下是否可达,以及遗留数据影响导致的“假阳性”风险。
- 遗忘验证(数据审计)的必要性
- 验证特定数据是否确已从模型中被删除,对“被遗忘权”法规落地关键。
- 现有研究很少且验证标准存在争议,不同应用领域的阈值不同。
- 联邦遗忘的兴起
- 在联邦学习中,通过历史更新可精确删除某个客户端数据,避免传统设置下的灾难性遗忘。
- 但需注意数据非独立同分布(non-IID)或仅部分数据删除等复杂情况。
- 通过遗忘进行模型修复
- 用于应对投毒攻击:删除恶意数据并更新模型,而非高成本重训。
- 用于去偏(如删除偏置特征),可在保持模型性能的同时去除不公数据影响。
- 修复过拟合模型:主动遗忘无用/冗余数据,缓解灾难性遗忘。
- 遗忘在信息瓶颈理论下也可能提升模型精度(相当于压缩冗余信息)。
unlearning算法 | 语言 | 平台 | 机器学习模型 | 代码仓库 |
SISA [10] | Python | - | 模型无关 | |
Athena [166, 167] | Python | - | 模型无关 | |
AmnesiaML [63] | Python | - | 模型无关 | |
Kpriors [38] | Python | - | 模型无关 | |
ERM [126] | Python | Pytorch | 模型无关 | |
ShallowAttack [28] | Python | Pytorch | 模型无关 | |
UnrollingSGD [173] | Python | - | 模型无关 | |
DeltaGrad [201] | Python | - | 模型无关 | |
Amnesia [152] | Rust | - | 模型无关 | |
SCAR [9] | Python | - | 模型无关 | |
KGA [192] | Python | Pytorch | 模型无关 | |
MUPy [12] | Python | LensKit | KNN | |
DelKMeans [27] | Python | - | KMeans | |
CertifiedRem [64] | Python | - | 随机森林 | |
CertAttack [116] | Python | Tensorflow | 神经网络 | |
PRU [79] | Python | - | 线性模型 | |
DeltaBoost [203] | Python | - | 基于树的模型 | |
HedgeCut [153] | Python | - | 基于树的模型 | |
DaRE-RF [11] | Python | - | 基于树的模型 | |
MCMC-Unlearning [49] | Python | - | 贝叶斯模型 | |
BIF [50] | Python | - | 贝叶斯模型 | |
L-CODEC [121] | Python, Matlab | - | 深度学习 | |
SelectiveForgetting [60, 61] | Python | - | 深度学习 | |
Neurons [33] | Python | - | 深度学习 |
- Author:Cormac
- URL:https://blog.cormac.top/article/271ec31a-4bca-808f-90be-d9d6e57bb7a3
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!

