论文阅读笔记:Continual Forgetting for Pre-trained Vision Models

论文阅读笔记:Continual Forgetting for Pre-trained Vision Models

  • 1 背景
  • 2 创新点
  • 3 方法
  • 4 模块
    • 4.1 问题设置
    • 4.2 LoRA
    • 4.3 概述
    • 4.4 GS-LoRA
    • 4.5 损失函数
  • 5 效果
  • 6 结论

1 背景

出于隐私和安全考虑,如今从预先训练的视觉模型中删除不需要的信息的需求越来越明显。在实际场景中,擦除请求随时来自用户和模型所有者。这些请求通常形成一个序列。因此,在这种设置下,预计会不断从预训练模型中删除选择性信息,同时保留其余信息。作者将这个问题定义为持续遗忘,并确定了两个关键挑战。

(i) 对于不需要的知识,高效和有效的删除至关重要。

(ii) 对于剩余的知识,遗忘程序带来的影响应该是最小的。

为了解决这些问题,提出了Group Sparse LoRA(GS-LoRA)。具体来说,对于 (i),使用 LoRA 模块为每个遗忘任务独立微调 Transformer 块中的 FFN 层;对于 (ii),采用简单的组稀疏正则化,可以自动选择特定的 LoRA 组并将其他组归零。GS-LoRA 有效、参数高效、数据高效且易于实施。

随着现在预训练模型变得越来越大,需要更多的训练数据。这些数据通常是通过各种方式收集的,例如 Internet、书籍、公开可用的数据集和手动标记。在大量数据中,经常存在错误或隐私敏感信息,预训练模型可能会从中学习。例如,ImageNet Roulette 项目显示模型倾向于种族主义、厌女症和残忍等。此外,随着公众对隐私保护意识的提高和隐私法规的更新,个人现在要求立即删除任何与隐私相关的信息。因此,在收到删除请求时,需要使用实用的模型擦除技术。在实际场景中,这些请求通常随时来自用户和模型所有者,并自然而然地形成一个序列。在这种设置下,预计会不断从预训练模型中删除选择性信息,同时保留其余信息。作者将这个新问题确定为持续遗忘,并在图1中进行了说明,其中隐私和错误知识需要依次从预训练模型中删除。这项任务对于在实际应用中维护隐私和减少不需要的模型偏差(例如性别和种族歧视)具有重要意义。
在这里插入图片描述

持续学习旨在使模型在不忘记以前学习的信息的情况下获得新知识 。这是一种特别适用于动态和不断变化的场景的学习范式。研究人员设计了三种策略来实现这一目标,包括基于排练的方法、基于正则化的方法和基于结构的方法。这三种持续学习策略经常结合起来以提高表现。

本文提出的 GS-LoRA 属于基于结构的方法类别。然而,本文的问题与持续学习不同,因为本文的目标是不断删除,而不是向模型中添加新知识。

2 创新点

(1)作者是第一个提出持续遗忘问题的人,这在实际场景中对于快速编辑模型和隐私保护至关重要

(2)为了解决这个问题,首先确定了两个挑战,并提出了 GS-LoRA 来实现高效和有效的遗忘,同时保持其余部分的性能

(3)对人脸识别和目标检测的广泛实验表明,GS-LoRA 有效地为特定类别提供服务,同时在其余类别上保持高性能。

本质上就是使用了LoRA+Group Lasso。

3 方法

为此,本文提出了 Group Sparse LoRA (GSLoRA)。具体来说,为了实现对不需要的知识的有效遗忘,利用LoRA来微调Transformer模块中的FFN模块,其灵感来自参数高效微调(PEFT)技术。为了减轻对剩余知识的灾难性遗忘,作者使用组稀疏正则化器来实现对 FFN 模块的稀疏和准确修改,因为观察到微调较少的参数对减轻灾难性遗忘是有效的。这类似于在模型上进行微创手术,而不是进行大手术。GS-LoRA 有效、参数高效、数据高效、易于实现,并且适用于大型模型。为了验证本文提出的 GS-LoRA 的有效性,首先对人脸识别进行实验,因为它是一项基本的隐私敏感任务,然后在更通用的任务(即对象检测)上对其进行评估。从经验上讲,GS-LoRA 在这两种环境中都表现良好,表明本文的方法是一个通用框架,在各种视觉任务中具有最少的领域知识和很少的归纳偏差。

4 模块

4.1 问题设置

