ICCV 2023|通过慢学习和分类器对齐在预训练模型上进行持续学习

news2024/11/25 20:28:12

点击蓝字

cf3c18bfda6033beaa61634ece7e5f1c.jpeg

关注我们

AI TIME欢迎每一位AI爱好者的加入!

作者介绍

fcbd0a708ce7800360b81602045d70f1.png

张耕维

悉尼科技大学在读博士生,研究方向为持续学习

报告题目

通过慢学习和分类器对齐在预训练模型上进行持续学习

内容简介

持续学习研究的目标在于提高模型利用顺序到达的数据进行学习的能力。尽管大多数现有工作都是建立在从头开始学习的前提下的,越来越多的努力致力于融入预训练的好处。然而,如何让每个增量任务自适应地利用预训练知识,同时保持预训练提供的泛化性仍然是一个悬而未决的问题。在这项工作中,我们对预训练模型上的持续学习(CLPM)进行了广泛的分析,并将关键挑战归因于渐进式过拟合问题。观察到选择性地降低学习率几乎可以解决该问题对表示层的影响,我们提出了一种简单但极其有效的方法,称为带有分类器对齐的慢速学习器(SLCA),该方法通过对类分布进行建模并对齐来进一步改进分类层。在各种场景中,我们的方法为CLPM提供了实质性改进(例如,在Split CIFAR-100、Split ImageNet-R、Split CUB-200和Split Cars-196上分别提高了49.76%、50.05%、44.69%和40.16%),因此显著优于最先进的方法。基于这样一个强有力的基线,我们深入分析了关键因素和有希望的方向,以促进后续研究。

论文链接:https://arxiv.org/pdf/2303.05118.pdf

代码链接:https://github.com/GengDavid/SLCA

01

Background

持续学习表现为在顺序到来的数据上学习,增量式地更新模型。但是,神经网络自身的设计导致它进行持续学习时存在一个挑战,名为“灾难性遗忘问题”,这体现为模型在学习新的任务时,由于没有原来任务的数据,导致模型在旧任务上的性能显著下降。

当前主流的针对这个问题的解决方法有三类。Regularization,在网络参数更新的时候增加限制,使得网络在学习新任务的时候不影响之前的知识。Replay,在模型学习新任务的同时混合原来任务的少量数据,让模型能够学习新任务的同时兼顾旧任务。Network architecture,在模型训练的时候,独立网络中的参数,减少新知识更新对旧知识产生干扰的可能性。

另一方面,预训练模型对于下游任务的训练是非常重要的。目前最基本的方式是对训练模型进行微调(finetune)。也有参数高效调优的方式,诸如视觉提示调优、适配器调优、LoRA、SSF等,在部分单个下游任务上甚至优于微调。

02

Problem Formulation

相对于从头开始学习,当在预训练模型上进行持续学习时,θrps将在预训练模型的数据集上进行预训练,然后使用该模型在一系列新的数据集上进行更新。在引入预训练模型之后,“灾难性遗忘问题”可以延伸为“progressive overfitting”问题,它面临的挑战是如何保证从预训练数据Dpt中得到的泛化性在持续学习的过程中被很好地保留,同时还要兼顾持续学习过程中知识遗忘的问题。

03

Recent Works

近年来的工作如L2P [1]、DualPrompt [2]引入了prompt技术,解决了模型泛化能力损失的问题。但是实际上prompt也是被共享的,仍然存在遗忘问题。从之前工作的实验结果来看,基于prompt的方法优于基于微调的方法。然而,在本工作里,我们的发现结论并非如此。

e323d28401f867b30c24a297ce72e2a9.png

04

Continual Learning on a Pre-trained Model

Slow Learner is (Almost) All You Need?

在文章中,我们首先探讨了在持续学习的设置下,加入预训练之后基于微调的方法落后于基于提示方法的原因。我们发现关键在于学习率,传统基线的性能受到使用相对较大的学习率的严重限制。当对θrps使用小得多的学习率(0.0001,SGD优化器),而对θcls使用稍大的学习率(0.01)可以极大地提高传统基线的性能。

6b7cab9449ddaa57d0d695d27361544a.png

Effect of Pre-training Paradigm

另外,我们评估了预训练范式对下游持续学习的影响。如图所示,自监督预训练虽然在标签要求和上游持续学习方面更加现实,但通常会导致Seq FT与联合训练之间的性能差距比监督预训练更大。

4db3fc40293d6c0c92c53d1ede417d8a.png

Further Evaluation of Representation

接下来,我们进一步对表示层进行验证,发现在学习完所有增量任务后,使用持续学习的表示层联合训练所有类别的额外分类器几乎可以达到整个模型的联合训练性能,并且远远优于持续学习的表示层分类器。可见在利用慢学习的方式时,表示层的progressive overfitting问题已经近乎解决,而分类器还有很大提升空间。

2650f6977d8fb1989a8a3ba05b65d4b2.png

Slow Learner with Classifier Alignment

