Raki的读paper小记:Forget-free Continual Learning with Winning Subnetworks

news2024/12/24 20:10:47

Abstract&Introduction&Related Work

  • 研究任务
    用子网络做CL
  • 已有方法和相关工作
    • 彩票假说(LTH)证明了稀疏子网络(称为中奖彩票)的存在,这些子网络保持了密集网络的性能,然而使用迭代修剪方法在持续学习过程中搜索最佳获胜门票需要对每个到达的任务进行重复剪枝和重新训练,这是不切实际的
    • 基于剪枝的持续学习方法:
      • CLNP使用 l 1 l_1 l1 正则化以诱导稀疏性并冻结它们以保持性能。之后,该模型重新初始化未被选择用于未来任务训练的神经元
      • 在给定预训练模型的权重上训练任务特定的二进制掩码。该方法不允许在记忆每个任务的学习掩码时在任务之间进行知识转移,性能在很大程度上取决于主干模型的质量
      • HAT提出了特定于任务的可学习注意力向量,以识别每个任务的重要权重,其中掩码用于在持续学习期间分层累积注意力向量
      • LL-Tickets表明存在一个称为终身票的稀疏子网络,它在持续学习期间的所有任务中都表现良好。当获得的票不能在保持过去任务的性能的同时充分学习新任务时,该方法从当前票中搜索更突出的票。LL票据需要外部数据,以利用先前任务的学习模型最大化知识蒸馏,票扩展过程由另一系列重训练和剪枝步骤组成
  • 面临挑战
  • 创新思路
    • 提出了 Winning Subnetworks(WSN)为每个任务学习一个紧凑的子网络,同时保持先前任务选择的权重不变。所提出的方法不执行任何用于学习子网络的显式修剪。这不仅可以消除灾难性遗忘,还可以将以前的任务学到的知识向前转移到新的任务
  • 实验结论

WSN联合学习与每个任务相关联的子网络相关的模型权重和任务自适应二进制掩码,同时尝试通过重用之前子网络的权重来选择要激活的一小组权重(获胜票),每张中奖彩票产生的二进制掩码被编码为一个N位二进制数字掩码,然后使用霍夫曼编码进行压缩,以实现网络容量相对于任务数量的亚线性增长

与图1a基于修剪的CL方法不同,该方法在预先训练的主干网络中获得特定于任务的子网络,我们逐步学习神经网络中的模型权重和任务自适应二进制掩码(子网络)
为了在模型学习新任务时允许前向转移,我们将学习到的子网络权重重新用于先前任务,但有选择地,而不是使用所有权重(图1b),这可能会导致有偏的转移。
通过冻结先前任务的子网络权重,消除了持续学习过程中灾难性遗忘的威胁,并且不像
图1c 那样,不会受到负迁移的影响,图1c在训练新任务时可以更新先前任务的网络权重。权重的大小通常被用作查找彩票中使用的最佳子网络的修剪标准

然而在CL中,仅依赖权重大小可能是次优的,因为权重是跨类共享的,因此新任务的训练将改变先前任务训练的权重(重用权重)。这将触发雪崩效应,在学习器看来,选择作为后续任务子网络一部分的权重总是更好,这将导致先前任务知识的灾难性遗忘

在CL中,学习器在不改变重复使用的权重的情况下对新任务进行训练是很重要的。为了找到最优子网络,我们将学习参数网络结构的信息解耦为两个独立的可学习参数,即权重和权重分数
权重分数是具有与权重相同形状的二进制掩码,通过选择权重排名得分最高的百分之k的权重,可以找到子网络

WSN在密集网络内选择性地重用和动态地扩展子网络,绿色边是重复使用的权重
在这里插入图片描述

Forget-Free Continual Learning with Winning SubNetworks

神经网络搜索任务自适应获胜票,并仅更新先前任务中未训练的权重。在对每个任务进行训练后,该模型冻结子网络参数,从而使所提出的方法不受设计的灾难性遗忘的影响

让每个权重都与一个可学习的参数相关联,称之为权重分数 s s s,它在数值上决定了与之相关的权重的重要性;也就是具有较高权重分数的权重被视为更重要。

我们找到神经网络的稀疏子网络 θ θ θ,因此它固有地减小了求解器的扩展的大小

图2是WSN如何在全网络中逐步获取二进制权重的过程,对权重的选择依赖于二进制的任务权重mask
在这里插入图片描述

Optimization Procedure for Winning SubNetworks

为了共同学习与每个任务相关的子网络的模型权重和任务自适应二进制掩码,给定目标 L ( ⋅ ) L\left(\cdot\right) L(),我们优化 θ θ θ s s s,其中:

minimize θ , s L ( θ ⊙ m t ; D t ) \underset{\boldsymbol{\theta},\mathsf{s}}{\text{minimize}}\mathcal{L}(\boldsymbol{\theta}\odot\mathbf{m}_t;\mathcal{D}_t) θ,sminimizeL(θmt;Dt)

