首页 > 其他分享 >CONTINUAL LEARNING IN VISION TRANSFORMER--阅读笔记

CONTINUAL LEARNING IN VISION TRANSFORMER--阅读笔记

时间:2023-01-12 10:12:46浏览次数:43  
标签:TRANSFORMER RKR -- Transformer 学习 任务 LEARNING 方法 Vision

CONTINUAL LEARNING IN VISION TRANSFORMER---阅读笔记

摘要:

​ 持续学习的目标是从新数据中持续学习新任务,同时保留过去学习的任务的知识。最近,利用最初在计算机视觉自然语言处理中提出的Vsion Transformer,在图像识别任务中显示出比卷积神经网络(CNN)更高的精度。然而,很少有方法已经实现了持续学习的vision Transformer。在本文中,我们比较和改进了可以应用于CNN和Vision Transformer的持续学习方法。在我们的实验中,我们比较了几种连续学习方法及其组合,以显示其准确性和参数数量的差异。

一、介绍

​ 在深度学习模型中,当多个任务按顺序给定时,先前学习到的任务会被新的任务覆盖并被遗忘。这被称为灾难性的遗忘。持续的学习通过从新的数据中不断地学习新的任务来处理灾难性的遗忘,同时保留先前学习过的任务的知识。

​ 最近,Vision Transformer,利用了最初在计算机视觉的自然语言处理中提出的transformer架构,在图像识别任务中显示出了比CNN更高的精度。然而,传统的连续学习方法通常被认为是应用于CNN的卷积层,因此,可以应用于Vision Transformer 的所有组合层的方法是有限的。此外,没有任何方法被证明是有效的CNN和Vision Transformer。

​ 因此,本文的目的是研究可以同时应用于CNN和Vision Transformer的方法,并可以在少量附加参数下抑制灾难性遗忘。通过比较每种方法的精度和额外参数的数量,我们检验了这些方法是否不仅对CNN有效,而且对Vision Transformer也有效。此外,我们的目标是提出一种结合传统方法,具有更高性能的方法。

二、相关工作

​ 持续学习旨在平衡两种权衡:改变的刚性和适应的可塑性,以便学习新的数据,但过去的数据不会被忘记。Singh等人[6]提出了基于识别的知识保留(RKR),这是一种在持续学习中修改每个任务的网络权重和中间激活的方法。权值修改是通过将由一个称为整流生成器(RG)的生成器生成的参数添加到卷积层的权值中来完成的。中间激活通过将卷积层的输出乘以一个称为缩放因子生成器(SFG)的生成器生成的参数来修改。Piggyback[7]是一种高精度学习的方法,通过应用学习到的权重掩模来转换输出来学习大量任务的权重。RKR和Piggyback可应用于全连接层,也可应用于Vision Transformer。

​ Transformer首先被引入在自然语言处理的机器翻译中,现在是一种常用的方法。ViT 提出将像素块作为标记应用于计算机视觉。Swin Transformer是一种通过分层计算使用转换窗口来解决Transformer从语言到视觉的适应问题的方法。具体来说,他们处理了视觉实体规模的巨大变化,以及图像中的像素比文本中的单词的高分辨率。本文利用ViT和Swin Transformer验证了连续学习方法在 Vision Transformer 中的性能。

​ 最近,人们提出了几种针对Vision Transformer的连续学习方法。DyTox 是一种方法,其中初始层由所有任务共享,并且特定于任务的标记用于生成特定于任务的嵌入。提示学习持续学习(L2P)[10]是一种受提示学习[11]启发的方法,这是自然语言处理领域的一种新的连续学习方法。这些方法不适用于CNN,因为它们是专门的Vision Transformer。此外,这些方法都是类增量学习的方法,这与本文提出的任务增量学习方法的目的不同。

三、方法

​ 在本文中,我们提出了一个适用于CNN和Vision Transformer的持续学习方法的比较研究,即RKR [6]和Piggyback[7]。此外,我们提出了一种新的方法,Mask-RKR,它是这两种方法的结合。通过将Piggyback[7]应用于基础RKR [6],Mask-RKR保留了RKR的特性,同时由于任务数量的增加而减少了额外参数的数量。

3.1 通过RKR来适应任务

在Mask-RKR中,RKR应用于除最终输出层外的视觉变压器的所有全连接层。对于每一层,权重被RG修改,中间激活被SFG修改。RG对权值的修正如式(1)所示:

\[\begin{array}{l} \Theta_{l}^{t}=\Theta_{l} \oplus R_{l}^{t} \\ R_{l}^{t}=M A T M U L\left(L M_{l}^{t}, R M_{l}^{t}\right) \end{array} \]

SFG网络生成F,用于对featuremap进行相乘矫正 如式(3)所示:

\[O_{l}^{t}=O_{l} \odot F_{l}^{t} \]

3.2 通过Piggyback来减少参数

Piggyback方法是一种通过将学习到的权重掩模应用到基础模型的权值来转换输出的方法。Mask-RKR不直接应用于权重,而是RKR的参数。具体地说,它被应用于RKR的两个低秩近似参数LM和RM以及SFG的F。

​ 掩模学习是通过保持一组实值权值,将它们通过确定性阈值函数获得二进制掩模,并将其应用于现有权值来实现的。通过利用反向传播对重值权值进行更新,学习了一个适合于该任务的二进制掩码。通过为每个任务学习不同的二进制掩码,并将它们逐元素应用于RG和SFG参数,相同的基本网络可以以最少的附加参数重用于多个任务。