出现上述现象的原因在于,由于每一个任务的分类器是独立训练的,而测试时要求对所有类别给出唯一的分类结果,这就导致持续学习得到的分类器并不是最优的。所以我们进一步提出了分类器对齐模块。具体的做法是在训练过程中,每一个任务结束时计算并存储特征的mean与covariance。在测试之前,用特征的统计量构建高斯分布,根据此分布采样得到每个类别的特征,最后对分类器进行统一的进行微调,这就达到了对齐分类器的目的。

d7e5acb70815cd5608e71e9318946beb.png

此外,由于分类器在每个任务上是训练收敛的,那么进一步训练分类器会带来过拟合的问题。具体来讲,分类器的输出logits对应每一个类有预测值,我们将其写成模乘以单位向量的形式。当用cross-entropy loss进行优化时,会显著增加模长导致过拟合,于是我们借鉴了ICML’22上logit normalization [3]的工作,加入一个动态的temperature项,使得CE loss仅改变向量的方向,从而缓解过拟合的问题。

cee0397221cd716fcdacab3ef498d076.png

本文方法的整个算法流程如下图所示:

483d2bb83031328a019ce1b4046a4caf.png

05

Experiment Setups

我们在4个Benchmarks上进行了验证,包括Split CIFAR-100、Split ImageNet-R、Split CUB-200、Split Cars-196。每个benchmark考虑了不同的验证维度(见下表)。我们将每个数据集分成10个任务进行训练,评价指标包括Last-Acc (主要评价指标,模型学习完最后一个任务后在所有任务上的平均accuracy)以及 Inc-Acc。

7d8c9c380352abd3397c4e78556d3609.png

06

Overall Performance

本文方法与其他基线方法对比的实验结果如下图所示,可以看到,在Split CIFAR-100和Split ImageNet-R上,SL可以显著增强持续学习的性能,借助分类器对齐以及logit归一化,我们的方法明显优于L2P与DualPrompt。同样,在细粒度分类的Split CUB-200与Split Cars-196数据集上,本文所提方法表现也较好。

ee7e506e475516189edb9f2c3bcc4ddc.png

878d7aaaec843462f80770c7c9fdb965.png

07

Ablation Study

我们对提出的方法进行了广泛的消融实验,证明了更新representation层的必要性。另一方面,我们进一步证明了所提出的分类器对齐和逻辑归一化的有效性。

70272189aa7384e91c88eab413441e6a.png

08

Combine with other methods

我们进一步将Classifier Alignment加入现有的方法中,进一步证明了Classifier Alignment的有效性。

27fed484aa164f77892fcf46954a2ba7.png

09

Conclusion

首先,我们对这个研究方向进行了重新思考和基准测试,并且提供了一个简单但非常有效的基线,用于重新评估当前的进展和技术路线;其次,Slow Learner几乎可以解决表示层的渐进过拟合问题,分类器对齐进一步改进了分类层。最后,关于未来的方向,我们可以探索更多针对持续学习的预训练范式,更有效地结合参数高效的方法,以及结合上游的预训练和下游的持续学习。

10

Reference

[1] Learning to Prompt for Continual Learning, CVPR’22
[2]DualPrompt: Complementary Prompting for Rehearsal-free Continual Learning, ECCV’22
[3] Mitigating neural network overconfidence with logit normalization, ICML’22

整理:陈研

审核:张耕维

点击“阅读原文”跳转至00:22:07

可以查看回放哦!

往期精彩文章推荐

efa983b53214ca1e51660d5ea762f574.jpeg

记得关注我们呀!每天都有新知识!

 关于AI TIME 

AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全球AI学者、行业专家和爱好者,希望以辩论的形式,探讨人工智能和人类未来之间的矛盾,探索人工智能领域的未来。

迄今为止,AI TIME已经邀请了1300多位海内外讲者,举办了逾600场活动,超600万人次观看。

f525ff6b178810e4f1aa05a1093bfcc3.png

我知道你

在看

~

43944908ba072cc5c5ef79f9eaa6f144.gif

点击 阅读原文 查看回放!

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

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

相关文章

【python基础知识】6.布尔值和四种语句(break、continue、pass、else)

文章目录 前言用数据做判断:布尔值两个数值做比较直接用数值做运算布尔值之间的运算 四种新的语句break语句continue语句pass语句else语句循环小练习 前言 Hi,你来了。 上一关我们学习了for循环和while循环,让我们复习回顾一下:…

学习笔记|定时器|STC中断|定时器时间计算|STC32G单片机视频开发教程(冲哥)|第十一集:定时器的作用和意义

文章目录 1.定时器的作用和意义定时器中断定时器是定时器和计数器的统称。 2.STC32G单片机定时器使用原理2.1 先设置功能为定时器/计数器(本质都是加法计数器)2.2、在定时器模式下,设置不分频或者12分频∶Tips:选择不分频还是12分频2.3、定时器的工作模式…

初探Vue.js及Vue-Cli

一、使用vue框架的简单示例 我们本次的vue系列就使用webstorm来演示: 对于vue.js的安装我们直接使用script的cdn链接来实现 具体可以参考如下网址: https://www.bootcdn.cn/ 进入vue部分,可以筛选版本,我这里使用的是2.7.10版本的&#xff…