这种朴素优化程序存在两个问题:

  1. 当为新任务进行训练时更新所有 θ θ θ 会对分配给先前任务的权重造成干扰
  2. 指标函数总是具有0的梯度值;因此,用其损失梯度更新权重分数 s s s 是不可能的。为了解决第一个问题,通过只允许更新先前任务中未选择的权重来选择性地更新权重。为此使用累加二进制掩码 M t − 1 = ∨ i = 1 t − 1 m i \textbf{M}_{t-1}=\lor_{i=1}^{t-1}\textbf{m}_i Mt1=i=1t1mi 当学习任务t时,对于具有学习率 η η η 的优化器, θ θ θ 的更新公式为: θ ← θ − η ( ∂ L ∂ θ ⊙ ( 1 − M t − 1 ) ) \boldsymbol{\theta}\leftarrow\boldsymbol{\theta}-\eta\left(\dfrac{\partial\mathcal{L}}{\partial\boldsymbol{\theta}}\odot(\mathbf{1}-\mathbf{M}_{t-1})\right) θθη(θL(1Mt1))

有效地冻结为先前任务选择的子网络的权重。为了解决第二个问题,我们在反向传递中使用Straight-through Estimator,因为 m t m_t mt 是通过前 c c% c 分数获得的,忽略指示函数的导数,并按如下方式更新权重得分:
s ← s − η ( ∂ L ∂ s ) \mathbf{s}\leftarrow\mathbf{s}-\eta\left(\dfrac{\partial\mathcal{L}}{\partial\mathbf{s}}\right) ssη(sL)

使用单独的权重分数 s s s 作为选择子网络权重的基础,可以在解决当前任务 t t t 时重用先前选择的权重 θ ⊙ m t \boldsymbol{\theta}\odot\textbf{m}_t θmt 中的一些权重,这可以被视为转移学习

同不选择与新任务无关的先前选择的权重,而是从尚未选择的权重集合中选择权重以满足每个任务的目标网络容量,这可以被视为从任务 { 1 , . . . , t − 1 } \{1,...,t-1\}\quad\text{} {1,...,t1} 到任务 t t t 的微调

伪代码:
在这里插入图片描述

Binary Mask Encoding

子网络需要一个二进制掩码来存储每个任务的任务特定权重,使用哈夫曼编码,网络容量相对于任务数量增长速度为亚线性

Experiments

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Conclusions

我们提出了一种受彩票假设启发的连续学习方法,该方法通过为每个任务找到最佳子网络来持续学习网络,假设子网络与密集网络一样工作良好。具体而言,在每次新任务到达时,我们使用单独的可学习权重分数来获得子网络,并存储子网络选择的二进制掩码,这允许为任何先前任务获得特定于任务的子网络。然后,我们使用先前任务的子网络的二进制掩码冻结子网络权重,并在新任务上训练子网络。这个过程消除了灾难性遗忘,并将知识从以前的任务转移到新的任务。我们在标准基准数据集上通过实验验证了我们的方法,在该数据集上,它为所有任务获得了一个紧凑的子网络,大大优于现有的连续学习方法,同时由于网络容量的对数增长,获得了小得多的网络-每个获胜票产生的二进制掩码被成功编码为一个N位二进制数字掩码,然后使用霍夫曼编码进行压缩,以实现任务数量的网络容量的亚线性增加

Remark

算是一种分布式?稀疏的思想 有点意思

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

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

相关文章

Splunk 的一个Bug (Events from tracker.log have not been seen)

1:背景:Splunk version: 8.2.4 splunk 的一个alert: Events from tracker.log have not been seen for the last 47 seconds, which is more than the yellow threshold (45 seconds). This typically occurs when indexing or forwarding are falling behind or are blocked…

【15】linux命令每日分享——head命令查看文件

大家好,这里是sdust-vrlab,Linux是一种免费使用和自由传播的类UNIX操作系统,Linux的基本思想有两点:一切都是文件;每个文件都有确定的用途;linux涉及到IT行业的方方面面,在我们日常的学习中&…

德鲁特金属导电理论(Drude)

德鲁特模型的重要等式 首先我们建立德鲁特模型的重要等式 我们把原子对于电子的阻碍作用,用一个冲量近似表示出来 在式子 首先定义一个等效加速度 由于 我们可以得到电导率的微观表达式 在交流电环境中 电场的表达式 借鉴上一问的公式 我们可以列出这样的表达式…

1.5 全概率公式和贝叶斯公式

1.5.1 全概率公式在处理复杂事件的概率时,我们经常将这个复杂事件分解为若千个互不相容的较简单的事件之和,先求这些简单事件的概率,再利用有限可加性得到所求事件的概率,这种方法就是全概率公式的思想方法全概率公式是概率论中的一个非常重要…

【CSS】CSS 复合选择器 ② ( 子元素选择器 | 交集选择器 )

文章目录一、子元素选择器1、语法说明2、代码分析3、代码示例二、交集选择器1、语法说明2、代码示例一、子元素选择器 1、语法说明 子元素选择器 可以选择 某个基础选择器 选择出的 元素组 的 直接子元素 ( 亲儿子元素 ) 中 使用基础选择器 选择 元素 ; 子元素选择器语法 : 父选…

