返回列表

6th Place Solution for the NeurIPS 2023 - Machine Unlearning Competition

583. NeurIPS 2023 - Machine Unlearning | neurips-2023-machine-unlearning

开始: 2023-09-11 结束: 2023-11-29 AI安全与对抗 数据算法赛
第六届 NeurIPS 2023 机器学习遗忘竞赛第6名解决方案

第六届 NeurIPS 2023 机器学习遗忘竞赛第6名解决方案

作者:Stathis K.、Vasileios Perifanis、Christos Chrysanthos Nikolaidis、Nikos Komodakis、Pavlos Efraimidis | 发布时间:2023-12-01

首先,我们要感谢组织委员会,这是一次难以置信的经历,我们非常感谢您和您的团队为举办这次活动所付出的所有努力和心血。

上下文

方法概述

在我们的解决方案中,我们提出了一种简单而有效的机器学习遗忘方法,该方法使用选择性模型参数重置、采用知识蒸馏的预热阶段以及最后的微调阶段。具体而言,我们的方法侧重于重置在完整训练集上训练的原始模型的第一层和最后一层。通过重置第一层,我们能够对数据的初始隐藏表示造成干扰,直接导致模型性能下降,从而促进对先前训练数据的遗忘。重置最后一层使模型能够偏离其原始输出模式,允许其逼近新的输出分布,这可以产生与在特定数据子集(即保留集)上训练的模型相似的输出分布。

  • 我们遵循入门笔记本(run-unlearn-finetune)中提供的数据处理流程,没有进行额外的数据增强。
  • 我们提交了两个最终版本:一个使用整个验证集,另一个仅使用前两个类别的样本进行预热阶段。请注意,这两个类别是遗忘集中唯一包含样本的类别。
  • 我们的方法不需要遗忘集。

提交详情

CIFAR-10的洞察

初始阶段包括重置原始模型的第一层和最后一层。选择这两层是因为第一层显著影响模型的其余层,而最后一层决定了模型的最终输出分布。通过这种重置步骤,我们使模型能够偏离其原始状态。

此外,在CIFAR-10数据集上的本地实验实证观察表明,这两层在完整训练集上训练的模型权重与在较小子集(即保留集)上从头开始训练的模型权重之间表现出主要为负的余弦相似度。

因此,在全局权重参数方面,这意味着两个模型在预测性能方面找到了相似的解决方案,但方向不同(参见CIFAR-10数据集上预训练模型和保留集重训练模型之间的"权重相似性"图)。

权重相似性

此外,我们测量了预训练模型和保留集上从头训练模型之间激活分布的差异。该实验表明,即使在激活方面也明显存在余弦相似性的差异(见下图)。这些观察结果为我们重置原始模型的第一层和最后一层参数奠定了基础。

MaxPooling层后的激活相似性

AvgPool层后的嵌入相似性

最后,我们对基线遗忘算法进行了实验,包括简单微调、仅重置最后一层的微调、eu-k和cf-k遗忘[1]、通过在遗忘集上最大化损失进行遗忘[2]、使用不合格教师进行遗忘[3]以及SCRUB[4],后者最小化学生模型与教师在保留集上的发散,并最大化在遗忘集上的发散。在所有上述情况下,与基线微调方法相比,这些方法均未获得显著更高的公开分数。

在重置网络的第一层和最后一层之后,我们使用验证集包含了一个快速预热阶段。该阶段的目标是通过最小化原始预训练模型(教师)和重新初始化模型(学生)输出之间的Kullback-Leibler(KL)散度,为学生模型进入第三阶段做准备。

最后阶段包括在保留集上微调学生模型。在此阶段,我们结合了三种类型的损失:标准交叉熵损失、软交叉熵损失和KL散度。交叉熵损失确保模型使用保留集的硬标签在完成基础任务上的准确性。软交叉熵损失涉及将学生模型的软化预测与教师模型的软标签进行比较。结合软交叉熵的KL散度损失有助于快速知识迁移和更广泛的信息捕获。此外,还集成了余弦退火调度器以优化训练动态,促进更快收敛和高效学习。下图展示了所提流程的概览。

遗忘流程可视化

最终提交

如前所述,我们选择了流程的两种变体。第一种使用整个验证集,第二种仅在子集上采用预热阶段,特别是使用前两个类别的样本。这种策略的灵感来源于遗忘集的分布,其仅包含前两个类别(0,1)的样本。

为了提取属于前两个类别的样本,我们使用了以下函数:

def get_val_loader(batch_size):
    val_ds = HiddenDataset(split='validation')
    samples = []
    for sample in val_ds:
        y = sample["age_group"]
        if int(y) == 0 or int(y) == 1:
            samples.append(sample)
    val_loader = DataLoader(samples, batch_size=batch_size, shuffle=True)
    return val_loader

这两种方法的得分总结如下表:

预热方法 公开分数 私有分数
所有类别 0.08383 0.07219
类别 0,1 0.08324 0.07831

值得注意的是,两种方法的公开分数几乎相当。然而,使用验证集中前两个类别进行模型预热的方法在隐藏测试集上表现出改进的性能。

实用技巧

  • 重置部分模型参数
  • 微调阶段的CosineAnnealingLR调度

策略

  • 微调阶段的三重优化损失
  • 两个阶段均使用高温

未生效的方法

  • 类别权重的使用(尽管在原始训练流程中使用)
  • 未采用重置的算法得分较低
  • 重新训练的各种变体(从ImageNet预训练模型开始导致分数较低或抛出异常,可能由于梯度爆炸)

结论

总之,通过这次竞赛,我们对机器学习遗忘有了更好的理解,这既具有启发性又充满挑战。也特别感谢我们团队中非Kaggle参与者Nikos Komodakis的贡献。

参考文献

  1. Goel, S., Prabhu, A., Sanyal, A., Lim, S. N., Torr, P., & Kumaraguru, P. (2022). Towards adversarial evaluations for inexact machine unlearning. arXiv preprint arXiv:2201.06640.
  2. Golatkar, A., Achille, A., & Soatto, S. (2020). Eternal sunshine of the spotless net: Selective forgetting in deep networks. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 9304-9312).
  3. Can bad teaching induce forgetting? Unlearning in deep networks using an incompetent teacher. In Proceedings of the AAAI Conference on Artificial Intelligence (Vol. 37, No. 6, pp. 7210-7217).
  4. Kurmanji, M., Triantafillou, P., & Triantafillou, E. (2023). Towards Unbounded Machine Unlearning. arXiv preprint arXiv:2302.09880.

团队

同比赛其他方案