本文提出了一个称为持续遗忘的新问题,它涉及从预先训练的模型中进行选择性地删除特定知识,同时保留其余知识的性能。在本节中,首先考虑最简单的情况,即只有一个任务需要忘记,然后扩展到 continual 形式。

设 M 为在数据集 D 上预训练的模型,将模型的映射关系表示为 f M : X D → Y D f_M:X_D → Y_D fM:XDYD ,其中 X D X_D XD Y D Y_D YD 分别表示输入集和输出集。本文的目标是有选择地丢弃模型中的某些知识,同时保留其余知识。让 D f D_f Df D r D_r Dr 表示包含要被遗忘和保留的知识的数据集。鉴于 ∣ D r ∣ |D_r| Dr 在实际场景中通常很大,并且再训练过程非常耗时,因此需要 ∣ D r ∣ + ∣ D f ∣ ≪ ∣ D ∣ |D_r|+ |D_f|\ll |D| Dr+DfD。在忘记之前,模型 M 在 D f D_f Df D r D_r Dr 上都表现良好,即
在这里插入图片描述

遗忘算法 F 修改模型以获得 M ′ = F ( M , D f , D r ) M'=F(M, D_f, D_r) M=F(M,Df,Dr) 和新的映射关系 f M ’ f_{M’} fM 满足
在这里插入图片描述

现在,将问题扩展到一个连续形式,其中模型需要依次忘记特定的知识。设 D r = { D r t } D_r = \{D_{r_t}\} Dr={Drt} D f = { D f t } D_f = \{D_{f_t}\} Df={Dft} ,其中 t = 1 , 2 , ⋅ ⋅ ⋅ , T t = 1, 2, ···, T t=1,2,⋅⋅⋅,T 代表两个数据集序列,其中 T T T 是遗忘任务的数量, D f t / r t = { ( x f t / r t i , y f t / r t i ) i = 1 n t } D_{f_t/r_t} = \{(x^i_{f_t/r_t}, y^i_{f_t/r_t})^{n_t}_{i=1}\} Dft/rt={(xft/rti,yft/rti)i=1nt} 是第 t 个任务被遗忘或保留的数据集, x f t / r t i ∈ X f t / r t x^i_{f_t/r_t} ∈ X_{f_t/r_t} xft/rtiXft/rt 是一个输入, y f t / r t i ∈ Y f t / r t y^i_{f_t/r_t} ∈ Y_{f_t/r_t} yft/rtiYft/rt 是对应的标签。遗忘算法 F 从 M 开始按顺序处理擦除请求,并生成模型序列 M f 1 , M f 2 , ⋅ ⋅ ⋅ , M f t , ⋅ ⋅ ⋅ , M f T M_{f_1}, M_{f_2},···, M_{f_t}, ···, M_{f_T} Mf1,Mf2,⋅⋅⋅,Mft,⋅⋅⋅,MfT ,其中 M f t M_{f_t} Mft 表示第 t 个遗忘任务后修改后的模型。在处理任务 T t T_t Tt 后,模型 M f t M_{f_t} Mft D f i D_{f_i} Dfi 上表现不佳,但在剩余部分保持了原来的性能,即 f M t f_{M_t} fMt 成立相应的映射关系

在这里插入图片描述

4.2 LoRA

预训练模型中的权重矩阵具有非常低的内在秩,并利用低秩分解来实现参数更新。对于权重矩阵 W ∈ R d × k W∈R^{d×k} WRd×k ,它在 W = W + ∆ W = W + B A W=W+∆W=W+BA W=W+W=W+BA 之后更新,其中 B ∈ R d × r B∈R^{d×r} BRd×r A ∈ R r × k A∈R^{r×k} ARr×k 是低秩矩阵, r ≪ m i n { d , k } r≪min\{d, k\} rmin{d,k} 是矩阵 B 和 A 的秩。只有低秩的矩阵是可训练的,而矩阵 W 在训练期间保持冻结状态。LoRA 可以添加到 Multi-Head Attention 模块的线性投影矩阵或 Transformer 模块的 Feed-Forward Network(FFN)模块中。

4.3 概述

本文提出了具有选择性遗忘损失和知识保留损失的群稀疏 LoRA (GSLoRA) 来实现持续遗忘。图2显示了 GS-LoRA 的整体工作流。为了实现高效的遗忘,使用 LoRA 来微调 Transformer 模块中的 FFN 模块。为了减少对剩余知识的灾难性遗忘,较小的网络变化是首选。因此,作者使用组稀疏正则化来选择和修改较少的块。为了实现式-3中的优化目标,使用选择性遗忘损失来最大化被遗忘类的原始损失,并使用知识保留损失来最小化其余类的损失。
在这里插入图片描述

