当前位置: 首页 > news >正文

【连续学习之ResCL算法】2020年AAAI会议论文:Residual continual learning

1 介绍

年份:2020

会议: AAAI

Lee J, Joo D, Hong H G, et al. Residual continual learning[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2020, 34(04): 4553-4560.

本文提出的算法是Residual Continual Learning (ResCL),其核心原理是通过在线性组合原始网络和微调网络的每层参数来重新参数化网络,以此在连续学习多个任务时防止灾难性遗忘现象,同时不需要任何源任务信息,保持网络大小不变。先第一次训练,采用LWF算法知识蒸馏到新模型,再合并LWF模型和旧模型后,然后采用的合并后的损失函数第二次训练合并后的模型。ResCL算法属于基于架构的算法,因为它通过调整网络架构来实现连续学习,同时它也利用了基于正则化的方法来优化组合网络的参数

2 创新点

  1. 残差学习重参数化:ResCL通过线性组合原始网络和微调网络的每层来重新参数化网络参数,这种残差学习的方法允许网络在连续学习多个任务时有效地控制源任务和目标任务之间的性能权衡。
  2. 无需源任务信息:ResCL不需要除了原始网络之外的任何源任务信息,这使得它在实际应用中更加实用,尤其是在源数据不可用或难以处理的情况下。
  3. 网络大小不变:与传统的网络扩展方法不同,ResCL在推理阶段不会增加网络的大小,这对于在资源受限的环境中部署深度学习模型尤为重要。
  4. 特殊权重衰减损失:ResCL引入了一种特殊的权重衰减损失,这种损失函数专门设计用于连续学习,能够有效地防止遗忘源任务知识。
  5. 适用于通用CNNs:该方法可以自然地应用于包括批量归一化(Batch Normalization)层在内的通用卷积神经网络。
  6. 公平比较的衡量标准:ResCL提出了两种衡量不同连续学习方法的公平标准,即最大可实现平均准确率和在所需目标准确率下的源准确率,这些标准不依赖于特定的超参数设置。
  7. 连续学习多个任务:ResCL不仅适用于两个任务的连续学习,还可以扩展到三个或更多任务的连续学习场景,展示了良好的扩展性和适应性。

3 算法

3.1 算法原理

  1. 重新参数化
    ResCL通过线性组合原始网络(源任务网络)和微调网络(目标任务网络)的每层参数来重新参数化网络。对于全连接层,如果 W s W_s Ws是源网络的权重矩阵, W t W_t Wt是微调网络的权重矩阵,那么组合层的输出可以表示为:

( 1 C o + α s ) ⊙ ( W s x ) + α t ⊙ ( W t x ) (1_{Co} + \alpha_s) \odot (W_s x) + \alpha_t \odot (W_t x) (1Co+αs)(Wsx)+αt(Wtx)

其中, 1 C o 1_{Co} 1Co是全1向量, ⊙ \odot 表示逐元素乘法, α s \alpha_s αs α t \alpha_t αt是组合参数向量。这些参数通过反向传播学习得到,允许网络在保留源任务知识的同时适应新任务。

  1. 特殊权重衰减损失
    为了防止遗忘源任务,ResCL引入了一种特殊的权重衰减损失。不同于常规的权重衰减损失,ResCL的权重衰减损失专门设计用于连续学习,其目的是保护原始网络权重不受目标任务影响。这种损失函数可以表示为:

λ ∣ ∣ ( α s , α t ) ∣ ∣ 1 \lambda ||(\alpha_s, \alpha_t)||_1 λ∣∣(αs,αt)1

其中, λ \lambda λ是权衡超参数,控制源任务和目标任务性能之间的平衡。

  1. 批量归一化层的处理
    考虑到现代卷积神经网络(CNN)中广泛使用的批量归一化(Batch Normalization, BN)层,ResCL也考虑了BN层的影响。每个子网络都有自己的BN层,以保持各自任务的分布信息。在推理阶段,BN层可以被视为确定性线性层,因此可以与卷积层合并。
  2. 训练过程
    ResCL的训练包括两个阶段:首先是微调阶段,微调网络 n e t t nett nett在目标任务上进行训练;其次是组合网络训练阶段,组合网络 n e t c netc netc在源任务和目标任务上进行训练,同时使用LwF损失和权重衰减损失来保持源任务性能。
  3. 性能权衡
    ResCL通过超参数 λ \lambda λ来控制源任务和目标任务之间的性能权衡。通过调整 λ \lambda λ,可以在保持源任务性能和提高目标任务性能之间找到平衡点。

3.2 算法步骤

  1. 初始训练(源任务训练)
    • 首先,有一个已经在源任务上训练好的网络,我们称之为源网络 n e t s ( ⋅ ; θ s ∗ ) nets(\cdot; \theta^*_s) nets(;θs)
  2. 微调(目标任务训练)
    • 接着,使用源网络的参数初始化一个新的网络 n e t t ( ⋅ ; θ t ) nett(\cdot; \theta_t) nett(;θt),并在目标任务数据上进行微调,得到微调后的网络参数 θ t ∗ \theta^*_t θt。这个过程类似于 LwF 中的第一步,即在目标任务上微调模型,但并不完全相同,因为 ResCL 的目标是重新参数化网络以保留源任务的知识。
  3. 合并网络
    • 然后,ResCL 将源网络和微调网络的每层参数线性组合,形成一个新的组合网络 n e t c netc netc。这个组合网络包含了可学习的组合参数 α s \alpha_s αs α t \alpha_t αt,它们决定了如何混合源网络和微调网络的特征。
  4. 第二次训练(组合网络训练)
    • 最后,对组合网络 n e t c netc netc进行训练。这个训练过程涉及到特殊的损失函数,包括:
      • LwF 损失:用于保持源任务的性能。
      • 知识蒸馏损失:用于使目标任务的输出接近微调网络的输出。
      • 权重衰减损失:用于防止遗忘,通过衰减组合参数 α s \alpha_s αs α t \alpha_t αt来保护源网络的特征。

4 实验结果

图1展示了ResCL方法的流程,其中包括原始网络的微调、组合层的引入以及使用LwF损失和衰减损失进行的持续学习,以保持源任务性能并适应目标任务。

图2展示了源网络和目标网络的预激活残差单元如何通过组合层在每个非线性激活之前合并,形成在推理阶段使用的等效组合网络,且该网络与原始网络具有相同的规模。

5 思考

(1)训练两次,第一次先蒸馏、第二次是将蒸馏后的模型与旧模型合并,合并后再重新训练一遍

(2)如何组合两个网络?

在Residual Continual Learning (ResCL)算法中,组合两个网络是通过线性组合每一层的输出来实现的。这个过程涉及到源网络(已经训练好的网络,记作 n e t s nets nets)和目标网络(在目标任务上微调后的网络,记作 n e t t nett nett)。

  1. 线性组合
    对于网络中的每个层(假设是全连接层或卷积层),ResCL算法将源网络和目标网络对应层的输出进行线性组合。对于全连接层,如果 W s W_s Ws是源网络层的权重矩阵, W t W_t Wt是目标网络层的权重矩阵,那么组合层的输出可以表示为:

( 1 C o + α s ) ⊙ ( W s x ) + α t ⊙ ( W t x ) (1_{Co} + \alpha_s) \odot (W_s x) + \alpha_t \odot (W_t x) (1Co+αs)(Wsx)+αt(Wtx)

其中, 1 C o 1_{Co} 1Co是一个全1向量,用于与 W s x W_s x Wsx相加, ⊙ \odot 表示逐元素乘法, α s \alpha_s αs α t \alpha_t αt是组合参数向量,它们是可学习的参数,用于控制源网络和目标网络输出的混合比例。

  1. 学习组合参数
    组合参数 α s \alpha_s αs α t \alpha_t αt通过反向传播和梯度下降进行学习和优化。这些参数允许网络在保留源任务知识的同时适应新任务。
  2. 保持网络大小不变
    由于这种线性组合是在特征层面进行的,最终的网络在推理阶段的规模不会增加。这是因为组合层可以被看作是重新参数化,而不是增加额外的层或参数。
  3. 处理非线性层
    对于非线性层(如ReLU激活层),这些层不能被包含在组合中,因为它们不是线性的。因此,组合层应该在非线性层之前应用,以确保网络的非线性特性得以保留。
  4. 批量归一化层的处理
    对于包含批量归一化(Batch Normalization, BN)层的网络,ResCL算法为每个任务保留了独立的BN层,并在组合网络中使用。这是因为BN层依赖于特定任务的统计信息,因此在连续学习中需要保持这些信息以避免遗忘。

(3)论文中的残差结构体现在哪?

残差结构主要体现在网络参数的重新参数化和权重衰减损失的设计上

  1. 线性组合的重新参数化
    ResCL算法通过线性组合原始网络(源网络)和微调网络(目标网络)的每层参数来实现残差学习。对于全连接层或卷积层,这种组合可以表示为:

( 1 C o + α s ) ⊙ ( W s x ) + α t ⊙ ( W t x ) (1_{Co} + \alpha_s) \odot (W_s x) + \alpha_t \odot (W_t x) (1Co+αs)(Wsx)+αt(Wtx)

其中, W s W_s Ws W t W_t Wt分别是源网络和目标网络的权重, α s \alpha_s αs α t \alpha_t αt是可学习的组合参数, 1 C o 1_{Co} 1Co是全1向量。这种结构允许网络学习源网络和目标网络之间的残差,即目标网络相对于源网络的变化。

  1. 残差学习的思想
    ResCL算法的设计理念与残差学习(Residual Learning)相似,残差学习通过将输入直接添加到网络的深层来促进深层网络的训练。在ResCL中,通过重新参数化,网络学习如何调整源网络的输出以适应目标任务,这可以看作是学习源网络输出到目标网络输出的“残差”。
  2. 权重衰减损失
    ResCL中的权重衰减损失( λ ∣ ∣ ( α s , α t ) ∣ ∣ 1 \lambda ||(\alpha_s, \alpha_t)||_1 λ∣∣(αs,αt)1)有助于控制组合参数,使得只有对目标任务必要的特征才会显著偏离源网络的特征。这种设计类似于在残差网络中通过权重衰减来促使残差部分的权重趋于零,从而保持网络的稀疏性和效率。

相关文章:

【连续学习之ResCL算法】2020年AAAI会议论文:Residual continual learning

1 介绍 年份:2020 会议: AAAI Lee J, Joo D, Hong H G, et al. Residual continual learning[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2020, 34(04): 4553-4560. 本文提出的算法是Residual Continual Learning (ResC…...

【zookeeper核心源码解析】第二课:俯瞰QuorumPeer启动核心流程,实现选举关键流程

系列文章目录 【zookeeper核心源码解析】第一课:zk启动类核心流程序列图 【zookeeper核心源码解析】第二课:俯瞰QuorumPeer启动核心流程,实现选举关键流程 【zookeeper核心源码解析】第三课:leader与follower何时开始同步&#…...

数据流图和流程图的区别

在结构化建模中,数据流图和流程图都是非常重要的工具,它们为开发人员提供了强大的手段来分析和设计系统。尽管两者在表面上看起来有些相似,但它们在功能、用途和表达方式上存在显著的区别。本文将详细探讨数据流图和流程图的区别,…...

关于内网服务器依托可上网电脑实现访问互联网

关于内网服务器依托可上网电脑实现访问互联网 背景:在实验室内网的一个服务器,没有配置 NAT ,无法使用外网,只能在局域网内进行访问,但是呢,我们自己的电脑是可以访问互联网的,那么怎么通过让自…...

期权懂|期权入门知识:如何选择期权合约?

锦鲤三三每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 期权入门知识:如何选择期权合约? 一、选择月份: 通常情况下,月份的选择与期货合约的选择类似,主要关注主力合约。主力…...

如何用gpt来分析链接里面的内容(比如分析论文链接)和分析包含多个文件中的一块代码

如何用gpt来分析链接里面的内容,方法如下 这里使用gpt4里面有一个网路的功能 点击搜索框下面这个地球的形状即可启动搜索网页模式 然后即可提出问题在搜索框里:发现正确识别和分析了链接里面的内容 链接如下:https://arxiv.org/pdf/2009.1…...

Bash 脚本教程

注:本文为 “Bash 脚本编写” 相关文章合辑。 BASH 脚本编写教程 as good as well于 2017-08-04 22:04:28 发布 这里有个老 American 写的 BASH 脚本编写教程,非常不错,至少没接触过 BASH 的也能看懂! 建立一个脚本 Linux 中有…...

Pinia最简单使用(vite+vue3)

文章目录 创建项目安装Pinia包main.js注册Pinia在src下创建store/store.js文件,放入以下内容在app.vue中的使用(在其他组件也一样的) 创建项目 npm create vitelatest my-vue-app选vue 选JavaScript cd my-vue-app npm install npm run dev安装Pinia包 npm install piniamain…...

计算机网络——期末复习(4)协议或技术汇总、思维导图

思维导图 协议与技术 物理层通信协议:曼彻斯特编码链路层通信协议:CSMA/CD (1)停止-等待协议(属于自动请求重传ARQ协议):确认、否认、重传、超时重传、 (2)回退N帧协…...

Microsoft word@【标题样式】应用不生效(主要表现为在导航窗格不显示)

背景 随笔。Microsoft word 2013基础使用,仅做参考和积累。 问题 Microsoft word 2013,对段落标题文字应用【标题样式】不生效(主要表现为在导航窗格不显示)。 图1 图2 观察图1和图2,发现图1的文字在应用【标题一】样…...

轮播图带详情插件、uniApp插件

超级好用的轮播图 介绍访问地址参数介绍使用方法(简单使用,参数结构点击链接查看详情)图片展示 介绍 带有底部物品介绍以及价格的轮播图组件,持续维护,uniApp插件,直接下载填充数据就可以在项目里面使用 …...

云计算时代携程的网络架构变迁

大家觉得有意义和帮助记得及时关注和点赞!!! 前言0 携程云平台简介 网络演进时间线1 基于 VLAN 的二层网络 1.1 需求1.2 解决方案:OpenStack Provider Network 模型1.3 硬件网络拓扑1.4 宿主机内部网络拓扑1.5 小结 优点缺点2 基于 SDN 的大二层网络 2.1 面临的新问…...

USB 状态机及状态转换

文章目录 USB 状态机及状态转换连接状态供电状态默认状态地址状态配置状态挂起状态USB 状态机及状态转换 枚举完成之前,USB 设备要经过一系列的状态变化,才能最终完成枚举。这些状态是 连接状态 - attached供电状态 - powered默认状态 - default地址状态 - address配置状态 -…...

Go C编程 第6课 无人机 --- 计算旋转角

旋转的秘密---认识角度 rt、lt命令学习 goc电子课程 一、编程步骤 第一步 第二步 第三步 第四步 二、画“四轴无人机” (一)、画第一根机轴 (二)、画第二根机轴 (三)、画完整的无人机 三、画“多轴无人…...

C++-----图

一、图的结构 在 C 中,图可以用多种结构表示,常见的有邻接矩阵和邻接表。 邻接矩阵 使用二维数组 adjMatrix 来表示图中顶点之间的连接关系。对于无向图,如果 adjMatrix[i][j] 不为零,则表示顶点 i 和顶点 j 之间存在边&#x…...

mysql 数据库迁移到达梦数据库

1.windows安装达梦数据库,去官网下载 dm8 进行安装,安装后,可以使用管理工具管理数据 使用迁移工具对数据进行迁移; 2.使用php 或者 thinkphp连接达梦数据库 2.1、先PHP开启DM扩展 从达梦数据库安装目录下drivers/php_pdo 复制对…...

【记录】使用R2 CDN替换本地项目图片以加速图片加载

将图片存储到 Cloudflare 的存储桶中,并通过其提供的公共 URL 来替换代码中的本地路径,可以减小项目中打包的图片文件体积 实现方法的详细步骤: 1. 上传图片到 Cloudflare 的存储桶 (1)登录 Cloudflare Dashboard&am…...

12.13[java exp4][debug]nginx 500,究极未解之谜,出自重启,解决自重启,迷???

pro1 pro2?????????未解之谜,究极未解之谜???? 就是 auth_request http://auth_server/auth/check;接受不到,auth_server无法受到请求,就完全没收到?但是/auth/login等直接…...

Disruptor 高性能环形消息框架

官方文档:Disruptor 1. 简介 Disruptor是一个高性能的互进程(Inter-process)和多线程(Multi-threaded)消息处理库,由LMAX交易所开发,用于在Java虚拟机(JVM)上实现高性能…...

Python列表(二)

方式三: 创建对应的枚举对象 概念:通过枚举函数,生成一个新的对象 作用:函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列 同时列出数据下标和数据 #生成枚举对象 values [&…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...