正则的高级玩法

在正则表达式中,括号涉及的问题比较多,所以这里单独拿出来讲。 分组 如果量词所限定的元素不是一个字符或者字符组,而是一系列字符或者子表达式,就需要使用括号将他们括起来,表示为“一组”,构成单个元素…

【python零基础入门学习】python基础篇之系统模块调用shell命令执行(四)

本站以分享各种运维经验和运维所需要的技能为主 《python》:python零基础入门学习 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解…

接入Websocket,自动接收CSDN短消息

最近在研究Websocket功能,本来想接入抖音和快手的弹幕功能,以及短消息功能。 在了解的过程中,也开发了一些测试项目。 这不是,就把CSDN的短消息项目给弄出来了。 直接上代码: # !/usr/bin python3 # -*- encodingu…

U盘插电脑没反应?学会这3个方法就够了!

“谁能帮帮我呀!u盘里有超级重要的文件哎!但是将u盘插电脑后一点反应都没有!我还需要将u盘里的文件导出来呢!” U盘(又称闪存驱动器或USB闪存驱动器)是我们生活中常用的便携式存储设备之一,但在…

Python实现猎人猎物优化算法(HPO)优化BP神经网络分类模型(BP神经网络分类算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…

『虫无涯→_→读书推荐02期』|全面系统的〖Effective软件测试〗带你完成所有不同类型的测试,GO

目录 我看的书 我的书评/推荐理由 书籍的作者 书籍内容 赠书活动 我看的书 首次看到这本书的封面的时候,我被那个数字惊呆了,【助理软件研发提升10倍质量】,这对我产生了足够了吸引力。因为这个数字是非常的客观的;至于书…

DAY08_MyBatisPlus——入门案例标准数据层开发CRUD-Lombok-分页功能DQL编程控制DML编程控制乐观锁快速开发-代码生成器

目录 一 MyBatisPlus简介1. 入门案例问题导入1.1 SpringBoot整合MyBatisPlus入门程序①:创建新模块,选择Spring初始化,并配置模块相关基础信息②:选择当前模块需要使用的技术集(仅保留JDBC)③:手…

@PostConstruct使用

PostConstruct是Java自带的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。 从Java EE5规范开始,Servlet中增加了两个影响Servlet生命周期的注解,PostConstruc

Goland2023版新UI的debug模式调试框按钮功能说明

一、背景 Jetbrains家的IDE的UI基本都是一样的,debug模式的调试框按钮排列也是一致的,但是在我使用Goland2023版的新UI时,发现调试框的按钮变化还是很大的,有一些按钮被收起来了,如果看之前的博客会发现有一些文中的旧…

15年安全老兵详解《孤注一掷》里的黑客技术及杀猪盘

做为网络安全从业者,今天谈谈电影《孤注一掷》涉及到的相关的黑客攻防技术和场景。 电影制作方也算是用心了,隔壁王大娘提醒我男主张艺兴饰演的潘生与编程语言Python在读音上似乎有点弦外之音,有点类似或谐音。 开篇男主潘生从标准码农衬衫打…

排序算法:选择排序(直接选择排序、堆排序)

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关排序算法的相关知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通…

网络安全人才供需严重失衡,预计2027年缺口将扩大到300万人

网络安全法正式实施5年了。 这5年,是网络安全法治化体系化日趋完善的5年,也是我国网络安全产业黄金发展的5年。 赛迪顾问数据显示,2016年,我国网络安全市场规模为336.2亿元;而2021年,市场规模达到900多亿…

java IO流(四) 数据流 序列化流

数据流 再学习一种流,这种流在开发中偶尔也会用到,我们想把数据和数据的类型一并写到文件中去,读取的时候也将数据和数据类型一并读出来。这就可以用到数据流,有两个DataInputStream和DataOutputStream. DataOutputStream类 写入特定类型 D…

JS 方法实现复制粘贴

背景 以前我们一涉及到复制粘贴功能,实现思路一般都是: 创建一个 textarea 标签 让这个 textarea 不可见(定位) 给这个 textarea 赋值 把这个 textarea 塞到页面中 调用 textarea 的 select 方法 调用 document.execCommand…

Java逻辑控制

目录 一、顺序结构 二、分支结构 1、if语句 (1) 语法格式1​编辑 (2)语法格式2​编辑 (3)语法格式3 2、switch 语句 三、循环结构 1、while循环 2、break 3、continue 4、for 循环 5、do whil…

Pycharm通用设置个性化设置

Pycharm通用设置&个性化设置 通用设置取消打开Pycharm自动进入项目开启【Ctrl鼠标滑轮】放大缩小字体 个性化设置设置彩虹括号 通用设置 取消打开Pycharm自动进入项目 选择选择菜单【File】>【Settings】进入设置页面选择【Appearance & Behavior】>【System S…

dantax参数调优

dantax参数调优 1.speed调优 可能会导致数据倾斜 处理的速度不同,可能会导致job非常慢 举例子,比如总限速是每秒100条record,其中第一个channel速度是每秒99条record,第二个channel是每秒1条record,加起来是每条100条…