4.4 GS-LoRA

(1)基于LoRA的模型微调

根据 Geva 等人 [21] 的发现,Transformer 块中的 FFN 层存储了大量知识,因此需要修改 FFN 模块以实现知识擦除。虽然直接修改这些层在理论上是可行的,但由于 FFN 层中的参数数量众多,因此效率低下。为了减少可学习的参数,作者将一组 LoRA 模块合并到每个 Transformer 模块的 FFN 中,并且仅使这些 LoRA 模块可训练。

假设 x x x 是第 l l l 个 FFN 模块的输入,数学形式可以表示为:
在这里插入图片描述

其中 W 1 ( l ) , W 2 ( l ) , b 1 ( l ) , b 2 ( l ) W^{(l)}_1, W^{(l)}_2, b^{(l)}_1, b^{(l)}_2 W1(l),W2(l),b1(l),b2(l) 分别是预训练模型中两个全连接层的权重和偏差。使用 LoRA 来微调 FFN 模块的权重
在这里插入图片描述

其中 W 1 t ( l ) {W_1}^{(l)}_t W1t(l) W 2 t ( l ) {W_2}^{(l)}_t W2t(l) 表示任务 T t T_t Tt 后第 l l l 个 FFN 模块的权重, B 1 i ( l ) {B_1}^{(l)}_i B1i(l) A 1 i ( l ) {A_1}^{(l)}_i A1i(l) B 2 i ( l ) {B_2}^{(l)}_i B2i(l) A 2 i ( l ) {A_2}^{(l)}_i A2i(l)表示 i = 1 , 2 , ⋅ ⋅ ⋅ , t i = 1,2,···,t i=1,2,⋅⋅⋅,t 引用任务 T i T_i Ti 中相应的 LoRA 矩阵。 O O O 是零矩阵。

请注意,输出 FFN 层被冻结,以确保遗忘发生在主干中并且难以恢复。

(2)组稀疏选择

为了减少灾难性遗忘并自动实现精确修改,引入了一种组稀疏选择策略,该策略允许选择更少的 Transformer 块。尽管有很多方法可以进行选择,如路由器 、元学习、神经架构搜索,但本文使用group lasso,它在为特定组选择参数时以其简单和有效而闻名,同时将其他组设置为零。假设在任务 T t T_t Tt 中添加到第 l l l 个 Transformer 块的 LoRA 矩阵是 B 1 i ( l ) {B_1}^{(l)}_i B1i(l) A 1 i ( l ) {A_1}^{(l)}_i A1i(l) B 2 i ( l ) {B_2}^{(l)}_i B2i(l) A 2 i ( l ) {A_2}^{(l)}_i A2i(l)。那么 group sparse 正则化的优化目标可以表示如下
在这里插入图片描述

在这里, L d a t a L_{data} Ldata 表示数据的损失,这将在第 4.3 节中详细说明, L s t r u c t u r e L_{structure} Lstructure 是稀疏损失组, α α α 用作调节稀疏强度的超参数。

一组权重的组稀疏损失可以表示为
在这里插入图片描述

其中 G 是组数, L g s ( l ) L^{(l)}_{gs} Lgs(l) 是第 l l l 组的组稀疏损失。作者将一个 Transformer 块中的 LoRA 权重视为一组。因此,第 l l l 组中的组稀疏损失可以写为
在这里插入图片描述

这里, ∥ ⋅ ∥ F ∥·∥_F F 是 LoRA 矩阵的 Frobenius 范数,即平方和开根号, t t t 表示任务 T t T_t Tt 。这是正则项。

Group Lasso可以参考https://zhuanlan.zhihu.com/p/612075458。

(3)Sparsity Warmup

深度学习模型倾向于收敛到局部最小值。当施加高稀疏性约束时,模型逃避局部最小值的能力受到阻碍,从而阻止了遗忘的实现。但是,实现稀疏更新需要相对较大的 α α α 。作者采用热身策略来解决这一冲突。作者利用逐步 α α α 来实现有效的遗忘,同时确保稀疏修改。数学表达式可以写成:
在这里插入图片描述

其中, K K K 是超参数。该模型在 k 个 epoch 中转义局部最小值,而不会丢失结构,然后执行群稀疏化以获得稀疏修改。

4.5 损失函数