【JAVA程序设计】(C00112)基于Springboot+Thymeleaf的在线购物商城——有文档

基于SpringbootThymeleaf的在线购物商城——有文档项目简介项目获取开发环境项目技术运行截图运行视频项目简介 基于Springbootthymeleaf框架的在线购物商城系统,本系统共分为二个角色:管理员和用户 管理员角色包含以下功能: 商品管理、商品…

DELL-Vostro-5468电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网,转载需注明出处。硬件型号驱动情况主板DELL-Vostro-5468处理器Intel Core i3-7100U 2.40 GHz, 3M Cache已驱动内存Samsung 8GB DDR4-2133MHz已驱动硬盘TOPMORE CAPRICORNUS NVMe 1TB已驱动显卡Intel HD Graphics 620已驱动声卡Realtek ALC2…

Linux指令——文件与权限

一,文件目录管理命令 ls 命令描述: ls命令用于显示指定工作目录下的内容。 命令格式:ls [参数] [目录名]。 参数说明: 参数 说明 -a 显示所有文件及目录(包括隐藏文件) -l 将文件的权限、拥有者、…

详解七大排序算法

对于排序算法,是我们在数据结构阶段,必须要牢牢掌握的一门知识体系,但是,对于排序算法,里面涉及到的思路,代码……各种时间复杂度等,都需要我们,记在脑袋瓜里面!&#xf…

【LeetCode每日一题】——680.验证回文串 II

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 贪心算法 二【题目难度】 简单 三【题目编号】 680.验证回文串 II 四【题目描述】 给你一个字…

终端仿真器、协议分析器和 IO 监视器:IO Ninja 5.3.1 Crack

欢迎使用 IO Ninja 您的一站式终端仿真器、协议分析器和 IO 监视器 IO Ninja是一款专业的一体化终端仿真器、嗅探器和协议分析器。IO Ninja 是高度模块化的,并且具有适用于您可能跨越的大多数传输和协议的插件——网络(、、、、、等)、串行&…

实验3 设计模式实验2

实验内容: 1. 某Web 性能测试软件中包含一个虚拟用户生成器(Virtual User Generator)。 为了避免出现生成的虚拟用户数量不一致,该测试软件在工作时只允许启动唯一 一个虚拟用户生成器。采用单例模式设计该虚拟用户生成器,绘制类图并使用饿 汉式单例、双…

汇编语言程序设计(四)之汇编指令

系列文章 汇编语言程序设计(一) 汇编语言程序设计(二)之寄存器 汇编语言程序设计(三)之汇编程序 汇编指令 1. 数据传输指令 指令包括:MOV、XCHG、XLAT、LEA、LDS、LES、PUSH、POP、PUSHF、LA…

关闭应用程序遥测,禁止Windows收集用户信息

目录 1. 先创建还原点,防止意外 2. 界面设置 3. 服务 (1) GPEdit.msc - 本地计算机策略 - 计算机配置 - 管理模板 - Windows 组件 - 应用程序兼容性 - 关闭应用程序遥测 - 已启用 (2) GPEdit.msc - 本地计算机策略 - 计算机配置 - 管理模板 - Windows 组件 - 数…

aws apigateway 使用restapi集成lambda

参考资料 代理集成,https://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/api-gateway-create-api-as-simple-proxy-for-lambda.html非代理集成,https://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/getting-started-…

Android 面试必备:高工必问Binder机制~

面试可能会问到的问题 从IPC的方式问到Binder的优势为什么zygote跟其他服务进程的通讯不使用BinderBinder线程池和Binder机制 等等这些问题都是基于你对Binder的理解还有对其他IPC通讯的理解 IPC方式有多少种 传统的IPC方式有Socket、共享内存、管道、信号量等安卓特有的是Bi…

Spring AOP —— 详解、实现原理、简单demo

目录 一、Spring AOP 是什么? 二、学习AOP 有什么作用? 三、AOP 的组成 3.1、切面(Aspect) 3.2、切点(Pointcut) 3.3、通知(Advice) 3.4、连接点 四、实现 Spring AOP 一个简…

linux系统安装学习

文章目录一、系统安装二、命令格式和帮助三、文件目录操作命令创建目录四、cat查看文件内容、合并文件sudo获得root权限总结一、系统安装 二、命令格式和帮助 三、文件目录操作命令 ls查看目录文件 -a 显示隐藏的文件 -l 以列表的形式显示 -h 以人性化的方式显示文件内容大小 …

【java】Java 集合框架

文章目录集合框架体系如图所示集合接口集合实现类(集合类)集合算法如何使用迭代器遍历 ArrayList遍历 Map如何使用比较器总结早在 Java 2 中之前,Java 就提供了特设类。比如:Dictionary, Vector, Stack, 和 Properties 这些类用来…

【Maven】P4 生命周期与插件

Maven 生命周期与插件项目构建生命周期clean 生命周期default 构建生命周期site 构建生命周期插件项目构建生命周期 Maven 生命周期描述的是一次构建过程经历了多少个事件。 Maven 对构建生命周期划分为3套: clean:清理工作;default&#…