Mask-RKR RG中掩模学习过程如图2a所示。

每个实值掩模通过式(4)中给出的硬二值阈值函数:

\[m b_{j i}=\left\{\begin{array}{ll} 1, & \text { if } m r_{j i} \geq \tau \\ 0, & \text { otherwise } \end{array}\right. \]

利用阈值过程生成的二进制掩模,将任务t中式(2)表示的权值的修改替换为式(5)。这里,⊙表示每个元素的点积或掩码:

\[\begin{aligned} L M_{l}^{t}= & L M_{l}^{\text {base }} \odot m b l_{l}^{t} \\ R M_{l}^{t}= & R M_{l}^{\text {base }} \odot m b r_{l}^{t} \\ R_{l}^{t}= & M A T M U L\left(\left(L M_{l}^{\text {base }} \odot m b l_{l}^{t}\right)\right. \\ & \left.,\left(R M_{l}^{\text {base }} \odot m b r_{l}^{t}\right)\right) \end{aligned} \]

接下来,MaskRKR的SFG中的掩模学习过程如图2b所示。

四、实验

​ 在实验1和消融实验中,我们使用了CIFAR-100,这是一个包含100类动物、植物、设备和车辆的数据集。为了在持续学习环境下进行实验,CIFAR-100被分为10个任务,每个任务有10个类。图像大小为32×32。我们使用了50000张图像作为训练数据和10000张图像作为测试数据。在实验2中,我们使用了ImageNet-1k,这是一个包含1000个类的大型数据集。为了在持续学习的环境中运行实验,我们将ImageNet-1k分为10个任务,每个任务有100个类。图像大小为224×224。我们使用了1,232,167张图像作为训练数据,而49,000张图像作为测试数据。在实验3中,我们使用了来自视觉十项全能(VD)基准测试[12]的5个不同领域的数据集。VD基准测试是一个评估同时解决10个不同视觉域的能力的基准测试。所使用的数据集如表1所示。

五、结论

​ 在本文中,我们比较了可以同时适用于CNN和Vision Transformer的持续学习方法。我们还提出了Mask-RKR,它结合了RKR [6]和Piggyback。从实验中,我们发现Mask-RKR在减少参数数量的同时,可以获得比原RKR和Piggyback更高的精度。然而,在不同领域的连续学习设置中,Piggyback显示出最高的准确性,当参数的数量不受限制时更有效。在未来,我们希望改进Mask-RKR,使其足够灵活,可以使用来自不同领域的数据集来处理连续学习。

标签:TRANSFORMER,RKR,--,Transformer,学习,任务,LEARNING,方法,Vision
From: https://www.cnblogs.com/ZLey/p/17045647.html

相关文章

  • hdu:Ignatius and the Princess II(全排列,dfs)
    ProblemDescriptionNowourherofindsthedoortotheBEelzebubfeng5166.Heopensthedoorandfindsfeng5166isabouttokillourprettyPrincess.Butnow......
  • 你知道,前端工程部署有哪些方式嘛?
    你知道,前端工程部署有哪些方式嘛?本文原文地址;此文章是回答知乎问题总结而来。我将其分为四个阶段:手动部署、命令工具部署、docker镜像部署、平台化部署。这几个阶段,越......
  • 界面控件DevExtreme中文使用指南——如何在应用中更好的使用图标库?
    DevExtreme拥有高性能的HTML5/JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NETCore,jQuery,Knockout等)构建交互式的Web应用程序,该套件附带功能......
  • 06-DenseNet 图像分类
          DenseNet代码实现(pytorch):1importtorch2importtorch.nnasnn3importtorchvision45print("PyTorchVersion:",torch.__ver......
  • 在 Kubernetes 中部署并使用 KubeEdge
    作者:马伟,青云科技容器顾问,云原生爱好者,目前专注于云原生技术,云原生领域技术栈涉及Kubernetes、KubeSphere、KubeKey等。边缘计算在广泛制造业、工业、零售和金融等行......
  • Coloring
    题目链接题目描述:Cirno_9bakahasapapertapewith\(n\)cellsinarowonit.Ashethinksthattheblankpapertapeistoodull,hewantstopaintthesecel......
  • 静态内部类的作用
    静态内部类是用static修饰的内部类。在jvm层面中,当外部类加载时并不会加载静态内部类。所以静态内部类可以实现懒汉单例模式并保证其线程安全publicclassSingleton{......
  • 常见的思维模型:5W2H和2W1H
    5W2HW(Who)谁来做:关键人物是谁?W(What)做什么:明确做什么?W(When)何时完成:时间节点是?W(Where)在哪里做?W(Why)为什么做:了解原因。H(How)如何做:写方案,梳理关键步骤等。Mors......
  • Python3操作mysql
    Python3操作mysqlMySQL的安装没有sql基础的话可以看这个链接,sql学习实例:数据库连接importpymysql#打开数据库连接参数1:主机名或IP;参数2:用户名;参数3:密码;参数4:数......
  • 前端面试题
    javascript1、请问截至目前JS中的基本数据类型有几种?A、5B、6C、7D、82、document对象模型中,节点类型一共有几种?A、4种......