在本节中,将讨论式-6中的数据丢失,并引入选择性遗忘损失和知识保留损失来处理持续遗忘问题。

(1)选择性遗忘损失

在每个任务 T t T_t Tt 中 ,模型需要忘记数据 D f t = ( X f t , Y f t ) D_{f_t}=(X_{f_t}, Y_{f_t}) Dft=(Xft,Yft) 中存储的知识。为了实现遗忘,优化目标是
在这里插入图片描述

其中,W是参数; L L L 是原始损失函数; f M t − 1 f_{M_{t−1}} fMt1 是在任务 t − 1 t−1 t1 结束时获得的映射函数。一个直观的想法是执行负损失,即 L f o r g e t = − L ( f M t − 1 ( X f t ) , Y f t ) L_{forget} = −L(f_{M_{t−1}}(X_{f_t}), Y_{f_t}) Lforget=L(fMt1(Xft),Yft) 。然而,简单地在原始损失中添加减号会导致爆炸式的无限损失,这很难优化。因此,采用 ReLU 函数引入一个下限,即
在这里插入图片描述

其中,BND是确定界限的超参数。

(2)知识保留损失

除了忘记选定的知识之外,模型保持其余知识的性能也至关重要。对剩余类的灾难性遗忘仍然存在。为了缓解这个问题,采用了一个小的排练缓冲区 D r t = ( X r t , Y r t ) D_{r_t} = (X_{r_t}, Y_{r_t}) Drt=(Xrt,Yrt),它满足 ∣ D r t ∣ + ∣ D f t ∣ ≪ ∣ D ∣ |D_{r_t}|+|D_{f_t}|≪|D| Drt+DftD 减轻这种不良的遗忘并保持有效的训练。知识保留损失可以写成:
在这里插入图片描述

结合式-10和式-11,得到
在这里插入图片描述

5 效果

单步人脸识别的对比效果可见表1。
在这里插入图片描述

单步目标检测的对比效果可见表2。
在这里插入图片描述

多步人脸识别的对比效果可见表3。
在这里插入图片描述

6 结论

作者对人脸识别、对象检测和图像分类进行了广泛的实验,并证明 GS-LoRA 能够忘记特定类别,而对其他类别的影响最小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/70843.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

车载DoIP诊断框架 --- 连接 DoIP ECU/车辆的故障排除

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…

【爬虫基础】第二部分 爬虫基础理论 P1/3

上节内容回顾:【爬虫基础】第一部分 网络通讯 P1/3-CSDN博客 【爬虫基础】第一部分 网络通讯-Socket套接字 P2/3-CSDN博客 【爬虫基础】第一部分 网络通讯-编程 P3/3-CSDN博客 爬虫相关文档,希望互相学习,共同进步 风123456789&#xff…

Compose 手势处理,增进交互体验

Compose 手势处理,增进交互体验 概述常用手势处理Modifierclickable()combinedClickable()draggable()swipeable()transformable()scrollable()nestedScrollNestedScrollConnectionNestedScrollDispatcher 定制手势处理使用 PointerInput ModifierPointerInputScope…

ue5 3dcesium中从本地配置文件读取路3dtilles的路径

