在大规模人工智能时代,模型是贪婪的学习者。它们吞噬海量数据集,从网络爬取的图像到敏感的面部数据,无所不学。但当一个模型知道得太多时会发生什么?
想象一下,用户行使“被遗忘权”,要求从人脸识别系统中删除他们的照片。或者考虑一个模型无意中使用了受版权保护的材料或被“投毒”的数据进行了训练,从而产生安全“后门”。在这些情况下,我们面临着机器遗忘 (Machine Unlearning) 的挑战。
每当需要删除数据点时,从头开始重新训练庞大的深度神经网络 (DNN) 在计算上是极其昂贵的。我们需要一种方法,在不损害模型其余知识的情况下,像做手术一样精准擦除特定的概念或类别。但这说起来容易做起来难。目前大多数方法要么无法完全擦除目标,要么在擦除过程中导致无关信息的“灾难性遗忘”。
在这篇文章中,我们将探讨一篇开创性的论文: “Decoupled Distillation to Erase: A General Unlearning Method for Any Class-centric Tasks” (解耦蒸馏擦除: 面向任何类中心任务的通用遗忘方法) 。 我们将详细拆解他们的方法——DELETE , 该方法利用巧妙的损失函数数学分解,在不需要访问原始训练数据的情况下,实现了最先进的遗忘性能。
问题所在: 以类为中心的遗忘
我们要解决的具体问题是以类为中心的遗忘 (Class-Centric Unlearning) 。 给定一个预训练模型 \(f_{\theta_o}\) 和一个数据集 \(\mathcal{D}\),我们将数据分为两组:
- 遗忘集 (Forget Set, \(\mathcal{D}_f\)) : 我们想要移除的特定类别 (例如,“删除所有关于‘飞机’的知识”) 。
- 保留集 (Remain Set, \(\mathcal{D}_r\)) : 我们想要保留的所有其他内容 (例如,“保留关于‘汽车’、‘鸟’、‘船’的知识”) 。
现实世界的约束
这项研究之所以特别,是因为有一个棘手的问题: 在许多现实世界的“机器学习即服务” (MaaS) 场景中,你在遗忘过程中无法访问保留集 (\(\mathcal{D}_r\)) 。
为什么?
- 隐私: 数据可能属于不同的用户,无法聚合。
- 存储: 原始训练集可能高达 PB 级别,并在训练后被删除以节省成本。
- 版权/过期: 数据保留政策可能强制删除原始数据。
大多数现有的遗忘方法都依赖于查看 \(\mathcal{D}_r\) 来确保模型记得它。如果你仅使用想要遗忘的数据来运行标准的遗忘算法 (试图最大化其损失) ,模型通常会崩溃并破坏其特征提取器,从而破坏在其他所有任务上的准确性。
DELETE 的目标是仅使用遗忘集来移除目标类别,同时在数学上保证保留其他类别。
理论框架: 分解损失
为了解决这个问题,研究人员首先退一步,分析了分类损失的基础数学原理。他们提出了一个框架,将遗忘目标解耦 (分离) 为两个不同的部分: 遗忘 (Forgetting) 和保留 (Retention) 。
标准 KL 散度
在知识蒸馏或分类中,我们经常最小化目标分布 \(\mathbf{p}\) 和模型输出 \(\mathbf{q}\) 之间的 Kullback-Leibler (KL) 散度。
让我们看看损失函数的一般形式:

这里:
- \(u\) 是我们想要遗忘的类别的索引。
- \(p_u\) 和 \(q_u\) 分别是遗忘类别的目标概率和预测概率。
- 求和部分处理所有其他类别 (\(i \neq u\)) 。
分解过程
研究人员进行了一次巧妙的代数变换。他们将概率向量拆分为两个部分: 二元概率 (“是不是目标类别?”) 和相对概率 (“如果不是目标类别,它是什么?”) 。
通过定义 \(p_{\setminus u}\) 为所有非目标类别的概率之和,并利用重归一化概率 \(\hat{p}_i\) (其中 \(\hat{p}_i = p_i / p_{\setminus u}\)) ,他们重写了求和项:

将此代回原方程,我们可以将损失完全解耦为两个易于理解的项:

