LegoNet: A Fast and Exact Unlearning Architecture

精简回忆版

固定encoder+mutiple adapters
在这里插入图片描述
encoder相当于特征提取器,采用预训练模型,在本模型训练过程中encoder不变(固定encoder)。
训练过程:
一开始,初始化adapters 的keys,使其分布近似于Encoding distribution,固定keys。每次找出与样本点距离最近的k个adapters进行预测,最后集成得到结果。
在训练过程中,当每个样本激活其k个最近的adapters时,我们记录用于激活不同adapters的样本集。
Unlearning过程:
当一个训练样本要被删除时,LegoNet定位并重新训练受影响的adapters(k个)以消除样本的影响。

Related Work

1.SISA

在SISA中,随着分片数量的增加,重新训练所涉及的样本会减少,根据经验,性能会显著下降。为了保持可接受的性能,可以对数据进行分片的程度受到严格限制。因此,基于SISA的方法仍然不够有效,特别是在训练数据量很大的情况下。

2.近似遗忘(Approximate unlearning)

与精确遗忘方法相比,近似遗忘方法通常更有效。然而,这种基于梯度的方法受到“凸”条件的限制,因此很难应用于深度神经网络等非凸模型

3.Adapter

现在流行预训练+微调。
基于预训练模型,adapter 给出了一个新的思路,即能否在模型中插入一些少量的参数,在下游某个任务微调时只对这些参数进行训练,而保持预训练模型原有的参数不变,可以让我们达到和微调整个模型一样的效果
在《Parameter-Efficient Transfer Learning for NLP》这篇论文中,在Transformer中加入了两个adapter,进行微调时,原来的Transformer的参数都是锁住的,只有adapter层的参数在学习。
在这里插入图片描述
adapter层参数量和大模型相比非常少,例如在175B的GPT3中使用LoRa,需要训练的参数只要万分之一。因此训练成本大幅降低。还可解决持续学习中灾难性遗忘的问题。

Our Work

本文提出了一种采用“固定encoder+mutiple adapters”结构的新型网络。我们固定了LegoNet的编码器(the backbone for representation learning),以减少在遗忘过程中需要重新训练的参数。由于编码器占据了模型参数的很大一部分,因此显著提高了学习效率。然而,固定编码器会导致显著的性能下降。为了补偿性能损失,我们采用了多个adapters的集成,这些adapters是通过编码(即编码器的输出)来推断预测的独立子模型。此外,我们设计了adapters的激活机制,以进一步权衡遗忘效率与模型性能之间的关系。这种机制保证了每个样本只会影响很少的adapters,因此在遗忘过程中,需要重新训练的参数和样本都会减少。

Details

架构

在这里插入图片描述
LegoNet由一个固定的编码器和n个独立的adapter组成。

Fixed Encoder

编码器作为LegoNet的主干,是用于表示输入样本的特征抽取器。具体地说,它将样本映射到编码空间。在这里,编码器的结构的选择相对自由。为了处理不同类型的输入,我们可以采用不同的体系结构,如BERT:用于文本任务或ResNet:用于图像任务。

Multiple Adapters

每个adapter都包含一个预设key,以表示其在编码空间中的地址,每个独立的子模型基于encoder 的输出进行预测。通常,每个adapter的子模型只需要简单的结构,例如linear layer

Training

对于编码器来说,在被LegoNet采用之前,它应该在外部数据上进行预训练,以确保它有足够的表示能力。外部数据最好与目标任务相关,本文中做的图像分类任务,所以pretrain外部数据集用的ImageNet
我们首先采用蒙特卡洛采样,初始化keys,使adapters的keys的分布与encoder编码空间分布相似。
在这里插入图片描述
其中,ξj表示轻微的随机扰动。采用ξj,保证样品信息不直接记录在LegoNet中。初始化后,adapters的keys是固定的。
然后,我们就可以计算每个样本的k近邻adapters,被选择与激活。本文实验中采用l2范数
在这里插入图片描述
在训练过程中,当每个样本激活其k个最近的adapters时,我们记录激活不同adapters的样本集。
这些样本集的大小大约服从均匀分布,因为编码空间中样本密集的地方adapter更多(类似地,样本稀疏的地方adapter更少)。每个adapter样本的平衡有利于子模型的训练质量,因为它减轻了子模型缺乏足够训练数据的情况。此外,它还避免了通过大量样本重新训练子模型,从而简化了后续的学习任务
这样,每个子模型就训练完成了。
Loss Function:
在这里插入图片描述
特别地,独立训练保证了adapter aj只会受到对应样本的影响。
最后的推理由k个adapter集成:
在这里插入图片描述

Unlearning

当一个训练样本要被删除时,LegoNet定位并重新训练受影响的adapters(k个)以消除样本的影响。
在这里插入图片描述

与SISA相比

在这里插入图片描述
假设SISA将训练数据分成5个不相交的分片。然后,SISA采用这5个分片独立训练5个模型。每个模型的体系结构都可以看作是1个encoder连接了1个adapter。而LegoNet为n个adapter共享encoder。
与SISA相比,LegoNet具有更高的遗忘效率。
一方面,LegoNet几乎没有需要重新训练的参数。为了消除一个样本,SISA需要重新训练一个encoder和一个adapter,而LegoNet需要重新训练k个adapter。由于k一般较小,encoder的参数明显大于adapter的参数。encoder的参数甚至比k个adapter的参数还要多。
另一方面,在保持可接受的性能的同时,LegoNet可以进一步减少重新训练样本的数量。假设训练数据有n个样本。对于SISA,每个模型预计训练N/s个样本。对于LegoNet,每个adapter预计训练k×N/n个样本。虽然LegoNet需要重新训练k个adapter来遗忘一个样本,但由于k>>n, LegoNet需要重新训练的样本量k×N/n < n /s。这要归功于激活机制的设计。LegoNet的激活机制是基于编码空间中的距离。与SISA随机分配样本训练模型的方法相比,我们的方法使adapter的学习更集中在编码空间的小区域上。因此,我们的adapter可以有效地保持性能,同时需要更少的样本

Future Work

  1. Encoder的改进
  2. 更好的激活机制。本文中采用的是k近邻。
  3. 由于LegoNet具有很强的控制样本的影响的能力,除了重新训练(adapter)之外,可能还有好的策略来实现遗忘。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值