关卡蓝图中获得3dtiles的引用 拉出设置url 设置路径 至于设置的路径从哪里来 可以使用varest读取文件里的接送字符串 path中配置地址 path变量的值为: Data/VillageStartMapConfig.json此地址代表content的地下的data文件夹里的config.json文件 {"FilePath": &quo…

音视频入门基础:RTP专题(12)——RTP中的NAL Unit Type简介

一、引言 RTP封装H.264时,RTP对NALU Header的nal_unit_type附加了扩展含义。 由《音视频入门基础:H.264专题(4)——NALU Header:forbidden_zero_bit、nal_ref_idc、nal_unit_type简介》可以知道,nal_unit…

搜索赋能:大型语言模型的知识增强与智能提升

引言 近年来,大型语言模型(LLM)取得了显著的进展,并在各个领域展现出强大的能力。然而,LLM也存在一些局限性,尤其是在知识库方面。由于训练数据的局限性,LLM无法获取最新的知识,也无…

EX_25/2/24

写一个三角形类,拥有私有成员 a,b,c 三条边 写好构造函数初始化 abc 以及 abc 的set get 接口 再写一个等腰三角形类,继承自三角形类 1:写好构造函数,初始化三条边 2:要求无论如何,等腰三角形类对象&#x…

nv docker image 下载与使用命令备忘

1,系统需求 Requirements for GPU Simulation GPU Architectures Volta, Turing, Ampere, Ada, Hopper NVIDIA GPU with Compute Capability 7.0 CUDA 11.x (Driver 470.57.02), 12.x (Driver 525.60.13) Supported Systems CPU architectures x86_64, ARM…

学习记录:初次学习使用transformers进行大模型微调

初次使用transformers进行大模型微调 环境: 电脑配置: 笔记本电脑:I5(6核12线程) 16G RTX3070(8G显存) 需要自行解决科学上网 Python环境: python版本:3.8.8 大模型&#xff1a…

【Java学习】Object类与接口

面向对象系列五 一、引用 1.自调传自与this类型 2.类变量引用 3.重写时的发生 二、Object类 1.toString 2.equals 3.hashCode 4.clone 三、排序规则接口 1.Comparable 2.Comparator 一、引用 1.自调传自与this类型 似复刻变量调用里面的非静态方法时,都…

OpenEuler学习笔记(三十五):搭建代码托管服务器

以下是主流的代码托管软件分类及推荐,涵盖自托管和云端方案,您可根据团队规模、功能需求及资源情况选择: 一、自托管代码托管平台(可私有部署) 1. GitLab 简介: 功能全面的 DevOps 平台,支持代码托管、C…

Vscode无法加载文件,因为在此系统上禁止运行脚本

1.在 vscode 终端执行 get-ExecutionPolicy 如果返回是Restricted,说明是禁止状态。 2.在 vscode 终端执行set-ExecutionPolicy RemoteSigned 爆红说明没有设置成功 3.在 vscode 终端执行Set-ExecutionPolicy -Scope CurrentUser RemoteSigned 然后成功后你再在终…

Transformer 架构 理解

大家读完觉得有帮助记得关注和点赞!!! Transformer 架构:encoder/decoder 内部细节。 的介绍,说明 Transformer 架构相比当时主流的 RNN/CNN 架构的创新之处: 在 transformer 之前,最先进的架构…

事务的4个特性和4个隔离级别

事务的4个特性和4个隔离级别 1. 什么是事务2. 事务的ACID特性2.1 原子性2.2 一致性2.3 持久性2.4 隔离性 3. 事务的创建4. 事务并发时出现的问题4.1 DIRTY READ 脏读4.2 NON - REPEATABLR READ 不可重复读4.3 PHANTOM READ 幻读 5. 事务的隔离级别5.1 READ UNCOMMITTED 读未提交…

LeetCode热题100- 字符串解码【JavaScript讲解】

古语有云:“事以密成,语以泄败”! 关于字符串解码: 题目:题解:js代码:代码中遇到的方法:repeat方法:为什么这里不用this.strstack.push(result)? 题目&#x…

水利工程安全包括哪几个方面

水利工程安全培训的内容主要包括以下几个方面: 基础知识和技能培训 : 法律法规 :学习水利工程相关的安全生产法律法规,了解安全生产标准及规范。 事故案例 :通过分析事故案例,了解事故原因和教训&#x…

浅谈新能源汽车充电桩建设问题分析及解决方案

摘要: 在全球倡导低碳减排的大背景下,新能源成为热门行业在全球范围内得以开展。汽车尾气排放会在一定程度上加重温室效应,并且化石能源的日渐紧缺也迫切对新能源汽车发展提出新要求。现阶段的新能源汽车以电力汽车为主,与燃油汽…

05-1基于vs2022的c语言笔记——运算符

目录 前言 5.运算符和表达式 5-1-1 加减乘除运算符 1.把变量进行加减乘除运算 2.把常量进行加减乘除运算 3.对于比较大的数(往数轴正方向或者负方向),要注意占位符的选取 4.浮点数的加减乘除 5-1-2取余/取模运算符 1.基本规则 2.c语…

ubuntu:换源安装docker-ce和docker-compose

更新apt源 apt换源:ubuntu:更新阿里云apt源-CSDN博客 安装docker-ce 1、更新软件源 sudo apt update2、安装基本软件 sudo apt-get install apt-transport-https ca-certificates curl software-properties-common lrzsz -y3、指定使用阿里云镜像 su…

0—QT ui界面一览

2025.2.26,感谢gpt4 1.控件盒子 1. Layouts(布局) 布局控件用于组织界面上的控件,确保它们的位置和排列方式合理。 Vertical Layout(垂直布局) :将控件按垂直方向排列。 建议:适…