让我们用通俗易懂的语言解释这个方程,因为它是整篇论文的基础:
- 第 1 项 (遗忘损失) : \(\mathrm{KL}(\mathbf{p}^{(b)} \| \mathbf{q}^{(b)})\)。这比较的是二元分布。它问的是: 分配给目标类别的概率质量与所有其他类别的总和相比是多少? 优化这一项可确保模型停止预测目标类别。
- 第 2 项 (保留损失) : \(p_{\setminus u} \mathrm{KL}(\hat{\mathbf{p}} \| \hat{\mathbf{q}})\)。这比较的是其余类别的分布形状。它问的是: 不管目标类别的得分如何,模型是否仍然知道‘猫’看起来更像‘狗’而不是‘卡车’? 优化这一项可确保模型保留其知识结构。
为什么以前的方法失败了
许多现有方法使用重标记 (Re-labeling) 。 他们获取目标类别 (例如“飞机”) 的图像,并重新训练模型,告诉它这些图像是“随机噪声”或特定的错误标签。
作者表明,重标记实际上是他们框架的一个特例,但这是一个有缺陷的特例。

当你盲目地最小化 \(-\log(q_r)\) (强制模型预测随机标签 \(r\)) 时,你实际上是在使用一个“独热 (one-hot) ”目标向量,其中 \(p_r = 1\),其他所有都为 0。
如果我们将“独热”目标代入解耦框架,方程就会坍缩为:

关键缺陷: 注意,针对所有其他类别 (\(i \neq u, r\)) 的求和消失了。重标记隐式地优化了遗忘项 (第 1 项) ,但它对除随机标签 \(r\) 以外的任何类别的保留项 (第 2 项) 提供了零监督 。
这就解释了为什么重标记经常会损害模型在无关类别上的准确性——因为它在更新过程中完全忽略了它们之间的关系。
解决方案: 解耦蒸馏 (DELETE)
为了修复重标记中的缺陷,我们需要一种方法,在无法访问保留数据的情况下监督保留损失 。
解决方案是什么? 使用模型本身。
在我们开始遗忘之前,预训练模型 (我们称之为“教师模型”) 已经知道了类别之间的关系。即使我们给它一张我们想要遗忘的类别的图像,“暗知识 (Dark Knowledge) ”——即分配给其他类别的非零概率——也包含了我们想要保留的结构信息。
策略
作者提出了 DELETE (Decoupled Distillation to Erase,解耦蒸馏擦除) 。该方法利用冻结的原始模型为遗忘过程生成软目标。
为了实现遗忘,我们需要构建一个满足三个条件的目标分布 \(\mathbf{p}\):
- 遗忘条件: 目标类别的概率 \(p_u\) 必须趋向于 0。
- 保留条件: 其他类别的相对概率必须与原始模型匹配。
- 概率属性: 所有概率之和必须等于 1。
掩码机制
为了动态创建这个目标分布,作者引入了一个掩码函数 (Masking Function) 。 他们获取冻结的教师模型的 Logits (原始输出) ,并“屏蔽”掉目标类别的索引。

从概念上讲,这将目标类别的概率设置为零。然而,我们随后需要重新归一化向量,使其总和为 1。损失函数变为:

