论文阅读笔记: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 能够忘记特定类别,而对其他类别的影响最小。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C# 从基础神经元到实现在0~9数字识别

训练图片:mnist160 测试结果:1000次训练学习率为0.1时,准确率在60%以上 学习的图片越多,训练的时候越长(比如把 epochs*10 10000或更高时)效果越好 using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Windo…

蓝桥杯 5.字符串

蓝桥杯 5.字符串 文章目录 蓝桥杯 5.字符串KMP&字符串哈希Manacher编程138-148字典树基础01Trie编程149-155 KMP&字符串哈希 KMP算法 字符串匹配算法, 用于匹配**模式串P(短)和文本串S(长)**中出现的所有位置, 例如, S “ababac”, P “aba”, 那么出现的所有位置就…

AI智能体与大语言模型:重塑SaaS系统的未来航向

在数字化转型的浪潮中,软件即服务(SaaS)系统一直是企业提升效率、优化业务流程的重要工具。随着AI智能体和大语言模型(LLMs)的迅速发展,SaaS系统正迎来前所未有的变革契机。本文将从AI智能体和大语言模型对…

Jmeter聚合报告导出log文档,Jmeter聚合报告导出到CSV

Jmeter聚合报告导出log文档 在Filename中输入 EKS_perf_log\\${type}_log\\${__P(UNIQUEID,${__time(YMDHMS)})}\all-graph-results-log.csv 可以得到执行的log,文件夹包含时间戳 Jmeter聚合报告导出到CSV 点击Save Table Data,保存到CSV文件中

基于SpringBoot的“古城景区管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“古城景区管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统整体功能图 系统首页界面 系统注册界面 景…

第五项修炼:打造学习型组织

“没有哪个教室比得上一个充满问题的团队。” — 彼得圣吉 最近有伙伴问我们,如何在组织中践行《第五项修炼:打造学习型组织》?我想和大家分享的是,这不仅仅是“学习”,更是通过结构和行为的深度结合,推动绩…

ubuntu22.04的docker容器中安装ssh服务

ubuntu22.04的docker容器中安装ssh服务,以便外部可以连接到容器中操作。 rootnode15:~# cat /etc/issue Ubuntu 22.04.5 LTS \n \l rootnode15:~# docker ps|grep qwen 7d3c36c37d36 vllm/vllm-openai:v0.7.3 "python3 -m …

LabVIEW 中 codeGenEngine.llb 工具库

codeGenEngine.llb 是 LabVIEW 2019 安装目录下C:\Program Files (x86)\National Instruments\LabVIEW 2019\vi.lib\Platform\路径下的工具库,主要用于代码生成相关的操作,帮助开发者在 LabVIEW 项目中便捷地实现自动化代码生成任务,提高开发…

基于LangChain4j调用火山引擎DeepSeek R1搭建RAG知识库实战指南

基于LangChain4j调用火山引擎DeepSeek R1搭建RAG知识库实战指南 基于LangChain4j调用火山引擎DeepSeek R1搭建RAG知识库实战指南 基于LangChain4j调用火山引擎DeepSeek R1搭建RAG知识库实战指南一、注册火山引擎账号二、RAG技术核心原理三、环境与工具准备1. 核心组件2. 依赖配…

基于YOLO11深度学习的医学X光骨折检测与语音提示系统【python源码+Pyqt5界面+数据集+训练代码】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

Unity百游修炼(2)——Brick_Breaker详细制作全流程

一、项目简介 Brick Breaker 是一款经典的打砖块游戏,本次案例将使用 Unity 引擎来实现该游戏的核心功能。 游戏画面如下: Brick_ breaker 二、项目结构概览和前期准备 (1)在 Unity 项目视图中,我们可以看到几个重要…

DeepSeek开源周Day2:DeepEP - 专为 MoE 模型设计的超高效 GPU 通信库

项目地址:https://github.com/deepseek-ai/DeepEP 开源日历:2025-02-24起 每日9AM(北京时间)更新,持续五天 (2/5)! ​ ​ 引言 在大模型训练中,混合专家模型(Mixture-of-Experts, MoE)因其动…

前端面试基础知识整理(一)

1.vue生命周期 beforeCreate 创建 注入依赖 初始化非响应式数据 beforeCreate created 数据请求,初始化数据 设置全局时间监听 beforeMount挂载 模版编译完成后的调试 操作 dom初始化 操作dom初始化第三方插件 更新 在更新前查看 DOM 状态,不建议修改数据…

【单片机】MSP430MSP432入门

文章目录 0 前言1 开发方式选择2 CCS和开发相关软件3 Keil开发MSP4324 IAR for 430开发MSP4305 总结 0 前言 最近因为想学DSP,所以把之前卸载的CCS给装回来了,手头也还有之前电赛剩下的MSP430和MSP432的板子,由于年代久远,想着花点…

【Linux探索学习】第二十七弹——信号(上):Linux 信号基础详解

Linux学习笔记: https://blog.csdn.net/2301_80220607/category_12805278.html?spm1001.2014.3001.5482 前言: 前面我们已经将进程通信部分讲完了,现在我们来讲一个进程部分也非常重要的知识点——信号,信号也是进程间通信的一…

74道高级Java面试合集,java开发模式面试题

前言 今天我们来说说Redis为什么高性能?如何做高可用? Redis为什么这么快? Redis是单线程的,避免了多线程的上下文切换和并发控制开销;Redis大部分操作时基于内存,读写数据不需要磁盘I/O,所以速…

【江科协-STM32】5. 输出比较

1. 输出比较简介 OC(Output Compare)输出比较。 输出比较可以通过CNT(CNT计数器)与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形。 :::tip CNT计数器是正向计数器。它只能正向累…

轻量级日志管理平台Grafana Loki

文章目录 轻量级日志管理平台Grafana Loki背景什么是Loki为什么使用 Grafana Loki?架构Log Storage Grafana部署使用基于 Docker Compose 安装 LokiMinIO K8s集群部署Loki采集Helm 部署方式和案例 参考 轻量级日志管理平台Grafana Loki 背景 在微服务以及云原生时…

使用 Postman 访问 Keycloak 端点

1. 引言 在本教程中,我们将首先快速回顾 OAuth 2.0、OpenID 和 Keycloak。然后,我们将了解 Keycloak REST API 以及如何在 Postman 中调用它们。 2. OAuth 2.0 OAuth 2.0 是一个授权框架,它允许经过身份验证的用户通过令牌向第三方授予访问…

WEB1~6通杀

##解题思路 这六道题,通杀了,只因为是PHP的特性 来,看web6,过滤最复杂的正则,而且不能解析成大于999的值,但是,php是弱类型的语言,我只要输入任意字符数字,最终值就为0&…