虽然在数学上是合理的,但手动归一化可能不稳定。作者提供了一个重构 (详见附录) ,表明你可以通过在 Softmax 之前直接操作 Logits 来获得完全相同的结果。
他们定义了一个修改后的掩码 \(\mathrm{Mask}'\),将目标类别的 Logit 设置为负无穷大 (\(-\infty\)) 。

通过将目标 Logit 设置为 \(-\infty\),Softmax 函数会自然地将该概率变为 0,同时按比例重新加权其他类别。这大大简化了实现:

算法
这个过程简单而优雅。我们只遍历遗忘集 。 对于每张图像:
- 将其通过冻结的教师模型 (原始模型) 。
- 应用掩码 (将 \(-\infty\) 赋给目标类别的 Logit) 。
- 应用 Softmax 得到目标分布。这个目标现在表示: “这张图片是类别 \(u\) 的几率为 0%,但保持是其他任何类别的确切相对可能性。”
- 将图像通过学生模型 (遗忘模型) 。
- 计算学生模型的输出与教师模型的掩码输出之间的 KL 散度。
- 反向传播以更新学生模型。
这同时驱动目标概率归零 (遗忘) 并锁定所有其他类别的关系 (保留) 。
实验与结果
作者在多个数据集 (CIFAR-10, CIFAR-100, Tiny ImageNet) 和架构 (ResNet, VGG, Swin Transformer, ViT) 上评估了 DELETE。
关键指标包括:
- \(Acc_f\) (遗忘集准确率) : 应为 0% (或接近随机) 。
- \(Acc_r\) (保留集准确率) : 应接近原始或重训练模型。
- MIA (成员推理攻击) : 分数越低意味着模型不会“泄露”它曾经在遗忘数据上训练过的信息。
性能对比基线
结果令人震惊。让我们看看跨任务的广泛比较:

在上面的图 1 中,注意 Ours (DELETE) 线 (红/橙色) 几乎与 Retrain (上限) 线完全重叠。其他方法如 Random Label (随机标签) 或 Negative Gradient (负梯度) 则很挣扎,尤其是在“遗忘”轴 (忘得不够) 或“保留”轴 (忘得太多) 上。
详细表格结果
下表 1 显示了详细数据。灰色行代表作弊的方法 (使用了保留数据 \(D_r\)) 。白色行仅使用遗忘数据 (\(D_f\)) ,这是 DELETE 针对的严格设置。

表 1 的关键要点:
- DELETE (Ours) 在 CIFAR-10 和 CIFAR-100 的遗忘集 (\(Acc_{ft}\)) 上实现了 0% 的准确率。
- 关键是,它在 CIFAR-10 的保留集 (\(Acc_{rt}\)) 上保持了 95.03% 的准确率。这高于所有其他方法,并且非常接近重训练模型 (95.20%)。
- 像 “Negative Gradient” 和 “Boundary Shrink” 这样的方法在保留准确率上显著下降,或者未能完全擦除目标类别。
稳定性和多类遗忘
基于优化的遗忘方法的一个主要问题是不稳定性——结果在不同运行之间可能差异很大。

图 2 显示 DELETE (红色框) 具有极低的方差。它每次都能稳定运行。
此外,遗忘并不总是只针对一个类别。有时你需要一次性移除 5、10 或 20 个类别。

表 4 表明,随着需要遗忘的类别数量增加,其他方法会崩溃。“Boundary Expand” 和 “Influence Unlearn” 的保留准确率暴跌至 40-50%。即使在同时移除 20 个类别时,DELETE 仍保持较高的保留率 (~77%)。
特征空间可视化
神经网络内部的遗忘是什么样子的?我们可以使用 t-SNE 来可视化特征嵌入。

在图 4 中:
- Original (原始) : 所有类别的聚类清晰。
- Retrain (重训练) : 目标类别聚类 (三角形) 消失/分散。
- Boundary Shrink (边界收缩) : 聚类变得混乱;其余类别之间的边界被破坏。
- Ours (DELETE) : 目标类别被成功打散 (擦除) ,但其余类别的聚类保持紧密且分离良好 。 这直观地展示了为什么 DELETE 能保持如此高的准确率。
超越分类: 下游应用
该论文断言 DELETE 是一种“通用”方法。为了证明这一点,他们将其应用于三个截然不同的下游任务。
1. 人脸识别中的隐私保护
在人脸识别中,遗忘是一项隐私要求。模型必须忘记特定人的身份。

使用 Grad-CAM 热力图 (图 5) ,我们可以看到模型的关注点。
- 行 (a) 遗忘个体: 原始模型聚焦于面部。重训练模型和 DELETE (Ours) 模型移开了视线或失去了焦点,表明身份已被遗忘。
- 行 (b) 保留个体: 至关重要的是,DELETE 仍然清晰地聚焦在它应该记住的人的脸上,而不像其他方法那样可能会降低一般的人脸检测能力。
2. 后门防御
“后门”攻击涉及用触发器 (例如,角落里的一个小方块) 投毒训练数据,以便当触发器出现时模型会错误分类图像。DELETE 可用于“遗忘”中毒样本。

在图 S7 中,“Original”列显示模型痴迷于微小的触发器 (红框) 。在对中毒数据应用 DELETE 后,“Ours”列显示模型忽略了触发器,转而关注实际物体 (鸟或车) 。
3. 语义分割
这可能是视觉上最令人印象深刻的结果。语义分割涉及对图像中的每个像素进行分类。

在图 S8 中,模型被要求遗忘“汽车”类别。
- Original (原始) : 清晰地分割出汽车。
- Ours (DELETE) : 汽车实际上从分割掩码中消失了。模型将它们视为背景,但完美保留了行人的分割 (右下角) 。这证明了该方法适用于复杂的密集预测任务,而不仅仅是简单的分类。
结论
“DELETE” 论文为机器遗忘迈出了重要的一步。通过在数学上分解遗忘损失,作者准确地找出了以前方法失败的原因: 它们过于关注遗忘,而忽视了剩余知识的结构。
解耦蒸馏方法提供了一个稳健的解决方案:
- 严格隐私: 不需要访问原始的“保留”数据。
- 高性能: 能够匹敌从头开始重训练的“黄金标准”。
- 通用性: 适用于各种架构和任务。
随着隐私法规的收紧和对安全、可更新 AI 需求的增长,像 DELETE 这样的方法将成为机器学习工程师工具箱中的必备工具。我们现在拥有了精准的工具,可以将一本书从书架上取下,而不必为了移除它而烧掉整个图书馆。
](https://deep-paper.org/en/paper/2503.23751/images/cover.png)